mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-30 19:58:50 +00:00
@@ -178,6 +178,17 @@ export function checkReferences({ config, layout = {} } = {}, { notes = [] } = {
|
||||
: 'активного маркера-источника не существует');
|
||||
}
|
||||
}
|
||||
const valueSource = marker?.value_source;
|
||||
if (valueSource?.kind === 'derived_marker_state') {
|
||||
const ref = String(valueSource.ref ?? '');
|
||||
const target = ref.startsWith('marker:') ? ref.slice('marker:'.length) : '';
|
||||
if (!target || !activeLightMarkerIds.has(target)) {
|
||||
add('marker_value_source', markerId, ref || '?',
|
||||
target && activeMarkerIds.has(target)
|
||||
? 'маркер-цель не является источником света'
|
||||
: 'активного маркера-цели не существует');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const [key, position] of Object.entries(layout || {})) {
|
||||
|
||||
@@ -27,6 +27,17 @@
|
||||
|
||||
/** @type {SmokeLink[]} */
|
||||
export const SMOKE_LINKS = [
|
||||
{
|
||||
symbols: [
|
||||
'resolveValueSource', 'valueSourceWriteFields', 'valueBadgeCandidates',
|
||||
'valueBadgeSourceKey', 'resolveDevicePresentation',
|
||||
],
|
||||
smokes: ['smoke_value_face_source.mjs'],
|
||||
because: 'the #378 production-bundle scenario observes the shared source resolver through '
|
||||
+ 'the real Device dialog, draft preview, persistence, both plan renderers, unavailable '
|
||||
+ 'recovery, action dispatch and binding reset; those DOM effects do not call the pure '
|
||||
+ 'source helpers by name',
|
||||
},
|
||||
{
|
||||
symbols: ['roomClimateKey', 'roomClimateMap'],
|
||||
smokes: ['smoke_room_climate_placement.mjs'],
|
||||
|
||||
Reference in New Issue
Block a user