@formio/js 5.1.0-rc.2 → 5.1.0-rc.21

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 (142) hide show
  1. package/dist/formio.embed.js +1 -1
  2. package/dist/formio.embed.min.js +1 -1
  3. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  4. package/dist/formio.form.js +27 -27
  5. package/dist/formio.form.min.js +1 -1
  6. package/dist/formio.form.min.js.LICENSE.txt +1 -1
  7. package/dist/formio.full.js +30 -30
  8. package/dist/formio.full.min.js +1 -1
  9. package/dist/formio.full.min.js.LICENSE.txt +1 -1
  10. package/dist/formio.js +13 -13
  11. package/dist/formio.min.js +1 -1
  12. package/dist/formio.min.js.LICENSE.txt +1 -1
  13. package/dist/formio.utils.js +11 -11
  14. package/dist/formio.utils.min.js +1 -1
  15. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  16. package/lib/cjs/Embed.js +1 -1
  17. package/lib/cjs/Formio.js +1 -1
  18. package/lib/cjs/PDFBuilder.js +2 -2
  19. package/lib/cjs/Webform.d.ts +2 -2
  20. package/lib/cjs/Webform.js +6 -3
  21. package/lib/cjs/WebformBuilder.d.ts +1 -0
  22. package/lib/cjs/WebformBuilder.js +14 -3
  23. package/lib/cjs/Wizard.js +2 -1
  24. package/lib/cjs/components/_classes/component/Component.js +8 -2
  25. package/lib/cjs/components/_classes/field/Field.d.ts +2 -2
  26. package/lib/cjs/components/_classes/field/Field.js +1 -1
  27. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +1 -1
  28. package/lib/cjs/components/_classes/nested/fixtures/comp4.d.ts +11 -1
  29. package/lib/cjs/components/_classes/nested/fixtures/comp4.js +1 -1
  30. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
  31. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +3 -0
  32. package/lib/cjs/components/address/Address.d.ts +1 -2
  33. package/lib/cjs/components/address/Address.js +1 -1
  34. package/lib/cjs/components/address/fixtures/comp5.d.ts +46 -0
  35. package/lib/cjs/components/address/fixtures/comp5.js +87 -0
  36. package/lib/cjs/components/address/fixtures/index.d.ts +2 -1
  37. package/lib/cjs/components/address/fixtures/index.js +3 -1
  38. package/lib/cjs/components/button/Button.d.ts +1 -1
  39. package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
  40. package/lib/cjs/components/columns/Columns.d.ts +1 -1
  41. package/lib/cjs/components/datagrid/DataGrid.d.ts +1 -1
  42. package/lib/cjs/components/datagrid/DataGrid.js +4 -1
  43. package/lib/cjs/components/datetime/DateTime.d.ts +1 -1
  44. package/lib/cjs/components/datetime/DateTime.js +7 -3
  45. package/lib/cjs/components/datetime/fixtures/index.d.ts +6 -5
  46. package/lib/cjs/components/datetime/fixtures/index.js +3 -1
  47. package/lib/cjs/components/datetime/fixtures/requiredFieldLogicComp.d.ts +57 -0
  48. package/lib/cjs/components/datetime/fixtures/requiredFieldLogicComp.js +64 -0
  49. package/lib/cjs/components/day/Day.d.ts +1 -1
  50. package/lib/cjs/components/day/Day.js +2 -18
  51. package/lib/cjs/components/editgrid/fixtures/index.d.ts +1 -1
  52. package/lib/cjs/components/editgrid/fixtures/index.js +1 -5
  53. package/lib/cjs/components/file/File.d.ts +1 -1
  54. package/lib/cjs/components/form/Form.d.ts +5 -2
  55. package/lib/cjs/components/form/Form.js +35 -15
  56. package/lib/cjs/components/form/editForm/Form.edit.data.js +1 -1
  57. package/lib/cjs/components/radio/Radio.d.ts +1 -1
  58. package/lib/cjs/components/select/Select.d.ts +1 -1
  59. package/lib/cjs/components/selectboxes/fixtures/index.d.ts +2 -1
  60. package/lib/cjs/components/selectboxes/fixtures/index.js +3 -1
  61. package/lib/cjs/components/survey/Survey.d.ts +1 -1
  62. package/lib/cjs/components/table/Table.d.ts +1 -1
  63. package/lib/cjs/components/tabs/Tabs.d.ts +1 -1
  64. package/lib/cjs/components/tags/fixtures/index.d.ts +1 -1
  65. package/lib/cjs/components/tags/fixtures/index.js +1 -5
  66. package/lib/cjs/components/textfield/TextField.js +3 -0
  67. package/lib/cjs/components/textfield/fixtures/index.d.ts +2 -1
  68. package/lib/cjs/components/textfield/fixtures/index.js +3 -1
  69. package/lib/cjs/components/textfield/fixtures/requiredFieldLogicComp.d.ts +48 -0
  70. package/lib/cjs/components/textfield/fixtures/requiredFieldLogicComp.js +55 -0
  71. package/lib/cjs/formio.embed.d.ts +1 -1
  72. package/lib/cjs/formio.embed.js +3 -0
  73. package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +5 -0
  74. package/lib/cjs/providers/address/GoogleAddressProvider.js +23 -1
  75. package/lib/cjs/translations/en.js +2 -2
  76. package/lib/cjs/utils/formUtils.d.ts +2 -2
  77. package/lib/cjs/utils/utils.d.ts +2 -1
  78. package/lib/cjs/utils/utils.js +3 -2
  79. package/lib/mjs/Embed.js +1 -1
  80. package/lib/mjs/Formio.js +1 -1
  81. package/lib/mjs/PDFBuilder.js +2 -2
  82. package/lib/mjs/Webform.d.ts +2 -2
  83. package/lib/mjs/Webform.js +6 -3
  84. package/lib/mjs/WebformBuilder.d.ts +1 -0
  85. package/lib/mjs/WebformBuilder.js +13 -2
  86. package/lib/mjs/Wizard.js +2 -1
  87. package/lib/mjs/components/_classes/component/Component.js +8 -2
  88. package/lib/mjs/components/_classes/field/Field.d.ts +2 -2
  89. package/lib/mjs/components/_classes/field/Field.js +1 -1
  90. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +1 -1
  91. package/lib/mjs/components/_classes/nested/fixtures/comp4.d.ts +11 -1
  92. package/lib/mjs/components/_classes/nested/fixtures/comp4.js +1 -1
  93. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
  94. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +3 -0
  95. package/lib/mjs/components/address/Address.d.ts +1 -2
  96. package/lib/mjs/components/address/Address.js +1 -1
  97. package/lib/mjs/components/address/fixtures/comp5.d.ts +46 -0
  98. package/lib/mjs/components/address/fixtures/comp5.js +85 -0
  99. package/lib/mjs/components/address/fixtures/index.d.ts +2 -1
  100. package/lib/mjs/components/address/fixtures/index.js +2 -1
  101. package/lib/mjs/components/button/Button.d.ts +1 -1
  102. package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
  103. package/lib/mjs/components/columns/Columns.d.ts +1 -1
  104. package/lib/mjs/components/datagrid/DataGrid.d.ts +1 -1
  105. package/lib/mjs/components/datagrid/DataGrid.js +4 -1
  106. package/lib/mjs/components/datetime/DateTime.d.ts +1 -1
  107. package/lib/mjs/components/datetime/DateTime.js +8 -4
  108. package/lib/mjs/components/datetime/fixtures/index.d.ts +6 -5
  109. package/lib/mjs/components/datetime/fixtures/index.js +2 -1
  110. package/lib/mjs/components/datetime/fixtures/requiredFieldLogicComp.d.ts +57 -0
  111. package/lib/mjs/components/datetime/fixtures/requiredFieldLogicComp.js +62 -0
  112. package/lib/mjs/components/day/Day.d.ts +1 -1
  113. package/lib/mjs/components/day/Day.js +2 -18
  114. package/lib/mjs/components/editgrid/fixtures/index.d.ts +1 -1
  115. package/lib/mjs/components/editgrid/fixtures/index.js +1 -3
  116. package/lib/mjs/components/file/File.d.ts +1 -1
  117. package/lib/mjs/components/form/Form.d.ts +5 -2
  118. package/lib/mjs/components/form/Form.js +34 -15
  119. package/lib/mjs/components/form/editForm/Form.edit.data.js +1 -1
  120. package/lib/mjs/components/radio/Radio.d.ts +1 -1
  121. package/lib/mjs/components/select/Select.d.ts +1 -1
  122. package/lib/mjs/components/selectboxes/fixtures/index.d.ts +2 -1
  123. package/lib/mjs/components/selectboxes/fixtures/index.js +2 -1
  124. package/lib/mjs/components/survey/Survey.d.ts +1 -1
  125. package/lib/mjs/components/table/Table.d.ts +1 -1
  126. package/lib/mjs/components/tabs/Tabs.d.ts +1 -1
  127. package/lib/mjs/components/tags/fixtures/index.d.ts +1 -1
  128. package/lib/mjs/components/tags/fixtures/index.js +1 -3
  129. package/lib/mjs/components/textfield/TextField.js +3 -0
  130. package/lib/mjs/components/textfield/fixtures/index.d.ts +2 -1
  131. package/lib/mjs/components/textfield/fixtures/index.js +2 -1
  132. package/lib/mjs/components/textfield/fixtures/requiredFieldLogicComp.d.ts +48 -0
  133. package/lib/mjs/components/textfield/fixtures/requiredFieldLogicComp.js +53 -0
  134. package/lib/mjs/formio.embed.d.ts +1 -1
  135. package/lib/mjs/formio.embed.js +1 -0
  136. package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +5 -0
  137. package/lib/mjs/providers/address/GoogleAddressProvider.js +22 -1
  138. package/lib/mjs/translations/en.js +2 -2
  139. package/lib/mjs/utils/formUtils.d.ts +2 -2
  140. package/lib/mjs/utils/utils.d.ts +2 -1
  141. package/lib/mjs/utils/utils.js +3 -2
  142. package/package.json +4 -4
