@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.
Files changed (75) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +76 -0
  3. package/dist/constraints/index.d.ts +17 -0
  4. package/dist/constraints/index.d.ts.map +1 -0
  5. package/dist/constraints/index.js +226 -0
  6. package/dist/constraints/index.js.map +1 -0
  7. package/dist/facets/attribute-facet.d.ts +10 -0
  8. package/dist/facets/attribute-facet.d.ts.map +1 -0
  9. package/dist/facets/attribute-facet.js +107 -0
  10. package/dist/facets/attribute-facet.js.map +1 -0
  11. package/dist/facets/classification-facet.d.ts +10 -0
  12. package/dist/facets/classification-facet.d.ts.map +1 -0
  13. package/dist/facets/classification-facet.js +98 -0
  14. package/dist/facets/classification-facet.js.map +1 -0
  15. package/dist/facets/entity-facet.d.ts +18 -0
  16. package/dist/facets/entity-facet.d.ts.map +1 -0
  17. package/dist/facets/entity-facet.js +116 -0
  18. package/dist/facets/entity-facet.js.map +1 -0
  19. package/dist/facets/index.d.ts +31 -0
  20. package/dist/facets/index.d.ts.map +1 -0
  21. package/dist/facets/index.js +57 -0
  22. package/dist/facets/index.js.map +1 -0
  23. package/dist/facets/material-facet.d.ts +10 -0
  24. package/dist/facets/material-facet.d.ts.map +1 -0
  25. package/dist/facets/material-facet.js +67 -0
  26. package/dist/facets/material-facet.js.map +1 -0
  27. package/dist/facets/partof-facet.d.ts +10 -0
  28. package/dist/facets/partof-facet.d.ts.map +1 -0
  29. package/dist/facets/partof-facet.js +112 -0
  30. package/dist/facets/partof-facet.js.map +1 -0
  31. package/dist/facets/property-facet.d.ts +10 -0
  32. package/dist/facets/property-facet.d.ts.map +1 -0
  33. package/dist/facets/property-facet.js +156 -0
  34. package/dist/facets/property-facet.js.map +1 -0
  35. package/dist/index.d.ts +18 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +26 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/parser/xml-parser.d.ts +15 -0
  40. package/dist/parser/xml-parser.d.ts.map +1 -0
  41. package/dist/parser/xml-parser.js +486 -0
  42. package/dist/parser/xml-parser.js.map +1 -0
  43. package/dist/translation/index.d.ts +3 -0
  44. package/dist/translation/index.d.ts.map +1 -0
  45. package/dist/translation/index.js +6 -0
  46. package/dist/translation/index.js.map +1 -0
  47. package/dist/translation/locales/de.d.ts +189 -0
  48. package/dist/translation/locales/de.d.ts.map +1 -0
  49. package/dist/translation/locales/de.js +226 -0
  50. package/dist/translation/locales/de.js.map +1 -0
  51. package/dist/translation/locales/en.d.ts +190 -0
  52. package/dist/translation/locales/en.d.ts.map +1 -0
  53. package/dist/translation/locales/en.js +226 -0
  54. package/dist/translation/locales/en.js.map +1 -0
  55. package/dist/translation/locales/fr.d.ts +189 -0
  56. package/dist/translation/locales/fr.d.ts.map +1 -0
  57. package/dist/translation/locales/fr.js +226 -0
  58. package/dist/translation/locales/fr.js.map +1 -0
  59. package/dist/translation/locales/index.d.ts +4 -0
  60. package/dist/translation/locales/index.d.ts.map +1 -0
  61. package/dist/translation/locales/index.js +7 -0
  62. package/dist/translation/locales/index.js.map +1 -0
  63. package/dist/translation/service.d.ts +62 -0
  64. package/dist/translation/service.d.ts.map +1 -0
  65. package/dist/translation/service.js +569 -0
  66. package/dist/translation/service.js.map +1 -0
  67. package/dist/types.d.ts +407 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +5 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/validation/validator.d.ts +9 -0
  72. package/dist/validation/validator.d.ts.map +1 -0
  73. package/dist/validation/validator.js +431 -0
  74. package/dist/validation/validator.js.map +1 -0
  75. package/package.json +51 -0
