@ifc-lite/data 1.15.1 → 1.17.0
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/README.md +58 -28
- package/dist/entity-table.d.ts +53 -0
- package/dist/entity-table.d.ts.map +1 -1
- package/dist/entity-table.js +147 -93
- package/dist/entity-table.js.map +1 -1
- package/dist/ifc-schema/generated/attributes.d.ts +10 -0
- package/dist/ifc-schema/generated/attributes.d.ts.map +1 -0
- package/dist/ifc-schema/generated/attributes.js +2775 -0
- package/dist/ifc-schema/generated/attributes.js.map +1 -0
- package/dist/ifc-schema/generated/data-types.d.ts +8 -0
- package/dist/ifc-schema/generated/data-types.d.ts.map +1 -0
- package/dist/ifc-schema/generated/data-types.js +396 -0
- package/dist/ifc-schema/generated/data-types.js.map +1 -0
- package/dist/ifc-schema/generated/entities-ifc2x3.d.ts +8 -0
- package/dist/ifc-schema/generated/entities-ifc2x3.d.ts.map +1 -0
- package/dist/ifc-schema/generated/entities-ifc2x3.js +777 -0
- package/dist/ifc-schema/generated/entities-ifc2x3.js.map +1 -0
- package/dist/ifc-schema/generated/entities-ifc4.d.ts +8 -0
- package/dist/ifc-schema/generated/entities-ifc4.d.ts.map +1 -0
- package/dist/ifc-schema/generated/entities-ifc4.js +938 -0
- package/dist/ifc-schema/generated/entities-ifc4.js.map +1 -0
- package/dist/ifc-schema/generated/entities-ifc4x3.d.ts +8 -0
- package/dist/ifc-schema/generated/entities-ifc4x3.d.ts.map +1 -0
- package/dist/ifc-schema/generated/entities-ifc4x3.js +1014 -0
- package/dist/ifc-schema/generated/entities-ifc4x3.js.map +1 -0
- package/dist/ifc-schema/generated/partof-relations.d.ts +10 -0
- package/dist/ifc-schema/generated/partof-relations.d.ts.map +1 -0
- package/dist/ifc-schema/generated/partof-relations.js +28 -0
- package/dist/ifc-schema/generated/partof-relations.js.map +1 -0
- package/dist/ifc-schema/generated/psets-ifc2x3.d.ts +8 -0
- package/dist/ifc-schema/generated/psets-ifc2x3.d.ts.map +1 -0
- package/dist/ifc-schema/generated/psets-ifc2x3.js +3416 -0
- package/dist/ifc-schema/generated/psets-ifc2x3.js.map +1 -0
- package/dist/ifc-schema/generated/psets-ifc4.d.ts +8 -0
- package/dist/ifc-schema/generated/psets-ifc4.d.ts.map +1 -0
- package/dist/ifc-schema/generated/psets-ifc4.js +4510 -0
- package/dist/ifc-schema/generated/psets-ifc4.js.map +1 -0
- package/dist/ifc-schema/generated/psets-ifc4x3.d.ts +8 -0
- package/dist/ifc-schema/generated/psets-ifc4x3.d.ts.map +1 -0
- package/dist/ifc-schema/generated/psets-ifc4x3.js +8554 -0
- package/dist/ifc-schema/generated/psets-ifc4x3.js.map +1 -0
- package/dist/ifc-schema/index.d.ts +61 -0
- package/dist/ifc-schema/index.d.ts.map +1 -0
- package/dist/ifc-schema/index.js +212 -0
- package/dist/ifc-schema/index.js.map +1 -0
- package/dist/ifc-schema/types.d.ts +108 -0
- package/dist/ifc-schema/types.d.ts.map +1 -0
- package/dist/ifc-schema/types.js +5 -0
- package/dist/ifc-schema/types.js.map +1 -0
- package/dist/index.d.ts +11 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/property-table.d.ts +22 -0
- package/dist/property-table.d.ts.map +1 -1
- package/dist/property-table.js +89 -62
- package/dist/property-table.js.map +1 -1
- package/dist/quantity-table.d.ts +18 -0
- package/dist/quantity-table.d.ts.map +1 -1
- package/dist/quantity-table.js +80 -66
- package/dist/quantity-table.js.map +1 -1
- package/dist/relationship-graph.d.ts +53 -6
- package/dist/relationship-graph.d.ts.map +1 -1
- package/dist/relationship-graph.js +149 -113
- package/dist/relationship-graph.js.map +1 -1
- package/dist/string-table.d.ts +8 -0
- package/dist/string-table.d.ts.map +1 -1
- package/dist/string-table.js +20 -0
- package/dist/string-table.js.map +1 -1
- package/dist/utf8-decode.d.ts +24 -0
- package/dist/utf8-decode.d.ts.map +1 -0
- package/dist/utf8-decode.js +103 -0
- package/dist/utf8-decode.js.map +1 -0
- package/package.json +3 -2
package/dist/property-table.js
CHANGED
|
@@ -24,10 +24,6 @@ export class PropertyTableBuilder {
|
|
|
24
24
|
const valueInt = new Int32Array(count);
|
|
25
25
|
const valueBool = new Uint8Array(count).fill(255); // 255 = null
|
|
26
26
|
const unitId = new Int32Array(count).fill(-1);
|
|
27
|
-
// Build indices
|
|
28
|
-
const entityIndex = new Map();
|
|
29
|
-
const psetIndex = new Map();
|
|
30
|
-
const propIndex = new Map();
|
|
31
27
|
// Fill arrays
|
|
32
28
|
for (let i = 0; i < count; i++) {
|
|
33
29
|
const row = this.rows[i];
|
|
@@ -65,13 +61,8 @@ export class PropertyTableBuilder {
|
|
|
65
61
|
if (row.unitId !== undefined) {
|
|
66
62
|
unitId[i] = row.unitId;
|
|
67
63
|
}
|
|
68
|
-
// Build indices
|
|
69
|
-
addToIndex(entityIndex, row.entityId, i);
|
|
70
|
-
addToIndex(psetIndex, psetNameIdx, i);
|
|
71
|
-
addToIndex(propIndex, propNameIdx, i);
|
|
72
64
|
}
|
|
73
|
-
|
|
74
|
-
const table = {
|
|
65
|
+
return propertyTableFromColumns({
|
|
75
66
|
count,
|
|
76
67
|
entityId,
|
|
77
68
|
psetName,
|
|
@@ -83,61 +74,97 @@ export class PropertyTableBuilder {
|
|
|
83
74
|
valueInt,
|
|
84
75
|
valueBool,
|
|
85
76
|
unitId,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
77
|
+
}, this.strings);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Rebuild a live `PropertyTable` (closures + indices) from column data. */
|
|
81
|
+
export function propertyTableFromColumns(columns, strings) {
|
|
82
|
+
const { count, entityId, psetName, psetGlobalId, propName, propType, valueString, valueReal, valueInt, valueBool, unitId, } = columns;
|
|
83
|
+
const entityIndex = new Map();
|
|
84
|
+
const psetIndex = new Map();
|
|
85
|
+
const propIndex = new Map();
|
|
86
|
+
for (let i = 0; i < count; i++) {
|
|
87
|
+
addToIndex(entityIndex, entityId[i], i);
|
|
88
|
+
addToIndex(psetIndex, psetName[i], i);
|
|
89
|
+
addToIndex(propIndex, propName[i], i);
|
|
90
|
+
}
|
|
91
|
+
const table = {
|
|
92
|
+
count,
|
|
93
|
+
entityId,
|
|
94
|
+
psetName,
|
|
95
|
+
psetGlobalId,
|
|
96
|
+
propName,
|
|
97
|
+
propType,
|
|
98
|
+
valueString,
|
|
99
|
+
valueReal,
|
|
100
|
+
valueInt,
|
|
101
|
+
valueBool,
|
|
102
|
+
unitId,
|
|
103
|
+
entityIndex,
|
|
104
|
+
psetIndex,
|
|
105
|
+
propIndex,
|
|
106
|
+
getForEntity: (id) => {
|
|
107
|
+
const rowIndices = entityIndex.get(id) || [];
|
|
108
|
+
const psets = new Map();
|
|
109
|
+
for (const idx of rowIndices) {
|
|
110
|
+
const psetNameStr = strings.get(psetName[idx]);
|
|
111
|
+
const psetGlobalIdStr = strings.get(psetGlobalId[idx]);
|
|
112
|
+
if (!psets.has(psetNameStr)) {
|
|
113
|
+
psets.set(psetNameStr, { name: psetNameStr, globalId: psetGlobalIdStr, properties: [] });
|
|
110
114
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
const pset = psets.get(psetNameStr);
|
|
116
|
+
const propNameStr = strings.get(propName[idx]);
|
|
117
|
+
pset.properties.push({
|
|
118
|
+
name: propNameStr,
|
|
119
|
+
type: propType[idx],
|
|
120
|
+
value: getPropertyValue(table, idx, strings),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return Array.from(psets.values());
|
|
124
|
+
},
|
|
125
|
+
getPropertyValue: (id, pset, prop) => {
|
|
126
|
+
const rowIndices = entityIndex.get(id) || [];
|
|
127
|
+
const psetIdx = strings.indexOf(pset);
|
|
128
|
+
const propIdx = strings.indexOf(prop);
|
|
129
|
+
for (const idx of rowIndices) {
|
|
130
|
+
if (psetName[idx] === psetIdx && propName[idx] === propIdx) {
|
|
131
|
+
return getPropertyValue(table, idx, strings);
|
|
121
132
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
},
|
|
136
|
+
findByProperty: (prop, operator, value) => {
|
|
137
|
+
const propIdx = strings.indexOf(prop);
|
|
138
|
+
if (propIdx < 0)
|
|
139
|
+
return [];
|
|
140
|
+
const rowIndices = propIndex.get(propIdx) || [];
|
|
141
|
+
const results = [];
|
|
142
|
+
for (const idx of rowIndices) {
|
|
143
|
+
const propValue = getPropertyValue(table, idx, strings);
|
|
144
|
+
if (compareValues(propValue, operator, value)) {
|
|
145
|
+
results.push(entityId[idx]);
|
|
135
146
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
147
|
+
}
|
|
148
|
+
return results;
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
return table;
|
|
152
|
+
}
|
|
153
|
+
/** Extract column data from a `PropertyTable` for transport. */
|
|
154
|
+
export function propertyTableToColumns(table) {
|
|
155
|
+
return {
|
|
156
|
+
count: table.count,
|
|
157
|
+
entityId: table.entityId,
|
|
158
|
+
psetName: table.psetName,
|
|
159
|
+
psetGlobalId: table.psetGlobalId,
|
|
160
|
+
propName: table.propName,
|
|
161
|
+
propType: table.propType,
|
|
162
|
+
valueString: table.valueString,
|
|
163
|
+
valueReal: table.valueReal,
|
|
164
|
+
valueInt: table.valueInt,
|
|
165
|
+
valueBool: table.valueBool,
|
|
166
|
+
unitId: table.unitId,
|
|
167
|
+
};
|
|
141
168
|
}
|
|
142
169
|
function addToIndex(index, key, value) {
|
|
143
170
|
let list = index.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-table.js","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAQ/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAyC/C,MAAM,OAAO,oBAAoB;IACvB,OAAO,CAAc;IACrB,IAAI,GAAkB,EAAE,CAAC;IAEjC,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAE/B,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa;QAChE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,
|
|
1
|
+
{"version":3,"file":"property-table.js","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"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"}
|
package/dist/quantity-table.d.ts
CHANGED
|
@@ -38,6 +38,24 @@ export declare class QuantityTableBuilder {
|
|
|
38
38
|
add(row: QuantityRow): void;
|
|
39
39
|
build(): QuantityTable;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Plain-data column representation of a `QuantityTable`. Indices are
|
|
43
|
+
* derived in `quantityTableFromColumns`.
|
|
44
|
+
*/
|
|
45
|
+
export interface QuantityTableColumns {
|
|
46
|
+
count: number;
|
|
47
|
+
entityId: Uint32Array;
|
|
48
|
+
qsetName: Uint32Array;
|
|
49
|
+
quantityName: Uint32Array;
|
|
50
|
+
quantityType: Uint8Array;
|
|
51
|
+
value: Float64Array;
|
|
52
|
+
unitId: Int32Array;
|
|
53
|
+
formula: Uint32Array;
|
|
54
|
+
}
|
|
55
|
+
/** Rebuild a live `QuantityTable` (closures + indices) from column data. */
|
|
56
|
+
export declare function quantityTableFromColumns(columns: QuantityTableColumns, strings: StringTable): QuantityTable;
|
|
57
|
+
/** Extract column data from a `QuantityTable` for transport. */
|
|
58
|
+
export declare function quantityTableToColumns(table: QuantityTable): QuantityTableColumns;
|
|
41
59
|
interface QuantityRow {
|
|
42
60
|
entityId: number;
|
|
43
61
|
qsetName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quantity-table.d.ts","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IAErB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAErC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxF,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/D;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAqB;gBAErB,OAAO,EAAE,WAAW;IAIhC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAI3B,KAAK,IAAI,aAAa;
|
|
1
|
+
{"version":3,"file":"quantity-table.d.ts","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IAErB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAErC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxF,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/D;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAqB;gBAErB,OAAO,EAAE,WAAW;IAIhC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAI3B,KAAK,IAAI,aAAa;CA2BvB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,CAkE3G;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAWjF;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
package/dist/quantity-table.js
CHANGED
|
@@ -19,9 +19,6 @@ export class QuantityTableBuilder {
|
|
|
19
19
|
const value = new Float64Array(count);
|
|
20
20
|
const unitId = new Int32Array(count).fill(-1);
|
|
21
21
|
const formula = new Uint32Array(count).fill(0);
|
|
22
|
-
const entityIndex = new Map();
|
|
23
|
-
const qsetIndex = new Map();
|
|
24
|
-
const quantityIndex = new Map();
|
|
25
22
|
for (let i = 0; i < count; i++) {
|
|
26
23
|
const row = this.rows[i];
|
|
27
24
|
entityId[i] = row.entityId;
|
|
@@ -29,74 +26,91 @@ export class QuantityTableBuilder {
|
|
|
29
26
|
quantityName[i] = this.strings.intern(row.quantityName);
|
|
30
27
|
quantityType[i] = row.quantityType;
|
|
31
28
|
value[i] = row.value;
|
|
32
|
-
if (row.unitId !== undefined)
|
|
29
|
+
if (row.unitId !== undefined)
|
|
33
30
|
unitId[i] = row.unitId;
|
|
34
|
-
|
|
35
|
-
if (row.formula) {
|
|
31
|
+
if (row.formula)
|
|
36
32
|
formula[i] = this.strings.intern(row.formula);
|
|
37
|
-
}
|
|
38
|
-
addToIndex(entityIndex, row.entityId, i);
|
|
39
|
-
addToIndex(qsetIndex, qsetName[i], i);
|
|
40
|
-
addToIndex(quantityIndex, quantityName[i], i);
|
|
41
33
|
}
|
|
42
|
-
return {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
getQuantityValue: (id, qset, quant) => {
|
|
77
|
-
const rowIndices = entityIndex.get(id) || [];
|
|
78
|
-
const qsetIdx = this.strings.indexOf(qset);
|
|
79
|
-
const quantIdx = this.strings.indexOf(quant);
|
|
80
|
-
for (const idx of rowIndices) {
|
|
81
|
-
if (qsetName[idx] === qsetIdx && quantityName[idx] === quantIdx) {
|
|
82
|
-
return value[idx];
|
|
83
|
-
}
|
|
34
|
+
return quantityTableFromColumns({ count, entityId, qsetName, quantityName, quantityType, value, unitId, formula }, this.strings);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Rebuild a live `QuantityTable` (closures + indices) from column data. */
|
|
38
|
+
export function quantityTableFromColumns(columns, strings) {
|
|
39
|
+
const { count, entityId, qsetName, quantityName, quantityType, value, unitId, formula } = columns;
|
|
40
|
+
const entityIndex = new Map();
|
|
41
|
+
const qsetIndex = new Map();
|
|
42
|
+
const quantityIndex = new Map();
|
|
43
|
+
for (let i = 0; i < count; i++) {
|
|
44
|
+
addToIndex(entityIndex, entityId[i], i);
|
|
45
|
+
addToIndex(qsetIndex, qsetName[i], i);
|
|
46
|
+
addToIndex(quantityIndex, quantityName[i], i);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
count,
|
|
50
|
+
entityId,
|
|
51
|
+
qsetName,
|
|
52
|
+
quantityName,
|
|
53
|
+
quantityType,
|
|
54
|
+
value,
|
|
55
|
+
unitId,
|
|
56
|
+
formula,
|
|
57
|
+
entityIndex,
|
|
58
|
+
qsetIndex,
|
|
59
|
+
quantityIndex,
|
|
60
|
+
getForEntity: (id) => {
|
|
61
|
+
const rowIndices = entityIndex.get(id) || [];
|
|
62
|
+
const qsets = new Map();
|
|
63
|
+
for (const idx of rowIndices) {
|
|
64
|
+
const qsetNameStr = strings.get(qsetName[idx]);
|
|
65
|
+
if (!qsets.has(qsetNameStr)) {
|
|
66
|
+
qsets.set(qsetNameStr, { name: qsetNameStr, quantities: [] });
|
|
84
67
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
68
|
+
const qset = qsets.get(qsetNameStr);
|
|
69
|
+
const quantNameStr = strings.get(quantityName[idx]);
|
|
70
|
+
qset.quantities.push({
|
|
71
|
+
name: quantNameStr,
|
|
72
|
+
type: quantityType[idx],
|
|
73
|
+
value: value[idx],
|
|
74
|
+
formula: formula[idx] > 0 ? strings.get(formula[idx]) : undefined,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return Array.from(qsets.values());
|
|
78
|
+
},
|
|
79
|
+
getQuantityValue: (id, qset, quant) => {
|
|
80
|
+
const rowIndices = entityIndex.get(id) || [];
|
|
81
|
+
const qsetIdx = strings.indexOf(qset);
|
|
82
|
+
const quantIdx = strings.indexOf(quant);
|
|
83
|
+
for (const idx of rowIndices) {
|
|
84
|
+
if (qsetName[idx] === qsetIdx && quantityName[idx] === quantIdx) {
|
|
85
|
+
return value[idx];
|
|
95
86
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
},
|
|
90
|
+
sumByType: (quantName) => {
|
|
91
|
+
const quantIdx = strings.indexOf(quantName);
|
|
92
|
+
if (quantIdx < 0)
|
|
93
|
+
return 0;
|
|
94
|
+
const rowIndices = quantityIndex.get(quantIdx) || [];
|
|
95
|
+
let sum = 0;
|
|
96
|
+
for (const idx of rowIndices)
|
|
97
|
+
sum += value[idx];
|
|
98
|
+
return sum;
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/** Extract column data from a `QuantityTable` for transport. */
|
|
103
|
+
export function quantityTableToColumns(table) {
|
|
104
|
+
return {
|
|
105
|
+
count: table.count,
|
|
106
|
+
entityId: table.entityId,
|
|
107
|
+
qsetName: table.qsetName,
|
|
108
|
+
quantityName: table.quantityName,
|
|
109
|
+
quantityType: table.quantityType,
|
|
110
|
+
value: table.value,
|
|
111
|
+
unitId: table.unitId,
|
|
112
|
+
formula: table.formula,
|
|
113
|
+
};
|
|
100
114
|
}
|
|
101
115
|
function addToIndex(index, key, value) {
|
|
102
116
|
let list = index.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quantity-table.js","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA2C/D,MAAM,OAAO,oBAAoB;IACvB,OAAO,CAAc;IACrB,IAAI,GAAkB,EAAE,CAAC;IAEjC,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAE/B,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/C,
|
|
1
|
+
{"version":3,"file":"quantity-table.js","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,11 +43,58 @@ export declare class RelationshipGraphBuilder {
|
|
|
43
43
|
private _relIds;
|
|
44
44
|
addEdge(source: number, target: number, type: RelationshipType, relId: number): void;
|
|
45
45
|
build(): RelationshipGraph;
|
|
46
|
-
/**
|
|
47
|
-
* Build CSR (Compressed Sparse Row) using counting sort.
|
|
48
|
-
* O(n) instead of O(n log n) — crucial for 12M+ edges.
|
|
49
|
-
*/
|
|
50
|
-
private buildCSR;
|
|
51
|
-
private emptyEdges;
|
|
52
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Plain-data column representation of `RelationshipEdges` (one half of a
|
|
49
|
+
* `RelationshipGraph`). Holds CSR offsets, counts, and parallel edge arrays
|
|
50
|
+
* with no closures.
|
|
51
|
+
*/
|
|
52
|
+
export interface RelationshipEdgesColumns {
|
|
53
|
+
offsets: Map<number, number>;
|
|
54
|
+
counts: Map<number, number>;
|
|
55
|
+
edgeTargets: Uint32Array;
|
|
56
|
+
edgeTypes: Uint16Array;
|
|
57
|
+
edgeRelIds: Uint32Array;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Plain-data representation of a complete bidirectional `RelationshipGraph`.
|
|
61
|
+
* Used as the worker-transport payload — both halves are pure column data,
|
|
62
|
+
* so the underlying buffers are transferable.
|
|
63
|
+
*/
|
|
64
|
+
export interface RelationshipGraphColumns {
|
|
65
|
+
forward: RelationshipEdgesColumns;
|
|
66
|
+
inverse: RelationshipEdgesColumns;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build CSR (Compressed Sparse Row) using counting sort.
|
|
70
|
+
* O(n) instead of O(n log n) — crucial for 12M+ edges.
|
|
71
|
+
*
|
|
72
|
+
* Exported because the graph can be reconstructed from raw edge arrays
|
|
73
|
+
* (e.g. when merging or rebuilding a graph) without going through the
|
|
74
|
+
* `RelationshipGraphBuilder` mutation API.
|
|
75
|
+
*/
|
|
76
|
+
export declare function buildCSR(n: number, keys: number[] | Uint32Array, values: number[] | Uint32Array, types: number[] | Uint16Array, relIds: number[] | Uint32Array): RelationshipEdges;
|
|
77
|
+
/**
|
|
78
|
+
* Rebuild the closure-bearing `RelationshipEdges` view (one direction of
|
|
79
|
+
* the graph) from raw CSR columns. Used by both the in-process builder and
|
|
80
|
+
* the parser-worker transport layer.
|
|
81
|
+
*/
|
|
82
|
+
export declare function relationshipEdgesFromColumns(columns: RelationshipEdgesColumns): RelationshipEdges;
|
|
83
|
+
/**
|
|
84
|
+
* Compose a complete `RelationshipGraph` from the two directional halves.
|
|
85
|
+
* Splits cleanly so that the column extractor can pull edges without
|
|
86
|
+
* touching the closures attached above.
|
|
87
|
+
*/
|
|
88
|
+
export declare function relationshipGraphFromEdges(forward: RelationshipEdges, inverse: RelationshipEdges): RelationshipGraph;
|
|
89
|
+
/**
|
|
90
|
+
* Reconstruct a `RelationshipGraph` (closures + both halves) from the
|
|
91
|
+
* column-only POJO produced by `relationshipGraphToColumns`.
|
|
92
|
+
*/
|
|
93
|
+
export declare function relationshipGraphFromColumns(columns: RelationshipGraphColumns): RelationshipGraph;
|
|
94
|
+
/**
|
|
95
|
+
* Extract the column data (CSR offsets, counts, parallel edge arrays) from
|
|
96
|
+
* a `RelationshipGraph`. The returned typed arrays alias the source — they
|
|
97
|
+
* detach from the source when used in a `postMessage` transfer list.
|
|
98
|
+
*/
|
|
99
|
+
export declare function relationshipGraphToColumns(graph: RelationshipGraph): RelationshipGraphColumns;
|
|
53
100
|
//# sourceMappingURL=relationship-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-graph.d.ts","sourceRoot":"","sources":["../src/relationship-graph.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IAExB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAAE,CAAC;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAAC;IAChE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAE3B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IACpG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACzF,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOpF,KAAK,IAAI,iBAAiB;
|
|
1
|
+
{"version":3,"file":"relationship-graph.d.ts","sourceRoot":"","sources":["../src/relationship-graph.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IAExB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAAE,CAAC;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAAC;IAChE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAE3B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IACpG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACzF,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOpF,KAAK,IAAI,iBAAiB;CAM3B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,wBAAwB,CAAC;IAClC,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,EAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAC9B,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,GAC7B,iBAAiB,CAsCnB;AAYD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAgCjG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,iBAAiB,CA2BnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,GAAG,wBAAwB,CAiB7F"}
|