@ifc-lite/mutations 1.15.2 → 1.15.3
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.
- package/dist/store-editor.d.ts +28 -0
- package/dist/store-editor.d.ts.map +1 -1
- package/dist/store-editor.js +34 -0
- package/dist/store-editor.js.map +1 -1
- package/package.json +4 -3
package/dist/store-editor.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ import type { MutablePropertyView } from './mutable-property-view.js';
|
|
|
16
16
|
import type { IfcAttributeValue, MutationEntityRef as EntityRef, MutationStoreShape as IfcDataStore, NewEntity } from './types.js';
|
|
17
17
|
/** Sentinel byteOffset that flags an `EntityRef` as overlay-only (no source bytes). */
|
|
18
18
|
export declare const OVERLAY_BYTE_OFFSET = -1;
|
|
19
|
+
/** Quantity kinds accepted by {@link StoreEditor.addQuantitySet}. */
|
|
20
|
+
export type QuantityKind = 'LENGTH' | 'AREA' | 'VOLUME' | 'COUNT' | 'WEIGHT' | 'TIME';
|
|
21
|
+
/** Property value kinds accepted by {@link StoreEditor.addPropertySet}. */
|
|
22
|
+
export type PropertyKind = 'TEXT' | 'LABEL' | 'REAL' | 'INTEGER' | 'BOOLEAN';
|
|
19
23
|
/**
|
|
20
24
|
* Schema-aware normaliser injected from outside the package.
|
|
21
25
|
*
|
|
@@ -84,6 +88,30 @@ export declare class StoreEditor {
|
|
|
84
88
|
getNewEntity(expressId: number): NewEntity | null;
|
|
85
89
|
/** All overlay-created entities, in insertion order. */
|
|
86
90
|
getNewEntities(): NewEntity[];
|
|
91
|
+
/**
|
|
92
|
+
* Attach a quantity set to an entity via the property view, so it surfaces in
|
|
93
|
+
* the properties panel (`getQuantitiesForEntity`) AND exports to
|
|
94
|
+
* IfcElementQuantity — the single source the rest of the app reads. Prefer
|
|
95
|
+
* this over emitting raw quantity / element-quantity entities, which the
|
|
96
|
+
* panel doesn't resolve.
|
|
97
|
+
*/
|
|
98
|
+
addQuantitySet(entityId: number, qsetName: string, quantities: Array<{
|
|
99
|
+
name: string;
|
|
100
|
+
value: number;
|
|
101
|
+
quantityType: QuantityKind;
|
|
102
|
+
unit?: string;
|
|
103
|
+
}>): void;
|
|
104
|
+
/**
|
|
105
|
+
* Attach a property set to an entity via the property view, so it surfaces in
|
|
106
|
+
* the properties panel AND exports to IfcPropertySet — the single source the
|
|
107
|
+
* rest of the app reads (the panel doesn't resolve raw overlay entities).
|
|
108
|
+
*/
|
|
109
|
+
addPropertySet(entityId: number, psetName: string, properties: Array<{
|
|
110
|
+
name: string;
|
|
111
|
+
value: string | number | boolean;
|
|
112
|
+
type: PropertyKind;
|
|
113
|
+
unit?: string;
|
|
114
|
+
}>): void;
|
|
87
115
|
private computeMaxExistingId;
|
|
88
116
|
}
|
|
89
117
|
//# sourceMappingURL=store-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-editor.d.ts","sourceRoot":"","sources":["../src/store-editor.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"store-editor.d.ts","sourceRoot":"","sources":["../src/store-editor.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,IAAI,SAAS,EAC9B,kBAAkB,IAAI,YAAY,EAClC,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,qEAAqE;AACrE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtF,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAI5D;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAE7E;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,aAAa,CAAS;gBAElB,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB;IAO1D;;;;;;OAMG;IACH,gBAAgB,IAAI,IAAI;IAQxB;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS;IAgEnE;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQxC;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIxF,sEAAsE;IACtE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAItE,6DAA6D;IAC7D,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD,wDAAwD;IACxD,cAAc,IAAI,SAAS,EAAE;IAI7B;;;;;;OAMG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,YAAY,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC5F,IAAI;IAgBP;;;;OAIG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACvG,IAAI;IAeP,OAAO,CAAC,oBAAoB;CAO7B"}
|
package/dist/store-editor.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { QuantityType, PropertyValueType } from '@ifc-lite/data';
|
|
4
5
|
/** Sentinel byteOffset that flags an `EntityRef` as overlay-only (no source bytes). */
|
|
5
6
|
export const OVERLAY_BYTE_OFFSET = -1;
|
|
6
7
|
let configuredNormalizer = null;
|
|
@@ -143,6 +144,39 @@ export class StoreEditor {
|
|
|
143
144
|
getNewEntities() {
|
|
144
145
|
return this.view.getNewEntities();
|
|
145
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Attach a quantity set to an entity via the property view, so it surfaces in
|
|
149
|
+
* the properties panel (`getQuantitiesForEntity`) AND exports to
|
|
150
|
+
* IfcElementQuantity — the single source the rest of the app reads. Prefer
|
|
151
|
+
* this over emitting raw quantity / element-quantity entities, which the
|
|
152
|
+
* panel doesn't resolve.
|
|
153
|
+
*/
|
|
154
|
+
addQuantitySet(entityId, qsetName, quantities) {
|
|
155
|
+
const kind = {
|
|
156
|
+
LENGTH: QuantityType.Length,
|
|
157
|
+
AREA: QuantityType.Area,
|
|
158
|
+
VOLUME: QuantityType.Volume,
|
|
159
|
+
COUNT: QuantityType.Count,
|
|
160
|
+
WEIGHT: QuantityType.Weight,
|
|
161
|
+
TIME: QuantityType.Time,
|
|
162
|
+
};
|
|
163
|
+
this.view.createQuantitySet(entityId, qsetName, quantities.map((q) => ({ name: q.name, value: q.value, quantityType: kind[q.quantityType], unit: q.unit })));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Attach a property set to an entity via the property view, so it surfaces in
|
|
167
|
+
* the properties panel AND exports to IfcPropertySet — the single source the
|
|
168
|
+
* rest of the app reads (the panel doesn't resolve raw overlay entities).
|
|
169
|
+
*/
|
|
170
|
+
addPropertySet(entityId, psetName, properties) {
|
|
171
|
+
const kind = {
|
|
172
|
+
TEXT: PropertyValueType.Text,
|
|
173
|
+
LABEL: PropertyValueType.Label,
|
|
174
|
+
REAL: PropertyValueType.Real,
|
|
175
|
+
INTEGER: PropertyValueType.Integer,
|
|
176
|
+
BOOLEAN: PropertyValueType.Boolean,
|
|
177
|
+
};
|
|
178
|
+
this.view.createPropertySet(entityId, psetName, properties.map((p) => ({ name: p.name, value: p.value, type: kind[p.type], unit: p.unit })));
|
|
179
|
+
}
|
|
146
180
|
computeMaxExistingId() {
|
|
147
181
|
let max = 0;
|
|
148
182
|
for (const id of this.store.entityIndex.byId.keys()) {
|
package/dist/store-editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-editor.js","sourceRoot":"","sources":["../src/store-editor.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"store-editor.js","sourceRoot":"","sources":["../src/store-editor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/mutations",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.3",
|
|
4
4
|
"description": "Mutation tracking and property editing for IFC-Lite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
10
11
|
"import": "./dist/index.js",
|
|
11
|
-
"
|
|
12
|
+
"default": "./dist/index.js"
|
|
12
13
|
}
|
|
13
14
|
},
|
|
14
15
|
"dependencies": {
|
|
15
|
-
"@ifc-lite/data": "^2.0.
|
|
16
|
+
"@ifc-lite/data": "^2.0.2"
|
|
16
17
|
},
|
|
17
18
|
"devDependencies": {
|
|
18
19
|
"typescript": "^6.0.3",
|