@@ -0,0 +1,226 @@
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
+ /**
5
+ * English translations for IDS validation
6
+ */
7
+ export const en = {
8
+ // ============================================================================
9
+ // Status
10
+ // ============================================================================
11
+ status: {
12
+ pass: 'PASS',
13
+ fail: 'FAIL',
14
+ not_applicable: 'NOT APPLICABLE',
15
+ },
16
+ // ============================================================================
17
+ // Optionality / Cardinality
18
+ // ============================================================================
19
+ optionality: {
20
+ required: 'Required',
21
+ optional: 'Optional',
22
+ prohibited: 'Prohibited',
23
+ },
24
+ cardinality: {
25
+ satisfied: 'Cardinality satisfied',
26
+ atLeast: 'Expected at least {min}, found {count}',
27
+ atMost: 'Expected at most {max}, found {count}',
28
+ between: 'Expected between {min} and {max}, found {count}',
29
+ exactly: 'Expected exactly {count}',
30
+ },
31
+ // ============================================================================
32
+ // Relationships
33
+ // ============================================================================
34
+ relations: {
35
+ IfcRelAggregates: 'part of',
36
+ IfcRelContainedInSpatialStructure: 'contained in',
37
+ IfcRelNests: 'nested in',
38
+ IfcRelVoidsElement: 'voiding',
39
+ IfcRelFillsElement: 'filling',
40
+ },
41
+ // ============================================================================
42
+ // Constraint Descriptions
43
+ // ============================================================================
44
+ constraints: {
45
+ simpleValue: '"{value}"',
46
+ pattern: 'matching pattern "{pattern}"',
47
+ enumeration: {
48
+ single: '"{value}"',
49
+ multiple: 'one of [{values}]',
50
+ },
51
+ bounds: {
52
+ between: 'between {min} and {max}',
53
+ atLeast: 'at least {min}',
54
+ atMost: 'at most {max}',
55
+ greaterThan: 'greater than {min}',
56
+ lessThan: 'less than {max}',
57
+ },
58
+ },
59
+ // ============================================================================
60
+ // Applicability Descriptions
61
+ // ============================================================================
62
+ applicability: {
63
+ entity: {
64
+ simple: 'Elements of type {entityType}',
65
+ withPredefined: '{entityType} elements with predefined type {predefinedType}',
66
+ pattern: 'Elements with type matching {pattern}',
67
+ },
68
+ attribute: {
69
+ exists: 'Elements where attribute "{name}" exists',
70
+ equals: 'Elements where "{name}" equals {value}',
71
+ pattern: 'Elements where "{name}" matches {pattern}',
72
+ },
73
+ property: {
74
+ exists: 'Elements with property "{property}" in "{pset}"',
75
+ equals: 'Elements where "{pset}.{property}" equals {value}',
76
+ pattern: 'Elements where "{pset}.{property}" matches {pattern}',
77
+ bounded: 'Elements where "{pset}.{property}" is {bounds}',
78
+ },
79
+ classification: {
80
+ any: 'Elements with any classification',
81
+ system: 'Elements classified in "{system}"',
82
+ value: 'Elements with classification "{value}"',
83
+ systemAndValue: 'Elements classified as "{value}" in "{system}"',
84
+ },
85
+ material: {
86
+ any: 'Elements with any material assigned',
87
+ value: 'Elements with material "{value}"',
88
+ pattern: 'Elements with material matching {pattern}',
89
+ },
90
+ partOf: {
91
+ simple: 'Elements that are {relation} another element',
92
+ withEntity: 'Elements that are {relation} a {entity}',
93
+ withEntityAndType: 'Elements that are {relation} a {entity} with type {predefinedType}',
94
+ },
95
+ },
96
+ // ============================================================================
97
+ // Requirement Descriptions
98
+ // ============================================================================
99
+ requirements: {
100
+ entity: {
101
+ mustBe: 'Must be of type {entityType}',
102
+ mustHavePredefined: 'Must have predefined type {predefinedType}',
103
+ mustBeWithPredefined: 'Must be {entityType} with predefined type {predefinedType}',
104
+ },
105
+ attribute: {
106
+ mustExist: 'Attribute "{name}" must exist',
107
+ mustEqual: 'Attribute "{name}" must equal {value}',
108
+ mustMatch: 'Attribute "{name}" must match {pattern}',
109
+ mustNotExist: 'Attribute "{name}" must not exist',
110
+ mustNotEqual: 'Attribute "{name}" must not equal {value}',
111
+ },
112
+ property: {
113
+ mustExist: 'Property "{pset}.{property}" must exist',
114
+ mustEqual: 'Property "{pset}.{property}" must equal {value}',
115
+ mustMatch: 'Property "{pset}.{property}" must match {pattern}',
116
+ mustBeBounded: 'Property "{pset}.{property}" must be {bounds}',
117
+ mustHaveType: 'Property "{pset}.{property}" must be of type {dataType}',
118
+ mustNotExist: 'Property "{pset}.{property}" must not exist',
119
+ },
120
+ classification: {
121
+ mustHave: 'Must have a classification',
122
+ mustBeInSystem: 'Must be classified in "{system}"',
123
+ mustHaveValue: 'Must have classification "{value}"',
124
+ mustBeInSystemWithValue: 'Must be classified as "{value}" in "{system}"',
125
+ mustNotHave: 'Must not have any classification',
126
+ mustNotBeInSystem: 'Must not be classified in "{system}"',
127
+ },
128
+ material: {
129
+ mustHave: 'Must have a material assigned',
130
+ mustBe: 'Must have material "{value}"',
131
+ mustMatch: 'Must have material matching {pattern}',
132
+ mustNotHave: 'Must not have any material assigned',
133
+ },
134
+ partOf: {
135
+ mustBe: 'Must be {relation} a {entity}',
136
+ mustBeSimple: 'Must be {relation} another element',
137
+ mustNotBe: 'Must not be {relation} any element',
138
+ },
139
+ },
140
+ // ============================================================================
141
+ // Failure Reasons
142
+ // ============================================================================
143
+ failures: {
144
+ // Entity failures
145
+ entityTypeMismatch: 'Entity type is "{actual}", expected {expected}',
146
+ predefinedTypeMismatch: 'Predefined type is "{actual}", expected {expected}',
147
+ predefinedTypeMissing: 'Predefined type is not set, expected {expected}',
148
+ // Attribute failures
149
+ attributeMissing: 'Attribute "{name}" does not exist',
150
+ attributeEmpty: 'Attribute "{name}" is empty',
151
+ attributeValueMismatch: 'Attribute "{name}" is "{actual}", expected {expected}',
152
+ attributePatternMismatch: 'Attribute "{name}" value "{actual}" does not match pattern {expected}',
153
+ attributeProhibited: 'Prohibited attribute "{name}" exists with value "{actual}"',
154
+ // Property failures
155
+ psetMissing: 'Property set "{pset}" not found',
156
+ psetMissingAvailable: 'Property set "{pset}" not found. Available: {available}',
157
+ propertyMissing: 'Property "{property}" not found in "{pset}"',
158
+ propertyMissingAvailable: 'Property "{property}" not found in "{pset}". Available: {available}',
159
+ propertyEmpty: 'Property "{pset}.{property}" has no value',
160
+ propertyValueMismatch: 'Property "{pset}.{property}" is "{actual}", expected {expected}',
161
+ propertyPatternMismatch: 'Property "{pset}.{property}" value "{actual}" does not match {expected}',
162
+ propertyDatatypeMismatch: 'Property "{pset}.{property}" data type is "{actual}", expected {expected}',
163
+ propertyOutOfBounds: 'Property "{pset}.{property}" value {actual} is out of range {expected}',
164
+ propertyProhibited: 'Prohibited property "{pset}.{property}" exists with value "{actual}"',
165
+ // Classification failures
166
+ classificationMissing: 'No classification assigned',
167
+ classificationSystemMismatch: 'Classification system "{actual}" does not match expected "{expected}"',
168
+ classificationSystemMissingAvailable: 'Classification system "{expected}" not found. Available: {available}',
169
+ classificationValueMismatch: 'Classification code "{actual}" does not match expected {expected}',
170
+ classificationValueMissingAvailable: 'Classification code {expected} not found. Available: {available}',
171
+ classificationProhibited: 'Prohibited classification "{actual}" exists in system "{system}"',
172
+ // Material failures
173
+ materialMissing: 'No material assigned',
174
+ materialValueMismatch: 'Material "{actual}" does not match expected {expected}',
175
+ materialValueMissingAvailable: 'Material {expected} not found. Available: {available}',
176
+ materialProhibited: 'Prohibited material "{actual}" is assigned',
177
+ // PartOf failures
178
+ partOfMissing: 'Element is not {relation} any {entity}',
179
+ partOfMissingSimple: 'Element is not {relation} any element',
180
+ partOfEntityMismatch: 'Parent element is {actual}, expected {expected}',
181
+ partOfPredefinedMismatch: 'Parent predefined type is "{actual}", expected {expected}',
182
+ partOfProhibited: 'Element is {relation} {actual}, which is prohibited',
183
+ // Generic
184
+ prohibited: 'Prohibited {field} found: "{actual}"',
185
+ unknown: 'Validation failed: {reason}',
186
+ },
187
+ // ============================================================================
188
+ // Summary
189
+ // ============================================================================
190
+ summary: {
191
+ title: 'IDS Validation Report',
192
+ specifications: '{passed}/{total} specifications passed',
193
+ entities: '{passed}/{total} entities compliant ({percent}%)',
194
+ overallPass: 'Model meets all requirements',
195
+ overallFail: 'Model has {count} failing specifications',
196
+ noApplicable: 'No applicable entities found',
197
+ },
198
+ // ============================================================================
199
+ // UI Labels
200
+ // ============================================================================
201
+ ui: {
202
+ specification: 'Specification',
203
+ specifications: 'Specifications',
204
+ requirement: 'Requirement',
205
+ requirements: 'Requirements',
206
+ applicability: 'Applies to',
207
+ entity: 'Entity',
208
+ entities: 'Entities',
209
+ passed: 'Passed',
210
+ failed: 'Failed',
211
+ passRate: 'Pass rate',
212
+ actualValue: 'Actual',
213
+ expectedValue: 'Expected',
214
+ failureReason: 'Reason',
215
+ showAll: 'Show all',
216
+ showFailed: 'Show failed only',
217
+ isolateFailed: 'Isolate failed',
218
+ isolatePassed: 'Isolate passed',
219
+ exportJson: 'Export JSON',
220
+ exportBcf: 'Export BCF',
221
+ loadIds: 'Load IDS file',
222
+ runValidation: 'Run validation',
223
+ clearResults: 'Clear results',
224
+ },
225
+ };
226
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/translation/locales/en.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * French translations for IDS validation
3
+ */
4
+ export declare const fr: {
5
+ status: {
6
+ pass: string;
7
+ fail: string;
8
+ not_applicable: string;
9
+ };
10
+ optionality: {
11
+ required: string;
12
+ optional: string;
13
+ prohibited: string;
14
+ };
15
+ cardinality: {
16
+ satisfied: string;
17
+ atLeast: string;
18
+ atMost: string;
19
+ between: string;
20
+ exactly: string;
21
+ };
22
+ relations: {
23
+ IfcRelAggregates: string;
24
+ IfcRelContainedInSpatialStructure: string;
25
+ IfcRelNests: string;
26
+ IfcRelVoidsElement: string;
27
+ IfcRelFillsElement: string;
28
+ };
29
+ constraints: {
30
+ simpleValue: string;
31
+ pattern: string;
32
+ enumeration: {
33
+ single: string;
34
+ multiple: string;
35
+ };
36
+ bounds: {
37
+ between: string;
38
+ atLeast: string;
39
+ atMost: string;
40
+ greaterThan: string;
41
+ lessThan: string;
42
+ };
43
+ };
44
+ applicability: {
45
+ entity: {
46
+ simple: string;
47
+ withPredefined: string;
48
+ pattern: string;
49
+ };
50
+ attribute: {
51
+ exists: string;
52
+ equals: string;
53
+ pattern: string;
54
+ };
55
+ property: {
56
+ exists: string;
57
+ equals: string;
58
+ pattern: string;
59
+ bounded: string;
60
+ };
61
+ classification: {
62
+ any: string;
63
+ system: string;
64
+ value: string;
65
+ systemAndValue: string;
66
+ };
67
+ material: {
68
+ any: string;
69
+ value: string;
70
+ pattern: string;
71
+ };
72
+ partOf: {
73
+ simple: string;
74
+ withEntity: string;
75
+ withEntityAndType: string;
76
+ };
77
+ };
78
+ requirements: {
79
+ entity: {
80
+ mustBe: string;
81
+ mustHavePredefined: string;
82
+ mustBeWithPredefined: string;
83
+ };
84
+ attribute: {
85
+ mustExist: string;
86
+ mustEqual: string;
87
+ mustMatch: string;
88
+ mustNotExist: string;
89
+ mustNotEqual: string;
90
+ };
91
+ property: {
92
+ mustExist: string;
93
+ mustEqual: string;
94
+ mustMatch: string;
95
+ mustBeBounded: string;
96
+ mustHaveType: string;
97
+ mustNotExist: string;
98
+ };
99
+ classification: {
100
+ mustHave: string;
101
+ mustBeInSystem: string;
102
+ mustHaveValue: string;
103
+ mustBeInSystemWithValue: string;
104
+ mustNotHave: string;
105
+ mustNotBeInSystem: string;
106
+ };
107
+ material: {
108
+ mustHave: string;
109
+ mustBe: string;
110
+ mustMatch: string;
111
+ mustNotHave: string;
112
+ };
113
+ partOf: {
114
+ mustBe: string;
115
+ mustBeSimple: string;
116
+ mustNotBe: string;
117
+ };
118
+ };
119
+ failures: {
120
+ entityTypeMismatch: string;
121
+ predefinedTypeMismatch: string;
122
+ predefinedTypeMissing: string;
123
+ attributeMissing: string;
124
+ attributeEmpty: string;
125
+ attributeValueMismatch: string;
126
+ attributePatternMismatch: string;
127
+ attributeProhibited: string;
128
+ psetMissing: string;
129
+ psetMissingAvailable: string;
130
+ propertyMissing: string;
131
+ propertyMissingAvailable: string;
132
+ propertyEmpty: string;
133
+ propertyValueMismatch: string;
134
+ propertyPatternMismatch: string;
135
+ propertyDatatypeMismatch: string;
136
+ propertyOutOfBounds: string;
137
+ propertyProhibited: string;
138
+ classificationMissing: string;
139
+ classificationSystemMismatch: string;
140
+ classificationSystemMissingAvailable: string;
141
+ classificationValueMismatch: string;
142
+ classificationValueMissingAvailable: string;
143
+ classificationProhibited: string;
144
+ materialMissing: string;
145
+ materialValueMismatch: string;
146
+ materialValueMissingAvailable: string;
147
+ materialProhibited: string;
148
+ partOfMissing: string;
149
+ partOfMissingSimple: string;
150
+ partOfEntityMismatch: string;
151
+ partOfPredefinedMismatch: string;
152
+ partOfProhibited: string;
153
+ prohibited: string;
154
+ unknown: string;
155
+ };
156
+ summary: {
157
+ title: string;
158
+ specifications: string;
159
+ entities: string;
160
+ overallPass: string;
161
+ overallFail: string;
162
+ noApplicable: string;
163
+ };
164
+ ui: {
165
+ specification: string;
166
+ specifications: string;
167
+ requirement: string;
168
+ requirements: string;
169
+ applicability: string;
170
+ entity: string;
171
+ entities: string;
172
+ passed: string;
173
+ failed: string;
174
+ passRate: string;
175
+ actualValue: string;
176
+ expectedValue: string;
177
+ failureReason: string;
178
+ showAll: string;
179
+ showFailed: string;
180
+ isolateFailed: string;
181
+ isolatePassed: string;
182
+ exportJson: string;
183
+ exportBcf: string;
184
+ loadIds: string;
185
+ runValidation: string;
186
+ clearResults: string;
187
+ };
188
+ };
189
+ //# sourceMappingURL=fr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../src/translation/locales/fr.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyOd,CAAC"}
@@ -0,0 +1,226 @@
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
+ /**
5
+ * French translations for IDS validation
6
+ */
7
+ export const fr = {
8
+ // ============================================================================
9
+ // Status
10
+ // ============================================================================
11
+ status: {
12
+ pass: 'CONFORME',
13
+ fail: 'NON CONFORME',
14
+ not_applicable: 'NON APPLICABLE',
15
+ },
16
+ // ============================================================================
17
+ // Optionality / Cardinality
18
+ // ============================================================================
19
+ optionality: {
20
+ required: 'Obligatoire',
21
+ optional: 'Optionnel',
22
+ prohibited: 'Interdit',
23
+ },
24
+ cardinality: {
25
+ satisfied: 'Cardinalité respectée',
26
+ atLeast: 'Au moins {min} attendu(s), {count} trouvé(s)',
27
+ atMost: 'Au maximum {max} attendu(s), {count} trouvé(s)',
28
+ between: 'Entre {min} et {max} attendu(s), {count} trouvé(s)',
29
+ exactly: 'Exactement {count} attendu(s)',
30
+ },
31
+ // ============================================================================
32
+ // Relationships
33
+ // ============================================================================
34
+ relations: {
35
+ IfcRelAggregates: 'agrégé dans',
36
+ IfcRelContainedInSpatialStructure: 'contenu dans',
37
+ IfcRelNests: 'imbriqué dans',
38
+ IfcRelVoidsElement: 'perçant',
39
+ IfcRelFillsElement: 'remplissant',
40
+ },
41
+ // ============================================================================
42
+ // Constraint Descriptions
43
+ // ============================================================================
44
+ constraints: {
45
+ simpleValue: '"{value}"',
46
+ pattern: 'correspondant au motif "{pattern}"',
47
+ enumeration: {
48
+ single: '"{value}"',
49
+ multiple: "l'un de [{values}]",
50
+ },
51
+ bounds: {
52
+ between: 'entre {min} et {max}',
53
+ atLeast: 'au moins {min}',
54
+ atMost: 'au plus {max}',
55
+ greaterThan: 'supérieur à {min}',
56
+ lessThan: 'inférieur à {max}',
57
+ },
58
+ },
59
+ // ============================================================================
60
+ // Applicability Descriptions
61
+ // ============================================================================
62
+ applicability: {
63
+ entity: {
64
+ simple: 'Éléments de type {entityType}',
65
+ withPredefined: 'Éléments {entityType} avec type prédéfini {predefinedType}',
66
+ pattern: 'Éléments avec type correspondant à {pattern}',
67
+ },
68
+ attribute: {
69
+ exists: "Éléments où l'attribut \"{name}\" existe",
70
+ equals: 'Éléments où "{name}" est égal à {value}',
71
+ pattern: 'Éléments où "{name}" correspond au motif {pattern}',
72
+ },
73
+ property: {
74
+ exists: 'Éléments avec propriété "{property}" dans "{pset}"',
75
+ equals: 'Éléments où "{pset}.{property}" est égal à {value}',
76
+ pattern: 'Éléments où "{pset}.{property}" correspond au motif {pattern}',
77
+ bounded: 'Éléments où "{pset}.{property}" est {bounds}',
78
+ },
79
+ classification: {
80
+ any: 'Éléments avec une classification quelconque',
81
+ system: 'Éléments classifiés dans "{system}"',
82
+ value: 'Éléments avec classification "{value}"',
83
+ systemAndValue: 'Éléments classifiés comme "{value}" dans "{system}"',
84
+ },
85
+ material: {
86
+ any: 'Éléments avec un matériau attribué',
87
+ value: 'Éléments avec matériau "{value}"',
88
+ pattern: 'Éléments avec matériau correspondant à {pattern}',
89
+ },
90
+ partOf: {
91
+ simple: 'Éléments qui sont {relation} un autre élément',
92
+ withEntity: 'Éléments qui sont {relation} un(e) {entity}',
93
+ withEntityAndType: 'Éléments qui sont {relation} un(e) {entity} de type {predefinedType}',
94
+ },
95
+ },
96
+ // ============================================================================
97
+ // Requirement Descriptions
98
+ // ============================================================================
99
+ requirements: {
100
+ entity: {
101
+ mustBe: 'Doit être de type {entityType}',
102
+ mustHavePredefined: 'Doit avoir le type prédéfini {predefinedType}',
103
+ mustBeWithPredefined: 'Doit être {entityType} avec type prédéfini {predefinedType}',
104
+ },
105
+ attribute: {
106
+ mustExist: "L'attribut \"{name}\" doit exister",
107
+ mustEqual: "L'attribut \"{name}\" doit être égal à {value}",
108
+ mustMatch: "L'attribut \"{name}\" doit correspondre au motif {pattern}",
109
+ mustNotExist: "L'attribut \"{name}\" ne doit pas exister",
110
+ mustNotEqual: "L'attribut \"{name}\" ne doit pas être {value}",
111
+ },
112
+ property: {
113
+ mustExist: 'La propriété "{pset}.{property}" doit exister',
114
+ mustEqual: 'La propriété "{pset}.{property}" doit être égale à {value}',
115
+ mustMatch: 'La propriété "{pset}.{property}" doit correspondre au motif {pattern}',
116
+ mustBeBounded: 'La propriété "{pset}.{property}" doit être {bounds}',
117
+ mustHaveType: 'La propriété "{pset}.{property}" doit être de type {dataType}',
118
+ mustNotExist: 'La propriété "{pset}.{property}" ne doit pas exister',
119
+ },
120
+ classification: {
121
+ mustHave: 'Doit avoir une classification',
122
+ mustBeInSystem: 'Doit être classifié dans "{system}"',
123
+ mustHaveValue: 'Doit avoir la classification "{value}"',
124
+ mustBeInSystemWithValue: 'Doit être classifié comme "{value}" dans "{system}"',
125
+ mustNotHave: 'Ne doit pas avoir de classification',
126
+ mustNotBeInSystem: 'Ne doit pas être classifié dans "{system}"',
127
+ },
128
+ material: {
129
+ mustHave: 'Doit avoir un matériau attribué',
130
+ mustBe: 'Doit avoir le matériau "{value}"',
131
+ mustMatch: 'Doit avoir un matériau correspondant à {pattern}',
132
+ mustNotHave: 'Ne doit pas avoir de matériau attribué',
133
+ },
134
+ partOf: {
135
+ mustBe: 'Doit être {relation} un(e) {entity}',
136
+ mustBeSimple: 'Doit être {relation} un autre élément',
137
+ mustNotBe: 'Ne doit pas être {relation} un élément',
138
+ },
139
+ },
140
+ // ============================================================================
141
+ // Failure Reasons
142
+ // ============================================================================
143
+ failures: {
144
+ // Entity failures
145
+ entityTypeMismatch: "Le type d'élément est \"{actual}\", attendu {expected}",
146
+ predefinedTypeMismatch: 'Le type prédéfini est "{actual}", attendu {expected}',
147
+ predefinedTypeMissing: "Le type prédéfini n'est pas défini, attendu {expected}",
148
+ // Attribute failures
149
+ attributeMissing: "L'attribut \"{name}\" n'existe pas",
150
+ attributeEmpty: "L'attribut \"{name}\" est vide",
151
+ attributeValueMismatch: "L'attribut \"{name}\" est \"{actual}\", attendu {expected}",
152
+ attributePatternMismatch: "La valeur de l'attribut \"{name}\" \"{actual}\" ne correspond pas au motif {expected}",
153
+ attributeProhibited: "L'attribut interdit \"{name}\" existe avec la valeur \"{actual}\"",
154
+ // Property failures
155
+ psetMissing: "L'ensemble de propriétés \"{pset}\" n'a pas été trouvé",
156
+ psetMissingAvailable: "L'ensemble de propriétés \"{pset}\" n'a pas été trouvé. Disponibles : {available}",
157
+ propertyMissing: 'La propriété "{property}" n\'a pas été trouvée dans "{pset}"',
158
+ propertyMissingAvailable: 'La propriété "{property}" n\'a pas été trouvée dans "{pset}". Disponibles : {available}',
159
+ propertyEmpty: 'La propriété "{pset}.{property}" n\'a pas de valeur',
160
+ propertyValueMismatch: 'La propriété "{pset}.{property}" est "{actual}", attendu {expected}',
161
+ propertyPatternMismatch: 'La valeur de la propriété "{pset}.{property}" "{actual}" ne correspond pas à {expected}',
162
+ propertyDatatypeMismatch: 'Le type de données de la propriété "{pset}.{property}" est "{actual}", attendu {expected}',
163
+ propertyOutOfBounds: 'La valeur de la propriété "{pset}.{property}" {actual} est hors de la plage {expected}',
164
+ propertyProhibited: 'La propriété interdite "{pset}.{property}" existe avec la valeur "{actual}"',
165
+ // Classification failures
166
+ classificationMissing: 'Aucune classification attribuée',
167
+ classificationSystemMismatch: 'Le système de classification "{actual}" ne correspond pas à "{expected}" attendu',
168
+ classificationSystemMissingAvailable: 'Le système de classification "{expected}" n\'a pas été trouvé. Disponibles : {available}',
169
+ classificationValueMismatch: 'Le code de classification "{actual}" ne correspond pas à {expected} attendu',
170
+ classificationValueMissingAvailable: 'Le code de classification {expected} n\'a pas été trouvé. Disponibles : {available}',
171
+ classificationProhibited: 'La classification interdite "{actual}" existe dans le système "{system}"',
172
+ // Material failures
173
+ materialMissing: 'Aucun matériau attribué',
174
+ materialValueMismatch: 'Le matériau "{actual}" ne correspond pas à {expected} attendu',
175
+ materialValueMissingAvailable: 'Le matériau {expected} n\'a pas été trouvé. Disponibles : {available}',
176
+ materialProhibited: 'Le matériau interdit "{actual}" est attribué',
177
+ // PartOf failures
178
+ partOfMissing: "L'élément n'est pas {relation} un(e) {entity}",
179
+ partOfMissingSimple: "L'élément n'est pas {relation} un autre élément",
180
+ partOfEntityMismatch: "L'élément parent est {actual}, attendu {expected}",
181
+ partOfPredefinedMismatch: 'Le type prédéfini de l\'élément parent est "{actual}", attendu {expected}',
182
+ partOfProhibited: "L'élément est {relation} {actual}, ce qui est interdit",
183
+ // Generic
184
+ prohibited: '{field} interdit trouvé : "{actual}"',
185
+ unknown: 'Validation échouée : {reason}',
186
+ },
187
+ // ============================================================================
188
+ // Summary
189
+ // ============================================================================
190
+ summary: {
191
+ title: 'Rapport de validation IDS',
192
+ specifications: '{passed}/{total} spécifications conformes',
193
+ entities: '{passed}/{total} éléments conformes ({percent}%)',
194
+ overallPass: 'Le modèle respecte toutes les exigences',
195
+ overallFail: 'Le modèle a {count} spécifications non conformes',
196
+ noApplicable: 'Aucun élément applicable trouvé',
197
+ },
198
+ // ============================================================================
199
+ // UI Labels
200
+ // ============================================================================
201
+ ui: {
202
+ specification: 'Spécification',
203
+ specifications: 'Spécifications',
204
+ requirement: 'Exigence',
205
+ requirements: 'Exigences',
206
+ applicability: "S'applique à",
207
+ entity: 'Élément',
208
+ entities: 'Éléments',
209
+ passed: 'Conforme',
210
+ failed: 'Non conforme',
211
+ passRate: 'Taux de conformité',
212
+ actualValue: 'Réel',
213
+ expectedValue: 'Attendu',
214
+ failureReason: 'Raison',
215
+ showAll: 'Afficher tout',
216
+ showFailed: 'Afficher non conformes',
217
+ isolateFailed: 'Isoler non conformes',
218
+ isolatePassed: 'Isoler conformes',
219
+ exportJson: 'Exporter JSON',
220
+ exportBcf: 'Exporter BCF',
221
+ loadIds: 'Charger fichier IDS',
222
+ runValidation: 'Lancer la validation',
223
+ clearResults: 'Effacer les résultats',
224
+ },
225
+ };
226
+ //# sourceMappingURL=fr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.js","sourceRoot":"","sources":["../../../src/translation/locales/fr.ts"],"names":[],"mappings":"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"}