@formio/js 5.0.0-rc.46 → 5.0.0-rc.48

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 (56) 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 +11 -11
  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 +11 -11
  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 +2 -2
  11. package/dist/formio.min.js +1 -1
  12. package/dist/formio.min.js.LICENSE.txt +1 -1
  13. package/dist/formio.utils.js +2 -2
  14. package/dist/formio.utils.min.js +1 -1
  15. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  16. package/lib/cjs/Webform.d.ts +11 -1
  17. package/lib/cjs/Webform.js +3 -1
  18. package/lib/cjs/components/_classes/component/Component.d.ts +4 -4
  19. package/lib/cjs/components/_classes/component/Component.js +5 -7
  20. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +5 -6
  21. package/lib/cjs/components/_classes/nested/NestedComponent.js +5 -5
  22. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -1
  23. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  24. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -1
  25. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  26. package/lib/cjs/components/day/Day.d.ts +1 -0
  27. package/lib/cjs/components/html/HTML.js +2 -2
  28. package/lib/cjs/components/select/Select.d.ts +4 -1
  29. package/lib/cjs/components/select/Select.js +57 -34
  30. package/lib/cjs/components/select/fixtures/comp22.d.ts +51 -0
  31. package/lib/cjs/components/select/fixtures/comp22.js +43 -0
  32. package/lib/cjs/components/select/fixtures/index.d.ts +2 -1
  33. package/lib/cjs/components/select/fixtures/index.js +3 -1
  34. package/lib/cjs/utils/Evaluator.d.ts +1 -3
  35. package/lib/cjs/utils/Evaluator.js +1 -5
  36. package/lib/mjs/Webform.d.ts +11 -1
  37. package/lib/mjs/Webform.js +3 -1
  38. package/lib/mjs/components/_classes/component/Component.d.ts +4 -4
  39. package/lib/mjs/components/_classes/component/Component.js +5 -7
  40. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +5 -6
  41. package/lib/mjs/components/_classes/nested/NestedComponent.js +5 -5
  42. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -1
  43. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  44. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -1
  45. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  46. package/lib/mjs/components/day/Day.d.ts +1 -0
  47. package/lib/mjs/components/html/HTML.js +2 -2
  48. package/lib/mjs/components/select/Select.d.ts +4 -1
  49. package/lib/mjs/components/select/Select.js +56 -33
  50. package/lib/mjs/components/select/fixtures/comp22.d.ts +51 -0
  51. package/lib/mjs/components/select/fixtures/comp22.js +41 -0
  52. package/lib/mjs/components/select/fixtures/index.d.ts +2 -1
  53. package/lib/mjs/components/select/fixtures/index.js +2 -1
  54. package/lib/mjs/utils/Evaluator.d.ts +1 -3
  55. package/lib/mjs/utils/Evaluator.js +1 -5
  56. package/package.json +2 -2
@@ -20,7 +20,7 @@
20
20
 
21
21
  /*! @license DOMPurify 3.1.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.0/LICENSE */
22
22
 
23
- /*! formiojs v5.0.0-rc.46 | https://unpkg.com/formiojs@5.0.0-rc.46/LICENSE.txt */
23
+ /*! formiojs v5.0.0-rc.48 | https://unpkg.com/formiojs@5.0.0-rc.48/LICENSE.txt */
24
24
 
25
25
  /**
26
26
  * @license
@@ -79,6 +79,8 @@
79
79
  * @property {boolean} [allowPrevious] - Allow the previous button (for Wizard forms).
80
80
  * @property {string[]} [wizardButtonOrder] - The order of the buttons (for Wizard forms).
81
81
  * @property {boolean} [showCheckboxBackground] - Show the checkbox background.
82
+ * @property {boolean} [inputsOnly] - Only show inputs in the form and no labels.
83
+ * @property {boolean} [building] - If we are in the process of building the form.
82
84
  * @property {number} [zoom] - The zoom for PDF forms.
83
85
  */
84
86
  /**
@@ -469,7 +471,7 @@ declare class Webform extends NestedDataComponent {
469
471
  *
470
472
  * @returns {Promise} - A promise when the form is done submitting.
471
473
  */
472
- submit(before: boolean, options?: {}): Promise<any>;
474
+ submit(before?: boolean, options?: {}): Promise<any>;
473
475
  submitUrl(URL: any, headers: any): void;
