@formio/js 5.1.0-dev.6040.debc859 → 5.1.0-dev.6042.603237d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +99 -310
- package/README.md +7 -0
- package/dist/formio.builder.css +1 -0
- package/dist/formio.builder.min.css +1 -1
- package/dist/formio.form.css +1 -0
- package/dist/formio.form.js +661 -672
- package/dist/formio.form.min.css +1 -1
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +3 -1
- package/dist/formio.full.css +1 -0
- package/dist/formio.full.js +688 -699
- package/dist/formio.full.min.css +1 -1
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +3 -1
- package/dist/formio.js +90 -68
- package/dist/formio.min.js +1 -1
- package/dist/formio.utils.js +103 -81
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +3 -1
- package/lib/cjs/Element.d.ts +2 -1
- package/lib/cjs/Element.js +18 -39
- package/lib/cjs/EventEmitter.js +2 -25
- package/lib/cjs/Form.js +2 -25
- package/lib/cjs/PDF.js +1 -1
- package/lib/cjs/PDFBuilder.js +4 -5
- package/lib/cjs/Webform.d.ts +2 -2
- package/lib/cjs/Webform.js +14 -15
- package/lib/cjs/WebformBuilder.d.ts +1 -0
- package/lib/cjs/WebformBuilder.js +44 -14
- package/lib/cjs/Wizard.d.ts +2 -2
- package/lib/cjs/Wizard.js +41 -27
- package/lib/cjs/WizardBuilder.js +1 -1
- package/lib/cjs/components/_classes/component/Component.d.ts +49 -15
- package/lib/cjs/components/_classes/component/Component.js +188 -125
- package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +19 -0
- package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
- package/lib/cjs/components/_classes/component/editForm/utils.js +1 -1
- package/lib/cjs/components/_classes/componentModal/ComponentModal.js +1 -1
- package/lib/cjs/components/_classes/input/Input.js +1 -1
- package/lib/cjs/components/_classes/list/ListComponent.js +3 -3
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +0 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.form.js +13 -0
- package/lib/cjs/components/_classes/nested/NestedComponent.js +17 -25
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +0 -2
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +1 -12
- package/lib/cjs/components/address/Address.d.ts +9 -0
- package/lib/cjs/components/address/Address.js +32 -9
- package/lib/cjs/components/address/editForm/Address.edit.display.d.ts +4 -0
- package/lib/cjs/components/address/editForm/Address.edit.display.js +1 -0
- package/lib/cjs/components/address/editForm/Address.edit.provider.js +8 -8
- package/lib/cjs/components/alert/Alert.js +1 -1
- package/lib/cjs/components/button/Button.d.ts +1 -1
- package/lib/cjs/components/button/Button.js +7 -11
- package/lib/cjs/components/checkbox/Checkbox.js +1 -1
- package/lib/cjs/components/container/Container.js +1 -1
- package/lib/cjs/components/content/editForm/Content.edit.display.js +8 -0
- package/lib/cjs/components/currency/Currency.js +1 -1
- package/lib/cjs/components/currency/editForm/Currency.edit.display.js +12 -0
- package/lib/cjs/components/datagrid/DataGrid.js +5 -4
- package/lib/cjs/components/datamap/DataMap.js +2 -6
- package/lib/cjs/components/datetime/DateTime.d.ts +1 -1
- package/lib/cjs/components/datetime/DateTime.js +15 -13
- package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.d.ts +66 -15
- package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.js +68 -47
- package/lib/cjs/components/day/Day.js +2 -2
- package/lib/cjs/components/day/editForm/Day.edit.display.js +8 -0
- package/lib/cjs/components/editgrid/EditGrid.js +4 -14
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
- package/lib/cjs/components/email/editForm/Email.edit.display.js +12 -0
- package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -0
- package/lib/cjs/components/file/File.js +6 -2
- package/lib/cjs/components/file/editForm/File.edit.file.d.ts +13 -0
- package/lib/cjs/components/file/editForm/File.edit.file.js +1 -0
- package/lib/cjs/components/form/Form.d.ts +0 -1
- package/lib/cjs/components/form/Form.js +32 -24
- package/lib/cjs/components/form/editForm/Form.edit.form.js +4 -3
- package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +8 -0
- package/lib/cjs/components/html/HTML.js +1 -2
- package/lib/cjs/components/html/editForm/HTML.edit.display.js +8 -0
- package/lib/cjs/components/number/Number.js +1 -1
- package/lib/cjs/components/number/editForm/Number.edit.display.js +12 -0
- package/lib/cjs/components/panel/Panel.js +1 -1
- package/lib/cjs/components/password/editForm/Password.edit.display.js +13 -1
- package/lib/cjs/components/phonenumber/PhoneNumber.form.js +9 -1
- package/lib/cjs/components/radio/Radio.d.ts +8 -0
- package/lib/cjs/components/radio/Radio.js +17 -7
- package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
- package/lib/cjs/components/select/Select.d.ts +1 -0
- package/lib/cjs/components/select/Select.js +21 -5
- package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +68 -110
- package/lib/cjs/components/select/editForm/Select.edit.data.js +3 -38
- package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +6 -0
- package/lib/cjs/components/selectboxes/SelectBoxes.js +7 -1
- package/lib/cjs/components/signature/Signature.js +1 -1
- package/lib/cjs/components/survey/Survey.js +2 -2
- package/lib/cjs/components/tabs/Tabs.js +1 -0
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +8 -0
- package/lib/cjs/components/tags/Tags.js +1 -1
- package/lib/cjs/components/textarea/TextArea.js +10 -2
- package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +12 -0
- package/lib/cjs/components/textfield/TextField.js +9 -32
- package/lib/cjs/components/time/Time.js +1 -1
- package/lib/cjs/components/unknown/Unknown.form.d.ts +2 -1
- package/lib/cjs/components/unknown/Unknown.form.js +13 -9
- package/lib/cjs/components/url/editForm/Url.edit.display.js +12 -0
- package/lib/cjs/components/well/editForm/Well.edit.display.js +8 -0
- package/lib/cjs/formio.form.js +5 -5
- package/lib/cjs/providers/storage/uploadAdapter.js +8 -6
- package/lib/cjs/translations/en.d.ts +1 -234
- package/lib/cjs/translations/en.js +4 -2
- package/lib/cjs/utils/Evaluator.d.ts +20 -6
- package/lib/cjs/utils/Evaluator.js +38 -15
- package/lib/cjs/utils/builder.js +5 -5
- package/lib/cjs/utils/conditionOperators/IsEqualTo.js +3 -3
- package/lib/cjs/utils/formUtils.d.ts +2 -2
- package/lib/cjs/utils/index.d.ts +169 -2
- package/lib/cjs/utils/index.js +22 -2
- package/lib/cjs/utils/utils.d.ts +31 -45
- package/lib/cjs/utils/utils.js +80 -156
- package/lib/cjs/widgets/CalendarWidget.d.ts +1 -8
- package/lib/cjs/widgets/CalendarWidget.js +19 -40
- package/lib/mjs/Element.d.ts +2 -1
- package/lib/mjs/Element.js +11 -9
- package/lib/mjs/EventEmitter.js +2 -2
- package/lib/mjs/Form.js +1 -1
- package/lib/mjs/PDF.js +1 -1
- package/lib/mjs/PDFBuilder.js +1 -2
- package/lib/mjs/Webform.d.ts +2 -2
- package/lib/mjs/Webform.js +12 -13
- package/lib/mjs/WebformBuilder.d.ts +1 -0
- package/lib/mjs/WebformBuilder.js +37 -8
- package/lib/mjs/Wizard.d.ts +2 -2
- package/lib/mjs/Wizard.js +39 -25
- package/lib/mjs/WizardBuilder.js +1 -1
- package/lib/mjs/components/_classes/component/Component.d.ts +49 -15
- package/lib/mjs/components/_classes/component/Component.js +161 -75
- package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +19 -0
- package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
- package/lib/mjs/components/_classes/component/editForm/utils.js +1 -1
- package/lib/mjs/components/_classes/componentModal/ComponentModal.js +1 -1
- package/lib/mjs/components/_classes/input/Input.js +1 -1
- package/lib/mjs/components/_classes/list/ListComponent.js +3 -3
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +0 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.form.js +13 -0
- package/lib/mjs/components/_classes/nested/NestedComponent.js +17 -25
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +0 -2
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +1 -12
- package/lib/mjs/components/address/Address.d.ts +9 -0
- package/lib/mjs/components/address/Address.js +32 -9
- package/lib/mjs/components/address/editForm/Address.edit.display.d.ts +4 -0
- package/lib/mjs/components/address/editForm/Address.edit.display.js +1 -0
- package/lib/mjs/components/address/editForm/Address.edit.provider.js +8 -8
- package/lib/mjs/components/alert/Alert.js +1 -1
- package/lib/mjs/components/button/Button.d.ts +1 -1
- package/lib/mjs/components/button/Button.js +7 -10
- package/lib/mjs/components/checkbox/Checkbox.js +1 -1
- package/lib/mjs/components/container/Container.js +1 -1
- package/lib/mjs/components/content/editForm/Content.edit.display.js +8 -0
- package/lib/mjs/components/currency/Currency.js +1 -1
- package/lib/mjs/components/currency/editForm/Currency.edit.display.js +12 -0
- package/lib/mjs/components/datagrid/DataGrid.js +5 -4
- package/lib/mjs/components/datamap/DataMap.js +2 -6
- package/lib/mjs/components/datetime/DateTime.d.ts +1 -1
- package/lib/mjs/components/datetime/DateTime.js +15 -13
- package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.d.ts +66 -15
- package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.js +68 -47
- package/lib/mjs/components/day/Day.js +2 -2
- package/lib/mjs/components/day/editForm/Day.edit.display.js +8 -0
- package/lib/mjs/components/editgrid/EditGrid.js +4 -13
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
- package/lib/mjs/components/email/editForm/Email.edit.display.js +12 -0
- package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -0
- package/lib/mjs/components/file/File.js +6 -2
- package/lib/mjs/components/file/editForm/File.edit.file.d.ts +13 -0
- package/lib/mjs/components/file/editForm/File.edit.file.js +1 -0
- package/lib/mjs/components/form/Form.d.ts +0 -1
- package/lib/mjs/components/form/Form.js +31 -24
- package/lib/mjs/components/form/editForm/Form.edit.form.js +3 -2
- package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +8 -0
- package/lib/mjs/components/html/HTML.js +1 -2
- package/lib/mjs/components/html/editForm/HTML.edit.display.js +8 -0
- package/lib/mjs/components/number/Number.js +1 -1
- package/lib/mjs/components/number/editForm/Number.edit.display.js +12 -0
- package/lib/mjs/components/panel/Panel.js +1 -1
- package/lib/mjs/components/password/editForm/Password.edit.display.js +13 -1
- package/lib/mjs/components/phonenumber/PhoneNumber.form.js +9 -1
- package/lib/mjs/components/radio/Radio.d.ts +8 -0
- package/lib/mjs/components/radio/Radio.js +17 -7
- package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
- package/lib/mjs/components/select/Select.d.ts +1 -0
- package/lib/mjs/components/select/Select.js +21 -5
- package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +68 -110
- package/lib/mjs/components/select/editForm/Select.edit.data.js +3 -38
- package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +6 -0
- package/lib/mjs/components/selectboxes/SelectBoxes.js +7 -1
- package/lib/mjs/components/signature/Signature.js +1 -1
- package/lib/mjs/components/survey/Survey.js +2 -2
- package/lib/mjs/components/tabs/Tabs.js +1 -0
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +8 -0
- package/lib/mjs/components/tags/Tags.js +1 -1
- package/lib/mjs/components/textarea/TextArea.js +10 -2
- package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +12 -0
- package/lib/mjs/components/textfield/TextField.js +3 -3
- package/lib/mjs/components/time/Time.js +1 -1
- package/lib/mjs/components/unknown/Unknown.form.d.ts +2 -1
- package/lib/mjs/components/unknown/Unknown.form.js +13 -9
- package/lib/mjs/components/url/editForm/Url.edit.display.js +12 -0
- package/lib/mjs/components/well/editForm/Well.edit.display.js +8 -0
- package/lib/mjs/formio.form.js +3 -3
- package/lib/mjs/providers/storage/uploadAdapter.js +8 -6
- package/lib/mjs/translations/en.d.ts +1 -234
- package/lib/mjs/translations/en.js +6 -47
- package/lib/mjs/utils/Evaluator.d.ts +20 -6
- package/lib/mjs/utils/Evaluator.js +31 -13
- package/lib/mjs/utils/builder.js +1 -1
- package/lib/mjs/utils/conditionOperators/IsEqualTo.js +1 -1
- package/lib/mjs/utils/formUtils.d.ts +2 -2
- package/lib/mjs/utils/index.d.ts +169 -2
- package/lib/mjs/utils/index.js +18 -1
- package/lib/mjs/utils/utils.d.ts +31 -45
- package/lib/mjs/utils/utils.js +72 -129
- package/lib/mjs/widgets/CalendarWidget.d.ts +1 -8
- package/lib/mjs/widgets/CalendarWidget.js +19 -40
- package/package.json +8 -6
- package/lib/cjs/i18n.d.ts +0 -13
- package/lib/cjs/i18n.js +0 -19
- package/lib/cjs/utils/i18n.d.ts +0 -19
- package/lib/cjs/utils/i18n.js +0 -120
- package/lib/mjs/i18n.d.ts +0 -13
- package/lib/mjs/i18n.js +0 -14
- package/lib/mjs/utils/i18n.d.ts +0 -19
- package/lib/mjs/utils/i18n.js +0 -112
@@ -53,8 +53,7 @@ export default class HTMLComponent extends Component {
|
|
53
53
|
super.checkRefreshOn(changed);
|
54
54
|
let visible;
|
55
55
|
if (this.hasCondition()) {
|
56
|
-
|
57
|
-
visible = !this.conditionallyHidden;
|
56
|
+
visible = !this.conditionallyHidden();
|
58
57
|
}
|
59
58
|
else {
|
60
59
|
visible = !this.component.hidden;
|
@@ -2,7 +2,7 @@ import { createNumberMask } from '@formio/text-mask-addons';
|
|
2
2
|
import { conformToMask, maskInput } from '@formio/vanilla-text-mask';
|
3
3
|
import _ from 'lodash';
|
4
4
|
import Input from '../_classes/input/Input';
|
5
|
-
import { getNumberSeparators, getNumberDecimalLimit, componentValueTypes, getComponentSavedTypes } from '../../utils/
|
5
|
+
import { getNumberSeparators, getNumberDecimalLimit, componentValueTypes, getComponentSavedTypes } from '../../utils/';
|
6
6
|
export default class NumberComponent extends Input {
|
7
7
|
static schema(...extend) {
|
8
8
|
return Input.schema({
|
@@ -11,6 +11,18 @@ export default [
|
|
11
11
|
key: 'allowMultipleMasks',
|
12
12
|
ignore: true
|
13
13
|
},
|
14
|
+
{
|
15
|
+
key: 'inputMasks',
|
16
|
+
ignore: true
|
17
|
+
},
|
18
|
+
{
|
19
|
+
key: 'widget.type',
|
20
|
+
ignore: true
|
21
|
+
},
|
22
|
+
{
|
23
|
+
key: 'widget',
|
24
|
+
ignore: true
|
25
|
+
},
|
14
26
|
{
|
15
27
|
key: 'showWordCount',
|
16
28
|
ignore: true,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import NestedComponent from '../_classes/nested/NestedComponent';
|
2
|
-
import { isChildOf } from '../../utils
|
2
|
+
import { isChildOf } from '../../utils';
|
3
3
|
export default class PanelComponent extends NestedComponent {
|
4
4
|
static schema(...extend) {
|
5
5
|
return NestedComponent.schema({
|
@@ -28,6 +28,7 @@ export default class RadioComponent extends ListComponent {
|
|
28
28
|
optionsLoaded: boolean | undefined;
|
29
29
|
loadedOptions: any[] | undefined;
|
30
30
|
beforeSubmit(): Promise<any>;
|
31
|
+
convertValues(values: any): any;
|
31
32
|
render(): string;
|
32
33
|
attach(element: any): Promise<void>;
|
33
34
|
detach(element: any): void;
|
@@ -41,5 +42,12 @@ export default class RadioComponent extends ListComponent {
|
|
41
42
|
setSelectedClasses(): void;
|
42
43
|
updateValue(value: any, flags: any): boolean;
|
43
44
|
currentValue: any;
|
45
|
+
/**
|
46
|
+
* Normalize values coming into updateValue. For example, depending on the configuration, string value `"true"` will be normalized to boolean `true`.
|
47
|
+
* @param {*} value - The value to normalize
|
48
|
+
* @returns {*} - Returns the normalized value
|
49
|
+
*/
|
50
|
+
convertByDataType(value: any): any;
|
51
|
+
normalizeValue(value: any): any;
|
44
52
|
}
|
45
53
|
import ListComponent from '../_classes/list/ListComponent';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import _ from 'lodash';
|
2
2
|
import ListComponent from '../_classes/list/ListComponent';
|
3
3
|
import { Formio } from '../../Formio';
|
4
|
-
import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils
|
4
|
+
import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils';
|
5
5
|
export default class RadioComponent extends ListComponent {
|
6
6
|
static schema(...extend) {
|
7
7
|
return ListComponent.schema({
|
@@ -153,6 +153,12 @@ export default class RadioComponent extends ListComponent {
|
|
153
153
|
this.dataReady.then(() => res(true));
|
154
154
|
});
|
155
155
|
}
|
156
|
+
convertValues(values) {
|
157
|
+
if (this.options.renderMode === 'html' && this.type === 'radio') {
|
158
|
+
return values.map(x => ({ ...x, value: this.convertByDataType(x.value) }));
|
159
|
+
}
|
160
|
+
return values;
|
161
|
+
}
|
156
162
|
render() {
|
157
163
|
if (!this.optionsLoaded) {
|
158
164
|
return super.render(this.renderTemplate('loader'));
|
@@ -160,7 +166,7 @@ export default class RadioComponent extends ListComponent {
|
|
160
166
|
return super.render(this.renderTemplate('radio', {
|
161
167
|
input: this.inputInfo,
|
162
168
|
inline: this.component.inline,
|
163
|
-
values: this.component.dataSrc === 'values' ? this.component.values : this.loadedOptions,
|
169
|
+
values: this.component.dataSrc === 'values' ? this.convertValues(this.component.values) : this.loadedOptions,
|
164
170
|
value: this.dataValue,
|
165
171
|
row: this.row,
|
166
172
|
}));
|
@@ -365,7 +371,7 @@ export default class RadioComponent extends ListComponent {
|
|
365
371
|
const value = this.dataValue;
|
366
372
|
this.refs.wrapper.forEach((wrapper, index) => {
|
367
373
|
const input = this.refs.input[index];
|
368
|
-
const checked = (input.type === 'checkbox') ? value[input.value] || input.checked : (input.value.toString() === value.toString());
|
374
|
+
const checked = (value === undefined || value === null) ? false : (input.type === 'checkbox') ? value[input.value] || input.checked : (input.value.toString() === value.toString());
|
369
375
|
if (checked) {
|
370
376
|
//add class to container when selected
|
371
377
|
this.addClass(wrapper, this.optionSelectedClass);
|
@@ -406,7 +412,7 @@ export default class RadioComponent extends ListComponent {
|
|
406
412
|
* @param {*} value - The value to normalize
|
407
413
|
* @returns {*} - Returns the normalized value
|
408
414
|
*/
|
409
|
-
|
415
|
+
convertByDataType(value) {
|
410
416
|
const dataType = this.component.dataType || 'auto';
|
411
417
|
if (value === this.emptyValue) {
|
412
418
|
return value;
|
@@ -438,13 +444,17 @@ export default class RadioComponent extends ListComponent {
|
|
438
444
|
value = !(!value || value.toString() === 'false');
|
439
445
|
break;
|
440
446
|
}
|
441
|
-
|
447
|
+
return value;
|
448
|
+
}
|
449
|
+
normalizeValue(value) {
|
450
|
+
const valueConverted = this.convertByDataType(value);
|
451
|
+
if (this.isSelectURL && this.templateData && this.templateData[valueConverted]) {
|
442
452
|
const submission = this.root.submission;
|
443
453
|
if (!submission.metadata.selectData) {
|
444
454
|
submission.metadata.selectData = {};
|
445
455
|
}
|
446
|
-
_.set(submission.metadata.selectData, this.path, this.templateData[
|
456
|
+
_.set(submission.metadata.selectData, this.path, this.templateData[valueConverted]);
|
447
457
|
}
|
448
|
-
return super.normalizeValue(
|
458
|
+
return super.normalizeValue(valueConverted);
|
449
459
|
}
|
450
460
|
}
|
@@ -89,6 +89,7 @@ export default class SelectComponent extends ListComponent {
|
|
89
89
|
disableInfiniteScroll(): void;
|
90
90
|
set serverCount(value: any);
|
91
91
|
get serverCount(): any;
|
92
|
+
shouldResetChoicesItems(items: any): boolean;
|
92
93
|
setItems(items: any, fromSearch: any): void;
|
93
94
|
selectItems: any;
|
94
95
|
set downloadedResources(value: any);
|
@@ -2,7 +2,7 @@ import _ from 'lodash';
|
|
2
2
|
import { Formio } from '../../Formio';
|
3
3
|
import ListComponent from '../_classes/list/ListComponent';
|
4
4
|
import Form from '../../Form';
|
5
|
-
import { getRandomComponentId, boolValue, isPromise, componentValueTypes, getComponentSavedTypes, isSelectResourceWithObjectValue, removeHTML } from '../../utils
|
5
|
+
import { getRandomComponentId, boolValue, isPromise, componentValueTypes, getComponentSavedTypes, isSelectResourceWithObjectValue, removeHTML } from '../../utils';
|
6
6
|
import Choices from '../../utils/ChoicesWrapper';
|
7
7
|
export default class SelectComponent extends ListComponent {
|
8
8
|
static schema(...extend) {
|
@@ -359,6 +359,18 @@ export default class SelectComponent extends ListComponent {
|
|
359
359
|
this.downloadedResources.serverCount = this.downloadedResources.length;
|
360
360
|
this.serverCount = this.downloadedResources.length;
|
361
361
|
}
|
362
|
+
shouldResetChoicesItems(items) {
|
363
|
+
if (this.choices._store.choices.length !== items.length) {
|
364
|
+
return true;
|
365
|
+
}
|
366
|
+
for (let item of items) {
|
367
|
+
const choicesItem = this.choices._store.choices.find((i) => i.label === item.label);
|
368
|
+
if (!choicesItem) {
|
369
|
+
return true;
|
370
|
+
}
|
371
|
+
}
|
372
|
+
return false;
|
373
|
+
}
|
362
374
|
/* eslint-disable max-statements */
|
363
375
|
setItems(items, fromSearch) {
|
364
376
|
this.selectItems = items;
|
@@ -444,7 +456,7 @@ export default class SelectComponent extends ListComponent {
|
|
444
456
|
this.addOption(itemValueAndLabel.value, itemValueAndLabel.label, {}, _.get(item, this.component.idPath, String(index)));
|
445
457
|
});
|
446
458
|
if (this.choices) {
|
447
|
-
this.choices.setChoices(this.selectOptions, 'value', 'label', true);
|
459
|
+
this.choices.setChoices(this.selectOptions, 'value', 'label', true, true, !fromSearch && this.shouldResetChoicesItems(this.selectOptions));
|
448
460
|
}
|
449
461
|
else if (this.loading) {
|
450
462
|
// Re-attach select input.
|
@@ -935,8 +947,9 @@ export default class SelectComponent extends ListComponent {
|
|
935
947
|
});
|
936
948
|
}
|
937
949
|
// Add value options.
|
950
|
+
const value = this.undoValueTyping(this.dataValue);
|
938
951
|
this.addValueOptions();
|
939
|
-
this.setChoicesValue(
|
952
|
+
this.setChoicesValue(value);
|
940
953
|
if (this.isSelectResource && this.refs.addResource) {
|
941
954
|
this.addEventListener(this.refs.addResource, 'click', (event) => {
|
942
955
|
event.preventDefault();
|
@@ -1248,7 +1261,7 @@ export default class SelectComponent extends ListComponent {
|
|
1248
1261
|
}
|
1249
1262
|
_.set(submission.metadata.selectData, this.path, templateData);
|
1250
1263
|
}
|
1251
|
-
if (flags.resetValue && this.root?.submission && !this.options.readOnly) {
|
1264
|
+
if (flags.resetValue && !flags.fromSubmission && this.root?.submission && !this.options.readOnly) {
|
1252
1265
|
const submission = this.root.submission;
|
1253
1266
|
if (!submission.metadata) {
|
1254
1267
|
submission.metadata = {};
|
@@ -1312,6 +1325,9 @@ export default class SelectComponent extends ListComponent {
|
|
1312
1325
|
this.lazyLoadInit = true;
|
1313
1326
|
const searchProperty = this.component.searchField || this.component.valueProperty;
|
1314
1327
|
this.triggerUpdate(_.get(value.data || value, searchProperty, value), true);
|
1328
|
+
this.itemsLoaded.then(() => {
|
1329
|
+
this.setChoicesValue(value, hasPreviousValue, flags);
|
1330
|
+
});
|
1315
1331
|
return changed;
|
1316
1332
|
}
|
1317
1333
|
// Add the value options.
|
@@ -1487,7 +1503,7 @@ export default class SelectComponent extends ListComponent {
|
|
1487
1503
|
}
|
1488
1504
|
asString(value, options = {}) {
|
1489
1505
|
value = value ?? this.getValue();
|
1490
|
-
if (options.modalPreview || this.inDataTable) {
|
1506
|
+
if (options.modalPreview || this.inDataTable || options.email) {
|
1491
1507
|
if (this.inDataTable) {
|
1492
1508
|
value = this.undoValueTyping(value);
|
1493
1509
|
}
|
@@ -9,99 +9,15 @@ declare const _default: ({
|
|
9
9
|
custom?: undefined;
|
10
10
|
};
|
11
11
|
type?: undefined;
|
12
|
+
as?: undefined;
|
13
|
+
editor?: undefined;
|
12
14
|
weight?: undefined;
|
13
15
|
input?: undefined;
|
14
16
|
label?: undefined;
|
15
17
|
tooltip?: undefined;
|
16
|
-
conditional?: undefined;
|
17
|
-
as?: undefined;
|
18
|
-
editor?: undefined;
|
19
|
-
defaultValue?: undefined;
|
20
18
|
description?: undefined;
|
21
|
-
|
22
|
-
components?: undefined;
|
23
|
-
dataSrc?: undefined;
|
24
|
-
authenticate?: undefined;
|
25
|
-
template?: undefined;
|
26
|
-
valueProperty?: undefined;
|
27
|
-
clearOnHide?: undefined;
|
28
|
-
lazyLoad?: undefined;
|
29
|
-
skipMerge?: undefined;
|
30
|
-
refreshOn?: undefined;
|
31
|
-
onSetItems?: undefined;
|
32
|
-
onChange?: undefined;
|
33
|
-
placeholder?: undefined;
|
34
|
-
validate?: undefined;
|
35
|
-
delimiter?: undefined;
|
36
|
-
requireDecimal?: undefined;
|
37
|
-
encrypted?: undefined;
|
38
|
-
rows?: undefined;
|
39
|
-
mask?: undefined;
|
40
|
-
tableView?: undefined;
|
41
|
-
alwaysEnabled?: undefined;
|
42
|
-
} | {
|
43
|
-
type: string;
|
44
|
-
weight: number;
|
45
|
-
input: boolean;
|
46
|
-
key: string;
|
47
|
-
label: string;
|
48
|
-
tooltip: string;
|
49
|
-
conditional: {
|
50
|
-
json: {
|
51
|
-
'===': (string | {
|
52
|
-
var: string;
|
53
|
-
})[];
|
54
|
-
and?: undefined;
|
55
|
-
in?: undefined;
|
56
|
-
};
|
57
|
-
};
|
58
|
-
data?: undefined;
|
59
|
-
as?: undefined;
|
60
|
-
editor?: undefined;
|
19
|
+
conditional?: undefined;
|
61
20
|
defaultValue?: undefined;
|
62
|
-
description?: undefined;
|
63
|
-
reorder?: undefined;
|
64
|
-
components?: undefined;
|
65
|
-
dataSrc?: undefined;
|
66
|
-
authenticate?: undefined;
|
67
|
-
template?: undefined;
|
68
|
-
valueProperty?: undefined;
|
69
|
-
clearOnHide?: undefined;
|
70
|
-
lazyLoad?: undefined;
|
71
|
-
skipMerge?: undefined;
|
72
|
-
refreshOn?: undefined;
|
73
|
-
onSetItems?: undefined;
|
74
|
-
onChange?: undefined;
|
75
|
-
placeholder?: undefined;
|
76
|
-
validate?: undefined;
|
77
|
-
delimiter?: undefined;
|
78
|
-
requireDecimal?: undefined;
|
79
|
-
encrypted?: undefined;
|
80
|
-
rows?: undefined;
|
81
|
-
mask?: undefined;
|
82
|
-
tableView?: undefined;
|
83
|
-
alwaysEnabled?: undefined;
|
84
|
-
} | {
|
85
|
-
type: string;
|
86
|
-
as: string;
|
87
|
-
editor: string;
|
88
|
-
weight: number;
|
89
|
-
input: boolean;
|
90
|
-
key: string;
|
91
|
-
label: string;
|
92
|
-
tooltip: string;
|
93
|
-
defaultValue: {};
|
94
|
-
conditional: {
|
95
|
-
json: {
|
96
|
-
'===': (string | {
|
97
|
-
var: string;
|
98
|
-
})[];
|
99
|
-
and?: undefined;
|
100
|
-
in?: undefined;
|
101
|
-
};
|
102
|
-
};
|
103
|
-
data?: undefined;
|
104
|
-
description?: undefined;
|
105
21
|
reorder?: undefined;
|
106
22
|
components?: undefined;
|
107
23
|
dataSrc?: undefined;
|
@@ -172,6 +88,7 @@ declare const _default: ({
|
|
172
88
|
key: string;
|
173
89
|
tooltip: string;
|
174
90
|
weight: number;
|
91
|
+
defaultValue: boolean;
|
175
92
|
conditional: {
|
176
93
|
json: {
|
177
94
|
and: ({
|
@@ -192,7 +109,6 @@ declare const _default: ({
|
|
192
109
|
data?: undefined;
|
193
110
|
as?: undefined;
|
194
111
|
editor?: undefined;
|
195
|
-
defaultValue?: undefined;
|
196
112
|
description?: undefined;
|
197
113
|
reorder?: undefined;
|
198
114
|
components?: undefined;
|
@@ -303,8 +219,8 @@ declare const _default: ({
|
|
303
219
|
};
|
304
220
|
as?: undefined;
|
305
221
|
editor?: undefined;
|
306
|
-
defaultValue?: undefined;
|
307
222
|
description?: undefined;
|
223
|
+
defaultValue?: undefined;
|
308
224
|
reorder?: undefined;
|
309
225
|
components?: undefined;
|
310
226
|
skipMerge?: undefined;
|
@@ -411,8 +327,8 @@ declare const _default: ({
|
|
411
327
|
};
|
412
328
|
as?: undefined;
|
413
329
|
editor?: undefined;
|
414
|
-
defaultValue?: undefined;
|
415
330
|
description?: undefined;
|
331
|
+
defaultValue?: undefined;
|
416
332
|
reorder?: undefined;
|
417
333
|
components?: undefined;
|
418
334
|
authenticate?: undefined;
|
@@ -443,11 +359,11 @@ declare const _default: ({
|
|
443
359
|
url?: undefined;
|
444
360
|
custom?: undefined;
|
445
361
|
};
|
446
|
-
conditional?: undefined;
|
447
362
|
as?: undefined;
|
448
363
|
editor?: undefined;
|
449
|
-
defaultValue?: undefined;
|
450
364
|
description?: undefined;
|
365
|
+
conditional?: undefined;
|
366
|
+
defaultValue?: undefined;
|
451
367
|
reorder?: undefined;
|
452
368
|
components?: undefined;
|
453
369
|
authenticate?: undefined;
|
@@ -475,11 +391,52 @@ declare const _default: ({
|
|
475
391
|
placeholder: string;
|
476
392
|
tooltip: string;
|
477
393
|
data?: undefined;
|
478
|
-
conditional?: undefined;
|
479
394
|
as?: undefined;
|
480
395
|
editor?: undefined;
|
396
|
+
description?: undefined;
|
397
|
+
conditional?: undefined;
|
481
398
|
defaultValue?: undefined;
|
399
|
+
reorder?: undefined;
|
400
|
+
components?: undefined;
|
401
|
+
dataSrc?: undefined;
|
402
|
+
authenticate?: undefined;
|
403
|
+
template?: undefined;
|
404
|
+
valueProperty?: undefined;
|
405
|
+
clearOnHide?: undefined;
|
406
|
+
lazyLoad?: undefined;
|
407
|
+
skipMerge?: undefined;
|
408
|
+
refreshOn?: undefined;
|
409
|
+
onSetItems?: undefined;
|
410
|
+
onChange?: undefined;
|
411
|
+
validate?: undefined;
|
412
|
+
delimiter?: undefined;
|
413
|
+
requireDecimal?: undefined;
|
414
|
+
encrypted?: undefined;
|
415
|
+
rows?: undefined;
|
416
|
+
mask?: undefined;
|
417
|
+
tableView?: undefined;
|
418
|
+
alwaysEnabled?: undefined;
|
419
|
+
} | {
|
420
|
+
type: string;
|
421
|
+
input: boolean;
|
422
|
+
key: string;
|
423
|
+
label: string;
|
424
|
+
tooltip: string;
|
425
|
+
weight: number;
|
426
|
+
conditional: {
|
427
|
+
json: {
|
428
|
+
'===': (string | {
|
429
|
+
var: string;
|
430
|
+
})[];
|
431
|
+
and?: undefined;
|
432
|
+
in?: undefined;
|
433
|
+
};
|
434
|
+
};
|
435
|
+
data?: undefined;
|
436
|
+
as?: undefined;
|
437
|
+
editor?: undefined;
|
482
438
|
description?: undefined;
|
439
|
+
defaultValue?: undefined;
|
483
440
|
reorder?: undefined;
|
484
441
|
components?: undefined;
|
485
442
|
dataSrc?: undefined;
|
@@ -492,6 +449,7 @@ declare const _default: ({
|
|
492
449
|
refreshOn?: undefined;
|
493
450
|
onSetItems?: undefined;
|
494
451
|
onChange?: undefined;
|
452
|
+
placeholder?: undefined;
|
495
453
|
validate?: undefined;
|
496
454
|
delimiter?: undefined;
|
497
455
|
requireDecimal?: undefined;
|
@@ -710,8 +668,8 @@ declare const _default: ({
|
|
710
668
|
};
|
711
669
|
data?: undefined;
|
712
670
|
as?: undefined;
|
713
|
-
defaultValue?: undefined;
|
714
671
|
description?: undefined;
|
672
|
+
defaultValue?: undefined;
|
715
673
|
reorder?: undefined;
|
716
674
|
components?: undefined;
|
717
675
|
dataSrc?: undefined;
|
@@ -759,8 +717,8 @@ declare const _default: ({
|
|
759
717
|
};
|
760
718
|
as?: undefined;
|
761
719
|
editor?: undefined;
|
762
|
-
defaultValue?: undefined;
|
763
720
|
description?: undefined;
|
721
|
+
defaultValue?: undefined;
|
764
722
|
reorder?: undefined;
|
765
723
|
components?: undefined;
|
766
724
|
authenticate?: undefined;
|
@@ -831,10 +789,10 @@ declare const _default: ({
|
|
831
789
|
defaultValue: boolean;
|
832
790
|
tooltip: string;
|
833
791
|
data?: undefined;
|
834
|
-
conditional?: undefined;
|
835
792
|
as?: undefined;
|
836
793
|
editor?: undefined;
|
837
794
|
description?: undefined;
|
795
|
+
conditional?: undefined;
|
838
796
|
reorder?: undefined;
|
839
797
|
components?: undefined;
|
840
798
|
dataSrc?: undefined;
|
@@ -927,10 +885,10 @@ declare const _default: ({
|
|
927
885
|
weight: number;
|
928
886
|
tooltip: string;
|
929
887
|
data?: undefined;
|
930
|
-
conditional?: undefined;
|
931
888
|
as?: undefined;
|
932
889
|
editor?: undefined;
|
933
890
|
description?: undefined;
|
891
|
+
conditional?: undefined;
|
934
892
|
reorder?: undefined;
|
935
893
|
components?: undefined;
|
936
894
|
dataSrc?: undefined;
|
@@ -973,8 +931,8 @@ declare const _default: ({
|
|
973
931
|
data?: undefined;
|
974
932
|
as?: undefined;
|
975
933
|
editor?: undefined;
|
976
|
-
defaultValue?: undefined;
|
977
934
|
description?: undefined;
|
935
|
+
defaultValue?: undefined;
|
978
936
|
reorder?: undefined;
|
979
937
|
components?: undefined;
|
980
938
|
dataSrc?: undefined;
|
@@ -1003,11 +961,11 @@ declare const _default: ({
|
|
1003
961
|
label: string;
|
1004
962
|
tooltip: string;
|
1005
963
|
data?: undefined;
|
1006
|
-
conditional?: undefined;
|
1007
964
|
as?: undefined;
|
1008
965
|
editor?: undefined;
|
1009
|
-
defaultValue?: undefined;
|
1010
966
|
description?: undefined;
|
967
|
+
conditional?: undefined;
|
968
|
+
defaultValue?: undefined;
|
1011
969
|
reorder?: undefined;
|
1012
970
|
components?: undefined;
|
1013
971
|
dataSrc?: undefined;
|
@@ -1040,8 +998,8 @@ declare const _default: ({
|
|
1040
998
|
tooltip: string;
|
1041
999
|
defaultValue: {};
|
1042
1000
|
data?: undefined;
|
1043
|
-
conditional?: undefined;
|
1044
1001
|
description?: undefined;
|
1002
|
+
conditional?: undefined;
|
1045
1003
|
reorder?: undefined;
|
1046
1004
|
components?: undefined;
|
1047
1005
|
dataSrc?: undefined;
|
@@ -1069,15 +1027,15 @@ declare const _default: ({
|
|
1069
1027
|
onChange(context: any): void;
|
1070
1028
|
data?: undefined;
|
1071
1029
|
type?: undefined;
|
1030
|
+
as?: undefined;
|
1031
|
+
editor?: undefined;
|
1072
1032
|
weight?: undefined;
|
1073
1033
|
input?: undefined;
|
1074
1034
|
label?: undefined;
|
1075
1035
|
tooltip?: undefined;
|
1036
|
+
description?: undefined;
|
1076
1037
|
conditional?: undefined;
|
1077
|
-
as?: undefined;
|
1078
|
-
editor?: undefined;
|
1079
1038
|
defaultValue?: undefined;
|
1080
|
-
description?: undefined;
|
1081
1039
|
reorder?: undefined;
|
1082
1040
|
components?: undefined;
|
1083
1041
|
dataSrc?: undefined;
|
@@ -1150,14 +1108,14 @@ declare const _default: ({
|
|
1150
1108
|
};
|
1151
1109
|
};
|
1152
1110
|
data?: undefined;
|
1111
|
+
as?: undefined;
|
1112
|
+
editor?: undefined;
|
1153
1113
|
weight?: undefined;
|
1154
1114
|
input?: undefined;
|
1155
1115
|
label?: undefined;
|
1156
1116
|
tooltip?: undefined;
|
1157
|
-
as?: undefined;
|
1158
|
-
editor?: undefined;
|
1159
|
-
defaultValue?: undefined;
|
1160
1117
|
description?: undefined;
|
1118
|
+
defaultValue?: undefined;
|
1161
1119
|
reorder?: undefined;
|
1162
1120
|
components?: undefined;
|
1163
1121
|
dataSrc?: undefined;
|
@@ -1184,15 +1142,15 @@ declare const _default: ({
|
|
1184
1142
|
onChange(context: any): void;
|
1185
1143
|
data?: undefined;
|
1186
1144
|
type?: undefined;
|
1145
|
+
as?: undefined;
|
1146
|
+
editor?: undefined;
|
1187
1147
|
weight?: undefined;
|
1188
1148
|
input?: undefined;
|
1189
1149
|
label?: undefined;
|
1190
1150
|
tooltip?: undefined;
|
1151
|
+
description?: undefined;
|
1191
1152
|
conditional?: undefined;
|
1192
|
-
as?: undefined;
|
1193
|
-
editor?: undefined;
|
1194
1153
|
defaultValue?: undefined;
|
1195
|
-
description?: undefined;
|
1196
1154
|
reorder?: undefined;
|
1197
1155
|
components?: undefined;
|
1198
1156
|
dataSrc?: undefined;
|