@formio/js 5.0.0-dev.5613.3476921 → 5.0.0-dev.5614.ea3660d
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.form.js +18 -18
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.full.js +20 -20
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.utils.js +1 -1
- package/dist/formio.utils.min.js +1 -1
- package/lib/cjs/Element.d.ts +1 -2
- package/lib/cjs/Element.js +8 -17
- package/lib/cjs/Form.js +1 -15
- package/lib/cjs/PDF.js +1 -8
- package/lib/cjs/PDFBuilder.js +3 -3
- package/lib/cjs/Webform.d.ts +1 -0
- package/lib/cjs/Webform.js +12 -17
- package/lib/cjs/WebformBuilder.d.ts +1 -0
- package/lib/cjs/WebformBuilder.js +10 -5
- package/lib/cjs/Wizard.js +1 -1
- package/lib/cjs/addons/FormioAddon.d.ts +0 -1
- package/lib/cjs/components/_classes/component/Component.d.ts +4 -7
- package/lib/cjs/components/_classes/component/Component.js +8 -45
- package/lib/cjs/components/_classes/input/Input.js +1 -16
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -2
- package/lib/cjs/components/_classes/nested/NestedComponent.js +7 -8
- package/lib/cjs/components/columns/Columns.js +2 -2
- package/lib/cjs/components/editgrid/EditGrid.d.ts +1 -1
- package/lib/cjs/components/editgrid/EditGrid.js +7 -21
- package/lib/cjs/components/file/File.d.ts +0 -1
- package/lib/cjs/components/file/File.js +2 -2
- package/lib/cjs/components/form/Form.js +3 -3
- package/lib/cjs/components/select/Select.js +2 -4
- package/lib/cjs/components/table/Table.d.ts +1 -0
- package/lib/cjs/components/table/Table.js +1 -1
- package/lib/cjs/components/tags/Tags.js +2 -4
- package/lib/cjs/translations/en.d.ts +0 -1
- package/lib/cjs/translations/en.js +0 -1
- package/lib/cjs/utils/utils.d.ts +1 -1
- package/lib/cjs/utils/utils.js +2 -14
- package/lib/cjs/widgets/CalendarWidget.js +2 -2
- package/lib/mjs/Element.d.ts +1 -2
- package/lib/mjs/Element.js +8 -17
- package/lib/mjs/Form.js +1 -15
- package/lib/mjs/PDF.js +1 -8
- package/lib/mjs/PDFBuilder.js +3 -3
- package/lib/mjs/Webform.d.ts +1 -0
- package/lib/mjs/Webform.js +12 -17
- package/lib/mjs/WebformBuilder.d.ts +1 -0
- package/lib/mjs/WebformBuilder.js +9 -5
- package/lib/mjs/Wizard.js +1 -1
- package/lib/mjs/addons/FormioAddon.d.ts +0 -1
- package/lib/mjs/components/_classes/component/Component.d.ts +4 -7
- package/lib/mjs/components/_classes/component/Component.js +8 -45
- package/lib/mjs/components/_classes/input/Input.js +1 -16
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -2
- package/lib/mjs/components/_classes/nested/NestedComponent.js +7 -8
- package/lib/mjs/components/columns/Columns.js +2 -2
- package/lib/mjs/components/editgrid/EditGrid.d.ts +1 -1
- package/lib/mjs/components/editgrid/EditGrid.js +7 -20
- package/lib/mjs/components/file/File.d.ts +0 -1
- package/lib/mjs/components/file/File.js +2 -2
- package/lib/mjs/components/form/Form.js +3 -3
- package/lib/mjs/components/select/Select.js +2 -4
- package/lib/mjs/components/table/Table.d.ts +1 -0
- package/lib/mjs/components/table/Table.js +1 -1
- package/lib/mjs/components/tags/Tags.js +2 -4
- package/lib/mjs/translations/en.d.ts +0 -1
- package/lib/mjs/translations/en.js +0 -1
- package/lib/mjs/utils/utils.d.ts +1 -1
- package/lib/mjs/utils/utils.js +1 -2
- package/lib/mjs/widgets/CalendarWidget.js +2 -2
- package/package.json +1 -1
|
@@ -61,9 +61,7 @@ class TagsComponent extends Input_1.default {
|
|
|
61
61
|
if (!element) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
element.setAttribute('dir', this.i18next.dir());
|
|
66
|
-
}
|
|
64
|
+
element.setAttribute('dir', this.i18next.dir());
|
|
67
65
|
if (this.choices) {
|
|
68
66
|
this.choices.destroy();
|
|
69
67
|
}
|
|
@@ -110,11 +108,11 @@ class TagsComponent extends Input_1.default {
|
|
|
110
108
|
});
|
|
111
109
|
}
|
|
112
110
|
detach() {
|
|
111
|
+
super.detach();
|
|
113
112
|
if (this.choices) {
|
|
114
113
|
this.choices.destroy();
|
|
115
114
|
this.choices = null;
|
|
116
115
|
}
|
|
117
|
-
super.detach();
|
|
118
116
|
}
|
|
119
117
|
normalizeValue(value) {
|
|
120
118
|
if (this.component.storeas === 'string' && Array.isArray(value)) {
|
|
@@ -73,5 +73,4 @@ exports.default = {
|
|
|
73
73
|
submitButtonAriaLabel: 'Submit Form button. Click to submit the form',
|
|
74
74
|
reCaptchaTokenValidationError: 'ReCAPTCHA: Token validation error',
|
|
75
75
|
reCaptchaTokenNotSpecifiedError: 'ReCAPTCHA: Token is not specified in submission',
|
|
76
|
-
apiKey: 'API Key is not unique: {{key}}'
|
|
77
76
|
};
|
package/lib/cjs/utils/utils.d.ts
CHANGED
|
@@ -374,4 +374,4 @@ import jsonLogic from 'json-logic-js';
|
|
|
374
374
|
import ConditionOperators from './conditionOperators';
|
|
375
375
|
import Evaluator from './Evaluator';
|
|
376
376
|
export const interpolate: (rawTemplate: any, data: any, _options: any) => any;
|
|
377
|
-
export { jsonLogic, ConditionOperators, Evaluator, _ };
|
|
377
|
+
export { jsonLogic, moment, ConditionOperators, Evaluator, _ };
|
package/lib/cjs/utils/utils.js
CHANGED
|
@@ -11,26 +11,14 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
11
11
|
if (k2 === undefined) k2 = k;
|
|
12
12
|
o[k2] = m[k];
|
|
13
13
|
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
14
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
15
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
16
|
};
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
-
if (mod && mod.__esModule) return mod;
|
|
24
|
-
var result = {};
|
|
25
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
-
__setModuleDefault(result, mod);
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
17
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
19
|
};
|
|
32
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
exports.observeOverload = exports.withSwitch = exports.firstNonNil = exports.unfold = exports.bootstrapVersion = exports.uniqueKey = exports.iterateKey = exports.delay = exports.fieldData = exports.getCurrencyAffixes = exports.getNumberDecimalLimit = exports.getNumberSeparators = exports.matchInputMask = exports.unmaskValue = exports.getInputMask = exports.convertFormatToMask = exports.convertFormatToMoment = exports.convertFormatToFlatpickr = exports.getLocaleDateFormatInfo = exports.formatOffset = exports.formatDate = exports.momentDate = exports.loadZones = exports.shouldLoadZones = exports.zonesLoaded = exports.offsetDate = exports.currentTimezone = exports.isValidDate = exports.getDateSetting = exports.guid = exports.uniqueName = exports.convertStringToHTMLElement = exports.unescapeHTML = exports.setActionProperty = exports.checkTrigger = exports.checkCondition = exports.checkJsonConditional = exports.checkCustomConditional = exports.getComponentActualValue = exports.checkSimpleConditional = exports.checkCalculated = exports.isMongoId = exports.boolValue = exports.getElementRect = exports.getPropertyValue = exports.getRandomComponentId = exports.evaluate = exports.
|
|
21
|
+
exports.observeOverload = exports.withSwitch = exports.firstNonNil = exports.unfold = exports.bootstrapVersion = exports.uniqueKey = exports.iterateKey = exports.delay = exports.fieldData = exports.getCurrencyAffixes = exports.getNumberDecimalLimit = exports.getNumberSeparators = exports.matchInputMask = exports.unmaskValue = exports.getInputMask = exports.convertFormatToMask = exports.convertFormatToMoment = exports.convertFormatToFlatpickr = exports.getLocaleDateFormatInfo = exports.formatOffset = exports.formatDate = exports.momentDate = exports.loadZones = exports.shouldLoadZones = exports.zonesLoaded = exports.offsetDate = exports.currentTimezone = exports.isValidDate = exports.getDateSetting = exports.guid = exports.uniqueName = exports.convertStringToHTMLElement = exports.unescapeHTML = exports.setActionProperty = exports.checkTrigger = exports.checkCondition = exports.checkJsonConditional = exports.checkCustomConditional = exports.getComponentActualValue = exports.checkSimpleConditional = exports.checkCalculated = exports.isMongoId = exports.boolValue = exports.getElementRect = exports.getPropertyValue = exports.getRandomComponentId = exports.evaluate = exports.ConditionOperators = exports.moment = exports.jsonLogic = void 0;
|
|
34
22
|
exports.isSelectResourceWithObjectValue = exports.getItemTemplateKeys = exports.interpolateErrors = exports.getComponentSavedTypes = exports.componentValueTypes = exports._ = exports.getFocusableElements = exports.isInsideScopingComponent = exports.isPromise = exports.getDataParentComponent = exports.getComponentPath = exports.getComponentPathWithoutIndicies = exports.getBrowserInfo = exports.getIEBrowserVersion = exports.round = exports.getStringFromComponentPath = exports.isChildOf = exports.getArrayFromComponentPath = exports.isInputComponent = exports.interpolate = exports.Evaluator = exports.fastCloneDeep = exports.sanitize = exports.translateHTMLTemplate = exports.getContextButtons = exports.getContextComponents = void 0;
|
|
35
23
|
const lodash_1 = __importDefault(require("lodash"));
|
|
36
24
|
exports._ = lodash_1.default;
|
|
@@ -38,6 +26,7 @@ const fetch_ponyfill_1 = __importDefault(require("fetch-ponyfill"));
|
|
|
38
26
|
const json_logic_js_1 = __importDefault(require("json-logic-js"));
|
|
39
27
|
exports.jsonLogic = json_logic_js_1.default;
|
|
40
28
|
const moment_timezone_1 = __importDefault(require("moment-timezone/moment-timezone"));
|
|
29
|
+
exports.moment = moment_timezone_1.default;
|
|
41
30
|
const jstimezonedetect_1 = __importDefault(require("jstimezonedetect"));
|
|
42
31
|
const operators_1 = require("./jsonlogic/operators");
|
|
43
32
|
const dompurify_1 = __importDefault(require("dompurify"));
|
|
@@ -66,7 +55,6 @@ json_logic_js_1.default.add_operation('relativeMinDate', (relativeMinDate) => {
|
|
|
66
55
|
json_logic_js_1.default.add_operation('relativeMaxDate', (relativeMaxDate) => {
|
|
67
56
|
return (0, moment_timezone_1.default)().add(relativeMaxDate, 'days').toISOString();
|
|
68
57
|
});
|
|
69
|
-
exports.moment = __importStar(require("moment-timezone/moment-timezone"));
|
|
70
58
|
function setPathToComponentAndPerentSchema(component) {
|
|
71
59
|
component.path = getComponentPath(component);
|
|
72
60
|
const dataParent = getDataParentComponent(component);
|
|
@@ -467,11 +467,11 @@ class CalendarWidget extends InputWidget_1.default {
|
|
|
467
467
|
return Flatpickr.formatDate(date, format);
|
|
468
468
|
};
|
|
469
469
|
}
|
|
470
|
-
destroy(
|
|
470
|
+
destroy() {
|
|
471
|
+
super.destroy();
|
|
471
472
|
if (this.calendar) {
|
|
472
473
|
this.calendar.destroy();
|
|
473
474
|
}
|
|
474
|
-
super.destroy(all);
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
exports.default = CalendarWidget;
|
package/lib/mjs/Element.d.ts
CHANGED
|
@@ -117,11 +117,10 @@ export default class Element {
|
|
|
117
117
|
removeEventListener(obj: any, type: any, func?: null): this | undefined;
|
|
118
118
|
removeEventListeners(): void;
|
|
119
119
|
removeAllEvents(includeExternal: any): void;
|
|
120
|
-
teardown(): void;
|
|
121
120
|
/**
|
|
122
121
|
* Removes all event listeners attached to this component.
|
|
123
122
|
*/
|
|
124
|
-
destroy(
|
|
123
|
+
destroy(): void;
|
|
125
124
|
/**
|
|
126
125
|
* Append an HTML DOM element to a container.
|
|
127
126
|
*
|
package/lib/mjs/Element.js
CHANGED
|
@@ -230,29 +230,20 @@ export default class Element {
|
|
|
230
230
|
this.eventHandlers = [];
|
|
231
231
|
}
|
|
232
232
|
removeAllEvents(includeExternal) {
|
|
233
|
-
|
|
234
|
-
_.each(
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
});
|
|
233
|
+
_.each(this.events._events, (events, type) => {
|
|
234
|
+
_.each(events, (listener) => {
|
|
235
|
+
if (listener && (this.id === listener.id) && (includeExternal || listener.internal)) {
|
|
236
|
+
this.events.off(type, listener);
|
|
237
|
+
}
|
|
240
238
|
});
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
teardown() {
|
|
244
|
-
delete this.i18next;
|
|
245
|
-
delete this.events;
|
|
239
|
+
});
|
|
246
240
|
}
|
|
247
241
|
/**
|
|
248
242
|
* Removes all event listeners attached to this component.
|
|
249
243
|
*/
|
|
250
|
-
destroy(
|
|
244
|
+
destroy() {
|
|
251
245
|
this.removeEventListeners();
|
|
252
246
|
this.removeAllEvents();
|
|
253
|
-
if (all) {
|
|
254
|
-
this.teardown();
|
|
255
|
-
}
|
|
256
247
|
}
|
|
257
248
|
/**
|
|
258
249
|
* Append an HTML DOM element to a container.
|
|
@@ -396,7 +387,7 @@ export default class Element {
|
|
|
396
387
|
* @param {Object} params - The i18n parameters to use for translation.
|
|
397
388
|
*/
|
|
398
389
|
t(text, ...args) {
|
|
399
|
-
return this.i18next
|
|
390
|
+
return this.i18next.t(text, ...args);
|
|
400
391
|
}
|
|
401
392
|
/**
|
|
402
393
|
* Alias to create a text node.
|
package/lib/mjs/Form.js
CHANGED
|
@@ -35,9 +35,6 @@ export default class Form extends Element {
|
|
|
35
35
|
});
|
|
36
36
|
this.instance = null;
|
|
37
37
|
if (args[0] instanceof HTMLElement) {
|
|
38
|
-
if (this.element) {
|
|
39
|
-
delete this.element.component;
|
|
40
|
-
}
|
|
41
38
|
this.element = args[0];
|
|
42
39
|
this.options = args[2] || {};
|
|
43
40
|
this.options.events = this.events;
|
|
@@ -129,7 +126,7 @@ export default class Form extends Element {
|
|
|
129
126
|
* @return {*}
|
|
130
127
|
*/
|
|
131
128
|
set form(formParam) {
|
|
132
|
-
this.setForm(formParam);
|
|
129
|
+
return this.setForm(formParam);
|
|
133
130
|
}
|
|
134
131
|
errorForm(err) {
|
|
135
132
|
return {
|
|
@@ -227,9 +224,6 @@ export default class Form extends Element {
|
|
|
227
224
|
}
|
|
228
225
|
// A redraw has occurred so save off the new element in case of a setDisplay causing a rebuild.
|
|
229
226
|
return result.then(() => {
|
|
230
|
-
if (this.element) {
|
|
231
|
-
delete this.element.component;
|
|
232
|
-
}
|
|
233
227
|
this.element = this.instance.element;
|
|
234
228
|
return this.instance;
|
|
235
229
|
});
|
|
@@ -350,9 +344,6 @@ export default class Form extends Element {
|
|
|
350
344
|
if (!this.instance) {
|
|
351
345
|
return Promise.reject('Form not ready. Use form.ready promise');
|
|
352
346
|
}
|
|
353
|
-
if (this.element) {
|
|
354
|
-
delete this.element.component;
|
|
355
|
-
}
|
|
356
347
|
this.element = element;
|
|
357
348
|
return this.instance.attach(this.element)
|
|
358
349
|
.then((param) => {
|
|
@@ -360,11 +351,6 @@ export default class Form extends Element {
|
|
|
360
351
|
return param;
|
|
361
352
|
});
|
|
362
353
|
}
|
|
363
|
-
teardown() {
|
|
364
|
-
super.teardown();
|
|
365
|
-
delete this.instance;
|
|
366
|
-
delete this.ready;
|
|
367
|
-
}
|
|
368
354
|
}
|
|
369
355
|
// Allow simple embedding.
|
|
370
356
|
Formio.embedForm = (embed) => Form.embed(embed);
|
package/lib/mjs/PDF.js
CHANGED
|
@@ -57,15 +57,8 @@ export default class PDF extends Webform {
|
|
|
57
57
|
this.postMessage({ name: 'redraw' });
|
|
58
58
|
return this.builderMode ? Promise.resolve() : super.redraw();
|
|
59
59
|
}
|
|
60
|
-
destroy(all = false) {
|
|
61
|
-
if (this.iframeElement) {
|
|
62
|
-
delete this.iframeElement.formioComponent;
|
|
63
|
-
this.iframeElement.formioComponent = null;
|
|
64
|
-
}
|
|
65
|
-
super.destroy(all);
|
|
66
|
-
}
|
|
67
60
|
rebuild() {
|
|
68
|
-
if (this.
|
|
61
|
+
if (this.builderMode && this.component.components) {
|
|
69
62
|
this.destroyComponents();
|
|
70
63
|
this.addComponents();
|
|
71
64
|
return Promise.resolve();
|
package/lib/mjs/PDFBuilder.js
CHANGED
|
@@ -251,9 +251,9 @@ export default class PDFBuilder extends WebformBuilder {
|
|
|
251
251
|
});
|
|
252
252
|
return this.webform;
|
|
253
253
|
}
|
|
254
|
-
destroy(
|
|
255
|
-
super.destroy(
|
|
256
|
-
this.webform.destroy(
|
|
254
|
+
destroy(deleteFromGlobal) {
|
|
255
|
+
super.destroy(deleteFromGlobal);
|
|
256
|
+
this.webform.destroy(deleteFromGlobal);
|
|
257
257
|
}
|
|
258
258
|
// d8b 8888888888 888
|
|
259
259
|
// Y8P 888 888
|
package/lib/mjs/Webform.d.ts
CHANGED
|
@@ -382,6 +382,7 @@ declare class Webform extends NestedDataComponent {
|
|
|
382
382
|
*/
|
|
383
383
|
init(): Promise<any>;
|
|
384
384
|
executeFormController(): false | undefined;
|
|
385
|
+
destroy(deleteFromGlobal?: boolean): void;
|
|
385
386
|
build(element: any): Promise<any>;
|
|
386
387
|
getClassName(): string;
|
|
387
388
|
render(): any;
|
package/lib/mjs/Webform.js
CHANGED
|
@@ -142,7 +142,7 @@ export default class Webform extends NestedDataComponent {
|
|
|
142
142
|
formOptions = elementOrOptions;
|
|
143
143
|
}
|
|
144
144
|
super(null, getOptions(formOptions));
|
|
145
|
-
this.
|
|
145
|
+
this.element = element;
|
|
146
146
|
// Keep track of all available forms globally.
|
|
147
147
|
Formio.forms[this.id] = this;
|
|
148
148
|
// Set the base url.
|
|
@@ -331,12 +331,10 @@ export default class Webform extends NestedDataComponent {
|
|
|
331
331
|
* @return {*}
|
|
332
332
|
*/
|
|
333
333
|
addLanguage(code, lang, active = false) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
this.language = code;
|
|
339
|
-
}
|
|
334
|
+
var translations = _.assign(fastCloneDeep(i18nDefaults.resources.en.translation), lang);
|
|
335
|
+
this.i18next.addResourceBundle(code, 'translation', translations, true, true);
|
|
336
|
+
if (active) {
|
|
337
|
+
this.language = code;
|
|
340
338
|
}
|
|
341
339
|
}
|
|
342
340
|
keyboardCatchableElement(element) {
|
|
@@ -915,21 +913,18 @@ export default class Webform extends NestedDataComponent {
|
|
|
915
913
|
});
|
|
916
914
|
});
|
|
917
915
|
}
|
|
918
|
-
|
|
919
|
-
this.emit('formDelete', this.id);
|
|
920
|
-
delete Formio.forms[this.id];
|
|
921
|
-
delete this.executeShortcuts;
|
|
922
|
-
delete this.triggerSaveDraft;
|
|
923
|
-
super.teardown();
|
|
924
|
-
}
|
|
925
|
-
destroy(all = false) {
|
|
916
|
+
destroy(deleteFromGlobal = false) {
|
|
926
917
|
this.off('submitButton');
|
|
927
918
|
this.off('checkValidity');
|
|
928
919
|
this.off('requestUrl');
|
|
929
920
|
this.off('resetForm');
|
|
930
921
|
this.off('deleteSubmission');
|
|
931
922
|
this.off('refreshData');
|
|
932
|
-
|
|
923
|
+
if (deleteFromGlobal) {
|
|
924
|
+
this.emit('formDelete', this.id);
|
|
925
|
+
delete Formio.forms[this.id];
|
|
926
|
+
}
|
|
927
|
+
return super.destroy();
|
|
933
928
|
}
|
|
934
929
|
build(element) {
|
|
935
930
|
if (element || this.element) {
|
|
@@ -963,7 +958,7 @@ export default class Webform extends NestedDataComponent {
|
|
|
963
958
|
return this.attach(this.element);
|
|
964
959
|
}
|
|
965
960
|
attach(element) {
|
|
966
|
-
this.
|
|
961
|
+
this.element = element;
|
|
967
962
|
this.loadRefs(element, { webform: 'single' });
|
|
968
963
|
const childPromise = this.attachComponents(this.refs.webform);
|
|
969
964
|
this.addEventListener(document, 'keydown', this.executeShortcuts);
|
|
@@ -118,6 +118,7 @@ export default class WebformBuilder extends Component {
|
|
|
118
118
|
isParentSaveChildMethod(parentComp: any): boolean;
|
|
119
119
|
getParentElement(element: any): any;
|
|
120
120
|
addBuilderComponentInfo(component: any): any;
|
|
121
|
+
destroy(deleteFromGlobal: any): void;
|
|
121
122
|
addBuilderGroup(name: any, group: any): void;
|
|
122
123
|
updateBuilderGroup(name: any, group: any): void;
|
|
123
124
|
generateKey(info: any): any;
|
|
@@ -30,7 +30,7 @@ export default class WebformBuilder extends Component {
|
|
|
30
30
|
options.skipInit = false;
|
|
31
31
|
options.display = options.display || 'form';
|
|
32
32
|
super(null, options);
|
|
33
|
-
this.
|
|
33
|
+
this.element = element;
|
|
34
34
|
this.dragulaLib = dragula;
|
|
35
35
|
this.builderHeight = 0;
|
|
36
36
|
this.schemas = {};
|
|
@@ -1104,10 +1104,14 @@ export default class WebformBuilder extends Component {
|
|
|
1104
1104
|
let hasInvalidComponents = false;
|
|
1105
1105
|
this.webform.everyComponent((comp) => {
|
|
1106
1106
|
const path = comp.path;
|
|
1107
|
+
const errors = comp.visibleErrors || [];
|
|
1107
1108
|
if (repeatablePaths.includes(path)) {
|
|
1108
|
-
comp.setCustomValidity(
|
|
1109
|
+
comp.setCustomValidity(`API Key is not unique: ${comp.key}`);
|
|
1109
1110
|
hasInvalidComponents = true;
|
|
1110
1111
|
}
|
|
1112
|
+
else if (errors.length && errors[0].message?.startsWith('API Key is not unique')) {
|
|
1113
|
+
comp.setCustomValidity('');
|
|
1114
|
+
}
|
|
1111
1115
|
});
|
|
1112
1116
|
this.emit('builderFormValidityChange', hasInvalidComponents);
|
|
1113
1117
|
}
|
|
@@ -1580,11 +1584,11 @@ export default class WebformBuilder extends Component {
|
|
|
1580
1584
|
this.webform.clear();
|
|
1581
1585
|
}
|
|
1582
1586
|
}
|
|
1583
|
-
destroy(
|
|
1587
|
+
destroy(deleteFromGlobal) {
|
|
1584
1588
|
if (this.webform.initialized) {
|
|
1585
|
-
this.webform.destroy(
|
|
1589
|
+
this.webform.destroy(deleteFromGlobal);
|
|
1586
1590
|
}
|
|
1587
|
-
super.destroy(
|
|
1591
|
+
super.destroy(deleteFromGlobal);
|
|
1588
1592
|
}
|
|
1589
1593
|
addBuilderGroup(name, group) {
|
|
1590
1594
|
if (!this.groups[name]) {
|
package/lib/mjs/Wizard.js
CHANGED
|
@@ -335,6 +335,7 @@ declare class Component extends Element {
|
|
|
335
335
|
createComponentModal(element: any, modalShouldBeOpened: any, currentValue: any): ComponentModal;
|
|
336
336
|
attach(element: any): Promise<void>;
|
|
337
337
|
componentModal: any;
|
|
338
|
+
element: any;
|
|
338
339
|
restoreFocus(): void;
|
|
339
340
|
addShortcut(element: any, shortcut: any): void;
|
|
340
341
|
removeShortcut(element: any, shortcut: any): void;
|
|
@@ -363,8 +364,6 @@ declare class Component extends Element {
|
|
|
363
364
|
*/
|
|
364
365
|
inContext(component: any): boolean;
|
|
365
366
|
get viewOnly(): any;
|
|
366
|
-
setElement(element: any): void;
|
|
367
|
-
element: any;
|
|
368
367
|
createViewOnlyElement(): any;
|
|
369
368
|
get defaultViewOnlyValue(): string;
|
|
370
369
|
/**
|
|
@@ -492,12 +491,10 @@ declare class Component extends Element {
|
|
|
492
491
|
/**
|
|
493
492
|
* Add a new input error to this element.
|
|
494
493
|
*
|
|
495
|
-
* @param
|
|
494
|
+
* @param message
|
|
495
|
+
* @param dirty
|
|
496
496
|
*/
|
|
497
|
-
addMessages(messages:
|
|
498
|
-
level: string;
|
|
499
|
-
message: string;
|
|
500
|
-
}[]): void;
|
|
497
|
+
addMessages(messages: any): void;
|
|
501
498
|
setErrorClasses(elements: any, dirty: any, hasErrors: any, hasMessages: any, element?: any): void;
|
|
502
499
|
setElementInvalid(element: any, invalid: any): void;
|
|
503
500
|
clearOnHide(): void;
|
|
@@ -498,30 +498,10 @@ export default class Component extends Element {
|
|
|
498
498
|
}
|
|
499
499
|
return addon;
|
|
500
500
|
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
delete this.element.component;
|
|
504
|
-
delete this.element;
|
|
505
|
-
}
|
|
506
|
-
delete this._currentForm;
|
|
507
|
-
delete this.parent;
|
|
508
|
-
delete this.root;
|
|
509
|
-
delete this.triggerChange;
|
|
510
|
-
delete this.triggerRedraw;
|
|
511
|
-
if (this.options) {
|
|
512
|
-
delete this.options.root;
|
|
513
|
-
delete this.options.parent;
|
|
514
|
-
delete this.options.i18next;
|
|
515
|
-
}
|
|
516
|
-
super.teardown();
|
|
517
|
-
}
|
|
518
|
-
destroy(all = false) {
|
|
519
|
-
super.destroy(all);
|
|
501
|
+
destroy() {
|
|
502
|
+
super.destroy();
|
|
520
503
|
this.detach();
|
|
521
504
|
this.addons.forEach((addon) => addon.destroy());
|
|
522
|
-
if (all) {
|
|
523
|
-
this.teardown();
|
|
524
|
-
}
|
|
525
505
|
}
|
|
526
506
|
get shouldDisabled() {
|
|
527
507
|
return this.options.readOnly || this.component.disabled || (this.options.hasOwnProperty('disabled') && this.options.disabled[this.key]);
|
|
@@ -1072,7 +1052,7 @@ export default class Component extends Element {
|
|
|
1072
1052
|
this.setOpenModalElement(openModalTemplate);
|
|
1073
1053
|
}
|
|
1074
1054
|
this.attached = true;
|
|
1075
|
-
this.
|
|
1055
|
+
this.element = element;
|
|
1076
1056
|
element.component = this;
|
|
1077
1057
|
// If this already has an id, get it from the dom. If SSR, it could be different from the initiated id.
|
|
1078
1058
|
if (this.element.id) {
|
|
@@ -1130,17 +1110,6 @@ export default class Component extends Element {
|
|
|
1130
1110
|
* Remove all event handlers.
|
|
1131
1111
|
*/
|
|
1132
1112
|
detach() {
|
|
1133
|
-
// First iterate through each ref and delete the component so there are no dangling component references.
|
|
1134
|
-
_.each(this.refs, (ref) => {
|
|
1135
|
-
if (typeof ref === NodeList) {
|
|
1136
|
-
ref.forEach((elem) => {
|
|
1137
|
-
delete elem.component;
|
|
1138
|
-
});
|
|
1139
|
-
}
|
|
1140
|
-
else if (ref) {
|
|
1141
|
-
delete ref.component;
|
|
1142
|
-
}
|
|
1143
|
-
});
|
|
1144
1113
|
this.refs = {};
|
|
1145
1114
|
this.removeEventListeners();
|
|
1146
1115
|
this.detachLogic();
|
|
@@ -1228,17 +1197,10 @@ export default class Component extends Element {
|
|
|
1228
1197
|
get viewOnly() {
|
|
1229
1198
|
return this.options.readOnly && this.options.viewAsHtml;
|
|
1230
1199
|
}
|
|
1231
|
-
setElement(element) {
|
|
1232
|
-
if (this.element) {
|
|
1233
|
-
delete this.element.component;
|
|
1234
|
-
delete this.element;
|
|
1235
|
-
}
|
|
1236
|
-
this.element = element;
|
|
1237
|
-
}
|
|
1238
1200
|
createViewOnlyElement() {
|
|
1239
|
-
this.
|
|
1201
|
+
this.element = this.ce('dl', {
|
|
1240
1202
|
id: this.id
|
|
1241
|
-
})
|
|
1203
|
+
});
|
|
1242
1204
|
if (this.element) {
|
|
1243
1205
|
// Ensure you can get the component info from the element.
|
|
1244
1206
|
this.element.component = this;
|
|
@@ -1556,7 +1518,7 @@ export default class Component extends Element {
|
|
|
1556
1518
|
const parent = this.element.parentNode;
|
|
1557
1519
|
const index = Array.prototype.indexOf.call(parent.children, this.element);
|
|
1558
1520
|
this.element.outerHTML = this.sanitize(this.render());
|
|
1559
|
-
this.
|
|
1521
|
+
this.element = parent.children[index];
|
|
1560
1522
|
return this.attach(this.element);
|
|
1561
1523
|
}
|
|
1562
1524
|
rebuild() {
|
|
@@ -1795,7 +1757,8 @@ export default class Component extends Element {
|
|
|
1795
1757
|
/**
|
|
1796
1758
|
* Add a new input error to this element.
|
|
1797
1759
|
*
|
|
1798
|
-
* @param
|
|
1760
|
+
* @param message
|
|
1761
|
+
* @param dirty
|
|
1799
1762
|
*/
|
|
1800
1763
|
addMessages(messages) {
|
|
1801
1764
|
if (!messages) {
|
|
@@ -266,22 +266,8 @@ export default class Input extends Multivalue {
|
|
|
266
266
|
widget.on('redraw', () => this.redraw(), true);
|
|
267
267
|
return widget;
|
|
268
268
|
}
|
|
269
|
-
teardown() {
|
|
270
|
-
if (this.element && this.element.widget) {
|
|
271
|
-
this.element.widget.destroy();
|
|
272
|
-
delete this.element.widget;
|
|
273
|
-
}
|
|
274
|
-
if (this.refs && this.refs.input) {
|
|
275
|
-
for (let i = 0; i <= this.refs.input.length; i++) {
|
|
276
|
-
const widget = this.getWidget(i);
|
|
277
|
-
if (widget) {
|
|
278
|
-
widget.destroy();
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
super.teardown();
|
|
283
|
-
}
|
|
284
269
|
detach() {
|
|
270
|
+
super.detach();
|
|
285
271
|
if (this.refs && this.refs.input) {
|
|
286
272
|
for (let i = 0; i <= this.refs.input.length; i++) {
|
|
287
273
|
const widget = this.getWidget(i);
|
|
@@ -291,6 +277,5 @@ export default class Input extends Multivalue {
|
|
|
291
277
|
}
|
|
292
278
|
}
|
|
293
279
|
this.refs.input = [];
|
|
294
|
-
super.detach();
|
|
295
280
|
}
|
|
296
281
|
}
|
|
@@ -82,7 +82,7 @@ export default class NestedComponent extends Field {
|
|
|
82
82
|
* @param {Component} component - The component to remove from the components.
|
|
83
83
|
* @param {Array<Component>} components - An array of components to remove this component from.
|
|
84
84
|
*/
|
|
85
|
-
removeComponent(component: Component, components: Array<Component
|
|
85
|
+
removeComponent(component: Component, components: Array<Component>): void;
|
|
86
86
|
/**
|
|
87
87
|
* Removes a component provided the API key of that component.
|
|
88
88
|
*
|
|
@@ -140,7 +140,7 @@ export default class NestedComponent extends Field {
|
|
|
140
140
|
checkAsyncValidity(data: any, dirty: any, row: any, silentCheck: any): Promise<any>;
|
|
141
141
|
setPristine(pristine: any): void;
|
|
142
142
|
get isPristine(): any;
|
|
143
|
-
destroyComponents(
|
|
143
|
+
destroyComponents(): void;
|
|
144
144
|
get visibleErrors(): any;
|
|
145
145
|
get errors(): any;
|
|
146
146
|
get dataReady(): Promise<any[]>;
|
|
@@ -325,7 +325,6 @@ export default class NestedComponent extends Field {
|
|
|
325
325
|
*/
|
|
326
326
|
addComponents(data, options) {
|
|
327
327
|
data = data || this.data;
|
|
328
|
-
this.components = this.components || [];
|
|
329
328
|
options = options || this.options;
|
|
330
329
|
if (options.components) {
|
|
331
330
|
this.components = options.components;
|
|
@@ -437,9 +436,9 @@ export default class NestedComponent extends Field {
|
|
|
437
436
|
* @param {Component} component - The component to remove from the components.
|
|
438
437
|
* @param {Array<Component>} components - An array of components to remove this component from.
|
|
439
438
|
*/
|
|
440
|
-
removeComponent(component, components
|
|
439
|
+
removeComponent(component, components) {
|
|
441
440
|
components = components || this.components;
|
|
442
|
-
component.destroy(
|
|
441
|
+
component.destroy();
|
|
443
442
|
_.remove(components, { id: component.id });
|
|
444
443
|
if (this.componentsMap[component.path]) {
|
|
445
444
|
delete this.componentsMap[component.path];
|
|
@@ -664,13 +663,13 @@ export default class NestedComponent extends Field {
|
|
|
664
663
|
});
|
|
665
664
|
super.clear();
|
|
666
665
|
}
|
|
667
|
-
destroy(
|
|
668
|
-
this.destroyComponents(
|
|
669
|
-
super.destroy(
|
|
666
|
+
destroy() {
|
|
667
|
+
this.destroyComponents();
|
|
668
|
+
super.destroy();
|
|
670
669
|
}
|
|
671
|
-
destroyComponents(
|
|
670
|
+
destroyComponents() {
|
|
672
671
|
const components = this.getComponents().slice();
|
|
673
|
-
components.forEach((comp) => this.removeComponent(comp, this.components
|
|
672
|
+
components.forEach((comp) => this.removeComponent(comp, this.components));
|
|
674
673
|
this.components = [];
|
|
675
674
|
}
|
|
676
675
|
get visibleErrors() {
|
|
@@ -52,7 +52,7 @@ export default class EditGridComponent extends NestedArrayComponent {
|
|
|
52
52
|
renderRow(row: any, rowIndex: any): any;
|
|
53
53
|
eachComponent(fn: any, rowIndex: any): void;
|
|
54
54
|
flattenComponents(rowIndex: any): {};
|
|
55
|
-
destroyComponents(
|
|
55
|
+
destroyComponents(rowIndex: any): void;
|
|
56
56
|
createRow(dataObj: any, rowIndex: any): {
|
|
57
57
|
components: any;
|
|
58
58
|
data: any;
|