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.
Files changed (33) hide show
  1. package/dist/core/concept-tree.d.ts.map +1 -1
  2. package/dist/core/dynamic-form.d.ts +49 -1
  3. package/dist/core/dynamic-form.d.ts.map +1 -1
  4. package/dist/core/form-field.d.ts.map +1 -1
  5. package/dist/core/form-section.d.ts +4 -0
  6. package/dist/core/form-section.d.ts.map +1 -1
  7. package/dist/core/formula-validation-dialog.d.ts +32 -0
  8. package/dist/core/formula-validation-dialog.d.ts.map +1 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +484 -183
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +1846 -282
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/schema/types.d.ts +33 -0
  16. package/dist/schema/types.d.ts.map +1 -1
  17. package/dist/schema/xbrl-types.d.ts +67 -0
  18. package/dist/schema/xbrl-types.d.ts.map +1 -1
  19. package/dist/utils/formula-constants.d.ts +7 -0
  20. package/dist/utils/formula-constants.d.ts.map +1 -0
  21. package/dist/utils/formula-expression-evaluator.d.ts +64 -0
  22. package/dist/utils/formula-expression-evaluator.d.ts.map +1 -0
  23. package/dist/utils/formula-precondition-evaluator.d.ts +33 -0
  24. package/dist/utils/formula-precondition-evaluator.d.ts.map +1 -0
  25. package/dist/utils/formula-resolution-context.d.ts +53 -0
  26. package/dist/utils/formula-resolution-context.d.ts.map +1 -0
  27. package/dist/utils/formula-variable-resolver.d.ts +48 -0
  28. package/dist/utils/formula-variable-resolver.d.ts.map +1 -0
  29. package/dist/utils/total-group-resolver.d.ts +68 -0
  30. package/dist/utils/total-group-resolver.d.ts.map +1 -0
  31. package/dist/utils/total-label.d.ts +9 -0
  32. package/dist/utils/total-label.d.ts.map +1 -0
  33. package/package.json +1 -1
@@ -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":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,mBAAmB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,KAAK,CAAC;YACjB,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qBAAqB,CAAC,EAAE,KAAK,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAEH,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,SAAS,GACT,QAAQ,GACR,aAAa,GACb,UAAU,GACV,UAAU,GACV,YAAY,GACZ,OAAO,GACP,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,KAAK,GACL,KAAK,GACL,WAAW,GACX,WAAW,GACX,SAAS,GACT,OAAO,GACP,KAAK,GACL,QAAQ,CAAC;AAEb,MAAM,WAAW,QAAQ;IACvB,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE;QACN,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACb,CAAC,MAAM,EAAE,MAAM,GAAG;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,EAAE,MAAM,CAAC;SACpB,CAAA;KACF,CAAC;CACH;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,EAAE,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,WAAW,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,GAAG,CAAC;QACX,QAAQ,EAAE,GAAG,CAAC;KACf,CAAC,CAAC;IACH,aAAa,EAAE,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE,CAAC,CAAC;IACtF,YAAY,EAAE,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE,CAAC,CAAC;IACrF,gBAAgB,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;KAAE,CAAC,CAAC;IACzE,gBAAgB,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;KAAE,CAAC,CAAC;IACzE,YAAY,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;KAAE,CAAC,CAAC;IACnD,eAAe,EAAE,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;KAAE,CAAC,CAAC;IACpD,aAAa,EAAE,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;KAAE,CAAC,CAAC;IACrE,aAAa,EAAE,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;KAAE,CAAC,CAAC;IACrE,aAAa,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAC;KAAE,CAAC,CAAC;IAC3H,iBAAiB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAC;KAAE,CAAC,CAAC;IAC1H,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,kBAAkB,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,eAAe,EAAE,CAAC;KAAE,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
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":"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"}
@@ -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.2",
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",