jupiter-dynamic-forms 1.20.2 → 1.20.4
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/core/concept-tree.d.ts.map +1 -1
- package/dist/core/dynamic-form.d.ts +49 -1
- package/dist/core/dynamic-form.d.ts.map +1 -1
- package/dist/core/form-field.d.ts.map +1 -1
- package/dist/core/form-section.d.ts +4 -0
- package/dist/core/form-section.d.ts.map +1 -1
- package/dist/core/formula-validation-dialog.d.ts +32 -0
- package/dist/core/formula-validation-dialog.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +484 -183
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1846 -282
- package/dist/index.mjs.map +1 -1
- package/dist/schema/types.d.ts +33 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/xbrl-types.d.ts +67 -0
- package/dist/schema/xbrl-types.d.ts.map +1 -1
- package/dist/utils/formula-constants.d.ts +7 -0
- package/dist/utils/formula-constants.d.ts.map +1 -0
- package/dist/utils/formula-expression-evaluator.d.ts +64 -0
- package/dist/utils/formula-expression-evaluator.d.ts.map +1 -0
- package/dist/utils/formula-precondition-evaluator.d.ts +33 -0
- package/dist/utils/formula-precondition-evaluator.d.ts.map +1 -0
- package/dist/utils/formula-resolution-context.d.ts +53 -0
- package/dist/utils/formula-resolution-context.d.ts.map +1 -0
- package/dist/utils/formula-variable-resolver.d.ts +48 -0
- package/dist/utils/formula-variable-resolver.d.ts.map +1 -0
- package/dist/utils/total-group-resolver.d.ts +68 -0
- package/dist/utils/total-group-resolver.d.ts.map +1 -0
- package/dist/utils/total-label.d.ts +9 -0
- package/dist/utils/total-label.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/schema/types.d.ts
CHANGED
|
@@ -208,6 +208,34 @@ export interface CalculationMismatchDetail {
|
|
|
208
208
|
children: CalculationMismatchChild[];
|
|
209
209
|
message: string;
|
|
210
210
|
}
|
|
211
|
+
export interface FormulaConceptLink {
|
|
212
|
+
label: string;
|
|
213
|
+
conceptQName: string;
|
|
214
|
+
conceptId: string;
|
|
215
|
+
columnId?: string;
|
|
216
|
+
}
|
|
217
|
+
export interface FormulaAssertionResult {
|
|
218
|
+
assertionId: string;
|
|
219
|
+
roleURI: string;
|
|
220
|
+
roleLabel: string;
|
|
221
|
+
type: 'EXISTENCE_ASSERTION' | 'VALUE_ASSERTION';
|
|
222
|
+
severity: 'WARNING' | 'ERROR';
|
|
223
|
+
satisfied: boolean;
|
|
224
|
+
skipped: boolean;
|
|
225
|
+
skipReason?: 'precondition' | 'unresolvable';
|
|
226
|
+
message?: string;
|
|
227
|
+
matchedFactCount?: number;
|
|
228
|
+
conceptLinks?: FormulaConceptLink[];
|
|
229
|
+
}
|
|
230
|
+
export interface FormulaValidationSummary {
|
|
231
|
+
totalAssertions: number;
|
|
232
|
+
evaluated: number;
|
|
233
|
+
skipped: number;
|
|
234
|
+
passed: number;
|
|
235
|
+
failed: number;
|
|
236
|
+
failedWarnings: number;
|
|
237
|
+
failedErrors: number;
|
|
238
|
+
}
|
|
211
239
|
export interface FormState {
|
|
212
240
|
data: FormData;
|
|
213
241
|
errors: ValidationError[];
|
|
@@ -223,6 +251,7 @@ export interface FormEvents {
|
|
|
223
251
|
columnId: string;
|
|
224
252
|
value: any;
|
|
225
253
|
oldValue: any;
|
|
254
|
+
source?: 'user' | 'auto-calculated';
|
|
226
255
|
}>;
|
|
227
256
|
'field-focus': CustomEvent<{
|
|
228
257
|
fieldId: string;
|
|
@@ -272,6 +301,10 @@ export interface FormEvents {
|
|
|
272
301
|
'validation-error': CustomEvent<{
|
|
273
302
|
errors: ValidationError[];
|
|
274
303
|
}>;
|
|
304
|
+
'formula-validation-complete': CustomEvent<{
|
|
305
|
+
results: FormulaAssertionResult[];
|
|
306
|
+
summary: FormulaValidationSummary;
|
|
307
|
+
}>;
|
|
275
308
|
}
|
|
276
309
|
export interface ComponentConfig {
|
|
277
310
|
theme?: 'light' | 'dark' | 'auto';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export interface XBRLFormInput {
|
|
|
9
9
|
hypercubes?: XBRLHypercubeData[];
|
|
10
10
|
datatypes?: XBRLDataTypeData | XBRLDatatype[];
|
|
11
11
|
schemas?: XBRLSchemaData;
|
|
12
|
+
formula?: XBRLFormulaData[];
|
|
12
13
|
initialData?: Record<string, any>;
|
|
13
14
|
}
|
|
14
15
|
export interface XBRLPresentationData {
|
|
@@ -80,6 +81,71 @@ export interface XBRLCalculationChild {
|
|
|
80
81
|
weight: number;
|
|
81
82
|
order?: number;
|
|
82
83
|
}
|
|
84
|
+
export interface XBRLFormulaData {
|
|
85
|
+
entrypoint: string;
|
|
86
|
+
roles: XBRLFormulaRole[];
|
|
87
|
+
}
|
|
88
|
+
export interface XBRLFormulaRole {
|
|
89
|
+
roleURI: string;
|
|
90
|
+
role: string;
|
|
91
|
+
assertions: XBRLFormulaAssertion[];
|
|
92
|
+
}
|
|
93
|
+
export interface XBRLFormulaVariable {
|
|
94
|
+
xlinkLabel: string;
|
|
95
|
+
id: string;
|
|
96
|
+
type: 'FACT_VARIABLE';
|
|
97
|
+
name: string;
|
|
98
|
+
bindAsSequence: boolean;
|
|
99
|
+
fallbackValue?: string;
|
|
100
|
+
matches: boolean;
|
|
101
|
+
nils: boolean;
|
|
102
|
+
filters: XBRLFormulaFilter[];
|
|
103
|
+
}
|
|
104
|
+
export interface XBRLFormulaFilter {
|
|
105
|
+
xlinkLabel: string;
|
|
106
|
+
type: 'CONCEPT_NAME' | 'CONCEPT_BALANCE' | 'CONCEPT_RELATION' | 'EXPLICIT_DIMENSION' | 'TYPED_DIMENSION' | 'PERIOD_INSTANT' | 'PERIOD_END' | 'OR_FILTER' | 'ASPECT_COVER';
|
|
107
|
+
complement: boolean;
|
|
108
|
+
cover: boolean;
|
|
109
|
+
attributes: Record<string, string>;
|
|
110
|
+
children: XBRLFormulaFilter[];
|
|
111
|
+
}
|
|
112
|
+
export interface XBRLFormulaPrecondition {
|
|
113
|
+
xlinkLabel: string;
|
|
114
|
+
id: string;
|
|
115
|
+
test: string;
|
|
116
|
+
}
|
|
117
|
+
export interface XBRLFormulaMessage {
|
|
118
|
+
xmlLang: string;
|
|
119
|
+
text: string;
|
|
120
|
+
arcrole: string;
|
|
121
|
+
}
|
|
122
|
+
export interface XBRLFormulaLabel {
|
|
123
|
+
lang: string;
|
|
124
|
+
label: string;
|
|
125
|
+
role: string;
|
|
126
|
+
preferredLabel: boolean;
|
|
127
|
+
customLabel: boolean;
|
|
128
|
+
}
|
|
129
|
+
interface XBRLFormulaAssertionBase {
|
|
130
|
+
id: string;
|
|
131
|
+
xlinkLabel: string;
|
|
132
|
+
test: string;
|
|
133
|
+
aspectModel: 'dimensional';
|
|
134
|
+
implicitFiltering: boolean;
|
|
135
|
+
roleURI: string;
|
|
136
|
+
severity: 'WARNING' | 'ERROR';
|
|
137
|
+
variables: XBRLFormulaVariable[];
|
|
138
|
+
preconditions: XBRLFormulaPrecondition[];
|
|
139
|
+
messages: XBRLFormulaMessage[];
|
|
140
|
+
labels: XBRLFormulaLabel[];
|
|
141
|
+
}
|
|
142
|
+
export interface XBRLExistenceAssertion extends XBRLFormulaAssertionBase {
|
|
143
|
+
type: 'EXISTENCE_ASSERTION';
|
|
144
|
+
}
|
|
145
|
+
export interface XBRLValueAssertion extends XBRLFormulaAssertionBase {
|
|
146
|
+
type: 'VALUE_ASSERTION';
|
|
147
|
+
}
|
|
148
|
+
export type XBRLFormulaAssertion = XBRLExistenceAssertion | XBRLValueAssertion;
|
|
83
149
|
export interface XBRLHypercubeData {
|
|
84
150
|
entrypoint: string;
|
|
85
151
|
roles: XBRLHypercubeRole[];
|
|
@@ -174,4 +240,5 @@ export interface XBRLFieldTypeMapping {
|
|
|
174
240
|
format?: string;
|
|
175
241
|
};
|
|
176
242
|
}
|
|
243
|
+
export {};
|
|
177
244
|
//# sourceMappingURL=xbrl-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xbrl-types.d.ts","sourceRoot":"","sources":["../../src/schema/xbrl-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xbrl-types.d.ts","sourceRoot":"","sources":["../../src/schema/xbrl-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAAC;IAC9C,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AAGD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,oBAAoB,EAAE;QACpB,QAAQ,EAAE,uBAAuB,EAAE,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,qBAAqB,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAGD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EACA,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,WAAW,GACX,cAAc,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,wBAAwB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,aAAa,EAAE,uBAAuB,EAAE,CAAC;IACzC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,CAAC;AAG/E,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAGD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAGD,MAAM,WAAW,oBAAoB;IACnC,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared tolerance for float-vs-float monetary comparisons across the calculation-warning
|
|
3
|
+
* (form-section.ts) and formula-assertion (formula-expression-evaluator.ts) features, so the
|
|
4
|
+
* two "are these two totals equal" checks never silently drift apart.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CALCULATION_TOLERANCE = 0.01;
|
|
7
|
+
//# sourceMappingURL=formula-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-constants.d.ts","sourceRoot":"","sources":["../../src/utils/formula-constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JDF-044: purpose-scoped evaluator for the XPath-like `test` strings found in
|
|
3
|
+
* VALUE_ASSERTION / precondition entries of the *_formula.json linkbase export.
|
|
4
|
+
*
|
|
5
|
+
* This is intentionally NOT a general XPath 2.0 engine. It supports exactly the
|
|
6
|
+
* operators/functions observed across the real fixture's arithmetic/boolean test shapes:
|
|
7
|
+
* variable refs ($varArc_...), numeric literals, `sum()`, `not()`, `empty()`, `or`, `and`,
|
|
8
|
+
* `=` / `eq` comparison, `+` / `-` (including a leading unary sign), and (JDF-055)
|
|
9
|
+
* `xff:has-fallback-value(xs:QName('varArc_...'))`.
|
|
10
|
+
*
|
|
11
|
+
* A minority of real test strings use XBRL Formula function-library calls outside this
|
|
12
|
+
* scope (`xfi:period*`, `if()`, string-literal `eq` comparisons, etc.). Those throw
|
|
13
|
+
* FormulaExpressionError so JDF-047's orchestrator can skip + warn rather than silently
|
|
14
|
+
* misreport a pass/fail. See the ticket doc for the full function-usage survey.
|
|
15
|
+
*
|
|
16
|
+
* Supported grammar:
|
|
17
|
+
* BoolExpr := OrExpr
|
|
18
|
+
* OrExpr := AndExpr ( 'or' AndExpr )*
|
|
19
|
+
* AndExpr := BoolTerm ( 'and' BoolTerm )*
|
|
20
|
+
* BoolTerm := 'not' '(' BoolExpr ')'
|
|
21
|
+
* | 'empty' '(' Variable ')'
|
|
22
|
+
* | 'xff:has-fallback-value' '(' 'xs:QName' '(' String ')' ')'
|
|
23
|
+
* | Comparison
|
|
24
|
+
* Comparison := ValueExpr ( ('=' | 'eq') ValueExpr )
|
|
25
|
+
* ValueExpr := AdditiveExpr
|
|
26
|
+
* AdditiveExpr := ['+' | '-'] ValueTerm ( ('+' | '-') ValueTerm )*
|
|
27
|
+
* ValueTerm := 'sum' '(' Variable ')' | Variable | Number | '(' ValueExpr ')'
|
|
28
|
+
* Variable := '$' identifier
|
|
29
|
+
* String := "'" ... "'"
|
|
30
|
+
*/
|
|
31
|
+
export type FormulaBindingValue = number | number[] | undefined;
|
|
32
|
+
export type FormulaVariableBindings = Map<string, FormulaBindingValue>;
|
|
33
|
+
/**
|
|
34
|
+
* JDF-055: per-variable-name "did this FACT_VARIABLE resolve to zero real facts and fall back
|
|
35
|
+
* to its declared fallbackValue?" flag, keyed by the variable's bare name (no leading `$`),
|
|
36
|
+
* consumed by `xff:has-fallback-value(xs:QName('name'))`. A missing key (not `false`) means
|
|
37
|
+
* "unknown/not tracked for this name" — treated as cannot-evaluate, not a silent `false`.
|
|
38
|
+
*/
|
|
39
|
+
export type FormulaFallbackUsage = Map<string, boolean>;
|
|
40
|
+
export declare class FormulaExpressionError extends Error {
|
|
41
|
+
readonly test: string;
|
|
42
|
+
readonly reason: 'unsupported-syntax' | 'unbound-variable' | 'parse-error';
|
|
43
|
+
constructor(message: string, test: string, reason?: 'unsupported-syntax' | 'unbound-variable' | 'parse-error');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Evaluates a VALUE_ASSERTION.test or preconditions[].test string against resolved
|
|
47
|
+
* variable bindings. Throws FormulaExpressionError for anything outside the supported
|
|
48
|
+
* grammar (unsupported syntax) or when a scalar variable is referenced directly, outside
|
|
49
|
+
* sum()/empty(), while unbound (cannot evaluate) — callers (JDF-047) must catch this and
|
|
50
|
+
* treat it as "assertion skipped", not "assertion failed".
|
|
51
|
+
*
|
|
52
|
+
* `fallbackUsage` (JDF-055) is optional and defaults to empty — omitting it is only safe when
|
|
53
|
+
* the test string is known not to use `xff:has-fallback-value()`; if it does and no usage was
|
|
54
|
+
* tracked for the referenced name, evaluation throws FormulaExpressionError rather than
|
|
55
|
+
* silently treating it as `false`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function evaluateFormulaTest(test: string, bindings: FormulaVariableBindings, fallbackUsage?: FormulaFallbackUsage): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Evaluates an EXISTENCE_ASSERTION.test string (e.g. ".eq 0", ".le 1", ".eq 0 or .eq 1")
|
|
60
|
+
* against the number of facts matched by the assertion's variable(s). Per the XBRL Formula
|
|
61
|
+
* 1.0 spec, an omitted/empty test defaults to ".gt 0" (at least one matching fact).
|
|
62
|
+
*/
|
|
63
|
+
export declare function evaluateExistenceTest(test: string | undefined, matchedFactCount: number): boolean;
|
|
64
|
+
//# sourceMappingURL=formula-expression-evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-expression-evaluator.d.ts","sourceRoot":"","sources":["../../src/utils/formula-expression-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,uBAAuB,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACvE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,qBAAa,sBAAuB,SAAQ,KAAK;aAG7B,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,aAAa;gBAFjF,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,oBAAoB,GAAG,kBAAkB,GAAG,aAAoC;CAK3G;AAoTD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,uBAAuB,EACjC,aAAa,GAAE,oBAAgC,GAC9C,OAAO,CAIT;AA2BD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAejG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { XBRLFormulaAssertion, XBRLFormulaPrecondition } from '../schema/xbrl-types';
|
|
2
|
+
import { FormulaFallbackUsage, FormulaVariableBindings } from './formula-expression-evaluator';
|
|
3
|
+
import { FormulaResolutionContext } from './formula-resolution-context';
|
|
4
|
+
|
|
5
|
+
export interface PreconditionEvaluation {
|
|
6
|
+
satisfied: boolean;
|
|
7
|
+
/** Present only when satisfied is false: why the assertion should be skipped. */
|
|
8
|
+
skipReason?: 'precondition' | 'unresolvable';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Resolves every variable an assertion declares into a single bindings map, once — shared by
|
|
12
|
+
* both precondition evaluation and the assertion's own main `test` (JDF-047), so a variable is
|
|
13
|
+
* never resolved twice for the same assertion run.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildAssertionBindings(assertion: XBRLFormulaAssertion, ctx: FormulaResolutionContext): FormulaVariableBindings;
|
|
16
|
+
/**
|
|
17
|
+
* JDF-055: builds the `xff:has-fallback-value()` lookup map for an assertion's variables.
|
|
18
|
+
* Fast-path: if neither the main test nor any precondition references `has-fallback-value` at
|
|
19
|
+
* all (a plain substring check), returns an empty map without resolving anything — most
|
|
20
|
+
* assertions (616/784) never use this function, so this avoids doubling resolver work for them.
|
|
21
|
+
* A variable that resolved to zero facts with no `fallbackValue` declared is deliberately
|
|
22
|
+
* omitted from the map (not set to `false`) — see `resolveFormulaVariableUsedFallback`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildAssertionFallbackUsage(assertion: XBRLFormulaAssertion, ctx: FormulaResolutionContext): FormulaFallbackUsage;
|
|
25
|
+
/**
|
|
26
|
+
* Evaluates an assertion's preconditions against its already-resolved variable bindings.
|
|
27
|
+
* Empty `preconditions` always satisfies (no gating). A precondition whose test cannot be
|
|
28
|
+
* evaluated (JDF-044's FormulaExpressionError — e.g. it references a variable that failed to
|
|
29
|
+
* resolve) causes the assertion to be skipped with reason 'unresolvable', not a crash and not
|
|
30
|
+
* a silent true/false.
|
|
31
|
+
*/
|
|
32
|
+
export declare function evaluateAssertionPreconditions(preconditions: XBRLFormulaPrecondition[], bindings: FormulaVariableBindings, fallbackUsage?: FormulaFallbackUsage): PreconditionEvaluation;
|
|
33
|
+
//# sourceMappingURL=formula-precondition-evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-precondition-evaluator.d.ts","sourceRoot":"","sources":["../../src/utils/formula-precondition-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAGL,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,UAAU,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,EAAE,wBAAwB,GAAG,uBAAuB,CAM9H;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,EAAE,wBAAwB,GAAG,oBAAoB,CAYhI;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,uBAAuB,EAAE,EACxC,QAAQ,EAAE,uBAAuB,EACjC,aAAa,GAAE,oBAAgC,GAC9C,sBAAsB,CAmBxB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { FormData, FormColumn, ConceptTree } from '../schema/types';
|
|
2
|
+
import { XBRLHypercubeRole } from '../schema/xbrl-types';
|
|
3
|
+
|
|
4
|
+
export interface FormulaConceptInfo {
|
|
5
|
+
conceptId: string;
|
|
6
|
+
qname: string;
|
|
7
|
+
balance?: 'debit' | 'credit';
|
|
8
|
+
}
|
|
9
|
+
export interface FormulaFactCandidate {
|
|
10
|
+
conceptId: string;
|
|
11
|
+
columnId: string;
|
|
12
|
+
}
|
|
13
|
+
/** One rendered role/section's concept tree, as already built by XBRLFormBuilder. */
|
|
14
|
+
export interface FormulaConceptSection {
|
|
15
|
+
roleURI: string;
|
|
16
|
+
concepts: ConceptTree[];
|
|
17
|
+
}
|
|
18
|
+
export interface FormulaResolutionContext {
|
|
19
|
+
formData: FormData;
|
|
20
|
+
columns: FormColumn[];
|
|
21
|
+
periodStartDate: string;
|
|
22
|
+
periodEndDate: string;
|
|
23
|
+
/** qname -> every rendered instance sharing it, possibly across multiple sections/roles. */
|
|
24
|
+
conceptByQName: Map<string, FormulaConceptInfo[]>;
|
|
25
|
+
conceptById: Map<string, FormulaConceptInfo>;
|
|
26
|
+
/** roleURI -> qname -> conceptId, for the single instance rendered under that specific role — CONCEPT_RELATION anchor resolution needs this scoping; CONCEPT_NAME does not. */
|
|
27
|
+
conceptIdByQNamePerRole: Map<string, Map<string, string>>;
|
|
28
|
+
/** roleURI (linkrole) -> conceptId -> direct child conceptIds, for CONCEPT_RELATION. */
|
|
29
|
+
childrenByRole: Map<string, Map<string, string[]>>;
|
|
30
|
+
/**
|
|
31
|
+
* JDF-056: roleURI -> totalConceptId -> resolved member conceptIds, for totals whose members
|
|
32
|
+
* are trailing presentation siblings rather than nested children (~6% of real CONCEPT_RELATION
|
|
33
|
+
* filters — see total-group-resolver.ts). Only consult this when `childrenByRole` came back
|
|
34
|
+
* empty for a given concept; nested-children resolution remains authoritative when present.
|
|
35
|
+
*/
|
|
36
|
+
totalGroupChildrenByRole: Map<string, Map<string, string[]>>;
|
|
37
|
+
dimensionQNameToId: Map<string, string>;
|
|
38
|
+
memberQNameToId: Map<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* JDF-052: every (conceptId, columnId) pair in `formData` with a non-empty raw value —
|
|
41
|
+
* a "fact" exists once any value is entered, text/boolean/enum concepts included, not just
|
|
42
|
+
* numeric ones. Computed once here rather than by the resolver per FACT_VARIABLE: profiling
|
|
43
|
+
* against the full real fixture (549 roles, 784 assertions) showed this rebuild — previously
|
|
44
|
+
* done on every one of the ~2000 variable resolutions in a single evaluate() run — was the
|
|
45
|
+
* dominant cost (a 500-fact universe measured ~500ms; the full ~11000-fact universe measured
|
|
46
|
+
* ~2200ms, a far smaller-than-linear increase, meaning most of the original cost was the
|
|
47
|
+
* repeated Object.keys() rescans themselves, not proportional per-fact work).
|
|
48
|
+
*/
|
|
49
|
+
allCandidates: FormulaFactCandidate[];
|
|
50
|
+
}
|
|
51
|
+
export declare function buildFormulaResolutionContext(formData: FormData, columns: FormColumn[], sections: FormulaConceptSection[], hypercubeRoles: XBRLHypercubeRole[] | undefined, periodStartDate: string, periodEndDate: string): FormulaResolutionContext;
|
|
52
|
+
export declare function collectDescendantConceptIds(childrenIndex: Map<string, string[]>, rootConceptId: string): string[];
|
|
53
|
+
//# sourceMappingURL=formula-resolution-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-resolution-context.d.ts","sourceRoot":"","sources":["../../src/utils/formula-resolution-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAuB,MAAM,sBAAsB,CAAC;AAG9E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,+KAA+K;IAC/K,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,wFAAwF;IACxF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD;;;;;OAKG;IACH,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7D,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;;;;;;;OASG;IACH,aAAa,EAAE,oBAAoB,EAAE,CAAC;CACvC;AA4ED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,qBAAqB,EAAE,EACjC,cAAc,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAC/C,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACpB,wBAAwB,CA4C1B;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAYjH"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { XBRLFormulaVariable } from '../schema/xbrl-types';
|
|
2
|
+
import { FormulaBindingValue } from './formula-expression-evaluator';
|
|
3
|
+
import { FormulaResolutionContext } from './formula-resolution-context';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a FACT_VARIABLE's filters against the current form state, returning the value(s)
|
|
7
|
+
* it binds to. Returns `undefined` for a scalar (bindAsSequence: false) variable with zero
|
|
8
|
+
* matches and no fallbackValue — JDF-044's evaluator treats that as "cannot evaluate" when
|
|
9
|
+
* the variable is referenced directly (outside sum()/empty()), per XBRL Formula semantics.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveFormulaVariable(variable: XBRLFormulaVariable, ctx: FormulaResolutionContext): FormulaBindingValue;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the raw count of facts a variable's filters match, regardless of whether the value
|
|
14
|
+
* parses as a number — used to feed JDF-044's `evaluateExistenceTest` for EXISTENCE_ASSERTION,
|
|
15
|
+
* which cares about presence (has this concept been reported at all under these conditions?),
|
|
16
|
+
* not numeric parseability.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveFormulaVariableMatchCount(variable: XBRLFormulaVariable, ctx: FormulaResolutionContext): number;
|
|
19
|
+
/**
|
|
20
|
+
* JDF-055: whether this variable "used its fallback" — resolved to zero real matched facts AND
|
|
21
|
+
* had a `fallbackValue` declared — for `xff:has-fallback-value()` support. Per the XBRL Formula
|
|
22
|
+
* semantics this function name implies (confirmed against real fixture usage patterns, not
|
|
23
|
+
* assumed): a variable with a real matched fact never used its fallback (false); a variable with
|
|
24
|
+
* zero matches and a declared fallbackValue did (true); a variable with zero matches and NO
|
|
25
|
+
* fallbackValue declared is a separate "cannot evaluate" case, not silently false — callers
|
|
26
|
+
* should omit such a variable from the FormulaFallbackUsage map entirely rather than mapping it
|
|
27
|
+
* to `false`, so the evaluator's "missing key" cannot-evaluate path applies.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveFormulaVariableUsedFallback(variable: XBRLFormulaVariable, ctx: FormulaResolutionContext): boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* JDF-059: every `concept.qname` a FACT_VARIABLE names directly (see `collectConceptNameQNames`
|
|
32
|
+
* for why CONCEPT_RELATION anchors are excluded), exposed for the results-dialog concept-linking
|
|
33
|
+
* feature — it needs to know which concepts an assertion's own message could plausibly be
|
|
34
|
+
* referring to before it can match them against the message text.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveVariableConceptQNames(variable: XBRLFormulaVariable): string[];
|
|
37
|
+
/**
|
|
38
|
+
* JDF-059: which column(s) a variable's filters resolve `targetConceptId` to, independent of
|
|
39
|
+
* whether a fact currently exists there — unlike `resolveFormulaVariable` (which only considers
|
|
40
|
+
* `ctx.allCandidates`, i.e. already-filled cells), this must also find the right *empty* cell so
|
|
41
|
+
* a failed "MUST exist" assertion can link the user straight to where the value belongs. Reuses
|
|
42
|
+
* the exact same filter-resolution algebra (`resolveFilter`/`intersectCandidates`) against a
|
|
43
|
+
* synthetic "this concept in every column" universe instead of the real fact universe — every
|
|
44
|
+
* filter type (CONCEPT_NAME, dimensional, period, complement) behaves identically either way,
|
|
45
|
+
* since none of them inspect whether a value is actually present.
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveVariableColumnsForConcept(variable: XBRLFormulaVariable, targetConceptId: string, ctx: FormulaResolutionContext): string[];
|
|
48
|
+
//# sourceMappingURL=formula-variable-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-variable-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/formula-variable-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAqB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAqD,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAqM3H;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,wBAAwB,GAAG,mBAAmB,CAqBxH;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAErH;AAED;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,wBAAwB,GAAG,OAAO,GAAG,SAAS,CAKpI;AAyBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAEpF;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,wBAAwB,GAC5B,MAAM,EAAE,CAIV"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JDF-056: generalized port of `form-section.ts`'s proven sibling/`totalLabel`-fallback
|
|
3
|
+
* algorithm (`_traverseTotalGroups`/`_registerTotalGroup`/`_resolveTotalGroupMembers`, built and
|
|
4
|
+
* hardened across JDF-026/030/038/041 for the calculation-warning feature), for use by the
|
|
5
|
+
* formula-validation feature's `CONCEPT_RELATION` resolution (JDF-045/056).
|
|
6
|
+
*
|
|
7
|
+
* Some NL-taxonomy (SBR) presentation roles model a total as a trailing **sibling** of its
|
|
8
|
+
* constituent line items under a shared abstract "Title" concept, rather than as their parent:
|
|
9
|
+
*
|
|
10
|
+
* kvk-abstr:AssetsNoncurrentTitle (abstract)
|
|
11
|
+
* ├─ jenv-bw2-i:IntangibleAssets
|
|
12
|
+
* ├─ jenv-bw2-i:PropertyPlantEquipment
|
|
13
|
+
* └─ jenv-bw2-i:AssetsNoncurrent ← the total, a SIBLING of its own constituents
|
|
14
|
+
*
|
|
15
|
+
* `form-section.ts` solved this by scanning `preferredLabel` for the `totalLabel`/
|
|
16
|
+
* `negatedTotalLabel` family and walking backward through presentation siblings when a total row
|
|
17
|
+
* has no nested children of its own. This module is that same algorithm, generalized via an
|
|
18
|
+
* accessor interface so it works against either domain's node shape (`ConceptTree` in
|
|
19
|
+
* `form-section.ts`, `XBRLPresentationConcept` in the formula-validation pipeline) without a
|
|
20
|
+
* second hand-maintained copy of taxonomy-quirk-specific logic.
|
|
21
|
+
*
|
|
22
|
+
* **Decision recorded (JDF-056, 2026-08-13):** this utility is used by the formula-validation
|
|
23
|
+
* feature now. `form-section.ts` is NOT refactored to use it in this pass — that component's
|
|
24
|
+
* calculation-warning feature is live and already tested against its own `ConceptTree`-shaped
|
|
25
|
+
* state, and migrating it carries real regression risk for an unrelated, working feature under
|
|
26
|
+
* time pressure. Migrating `form-section.ts` to this shared utility is a reasonable, low-risk
|
|
27
|
+
* follow-up whenever that code is next touched, not a requirement of this ticket.
|
|
28
|
+
*/
|
|
29
|
+
export interface TotalGroupAccessors<TNode> {
|
|
30
|
+
getId(node: TNode): string;
|
|
31
|
+
getPreferredLabel(node: TNode): string | undefined;
|
|
32
|
+
isAbstract(node: TNode): boolean;
|
|
33
|
+
getChildren(node: TNode): TNode[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* XBRL uses more than one preferredLabel role to mark a "total" row — the plain
|
|
37
|
+
* `.../role/totalLabel` and the sign-flipped `.../role/negatedTotalLabel` (used for subtotals of
|
|
38
|
+
* negated/expense items). Case-insensitive matching, mirroring `form-section.ts`'s
|
|
39
|
+
* `_isTotalLabel` exactly (a case-sensitive check previously missed `negatedTotalLabel`, whose
|
|
40
|
+
* capital `T` reads differently than the plain form).
|
|
41
|
+
*/
|
|
42
|
+
export declare function isTotalLabel(preferredLabel: string | undefined): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Distinguishes a self-contained "deduction block" subtotal (negatedTotalLabel, e.g. "Total of
|
|
45
|
+
* sum of expenses") from a plain cascading/running total. Mirrors `form-section.ts`'s
|
|
46
|
+
* `_isNegatedTotalLabel` exactly.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isNegatedTotalLabel(preferredLabel: string | undefined): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* A member of a total's sibling/child group can itself be a presentation-only abstract wrapper
|
|
51
|
+
* (e.g. "Group equity" wrapping Equity + Third party share + a nested "Total of group equity")
|
|
52
|
+
* rather than a value-bearing node. Abstract nodes never carry a fact, so resolve them to the
|
|
53
|
+
* nested totalLabel node that actually carries their aggregate value — otherwise the outer
|
|
54
|
+
* total's member set silently drops that whole subgroup. Mirrors `form-section.ts`'s
|
|
55
|
+
* `_resolveValueConcept` exactly, including its depth cutoff against malformed/cyclic data.
|
|
56
|
+
*/
|
|
57
|
+
export declare function resolveValueNode<TNode>(node: TNode, accessors: TotalGroupAccessors<TNode>, depth?: number): TNode | null;
|
|
58
|
+
/**
|
|
59
|
+
* Walks a presentation tree and returns a map from each total-row node's id to the resolved
|
|
60
|
+
* member node ids that make up its total, for every total whose members are trailing
|
|
61
|
+
* presentation siblings rather than nested children. Totals that DO have real nested children
|
|
62
|
+
* are intentionally NOT included here — nested-children resolution (JDF-045's primary path)
|
|
63
|
+
* remains authoritative for those; this index exists purely as the JDF-056 fallback for the
|
|
64
|
+
* no-nested-children case, so callers should only consult it when their own nested-children
|
|
65
|
+
* lookup came back empty (never merge the two, to avoid double-counting).
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildTotalGroupChildrenIndex<TNode>(roots: TNode[], accessors: TotalGroupAccessors<TNode>): Map<string, string[]>;
|
|
68
|
+
//# sourceMappingURL=total-group-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"total-group-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/total-group-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,mBAAmB,CAAC,KAAK;IACxC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAExE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE/E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EACpC,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,EACrC,KAAK,SAAI,GACR,KAAK,GAAG,IAAI,CAOd;AAsCD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAChD,KAAK,EAAE,KAAK,EAAE,EACd,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,GACpC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0CvB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for "is this XBRL concept row a total/subtotal", based on its
|
|
3
|
+
* preferredLabel role. Case-insensitive because negatedTotalLabel contains "TotalLabel"
|
|
4
|
+
* with a capital T (JDF-038). Shared between the calculation-warning feature
|
|
5
|
+
* (form-section.ts) and the total-row styling feature (concept-tree.ts, JDF-057) so the
|
|
6
|
+
* two never drift apart on what counts as a total.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isTotalLabel(preferredLabel?: string): boolean;
|
|
9
|
+
//# sourceMappingURL=total-label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"total-label.d.ts","sourceRoot":"","sources":["../../src/utils/total-label.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jupiter-dynamic-forms",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.4",
|
|
4
4
|
"description": "Framework-agnostic dynamic form builder for XBRL entrypoints using Web Components. Supports Angular 14+, React, Vue, and vanilla HTML.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|