jupiter-dynamic-forms 1.10.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -9
- package/dist/core/DynamicFormRefactored.d.ts +18 -0
- package/dist/core/DynamicFormRefactored.d.ts.map +1 -1
- package/dist/core/dynamic-form.d.ts +27 -1
- package/dist/core/dynamic-form.d.ts.map +1 -1
- package/dist/index.js +101 -101
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +675 -18
- package/dist/index.mjs.map +1 -1
- package/dist/schema/types.d.ts +1 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,6 +16,9 @@ Jupiter Dynamic Forms is a powerful, framework-agnostic form builder specificall
|
|
|
16
16
|
- 📱 **Framework Agnostic**: Works with Angular 18+, React, Vue, or vanilla HTML
|
|
17
17
|
- 🎨 **Accordion UI**: Automatic accordion sections for each presentation role
|
|
18
18
|
- 🔍 **Role Filtering**: Smart filtering for complex forms with 10+ sections
|
|
19
|
+
- 💾 **Draft Persistence**: Automatic localStorage draft saving with full state preservation
|
|
20
|
+
- 🔄 **Period Preferences**: Show/hide concepts by period type (duration/instant) with persistence
|
|
21
|
+
- 📅 **Previous Year Column**: Optional previous year comparison columns per role
|
|
19
22
|
- 🏗️ **Hierarchical Display**: Nested concept trees with proper indentation
|
|
20
23
|
- 🔧 **Smart Field Types**: Automatic mapping from XBRL types to form controls
|
|
21
24
|
- 🌐 **Multi-language**: Intelligent label selection from XBRL labels
|
|
@@ -111,25 +114,63 @@ Jupiter Dynamic Forms expects XBRL data in JSON format. Each presentation role a
|
|
|
111
114
|
- **TypeScript Support**: Full TypeScript definitions included
|
|
112
115
|
- **Themeable**: CSS custom properties for easy styling customization
|
|
113
116
|
|
|
114
|
-
### 🔍 Smart Role Filtering (
|
|
117
|
+
### 🔍 Smart Role Filtering (Enhanced in v1.11.0)
|
|
115
118
|
|
|
116
|
-
For complex XBRL taxonomies with many presentation roles, Jupiter Dynamic Forms
|
|
119
|
+
For complex XBRL taxonomies with many presentation roles, Jupiter Dynamic Forms provides intelligent filtering:
|
|
117
120
|
|
|
118
|
-
- **
|
|
119
|
-
- **Smart Defaults**: First 10 roles are selected by default for optimal performance
|
|
121
|
+
- **Always Available**: Filter button always visible for complete user control
|
|
120
122
|
- **Interactive Dialog**: Easy-to-use modal for selecting which roles to display
|
|
123
|
+
- **Period Preferences**: Show/hide duration and instant concepts per role
|
|
124
|
+
- **Previous Year Column**: Optional previous year comparison column per role
|
|
121
125
|
- **Bulk Actions**: "Select All", "Select None", and "Reset" options
|
|
122
126
|
- **Live Updates**: Form sections update immediately when filter is applied
|
|
123
127
|
- **Role Count Badge**: Visual indicator showing selected vs. total roles (e.g., "8/15")
|
|
128
|
+
- **Preference Persistence**: All selections saved automatically to localStorage
|
|
124
129
|
|
|
125
130
|
```javascript
|
|
126
131
|
// Listen for filter changes
|
|
127
132
|
form.addEventListener('roles-filter-changed', (event) => {
|
|
128
|
-
const { selectedRoleIds, totalRoles, visibleRoles } = event.detail;
|
|
133
|
+
const { selectedRoleIds, totalRoles, visibleRoles, periodPreferences } = event.detail;
|
|
129
134
|
console.log(`Showing ${visibleRoles} of ${totalRoles} roles`);
|
|
135
|
+
console.log('Period preferences:', periodPreferences);
|
|
130
136
|
});
|
|
131
137
|
```
|
|
132
138
|
|
|
139
|
+
### 💾 Draft Persistence (New in v1.11.0)
|
|
140
|
+
|
|
141
|
+
Automatic draft saving ensures no data loss:
|
|
142
|
+
|
|
143
|
+
- **Automatic Saving**: Draft saved to localStorage whenever form data changes
|
|
144
|
+
- **Full State Preservation**: Saves form data, period preferences, selected roles, and custom columns
|
|
145
|
+
- **Seamless Restoration**: Automatically restores draft on page reload
|
|
146
|
+
- **Smart Validation**: Validates draft compatibility with current period dates
|
|
147
|
+
- **External Storage Support**: Supports external draft storage via `dynaformsFacts` and `dynaformsMetadata` properties
|
|
148
|
+
- **Manual Save**: "Save Draft" button for explicit save operations
|
|
149
|
+
|
|
150
|
+
```javascript
|
|
151
|
+
// Listen for draft save
|
|
152
|
+
form.addEventListener('form-save-draft', (event) => {
|
|
153
|
+
const { draftData, metadata, saved } = event.detail;
|
|
154
|
+
console.log('Draft saved:', saved);
|
|
155
|
+
|
|
156
|
+
// Optionally save to external storage
|
|
157
|
+
await saveToServer(event.detail.dynaformsFacts, event.detail.dynaformsMetadata);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// Listen for draft load
|
|
161
|
+
form.addEventListener('form-draft-loaded', (event) => {
|
|
162
|
+
const { draft, compatible, warnings } = event.detail;
|
|
163
|
+
console.log('Draft loaded:', compatible);
|
|
164
|
+
if (warnings.length > 0) {
|
|
165
|
+
console.warn('Draft compatibility warnings:', warnings);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
// Provide external draft data
|
|
170
|
+
form.dynaformsFacts = loadedFactsFromServer;
|
|
171
|
+
form.dynaformsMetadata = loadedMetadataFromServer;
|
|
172
|
+
```
|
|
173
|
+
|
|
133
174
|
## 📦 Installation
|
|
134
175
|
|
|
135
176
|
```bash
|
|
@@ -350,9 +391,13 @@ The component uses CSS custom properties for theming:
|
|
|
350
391
|
| `initialData` | `FormData` | Initial form data |
|
|
351
392
|
| `disabled` | `boolean` | Disable the entire form |
|
|
352
393
|
| `readonly` | `boolean` | Make form read-only |
|
|
353
|
-
| `periodStartDate` | `string` | Start date for reporting period (default: '
|
|
354
|
-
| `periodEndDate` | `string` | End date for reporting period (default: '
|
|
394
|
+
| `periodStartDate` | `string` | Start date for reporting period (default: '2026-01-01') |
|
|
395
|
+
| `periodEndDate` | `string` | End date for reporting period (default: '2026-12-31') |
|
|
355
396
|
| `language` | `string` | ISO language code for XBRL labels (default: 'en', supports 'nl', 'de', etc.) |
|
|
397
|
+
| `dynaformsFacts` | `SubmissionData` | External draft facts data for restoration |
|
|
398
|
+
| `dynaformsMetadata` | `DraftMetadata` | External draft metadata for restoration |
|
|
399
|
+
| `mode` | `'input' \| 'admin'` | Form mode: 'input' for data entry, 'admin' for role configuration |
|
|
400
|
+
| `display` | `'accordion' \| 'sidePanel'` | Layout mode: accordion or side panel with role list |
|
|
356
401
|
|
|
357
402
|
### Methods
|
|
358
403
|
|
|
@@ -372,8 +417,11 @@ The component uses CSS custom properties for theming:
|
|
|
372
417
|
| `section-expand` | `{sectionId, expanded}` | Section expanded/collapsed |
|
|
373
418
|
| `concept-expand` | `{conceptId, expanded}` | Concept expanded/collapsed |
|
|
374
419
|
| `column-add` | `{column}` | Column added |
|
|
375
|
-
| `column-remove` | `{columnId}` | Column removed |
|
|
376
|
-
| `form-submit` | `{data, valid, errors}` | Form submitted |
|
|
420
|
+
| `column-remove` | `{columnId, sectionId}` | Column removed |
|
|
421
|
+
| `form-submit` | `{data, submissionData, valid, errors}` | Form submitted |
|
|
422
|
+
| `form-save-draft` | `{draftData, metadata, saved, dynaformsFacts, dynaformsMetadata}` | Draft saved |
|
|
423
|
+
| `form-draft-loaded` | `{draft, compatible, warnings, source}` | Draft loaded from storage |
|
|
424
|
+
| `roles-filter-changed` | `{selectedRoleIds, totalRoles, visibleRoles, periodPreferences}` | Role filter applied |
|
|
377
425
|
| `form-reset` | `{}` | Form reset |
|
|
378
426
|
|
|
379
427
|
## 🏗️ Development
|
|
@@ -22,16 +22,21 @@ export declare class JupiterDynamicForm extends LitElement {
|
|
|
22
22
|
periodStartDate: string;
|
|
23
23
|
periodEndDate: string;
|
|
24
24
|
language: string;
|
|
25
|
+
dynaformsMetadata?: any;
|
|
26
|
+
dynaformsFacts?: any;
|
|
25
27
|
private _typedMemberData;
|
|
26
28
|
private _columns;
|
|
27
29
|
private _currentSchema?;
|
|
28
30
|
private _allSections;
|
|
29
31
|
private _selectedRoleIds;
|
|
30
32
|
private _showFilterDialog;
|
|
33
|
+
private _draftLoaded;
|
|
34
|
+
private _draftLoadedAt?;
|
|
31
35
|
private _formState;
|
|
32
36
|
private _stateManager;
|
|
33
37
|
private _preservationService;
|
|
34
38
|
private _submissionService;
|
|
39
|
+
private _draftStorageService;
|
|
35
40
|
private _unsubscribeFunctions;
|
|
36
41
|
constructor();
|
|
37
42
|
private _initializeServices;
|
|
@@ -54,6 +59,18 @@ export declare class JupiterDynamicForm extends LitElement {
|
|
|
54
59
|
private _handleSubmit;
|
|
55
60
|
private _handleSaveDraft;
|
|
56
61
|
private _handleReset;
|
|
62
|
+
private _loadDraftIfExists;
|
|
63
|
+
private _restoreFromDraft;
|
|
64
|
+
private _findActualConceptId;
|
|
65
|
+
private _findActualConceptIdInTree;
|
|
66
|
+
private _inferColumnIdFromPeriod;
|
|
67
|
+
private _findConceptInSection;
|
|
68
|
+
private _populateFieldValues;
|
|
69
|
+
private _restoreCustomColumns;
|
|
70
|
+
private _regenerateFieldsForSection;
|
|
71
|
+
private _inferColumnPeriodType;
|
|
72
|
+
private _mapConceptTypeToFieldType;
|
|
73
|
+
private _dismissDraftNotification;
|
|
57
74
|
private _handleSectionExpand;
|
|
58
75
|
private _handleConceptExpand;
|
|
59
76
|
private _handleColumnRemove;
|
|
@@ -66,6 +83,7 @@ export declare class JupiterDynamicForm extends LitElement {
|
|
|
66
83
|
validate(): boolean;
|
|
67
84
|
static styles: import('lit').CSSResult;
|
|
68
85
|
render(): import('lit-html').TemplateResult<1>;
|
|
86
|
+
private _renderDraftNotification;
|
|
69
87
|
private _renderFormHeader;
|
|
70
88
|
private _renderFormSections;
|
|
71
89
|
private _renderFormActions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicFormRefactored.d.ts","sourceRoot":"","sources":["../../src/core/DynamicFormRefactored.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,QAAQ,EAER,eAAe,EACf,SAAS,EACT,eAAe,EAOhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"DynamicFormRefactored.d.ts","sourceRoot":"","sources":["../../src/core/DynamicFormRefactored.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,11 @@ export declare class JupiterDynamicForm extends LitElement {
|
|
|
15
15
|
display: 'accordion' | 'sidePanel';
|
|
16
16
|
mode: 'inputForm' | 'admin';
|
|
17
17
|
financialStatementsTypeAxis: string[];
|
|
18
|
+
dynaformsMetadata?: any;
|
|
19
|
+
dynaformsFacts?: any;
|
|
18
20
|
private _formData;
|
|
21
|
+
private _draftLoaded;
|
|
22
|
+
private _draftLoadedAt?;
|
|
19
23
|
private _preservedFormData;
|
|
20
24
|
private _typedMemberData;
|
|
21
25
|
private _preservedTypedMemberData;
|
|
@@ -32,6 +36,8 @@ export declare class JupiterDynamicForm extends LitElement {
|
|
|
32
36
|
private _periodPreferences;
|
|
33
37
|
private _activeSidePanelRoleId;
|
|
34
38
|
private _adminRoleConfigs;
|
|
39
|
+
private _draftStorageService;
|
|
40
|
+
private _skipDraftLoading;
|
|
35
41
|
static styles: import('lit').CSSResult;
|
|
36
42
|
connectedCallback(): void;
|
|
37
43
|
updated(changedProperties: Map<string, any>): void;
|
|
@@ -88,10 +94,30 @@ export declare class JupiterDynamicForm extends LitElement {
|
|
|
88
94
|
private _addColumn;
|
|
89
95
|
private _handleSubmit;
|
|
90
96
|
private _handleSaveDraft;
|
|
97
|
+
private _loadDraftIfExists;
|
|
98
|
+
private _restoreFromDraft;
|
|
99
|
+
private _findActualConceptId;
|
|
100
|
+
private _findActualConceptIdInTree;
|
|
101
|
+
private _inferColumnIdFromPeriod;
|
|
102
|
+
private _findConceptInSection;
|
|
103
|
+
private _populateFieldValues;
|
|
104
|
+
private _restoreCustomColumns;
|
|
105
|
+
/**
|
|
106
|
+
* Merge additional custom columns that were manually added by user
|
|
107
|
+
* This preserves default columns (duration, instant, previous year) generated by schema builder
|
|
108
|
+
* and only adds custom columns that don't already exist
|
|
109
|
+
*/
|
|
110
|
+
private _mergeAdditionalCustomColumns;
|
|
111
|
+
private _regenerateFieldsForSection;
|
|
112
|
+
/**
|
|
113
|
+
* Check if a concept should be shown based on period preferences
|
|
114
|
+
*/
|
|
115
|
+
private _shouldShowConceptBasedOnPeriodPreferences;
|
|
116
|
+
private _inferColumnPeriodType;
|
|
117
|
+
private _mapConceptTypeToFieldType;
|
|
91
118
|
private _generateSubmissionData;
|
|
92
119
|
private _includePreservedDataInSubmission;
|
|
93
120
|
private _findConceptInAllSections;
|
|
94
|
-
private _findConceptInSection;
|
|
95
121
|
private _findSectionForConcept;
|
|
96
122
|
private _addConceptDataToSubmission;
|
|
97
123
|
private _findColumnByIdInAllSections;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-form.d.ts","sourceRoot":"","sources":["../../src/core/dynamic-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,QAAQ,EAGR,SAAS,EACT,eAAe,EAOhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic-form.d.ts","sourceRoot":"","sources":["../../src/core/dynamic-form.ts"],"names":[],"mappings":"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"}
|