@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.
Files changed (69) hide show
  1. package/dist/formio.form.js +18 -18
  2. package/dist/formio.form.min.js +1 -1
  3. package/dist/formio.full.js +20 -20
  4. package/dist/formio.full.min.js +1 -1
  5. package/dist/formio.utils.js +1 -1
  6. package/dist/formio.utils.min.js +1 -1
  7. package/lib/cjs/Element.d.ts +1 -2
  8. package/lib/cjs/Element.js +8 -17
  9. package/lib/cjs/Form.js +1 -15
  10. package/lib/cjs/PDF.js +1 -8
  11. package/lib/cjs/PDFBuilder.js +3 -3
  12. package/lib/cjs/Webform.d.ts +1 -0
  13. package/lib/cjs/Webform.js +12 -17
  14. package/lib/cjs/WebformBuilder.d.ts +1 -0
  15. package/lib/cjs/WebformBuilder.js +10 -5
  16. package/lib/cjs/Wizard.js +1 -1
  17. package/lib/cjs/addons/FormioAddon.d.ts +0 -1
  18. package/lib/cjs/components/_classes/component/Component.d.ts +4 -7
  19. package/lib/cjs/components/_classes/component/Component.js +8 -45
  20. package/lib/cjs/components/_classes/input/Input.js +1 -16
  21. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -2
  22. package/lib/cjs/components/_classes/nested/NestedComponent.js +7 -8
  23. package/lib/cjs/components/columns/Columns.js +2 -2
  24. package/lib/cjs/components/editgrid/EditGrid.d.ts +1 -1
  25. package/lib/cjs/components/editgrid/EditGrid.js +7 -21
  26. package/lib/cjs/components/file/File.d.ts +0 -1
  27. package/lib/cjs/components/file/File.js +2 -2
  28. package/lib/cjs/components/form/Form.js +3 -3
  29. package/lib/cjs/components/select/Select.js +2 -4
  30. package/lib/cjs/components/table/Table.d.ts +1 -0
  31. package/lib/cjs/components/table/Table.js +1 -1
  32. package/lib/cjs/components/tags/Tags.js +2 -4
  33. package/lib/cjs/translations/en.d.ts +0 -1
  34. package/lib/cjs/translations/en.js +0 -1
  35. package/lib/cjs/utils/utils.d.ts +1 -1
  36. package/lib/cjs/utils/utils.js +2 -14
  37. package/lib/cjs/widgets/CalendarWidget.js +2 -2
  38. package/lib/mjs/Element.d.ts +1 -2
  39. package/lib/mjs/Element.js +8 -17
  40. package/lib/mjs/Form.js +1 -15
  41. package/lib/mjs/PDF.js +1 -8
  42. package/lib/mjs/PDFBuilder.js +3 -3
  43. package/lib/mjs/Webform.d.ts +1 -0
  44. package/lib/mjs/Webform.js +12 -17
  45. package/lib/mjs/WebformBuilder.d.ts +1 -0
  46. package/lib/mjs/WebformBuilder.js +9 -5
  47. package/lib/mjs/Wizard.js +1 -1
  48. package/lib/mjs/addons/FormioAddon.d.ts +0 -1
  49. package/lib/mjs/components/_classes/component/Component.d.ts +4 -7
  50. package/lib/mjs/components/_classes/component/Component.js +8 -45
  51. package/lib/mjs/components/_classes/input/Input.js +1 -16
  52. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -2
  53. package/lib/mjs/components/_classes/nested/NestedComponent.js +7 -8
  54. package/lib/mjs/components/columns/Columns.js +2 -2
  55. package/lib/mjs/components/editgrid/EditGrid.d.ts +1 -1
  56. package/lib/mjs/components/editgrid/EditGrid.js +7 -20
  57. package/lib/mjs/components/file/File.d.ts +0 -1
  58. package/lib/mjs/components/file/File.js +2 -2
  59. package/lib/mjs/components/form/Form.js +3 -3
  60. package/lib/mjs/components/select/Select.js +2 -4
  61. package/lib/mjs/components/table/Table.d.ts +1 -0
  62. package/lib/mjs/components/table/Table.js +1 -1
  63. package/lib/mjs/components/tags/Tags.js +2 -4
  64. package/lib/mjs/translations/en.d.ts +0 -1
  65. package/lib/mjs/translations/en.js +0 -1
  66. package/lib/mjs/utils/utils.d.ts +1 -1
  67. package/lib/mjs/utils/utils.js +1 -2
  68. package/lib/mjs/widgets/CalendarWidget.js +2 -2
  69. package/package.json +1 -1
@@ -19,5 +19,6 @@ export default class TableComponent extends NestedComponent {
19
19
  noField: boolean;
20
20
  table: any[] | undefined;
21
21
  render(): any;
22
+ destroy(all: any): void;
22
23
  }
23
24
  import NestedComponent from '../_classes/nested/NestedComponent';
@@ -167,7 +167,7 @@ class TableComponent extends NestedComponent_1.default {
167
167
  });
168
168
  return superAttach;
169
169
  }
