@formio/js 5.1.0-dev.6109.79f22ad → 5.1.0-dev.6112.86987a5

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 (168) hide show
  1. package/README.md +7 -0
  2. package/dist/formio.builder.css +1 -0
  3. package/dist/formio.builder.min.css +1 -1
  4. package/dist/formio.form.css +1 -0
  5. package/dist/formio.form.js +116 -149
  6. package/dist/formio.form.min.css +1 -1
  7. package/dist/formio.form.min.js +1 -1
  8. package/dist/formio.full.css +1 -0
  9. package/dist/formio.full.js +123 -156
  10. package/dist/formio.full.min.css +1 -1
  11. package/dist/formio.full.min.js +1 -1
  12. package/dist/formio.js +65 -54
  13. package/dist/formio.min.js +1 -1
  14. package/dist/formio.utils.js +76 -76
  15. package/dist/formio.utils.min.js +1 -1
  16. package/lib/cjs/Element.d.ts +2 -1
  17. package/lib/cjs/Element.js +18 -39
  18. package/lib/cjs/EventEmitter.js +2 -25
  19. package/lib/cjs/Form.js +2 -25
  20. package/lib/cjs/PDF.js +1 -1
  21. package/lib/cjs/PDFBuilder.d.ts +1 -0
  22. package/lib/cjs/PDFBuilder.js +10 -11
  23. package/lib/cjs/Webform.d.ts +2 -2
  24. package/lib/cjs/Webform.js +9 -9
  25. package/lib/cjs/WebformBuilder.d.ts +1 -1
  26. package/lib/cjs/WebformBuilder.js +45 -21
  27. package/lib/cjs/Wizard.d.ts +1 -2
  28. package/lib/cjs/Wizard.js +18 -24
  29. package/lib/cjs/WizardBuilder.js +1 -1
  30. package/lib/cjs/components/_classes/component/Component.d.ts +0 -1
  31. package/lib/cjs/components/_classes/component/Component.js +57 -62
  32. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  33. package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
  34. package/lib/cjs/components/_classes/componentModal/ComponentModal.js +1 -1
  35. package/lib/cjs/components/_classes/input/Input.d.ts +1 -1
  36. package/lib/cjs/components/_classes/input/Input.js +3 -3
  37. package/lib/cjs/components/_classes/list/ListComponent.js +1 -1
  38. package/lib/cjs/components/_classes/nested/NestedComponent.js +7 -7
  39. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  40. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  41. package/lib/cjs/components/address/Address.js +1 -1
  42. package/lib/cjs/components/alert/Alert.js +1 -1
  43. package/lib/cjs/components/button/Button.js +1 -1
  44. package/lib/cjs/components/checkbox/Checkbox.js +1 -1
  45. package/lib/cjs/components/container/Container.js +1 -1
  46. package/lib/cjs/components/currency/Currency.js +1 -1
  47. package/lib/cjs/components/datagrid/DataGrid.js +1 -1
  48. package/lib/cjs/components/datamap/DataMap.js +7 -2
  49. package/lib/cjs/components/datetime/DateTime.d.ts +1 -1
  50. package/lib/cjs/components/datetime/DateTime.js +15 -13
  51. package/lib/cjs/components/day/Day.js +2 -2
  52. package/lib/cjs/components/editgrid/EditGrid.js +1 -1
  53. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  54. package/lib/cjs/components/fieldset/Fieldset.js +1 -0
  55. package/lib/cjs/components/file/File.js +1 -1
  56. package/lib/cjs/components/form/Form.js +14 -2
  57. package/lib/cjs/components/form/editForm/Form.edit.form.js +4 -3
  58. package/lib/cjs/components/number/Number.js +1 -1
  59. package/lib/cjs/components/panel/Panel.js +1 -1
  60. package/lib/cjs/components/radio/Radio.d.ts +8 -0
  61. package/lib/cjs/components/radio/Radio.js +16 -6
  62. package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
  63. package/lib/cjs/components/select/Select.js +7 -3
  64. package/lib/cjs/components/select/editForm/Select.edit.data.js +1 -1
  65. package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +6 -0
  66. package/lib/cjs/components/selectboxes/SelectBoxes.js +1 -1
  67. package/lib/cjs/components/signature/Signature.js +1 -1
  68. package/lib/cjs/components/survey/Survey.js +1 -1
  69. package/lib/cjs/components/tags/Tags.js +1 -1
  70. package/lib/cjs/components/textarea/TextArea.js +9 -4
  71. package/lib/cjs/components/textfield/TextField.js +13 -31
  72. package/lib/cjs/components/time/Time.js +1 -1
  73. package/lib/cjs/formio.form.js +5 -5
  74. package/lib/cjs/providers/storage/uploadAdapter.js +1 -1
  75. package/lib/cjs/translations/en.d.ts +1 -232
  76. package/lib/cjs/translations/en.js +4 -2
  77. package/lib/cjs/utils/Evaluator.d.ts +20 -6
  78. package/lib/cjs/utils/Evaluator.js +38 -15
  79. package/lib/cjs/utils/builder.js +5 -5
  80. package/lib/cjs/utils/conditionOperators/IsEqualTo.js +3 -3
  81. package/lib/cjs/utils/formUtils.d.ts +2 -2
  82. package/lib/cjs/utils/index.d.ts +169 -2
  83. package/lib/cjs/utils/index.js +22 -2
  84. package/lib/cjs/utils/utils.d.ts +22 -37
  85. package/lib/cjs/utils/utils.js +64 -135
  86. package/lib/cjs/widgets/CalendarWidget.d.ts +1 -8
  87. package/lib/cjs/widgets/CalendarWidget.js +17 -43
  88. package/lib/mjs/Element.d.ts +2 -1
  89. package/lib/mjs/Element.js +11 -9
  90. package/lib/mjs/EventEmitter.js +2 -2
  91. package/lib/mjs/Form.js +1 -1
  92. package/lib/mjs/PDF.js +1 -1
  93. package/lib/mjs/PDFBuilder.d.ts +1 -0
  94. package/lib/mjs/PDFBuilder.js +9 -10
  95. package/lib/mjs/Webform.d.ts +2 -2
  96. package/lib/mjs/Webform.js +7 -7
  97. package/lib/mjs/WebformBuilder.d.ts +1 -1
  98. package/lib/mjs/WebformBuilder.js +36 -13
  99. package/lib/mjs/Wizard.d.ts +1 -2
  100. package/lib/mjs/Wizard.js +17 -23
  101. package/lib/mjs/WizardBuilder.js +1 -1
  102. package/lib/mjs/components/_classes/component/Component.d.ts +0 -1
  103. package/lib/mjs/components/_classes/component/Component.js +30 -12
  104. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  105. package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
  106. package/lib/mjs/components/_classes/componentModal/ComponentModal.js +1 -1
  107. package/lib/mjs/components/_classes/input/Input.d.ts +1 -1
  108. package/lib/mjs/components/_classes/input/Input.js +3 -3
  109. package/lib/mjs/components/_classes/list/ListComponent.js +1 -1
  110. package/lib/mjs/components/_classes/nested/NestedComponent.js +7 -7
  111. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  112. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  113. package/lib/mjs/components/address/Address.js +1 -1
  114. package/lib/mjs/components/alert/Alert.js +1 -1
  115. package/lib/mjs/components/button/Button.js +1 -1
  116. package/lib/mjs/components/checkbox/Checkbox.js +1 -1
  117. package/lib/mjs/components/container/Container.js +1 -1
  118. package/lib/mjs/components/currency/Currency.js +1 -1
  119. package/lib/mjs/components/datagrid/DataGrid.js +1 -1
  120. package/lib/mjs/components/datamap/DataMap.js +7 -2
  121. package/lib/mjs/components/datetime/DateTime.d.ts +1 -1
  122. package/lib/mjs/components/datetime/DateTime.js +15 -13
  123. package/lib/mjs/components/day/Day.js +2 -2
  124. package/lib/mjs/components/editgrid/EditGrid.js +1 -1
  125. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  126. package/lib/mjs/components/fieldset/Fieldset.js +1 -0
  127. package/lib/mjs/components/file/File.js +1 -1
  128. package/lib/mjs/components/form/Form.js +13 -2
  129. package/lib/mjs/components/form/editForm/Form.edit.form.js +3 -2
  130. package/lib/mjs/components/number/Number.js +1 -1
  131. package/lib/mjs/components/panel/Panel.js +1 -1
  132. package/lib/mjs/components/radio/Radio.d.ts +8 -0
  133. package/lib/mjs/components/radio/Radio.js +16 -6
  134. package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
  135. package/lib/mjs/components/select/Select.js +7 -3
  136. package/lib/mjs/components/select/editForm/Select.edit.data.js +1 -1
  137. package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +6 -0
  138. package/lib/mjs/components/selectboxes/SelectBoxes.js +1 -1
  139. package/lib/mjs/components/signature/Signature.js +1 -1
  140. package/lib/mjs/components/survey/Survey.js +1 -1
  141. package/lib/mjs/components/tags/Tags.js +1 -1
  142. package/lib/mjs/components/textarea/TextArea.js +9 -4
  143. package/lib/mjs/components/textfield/TextField.js +7 -2
  144. package/lib/mjs/components/time/Time.js +1 -1
  145. package/lib/mjs/formio.form.js +3 -3
  146. package/lib/mjs/providers/storage/uploadAdapter.js +1 -1
  147. package/lib/mjs/translations/en.d.ts +1 -232
  148. package/lib/mjs/translations/en.js +8 -47
  149. package/lib/mjs/utils/Evaluator.d.ts +20 -6
  150. package/lib/mjs/utils/Evaluator.js +31 -13
  151. package/lib/mjs/utils/builder.js +1 -1
  152. package/lib/mjs/utils/conditionOperators/IsEqualTo.js +1 -1
  153. package/lib/mjs/utils/formUtils.d.ts +2 -2
  154. package/lib/mjs/utils/index.d.ts +169 -2
  155. package/lib/mjs/utils/index.js +18 -1
  156. package/lib/mjs/utils/utils.d.ts +22 -37
  157. package/lib/mjs/utils/utils.js +57 -109
  158. package/lib/mjs/widgets/CalendarWidget.d.ts +1 -8
  159. package/lib/mjs/widgets/CalendarWidget.js +17 -43
  160. package/package.json +5 -3
  161. package/lib/cjs/i18n.d.ts +0 -13
  162. package/lib/cjs/i18n.js +0 -19
  163. package/lib/cjs/utils/i18n.d.ts +0 -19
  164. package/lib/cjs/utils/i18n.js +0 -120
  165. package/lib/mjs/i18n.d.ts +0 -13
  166. package/lib/mjs/i18n.js +0 -14
  167. package/lib/mjs/utils/i18n.d.ts +0 -19
  168. package/lib/mjs/utils/i18n.js +0 -112
