@ifc-lite/ids 1.0.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/LICENSE +373 -0
- package/README.md +76 -0
- package/dist/constraints/index.d.ts +17 -0
- package/dist/constraints/index.d.ts.map +1 -0
- package/dist/constraints/index.js +226 -0
- package/dist/constraints/index.js.map +1 -0
- package/dist/facets/attribute-facet.d.ts +10 -0
- package/dist/facets/attribute-facet.d.ts.map +1 -0
- package/dist/facets/attribute-facet.js +107 -0
- package/dist/facets/attribute-facet.js.map +1 -0
- package/dist/facets/classification-facet.d.ts +10 -0
- package/dist/facets/classification-facet.d.ts.map +1 -0
- package/dist/facets/classification-facet.js +98 -0
- package/dist/facets/classification-facet.js.map +1 -0
- package/dist/facets/entity-facet.d.ts +18 -0
- package/dist/facets/entity-facet.d.ts.map +1 -0
- package/dist/facets/entity-facet.js +116 -0
- package/dist/facets/entity-facet.js.map +1 -0
- package/dist/facets/index.d.ts +31 -0
- package/dist/facets/index.d.ts.map +1 -0
- package/dist/facets/index.js +57 -0
- package/dist/facets/index.js.map +1 -0
- package/dist/facets/material-facet.d.ts +10 -0
- package/dist/facets/material-facet.d.ts.map +1 -0
- package/dist/facets/material-facet.js +67 -0
- package/dist/facets/material-facet.js.map +1 -0
- package/dist/facets/partof-facet.d.ts +10 -0
- package/dist/facets/partof-facet.d.ts.map +1 -0
- package/dist/facets/partof-facet.js +112 -0
- package/dist/facets/partof-facet.js.map +1 -0
- package/dist/facets/property-facet.d.ts +10 -0
- package/dist/facets/property-facet.d.ts.map +1 -0
- package/dist/facets/property-facet.js +156 -0
- package/dist/facets/property-facet.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/xml-parser.d.ts +15 -0
- package/dist/parser/xml-parser.d.ts.map +1 -0
- package/dist/parser/xml-parser.js +486 -0
- package/dist/parser/xml-parser.js.map +1 -0
- package/dist/translation/index.d.ts +3 -0
- package/dist/translation/index.d.ts.map +1 -0
- package/dist/translation/index.js +6 -0
- package/dist/translation/index.js.map +1 -0
- package/dist/translation/locales/de.d.ts +189 -0
- package/dist/translation/locales/de.d.ts.map +1 -0
- package/dist/translation/locales/de.js +226 -0
- package/dist/translation/locales/de.js.map +1 -0
- package/dist/translation/locales/en.d.ts +190 -0
- package/dist/translation/locales/en.d.ts.map +1 -0
- package/dist/translation/locales/en.js +226 -0
- package/dist/translation/locales/en.js.map +1 -0
- package/dist/translation/locales/fr.d.ts +189 -0
- package/dist/translation/locales/fr.d.ts.map +1 -0
- package/dist/translation/locales/fr.js +226 -0
- package/dist/translation/locales/fr.js.map +1 -0
- package/dist/translation/locales/index.d.ts +4 -0
- package/dist/translation/locales/index.d.ts.map +1 -0
- package/dist/translation/locales/index.js +7 -0
- package/dist/translation/locales/index.js.map +1 -0
- package/dist/translation/service.d.ts +62 -0
- package/dist/translation/service.d.ts.map +1 -0
- package/dist/translation/service.js +569 -0
- package/dist/translation/service.js.map +1 -0
- package/dist/types.d.ts +407 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/validation/validator.d.ts +9 -0
- package/dist/validation/validator.d.ts.map +1 -0
- package/dist/validation/validator.js +431 -0
- package/dist/validation/validator.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
const IDS_NAMESPACE = 'http://standards.buildingsmart.org/IDS';
|
|
5
|
+
const XS_NAMESPACE = 'http://www.w3.org/2001/XMLSchema';
|
|
6
|
+
/** Error thrown when parsing invalid IDS XML */
|
|
7
|
+
export class IDSParseError extends Error {
|
|
8
|
+
details;
|
|
9
|
+
constructor(message, details) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.details = details;
|
|
12
|
+
this.name = 'IDSParseError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Parse IDS XML content into an IDSDocument
|
|
17
|
+
*/
|
|
18
|
+
export function parseIDS(xmlContent) {
|
|
19
|
+
const xmlString = typeof xmlContent === 'string'
|
|
20
|
+
? xmlContent
|
|
21
|
+
: new TextDecoder().decode(xmlContent);
|
|
22
|
+
const parser = new DOMParser();
|
|
23
|
+
const doc = parser.parseFromString(xmlString, 'text/xml');
|
|
24
|
+
// Check for parse errors
|
|
25
|
+
const parseError = doc.querySelector('parsererror');
|
|
26
|
+
if (parseError) {
|
|
27
|
+
throw new IDSParseError('Invalid XML format', parseError.textContent || undefined);
|
|
28
|
+
}
|
|
29
|
+
const root = doc.documentElement;
|
|
30
|
+
// Validate root element
|
|
31
|
+
if (root.localName !== 'ids') {
|
|
32
|
+
throw new IDSParseError(`Invalid root element: expected "ids", got "${root.localName}"`);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
info: parseInfo(root),
|
|
36
|
+
specifications: parseSpecifications(root),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parse the <info> section
|
|
41
|
+
*/
|
|
42
|
+
function parseInfo(root) {
|
|
43
|
+
const info = getChildElement(root, 'info');
|
|
44
|
+
if (!info) {
|
|
45
|
+
return { title: 'Untitled IDS' };
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
title: getChildText(info, 'title') || 'Untitled IDS',
|
|
49
|
+
copyright: getChildText(info, 'copyright'),
|
|
50
|
+
version: getChildText(info, 'version'),
|
|
51
|
+
author: getChildText(info, 'author'),
|
|
52
|
+
date: getChildText(info, 'date'),
|
|
53
|
+
purpose: getChildText(info, 'purpose'),
|
|
54
|
+
milestone: getChildText(info, 'milestone'),
|
|
55
|
+
description: getChildText(info, 'description'),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse the <specifications> section
|
|
60
|
+
*/
|
|
61
|
+
function parseSpecifications(root) {
|
|
62
|
+
const specsContainer = getChildElement(root, 'specifications');
|
|
63
|
+
if (!specsContainer) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
const specElements = getChildElements(specsContainer, 'specification');
|
|
67
|
+
return specElements.map((el, index) => parseSpecification(el, index));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Parse a single <specification>
|
|
71
|
+
*/
|
|
72
|
+
function parseSpecification(el, index) {
|
|
73
|
+
const name = el.getAttribute('name') || `Specification ${index + 1}`;
|
|
74
|
+
const ifcVersionAttr = el.getAttribute('ifcVersion') || 'IFC4';
|
|
75
|
+
// Parse IFC versions (can be space-separated)
|
|
76
|
+
const ifcVersions = ifcVersionAttr
|
|
77
|
+
.split(/\s+/)
|
|
78
|
+
.map((v) => normalizeIfcVersion(v))
|
|
79
|
+
.filter((v) => v !== null);
|
|
80
|
+
// Parse minOccurs/maxOccurs with NaN validation
|
|
81
|
+
const minOccursAttr = el.getAttribute('minOccurs');
|
|
82
|
+
const maxOccursAttr = el.getAttribute('maxOccurs');
|
|
83
|
+
let minOccurs;
|
|
84
|
+
if (minOccursAttr) {
|
|
85
|
+
const parsed = parseInt(minOccursAttr, 10);
|
|
86
|
+
if (Number.isFinite(parsed)) {
|
|
87
|
+
minOccurs = parsed;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
let maxOccurs;
|
|
91
|
+
if (maxOccursAttr) {
|
|
92
|
+
if (maxOccursAttr === 'unbounded') {
|
|
93
|
+
maxOccurs = 'unbounded';
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const parsed = parseInt(maxOccursAttr, 10);
|
|
97
|
+
if (Number.isFinite(parsed)) {
|
|
98
|
+
maxOccurs = parsed;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Parse applicability
|
|
103
|
+
const applicabilityEl = getChildElement(el, 'applicability');
|
|
104
|
+
const applicability = {
|
|
105
|
+
facets: applicabilityEl ? parseFacets(applicabilityEl) : [],
|
|
106
|
+
};
|
|
107
|
+
// Parse requirements
|
|
108
|
+
const requirementsEl = getChildElement(el, 'requirements');
|
|
109
|
+
const requirements = requirementsEl
|
|
110
|
+
? parseRequirements(requirementsEl)
|
|
111
|
+
: [];
|
|
112
|
+
return {
|
|
113
|
+
id: el.getAttribute('identifier') || `spec-${index}`,
|
|
114
|
+
name,
|
|
115
|
+
description: el.getAttribute('description') || undefined,
|
|
116
|
+
instructions: el.getAttribute('instructions') || undefined,
|
|
117
|
+
identifier: el.getAttribute('identifier') || undefined,
|
|
118
|
+
ifcVersions: ifcVersions.length > 0 ? ifcVersions : ['IFC4'],
|
|
119
|
+
applicability,
|
|
120
|
+
requirements,
|
|
121
|
+
minOccurs,
|
|
122
|
+
maxOccurs,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Normalize IFC version string
|
|
127
|
+
*/
|
|
128
|
+
function normalizeIfcVersion(version) {
|
|
129
|
+
const upper = version.toUpperCase().replace(/[^A-Z0-9]/g, '');
|
|
130
|
+
switch (upper) {
|
|
131
|
+
case 'IFC2X3':
|
|
132
|
+
return 'IFC2X3';
|
|
133
|
+
case 'IFC4':
|
|
134
|
+
return 'IFC4';
|
|
135
|
+
case 'IFC4X3':
|
|
136
|
+
case 'IFC4X3ADD2':
|
|
137
|
+
return 'IFC4X3';
|
|
138
|
+
default:
|
|
139
|
+
// Try to match common patterns
|
|
140
|
+
if (upper.startsWith('IFC4X3'))
|
|
141
|
+
return 'IFC4X3';
|
|
142
|
+
if (upper.startsWith('IFC4'))
|
|
143
|
+
return 'IFC4';
|
|
144
|
+
if (upper.startsWith('IFC2X3'))
|
|
145
|
+
return 'IFC2X3';
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Parse facets from an element (applicability or requirements)
|
|
151
|
+
*/
|
|
152
|
+
function parseFacets(parent) {
|
|
153
|
+
const facets = [];
|
|
154
|
+
for (const child of Array.from(parent.children)) {
|
|
155
|
+
const facet = parseFacet(child);
|
|
156
|
+
if (facet) {
|
|
157
|
+
facets.push(facet);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return facets;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Parse a single facet element
|
|
164
|
+
*/
|
|
165
|
+
function parseFacet(el) {
|
|
166
|
+
const localName = el.localName.toLowerCase();
|
|
167
|
+
switch (localName) {
|
|
168
|
+
case 'entity':
|
|
169
|
+
return parseEntityFacet(el);
|
|
170
|
+
case 'attribute':
|
|
171
|
+
return parseAttributeFacet(el);
|
|
172
|
+
case 'property':
|
|
173
|
+
return parsePropertyFacet(el);
|
|
174
|
+
case 'classification':
|
|
175
|
+
return parseClassificationFacet(el);
|
|
176
|
+
case 'material':
|
|
177
|
+
return parseMaterialFacet(el);
|
|
178
|
+
case 'partof':
|
|
179
|
+
return parsePartOfFacet(el);
|
|
180
|
+
default:
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Parse entity facet
|
|
186
|
+
*/
|
|
187
|
+
function parseEntityFacet(el) {
|
|
188
|
+
const nameEl = getChildElement(el, 'name');
|
|
189
|
+
const predefinedTypeEl = getChildElement(el, 'predefinedType');
|
|
190
|
+
if (!nameEl) {
|
|
191
|
+
throw new IDSParseError('Entity facet must have a name element');
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
type: 'entity',
|
|
195
|
+
name: parseConstraintElement(nameEl),
|
|
196
|
+
predefinedType: predefinedTypeEl
|
|
197
|
+
? parseConstraintElement(predefinedTypeEl)
|
|
198
|
+
: undefined,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Parse attribute facet
|
|
203
|
+
*/
|
|
204
|
+
function parseAttributeFacet(el) {
|
|
205
|
+
const nameEl = getChildElement(el, 'name');
|
|
206
|
+
const valueEl = getChildElement(el, 'value');
|
|
207
|
+
if (!nameEl) {
|
|
208
|
+
throw new IDSParseError('Attribute facet must have a name element');
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
type: 'attribute',
|
|
212
|
+
name: parseConstraintElement(nameEl),
|
|
213
|
+
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Parse property facet
|
|
218
|
+
*/
|
|
219
|
+
function parsePropertyFacet(el) {
|
|
220
|
+
const propertySetEl = getChildElement(el, 'propertySet');
|
|
221
|
+
const baseNameEl = getChildElement(el, 'baseName');
|
|
222
|
+
const dataTypeEl = getChildElement(el, 'dataType');
|
|
223
|
+
const valueEl = getChildElement(el, 'value');
|
|
224
|
+
if (!propertySetEl) {
|
|
225
|
+
throw new IDSParseError('Property facet must have a propertySet element');
|
|
226
|
+
}
|
|
227
|
+
if (!baseNameEl) {
|
|
228
|
+
throw new IDSParseError('Property facet must have a baseName element');
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
type: 'property',
|
|
232
|
+
propertySet: parseConstraintElement(propertySetEl),
|
|
233
|
+
baseName: parseConstraintElement(baseNameEl),
|
|
234
|
+
dataType: dataTypeEl ? parseConstraintElement(dataTypeEl) : undefined,
|
|
235
|
+
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Parse classification facet
|
|
240
|
+
*/
|
|
241
|
+
function parseClassificationFacet(el) {
|
|
242
|
+
const systemEl = getChildElement(el, 'system');
|
|
243
|
+
const valueEl = getChildElement(el, 'value');
|
|
244
|
+
return {
|
|
245
|
+
type: 'classification',
|
|
246
|
+
system: systemEl ? parseConstraintElement(systemEl) : undefined,
|
|
247
|
+
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Parse material facet
|
|
252
|
+
*/
|
|
253
|
+
function parseMaterialFacet(el) {
|
|
254
|
+
const valueEl = getChildElement(el, 'value');
|
|
255
|
+
return {
|
|
256
|
+
type: 'material',
|
|
257
|
+
value: valueEl ? parseConstraintElement(valueEl) : undefined,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Parse partOf facet
|
|
262
|
+
*/
|
|
263
|
+
function parsePartOfFacet(el) {
|
|
264
|
+
const relationAttr = el.getAttribute('relation') || 'IfcRelContainedInSpatialStructure';
|
|
265
|
+
const entityEl = getChildElement(el, 'entity');
|
|
266
|
+
const relation = normalizePartOfRelation(relationAttr);
|
|
267
|
+
return {
|
|
268
|
+
type: 'partOf',
|
|
269
|
+
relation,
|
|
270
|
+
entity: entityEl ? parseEntityFacet(entityEl) : undefined,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Normalize partOf relation string
|
|
275
|
+
*/
|
|
276
|
+
function normalizePartOfRelation(relation) {
|
|
277
|
+
const upper = relation.toUpperCase();
|
|
278
|
+
if (upper.includes('AGGREGATE'))
|
|
279
|
+
return 'IfcRelAggregates';
|
|
280
|
+
if (upper.includes('CONTAINED') || upper.includes('SPATIAL'))
|
|
281
|
+
return 'IfcRelContainedInSpatialStructure';
|
|
282
|
+
if (upper.includes('NEST'))
|
|
283
|
+
return 'IfcRelNests';
|
|
284
|
+
if (upper.includes('VOID'))
|
|
285
|
+
return 'IfcRelVoidsElement';
|
|
286
|
+
if (upper.includes('FILL'))
|
|
287
|
+
return 'IfcRelFillsElement';
|
|
288
|
+
return 'IfcRelContainedInSpatialStructure';
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Parse requirements section
|
|
292
|
+
*/
|
|
293
|
+
function parseRequirements(parent) {
|
|
294
|
+
const requirements = [];
|
|
295
|
+
let reqIndex = 0;
|
|
296
|
+
for (const child of Array.from(parent.children)) {
|
|
297
|
+
const facet = parseFacet(child);
|
|
298
|
+
if (facet) {
|
|
299
|
+
// Get optionality from the element
|
|
300
|
+
const minOccurs = child.getAttribute('minOccurs');
|
|
301
|
+
const maxOccurs = child.getAttribute('maxOccurs');
|
|
302
|
+
let optionality = 'required';
|
|
303
|
+
if (minOccurs === '0' && maxOccurs === '0') {
|
|
304
|
+
optionality = 'prohibited';
|
|
305
|
+
}
|
|
306
|
+
else if (minOccurs === '0') {
|
|
307
|
+
optionality = 'optional';
|
|
308
|
+
}
|
|
309
|
+
requirements.push({
|
|
310
|
+
id: `req-${reqIndex++}`,
|
|
311
|
+
facet,
|
|
312
|
+
optionality,
|
|
313
|
+
description: child.getAttribute('description') || undefined,
|
|
314
|
+
instructions: child.getAttribute('instructions') || undefined,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return requirements;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Parse a constraint element (can be simpleValue, restriction with pattern/enumeration/bounds)
|
|
322
|
+
*/
|
|
323
|
+
function parseConstraintElement(el) {
|
|
324
|
+
// Check for simpleValue child
|
|
325
|
+
const simpleValueEl = getChildElement(el, 'simpleValue');
|
|
326
|
+
if (simpleValueEl) {
|
|
327
|
+
return {
|
|
328
|
+
type: 'simpleValue',
|
|
329
|
+
value: simpleValueEl.textContent?.trim() || '',
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
// Check for restriction child (XSD-style)
|
|
333
|
+
const restrictionEl = getChildElementNS(el, 'restriction', XS_NAMESPACE) ||
|
|
334
|
+
getChildElement(el, 'restriction');
|
|
335
|
+
if (restrictionEl) {
|
|
336
|
+
return parseRestriction(restrictionEl);
|
|
337
|
+
}
|
|
338
|
+
// Check direct text content (simple case)
|
|
339
|
+
const textContent = el.textContent?.trim();
|
|
340
|
+
if (textContent) {
|
|
341
|
+
return {
|
|
342
|
+
type: 'simpleValue',
|
|
343
|
+
value: textContent,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
// Default to empty simple value
|
|
347
|
+
return {
|
|
348
|
+
type: 'simpleValue',
|
|
349
|
+
value: '',
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Parse XSD restriction element
|
|
354
|
+
*/
|
|
355
|
+
function parseRestriction(el) {
|
|
356
|
+
// Check for pattern
|
|
357
|
+
const patternEl = getChildElementNS(el, 'pattern', XS_NAMESPACE) ||
|
|
358
|
+
getChildElement(el, 'pattern');
|
|
359
|
+
if (patternEl) {
|
|
360
|
+
return {
|
|
361
|
+
type: 'pattern',
|
|
362
|
+
pattern: patternEl.getAttribute('value') || patternEl.textContent || '',
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
// Check for enumeration
|
|
366
|
+
const enumEls = getChildElementsNS(el, 'enumeration', XS_NAMESPACE);
|
|
367
|
+
if (enumEls.length === 0) {
|
|
368
|
+
// Try without namespace
|
|
369
|
+
const enumElsNoNS = getChildElements(el, 'enumeration');
|
|
370
|
+
if (enumElsNoNS.length > 0) {
|
|
371
|
+
return {
|
|
372
|
+
type: 'enumeration',
|
|
373
|
+
values: enumElsNoNS.map((e) => e.getAttribute('value') || e.textContent || ''),
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
return {
|
|
379
|
+
type: 'enumeration',
|
|
380
|
+
values: enumEls.map((e) => e.getAttribute('value') || e.textContent || ''),
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
// Check for bounds (minInclusive, maxInclusive, minExclusive, maxExclusive)
|
|
384
|
+
const minInclusiveEl = getChildElementNS(el, 'minInclusive', XS_NAMESPACE) ||
|
|
385
|
+
getChildElement(el, 'minInclusive');
|
|
386
|
+
const maxInclusiveEl = getChildElementNS(el, 'maxInclusive', XS_NAMESPACE) ||
|
|
387
|
+
getChildElement(el, 'maxInclusive');
|
|
388
|
+
const minExclusiveEl = getChildElementNS(el, 'minExclusive', XS_NAMESPACE) ||
|
|
389
|
+
getChildElement(el, 'minExclusive');
|
|
390
|
+
const maxExclusiveEl = getChildElementNS(el, 'maxExclusive', XS_NAMESPACE) ||
|
|
391
|
+
getChildElement(el, 'maxExclusive');
|
|
392
|
+
if (minInclusiveEl || maxInclusiveEl || minExclusiveEl || maxExclusiveEl) {
|
|
393
|
+
const bounds = {
|
|
394
|
+
type: 'bounds',
|
|
395
|
+
};
|
|
396
|
+
if (minInclusiveEl) {
|
|
397
|
+
const val = parseFloat(minInclusiveEl.getAttribute('value') ||
|
|
398
|
+
minInclusiveEl.textContent ||
|
|
399
|
+
'');
|
|
400
|
+
if (!isNaN(val)) {
|
|
401
|
+
bounds.minInclusive = val;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (maxInclusiveEl) {
|
|
405
|
+
const val = parseFloat(maxInclusiveEl.getAttribute('value') ||
|
|
406
|
+
maxInclusiveEl.textContent ||
|
|
407
|
+
'');
|
|
408
|
+
if (!isNaN(val)) {
|
|
409
|
+
bounds.maxInclusive = val;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
if (minExclusiveEl) {
|
|
413
|
+
const val = parseFloat(minExclusiveEl.getAttribute('value') ||
|
|
414
|
+
minExclusiveEl.textContent ||
|
|
415
|
+
'');
|
|
416
|
+
if (!isNaN(val)) {
|
|
417
|
+
bounds.minExclusive = val;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
if (maxExclusiveEl) {
|
|
421
|
+
const val = parseFloat(maxExclusiveEl.getAttribute('value') ||
|
|
422
|
+
maxExclusiveEl.textContent ||
|
|
423
|
+
'');
|
|
424
|
+
if (!isNaN(val)) {
|
|
425
|
+
bounds.maxExclusive = val;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
return bounds;
|
|
429
|
+
}
|
|
430
|
+
// Default: treat base attribute or text content as simple value
|
|
431
|
+
const base = el.getAttribute('base');
|
|
432
|
+
if (base) {
|
|
433
|
+
return {
|
|
434
|
+
type: 'simpleValue',
|
|
435
|
+
value: base,
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
return {
|
|
439
|
+
type: 'simpleValue',
|
|
440
|
+
value: el.textContent?.trim() || '',
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
// ============================================================================
|
|
444
|
+
// DOM Helper Functions
|
|
445
|
+
// ============================================================================
|
|
446
|
+
function getChildElement(parent, localName) {
|
|
447
|
+
for (const child of Array.from(parent.children)) {
|
|
448
|
+
if (child.localName.toLowerCase() === localName.toLowerCase()) {
|
|
449
|
+
return child;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return null;
|
|
453
|
+
}
|
|
454
|
+
function getChildElements(parent, localName) {
|
|
455
|
+
const elements = [];
|
|
456
|
+
for (const child of Array.from(parent.children)) {
|
|
457
|
+
if (child.localName.toLowerCase() === localName.toLowerCase()) {
|
|
458
|
+
elements.push(child);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
return elements;
|
|
462
|
+
}
|
|
463
|
+
function getChildElementNS(parent, localName, namespace) {
|
|
464
|
+
for (const child of Array.from(parent.children)) {
|
|
465
|
+
if (child.localName.toLowerCase() === localName.toLowerCase() &&
|
|
466
|
+
child.namespaceURI === namespace) {
|
|
467
|
+
return child;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
return null;
|
|
471
|
+
}
|
|
472
|
+
function getChildElementsNS(parent, localName, namespace) {
|
|
473
|
+
const elements = [];
|
|
474
|
+
for (const child of Array.from(parent.children)) {
|
|
475
|
+
if (child.localName.toLowerCase() === localName.toLowerCase() &&
|
|
476
|
+
child.namespaceURI === namespace) {
|
|
477
|
+
elements.push(child);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
return elements;
|
|
481
|
+
}
|
|
482
|
+
function getChildText(parent, localName) {
|
|
483
|
+
const child = getChildElement(parent, localName);
|
|
484
|
+
return child?.textContent?.trim() || undefined;
|
|
485
|
+
}
|
|
486
|
+
//# sourceMappingURL=xml-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../src/parser/xml-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translation/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
export { createTranslationService, IDSTranslationServiceImpl } from './service.js';
|
|
5
|
+
export { en, de, fr } from './locales/index.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/translation/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC"}
|