@@ -20,7 +20,7 @@
20
20
 
21
21
  /*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */
22
22
 
23
- /*! formiojs v5.1.0-rc.2 | https://unpkg.com/formiojs@5.1.0-rc.2/LICENSE.txt */
23
+ /*! formiojs v5.1.0-rc.21 | https://unpkg.com/formiojs@5.1.0-rc.21/LICENSE.txt */
24
24
 
25
25
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
26
26
 
package/lib/cjs/Embed.js CHANGED
@@ -418,7 +418,7 @@ Formio.formioReady = new Promise((ready, reject) => {
418
418
  _a._formioReady = ready;
419
419
  _a._formioReadyReject = reject;
420
420
  });
421
- Formio.version = 'FORMIO_VERSION';
421
+ Formio.version = '5.1.0-rc.21';
422
422
  // Create a report.
423
423
  Formio.Report = {
424
424
  create: (element, submission, options = {}) => __awaiter(void 0, void 0, void 0, function* () {
package/lib/cjs/Formio.js CHANGED
@@ -11,7 +11,7 @@ const CDN_1 = __importDefault(require("./CDN"));
11
11
  const providers_1 = __importDefault(require("./providers"));
12
12
  sdk_1.Formio.cdn = new CDN_1.default();
13
13
  sdk_1.Formio.Providers = providers_1.default;
14
- sdk_1.Formio.version = 'FORMIO_VERSION';
14
+ sdk_1.Formio.version = '5.1.0-rc.21';
15
15
  CDN_1.default.defaultCDN = sdk_1.Formio.version.includes('rc') ? 'https://cdn.test-form.io' : 'https://cdn.form.io';
16
16
  const isNil = (val) => val === null || val === undefined;
17
17
  sdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, uploadStartCallback, abortCallback, multipartOptions) {
@@ -300,7 +300,7 @@ class PDFBuilder extends WebformBuilder_1.default {
300
300
  height: schema.height,
301
301
  width: schema.width
302
302
  };
303
- if (!this.options.noNewEdit && !component.component.noNewEdit) {
303
+ if (!this.options.noNewEdit && !component.component.noNewEdit && this.hasEditTabs(component.type)) {
304
304
  this.editComponent(component.component, this.getParentContainer(component), isNew);
305
305
  }
306
306
  this.emit('updateComponent', component.component);
@@ -324,7 +324,7 @@ class PDFBuilder extends WebformBuilder_1.default {
324
324
  });
325
325
  this.webform.on('iframe-componentClick', schema => {
326
326
  const component = this.webform.getComponentById(schema.id);
327
- if (component) {
327
+ if (component && this.hasEditTabs(component.type)) {
328
328
  this.editComponent(component.component, this.getParentContainer(component));
329
329
  }
330
330
  }, true);
@@ -363,7 +363,7 @@ declare class Webform extends NestedDataComponent {
363
363
  executeFormController(): false | undefined;
364
364
  build(element: any): Promise<any>;
365
365
  getClassName(): string;
366
- render(): import("./components/_classes/field/Field").default;
366
+ render(): string;
367
367
  redraw(): Promise<void> | Promise<boolean>;
368
368
  attach(element: any): Promise<boolean>;
369
369
  hasRequiredFields(): boolean;
@@ -452,7 +452,7 @@ declare class Webform extends NestedDataComponent {
452
452
  */
453
453
  submit(before?: boolean, options?: any): Promise<any>;
454
454
  submitUrl(URL: any, headers: any): void;
455
- triggerCaptcha(): void;
455
+ triggerCaptcha(components?: null): void;
456
456
  _nosubmit: any;
457
457
  get conditions(): any;
458
458
  get variables(): any;
@@ -1527,17 +1527,20 @@ class Webform extends NestedDataComponent_1.default {
1527
1527
  return console.warn("You should add a URL to this button.");
1528
1528
  }
1529
1529
  }
1530
- triggerCaptcha() {
1530
+ triggerCaptcha(components = null) {
1531
1531
  if (!this || !this.components) {
1532
1532
  return;
1533
1533
  }
1534
1534
  const captchaComponent = [];
1535
- this.eachComponent((component) => {
1535
+ (0, formUtils_1.eachComponent)(components || this.components, (component) => {
1536
1536
  if (/^(re)?captcha$/.test(component.type) && component.component.eventType === 'formLoad') {
1537
1537
  captchaComponent.push(component);
1538
1538
  }
1539
- });
1539
+ }, true);
1540
1540
  if (captchaComponent.length > 0) {
1541
+ if (captchaComponent[0].component.provider === 'google' && components) {
1542
+ return;
1543
+ }
1541
1544
  captchaComponent[0].verify(`${this.form.name ? this.form.name : 'form'}Load`);
1542
1545
  }
1543
1546
  }
@@ -123,6 +123,7 @@ export default class WebformBuilder extends Component {
123
123
  addBuilderGroup(name: any, group: any): void;
124
124
  updateBuilderGroup(name: any, group: any): void;
125
125
  generateKey(info: any): any;
126
+ hasEditTabs(type: any): boolean;
126
127
  }
127
128
  import Component from './components/_classes/component/Component';
128
129
  import Webform from './Webform';
@@ -123,7 +123,7 @@ class WebformBuilder extends Component_1.default {
123
123
  }
124
124
  this.options.hooks = this.options.hooks || {};
125
125
  this.options.hooks.renderComponent = (html, { component, self }) => {
126
- var _a, _b;
126
+ var _a, _b, _c;
127
127
  if (self.type === 'form' && !self.key) {
128
128
  const template = this.hook('renderComponentFormTemplate', html.replace('formio-component-form', ''));
129
129
  // The main webform shouldn't have this class as it adds extra styles.
@@ -136,7 +136,9 @@ class WebformBuilder extends Component_1.default {
136
136
  html,
137
137
  disableBuilderActions: (_a = self === null || self === void 0 ? void 0 : self.component) === null || _a === void 0 ? void 0 : _a.disableBuilderActions,
138
138
  childComponent: component,
139
- design: (_b = self === null || self === void 0 ? void 0 : self.options) === null || _b === void 0 ? void 0 : _b.design
139
+ design: (_b = self === null || self === void 0 ? void 0 : self.options) === null || _b === void 0 ? void 0 : _b.design,
140
+ editJson: (_c = self === null || self === void 0 ? void 0 : self.options) === null || _c === void 0 ? void 0 : _c.editJson,
141
+ editComponent: this.hasEditTabs(component.type)
140
142
  });
141
143
  };
142
144
  this.options.hooks.renderComponents = (html, { components, self }) => {
@@ -867,7 +869,11 @@ class WebformBuilder extends Component_1.default {
867
869
  parent.addChildComponent(info, element, target, source, sibling);
868
870
  }
869
871
  const componentInDataGrid = parent.type === 'datagrid';
870
- if (isNew && !this.options.noNewEdit && !info.noNewEdit && !(this.options.design && info.type === 'reviewpage')) {
872
+ if (isNew
873
+ && !this.options.noNewEdit
874
+ && !info.noNewEdit
875
+ && this.hasEditTabs(info.type)
876
+ && !(this.options.design && info.type === 'reviewpage')) {
871
877
  this.editComponent(info, target, isNew, null, null, { inDataGrid: componentInDataGrid });
872
878
  }
873
879
  // Only rebuild the parts needing to be rebuilt.
@@ -1627,5 +1633,10 @@ class WebformBuilder extends Component_1.default {
1627
1633
  info.placeholder ||
1628
1634
  info.type);
1629
1635
  }
1636
+ hasEditTabs(type) {
1637
+ const editTabs = (0, formUtils_1.getComponent)(Components_1.default.components[type].editForm().components, 'tabs', true).components;
1638
+ const hiddenEditTabs = lodash_1.default.filter(lodash_1.default.get(this.options, `editForm.${type}`, []), 'ignore');
1639
+ return lodash_1.default.intersectionBy(editTabs, hiddenEditTabs, 'key').length !== editTabs.length;
1640
+ }
1630
1641
  }
1631
1642
  exports.default = WebformBuilder;
package/lib/cjs/Wizard.js CHANGED
@@ -602,6 +602,7 @@ class Wizard extends Webform_1.default {
602
602
  }
603
603
  this.redraw().then(() => {
604
604
  this.checkData(this.submission.data);
605
+ this.triggerCaptcha(this.currentPanel.components);
605
606
  const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : this.validateCurrentPage();
606
607
  if (this.alert) {
607
608
  this.showErrors(errors, true, true);
@@ -667,7 +668,7 @@ class Wizard extends Webform_1.default {
667
668
  return this.page - 1;
668
669
  }
669
670
  beforeSubmit() {
670
- const pages = this.getPages();
671
+ const pages = this.getPages({ all: true });
671
672
  return Promise.all(pages.map((page) => {
672
673
  page.options.beforeSubmit = true;
673
674
  return page.beforeSubmit();
@@ -1286,7 +1286,7 @@ class Component extends Element_1.default {
1286
1286
  detach() {
1287
1287
  // First iterate through each ref and delete the component so there are no dangling component references.
1288
1288
  lodash_1.default.each(this.refs, (ref) => {
1289
- if (typeof ref === NodeList) {
1289
+ if (ref instanceof NodeList) {
1290
1290
  ref.forEach((elem) => {
1291
1291
  delete elem.component;
1292
1292
  });
@@ -1938,15 +1938,21 @@ class Component extends Element_1.default {
1938
1938
  }
1939
1939
  // Check advanced conditions (and cache the result)
1940
1940
  const isConditionallyHidden = this.checkConditionallyHidden(data, row) || this._parentConditionallyHidden;
1941
+ let shouldClear = false;
1941
1942
  if (isConditionallyHidden !== this._conditionallyHidden) {
1942
1943
  this._conditionallyHidden = isConditionallyHidden;
1943
- this.clearOnHide();
1944
+ shouldClear = true;
1944
1945
  }
1945
1946
  // Check visibility
1946
1947
  const visible = (this.hasCondition() ? !this.conditionallyHidden : !this.component.hidden);
1947
1948
  if (this.visible !== visible) {
1948
1949
  this.visible = visible;
1949
1950
  }
1951
+ // Wait for visibility to update for nested components, so the component state is up-to-date when
1952
+ // calling clearOnHide
1953
+ if (shouldClear) {
1954
+ this.clearOnHide();
1955
+ }
1950
1956
  return visible;
1951
1957
  }
1952
1958
  /**
@@ -1,9 +1,9 @@
1
1
  export default class Field extends Component {
2
2
  /**
3
3
  * @param {object} element - The component to create.
4
- * @returns {Field} - The created field.
4
+ * @returns {string} - The rendered HTML string of a component
5
5
  */
6
- render(element: object): Field;
6
+ render(element: object): string;
7
7
  /**
8
8
  /* Saves current caret position to restore it after the component is redrawn
9
9
  * @param {HTMLElement} element - The element to save the caret position for.
@@ -11,7 +11,7 @@ const Component_1 = __importDefault(require("../component/Component"));
11
11
  class Field extends Component_1.default {
12
12
  /**
13
13
  * @param {object} element - The component to create.
14
- * @returns {Field} - The created field.
14
+ * @returns {string} - The rendered HTML string of a component
15
15
  */
16
16
  render(element) {
17
17
  if (this.noField) {
@@ -146,7 +146,7 @@ export default class NestedComponent extends Field {
146
146
  */
147
147
  addComponent(component: import('@formio/core').Component, data?: object, before?: HTMLElement, noAdd?: boolean | undefined): any;
148
148
  beforeFocus(): void;
149
- render(children: any): Field;
149
+ render(children: any): string;
150
150
  renderComponents(components: any): any;
151
151
  attach(element: any): Promise<[void, void]>;
152
152
  /**
@@ -1,4 +1,14 @@
1
1
  declare namespace _default {
2
- let components: any[];
2
+ let components: {
3
+ label: string;
4
+ inputType: string;
5
+ tableView: boolean;
6
+ defaultValue: boolean;
7
+ key: string;
8
+ type: string;
9
+ name: string;
10
+ value: string;
11
+ input: boolean;
12
+ }[];
3
13
  }
4
14
  export default _default;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const comp2_1 = __importDefault(require("../checkbox/comp2"));
6
+ const comp2_1 = __importDefault(require("../../../checkbox/fixtures/comp2"));
7
7
  exports.default = {
8
8
  components: [
9
9
  Object.assign({}, comp2_1.default),
@@ -3,6 +3,7 @@ export default class NestedDataComponent extends NestedComponent {
3
3
  hasChanged(newValue: any, oldValue: any): boolean;
4
4
  get allowData(): boolean;
5
5
  get emptyValue(): {};
6
+ get shouldAddDefaultValue(): boolean;
6
7
  componentContext(): any;
7
8
  getValueAsString(value: any, options: any): string;
8
9
  getDataValueAsTable(value: any, options: any): string;
@@ -26,6 +26,9 @@ class NestedDataComponent extends NestedComponent_1.default {
26
26
  get emptyValue() {
27
27
  return {};
28
28
  }
29
+ get shouldAddDefaultValue() {
30
+ return !this.options.noDefaults || !this.options.server;
31
+ }
29
32
  componentContext() {
30
33
  return this.dataValue;
31
34
  }
@@ -60,7 +60,7 @@ export default class AddressComponent extends ContainerComponent {
60
60
  renderElement(value: any): any;
61
61
  renderRow(value: any, index: any): any;
62
62
  renderGrid(): any;
63
- render(): Field;
63
+ render(): string;
64
64
  onSelectAddress(address: any, element: any, index: any): void;
65
65
  addRow(): void;
66
66
  attach(element: any): Promise<void>;
@@ -71,4 +71,3 @@ export default class AddressComponent extends ContainerComponent {
71
71
  getValueAsString(value: any, options: any): any;
72
72
  }
73
73
  import ContainerComponent from '../container/Container';
74
- import Field from '../_classes/field/Field';
@@ -218,7 +218,7 @@ class AddressComponent extends Container_1.default {
218
218
  super.dataValue = value;
219
219
  }
220
220
  get dataValue() {
221
- const resultValue = lodash_1.default.get(this._data, this.component.path);
221
+ const resultValue = lodash_1.default.get(this._data, this.path);
222
222
  if (!lodash_1.default.isArray(resultValue) && this.component.multiple) {
223
223
  return [resultValue];
224
224
  }
@@ -0,0 +1,46 @@
1
+ declare namespace _default {
2
+ let type: string;
3
+ let display: string;
4
+ let title: string;
5
+ let name: string;
6
+ let path: string;
7
+ let components: ({
8
+ label: string;
9
+ tableView: boolean;
10
+ multiple: boolean;
11
+ provider: string;
12
+ validateWhenHidden: boolean;
13
+ key: string;
14
+ providerOptions: {
15
+ params: {
16
+ autocompleteOptions: {};
17
+ };
18
+ };
19
+ type: string;
20
+ input: boolean;
21
+ components: {
22
+ label: string;
23
+ tableView: boolean;
24
+ key: string;
25
+ type: string;
26
+ input: boolean;
27
+ customConditional: string;
28
+ }[];
29
+ defaultValue: {}[];
30
+ disableOnInvalid?: undefined;
31
+ } | {
32
+ type: string;
33
+ label: string;
34
+ key: string;
35
+ disableOnInvalid: boolean;
36
+ input: boolean;
37
+ tableView: boolean;
38
+ multiple?: undefined;
39
+ provider?: undefined;
40
+ validateWhenHidden?: undefined;
41
+ providerOptions?: undefined;
42
+ components?: undefined;
43
+ defaultValue?: undefined;
44
+ })[];
45
+ }
46
+ export default _default;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ type: 'form',
5
+ display: 'form',
6
+ title: 'FIO-9527',
7
+ name: 'fio9527',
8
+ path: 'fio9527',
9
+ components: [
10
+ {
11
+ label: 'Address',
12
+ tableView: false,
13
+ multiple: true,
14
+ provider: 'nominatim',
15
+ validateWhenHidden: false,
16
+ key: 'address',
17
+ providerOptions: {
18
+ params: {
19
+ autocompleteOptions: {}
20
+ }
21
+ },
22
+ type: 'address',
23
+ input: true,
24
+ components: [
25
+ {
26
+ label: 'Address 1',
27
+ tableView: false,
28
+ key: 'address1',
29
+ type: 'textfield',
30
+ input: true,
31
+ customConditional: "show = _.get(instance, 'parent.manualMode', false);"
32
+ },
33
+ {
34
+ label: 'Address 2',
35
+ tableView: false,
36
+ key: 'address2',
37
+ type: 'textfield',
38
+ input: true,
39
+ customConditional: "show = _.get(instance, 'parent.manualMode', false);"
40
+ },
41
+ {
42
+ label: 'City',
43
+ tableView: false,
44
+ key: 'city',
45
+ type: 'textfield',
46
+ input: true,
47
+ customConditional: "show = _.get(instance, 'parent.manualMode', false);"
48
+ },
49
+ {
50
+ label: 'State',
51
+ tableView: false,
52
+ key: 'state',
53
+ type: 'textfield',
54
+ input: true,
55
+ customConditional: "show = _.get(instance, 'parent.manualMode', false);"
56
+ },
57
+ {
58
+ label: 'Country',
59
+ tableView: false,
60
+ key: 'country',
61
+ type: 'textfield',
62
+ input: true,
63
+ customConditional: "show = _.get(instance, 'parent.manualMode', false);"
64
+ },
65
+ {
66
+ label: 'Zip Code',
67
+ tableView: false,
68
+ key: 'zip',
69
+ type: 'textfield',
70
+ input: true,
71
+ customConditional: "show = _.get(instance, 'parent.manualMode', false);"
72
+ }
73
+ ],
74
+ defaultValue: [
75
+ {}
76
+ ]
77
+ },
78
+ {
79
+ type: 'button',
80
+ label: 'Submit',
81
+ key: 'submit',
82
+ disableOnInvalid: true,
83
+ input: true,
84
+ tableView: false
85
+ }
86
+ ]
87
+ };
@@ -2,4 +2,5 @@ import comp1 from './comp1';
2
2
  import comp2 from './comp2';
3
3
  import comp3 from './comp3';
4
4
  import comp4 from './comp4';
5
- export { comp1, comp2, comp3, comp4 };
5
+ import comp5 from './comp5';
6
+ export { comp1, comp2, comp3, comp4, comp5 };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
6
+ exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
7
7
  const comp1_1 = __importDefault(require("./comp1"));
8
8
  exports.comp1 = comp1_1.default;
9
9
  const comp2_1 = __importDefault(require("./comp2"));
@@ -12,3 +12,5 @@ const comp3_1 = __importDefault(require("./comp3"));
12
12
  exports.comp3 = comp3_1.default;
13
13
  const comp4_1 = __importDefault(require("./comp4"));
14
14
  exports.comp4 = comp4_1.default;
15
+ const comp5_1 = __importDefault(require("./comp5"));
16
+ exports.comp5 = comp5_1.default;
@@ -21,7 +21,7 @@ export default class ButtonComponent extends Field {
21
21
  get clicked(): any;
22
22
  get defaultValue(): boolean;
23
23
  get oauthConfig(): any;
24
- render(): Field;
24
+ render(): string;
25
25
  attachButton(): void;
26
26
  hasError: boolean | undefined;
27
27
  isDisabledOnInvalid: any;
@@ -39,7 +39,7 @@ export default class CheckBoxComponent extends Field {
39
39
  get labelInfo(): {
40
40
  hidden: boolean;
41
41
  };
42
- render(): Field;
42
+ render(): string;
43
43
  attach(element: any): Promise<void>;
44
44
  input: any;
45
45
  detach(element: any): void;
@@ -14,7 +14,7 @@ export default class ColumnsComponent extends NestedComponent {
14
14
  get columnKey(): string;
15
15
  columns: any[] | undefined;
16
16
  labelIsHidden(): boolean;
17
- render(): import("../_classes/field/Field").default;
17
+ render(): string;
18
18
  justifyColumn(items: any, index: any): boolean;
19
19
  justify(): any;
20
20
  get gridSize(): number;
@@ -54,7 +54,7 @@ export default class DataGridComponent extends NestedArrayComponent {
54
54
  hasTopSubmit(): any;
55
55
  hasBottomSubmit(): any;
56
56
  get canAddColumn(): boolean;
57
- render(): import("../_classes/field/Field").default;
57
+ render(): string;
58
58
  getRows(): {}[];
59
59
  getColumns(): any[];
60
60
  hasHeader(): any;
@@ -396,7 +396,7 @@ class DataGridComponent extends NestedArrayComponent_1.default {
396
396
  row
397
397
  });
398
398
  this.checkConditions();
399
- this.triggerChange();
399
+ this.triggerChange({ modified: true });
400
400
  this.redraw().then(() => {
401
401
  this.focusOnNewRowElement(this.rows[index]);
402
402
  });
@@ -476,6 +476,9 @@ class DataGridComponent extends NestedArrayComponent_1.default {
476
476
  options.name += `[${rowIndex}]`;
477
477
  options.row = `${rowIndex}-${colIndex}`;
478
478
  options.rowIndex = rowIndex;
479
+ options.onChange = (flags, changed, modified) => {
480
+ this.triggerChange({ modified });
481
+ };
479
482
  let columnComponent;
480
483
  if (this.builderMode) {
481
484
  col.id = col.id + rowIndex;
@@ -20,6 +20,6 @@ export default class DateTimeComponent extends Input {
20
20
  get momentFormat(): string;
21
21
  createWrapper(): boolean;
22
22
  checkValidity(data: any, dirty: any, rowData: any): boolean;
23
- getValueAsString(value: any): any;
23
+ getValueAsString(value: any, options: any): any;
24
24
  }
25
25
  import Input from '../_classes/input/Input';
@@ -103,6 +103,10 @@ class DateTimeComponent extends Input_1.default {
103
103
  }
104
104
  /* eslint-disable camelcase */
105
105
  this.component.widget = Object.assign({ type: 'calendar', timezone, displayInTimezone: lodash_1.default.get(this.component, 'displayInTimezone', 'viewer'), locale: this.options.language, useLocaleSettings: lodash_1.default.get(this.component, 'useLocaleSettings', false), allowInput: lodash_1.default.get(this.component, 'allowInput', true), mode: 'single', enableTime: lodash_1.default.get(this.component, 'enableTime', true), noCalendar: !lodash_1.default.get(this.component, 'enableDate', true), format: this.component.format, hourIncrement: lodash_1.default.get(this.component, 'timePicker.hourStep', 1), minuteIncrement: lodash_1.default.get(this.component, 'timePicker.minuteStep', 5), time_24hr: time24hr, readOnly: this.options.readOnly, minDate: lodash_1.default.get(this.component, 'datePicker.minDate'), disabledDates: lodash_1.default.get(this.component, 'datePicker.disable'), disableWeekends: lodash_1.default.get(this.component, 'datePicker.disableWeekends'), disableWeekdays: lodash_1.default.get(this.component, 'datePicker.disableWeekdays'), disableFunction: lodash_1.default.get(this.component, 'datePicker.disableFunction'), maxDate: lodash_1.default.get(this.component, 'datePicker.maxDate') }, customOptions);
106
+ // update originalComponent to include widget and other updated settings
107
+ // it is done here since these settings depend on properties present after the component is initialized
108
+ // originalComponent is used to restore the component (and widget) after evaluating field logic
109
+ this.originalComponent = (0, utils_2.fastCloneDeep)(this.component);
106
110
  /* eslint-enable camelcase */
107
111
  }
108
112
  get defaultSchema() {
@@ -149,15 +153,15 @@ class DateTimeComponent extends Input_1.default {
149
153
  }
150
154
  return super.checkValidity(data, dirty, rowData);
151
155
  }
152
- getValueAsString(value) {
156
+ getValueAsString(value, options) {
153
157
  let format = utils_1.default.convertFormatToMoment(this.component.format);
154
158
  format += format.match(/z$/) ? '' : ' z';
155
159
  const timezone = this.timezone;
156
160
  if (value && !this.attached && timezone) {
157
161
  if (Array.isArray(value) && this.component.multiple) {
158
- return value.map(item => lodash_1.default.trim(utils_1.default.momentDate(item, format, timezone).format(format))).join(', ');
162
+ return value.map(item => lodash_1.default.trim(utils_1.default.momentDate(item, format, timezone, options).format(format))).join(', ');
159
163
  }
160
- return lodash_1.default.trim(utils_1.default.momentDate(value, format, timezone).format(format));
164
+ return lodash_1.default.trim(utils_1.default.momentDate(value, format, timezone, options).format(format));
161
165
  }
162
166
  if (Array.isArray(value) && this.component.multiple) {
163
167
  return value.map(item => lodash_1.default.trim((0, moment_1.default)(item).format(format))).join(', ');
@@ -1,8 +1,4 @@
1
1
  import comp1 from './comp1';
2
- import comp10 from './comp10';
3
- import comp11 from './comp11';
4
- import comp12 from './comp12';
5
- import comp13 from './comp13';
6
2
  import comp2 from './comp2';
7
3
  import comp3 from './comp3';
8
4
  import comp5 from './comp5';
@@ -10,4 +6,9 @@ import comp6 from './comp6';
10
6
  import comp7 from './comp7';
11
7
  import comp8 from './comp8';
12
8
  import comp9 from './comp9';
13
- export { comp1, comp10, comp11, comp12, comp13, comp2, comp3, comp5, comp6, comp7, comp8, comp9 };
9
+ import comp10 from './comp10';
10
+ import comp11 from './comp11';
11
+ import comp12 from './comp12';
12
+ import comp13 from './comp13';
13
+ import requiredFieldLogicComp from './requiredFieldLogicComp';
14
+ export { comp1, comp2, comp3, comp5, comp6, comp7, comp8, comp9, comp10, comp11, comp12, comp13, requiredFieldLogicComp };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp3 = exports.comp2 = exports.comp13 = exports.comp12 = exports.comp11 = exports.comp10 = exports.comp1 = void 0;
6
+ exports.requiredFieldLogicComp = exports.comp13 = exports.comp12 = exports.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
7
7
  const comp1_1 = __importDefault(require("./comp1"));
8
8
  exports.comp1 = comp1_1.default;
9
9
  const comp2_1 = __importDefault(require("./comp2"));
@@ -28,3 +28,5 @@ const comp12_1 = __importDefault(require("./comp12"));
28
28
  exports.comp12 = comp12_1.default;
29
29
  const comp13_1 = __importDefault(require("./comp13"));
30
30
  exports.comp13 = comp13_1.default;
31
+ const requiredFieldLogicComp_1 = __importDefault(require("./requiredFieldLogicComp"));
32
+ exports.requiredFieldLogicComp = requiredFieldLogicComp_1.default;