@@ -7,7 +7,7 @@ const WebformBuilder_1 = __importDefault(require("./WebformBuilder"));
7
7
  const Webform_1 = __importDefault(require("./Webform"));
8
8
  const builder_1 = __importDefault(require("./utils/builder"));
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
- const utils_1 = require("./utils/utils");
10
+ const utils_1 = require("./utils");
11
11
  class WizardBuilder extends WebformBuilder_1.default {
12
12
  constructor() {
13
13
  let element, options;
@@ -165,7 +165,6 @@ declare class Component extends Element {
165
165
  get componentsMap(): object;
166
166
  /**
167
167
  * Returns if the parent should conditionally clear.
168
- *
169
168
  * @returns {boolean} - If the parent should conditionally clear.
170
169
  */
171
170
  parentShouldConditionallyClear(): boolean;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -42,8 +19,8 @@ const lodash_1 = __importDefault(require("lodash"));
42
19
  const ismobilejs_1 = __importDefault(require("ismobilejs"));
43
20
  const process_1 = require("@formio/core/process");
44
21
  const Formio_1 = require("../../../Formio");
45
- const FormioUtils = __importStar(require("../../../utils/utils"));
46
- const utils_1 = require("../../../utils/utils");
22
+ const utils_1 = __importDefault(require("../../../utils"));
23
+ const utils_2 = require("../../../utils");
47
24
  const Element_1 = __importDefault(require("../../../Element"));
48
25
  const ComponentModal_1 = __importDefault(require("../componentModal/ComponentModal"));
49
26
  const widgets_1 = __importDefault(require("../../../widgets"));
@@ -51,7 +28,7 @@ const addons_1 = __importDefault(require("../../../addons"));
51
28
  const uploadAdapter_1 = require("../../../providers/storage/uploadAdapter");
52
29
  const en_1 = __importDefault(require("../../../translations/en"));
53
30
  const Templates_1 = __importDefault(require("../../../templates/Templates"));
54
- const isIEBrowser = FormioUtils.getBrowserInfo().ie;
31
+ const isIEBrowser = utils_1.default.getBrowserInfo().ie;
55
32
  /**
56
33
  * This is the Component class
57
34
  which all elements within the FormioForm derive from.
@@ -225,7 +202,7 @@ class Component extends Element_1.default {
225
202
  */
226
203
  static savedValueTypes(schema) {
227
204
  schema = schema || {};
228
- return FormioUtils.getComponentSavedTypes(schema) || [FormioUtils.componentValueTypes.any];
205
+ return utils_1.default.getComponentSavedTypes(schema) || [utils_1.default.componentValueTypes.any];
229
206
  }
230
207
  /**
231
208
  * Provides a table view for this component. Override if you wish to do something different than using getView
@@ -292,7 +269,7 @@ class Component extends Element_1.default {
292
269
  this.component.id = this.id;
293
270
  this.afterComponentAssign();
294
271
  // Save off the original component to be used in logic.
295
- this.originalComponent = (0, utils_1.fastCloneDeep)(this.component);
272
+ this.originalComponent = (0, utils_2.fastCloneDeep)(this.component);
296
273
  /**
297
274
  * If the component has been attached
298
275
  */
@@ -325,7 +302,7 @@ class Component extends Element_1.default {
325
302
  * Determines if this component is disabled, or not.
326
303
  * @type {boolean}
327
304
  */
328
- this._disabled = (0, utils_1.boolValue)(this.component.disabled) ? this.component.disabled : false;
305
+ this._disabled = (0, utils_2.boolValue)(this.component.disabled) ? this.component.disabled : false;
329
306
  /**
330
307
  * Points to the root component, usually the FormComponent.
331
308
  * @type {Component}
@@ -346,7 +323,7 @@ class Component extends Element_1.default {
346
323
  * The component paths for this component.
347
324
  * @type {import('@formio/core').ComponentPaths} - The component paths.
348
325
  */
349
- this.paths = FormioUtils.getComponentPaths(this.component, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.component, Object.assign(Object.assign({}, (_b = this.parent) === null || _b === void 0 ? void 0 : _b.paths), { dataIndex: this.options.rowIndex === undefined ? (_d = (_c = this.parent) === null || _c === void 0 ? void 0 : _c.paths) === null || _d === void 0 ? void 0 : _d.dataIndex : this.options.rowIndex }));
326
+ this.paths = utils_1.default.getComponentPaths(this.component, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.component, Object.assign(Object.assign({}, (_b = this.parent) === null || _b === void 0 ? void 0 : _b.paths), { dataIndex: this.options.rowIndex === undefined ? (_d = (_c = this.parent) === null || _c === void 0 ? void 0 : _c.paths) === null || _d === void 0 ? void 0 : _d.dataIndex : this.options.rowIndex }));
350
327
  this.options.name = this.options.name || 'data';
351
328
  this._path = '';
352
329
  // Needs for Nextgen Rules Engine
@@ -460,7 +437,6 @@ class Component extends Element_1.default {
460
437
  }
461
438
  /**
462
439
  * Returns if the parent should conditionally clear.
463
- *
464
440
  * @returns {boolean} - If the parent should conditionally clear.
465
441
  */
466
442
  parentShouldConditionallyClear() {
@@ -524,7 +500,7 @@ class Component extends Element_1.default {
524
500
  label.labelPosition = this.component.labelPosition;
525
501
  label.tooltipClass = `${this.iconClass('question-sign')} text-muted`;
526
502
  const isPDFReadOnlyMode = this.isPDFReadOnlyMode;
527
- if (this.hasInput && this.component.validate && (0, utils_1.boolValue)(this.component.validate.required) && !isPDFReadOnlyMode) {
503
+ if (this.hasInput && this.component.validate && (0, utils_2.boolValue)(this.component.validate.required) && !isPDFReadOnlyMode) {
528
504
  label.className += ' field-required';
529
505
  }
530
506
  if (label.hidden) {
@@ -557,7 +533,7 @@ class Component extends Element_1.default {
557
533
  */
558
534
  set rowIndex(value) {
559
535
  var _a, _b;
560
- this.paths = FormioUtils.getComponentPaths(this.component, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.component, Object.assign(Object.assign({}, (((_b = this.parent) === null || _b === void 0 ? void 0 : _b.paths) || {})), { dataIndex: value }));
536
+ this.paths = utils_1.default.getComponentPaths(this.component, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.component, Object.assign(Object.assign({}, (((_b = this.parent) === null || _b === void 0 ? void 0 : _b.paths) || {})), { dataIndex: value }));
561
537
  this._rowIndex = value;
562
538
  }
563
539
  afterComponentAssign() {
@@ -877,7 +853,7 @@ class Component extends Element_1.default {
877
853
  * @returns {object} - The JSON schema for this component.
878
854
  */
879
855
  get schema() {
880
- return (0, utils_1.fastCloneDeep)(this.getModifiedSchema(lodash_1.default.omit(this.component, 'id'), this.defaultSchema));
856
+ return (0, utils_2.fastCloneDeep)(this.getModifiedSchema(lodash_1.default.omit(this.component, 'id'), this.defaultSchema));
881
857
  }
882
858
  /**
883
859
  * Returns true if component is inside DataGrid
@@ -1029,7 +1005,7 @@ class Component extends Element_1.default {
1029
1005
  if (!this.shouldSanitizeValue && !forceSanitize) {
1030
1006
  return dirty;
1031
1007
  }
1032
- return FormioUtils.sanitize(dirty, {
1008
+ return utils_1.default.sanitize(dirty, {
1033
1009
  sanitizeConfig: lodash_1.default.merge(((_a = this.options) === null || _a === void 0 ? void 0 : _a.sanitizeConfig) || {}, options || {}),
1034
1010
  });
1035
1011
  }
@@ -1148,7 +1124,7 @@ class Component extends Element_1.default {
1148
1124
  return submissionTimezone;
1149
1125
  }
1150
1126
  // Return current timezone if none are provided.
1151
- return (0, utils_1.currentTimezone)();
1127
+ return (0, utils_2.currentTimezone)();
1152
1128
  }
1153
1129
  /**
1154
1130
  *
@@ -1453,7 +1429,7 @@ class Component extends Element_1.default {
1453
1429
  else {
1454
1430
  this.refreshOnChanged = true;
1455
1431
  }
1456
- this.refreshOnValue = (0, utils_1.fastCloneDeep)(value);
1432
+ this.refreshOnValue = (0, utils_2.fastCloneDeep)(value);
1457
1433
  if (this.refreshOnChanged) {
1458
1434
  if (this.component.clearOnRefresh) {
1459
1435
  this.setValue(null);
@@ -1695,7 +1671,7 @@ class Component extends Element_1.default {
1695
1671
  if (this.component.customClass) {
1696
1672
  className += this.component.customClass;
1697
1673
  }
1698
- if (this.hasInput && this.component.validate && (0, utils_1.boolValue)(this.component.validate.required)) {
1674
+ if (this.hasInput && this.component.validate && (0, utils_2.boolValue)(this.component.validate.required)) {
1699
1675
  className += ' required';
1700
1676
  }
1701
1677
  if (this.labelIsHidden()) {
@@ -1983,7 +1959,7 @@ class Component extends Element_1.default {
1983
1959
  if (this._hasCondition !== null) {
1984
1960
  return this._hasCondition;
1985
1961
  }
1986
- this._hasCondition = FormioUtils.hasCondition(this.component);
1962
+ this._hasCondition = utils_1.default.hasCondition(this.component);
1987
1963
  return this._hasCondition;
1988
1964
  }
1989
1965
  /**
@@ -2010,7 +1986,7 @@ class Component extends Element_1.default {
2010
1986
  * @returns {boolean} - True if the condition applies to this component.
2011
1987
  */
2012
1988
  checkCondition(row, data) {
2013
- return FormioUtils.checkCondition(this.component, row || this.data, data || this.rootValue, this.root ? this.root._form : {}, this);
1989
+ return utils_1.default.checkCondition(this.component, row || this.data, data || this.rootValue, this.root ? this.root._form : {}, this);
2014
1990
  }
2015
1991
  /**
2016
1992
  * Check for conditionals and hide/show the element based on those conditions.
@@ -2066,9 +2042,9 @@ class Component extends Element_1.default {
2066
2042
  if (logics.length === 0) {
2067
2043
  return;
2068
2044
  }
2069
- const newComponent = (0, utils_1.fastCloneDeep)(this.originalComponent);
2045
+ const newComponent = (0, utils_2.fastCloneDeep)(this.originalComponent);
2070
2046
  let changed = logics.reduce((changed, logic) => {
2071
- const result = FormioUtils.checkTrigger(newComponent, logic.trigger, row, data, this.root ? this.root._form : {}, this);
2047
+ const result = utils_1.default.checkTrigger(newComponent, logic.trigger, row, data, this.root ? this.root._form : {}, this);
2072
2048
  return (result ? this.applyActions(newComponent, logic.actions, result, row, data) : false) || changed;
2073
2049
  }, false);
2074
2050
  // If component definition changed, replace and mark as changed.
@@ -2135,7 +2111,7 @@ class Component extends Element_1.default {
2135
2111
  return actions.reduce((changed, action) => {
2136
2112
  switch (action.type) {
2137
2113
  case 'property': {
2138
- FormioUtils.setActionProperty(newComponent, action, result, row, data, this);
2114
+ utils_1.default.setActionProperty(newComponent, action, result, row, data, this);
2139
2115
  const property = action.property.value;
2140
2116
  if (!lodash_1.default.isEqual(lodash_1.default.get(this.component, property), lodash_1.default.get(newComponent, property))) {
2141
2117
  // Advanced Logic can modify the component's hidden property; because we track conditionally hidden state
@@ -2399,12 +2375,14 @@ class Component extends Element_1.default {
2399
2375
  ckeditor: {
2400
2376
  image: {
2401
2377
  toolbar: [
2378
+ 'toggleImageCaption',
2402
2379
  'imageTextAlternative',
2403
2380
  '|',
2404
- 'imageStyle:full',
2405
- 'imageStyle:alignLeft',
2406
- 'imageStyle:alignCenter',
2407
- 'imageStyle:alignRight'
2381
+ 'imageStyle:inline',
2382
+ 'imageStyle:wrapText',
2383
+ 'imageStyle:breakText',
2384
+ '|',
2385
+ 'resizeImage'
2408
2386
  ],
2409
2387
  styles: [
2410
2388
  'full',
@@ -2426,7 +2404,10 @@ class Component extends Element_1.default {
2426
2404
  if (this.component.isUploadEnabled) {
2427
2405
  settings.extraPlugins.push((0, uploadAdapter_1.getFormioUploadAdapterPlugin)(this.fileService, this));
2428
2406
  }
2429
- return Formio_1.Formio.requireLibrary('ckeditor', isIEBrowser ? 'CKEDITOR' : 'ClassicEditor', lodash_1.default.get(this.options, 'editors.ckeditor.src', `${Formio_1.Formio.cdn.ckeditor}/ckeditor.js`), true)
2407
+ Formio_1.Formio.requireLibrary(`ckeditor-css`, isIEBrowser ? 'CKEDITOR' : 'ClassicEditor', [
2408
+ { type: 'styles', src: `${Formio_1.Formio.cdn.ckeditor}/ckeditor.css` }
2409
+ ], true);
2410
+ return Formio_1.Formio.requireLibrary('ckeditor', isIEBrowser ? 'CKEDITOR' : 'ClassicEditor', lodash_1.default.get(this.options, 'editors.ckeditor.src', `${Formio_1.Formio.cdn.ckeditor}/ckeditor.umd.js`), true)
2430
2411
  .then(() => {
2431
2412
  if (!element.parentNode) {
2432
2413
  return Promise.reject();
@@ -2609,6 +2590,17 @@ class Component extends Element_1.default {
2609
2590
  noUpdateEvent: true,
2610
2591
  noDefault: true
2611
2592
  });
2593
+ if (utils_1.default.isLayoutComponent(this.component) && this.component.clearOnHide === true && !this.hasValue()) {
2594
+ utils_1.default.eachComponent(this.components, (component) => {
2595
+ if (component.component.clearOnHide !== false) {
2596
+ component.setValue(null, {
2597
+ noUpdateEvent: true,
2598
+ noDefault: true
2599
+ });
2600
+ component.unset();
2601
+ }
2602
+ });
2603
+ }
2612
2604
  this.unset();
2613
2605
  }
2614
2606
  getCustomDefaultValue(defaultValue) {
@@ -2648,7 +2640,7 @@ class Component extends Element_1.default {
2648
2640
  if (this.component.type !== 'textfield') {
2649
2641
  const placeholderChar = this.placeholderChar;
2650
2642
  value = (0, vanilla_text_mask_1.conformToMask)(value, this.defaultMask, { placeholderChar }).conformedValue;
2651
- if (!FormioUtils.matchInputMask(value, this.defaultMask)) {
2643
+ if (!utils_1.default.matchInputMask(value, this.defaultMask)) {
2652
2644
  value = '';
2653
2645
  }
2654
2646
  }
@@ -2714,13 +2706,16 @@ class Component extends Element_1.default {
2714
2706
  }
2715
2707
  const isArray = Array.isArray(value);
2716
2708
  const valueInput = this.refs.fileLink || this.refs.input;
2709
+ const isFilelink = !!this.refs.fileLink;
2717
2710
  if (isArray &&
2718
2711
  Array.isArray(this.defaultValue) &&
2719
2712
  this.refs.hasOwnProperty('input') &&
2720
2713
  valueInput &&
2721
2714
  (valueInput.length !== value.length) &&
2722
2715
  this.visible) {
2723
- this.redraw();
2716
+ if (isFilelink || valueInput.length) {
2717
+ this.redraw();
2718
+ }
2724
2719
  }
2725
2720
  if (this.isHtmlRenderMode() && flags && flags.fromSubmission && changed) {
2726
2721
  this.redraw();
@@ -2966,7 +2961,7 @@ class Component extends Element_1.default {
2966
2961
  }
2967
2962
  if (fromSubmission) {
2968
2963
  // If we set value from submission and it differs from calculated one, set the calculated value to prevent overriding dataValue in the next pass
2969
- this.calculatedValue = (0, utils_1.fastCloneDeep)(calculatedValue);
2964
+ this.calculatedValue = (0, utils_2.fastCloneDeep)(calculatedValue);
2970
2965
  return false;
2971
2966
  }
2972
2967
  // If this is the firstPass, and the dataValue is different than to the calculatedValue.
@@ -2975,7 +2970,7 @@ class Component extends Element_1.default {
2975
2970
  return true;
2976
2971
  }
2977
2972
  }
2978
- this.calculatedValue = (0, utils_1.fastCloneDeep)(calculatedValue);
2973
+ this.calculatedValue = (0, utils_2.fastCloneDeep)(calculatedValue);
2979
2974
  if (changed) {
2980
2975
  if (!flags.noPristineChangeOnModified && this.root.initialized) {
2981
2976
  this.pristine = false;
@@ -3036,7 +3031,7 @@ class Component extends Element_1.default {
3036
3031
  var _a;
3037
3032
  const { local } = options;
3038
3033
  if (!row) {
3039
- row = (0, utils_1.getContextualRowData)(this.component, data, this.paths);
3034
+ row = (0, utils_2.getContextualRowData)(this.component, data, this.paths);
3040
3035
  }
3041
3036
  if (!ignoreCondition && !this.checkCondition(row, data)) {
3042
3037
  return '';
@@ -3065,7 +3060,7 @@ class Component extends Element_1.default {
3065
3060
  ]
3066
3061
  });
3067
3062
  const errors = validationScope.errors;
3068
- const interpolatedErrors = FormioUtils.interpolateErrors(this.component, errors, this.t.bind(this));
3063
+ const interpolatedErrors = utils_1.default.interpolateErrors(this.component, errors, this.t.bind(this));
3069
3064
  return lodash_1.default.map(interpolatedErrors, 'message').join('\n\n');
3070
3065
  }
3071
3066
  /**
@@ -3096,7 +3091,7 @@ class Component extends Element_1.default {
3096
3091
  */
3097
3092
  interpolateErrors(errors) {
3098
3093
  var _a;
3099
- const interpolatedErrors = FormioUtils.interpolateErrors(this.component, errors, this.t.bind(this));
3094
+ const interpolatedErrors = utils_1.default.interpolateErrors(this.component, errors, this.t.bind(this));
3100
3095
  return ((_a = this.serverErrors) === null || _a === void 0 ? void 0 : _a.length) ? [...interpolatedErrors, ...this.serverErrors] : interpolatedErrors;
3101
3096
  }
3102
3097
  /**
@@ -3231,6 +3226,9 @@ class Component extends Element_1.default {
3231
3226
  data = data || this.rootValue;
3232
3227
  flags = flags || {};
3233
3228
  row = row || this.data;
3229
+ if (flags.noCheck) {
3230
+ return true;
3231
+ }
3234
3232
  // Some components (for legacy reasons) have calls to "checkData" in inappropriate places such
3235
3233
  // as setValue. Historically, this was bypassed by a series of cached states around the data model
3236
3234
  // which caused its own problems. We need to ensure that premium and custom components do not fall into
@@ -3245,9 +3243,6 @@ class Component extends Element_1.default {
3245
3243
  if (!flags.fromBlur) {
3246
3244
  this.checkRefreshOn(flags.changes, flags);
3247
3245
  }
3248
- if (flags.noCheck) {
3249
- return true;
3250
- }
3251
3246
  this.checkComponentConditions(data, flags, row);
3252
3247
  if (this.id !== flags.triggeredComponentId) {
3253
3248
  this.calculateComponentValue(data, flags, row);
@@ -3316,7 +3311,7 @@ class Component extends Element_1.default {
3316
3311
  }
3317
3312
  });
3318
3313
  this.addEventListener(element, 'blur', () => {
3319
- this.root.pendingBlur = FormioUtils.delay(() => {
3314
+ this.root.pendingBlur = utils_1.default.delay(() => {
3320
3315
  this.emit('blur', this);
3321
3316
  if (this.component.validateOn === 'blur') {
3322
3317
  this.root.triggerChange({ fromBlur: true }, {
@@ -3564,7 +3559,7 @@ class Component extends Element_1.default {
3564
3559
  if (logic.trigger.type === 'event') {
3565
3560
  const event = this.interpolate(logic.trigger.event);
3566
3561
  this.on(event, (...args) => {
3567
- const newComponent = (0, utils_1.fastCloneDeep)(this.originalComponent);
3562
+ const newComponent = (0, utils_2.fastCloneDeep)(this.originalComponent);
3568
3563
  if (this.applyActions(newComponent, logic.actions, args)) {
3569
3564
  // If component definition changed, replace it.
3570
3565
  if (!lodash_1.default.isEqual(this.component, newComponent)) {
@@ -3699,7 +3694,7 @@ Component.requireLibrary = function (name, property, src, polling) {
3699
3694
  }.bind(Component.externalLibraries[name]);
3700
3695
  }
3701
3696
  // See if the plugin already exists.
3702
- const plugin = (0, utils_1.getScriptPlugin)(property);
3697
+ const plugin = (0, utils_2.getScriptPlugin)(property);
3703
3698
  if (plugin) {
3704
3699
  Component.externalLibraries[name].resolve(plugin);
3705
3700
  }
@@ -3742,7 +3737,7 @@ Component.requireLibrary = function (name, property, src, polling) {
3742
3737
  // if no callback is provided, then check periodically for the script.
3743
3738
  if (polling) {
3744
3739
  setTimeout(function checkLibrary() {
3745
- const plugin = (0, utils_1.getScriptPlugin)(property);
3740
+ const plugin = (0, utils_2.getScriptPlugin)(property);
3746
3741
  if (plugin) {
3747
3742
  Component.externalLibraries[name].resolve(plugin);
3748
3743
  }
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const utils_1 = __importDefault(require("./utils"));
7
- const utils_2 = require("../../../../utils/utils");
7
+ const utils_2 = require("../../../../utils");
8
8
  /* eslint-disable quotes, max-len */
9
9
  exports.default = [
10
10
  {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const utils_1 = __importDefault(require("./utils"));
7
- const utils_2 = require("../../../../utils/utils");
7
+ const utils_2 = require("../../../../utils");
8
8
  /* eslint-disable quotes, max-len */
9
9
  exports.default = [
10
10
  {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
- const utils_1 = require("../../../utils/utils");
7
+ const utils_1 = require("../../../utils");
8
8
  class ComponentModal {
9
9
  static render(component, data, topLevel) {
10
10
  const children = component.renderTemplate('component', data, topLevel);
@@ -25,7 +25,7 @@ export default class Input extends Multivalue {
25
25
  get suffix(): any;
26
26
  renderElement(value: any, index: any): any;
27
27
  setCounter(type: any, element: any, count: any, max: any): void;
28
- updateValueAt(value: any, flags: any, index: any): void;
28
+ updateValueAt(value: any, flags: any, index?: number): void;
29
29
  getValueAt(index: any): any;
30
30
  updateValue(value: any, flags: any, index: any): boolean;
31
31
  parseValue(value: any): any;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Multivalue_1 = __importDefault(require("../multivalue/Multivalue"));
7
- const utils_1 = require("../../../utils/utils");
7
+ const utils_1 = require("../../../utils");
8
8
  const widgets_1 = __importDefault(require("../../../widgets"));
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
10
  class Input extends Multivalue_1.default {
@@ -118,7 +118,7 @@ class Input extends Multivalue_1.default {
118
118
  }
119
119
  const info = this.inputInfo;
120
120
  info.attr = info.attr || {};
121
- info.attr.value = this.getValueAsString(this.formatValue(this.parseValue(value)))
121
+ info.attr.value = this.getValueAsString(this.formatValue(this.parseValue(this.isMultipleMasksField ? value.value : value)))
122
122
  .replace(/"/g, '"');
123
123
  const valueMask = this.component.inputMask;
124
124
  const displayMask = this.component.displayMask;
@@ -163,7 +163,7 @@ class Input extends Multivalue_1.default {
163
163
  }));
164
164
  }
165
165
  }
166
- updateValueAt(value, flags, index) {
166
+ updateValueAt(value, flags, index = 0) {
167
167
  flags = flags || {};
168
168
  if (lodash_1.default.get(this.component, 'showWordCount', false)) {
169
169
  if (this.refs.wordcount && this.refs.wordcount[index]) {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Field_1 = __importDefault(require("../field/Field"));
7
7
  const Formio_1 = require("../../../Formio");
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
- const utils_1 = require("../../../utils/utils");
9
+ const utils_1 = require("../../../utils");
10
10
  class ListComponent extends Field_1.default {
11
11
  static schema(...extend) {
12
12
  return Field_1.default.schema({
@@ -7,7 +7,7 @@ const lodash_1 = __importDefault(require("lodash"));
7
7
  const Field_1 = __importDefault(require("../field/Field"));
8
8
  const Components_1 = __importDefault(require("../../Components"));
9
9
  '';
10
- const utils_1 = require("../../../utils/utils");
10
+ const utils_1 = __importDefault(require("../../../utils"));
11
11
  const process_1 = require("@formio/core/process");
12
12
  /**
13
13
  * NestedComponent class.
@@ -209,7 +209,7 @@ class NestedComponent extends Field_1.default {
209
209
  set rowIndex(value) {
210
210
  var _a, _b;
211
211
  this._rowIndex = value;
212
- this.paths = (0, utils_1.getComponentPaths)(this.component, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.component, Object.assign(Object.assign({}, (((_b = this.parent) === null || _b === void 0 ? void 0 : _b.paths) || {})), { dataIndex: value }));
212
+ this.paths = utils_1.default.getComponentPaths(this.component, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.component, Object.assign(Object.assign({}, (((_b = this.parent) === null || _b === void 0 ? void 0 : _b.paths) || {})), { dataIndex: value }));
213
213
  this.eachComponent((component) => {
214
214
  component.rowIndex = value;
215
215
  });
@@ -311,7 +311,7 @@ class NestedComponent extends Field_1.default {
311
311
  */
312
312
  getComponent(path) {
313
313
  var _a;
314
- path = (0, utils_1.getStringFromComponentPath)(path);
314
+ path = utils_1.default.getStringFromComponentPath(path);
315
315
  const matches = {
316
316
  path: undefined,
317
317
  fullPath: undefined,
@@ -324,7 +324,7 @@ class NestedComponent extends Field_1.default {
324
324
  this.everyComponent((component) => {
325
325
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
326
326
  // All searches are relative to this component so replace this path from the child paths.
327
- (0, utils_1.componentMatches)(component.component, {
327
+ utils_1.default.componentMatches(component.component, {
328
328
  path: (_b = (_a = component.paths) === null || _a === void 0 ? void 0 : _a.path) === null || _b === void 0 ? void 0 : _b.replace(new RegExp(`^${(_c = this.paths) === null || _c === void 0 ? void 0 : _c.path}\\.?`), ''),
329
329
  fullPath: (_e = (_d = component.paths) === null || _d === void 0 ? void 0 : _d.fullPath) === null || _e === void 0 ? void 0 : _e.replace(new RegExp(`^${(_f = this.paths) === null || _f === void 0 ? void 0 : _f.fullPath}\\.?`), ''),
330
330
  localPath: (_h = (_g = component.paths) === null || _g === void 0 ? void 0 : _g.localPath) === null || _h === void 0 ? void 0 : _h.replace(new RegExp(`^${(_j = this.paths) === null || _j === void 0 ? void 0 : _j.localPath}\\.?`), ''),
@@ -336,7 +336,7 @@ class NestedComponent extends Field_1.default {
336
336
  return match;
337
337
  });
338
338
  });
339
- return (_a = (0, utils_1.getBestMatch)(matches)) === null || _a === void 0 ? void 0 : _a.instance;
339
+ return (_a = utils_1.default.getBestMatch(matches)) === null || _a === void 0 ? void 0 : _a.instance;
340
340
  }
341
341
  /**
342
342
  * Return a component provided the Id of the component.
@@ -378,7 +378,7 @@ class NestedComponent extends Field_1.default {
378
378
  options.localRoot = this.localRoot;
379
379
  options.skipInit = true;
380
380
  if (!(options.display === 'pdf' && this.builderMode)) {
381
- component.id = (0, utils_1.getRandomComponentId)();
381
+ component.id = utils_1.default.getRandomComponentId();
382
382
  }
383
383
  const comp = Components_1.default.create(component, options, data, true);
384
384
  comp.init();
@@ -664,7 +664,7 @@ class NestedComponent extends Field_1.default {
664
664
  validationProcessor({ scope, data, row, instance, paths }, flags) {
665
665
  var _a;
666
666
  const { dirty } = flags;
667
- if (this.root.hasExtraPages && this.page !== this.root.page) {
667
+ if (this.root && this.root.hasSubWizards && this.page !== this.root.page) {
668
668
  instance = ((_a = this.componentsMap) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(paths.dataPath))
669
669
  ? this.componentsMap[paths.dataPath]
670
670
  : this.getComponent(paths.dataPath);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
7
  const utils_1 = require("@formio/core/utils");
8
8
  const { getComponentPaths } = utils_1.Utils;
9
- const utils_2 = require("../../../utils/utils");
9
+ const utils_2 = require("../../../utils");
10
10
  const Component_1 = __importDefault(require("../component/Component"));
11
11
  const NestedDataComponent_1 = __importDefault(require("../nesteddata/NestedDataComponent"));
12
12
  class NestedArrayComponent extends NestedDataComponent_1.default {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Component_1 = __importDefault(require("../component/Component"));
7
7
  const NestedComponent_1 = __importDefault(require("../nested/NestedComponent"));
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
- const utils_1 = require("../../../utils/utils");
9
+ const utils_1 = require("../../../utils");
10
10
  class NestedDataComponent extends NestedComponent_1.default {
11
11
  hasChanged(newValue, oldValue) {
12
12
  // If we do not have a value and are getting set to anything other than undefined or null, then we changed.
@@ -11,7 +11,7 @@ const GoogleAddressProvider_1 = require("../../providers/address/GoogleAddressPr
11
11
  const Field_1 = __importDefault(require("../_classes/field/Field"));
12
12
  const NestedComponent_1 = __importDefault(require("../_classes/nested/NestedComponent"));
13
13
  const Container_1 = __importDefault(require("../container/Container"));
14
- const utils_1 = require("../../utils/utils");
14
+ const utils_1 = require("../../utils");
15
15
  exports.AddressComponentMode = {
16
16
  Autocomplete: 'autocomplete',
17
17
  Manual: 'manual',
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
- const utils_1 = require("../../utils/utils");
7
+ const utils_1 = require("../../utils");
8
8
  class Alert {
9
9
  constructor(container, component) {
10
10
  this.container = container;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
7
  const Field_1 = __importDefault(require("../_classes/field/Field"));
8
8
  const Input_1 = __importDefault(require("../_classes/input/Input"));
9
- const utils_1 = require("../../utils/utils");
9
+ const utils_1 = require("../../utils");
10
10
  class ButtonComponent extends Field_1.default {
11
11
  static schema(...extend) {
12
12
  return Input_1.default.schema({
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
- const utils_1 = require("../../utils/utils");
7
+ const utils_1 = require("../../utils");
8
8
  const Field_1 = __importDefault(require("../_classes/field/Field"));
9
9
  class CheckBoxComponent extends Field_1.default {
10
10
  static schema(...extend) {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
- const utils_1 = require("../../utils/utils");
7
+ const utils_1 = require("../../utils");
8
8
  const Component_1 = __importDefault(require("../_classes/component/Component"));
9
9
  const Field_1 = __importDefault(require("../_classes/field/Field"));
10
10
  const NestedDataComponent_1 = __importDefault(require("../_classes/nesteddata/NestedDataComponent"));
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const text_mask_addons_1 = require("@formio/text-mask-addons");
7
7
  const vanilla_text_mask_1 = require("@formio/vanilla-text-mask");
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
- const utils_1 = require("../../utils/utils");
9
+ const utils_1 = require("../../utils");
10
10
  const Number_1 = __importDefault(require("../number/Number"));
11
11
  class CurrencyComponent extends Number_1.default {
12
12
  static schema(...extend) {
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
7
  const NestedArrayComponent_1 = __importDefault(require("../_classes/nestedarray/NestedArrayComponent"));
8
- const utils_1 = require("../../utils/utils");
8
+ const utils_1 = require("../../utils");
9
9
  class DataGridComponent extends NestedArrayComponent_1.default {
10
10
  static schema(...extend) {
11
11
  return NestedArrayComponent_1.default.schema({
@@ -228,6 +228,9 @@ class DataMapComponent extends DataGrid_1.default {
228
228
  options.name += `[${rowIndex}]`;
229
229
  options.row = `${rowIndex}`;
230
230
  options.rowIndex = rowIndex;
231
+ options.onChange = (flags, changed, modified) => {
232
+ this.triggerChange({ modified });
233
+ };
231
234
  const components = {};
232
235
  components['__key'] = this.createComponent(this.keySchema, options, { __key: this.builderMode ? this.defaultRowKey : key });
233
236
  components['__key'].on('componentChange', (event) => {
@@ -243,7 +246,9 @@ class DataMapComponent extends DataGrid_1.default {
243
246
  valueComponent.key = key;
244
247
  const componentOptions = this.options;
245
248
  componentOptions.row = options.row;
246
- components[this.valueKey] = this.createComponent(valueComponent, componentOptions, this.dataValue);
249
+ const componentOptionsCloned = lodash_1.default.clone(componentOptions);
250
+ componentOptionsCloned.onChange = options.onChange;
251
+ components[this.valueKey] = this.createComponent(valueComponent, componentOptionsCloned, this.dataValue);
247
252
  return components;
248
253
  }
249
254
  get canAddColumn() {
@@ -266,7 +271,7 @@ class DataMapComponent extends DataGrid_1.default {
266
271
  const index = this.rows.length;
267
272
  this.rows[index] = this.createRowComponents(this.dataValue, index);
268
273
  this.redraw();
269
- this.triggerChange();
274
+ this.triggerChange({ modified: true });
270
275
  }
271
276
  removeRow(index) {
272
277
  const keys = Object.keys(this.dataValue);