474
476
  triggerRecaptcha(): void;
475
477
  _nosubmit: any;
@@ -685,6 +687,14 @@ export type FormOptions = {
685
687
  * - Show the checkbox background.
686
688
  */
687
689
  showCheckboxBackground?: boolean | undefined;
690
+ /**
691
+ * - Only show inputs in the form and no labels.
692
+ */
693
+ inputsOnly?: boolean | undefined;
694
+ /**
695
+ * - If we are in the process of building the form.
696
+ */
697
+ building?: boolean | undefined;
688
698
  /**
689
699
  * - The zoom for PDF forms.
690
700
  */
@@ -121,6 +121,8 @@ function getOptions(options) {
121
121
  * @property {boolean} [allowPrevious] - Allow the previous button (for Wizard forms).
122
122
  * @property {string[]} [wizardButtonOrder] - The order of the buttons (for Wizard forms).
123
123
  * @property {boolean} [showCheckboxBackground] - Show the checkbox background.
124
+ * @property {boolean} [inputsOnly] - Only show inputs in the form and no labels.
125
+ * @property {boolean} [building] - If we are in the process of building the form.
124
126
  * @property {number} [zoom] - The zoom for PDF forms.
125
127
  */
126
128
  /**
@@ -1438,7 +1440,7 @@ class Webform extends NestedDataComponent_1.default {
1438
1440
  *
1439
1441
  * @returns {Promise} - A promise when the form is done submitting.
1440
1442
  */
1441
- submit(before, options = {}) {
1443
+ submit(before = null, options = {}) {
1442
1444
  this.submissionInProcess = true;
1443
1445
  if (!before) {
1444
1446
  return this.beforeSubmit(options).then(() => this.executeSubmit(options));
@@ -275,14 +275,14 @@ declare class Component extends Element {
275
275
  getFormattedAttribute(attr: any): any;
276
276
  getFormattedTooltip(tooltipValue: any): any;
277
277
  isHtmlRenderMode(): boolean;
278
- renderTemplate(name: any, data: {} | undefined, modeOption: any): any;
278
+ renderTemplate(name: any, data?: {}, modeOption?: string): any;
279
279
  /**
280
280
  * Sanitize an html string.
281
281
  *
282
282
  * @param string
283
283
  * @returns {*}
284
284
  */
285
- sanitize(dirty: any, forceSanitize: any, options: any): any;
285
+ sanitize(dirty: any, forceSanitize?: boolean, options?: {}): any;
286
286
  /**
287
287
  * Render a template string into html.
288
288
  *
@@ -761,7 +761,7 @@ declare class Component extends Element {
761
761
  * @param {*} silentCheck
762
762
  * @returns
763
763
  */
764
- checkValidity(data: any, dirty: any, row: any, silentCheck: any, errors?: any[]): boolean;
764
+ checkValidity(data?: any, dirty?: any, row?: any, silentCheck?: any, errors?: any[]): boolean;
765
765
  checkAsyncValidity(data: any, dirty: any, row: any, silentCheck: any, errors?: any[]): boolean;
766
766
  /**
767
767
  * Check the conditions, calculations, and validity of a single component and triggers an update if
@@ -828,7 +828,7 @@ declare class Component extends Element {
828
828
  };
829
829
  autofocus(): void;
830
830
  scrollIntoView(element?: any): void;
831
- focus(index: any): void;
831
+ focus(index?: number): void;
832
832
  /**
833
833
  * Get `Formio` instance for working with files
834
834
  */
@@ -853,7 +853,7 @@ class Component extends Element_1.default {
853
853
  isHtmlRenderMode() {
854
854
  return this.options.renderMode === 'html';
855
855
  }
856
- renderTemplate(name, data = {}, modeOption) {
856
+ renderTemplate(name, data = {}, modeOption = '') {
857
857
  // Need to make this fall back to form if renderMode is not found similar to how we search templates.
858
858
  const mode = modeOption || this.options.renderMode || 'form';
859
859
  data.component = this.component;
@@ -897,7 +897,7 @@ class Component extends Element_1.default {
897
897
  * @param string
898
898
  * @returns {*}
899
899
  */
900
- sanitize(dirty, forceSanitize, options) {
900
+ sanitize(dirty, forceSanitize = false, options = {}) {
901
901
  var _a;
902
902
  if (!this.shouldSanitizeValue && !forceSanitize) {
903
903
  return dirty;
@@ -2783,7 +2783,7 @@ class Component extends Element_1.default {
2783
2783
  * @param {*} silentCheck
2784
2784
  * @returns
2785
2785
  */
2786
- checkValidity(data, dirty, row, silentCheck, errors = []) {
2786
+ checkValidity(data = null, dirty = false, row = null, silentCheck = false, errors = []) {
2787
2787
  data = data || this.rootValue;
2788
2788
  row = row || this.data;
2789
2789
  console.log('Deprecation warning: Component.checkValidity() will be deprecated in 6.x version of renderer. Use Component.validateComponent instead.');
@@ -3190,15 +3190,13 @@ class Component extends Element_1.default {
3190
3190
  const { left, top } = element.getBoundingClientRect();
3191
3191
  window.scrollTo(left + window.scrollX, top + window.scrollY);
3192
3192
  }
3193
- focus(index) {
3193
+ focus(index = (this.refs.input.length - 1)) {
3194
3194
  var _a, _b;
3195
3195
  if ('beforeFocus' in this.parent) {
3196
3196
  this.parent.beforeFocus(this);
3197
3197
  }
3198
3198
  if ((_a = this.refs.input) === null || _a === void 0 ? void 0 : _a.length) {
3199
- const focusingInput = typeof index === 'number' && this.refs.input[index]
3200
- ? this.refs.input[index]
3201
- : this.refs.input[this.refs.input.length - 1];
3199
+ const focusingInput = this.refs.input[index];
3202
3200
  if (((_b = this.component.widget) === null || _b === void 0 ? void 0 : _b.type) === 'calendar') {
3203
3201
  const sibling = focusingInput.nextSibling;
3204
3202
  if (sibling) {
@@ -17,7 +17,7 @@ export default class NestedComponent extends Field {
17
17
  *
18
18
  * @param {function} fn - Called for every component.
19
19
  */
20
- everyComponent(fn: Function, options: any): void;
20
+ everyComponent(fn: Function, options?: {}): void;
21
21
  hasComponent(component: any): boolean;
22
22
  flattenComponents(): {};
23
23
  /**
@@ -43,7 +43,7 @@ export default class NestedComponent extends Field {
43
43
  * @param {function} fn - Called with the component once it is retrieved.
44
44
  * @return {Object} - The component retrieved.
45
45
  */
46
- getComponentById(id: string, fn: Function): Object;
46
+ getComponentById(id: string, fn?: Function): Object;
47
47
  /**
48
48
  * Create a new component and add it to the components array.
49
49
  *
@@ -70,7 +70,7 @@ export default class NestedComponent extends Field {
70
70
  * @param {HTMLElement} before - A DOM element to insert this element before.
71
71
  * @return {Component} - The created component instance.
72
72
  */
73
- addComponent(component: Object, data: Object, before: HTMLElement, noAdd: any): Component;
73
+ addComponent(component: Object, data?: Object, before?: HTMLElement, noAdd?: boolean): Component;
74
74
  beforeFocus(): void;
75
75
  renderComponents(components: any): any;
76
76
  attach(element: any): Promise<[void, void]>;
@@ -90,7 +90,7 @@ export default class NestedComponent extends Field {
90
90
  * @param {function} fn - Called once the component is removed.
91
91
  * @return {null}
92
92
  */
93
- removeComponentByKey(key: string, fn: Function): null;
93
+ removeComponentByKey(key: string, fn?: Function): null;
94
94
  /**
95
95
  * Removes a component provided the Id of the component.
96
96
  *
@@ -98,7 +98,7 @@ export default class NestedComponent extends Field {
98
98
  * @param {function} fn - Called when the component is removed.
99
99
  * @return {null}
100
100
  */
101
- removeComponentById(id: string, fn: Function): null;
101
+ removeComponentById(id: string, fn?: Function): null;
102
102
  updateValue(value: any, flags?: {}): any;
103
103
  shouldSkipValidation(data: any, row: any, flags: any): boolean;
104
104
  checkData(data: any, flags: any, row: any, components: any): true | undefined;
@@ -136,7 +136,6 @@ export default class NestedComponent extends Field {
136
136
  */
137
137
  validate(data: any, flags?: any): any;
138
138
  checkComponentValidity(data: any, dirty: any, row: any, flags?: {}, allErrors?: any[]): boolean;
139
- checkValidity(data: any, dirty: any, row: any, silentCheck: any, childErrors?: any[]): boolean;
140
139
  checkAsyncValidity(data: any, dirty: any, row: any, silentCheck: any): Promise<any>;
141
140
  setPristine(pristine: any): void;
142
141
  get isPristine(): any;
@@ -142,7 +142,7 @@ class NestedComponent extends Field_1.default {
142
142
  *
143
143
  * @param {function} fn - Called for every component.
144
144
  */
145
- everyComponent(fn, options) {
145
+ everyComponent(fn, options = {}) {
146
146
  const components = this.getComponents();
147
147
  lodash_1.default.each(components, (component, index) => {
148
148
  if (fn(component, components, index) === false) {
@@ -244,7 +244,7 @@ class NestedComponent extends Field_1.default {
244
244
  * @param {function} fn - Called with the component once it is retrieved.
245
245
  * @return {Object} - The component retrieved.
246
246
  */
247
- getComponentById(id, fn) {
247
+ getComponentById(id, fn = null) {
248
248
  let comp = null;
249
249
  this.everyComponent((component, components) => {
250
250
  if (component.id === id) {
@@ -347,7 +347,7 @@ class NestedComponent extends Field_1.default {
347
347
  * @param {HTMLElement} before - A DOM element to insert this element before.
348
348
  * @return {Component} - The created component instance.
349
349
  */
350
- addComponent(component, data, before, noAdd) {
350
+ addComponent(component, data = null, before = null, noAdd = false) {
351
351
  data = data || this.data;
352
352
  this.components = this.components || [];
353
353
  component = this.hook('addComponent', component, data, before, noAdd);
@@ -456,7 +456,7 @@ class NestedComponent extends Field_1.default {
456
456
  * @param {function} fn - Called once the component is removed.
457
457
  * @return {null}
458
458
  */
459
- removeComponentByKey(key, fn) {
459
+ removeComponentByKey(key, fn = null) {
460
460
  const comp = this.getComponent(key, (component, components) => {
461
461
  this.removeComponent(component, components);
462
462
  if (fn) {
@@ -477,7 +477,7 @@ class NestedComponent extends Field_1.default {
477
477
  * @param {function} fn - Called when the component is removed.
478
478
  * @return {null}
479
479
  */
480
- removeComponentById(id, fn) {
480
+ removeComponentById(id, fn = null) {
481
481
  const comp = this.getComponentById(id, (component, components) => {
482
482
  this.removeComponent(component, components);
483
483
  if (fn) {
@@ -11,7 +11,7 @@ export default class NestedArrayComponent extends NestedDataComponent {
11
11
  processRow(method: any, data: any, opts: any, row: any, components: any, silentCheck: any): any;
12
12
  hasAddButton(): any;
13
13
  getComponent(path: any, fn: any, originalPath: any): any;
14
- everyComponent(fn: any, rowIndex: any, options: any): void;
14
+ everyComponent(fn: any, rowIndex: any, options?: {}): void;
15
15
  getComponents(rowIndex: any): any;
16
16
  }
17
17
  import NestedDataComponent from '../nesteddata/NestedDataComponent';
@@ -129,7 +129,7 @@ class NestedArrayComponent extends NestedDataComponent_1.default {
129
129
  }
130
130
  return result;
131
131
  }
132
- everyComponent(fn, rowIndex, options) {
132
+ everyComponent(fn, rowIndex, options = {}) {
133
133
  if (lodash_1.default.isObject(rowIndex)) {
134
134
  options = rowIndex;
135
135
  rowIndex = null;
@@ -5,7 +5,7 @@ export default class NestedDataComponent extends NestedComponent {
5
5
  get emptyValue(): {};
6
6
  getValueAsString(value: any, options: any): string;
7
7
  getDataValueAsTable(value: any, options: any): string;
8
- everyComponent(fn: any, options: any): void;
8
+ everyComponent(fn: any, options?: {}): void;
9
9
  updateValue(value: any, flags?: {}): boolean;
10
10
  setValue(value: any, flags?: {}): boolean;
11
11
  }
@@ -85,7 +85,7 @@ class NestedDataComponent extends NestedComponent_1.default {
85
85
  `);
86
86
  return result;
87
87
  }
88
- everyComponent(fn, options) {
88
+ everyComponent(fn, options = {}) {
89
89
  if (options === null || options === void 0 ? void 0 : options.email) {
90
90
  if (options.fromRoot) {
91
91
  delete options.fromRoot;
@@ -157,6 +157,7 @@ export default class DayComponent extends Field {
157
157
  * @return {null}
158
158
  */
159
159
  getValueAsString(value: any): null;
160
+ focus(field: any): void;
160
161
  isPartialDay(value: any): boolean;
161
162
  getValidationFormat(): "DD-MM-YYYY" | "MM-DD-YYYY";
162
163
  }
@@ -92,8 +92,8 @@ class HTMLComponent extends Component_1.default {
92
92
  attach(element) {
93
93
  this.loadRefs(element, { html: 'single' });
94
94
  this.dataReady.then(() => {
95
- if (this.element) {
96
- this.setContent(this.elemet, this.content);
95
+ if (this.refs.html) {
96
+ this.setContent(this.refs.html, this.content);
97
97
  }
98
98
  });
99
99
  return super.attach(element);
@@ -59,6 +59,7 @@ export default class SelectComponent extends ListComponent {
59
59
  get itemsFromUrl(): boolean;
60
60
  get isInfiniteScrollProvided(): boolean;
61
61
  get shouldInitialLoad(): any;
62
+ get selectMetadata(): any;
62
63
  isEntireObjectDisplay(): boolean;
63
64
  selectValueAndLabel(data: any): {
64
65
  value: any;
@@ -119,7 +120,9 @@ export default class SelectComponent extends ListComponent {
119
120
  * @param {Array} items
120
121
  */
121
122
  addCurrentChoices(values: any, items: any[], keyValue: any): any;
122
- normalizeSingleValue(value: any, retainObject: any): any;
123
+ normalizeSingleValue(value: any): any;
124
+ setMetadata(value: any): any;
125
+ updateValue(value: any, flags: any): boolean;
123
126
  setValue(value: any, flags?: {}): boolean;
124
127
  lazyLoadInit: boolean | undefined;
125
128
  isInitApiCallNeeded(hasValue: any): any;
@@ -217,8 +217,11 @@ class SelectComponent extends ListComponent_1.default {
217
217
  }
218
218
  return super.shouldLoad;
219
219
  }
220
+ get selectMetadata() {
221
+ return super.selectData;
222
+ }
220
223
  get selectData() {
221
- return this.component.selectData || super.selectData;
224
+ return this.component.selectData || this.selectMetadata;
222
225
  }
223
226
  isEntireObjectDisplay() {
224
227
  return this.component.dataSrc === 'resource' && this.valueProperty === 'data';
@@ -1136,8 +1139,7 @@ class SelectComponent extends ListComponent_1.default {
1136
1139
  this.triggerUpdate();
1137
1140
  return done;
1138
1141
  }
1139
- normalizeSingleValue(value, retainObject) {
1140
- var _a;
1142
+ normalizeSingleValue(value) {
1141
1143
  if (lodash_1.default.isNil(value)) {
1142
1144
  return;
1143
1145
  }
@@ -1146,33 +1148,6 @@ class SelectComponent extends ListComponent_1.default {
1146
1148
  if (valueIsObject && Object.keys(value).length === 0) {
1147
1149
  return value;
1148
1150
  }
1149
- // Check to see if we need to save off the template data into our metadata.
1150
- if (retainObject) {
1151
- const templateValue = this.component.reference && (value === null || value === void 0 ? void 0 : value._id) ? value._id.toString() : value;
1152
- const shouldSaveData = !valueIsObject || this.component.reference;
1153
- if (templateValue && shouldSaveData && (this.templateData && this.templateData[templateValue]) && ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submission)) {
1154
- const submission = this.root.submission;
1155
- if (!submission.metadata) {
1156
- submission.metadata = {};
1157
- }
1158
- if (!submission.metadata.selectData) {
1159
- submission.metadata.selectData = {};
1160
- }
1161
- let templateData = this.templateData[templateValue];
1162
- if (this.component.multiple) {
1163
- templateData = {};
1164
- const dataValue = this.dataValue;
1165
- if (dataValue && lodash_1.default.isArray(dataValue) && dataValue.length) {
1166
- dataValue.forEach((dataValueItem) => {
1167
- const dataValueItemValue = this.component.reference ? dataValueItem._id.toString() : dataValueItem;
1168
- templateData[dataValueItemValue] = this.templateData[dataValueItemValue];
1169
- });
1170
- }
1171
- templateData[value] = this.templateData[value];
1172
- }
1173
- lodash_1.default.set(submission.metadata.selectData, this.path, templateData);
1174
- }
1175
- }
1176
1151
  const dataType = this.component.dataType || 'auto';
1177
1152
  const normalize = {
1178
1153
  value,
@@ -1225,16 +1200,64 @@ class SelectComponent extends ListComponent_1.default {
1225
1200
  */
1226
1201
  normalizeValue(value) {
1227
1202
  if (this.component.multiple && Array.isArray(value)) {
1228
- return value.map((singleValue) => this.normalizeSingleValue(singleValue, true));
1203
+ return value.map((singleValue) => this.normalizeSingleValue(singleValue));
1204
+ }
1205
+ return super.normalizeValue(this.normalizeSingleValue(value));
1206
+ }
1207
+ setMetadata(value) {
1208
+ var _a;
1209
+ if (lodash_1.default.isNil(value)) {
1210
+ return;
1211
+ }
1212
+ const valueIsObject = lodash_1.default.isObject(value);
1213
+ //check if value equals to default emptyValue
1214
+ if (valueIsObject && Object.keys(value).length === 0) {
1215
+ return value;
1216
+ }
1217
+ // Check to see if we need to save off the template data into our metadata.
1218
+ const templateValue = this.component.reference && (value === null || value === void 0 ? void 0 : value._id) ? value._id.toString() : value;
1219
+ const shouldSaveData = !valueIsObject || this.component.reference;
1220
+ if (templateValue && shouldSaveData && this.templateData && this.templateData[templateValue] && ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submission)) {
1221
+ const submission = this.root.submission;
1222
+ if (!submission.metadata) {
1223
+ submission.metadata = {};
1224
+ }
1225
+ if (!submission.metadata.selectData) {
1226
+ submission.metadata.selectData = {};
1227
+ }
1228
+ let templateData = this.templateData[templateValue];
1229
+ if (this.component.multiple) {
1230
+ templateData = {};
1231
+ const dataValue = this.dataValue;
1232
+ if (dataValue && lodash_1.default.isArray(dataValue) && dataValue.length) {
1233
+ dataValue.forEach((dataValueItem) => {
1234
+ const dataValueItemValue = this.component.reference ? dataValueItem._id.toString() : dataValueItem;
1235
+ templateData[dataValueItemValue] = this.templateData[dataValueItemValue];
1236
+ });
1237
+ }
1238
+ templateData[value] = this.templateData[value];
1239
+ }
1240
+ lodash_1.default.set(submission.metadata.selectData, this.path, templateData);
1229
1241
  }
1230
- return super.normalizeValue(this.normalizeSingleValue(value, true));
1242
+ }
1243
+ updateValue(value, flags) {
1244
+ const changed = super.updateValue(value, flags);
1245
+ if (changed || !this.selectMetadata) {
1246
+ if (this.component.multiple && Array.isArray(this.dataValue)) {
1247
+ this.dataValue.forEach(singleValue => this.setMetadata(singleValue));
1248
+ }
1249
+ else {
1250
+ this.setMetadata(this.dataValue);
1251
+ }
1252
+ }
1253
+ return changed;
1231
1254
  }
1232
1255
  setValue(value, flags = {}) {
1233
1256
  const previousValue = this.dataValue;
1257
+ const changed = this.updateValue(value, flags);
1234
1258
  if (this.component.widget === 'html5' && (lodash_1.default.isEqual(value, previousValue) || lodash_1.default.isEqual(previousValue, {}) && lodash_1.default.isEqual(flags, {})) && !flags.fromSubmission) {
1235
1259
  return false;
1236
1260
  }
1237
- const changed = this.updateValue(value, flags);
1238
1261
  value = this.dataValue;
1239
1262
  const hasPreviousValue = !this.isEmpty(previousValue);
1240
1263
  const hasValue = !this.isEmpty(value);
@@ -1349,7 +1372,7 @@ class SelectComponent extends ListComponent_1.default {
1349
1372
  if (values) {
1350
1373
  if (lodash_1.default.isObject(value)) {
1351
1374
  const compareComplexValues = (optionValue) => {
1352
- const normalizedOptionValue = this.normalizeSingleValue(optionValue, true);
1375
+ const normalizedOptionValue = this.normalizeSingleValue(optionValue);
1353
1376
  if (!lodash_1.default.isObject(normalizedOptionValue)) {
1354
1377
  return false;
1355
1378
  }
@@ -0,0 +1,51 @@
1
+ declare namespace _default {
2
+ let title: string;
3
+ let name: string;
4
+ let path: string;
5
+ let type: string;
6
+ let display: string;
7
+ let components: ({
8
+ label: string;
9
+ widget: string;
10
+ tableView: boolean;
11
+ dataSrc: string;
12
+ data: {
13
+ url: string;
14
+ headers: {
15
+ key: string;
16
+ value: string;
17
+ }[];
18
+ };
19
+ valueProperty: string;
20
+ validateWhenHidden: boolean;
21
+ key: string;
22
+ type: string;
23
+ input: boolean;
24
+ defaultValue: string;
25
+ selectValues: string;
26
+ disableLimit: boolean;
27
+ noRefreshOnScroll: boolean;
28
+ selectData: {
29
+ label: string;
30
+ };
31
+ disableOnInvalid?: undefined;
32
+ } | {
33
+ type: string;
34
+ label: string;
35
+ key: string;
36
+ disableOnInvalid: boolean;
37
+ input: boolean;
38
+ tableView: boolean;
39
+ widget?: undefined;
40
+ dataSrc?: undefined;
41
+ data?: undefined;
42
+ valueProperty?: undefined;
43
+ validateWhenHidden?: undefined;
44
+ defaultValue?: undefined;
45
+ selectValues?: undefined;
46
+ disableLimit?: undefined;
47
+ noRefreshOnScroll?: undefined;
48
+ selectData?: undefined;
49
+ })[];
50
+ }
51
+ export default _default;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ title: 'FIO-8091',
5
+ name: 'fio8091',
6
+ path: 'fio8091',
7
+ type: 'form',
8
+ display: 'form',
9
+ components: [{
10
+ label: 'Select',
11
+ widget: 'choicesjs',
12
+ tableView: true,
13
+ dataSrc: 'url',
14
+ data: {
15
+ url: 'https://fake_url',
16
+ headers: [
17
+ {
18
+ key: '',
19
+ value: ''
20
+ },
21
+ ],
22
+ },
23
+ valueProperty: 'value',
24
+ validateWhenHidden: false,
25
+ key: 'select',
26
+ type: 'select',
27
+ input: true,
28
+ defaultValue: 'value1',
29
+ selectValues: 'data',
30
+ disableLimit: false,
31
+ noRefreshOnScroll: false,
32
+ selectData: {
33
+ label: 'Label 1'
34
+ },
35
+ }, {
36
+ type: 'button',
37
+ label: 'Submit',
38
+ key: 'submit',
39
+ disableOnInvalid: true,
40
+ input: true,
41
+ tableView: false,
42
+ }],
43
+ };
@@ -18,5 +18,6 @@ import comp18 from './comp18';
18
18
  import comp19 from './comp19';
19
19
  import comp20 from './comp20';
20
20
  import comp21 from './comp21';
21
- export { comp1, comp2, comp4, comp5, comp6, comp7, comp8, comp9, comp10, comp11, comp12, comp13, comp14, comp15, comp16, comp17, comp18, comp19, comp20, comp21 };
21
+ import comp22 from './comp22';
22
+ export { comp1, comp2, comp4, comp5, comp6, comp7, comp8, comp9, comp10, comp11, comp12, comp13, comp14, comp15, comp16, comp17, comp18, comp19, comp20, comp21, comp22 };
22
23
  export { multiSelect, multiSelectOptions } from "./comp3";
@@ -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.comp21 = exports.comp20 = exports.comp19 = exports.comp18 = exports.comp17 = exports.comp16 = exports.comp15 = exports.comp14 = exports.comp13 = exports.comp12 = exports.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp2 = exports.comp1 = exports.multiSelectOptions = exports.multiSelect = void 0;
6
+ exports.comp22 = exports.comp21 = exports.comp20 = exports.comp19 = exports.comp18 = exports.comp17 = exports.comp16 = exports.comp15 = exports.comp14 = exports.comp13 = exports.comp12 = exports.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp2 = exports.comp1 = exports.multiSelectOptions = exports.multiSelect = 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"));
@@ -47,3 +47,5 @@ const comp20_1 = __importDefault(require("./comp20"));
47
47
  exports.comp20 = comp20_1.default;
48
48
  const comp21_1 = __importDefault(require("./comp21"));
49
49
  exports.comp21 = comp21_1.default;
50
+ const comp22_1 = __importDefault(require("./comp22"));
51
+ exports.comp22 = comp22_1.default;
@@ -1,10 +1,8 @@
1
1
  export class Evaluator {
2
2
  static cache: {};
3
3
  static protectedEval: boolean;
4
+ static noeval: boolean;
4
5
  static template(template: any, hash: any): any;
5
6
  static interpolate(rawTemplate: any, data: any, _options: any): any;
6
7
  static evaluate(func: any, args: any): any;
7
8
  }
8
- export namespace Evaluator {
9
- function registerEvaluator(evaluator: any): void;
10
- }
@@ -60,8 +60,4 @@ class Evaluator extends utils_1.Evaluator {
60
60
  exports.Evaluator = Evaluator;
61
61
  Evaluator.cache = {};
62
62
  Evaluator.protectedEval = false;
63
- Evaluator.registerEvaluator = (evaluator) => {
64
- Object.keys(evaluator).forEach((key) => {
65
- Evaluator[key] = evaluator[key];
66
- });
67
- };
63
+ Evaluator.noeval = false;
@@ -79,6 +79,8 @@
79
79
  * @property {boolean} [allowPrevious] - Allow the previous button (for Wizard forms).
80
80
  * @property {string[]} [wizardButtonOrder] - The order of the buttons (for Wizard forms).
81
81
  * @property {boolean} [showCheckboxBackground] - Show the checkbox background.
82
+ * @property {boolean} [inputsOnly] - Only show inputs in the form and no labels.
83
+ * @property {boolean} [building] - If we are in the process of building the form.
82
84
  * @property {number} [zoom] - The zoom for PDF forms.
83
85
  */
84
86
  /**
@@ -469,7 +471,7 @@ declare class Webform extends NestedDataComponent {
469
471
  *
470
472
  * @returns {Promise} - A promise when the form is done submitting.
471
473
  */
472
- submit(before: boolean, options?: {}): Promise<any>;
474
+ submit(before?: boolean, options?: {}): Promise<any>;
473
475
  submitUrl(URL: any, headers: any): void;
474
476
  triggerRecaptcha(): void;
475
477
  _nosubmit: any;
@@ -685,6 +687,14 @@ export type FormOptions = {
685
687
  * - Show the checkbox background.
686
688
  */
687
689
  showCheckboxBackground?: boolean | undefined;
690
+ /**
691
+ * - Only show inputs in the form and no labels.
692
+ */
693
+ inputsOnly?: boolean | undefined;
694
+ /**
695
+ * - If we are in the process of building the form.
696
+ */
697
+ building?: boolean | undefined;
688
698
  /**
689
699
  * - The zoom for PDF forms.
690
700
  */
@@ -116,6 +116,8 @@ function getOptions(options) {
116
116
  * @property {boolean} [allowPrevious] - Allow the previous button (for Wizard forms).
117
117
  * @property {string[]} [wizardButtonOrder] - The order of the buttons (for Wizard forms).
118
118
  * @property {boolean} [showCheckboxBackground] - Show the checkbox background.
119
+ * @property {boolean} [inputsOnly] - Only show inputs in the form and no labels.
120
+ * @property {boolean} [building] - If we are in the process of building the form.
119
121
  * @property {number} [zoom] - The zoom for PDF forms.
120
122
  */
121
123
  /**
@@ -1438,7 +1440,7 @@ export default class Webform extends NestedDataComponent {
1438
1440
  *
1439
1441
  * @returns {Promise} - A promise when the form is done submitting.
1440
1442
  */
1441
- submit(before, options = {}) {
1443
+ submit(before = null, options = {}) {
1442
1444
  this.submissionInProcess = true;
1443
1445
  if (!before) {
1444
1446
  return this.beforeSubmit(options).then(() => this.executeSubmit(options));