@formio/js 5.3.3 → 5.3.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/formio.embed.js +1 -1
- package/dist/formio.embed.min.js +1 -1
- package/dist/formio.embed.min.js.LICENSE.txt +1 -1
- package/dist/formio.form.js +22 -22
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +2 -2
- package/dist/formio.full.js +22 -22
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +2 -2
- package/dist/formio.js +11 -11
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +2 -2
- package/dist/formio.utils.js +10 -10
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +2 -2
- package/lib/cjs/Element.d.ts +11 -0
- package/lib/cjs/Element.js +24 -0
- package/lib/cjs/Embed.js +1 -1
- package/lib/cjs/Formio.js +1 -1
- package/lib/cjs/Webform.js +7 -4
- package/lib/cjs/Wizard.js +15 -11
- package/lib/cjs/components/Components.js +3 -1
- package/lib/cjs/components/_classes/component/Component.d.ts +8 -0
- package/lib/cjs/components/_classes/component/Component.js +31 -18
- package/lib/cjs/components/_classes/nested/NestedComponent.js +5 -7
- package/lib/cjs/components/datagrid/DataGrid.js +21 -5
- package/lib/cjs/components/editgrid/EditGrid.js +2 -2
- package/lib/cjs/components/file/File.js +6 -5
- package/lib/cjs/components/form/Form.d.ts +1 -0
- package/lib/cjs/components/form/Form.js +18 -7
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/utils/formUtils.d.ts +2 -2
- package/lib/cjs/utils/index.d.ts +2 -2
- package/lib/mjs/Element.d.ts +11 -0
- package/lib/mjs/Element.js +23 -0
- package/lib/mjs/Embed.js +1 -1
- package/lib/mjs/Formio.js +1 -1
- package/lib/mjs/Webform.js +5 -1
- package/lib/mjs/Wizard.js +9 -10
- package/lib/mjs/components/Components.js +3 -1
- package/lib/mjs/components/_classes/component/Component.d.ts +8 -0
- package/lib/mjs/components/_classes/component/Component.js +30 -18
- package/lib/mjs/components/_classes/nested/NestedComponent.js +5 -6
- package/lib/mjs/components/datagrid/DataGrid.js +21 -5
- package/lib/mjs/components/editgrid/EditGrid.js +1 -1
- package/lib/mjs/components/file/File.js +6 -5
- package/lib/mjs/components/form/Form.d.ts +1 -0
- package/lib/mjs/components/form/Form.js +16 -5
- package/lib/mjs/package.json +1 -1
- package/lib/mjs/utils/formUtils.d.ts +2 -2
- package/lib/mjs/utils/index.d.ts +2 -2
- package/package.json +2 -2
package/lib/mjs/Webform.js
CHANGED
|
@@ -1094,7 +1094,10 @@ export default class Webform extends NestedDataComponent {
|
|
|
1094
1094
|
});
|
|
1095
1095
|
}
|
|
1096
1096
|
const errorsList = this.renderTemplate('errorsList', { errors: displayedErrors });
|
|
1097
|
-
|
|
1097
|
+
// Only paint the alert from a subform when the root won't double paint it to avoid a painful flicker
|
|
1098
|
+
if (this === this.root || !this.root?.submitted) {
|
|
1099
|
+
this.root?.setAlert('danger', errorsList);
|
|
1100
|
+
}
|
|
1098
1101
|
if (triggerEvent) {
|
|
1099
1102
|
this.emit('error', errors);
|
|
1100
1103
|
}
|
|
@@ -1215,6 +1218,7 @@ export default class Webform extends NestedDataComponent {
|
|
|
1215
1218
|
...flags,
|
|
1216
1219
|
noValidate: false,
|
|
1217
1220
|
process: 'change',
|
|
1221
|
+
dirty: flags.dirty ?? this.submitted,
|
|
1218
1222
|
})
|
|
1219
1223
|
: [];
|
|
1220
1224
|
value.isValid = (errors || []).filter((err) => !err.fromServer).length === 0;
|
package/lib/mjs/Wizard.js
CHANGED
|
@@ -200,7 +200,7 @@ export default class Wizard extends Webform {
|
|
|
200
200
|
wizardNav,
|
|
201
201
|
components: this.renderComponents([
|
|
202
202
|
...this.prefixComps,
|
|
203
|
-
...this.currentPage
|
|
203
|
+
...this.currentPage?.components || [],
|
|
204
204
|
...this.suffixComps,
|
|
205
205
|
]),
|
|
206
206
|
}, this.builderMode ? 'builder' : 'form');
|
|
@@ -262,7 +262,7 @@ export default class Wizard extends Webform {
|
|
|
262
262
|
this.hook('attachWebform', element, this);
|
|
263
263
|
const promises = this.attachComponents(this.refs[this.wizardKey], [
|
|
264
264
|
...this.prefixComps,
|
|
265
|
-
...this.currentPage
|
|
265
|
+
...this.currentPage?.components || [],
|
|
266
266
|
...this.suffixComps,
|
|
267
267
|
]);
|
|
268
268
|
this.attachNav();
|
|
@@ -289,7 +289,7 @@ export default class Wizard extends Webform {
|
|
|
289
289
|
isBreadcrumbClickable() {
|
|
290
290
|
let currentPage = null;
|
|
291
291
|
this.pages.map((page) => {
|
|
292
|
-
if (_.isEqual(this.currentPage
|
|
292
|
+
if (_.isEqual(this.currentPage?.component, page.component)) {
|
|
293
293
|
currentPage = page;
|
|
294
294
|
}
|
|
295
295
|
});
|
|
@@ -304,11 +304,11 @@ export default class Wizard extends Webform {
|
|
|
304
304
|
isAllowPrevious() {
|
|
305
305
|
let currentPage = null;
|
|
306
306
|
this.pages.map((page) => {
|
|
307
|
-
if (_.isEqual(this.currentPage
|
|
307
|
+
if (_.isEqual(this.currentPage?.component, page.component)) {
|
|
308
308
|
currentPage = page;
|
|
309
309
|
}
|
|
310
310
|
});
|
|
311
|
-
return _.get(currentPage
|
|
311
|
+
return _.get(currentPage?.component, 'allowPrevious', this.options.allowPrevious);
|
|
312
312
|
}
|
|
313
313
|
/**
|
|
314
314
|
* Handles navigate on 'Enter' key event in a wizard form.
|
|
@@ -537,7 +537,7 @@ export default class Wizard extends Webform {
|
|
|
537
537
|
const forceShow = this.shouldForceShow(item);
|
|
538
538
|
const forceHide = this.shouldForceHide(item);
|
|
539
539
|
let isVisible = !page
|
|
540
|
-
? checkCondition(item, data, data, this.component, this) && !item.hidden
|
|
540
|
+
? (checkCondition(item, data, data, this.component, this) && !item.hidden)
|
|
541
541
|
: page.visible;
|
|
542
542
|
if (forceShow) {
|
|
543
543
|
isVisible = true;
|
|
@@ -608,7 +608,7 @@ export default class Wizard extends Webform {
|
|
|
608
608
|
}
|
|
609
609
|
return this.redraw().then(() => {
|
|
610
610
|
this.checkData(this.submission.data);
|
|
611
|
-
this.triggerCaptcha(this.currentPage
|
|
611
|
+
this.triggerCaptcha(this.currentPage?.components);
|
|
612
612
|
const errors = this.submitted
|
|
613
613
|
? this.validate(this.localData, { dirty: true })
|
|
614
614
|
: this.validateCurrentPage();
|
|
@@ -822,8 +822,7 @@ export default class Wizard extends Webform {
|
|
|
822
822
|
return super.setForm(form, flags);
|
|
823
823
|
}
|
|
824
824
|
onSetForm(clonedForm, initialForm) {
|
|
825
|
-
this.component.components =
|
|
826
|
-
(this.parent ? initialForm.components : clonedForm.components) || [];
|
|
825
|
+
this.component.components = (this.parent ? initialForm.components : clonedForm.components) || [];
|
|
827
826
|
this.setComponentSchema();
|
|
828
827
|
}
|
|
829
828
|
setEditMode(submission) {
|
|
@@ -936,7 +935,7 @@ export default class Wizard extends Webform {
|
|
|
936
935
|
this.setCustomValidity('');
|
|
937
936
|
return true;
|
|
938
937
|
}
|
|
939
|
-
const components = !currentPageOnly || this.isLastPage() ? this.getComponents() : this.currentPage
|
|
938
|
+
const components = !currentPageOnly || this.isLastPage() ? this.getComponents() : this.currentPage?.components;
|
|
940
939
|
return components.reduce((check, comp) => comp.checkValidity(data, dirty, row, currentPageOnly, childErrors) && check, true);
|
|
941
940
|
}
|
|
942
941
|
get errors() {
|
|
@@ -66,7 +66,9 @@ export default class Components {
|
|
|
66
66
|
comp = new Component(component, options, data);
|
|
67
67
|
}
|
|
68
68
|
if (comp.path) {
|
|
69
|
-
comp.
|
|
69
|
+
comp.eachRootChildComponentsMap((map) => {
|
|
70
|
+
map[comp.path] = comp;
|
|
71
|
+
});
|
|
70
72
|
}
|
|
71
73
|
// Reset the componentMatches on the root element if any new component is created.
|
|
72
74
|
let parent = comp.parent;
|
|
@@ -163,6 +163,14 @@ declare class Component extends Element {
|
|
|
163
163
|
*/
|
|
164
164
|
info: any;
|
|
165
165
|
get componentsMap(): object;
|
|
166
|
+
/**
|
|
167
|
+
* Walks this component's root chain, invoking `fn` with each ancestor root's
|
|
168
|
+
* `childComponentsMap`. Component registration is propagated up the wizard /
|
|
169
|
+
* nested-form chain at create time, so any code that mutates a registration
|
|
170
|
+
* (creation, removal, path-driven re-key) must update every map in the chain.
|
|
171
|
+
* @param {(map: object) => void} fn - Called once per root that exposes a `childComponentsMap`.
|
|
172
|
+
*/
|
|
173
|
+
eachRootChildComponentsMap(fn: (map: object) => void): void;
|
|
166
174
|
/**
|
|
167
175
|
* Returns if the parent should conditionally clear.
|
|
168
176
|
*
|
|
@@ -426,6 +426,24 @@ export default class Component extends Element {
|
|
|
426
426
|
get componentsMap() {
|
|
427
427
|
return this.root?.childComponentsMap || {};
|
|
428
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* Walks this component's root chain, invoking `fn` with each ancestor root's
|
|
431
|
+
* `childComponentsMap`. Component registration is propagated up the wizard /
|
|
432
|
+
* nested-form chain at create time, so any code that mutates a registration
|
|
433
|
+
* (creation, removal, path-driven re-key) must update every map in the chain.
|
|
434
|
+
* @param {(map: object) => void} fn - Called once per root that exposes a `childComponentsMap`.
|
|
435
|
+
*/
|
|
436
|
+
eachRootChildComponentsMap(fn) {
|
|
437
|
+
let currentRoot = this.root;
|
|
438
|
+
let prevRootId = null;
|
|
439
|
+
while (currentRoot && currentRoot.id !== prevRootId) {
|
|
440
|
+
if (currentRoot.childComponentsMap) {
|
|
441
|
+
fn(currentRoot.childComponentsMap);
|
|
442
|
+
}
|
|
443
|
+
prevRootId = currentRoot.id;
|
|
444
|
+
currentRoot = currentRoot.root;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
429
447
|
/**
|
|
430
448
|
* Returns if the parent should conditionally clear.
|
|
431
449
|
*
|
|
@@ -2266,29 +2284,23 @@ export default class Component extends Element {
|
|
|
2266
2284
|
* @returns {void}
|
|
2267
2285
|
*/
|
|
2268
2286
|
setErrorClasses(elements, dirty, hasErrors, hasMessages, element = this.element) {
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
this.setElementInvalid(this.performInputMapping(element), hasErrors);
|
|
2287
|
+
elements.forEach((el) => {
|
|
2288
|
+
this.setElementInvalid(this.performInputMapping(el), hasErrors);
|
|
2272
2289
|
});
|
|
2273
2290
|
this.setInputWidgetErrorClasses(elements, hasErrors);
|
|
2274
2291
|
// do not set error classes for hidden components
|
|
2275
2292
|
if (!this.visible) {
|
|
2293
|
+
this.clearErrorClasses(element);
|
|
2276
2294
|
return;
|
|
2277
2295
|
}
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
else {
|
|
2287
|
-
this.addClass(element, 'has-error');
|
|
2288
|
-
}
|
|
2289
|
-
}
|
|
2290
|
-
if (hasMessages) {
|
|
2291
|
-
this.addClass(element, 'has-message');
|
|
2296
|
+
const wantHighlight = hasErrors && !!dirty && !!this.options.highlightErrors;
|
|
2297
|
+
const wantHasError = hasErrors && !wantHighlight;
|
|
2298
|
+
this.toggleClass(element, this.options.componentErrorClass, wantHighlight);
|
|
2299
|
+
this.toggleClass(element, 'has-error', wantHasError);
|
|
2300
|
+
this.toggleClass(element, 'has-message', hasMessages);
|
|
2301
|
+
// Preserve previous clearErrorClasses() behavior: drop the 'alert alert-danger' pair if left over.
|
|
2302
|
+
if (element?.classList?.contains('alert-danger')) {
|
|
2303
|
+
this.removeClass(element, 'alert alert-danger');
|
|
2292
2304
|
}
|
|
2293
2305
|
}
|
|
2294
2306
|
/**
|
|
@@ -3182,7 +3194,7 @@ export default class Component extends Element {
|
|
|
3182
3194
|
if (flags.silentCheck) {
|
|
3183
3195
|
return [];
|
|
3184
3196
|
}
|
|
3185
|
-
let isDirty = flags.dirty
|
|
3197
|
+
let isDirty = flags.dirty || this.dirty;
|
|
3186
3198
|
if (this.options.alwaysDirty) {
|
|
3187
3199
|
isDirty = true;
|
|
3188
3200
|
}
|
|
@@ -556,12 +556,11 @@ export default class NestedComponent extends Field {
|
|
|
556
556
|
components = components || this.components;
|
|
557
557
|
component.destroy(all);
|
|
558
558
|
_.remove(components, { id: component.id });
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
}
|
|
559
|
+
component.eachRootChildComponentsMap((map) => {
|
|
560
|
+
if (map[component.path]) {
|
|
561
|
+
delete map[component.path];
|
|
562
|
+
}
|
|
563
|
+
});
|
|
565
564
|
}
|
|
566
565
|
/**
|
|
567
566
|
* Removes a component provided the API key of that component.
|
|
@@ -450,8 +450,16 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
450
450
|
}
|
|
451
451
|
updateComponentsRowIndex(components, rowIndex) {
|
|
452
452
|
components.forEach((component, colIndex) => {
|
|
453
|
-
|
|
454
|
-
|
|
453
|
+
// The rowIndex setter cascades into descendants and regenerates their
|
|
454
|
+
// paths, but does not re-key them in componentsMap. Collect the slot
|
|
455
|
+
// and every descendant up front so we can re-key them after paths
|
|
456
|
+
// regenerate. Required for nested-form / sub-wizard scenarios where
|
|
457
|
+
// the outer wizard validates against its own componentsMap copy.
|
|
458
|
+
const entries = [{ instance: component, oldPath: component.paths.dataPath }];
|
|
459
|
+
if (typeof component.everyComponent === 'function') {
|
|
460
|
+
component.everyComponent((descendant) => {
|
|
461
|
+
entries.push({ instance: descendant, oldPath: descendant.paths.dataPath });
|
|
462
|
+
});
|
|
455
463
|
}
|
|
456
464
|
if (component.options?.name) {
|
|
457
465
|
const newName = `[${this.key}][${rowIndex}]`;
|
|
@@ -459,7 +467,14 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
459
467
|
}
|
|
460
468
|
component.rowIndex = rowIndex;
|
|
461
469
|
component.row = `${rowIndex}-${colIndex}`;
|
|
462
|
-
|
|
470
|
+
entries.forEach(({ instance, oldPath }) => {
|
|
471
|
+
instance.eachRootChildComponentsMap((map) => {
|
|
472
|
+
if (map[oldPath] === instance) {
|
|
473
|
+
delete map[oldPath];
|
|
474
|
+
}
|
|
475
|
+
map[instance.paths.dataPath] = instance;
|
|
476
|
+
});
|
|
477
|
+
});
|
|
463
478
|
});
|
|
464
479
|
}
|
|
465
480
|
updateRowsComponents(rowIndex) {
|
|
@@ -530,8 +545,9 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
530
545
|
options.row = `${rowIndex}-${colIndex}`;
|
|
531
546
|
options.rowIndex = rowIndex;
|
|
532
547
|
options.onChange = (flags, changed, modified) => {
|
|
533
|
-
|
|
534
|
-
|
|
548
|
+
const changedComponent = changed.component;
|
|
549
|
+
if (changedComponent?.type === 'form' && changedComponent?.key) {
|
|
550
|
+
const formComp = getComponent(this.component.components, changedComponent.key);
|
|
535
551
|
_.set(formComp, 'components', changed.component.components);
|
|
536
552
|
}
|
|
537
553
|
// If we're in a nested form we need to ensure our changes are triggered upstream
|
|
@@ -859,7 +859,7 @@ export default class EditGridComponent extends NestedArrayComponent {
|
|
|
859
859
|
if (this.component.rowDrafts) {
|
|
860
860
|
editRow.components.forEach((comp) => comp.setPristine(this.pristine));
|
|
861
861
|
}
|
|
862
|
-
this.checkValidity(null,
|
|
862
|
+
this.checkValidity(null, !this.component.rowDrafts || this.root?.submitted);
|
|
863
863
|
this.redraw();
|
|
864
864
|
if (editRow.alerts) {
|
|
865
865
|
editRow.alerts = false;
|
|
@@ -941,16 +941,17 @@ export default class FileComponent extends Field {
|
|
|
941
941
|
: false;
|
|
942
942
|
}
|
|
943
943
|
async uploadFile(fileToSync) {
|
|
944
|
-
|
|
944
|
+
const filePromise = this.fileService.uploadFile(fileToSync.storage, fileToSync.file, fileToSync.name, fileToSync.dir,
|
|
945
945
|
// Progress callback
|
|
946
946
|
this.updateProgress.bind(this, fileToSync), fileToSync.url, fileToSync.options, fileToSync.fileKey, fileToSync.groupPermissions, fileToSync.groupResourceId, () => {
|
|
947
|
-
this.emit('fileUploadingStart');
|
|
947
|
+
this.emit('fileUploadingStart', filePromise);
|
|
948
948
|
},
|
|
949
949
|
// Abort upload callback
|
|
950
950
|
(abort) => this.abortUploads.push({
|
|
951
951
|
id: fileToSync.id,
|
|
952
952
|
abort,
|
|
953
953
|
}), this.getMultipartOptions(fileToSync));
|
|
954
|
+
return await filePromise;
|
|
954
955
|
}
|
|
955
956
|
async upload() {
|
|
956
957
|
if (!this.filesToSync.filesToUpload.length) {
|
|
@@ -970,7 +971,7 @@ export default class FileComponent extends Field {
|
|
|
970
971
|
fileToSync.message = this.t('Succefully uploaded');
|
|
971
972
|
fileInfo.originalName = fileToSync.originalName;
|
|
972
973
|
fileInfo.hash = fileToSync.hash;
|
|
973
|
-
this.emit('fileUploadingEnd');
|
|
974
|
+
this.emit('fileUploadingEnd', Promise.resolve(fileInfo));
|
|
974
975
|
}
|
|
975
976
|
catch (response) {
|
|
976
977
|
fileToSync.status = 'error';
|
|
@@ -981,8 +982,8 @@ export default class FileComponent extends Field {
|
|
|
981
982
|
: response.type === 'abort'
|
|
982
983
|
? this.t('Request was aborted')
|
|
983
984
|
: response.toString();
|
|
984
|
-
this.emit('fileUploadingEnd');
|
|
985
|
-
this.emit('fileUploadError', {
|
|
985
|
+
this.emit('fileUploadingEnd', Promise.reject(response));
|
|
986
|
+
this.emit(_.get(response, 'type') === 'abort' ? 'fileUploadCanceled' : 'fileUploadError', {
|
|
986
987
|
fileToSync,
|
|
987
988
|
response,
|
|
988
989
|
});
|
|
@@ -42,6 +42,7 @@ export default class FormComponent extends Component {
|
|
|
42
42
|
everyComponent(...args: any[]): any;
|
|
43
43
|
setSubFormDisabled(subForm: any): void;
|
|
44
44
|
updateSubWizards(subForm: any): void;
|
|
45
|
+
updateTopLevelComponentsMap(): void;
|
|
45
46
|
setComponentsMap(): void;
|
|
46
47
|
/**
|
|
47
48
|
* Create a subform instance.
|
|
@@ -393,13 +393,22 @@ export default class FormComponent extends Component {
|
|
|
393
393
|
this.emit('subWizardsUpdated', subForm);
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
|
+
updateTopLevelComponentsMap() {
|
|
397
|
+
let prevRootId = null;
|
|
398
|
+
let currentRoot = this.root;
|
|
399
|
+
const subFormComponentMap = this.subForm.componentsMap;
|
|
400
|
+
// update components map for all top forms
|
|
401
|
+
while (currentRoot && prevRootId !== currentRoot.id) {
|
|
402
|
+
_.assign(currentRoot.componentsMap, subFormComponentMap);
|
|
403
|
+
prevRootId = currentRoot.id;
|
|
404
|
+
currentRoot = currentRoot.root;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
396
407
|
setComponentsMap() {
|
|
397
408
|
if (!this.subForm) {
|
|
398
409
|
return;
|
|
399
410
|
}
|
|
400
|
-
|
|
401
|
-
const formComponentsMap = this.subForm.componentsMap;
|
|
402
|
-
_.assign(componentsMap, formComponentsMap);
|
|
411
|
+
this.updateTopLevelComponentsMap();
|
|
403
412
|
}
|
|
404
413
|
/**
|
|
405
414
|
* Create a subform instance.
|
|
@@ -428,7 +437,7 @@ export default class FormComponent extends Component {
|
|
|
428
437
|
this.subForm.currentForm = this;
|
|
429
438
|
this.subForm.parentVisible = this.visible;
|
|
430
439
|
this.setComponentsMap();
|
|
431
|
-
this.component.components = this.subForm.
|
|
440
|
+
this.component.components = this.subForm.components.map((comp) => comp.component);
|
|
432
441
|
this.component.display = this.subForm._form?.display;
|
|
433
442
|
this.subForm.on('change', () => {
|
|
434
443
|
if (this.subForm && !this.shouldConditionallyClear()) {
|
|
@@ -759,7 +768,9 @@ export default class FormComponent extends Component {
|
|
|
759
768
|
}
|
|
760
769
|
this.updateSubFormVisibility();
|
|
761
770
|
this.clearOnHide();
|
|
762
|
-
|
|
771
|
+
if (!isNestedWizard) {
|
|
772
|
+
this.redraw();
|
|
773
|
+
}
|
|
763
774
|
}
|
|
764
775
|
if (!value && isNestedWizard) {
|
|
765
776
|
this.root?.redraw();
|
package/lib/mjs/package.json
CHANGED
|
@@ -26,8 +26,8 @@ export const getBestMatch: typeof Utils.getBestMatch;
|
|
|
26
26
|
export const getComponentFromPath: typeof Utils.getComponentFromPath;
|
|
27
27
|
export const getComponentValue: typeof Utils.getComponentValue;
|
|
28
28
|
export const findComponents: typeof Utils.findComponents;
|
|
29
|
-
export const eachComponentDataAsync: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined) => Promise<void>;
|
|
30
|
-
export const eachComponentData: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined) => void;
|
|
29
|
+
export const eachComponentDataAsync: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => Promise<void>;
|
|
30
|
+
export const eachComponentData: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => void;
|
|
31
31
|
export const getComponentKey: typeof Utils.getComponentKey;
|
|
32
32
|
export const getContextualRowPath: any;
|
|
33
33
|
export const getContextualRowData: typeof Utils.getContextualRowData;
|
package/lib/mjs/utils/index.d.ts
CHANGED
|
@@ -37,8 +37,8 @@ declare const FormioUtils: {
|
|
|
37
37
|
getComponentFromPath: typeof import("@formio/core/lib/utils/formUtil").getComponentFromPath;
|
|
38
38
|
getComponentValue: typeof import("@formio/core/lib/utils/formUtil").getComponentValue;
|
|
39
39
|
findComponents: typeof import("@formio/core/lib/utils/formUtil").findComponents;
|
|
40
|
-
eachComponentDataAsync: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined) => Promise<void>;
|
|
41
|
-
eachComponentData: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined) => void;
|
|
40
|
+
eachComponentDataAsync: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => Promise<void>;
|
|
41
|
+
eachComponentData: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => void;
|
|
42
42
|
getComponentKey: typeof import("@formio/core/lib/utils/formUtil").getComponentKey;
|
|
43
43
|
getContextualRowPath: any;
|
|
44
44
|
getContextualRowData: typeof import("@formio/core/lib/utils/formUtil").getContextualRowData;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@formio/js",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.5",
|
|
4
4
|
"description": "JavaScript powered Forms with JSON Form Builder",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"uuid": "^9.0.0",
|
|
90
90
|
"vanilla-picker": "^2.12.3",
|
|
91
91
|
"@formio/bootstrap": "^3.2.2",
|
|
92
|
-
"@formio/core": "^2.6.
|
|
92
|
+
"@formio/core": "^2.6.5"
|
|
93
93
|
},
|
|
94
94
|
"devDependencies": {
|
|
95
95
|
"@types/node": "^22.15.19",
|