jupiter-dynamic-forms 1.20.4 → 1.20.5
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 +4 -1
- package/dist/core/dynamic-form.d.ts.map +1 -1
- package/dist/index.js +33 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +307 -45
- package/dist/index.mjs.map +1 -1
- package/dist/schema/xbrl-types.d.ts +1 -1
- package/dist/schema/xbrl-types.d.ts.map +1 -1
- package/dist/utils/formula-expression-evaluator.d.ts +8 -8
- package/dist/utils/formula-expression-evaluator.d.ts.map +1 -1
- package/dist/utils/formula-precondition-evaluator.d.ts +13 -0
- package/dist/utils/formula-precondition-evaluator.d.ts.map +1 -1
- package/dist/utils/formula-resolution-context.d.ts +39 -1
- package/dist/utils/formula-resolution-context.d.ts.map +1 -1
- package/dist/utils/formula-variable-resolver.d.ts +8 -0
- package/dist/utils/formula-variable-resolver.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -103,7 +103,7 @@ export interface XBRLFormulaVariable {
|
|
|
103
103
|
}
|
|
104
104
|
export interface XBRLFormulaFilter {
|
|
105
105
|
xlinkLabel: string;
|
|
106
|
-
type: 'CONCEPT_NAME' | 'CONCEPT_BALANCE' | 'CONCEPT_RELATION' | 'EXPLICIT_DIMENSION' | 'TYPED_DIMENSION' | 'PERIOD_INSTANT' | 'PERIOD_END' | 'OR_FILTER' | 'ASPECT_COVER';
|
|
106
|
+
type: 'CONCEPT_NAME' | 'CONCEPT_BALANCE' | 'CONCEPT_RELATION' | 'EXPLICIT_DIMENSION' | 'TYPED_DIMENSION' | 'PERIOD_INSTANT' | 'PERIOD_END' | 'OR_FILTER' | 'ASPECT_COVER' | 'UNKNOWN';
|
|
107
107
|
complement: boolean;
|
|
108
108
|
cover: boolean;
|
|
109
109
|
attributes: Record<string, string>;
|
|
@@ -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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"}
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
*
|
|
5
5
|
* This is intentionally NOT a general XPath 2.0 engine. It supports exactly the
|
|
6
6
|
* operators/functions observed across the real fixture's arithmetic/boolean test shapes:
|
|
7
|
-
* variable refs ($varArc_...), numeric literals,
|
|
8
|
-
* `=` / `eq` comparison, `+` / `-` (including a leading
|
|
9
|
-
* `xff:has-fallback-value(xs:QName('varArc_...'))`.
|
|
7
|
+
* variable refs ($varArc_...), numeric literals, string literals ('...', JDF-065), `sum()`,
|
|
8
|
+
* `not()`, `empty()`, `or`, `and`, `=` / `eq` comparison, `+` / `-` (including a leading
|
|
9
|
+
* unary sign), and (JDF-055) `xff:has-fallback-value(xs:QName('varArc_...'))`.
|
|
10
10
|
*
|
|
11
11
|
* A minority of real test strings use XBRL Formula function-library calls outside this
|
|
12
|
-
* scope (`xfi:period*`, `if()`,
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* scope (`xfi:period*`, `if()`, etc.). Those throw FormulaExpressionError so JDF-047's
|
|
13
|
+
* orchestrator can skip + warn rather than silently misreport a pass/fail. See the ticket
|
|
14
|
+
* doc for the full function-usage survey.
|
|
15
15
|
*
|
|
16
16
|
* Supported grammar:
|
|
17
17
|
* BoolExpr := OrExpr
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
* Comparison := ValueExpr ( ('=' | 'eq') ValueExpr )
|
|
25
25
|
* ValueExpr := AdditiveExpr
|
|
26
26
|
* AdditiveExpr := ['+' | '-'] ValueTerm ( ('+' | '-') ValueTerm )*
|
|
27
|
-
* ValueTerm := 'sum' '(' Variable ')' | Variable | Number | '(' ValueExpr ')'
|
|
27
|
+
* ValueTerm := 'sum' '(' Variable ')' | Variable | Number | String | '(' ValueExpr ')'
|
|
28
28
|
* Variable := '$' identifier
|
|
29
29
|
* String := "'" ... "'"
|
|
30
30
|
*/
|
|
31
|
-
export type FormulaBindingValue = number | number[] | undefined;
|
|
31
|
+
export type FormulaBindingValue = number | string | (number | string)[] | undefined;
|
|
32
32
|
export type FormulaVariableBindings = Map<string, FormulaBindingValue>;
|
|
33
33
|
/**
|
|
34
34
|
* JDF-055: per-variable-name "did this FACT_VARIABLE resolve to zero real facts and fall back
|
|
@@ -1 +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;
|
|
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,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;AACpF,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;AAsVD;;;;;;;;;;;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"}
|
|
@@ -22,6 +22,19 @@ export declare function buildAssertionBindings(assertion: XBRLFormulaAssertion,
|
|
|
22
22
|
* omitted from the map (not set to `false`) — see `resolveFormulaVariableUsedFallback`.
|
|
23
23
|
*/
|
|
24
24
|
export declare function buildAssertionFallbackUsage(assertion: XBRLFormulaAssertion, ctx: FormulaResolutionContext): FormulaFallbackUsage;
|
|
25
|
+
/**
|
|
26
|
+
* JDF-063: per XBRL Formula variable-binding-set semantics, an assertion needs a complete,
|
|
27
|
+
* valid binding for *every* declared variable before it can evaluate at all — not just the
|
|
28
|
+
* ones its `test`/`preconditions` happen to reference by name. A variable with zero matched
|
|
29
|
+
* facts and no `fallbackValue` has no valid binding (`resolveFormulaVariable` returns
|
|
30
|
+
* `undefined`); a variable that used its `fallbackValue` binds to a valid empty sequence
|
|
31
|
+
* (`[]`, never `undefined`) and is correctly treated as bound here. Without this check, a
|
|
32
|
+
* "guard" variable declared only to express "this rule only applies when concept X is
|
|
33
|
+
* reported" — never referenced by name in `test`/`preconditions` — could silently fail to
|
|
34
|
+
* bind while the assertion evaluated anyway against its other, referenced variables,
|
|
35
|
+
* producing a false failure.
|
|
36
|
+
*/
|
|
37
|
+
export declare function checkAllVariablesBound(assertion: XBRLFormulaAssertion, bindings: FormulaVariableBindings): PreconditionEvaluation;
|
|
25
38
|
/**
|
|
26
39
|
* Evaluates an assertion's preconditions against its already-resolved variable bindings.
|
|
27
40
|
* Empty `preconditions` always satisfies (no gating). A precondition whose test cannot be
|
|
@@ -1 +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"}
|
|
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;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,uBAAuB,GAChC,sBAAsB,CAOxB;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,uBAAuB,EAAE,EACxC,QAAQ,EAAE,uBAAuB,EACjC,aAAa,GAAE,oBAAgC,GAC9C,sBAAsB,CAmBxB"}
|
|
@@ -5,6 +5,13 @@ export interface FormulaConceptInfo {
|
|
|
5
5
|
conceptId: string;
|
|
6
6
|
qname: string;
|
|
7
7
|
balance?: 'debit' | 'credit';
|
|
8
|
+
/**
|
|
9
|
+
* JDF-068 shape (B): own-or-inherited periodStartLabel/periodEndLabel role (JDF-039's
|
|
10
|
+
* `ConceptTree.effectivePeriodRole`) — lets the resolver tell apart multiple rendered
|
|
11
|
+
* occurrences of the same qname under the same column (e.g. a movement note's period-start vs
|
|
12
|
+
* period-end balance rows) instead of picking between them by arbitrary array order.
|
|
13
|
+
*/
|
|
14
|
+
effectivePeriodRole?: 'periodStartLabel' | 'periodEndLabel';
|
|
8
15
|
}
|
|
9
16
|
export interface FormulaFactCandidate {
|
|
10
17
|
conceptId: string;
|
|
@@ -14,6 +21,18 @@ export interface FormulaFactCandidate {
|
|
|
14
21
|
export interface FormulaConceptSection {
|
|
15
22
|
roleURI: string;
|
|
16
23
|
concepts: ConceptTree[];
|
|
24
|
+
/**
|
|
25
|
+
* JDF-066: this section's OWN columns. `XBRLFormBuilder` assigns column ids that are only
|
|
26
|
+
* unique *within* one role (e.g. every role's first dimension-combination column is
|
|
27
|
+
* literally `"duration_0"`) — the caller's globally-merged column list
|
|
28
|
+
* (`dynamic-form.ts`'s `_mergeAllSectionColumns()`) silently collapses same-id columns from
|
|
29
|
+
* different roles into one, discarding whichever role didn't win the merge. Passing each
|
|
30
|
+
* section's own columns here lets `EXPLICIT_DIMENSION`/`TYPED_DIMENSION`/period resolution
|
|
31
|
+
* look up a candidate's column within its own role first, avoiding that collision. Optional
|
|
32
|
+
* for backward compatibility with callers/tests that only have a single, already-correct
|
|
33
|
+
* flat column list (the global `columns` field remains the fallback).
|
|
34
|
+
*/
|
|
35
|
+
columns?: FormColumn[];
|
|
17
36
|
}
|
|
18
37
|
export interface FormulaResolutionContext {
|
|
19
38
|
formData: FormData;
|
|
@@ -36,6 +55,12 @@ export interface FormulaResolutionContext {
|
|
|
36
55
|
totalGroupChildrenByRole: Map<string, Map<string, string[]>>;
|
|
37
56
|
dimensionQNameToId: Map<string, string>;
|
|
38
57
|
memberQNameToId: Map<string, string>;
|
|
58
|
+
/** JDF-070: member qname -> its direct children's ids in the dimension's own domain-member hierarchy, for `EXPLICIT_DIMENSION{member.axis:"child"}` resolution. */
|
|
59
|
+
memberChildrenByQName: Map<string, string[]>;
|
|
60
|
+
/** JDF-066: roleURI -> that role's own FormColumns (see FormulaConceptSection.columns). */
|
|
61
|
+
columnsByRole: Map<string, FormColumn[]>;
|
|
62
|
+
/** JDF-066: conceptId -> the roleURI it was rendered under, so a candidate's column can be looked up within its own role via columnsByRole instead of the collision-prone global `columns` list. */
|
|
63
|
+
roleURIByConceptId: Map<string, string>;
|
|
39
64
|
/**
|
|
40
65
|
* JDF-052: every (conceptId, columnId) pair in `formData` with a non-empty raw value —
|
|
41
66
|
* a "fact" exists once any value is entered, text/boolean/enum concepts included, not just
|
|
@@ -47,7 +72,20 @@ export interface FormulaResolutionContext {
|
|
|
47
72
|
* repeated Object.keys() rescans themselves, not proportional per-fact work).
|
|
48
73
|
*/
|
|
49
74
|
allCandidates: FormulaFactCandidate[];
|
|
75
|
+
/**
|
|
76
|
+
* JDF-069: columnId -> axisId -> the actual typed-member string value chosen for that column
|
|
77
|
+
* (`dynamic-form.ts`'s `_typedMemberData`/the draft's `metadata.typedMemberData`) — distinct
|
|
78
|
+
* from `FormColumn.dimensionData.typedMembers`, which only declares that a column *structurally
|
|
79
|
+
* belongs* to a typed-dimension table (every column XBRLFormBuilder generates for a role with a
|
|
80
|
+
* typed hypercube dimension carries that declaration, including the table's own auto-generated
|
|
81
|
+
* base/default column, which is never assigned a real value — only columns added via
|
|
82
|
+
* `add-column-dialog.ts`'s "add column" flow get an entry here). Optional and defaulted to `{}`
|
|
83
|
+
* for callers (mostly unit tests) that construct a context without this data; `columnId`s absent
|
|
84
|
+
* from this map fall back to the structural check, not "axis absent", to avoid changing behavior
|
|
85
|
+
* for such callers.
|
|
86
|
+
*/
|
|
87
|
+
typedMemberData: Record<string, Record<string, string>>;
|
|
50
88
|
}
|
|
51
|
-
export declare function buildFormulaResolutionContext(formData: FormData, columns: FormColumn[], sections: FormulaConceptSection[], hypercubeRoles: XBRLHypercubeRole[] | undefined, periodStartDate: string, periodEndDate: string): FormulaResolutionContext;
|
|
89
|
+
export declare function buildFormulaResolutionContext(formData: FormData, columns: FormColumn[], sections: FormulaConceptSection[], hypercubeRoles: XBRLHypercubeRole[] | undefined, periodStartDate: string, periodEndDate: string, typedMemberData?: Record<string, Record<string, string>>): FormulaResolutionContext;
|
|
52
90
|
export declare function collectDescendantConceptIds(childrenIndex: Map<string, string[]>, rootConceptId: string): string[];
|
|
53
91
|
//# sourceMappingURL=formula-resolution-context.d.ts.map
|
|
@@ -1 +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;
|
|
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;IAC7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;CAC7D;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;IACxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;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,mKAAmK;IACnK,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,2FAA2F;IAC3F,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzC,oMAAoM;IACpM,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;;;;;;OASG;IACH,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD;AAwFD,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,EACrB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvD,wBAAwB,CA0D1B;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAYjH"}
|
|
@@ -16,6 +16,14 @@ export declare function resolveFormulaVariable(variable: XBRLFormulaVariable, ct
|
|
|
16
16
|
* not numeric parseability.
|
|
17
17
|
*/
|
|
18
18
|
export declare function resolveFormulaVariableMatchCount(variable: XBRLFormulaVariable, ctx: FormulaResolutionContext): number;
|
|
19
|
+
/**
|
|
20
|
+
* JDF-064: some real EXISTENCE_ASSERTIONs model "concept A or concept B must exist" as two
|
|
21
|
+
* separate FACT_VARIABLEs (rather than one variable with an OR_FILTER) — the match count fed
|
|
22
|
+
* into `evaluateExistenceTest` must be the union of facts matched across every declared
|
|
23
|
+
* variable in that case, not just the first. Deduplicated by (conceptId, columnId) so a
|
|
24
|
+
* candidate matched by more than one variable's filters is never double-counted.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveFormulaVariableSetMatchCount(variables: XBRLFormulaVariable[], ctx: FormulaResolutionContext): number;
|
|
19
27
|
/**
|
|
20
28
|
* JDF-055: whether this variable "used its fallback" — resolved to zero real matched facts AND
|
|
21
29
|
* had a `fallbackValue` declared — for `xff:has-fallback-value()` support. Per the XBRL Formula
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-variable-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/formula-variable-resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formula-variable-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/formula-variable-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAGH,OAAO,EAAqB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAqD,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AA2W3H;;;;;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;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,mBAAmB,EAAE,EAAE,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAQ3H;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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jupiter-dynamic-forms",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.5",
|
|
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",
|