@ifc-lite/mutations 1.14.5 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,17 +9,104 @@ export class MutablePropertyView {
9
9
  quantityExtractor = null;
10
10
  propertyMutations = new Map();
11
11
  quantityMutations = new Map();
12
+ /**
13
+ * Secondary indices: entityId → mutation keys for that entity.
14
+ *
15
+ * `getForEntity` previously iterated the entire `propertyMutations` /
16
+ * `quantityMutations` map per pset to find newly-added properties — O(M·P)
17
+ * per call. These indices keep that step O(M_entity) instead.
18
+ */
19
+ propertyKeysByEntity = new Map();
20
+ quantityKeysByEntity = new Map();
12
21
  deletedPsets = new Set(); // `${entityId}:${psetName}`
13
22
  deletedQsets = new Set(); // `${entityId}:${qsetName}`
14
23
  newPsets = new Map(); // entityId -> psetName -> PropertySet
15
24
  newQsets = new Map(); // entityId -> qsetName -> QuantitySet
16
25
  attributeMutations = new Map(); // `${entityId}:attr:${attrName}`
26
+ positionalAttrMutations = new Map(); // entityId -> argIndex -> value
27
+ newEntities = new Map();
28
+ tombstones = new Set();
29
+ /**
30
+ * Overlay-entity → source-entity aliases for property/quantity reads.
31
+ *
32
+ * When the viewer duplicates an existing entity, the new entity has
33
+ * no row in the parsed property table — `getBasePropertiesForEntity`
34
+ * would return `[]` and the property panel would show "No property
35
+ * sets". Aliasing redirects the BASE read to the source entity so
36
+ * the duplicate inherits its psets / qsets visually, while overlay
37
+ * mutations (overrides, creates, deletes) stay scoped to the
38
+ * overlay-entity's own id — so editing a property on the duplicate
39
+ * doesn't bleed into the source.
40
+ *
41
+ * Aliases follow at most one hop (no chains). They never affect
42
+ * STEP export — the export overlay emits the duplicate exactly as
43
+ * the StoreEditor recorded it, with whatever new IfcRel*ByProperties
44
+ * the caller chose to add.
45
+ */
46
+ entityAliases = new Map();
47
+ nextAllocatedId = 0;
17
48
  mutationHistory = [];
18
49
  modelId;
19
50
  constructor(baseTable, modelId) {
20
51
  this.baseTable = baseTable;
21
52
  this.modelId = modelId;
22
53
  }
54
+ /**
55
+ * Seed the express-ID allocator. Should be called once after parsing with
56
+ * the highest existing expressId in the store; subsequent `createEntity`
57
+ * calls allocate IDs strictly above this watermark.
58
+ */
59
+ setExpressIdWatermark(maxExistingId) {
60
+ if (maxExistingId > this.nextAllocatedId) {
61
+ this.nextAllocatedId = maxExistingId;
62
+ }
63
+ }
64
+ /** The next expressId that `createEntity` would allocate. */
65
+ peekNextExpressId() {
66
+ return this.nextAllocatedId + 1;
67
+ }
68
+ setPropertyMutation(entityId, key, mutation) {
69
+ this.propertyMutations.set(key, mutation);
70
+ let bucket = this.propertyKeysByEntity.get(entityId);
71
+ if (!bucket) {
72
+ bucket = new Set();
73
+ this.propertyKeysByEntity.set(entityId, bucket);
74
+ }
75
+ bucket.add(key);
76
+ }
77
+ deletePropertyMutation(entityId, key) {
78
+ const removed = this.propertyMutations.delete(key);
79
+ if (removed) {
80
+ const bucket = this.propertyKeysByEntity.get(entityId);
81
+ if (bucket) {
82
+ bucket.delete(key);
83
+ if (bucket.size === 0)
84
+ this.propertyKeysByEntity.delete(entityId);
85
+ }
86
+ }
87
+ return removed;
88
+ }
89
+ setQuantityMutation(entityId, key, mutation) {
90
+ this.quantityMutations.set(key, mutation);
91
+ let bucket = this.quantityKeysByEntity.get(entityId);
92
+ if (!bucket) {
93
+ bucket = new Set();
94
+ this.quantityKeysByEntity.set(entityId, bucket);
95
+ }
96
+ bucket.add(key);
97
+ }
98
+ deleteQuantityMutation(entityId, key) {
99
+ const removed = this.quantityMutations.delete(key);
100
+ if (removed) {
101
+ const bucket = this.quantityKeysByEntity.get(entityId);
102
+ if (bucket) {
103
+ bucket.delete(key);
104
+ if (bucket.size === 0)
105
+ this.quantityKeysByEntity.delete(entityId);
106
+ }
107
+ }
108
+ return removed;
109
+ }
23
110
  /**
24
111
  * Set an on-demand property extractor function
25
112
  * This is used when properties are extracted lazily from the source buffer
@@ -35,13 +122,18 @@ export class MutablePropertyView {
35
122
  }
36
123
  /**
37
124
  * Get base properties for an entity (before mutations)
38
- * Uses on-demand extraction if available, otherwise falls back to base table
125
+ * Uses on-demand extraction if available, otherwise falls back to base table.
126
+ *
127
+ * Follows the entityAliases map for overlay duplicates so a fresh
128
+ * duplicate inherits its source's psets without paying the cost of
129
+ * eagerly cloning them into the overlay.
39
130
  */
40
131
  getBasePropertiesForEntity(entityId) {
132
+ const baseId = this.resolveBaseEntityId(entityId);
41
133
  // Prefer on-demand extraction if available (client-side WASM parsing)
42
134
  if (this.onDemandExtractor) {
43
135
  // Normalize the result to PropertySet[] (globalId defaults to empty string)
44
- return this.onDemandExtractor(entityId).map(pset => ({
136
+ return this.onDemandExtractor(baseId).map(pset => ({
45
137
  name: pset.name,
46
138
  globalId: pset.globalId || '',
47
139
  properties: pset.properties.map(prop => ({
@@ -53,7 +145,7 @@ export class MutablePropertyView {
53
145
  }
54
146
  // Fallback to pre-built property table
55
147
  if (this.baseTable) {
56
- return this.baseTable.getForEntity(entityId);
148
+ return this.baseTable.getForEntity(baseId);
57
149
  }
58
150
  return [];
59
151
  }
@@ -92,10 +184,19 @@ export class MutablePropertyView {
92
184
  mutatedProperties.push(prop);
93
185
  }
94
186
  }
95
- // Check for new properties added to this pset
96
- for (const [key, mutation] of this.propertyMutations) {
97
- if (key.startsWith(`${entityId}:${pset.name}:`) && mutation.operation === 'SET') {
98
- const propName = key.split(':')[2];
187
+ // Check for new properties added to this pset. Iterate the per-entity
188
+ // key set so this stays O(M_entity) instead of scanning every mutation
189
+ // in the model.
190
+ const entityPropKeys = this.propertyKeysByEntity.get(entityId);
191
+ if (entityPropKeys) {
192
+ const psetPrefix = `${entityId}:${pset.name}:`;
193
+ for (const key of entityPropKeys) {
194
+ if (!key.startsWith(psetPrefix))
195
+ continue;
196
+ const mutation = this.propertyMutations.get(key);
197
+ if (!mutation || mutation.operation !== 'SET')
198
+ continue;
199
+ const propName = key.slice(psetPrefix.length);
99
200
  // Only add if not already in the list
100
201
  if (!mutatedProperties.some(p => p.name === propName)) {
101
202
  mutatedProperties.push({
@@ -213,7 +314,7 @@ export class MutablePropertyView {
213
314
  }
214
315
  }
215
316
  // Always store in propertyMutations for tracking
216
- this.propertyMutations.set(key, {
317
+ this.setPropertyMutation(entityId, key, {
217
318
  operation: 'SET',
218
319
  value,
219
320
  valueType,
@@ -246,7 +347,7 @@ export class MutablePropertyView {
246
347
  if (oldValue === null) {
247
348
  return null; // Property doesn't exist
248
349
  }
249
- this.propertyMutations.set(key, { operation: 'DELETE' });
350
+ this.setPropertyMutation(entityId, key, { operation: 'DELETE' });
250
351
  const mutation = {
251
352
  id: generateMutationId(),
252
353
  type: 'DELETE_PROPERTY',
@@ -286,7 +387,7 @@ export class MutablePropertyView {
286
387
  // Also add individual property mutations for consistency
287
388
  for (const prop of properties) {
288
389
  const key = propertyKey(entityId, psetName, prop.name);
289
- this.propertyMutations.set(key, {
390
+ this.setPropertyMutation(entityId, key, {
290
391
  operation: 'SET',
291
392
  value: prop.value,
292
393
  valueType: prop.type ?? PropertyValueType.String,
@@ -321,7 +422,7 @@ export class MutablePropertyView {
321
422
  if (pset) {
322
423
  for (const prop of pset.properties) {
323
424
  const key = propertyKey(entityId, psetName, prop.name);
324
- this.propertyMutations.set(key, { operation: 'DELETE' });
425
+ this.setPropertyMutation(entityId, key, { operation: 'DELETE' });
325
426
  }
326
427
  }
327
428
  const mutation = {
@@ -340,10 +441,14 @@ export class MutablePropertyView {
340
441
  // ---------------------------------------------------------------------------
341
442
  /**
342
443
  * Get base quantities for an entity (before mutations)
444
+ *
445
+ * Follows the entityAliases map for overlay duplicates so a fresh
446
+ * duplicate inherits its source's qsets.
343
447
  */
344
448
  getBaseQuantitiesForEntity(entityId) {
449
+ const baseId = this.resolveBaseEntityId(entityId);
345
450
  if (this.quantityExtractor) {
346
- return this.quantityExtractor(entityId);
451
+ return this.quantityExtractor(baseId);
347
452
  }
348
453
  return [];
349
454
  }
@@ -376,10 +481,18 @@ export class MutablePropertyView {
376
481
  mutatedQuantities.push(q);
377
482
  }
378
483
  }
379
- // Check for new quantities added to this qset
380
- for (const [key, mutation] of this.quantityMutations) {
381
- if (key.startsWith(`${entityId}:${qset.name}:`) && mutation.operation === 'SET') {
382
- const quantName = key.split(':')[2];
484
+ // Check for new quantities added to this qset (per-entity index — see
485
+ // the property-mutations site above for rationale).
486
+ const entityQtyKeys = this.quantityKeysByEntity.get(entityId);
487
+ if (entityQtyKeys) {
488
+ const qsetPrefix = `${entityId}:${qset.name}:`;
489
+ for (const key of entityQtyKeys) {
490
+ if (!key.startsWith(qsetPrefix))
491
+ continue;
492
+ const mutation = this.quantityMutations.get(key);
493
+ if (!mutation || mutation.operation !== 'SET')
494
+ continue;
495
+ const quantName = key.slice(qsetPrefix.length);
383
496
  if (!mutatedQuantities.some(q => q.name === quantName)) {
384
497
  mutatedQuantities.push({
385
498
  name: quantName,
@@ -427,7 +540,7 @@ export class MutablePropertyView {
427
540
  // Track individual quantity mutations
428
541
  for (const q of quantities) {
429
542
  const key = quantityKey(entityId, qsetName, q.name);
430
- this.quantityMutations.set(key, {
543
+ this.setQuantityMutation(entityId, key, {
431
544
  operation: 'SET',
432
545
  value: q.value,
433
546
  quantityType: q.quantityType,
@@ -481,7 +594,7 @@ export class MutablePropertyView {
481
594
  const existingMutation = this.quantityMutations.get(key);
482
595
  const oldValue = existingMutation?.value ?? null;
483
596
  const isUpdate = existingMutation != null || qsetExistsInBase;
484
- this.quantityMutations.set(key, {
597
+ this.setQuantityMutation(entityId, key, {
485
598
  operation: 'SET',
486
599
  value,
487
600
  quantityType: qType,
@@ -531,6 +644,191 @@ export class MutablePropertyView {
531
644
  }
532
645
  return mutation;
533
646
  }
647
+ /**
648
+ * Set a positional STEP argument on an entity by zero-based index.
649
+ *
650
+ * This is the only path for editing non-IfcRoot entities (e.g. profile
651
+ * dimensions on `IfcRectangleProfileDef`) where attributes have no symbolic
652
+ * names. Values follow the same conventions as `NewEntity.attributes`:
653
+ * numbers become `#expressId` references when paired with a reference slot,
654
+ * otherwise REAL/INTEGER literals; strings become quoted STEP strings;
655
+ * `null` becomes `$`.
656
+ */
657
+ setPositionalAttribute(entityId, index, value, skipHistory = false) {
658
+ if (!Number.isInteger(index) || index < 0) {
659
+ throw new Error(`setPositionalAttribute: index must be a non-negative integer, got ${index}`);
660
+ }
661
+ let entityMap = this.positionalAttrMutations.get(entityId);
662
+ if (!entityMap) {
663
+ entityMap = new Map();
664
+ this.positionalAttrMutations.set(entityId, entityMap);
665
+ }
666
+ const oldValue = entityMap.has(index) ? entityMap.get(index) : null;
667
+ entityMap.set(index, value);
668
+ const mutation = {
669
+ id: generateMutationId(),
670
+ type: 'UPDATE_POSITIONAL_ATTRIBUTE',
671
+ timestamp: Date.now(),
672
+ modelId: this.modelId,
673
+ entityId,
674
+ attributeName: `@${index}`,
675
+ oldValue: oldValue,
676
+ newValue: value,
677
+ };
678
+ if (!skipHistory) {
679
+ this.mutationHistory.push(mutation);
680
+ }
681
+ return mutation;
682
+ }
683
+ /** Get all positional argument overrides for an entity, keyed by index. */
684
+ getPositionalMutationsForEntity(entityId) {
685
+ return this.positionalAttrMutations.get(entityId) ?? null;
686
+ }
687
+ /**
688
+ * Drop a single positional override. Used by undo to roll a
689
+ * setPositionalAttribute back to "no override" when there was no prior
690
+ * value. Mirrors `removeAttributeMutation` for symmetric naming.
691
+ */
692
+ removePositionalMutation(entityId, index) {
693
+ const entityMap = this.positionalAttrMutations.get(entityId);
694
+ if (!entityMap)
695
+ return;
696
+ entityMap.delete(index);
697
+ if (entityMap.size === 0) {
698
+ this.positionalAttrMutations.delete(entityId);
699
+ }
700
+ }
701
+ // ---------------------------------------------------------------------------
702
+ // Entity-level mutations (create / delete)
703
+ // ---------------------------------------------------------------------------
704
+ /**
705
+ * Create a new entity in the overlay. Returns the freshly-allocated
706
+ * expressId. Callers must ensure `setExpressIdWatermark` has been seeded
707
+ * from the underlying store before calling this for the first time.
708
+ */
709
+ createEntity(type, attributes) {
710
+ if (!type || typeof type !== 'string') {
711
+ throw new Error('createEntity: type is required');
712
+ }
713
+ // Preserve the type string the caller passed (canonical PascalCase per
714
+ // the public contract). UPPERCASE STEP tokens still work because the
715
+ // STEP exporter upper-cases at write time — but `NewEntity.type` no
716
+ // longer mangles `IfcColumn` into `IFCCOLUMN` for downstream consumers.
717
+ const expressId = ++this.nextAllocatedId;
718
+ const entity = {
719
+ expressId,
720
+ type: type.trim(),
721
+ attributes: attributes.slice(),
722
+ };
723
+ this.newEntities.set(expressId, entity);
724
+ this.mutationHistory.push({
725
+ id: generateMutationId(),
726
+ type: 'CREATE_ENTITY',
727
+ timestamp: Date.now(),
728
+ modelId: this.modelId,
729
+ entityId: expressId,
730
+ attributeName: entity.type,
731
+ });
732
+ return entity;
733
+ }
734
+ /**
735
+ * Mark an entity for deletion. Existing entities are tombstoned; new
736
+ * entities (from `createEntity`) are simply forgotten. Returns false if
737
+ * the id is unknown to this view.
738
+ */
739
+ deleteEntity(expressId) {
740
+ if (this.newEntities.has(expressId)) {
741
+ this.newEntities.delete(expressId);
742
+ this.mutationHistory.push({
743
+ id: generateMutationId(),
744
+ type: 'DELETE_ENTITY',
745
+ timestamp: Date.now(),
746
+ modelId: this.modelId,
747
+ entityId: expressId,
748
+ });
749
+ return true;
750
+ }
751
+ if (this.tombstones.has(expressId))
752
+ return false;
753
+ this.tombstones.add(expressId);
754
+ this.mutationHistory.push({
755
+ id: generateMutationId(),
756
+ type: 'DELETE_ENTITY',
757
+ timestamp: Date.now(),
758
+ modelId: this.modelId,
759
+ entityId: expressId,
760
+ });
761
+ return true;
762
+ }
763
+ /** Returns all overlay-created entities in insertion order. */
764
+ getNewEntities() {
765
+ return Array.from(this.newEntities.values());
766
+ }
767
+ /** Look up a single overlay-created entity. */
768
+ getNewEntity(expressId) {
769
+ return this.newEntities.get(expressId) ?? null;
770
+ }
771
+ isDeleted(expressId) {
772
+ return this.tombstones.has(expressId);
773
+ }
774
+ /**
775
+ * Reverse `deleteEntity` for an existing-entity tombstone. Returns true if
776
+ * a tombstone was removed; false if the id was not tombstoned. Used by
777
+ * undo of a DELETE_ENTITY mutation on a source-buffer entity. Overlay-only
778
+ * entities are restored via a separate path (`restoreNewEntity`).
779
+ */
780
+ restoreFromTombstone(expressId) {
781
+ return this.tombstones.delete(expressId);
782
+ }
783
+ /**
784
+ * Alias an overlay-only entity to a source entity for property /
785
+ * quantity reads. Used by the duplicate flow so a fresh duplicate
786
+ * inherits its source's psets / qsets in the property panel without
787
+ * eagerly cloning them. Edits on the duplicate stay scoped to the
788
+ * duplicate's own id (override slots are keyed by entity id, not
789
+ * by base id).
790
+ *
791
+ * Pass `null` as the source to clear an existing alias.
792
+ */
793
+ setEntityAlias(overlayId, sourceId) {
794
+ if (sourceId === null) {
795
+ this.entityAliases.delete(overlayId);
796
+ return;
797
+ }
798
+ if (sourceId === overlayId)
799
+ return;
800
+ this.entityAliases.set(overlayId, sourceId);
801
+ }
802
+ /** Read the alias for a given overlay id, or null if none. */
803
+ getEntityAlias(overlayId) {
804
+ return this.entityAliases.get(overlayId) ?? null;
805
+ }
806
+ /**
807
+ * Resolve to the base id used for property/quantity reads. Returns
808
+ * the input id when no alias is set. Aliases follow at most one
809
+ * hop — chained duplicates resolve to their immediate source, not
810
+ * the original.
811
+ */
812
+ resolveBaseEntityId(entityId) {
813
+ return this.entityAliases.get(entityId) ?? entityId;
814
+ }
815
+ /**
816
+ * Re-add an overlay-only entity to `newEntities`. Pairs with `deleteEntity`
817
+ * to support undo of a freshly-created-and-then-deleted entity. The caller
818
+ * is responsible for stashing the `NewEntity` record between delete and
819
+ * restore (the slice's undo stack does this).
820
+ */
821
+ restoreNewEntity(entity) {
822
+ this.newEntities.set(entity.expressId, entity);
823
+ // Without this the next createEntity() can hand out the same id and
824
+ // overwrite the restored entity.
825
+ if (entity.expressId > this.nextAllocatedId) {
826
+ this.nextAllocatedId = entity.expressId;
827
+ }
828
+ }
829
+ getTombstones() {
830
+ return new Set(this.tombstones);
831
+ }
534
832
  /**
535
833
  * Get mutated attributes for an entity.
536
834
  * Returns only attributes that have been added/modified via mutations.
@@ -550,7 +848,7 @@ export class MutablePropertyView {
550
848
  removeQuantityMutation(entityId, qsetName, quantName) {
551
849
  if (quantName) {
552
850
  const key = quantityKey(entityId, qsetName, quantName);
553
- this.quantityMutations.delete(key);
851
+ this.deleteQuantityMutation(entityId, key);
554
852
  // Also remove from newQsets if present
555
853
  const entityQsets = this.newQsets.get(entityId);
556
854
  if (entityQsets) {
@@ -569,10 +867,17 @@ export class MutablePropertyView {
569
867
  if (entityQsets) {
570
868
  entityQsets.delete(qsetName);
571
869
  }
572
- // Remove all quantity mutations for this qset
573
- for (const key of [...this.quantityMutations.keys()]) {
574
- if (key.startsWith(`${entityId}:${qsetName}:`)) {
575
- this.quantityMutations.delete(key);
870
+ // Remove all quantity mutations for this qset (only those for this entity).
871
+ const bucket = this.quantityKeysByEntity.get(entityId);
872
+ if (bucket) {
873
+ const prefix = `${entityId}:${qsetName}:`;
874
+ const toRemove = [];
875
+ for (const key of bucket) {
876
+ if (key.startsWith(prefix))
877
+ toRemove.push(key);
878
+ }
879
+ for (const key of toRemove) {
880
+ this.deleteQuantityMutation(entityId, key);
576
881
  }
577
882
  }
578
883
  }
@@ -621,17 +926,31 @@ export class MutablePropertyView {
621
926
  clear() {
622
927
  this.propertyMutations.clear();
623
928
  this.quantityMutations.clear();
929
+ this.propertyKeysByEntity.clear();
930
+ this.quantityKeysByEntity.clear();
624
931
  this.attributeMutations.clear();
625
932
  this.deletedPsets.clear();
626
933
  this.deletedQsets.clear();
627
934
  this.newPsets.clear();
628
935
  this.newQsets.clear();
936
+ this.positionalAttrMutations.clear();
937
+ this.newEntities.clear();
938
+ this.tombstones.clear();
939
+ this.entityAliases.clear();
940
+ this.nextAllocatedId = 0;
629
941
  this.mutationHistory = [];
630
942
  }
631
943
  /**
632
944
  * Apply a batch of mutations (e.g., from imported change set)
633
945
  */
634
946
  applyMutations(mutations) {
947
+ // CREATE_ENTITY records are skipped (callers must restore the
948
+ // payload via restoreNewEntity). Track the ids we've skipped so a
949
+ // matching DELETE_ENTITY in the same batch doesn't tombstone an
950
+ // entity that never made it into this view — that stale tombstone
951
+ // would later suppress a freshly-allocated overlay entity reusing
952
+ // the same expressId.
953
+ const skippedCreateIds = new Set();
635
954
  for (const mutation of mutations) {
636
955
  switch (mutation.type) {
637
956
  case 'CREATE_PROPERTY':
@@ -656,6 +975,36 @@ export class MutablePropertyView {
656
975
  this.setQuantity(mutation.entityId, mutation.psetName, mutation.propName, Number(mutation.newValue), QuantityType.Count);
657
976
  }
658
977
  break;
978
+ case 'UPDATE_POSITIONAL_ATTRIBUTE': {
979
+ // attributeName is `@<index>` for positional mutations.
980
+ const attr = mutation.attributeName ?? '';
981
+ if (!attr.startsWith('@'))
982
+ break;
983
+ const index = Number(attr.slice(1));
984
+ if (!Number.isInteger(index) || index < 0)
985
+ break;
986
+ if (mutation.newValue === undefined)
987
+ break;
988
+ this.setPositionalAttribute(mutation.entityId, index, mutation.newValue);
989
+ break;
990
+ }
991
+ case 'CREATE_ENTITY': {
992
+ // Replay creates rely on the importer providing the entity body
993
+ // via `restoreNewEntity` separately. The history record alone
994
+ // doesn't carry the type+attributes payload — applying a bare
995
+ // CREATE_ENTITY would lose the entity. We log and skip rather
996
+ // than silently dropping it, so callers see they need to
997
+ // restore the payload through the dedicated path.
998
+ skippedCreateIds.add(mutation.entityId);
999
+ // eslint-disable-next-line no-console
1000
+ console.warn(`applyMutations: CREATE_ENTITY for #${mutation.entityId} requires a NewEntity payload — restore via restoreNewEntity()`);
1001
+ break;
1002
+ }
1003
+ case 'DELETE_ENTITY':
1004
+ if (skippedCreateIds.has(mutation.entityId))
1005
+ break;
1006
+ this.deleteEntity(mutation.entityId);
1007
+ break;
659
1008
  }
660
1009
  }
661
1010
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mutable-property-view.js","sourceRoot":"","sources":["../src/mutable-property-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutable-property-view.js","sourceRoot":"","sources":["../src/mutable-property-view.ts"],"names":[],"mappings":"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"}