170
- destroy(all = false) {
170
+ destroy(all) {
171
171
  super.destroy(all);
172
172
  delete this.table;
173
173
  }
@@ -61,9 +61,7 @@ class TagsComponent extends Input_1.default {
61
61
  if (!element) {
62
62
  return;
63
63
  }
64
- if (this.i18next) {
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)) {
@@ -71,6 +71,5 @@ declare namespace _default {
71
71
  let submitButtonAriaLabel: string;
72
72
  let reCaptchaTokenValidationError: string;
73
73
  let reCaptchaTokenNotSpecifiedError: string;
74
- let apiKey: string;
75
74
  }
76
75
  export default _default;
@@ -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
  };
@@ -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, _ };
@@ -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.moment = exports.ConditionOperators = exports.jsonLogic = void 0;
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(all = false) {
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;
@@ -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(all?: boolean): void;
123
+ destroy(): void;
125
124
  /**
126
125
  * Append an HTML DOM element to a container.
127
126
  *
@@ -230,29 +230,20 @@ export default class Element {
230
230
  this.eventHandlers = [];
231
231
  }
232
232
  removeAllEvents(includeExternal) {
233
- if (this.events) {
234
- _.each(this.events._events, (events, type) => {
235
- _.each(events, (listener) => {
236
- if (listener && (this.id === listener.id) && (includeExternal || listener.internal)) {
237
- this.events.off(type, listener);
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(all = false) {
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 ? this.i18next.t(text, ...args) : text;
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.attached && this.builderMode && this.component.components) {
61
+ if (this.builderMode && this.component.components) {
69
62
  this.destroyComponents();
70
63
  this.addComponents();
71
64
  return Promise.resolve();
@@ -251,9 +251,9 @@ export default class PDFBuilder extends WebformBuilder {
251
251
  });
252
252
  return this.webform;
253
253
  }
254
- destroy(all = false) {
255
- super.destroy(all);
256
- this.webform.destroy(all);
254
+ destroy(deleteFromGlobal) {
255
+ super.destroy(deleteFromGlobal);
256
+ this.webform.destroy(deleteFromGlobal);
257
257
  }
258
258
  // d8b 8888888888 888
259
259
  // Y8P 888 888
@@ -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;
@@ -142,7 +142,7 @@ export default class Webform extends NestedDataComponent {
142
142
  formOptions = elementOrOptions;
143
143
  }
144
144
  super(null, getOptions(formOptions));
145
- this.setElement(element);
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
- if (this.i18next) {
335
- var translations = _.assign(fastCloneDeep(i18nDefaults.resources.en.translation), lang);
336
- this.i18next.addResourceBundle(code, 'translation', translations, true, true);
337
- if (active) {
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
- teardown() {
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
- return super.destroy(all);
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.setElement(element);
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.setElement(element);
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(this.t('apiKey', { key: comp.key }));
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(all = false) {
1587
+ destroy(deleteFromGlobal) {
1584
1588
  if (this.webform.initialized) {
1585
- this.webform.destroy(all);
1589
+ this.webform.destroy(deleteFromGlobal);
1586
1590
  }
1587
- super.destroy(all);
1591
+ super.destroy(deleteFromGlobal);
1588
1592
  }
1589
1593
  addBuilderGroup(name, group) {
1590
1594
  if (!this.groups[name]) {
package/lib/mjs/Wizard.js CHANGED
@@ -240,7 +240,7 @@ export default class Wizard extends Webform {
240
240
  }
241
241
  }
242
242
  attach(element) {
243
- this.setElement(element);
243
+ this.element = element;
244
244
  this.loadRefs(element, {
245
245
  [this.wizardKey]: 'single',
246
246
  [`${this.wizardKey}-header`]: 'single',
@@ -14,6 +14,5 @@ export default class FormioAddon extends Element {
14
14
  settings: any;
15
15
  attach(element: any): Promise<void>;
16
16
  _element: any;
17
- destroy(): void;
18
17
  }
19
18
  import Element from '../Element';
@@ -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 {{level: string, message: string}[]} messages
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
- teardown() {
502
- if (this.element) {
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.setElement(element);
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.setElement(this.ce('dl', {
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.setElement(parent.children[index]);
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 {{level: string, message: string}[]} messages
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>, all?: boolean): void;
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(all?: boolean): void;
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, all = false) {
439
+ removeComponent(component, components) {
441
440
  components = components || this.components;
442
- component.destroy(all);
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(all = false) {
668
- this.destroyComponents(all);
669
- super.destroy(all);
666
+ destroy() {
667
+ this.destroyComponents();
668
+ super.destroy();
670
669
  }
671
- destroyComponents(all = false) {
670
+ destroyComponents() {
672
671
  const components = this.getComponents().slice();
673
- components.forEach((comp) => this.removeComponent(comp, this.components, all));
672
+ components.forEach((comp) => this.removeComponent(comp, this.components));
674
673
  this.components = [];
675
674
  }
676
675
  get visibleErrors() {
@@ -145,8 +145,8 @@ export default class ColumnsComponent extends NestedComponent {
145
145
  detach(all) {
146
146
  super.detach(all);
147
147
  }
148
- destroy(all = false) {
149
- super.destroy(all);
148
+ destroy() {
149
+ super.destroy();
150
150
  this.columns = [];
151
151
  }
152
152
  }
@@ -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(all?: boolean, rowIndex?: number): void;
55
+ destroyComponents(rowIndex: any): void;
56
56
  createRow(dataObj: any, rowIndex: any): {
57
57
  components: any;
58
58
  data: any;