@formio/js 5.0.0-rc.20 → 5.0.0-rc.22
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/dist/formio.embed.css +1 -39
- package/dist/formio.embed.js +2 -90
- package/dist/formio.embed.min.js +1 -1
- package/dist/formio.embed.min.js.LICENSE.txt +1 -1
- package/dist/formio.form.js +58 -36
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +1 -1
- package/dist/formio.full.js +59 -37
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +1 -1
- package/dist/formio.js +2 -2
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -1
- package/dist/formio.utils.js +1 -1
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +1 -1
- package/lib/cjs/CDN.d.ts +1 -0
- package/lib/cjs/CDN.js +1 -0
- package/lib/cjs/Element.js +5 -0
- package/lib/cjs/Embed.d.ts +21 -1
- package/lib/cjs/Embed.js +211 -308
- package/lib/cjs/Form.d.ts +1 -1
- package/lib/cjs/Form.js +1 -1
- package/lib/cjs/Webform.d.ts +6 -6
- package/lib/cjs/Webform.js +6 -6
- package/lib/cjs/WebformBuilder.js +1 -1
- package/lib/cjs/components/_classes/component/Component.d.ts +16 -6
- package/lib/cjs/components/_classes/component/Component.js +26 -6
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -0
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +4 -0
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +4 -0
- package/lib/cjs/components/address/Address.js +5 -0
- package/lib/cjs/components/button/Button.d.ts +1 -0
- package/lib/cjs/components/button/Button.js +3 -0
- package/lib/cjs/components/checkbox/Checkbox.d.ts +28 -0
- package/lib/cjs/components/checkbox/Checkbox.js +17 -2
- package/lib/cjs/components/columns/Columns.d.ts +1 -0
- package/lib/cjs/components/columns/Columns.js +3 -0
- package/lib/cjs/components/container/Container.js +3 -0
- package/lib/cjs/components/content/Content.d.ts +1 -0
- package/lib/cjs/components/content/Content.js +3 -0
- package/lib/cjs/components/datamap/DataMap.d.ts +1 -0
- package/lib/cjs/components/datamap/DataMap.js +3 -0
- package/lib/cjs/components/datetime/DateTime.d.ts +19 -0
- package/lib/cjs/components/datetime/DateTime.js +9 -10
- package/lib/cjs/components/day/Day.d.ts +21 -0
- package/lib/cjs/components/day/Day.js +12 -10
- package/lib/cjs/components/day/fixtures/comp5.d.ts +29 -0
- package/lib/cjs/components/day/fixtures/comp5.js +32 -0
- package/lib/cjs/components/day/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/day/fixtures/index.js +3 -1
- package/lib/cjs/components/fieldset/Fieldset.d.ts +1 -0
- package/lib/cjs/components/fieldset/Fieldset.js +3 -0
- package/lib/cjs/components/file/File.d.ts +21 -1
- package/lib/cjs/components/file/File.js +15 -7
- package/lib/cjs/components/form/Form.d.ts +1 -0
- package/lib/cjs/components/form/Form.js +5 -1
- package/lib/cjs/components/html/HTML.d.ts +1 -0
- package/lib/cjs/components/html/HTML.js +3 -0
- package/lib/cjs/components/number/Number.d.ts +20 -1
- package/lib/cjs/components/number/Number.js +10 -15
- package/lib/cjs/components/panel/Panel.d.ts +1 -0
- package/lib/cjs/components/panel/Panel.js +3 -0
- package/lib/cjs/components/radio/Radio.d.ts +19 -0
- package/lib/cjs/components/radio/Radio.js +30 -0
- package/lib/cjs/components/recaptcha/ReCaptcha.d.ts +1 -0
- package/lib/cjs/components/recaptcha/ReCaptcha.js +3 -0
- package/lib/cjs/components/select/Select.d.ts +19 -1
- package/lib/cjs/components/select/Select.js +39 -4
- package/lib/cjs/components/select/fixtures/comp19.d.ts +23 -0
- package/lib/cjs/components/select/fixtures/comp19.js +36 -0
- package/lib/cjs/components/select/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/select/fixtures/index.js +3 -1
- package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +26 -1
- package/lib/cjs/components/selectboxes/SelectBoxes.js +8 -1
- package/lib/cjs/components/signature/Signature.d.ts +21 -0
- package/lib/cjs/components/signature/Signature.js +9 -1
- package/lib/cjs/components/survey/Survey.d.ts +21 -0
- package/lib/cjs/components/survey/Survey.js +7 -1
- package/lib/cjs/components/table/Table.d.ts +1 -0
- package/lib/cjs/components/table/Table.js +3 -0
- package/lib/cjs/components/tabs/Tabs.d.ts +1 -0
- package/lib/cjs/components/tabs/Tabs.js +3 -0
- package/lib/cjs/components/tags/Tags.d.ts +21 -0
- package/lib/cjs/components/tags/Tags.js +11 -1
- package/lib/cjs/components/tags/fixtures/comp6.d.ts +17 -0
- package/lib/cjs/components/tags/fixtures/comp6.js +20 -0
- package/lib/cjs/components/tags/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/tags/fixtures/index.js +3 -1
- package/lib/cjs/components/textfield/TextField.d.ts +21 -0
- package/lib/cjs/components/textfield/TextField.js +7 -1
- package/lib/cjs/components/time/Time.d.ts +8 -1
- package/lib/cjs/components/well/Well.d.ts +1 -0
- package/lib/cjs/components/well/Well.js +3 -0
- package/lib/cjs/formio.embed.d.ts +2 -1
- package/lib/cjs/formio.embed.js +96 -1
- package/lib/cjs/formio.form.d.ts +4 -3
- package/lib/cjs/formio.form.js +17 -8
- package/lib/cjs/licenses/Licenses.d.ts +7 -0
- package/lib/cjs/licenses/Licenses.js +22 -0
- package/lib/cjs/licenses/index.d.ts +2 -0
- package/lib/cjs/licenses/index.js +7 -0
- package/lib/cjs/utils/utils.d.ts +10 -0
- package/lib/cjs/utils/utils.js +21 -1
- package/lib/mjs/CDN.d.ts +1 -0
- package/lib/mjs/CDN.js +1 -0
- package/lib/mjs/Element.js +5 -0
- package/lib/mjs/Embed.d.ts +21 -1
- package/lib/mjs/Embed.js +208 -322
- package/lib/mjs/Form.d.ts +1 -1
- package/lib/mjs/Form.js +1 -1
- package/lib/mjs/Webform.d.ts +6 -6
- package/lib/mjs/Webform.js +6 -6
- package/lib/mjs/WebformBuilder.js +1 -1
- package/lib/mjs/components/_classes/component/Component.d.ts +16 -6
- package/lib/mjs/components/_classes/component/Component.js +26 -6
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -0
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +4 -0
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +4 -0
- package/lib/mjs/components/address/Address.js +5 -0
- package/lib/mjs/components/button/Button.d.ts +1 -0
- package/lib/mjs/components/button/Button.js +4 -1
- package/lib/mjs/components/checkbox/Checkbox.d.ts +28 -0
- package/lib/mjs/components/checkbox/Checkbox.js +18 -3
- package/lib/mjs/components/columns/Columns.d.ts +1 -0
- package/lib/mjs/components/columns/Columns.js +3 -0
- package/lib/mjs/components/container/Container.js +4 -1
- package/lib/mjs/components/content/Content.d.ts +1 -0
- package/lib/mjs/components/content/Content.js +3 -0
- package/lib/mjs/components/datamap/DataMap.d.ts +1 -0
- package/lib/mjs/components/datamap/DataMap.js +4 -1
- package/lib/mjs/components/datetime/DateTime.d.ts +19 -0
- package/lib/mjs/components/datetime/DateTime.js +11 -12
- package/lib/mjs/components/day/Day.d.ts +21 -0
- package/lib/mjs/components/day/Day.js +16 -14
- package/lib/mjs/components/day/fixtures/comp5.d.ts +29 -0
- package/lib/mjs/components/day/fixtures/comp5.js +30 -0
- package/lib/mjs/components/day/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/day/fixtures/index.js +2 -1
- package/lib/mjs/components/fieldset/Fieldset.d.ts +1 -0
- package/lib/mjs/components/fieldset/Fieldset.js +3 -0
- package/lib/mjs/components/file/File.d.ts +21 -1
- package/lib/mjs/components/file/File.js +16 -8
- package/lib/mjs/components/form/Form.d.ts +1 -0
- package/lib/mjs/components/form/Form.js +6 -2
- package/lib/mjs/components/html/HTML.d.ts +1 -0
- package/lib/mjs/components/html/HTML.js +3 -0
- package/lib/mjs/components/number/Number.d.ts +20 -1
- package/lib/mjs/components/number/Number.js +11 -12
- package/lib/mjs/components/panel/Panel.d.ts +1 -0
- package/lib/mjs/components/panel/Panel.js +3 -0
- package/lib/mjs/components/radio/Radio.d.ts +19 -0
- package/lib/mjs/components/radio/Radio.js +34 -1
- package/lib/mjs/components/recaptcha/ReCaptcha.d.ts +1 -0
- package/lib/mjs/components/recaptcha/ReCaptcha.js +3 -0
- package/lib/mjs/components/select/Select.d.ts +19 -1
- package/lib/mjs/components/select/Select.js +41 -6
- package/lib/mjs/components/select/fixtures/comp19.d.ts +23 -0
- package/lib/mjs/components/select/fixtures/comp19.js +34 -0
- package/lib/mjs/components/select/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/select/fixtures/index.js +2 -1
- package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +26 -1
- package/lib/mjs/components/selectboxes/SelectBoxes.js +8 -1
- package/lib/mjs/components/signature/Signature.d.ts +21 -0
- package/lib/mjs/components/signature/Signature.js +9 -1
- package/lib/mjs/components/survey/Survey.d.ts +21 -0
- package/lib/mjs/components/survey/Survey.js +8 -2
- package/lib/mjs/components/table/Table.d.ts +1 -0
- package/lib/mjs/components/table/Table.js +3 -0
- package/lib/mjs/components/tabs/Tabs.d.ts +1 -0
- package/lib/mjs/components/tabs/Tabs.js +3 -0
- package/lib/mjs/components/tags/Tags.d.ts +21 -0
- package/lib/mjs/components/tags/Tags.js +12 -2
- package/lib/mjs/components/tags/fixtures/comp6.d.ts +17 -0
- package/lib/mjs/components/tags/fixtures/comp6.js +18 -0
- package/lib/mjs/components/tags/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/tags/fixtures/index.js +2 -1
- package/lib/mjs/components/textfield/TextField.d.ts +21 -0
- package/lib/mjs/components/textfield/TextField.js +8 -2
- package/lib/mjs/components/time/Time.d.ts +8 -1
- package/lib/mjs/components/well/Well.d.ts +1 -0
- package/lib/mjs/components/well/Well.js +3 -0
- package/lib/mjs/formio.embed.d.ts +2 -1
- package/lib/mjs/formio.embed.js +96 -2
- package/lib/mjs/formio.form.d.ts +4 -3
- package/lib/mjs/formio.form.js +16 -8
- package/lib/mjs/licenses/Licenses.d.ts +7 -0
- package/lib/mjs/licenses/Licenses.js +17 -0
- package/lib/mjs/licenses/index.d.ts +2 -0
- package/lib/mjs/licenses/index.js +2 -0
- package/lib/mjs/utils/utils.d.ts +10 -0
- package/lib/mjs/utils/utils.js +19 -0
- package/package.json +5 -1
- package/types/index.d.ts +1 -0
- package/types/licenses.d.ts +7 -0
- package/types/utils.d.ts +2 -0
@@ -7,6 +7,27 @@ export default class FileComponent extends Field {
|
|
7
7
|
weight: number;
|
8
8
|
schema: any;
|
9
9
|
};
|
10
|
+
static get serverConditionSettings(): {
|
11
|
+
operators: string[];
|
12
|
+
constructor: Function;
|
13
|
+
toString(): string;
|
14
|
+
toLocaleString(): string;
|
15
|
+
valueOf(): Object;
|
16
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
17
|
+
isPrototypeOf(v: Object): boolean;
|
18
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
19
|
+
};
|
20
|
+
static get conditionOperatorsSettings(): {
|
21
|
+
operators: string[];
|
22
|
+
constructor: Function;
|
23
|
+
toString(): string;
|
24
|
+
toLocaleString(): string;
|
25
|
+
valueOf(): Object;
|
26
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
27
|
+
isPrototypeOf(v: Object): boolean;
|
28
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
29
|
+
};
|
30
|
+
static savedValueTypes(schema: any): string[];
|
10
31
|
support: {
|
11
32
|
filereader: boolean;
|
12
33
|
formdata: boolean;
|
@@ -54,7 +75,6 @@ export default class FileComponent extends Field {
|
|
54
75
|
validateMaxSize(file: any, val: any): boolean;
|
55
76
|
upload(files: any): void;
|
56
77
|
filesUploading: any[] | undefined;
|
57
|
-
abortUpload: any;
|
58
78
|
getFile(fileInfo: any): any;
|
59
79
|
focus(): void;
|
60
80
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import Field from '../_classes/field/Field';
|
2
|
-
import { uniqueName } from '../../utils/utils';
|
2
|
+
import { componentValueTypes, getComponentSavedTypes, uniqueName } from '../../utils/utils';
|
3
3
|
import download from 'downloadjs';
|
4
4
|
import _ from 'lodash';
|
5
5
|
import fileProcessor from '../../providers/processor/fileProcessor';
|
@@ -54,11 +54,18 @@ export default class FileComponent extends Field {
|
|
54
54
|
};
|
55
55
|
}
|
56
56
|
static get serverConditionSettings() {
|
57
|
+
return FileComponent.conditionOperatorsSettings;
|
58
|
+
}
|
59
|
+
static get conditionOperatorsSettings() {
|
57
60
|
return {
|
58
|
-
...super.
|
61
|
+
...super.conditionOperatorsSettings,
|
59
62
|
operators: ['isEmpty', 'isNotEmpty'],
|
60
63
|
};
|
61
64
|
}
|
65
|
+
static savedValueTypes(schema) {
|
66
|
+
schema = schema || {};
|
67
|
+
return getComponentSavedTypes(schema) || [componentValueTypes.object];
|
68
|
+
}
|
62
69
|
init() {
|
63
70
|
super.init();
|
64
71
|
webViewCamera = navigator.camera || Camera;
|
@@ -353,8 +360,10 @@ export default class FileComponent extends Field {
|
|
353
360
|
this.refs.fileStatusRemove.forEach((fileStatusRemove, index) => {
|
354
361
|
this.addEventListener(fileStatusRemove, 'click', (event) => {
|
355
362
|
event.preventDefault();
|
356
|
-
|
357
|
-
|
363
|
+
const fileUpload = this.statuses[index];
|
364
|
+
_.pull(this.filesUploading, fileUpload.originalName);
|
365
|
+
if (fileUpload.abort) {
|
366
|
+
fileUpload.abort();
|
358
367
|
}
|
359
368
|
this.statuses.splice(index, 1);
|
360
369
|
this.redraw();
|
@@ -560,6 +569,7 @@ export default class FileComponent extends Field {
|
|
560
569
|
const fileName = uniqueName(file.name, this.component.fileNameTemplate, this.evalContext());
|
561
570
|
const escapedFileName = file.name ? file.name.replaceAll('<', '<').replaceAll('>', '>') : file.name;
|
562
571
|
const fileUpload = {
|
572
|
+
abort: () => null,
|
563
573
|
originalName: escapedFileName,
|
564
574
|
name: fileName,
|
565
575
|
size: file.size,
|
@@ -678,7 +688,7 @@ export default class FileComponent extends Field {
|
|
678
688
|
}
|
679
689
|
}
|
680
690
|
}
|
681
|
-
fileUpload.message = this.t('Starting upload
|
691
|
+
fileUpload.message = this.t('Starting upload...');
|
682
692
|
this.redraw();
|
683
693
|
const filePromise = fileService.uploadFile(storage, processedFile || file, fileName, dir,
|
684
694
|
// Progress callback
|
@@ -691,9 +701,7 @@ export default class FileComponent extends Field {
|
|
691
701
|
// Upload start callback
|
692
702
|
() => {
|
693
703
|
this.emit('fileUploadingStart', filePromise);
|
694
|
-
},
|
695
|
-
// Abort upload callback
|
696
|
-
(abort) => this.abortUpload = abort).then((fileInfo) => {
|
704
|
+
}, (abort) => fileUpload.abort = abort).then((fileInfo) => {
|
697
705
|
const index = this.statuses.indexOf(fileUpload);
|
698
706
|
if (index !== -1) {
|
699
707
|
this.statuses.splice(index, 1);
|
@@ -2,7 +2,7 @@ import _ from 'lodash';
|
|
2
2
|
import Component from '../_classes/component/Component';
|
3
3
|
import ComponentModal from '../_classes/componentModal/ComponentModal';
|
4
4
|
import EventEmitter from 'eventemitter3';
|
5
|
-
import { isMongoId, eachComponent, getStringFromComponentPath, getArrayFromComponentPath } from '../../utils/utils';
|
5
|
+
import { isMongoId, eachComponent, getStringFromComponentPath, getArrayFromComponentPath, componentValueTypes } from '../../utils/utils';
|
6
6
|
import { Formio } from '../../Formio';
|
7
7
|
import Form from '../../Form';
|
8
8
|
export default class FormComponent extends Component {
|
@@ -28,6 +28,9 @@ export default class FormComponent extends Component {
|
|
28
28
|
schema: FormComponent.schema()
|
29
29
|
};
|
30
30
|
}
|
31
|
+
static savedValueTypes() {
|
32
|
+
return [componentValueTypes.object];
|
33
|
+
}
|
31
34
|
init() {
|
32
35
|
super.init();
|
33
36
|
this.formObj = {
|
@@ -382,7 +385,8 @@ export default class FormComponent extends Component {
|
|
382
385
|
if (this.builderMode || this.isHidden() || (this.isSubFormLazyLoad() && !fromAttach)) {
|
383
386
|
return Promise.resolve();
|
384
387
|
}
|
385
|
-
if (this.hasLoadedForm && !this.isRevisionChanged
|
388
|
+
if (this.hasLoadedForm && !this.isRevisionChanged &&
|
389
|
+
!(this.options.pdf && this.useOriginalRevision && _.isNull(this.subForm) && !this.subFormLoading)) {
|
386
390
|
// Pass config down to sub forms.
|
387
391
|
if (this.root && this.root.form && this.root.form.config && !this.formObj.config) {
|
388
392
|
this.formObj.config = this.root.form.config;
|
@@ -8,9 +8,28 @@ export default class NumberComponent extends Input {
|
|
8
8
|
schema: any;
|
9
9
|
};
|
10
10
|
static get serverConditionSettings(): {
|
11
|
-
operators:
|
11
|
+
operators: any[];
|
12
12
|
valueComponent(classComp: any): any;
|
13
|
+
constructor: Function;
|
14
|
+
toString(): string;
|
15
|
+
toLocaleString(): string;
|
16
|
+
valueOf(): Object;
|
17
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
18
|
+
isPrototypeOf(v: Object): boolean;
|
19
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
13
20
|
};
|
21
|
+
static get conditionOperatorsSettings(): {
|
22
|
+
operators: any[];
|
23
|
+
valueComponent(classComp: any): any;
|
24
|
+
constructor: Function;
|
25
|
+
toString(): string;
|
26
|
+
toLocaleString(): string;
|
27
|
+
valueOf(): Object;
|
28
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
29
|
+
isPrototypeOf(v: Object): boolean;
|
30
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
31
|
+
};
|
32
|
+
static savedValueTypes(schema: any): string[];
|
14
33
|
constructor(...args: any[]);
|
15
34
|
validators: string[];
|
16
35
|
delimiter: any;
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { createNumberMask } from '@formio/text-mask-addons';
|
2
2
|
import { conformToMask, maskInput } from '@formio/vanilla-text-mask';
|
3
3
|
import _ from 'lodash';
|
4
|
-
import { getNumberDecimalLimit, getNumberSeparators } from '../../utils/utils';
|
5
4
|
import Input from '../_classes/input/Input';
|
5
|
+
import { getNumberSeparators, getNumberDecimalLimit, componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
|
6
6
|
export default class NumberComponent extends Input {
|
7
7
|
static schema(...extend) {
|
8
8
|
return Input.schema({
|
@@ -28,22 +28,21 @@ export default class NumberComponent extends Input {
|
|
28
28
|
};
|
29
29
|
}
|
30
30
|
static get serverConditionSettings() {
|
31
|
+
return NumberComponent.conditionOperatorsSettings;
|
32
|
+
}
|
33
|
+
static get conditionOperatorsSettings() {
|
31
34
|
return {
|
32
|
-
|
33
|
-
|
34
|
-
'isNotEqual',
|
35
|
-
'isEmpty',
|
36
|
-
'isNotEmpty',
|
37
|
-
'greaterThan',
|
38
|
-
'greaterThanOrEqual',
|
39
|
-
'lessThan',
|
40
|
-
'lessThanOrEqual',
|
41
|
-
],
|
35
|
+
...super.conditionOperatorsSettings,
|
36
|
+
operators: [...super.conditionOperatorsSettings.operators, 'lessThan', 'greaterThan', 'lessThanOrEqual', 'greaterThanOrEqual'],
|
42
37
|
valueComponent(classComp) {
|
43
38
|
return { ...classComp, type: 'number' };
|
44
|
-
}
|
39
|
+
}
|
45
40
|
};
|
46
41
|
}
|
42
|
+
static savedValueTypes(schema) {
|
43
|
+
schema = schema || {};
|
44
|
+
return getComponentSavedTypes(schema) || [componentValueTypes.number];
|
45
|
+
}
|
47
46
|
constructor(...args) {
|
48
47
|
super(...args);
|
49
48
|
this.validators = this.validators.concat(['min', 'max']);
|
@@ -7,6 +7,25 @@ export default class RadioComponent extends ListComponent {
|
|
7
7
|
documentation: string;
|
8
8
|
schema: any;
|
9
9
|
};
|
10
|
+
static get conditionOperatorsSettings(): {
|
11
|
+
valueComponent(classComp: any): {
|
12
|
+
type: string;
|
13
|
+
dataSrc: string;
|
14
|
+
valueProperty: string;
|
15
|
+
dataType: any;
|
16
|
+
data: {
|
17
|
+
custom(): any;
|
18
|
+
};
|
19
|
+
};
|
20
|
+
constructor: Function;
|
21
|
+
toString(): string;
|
22
|
+
toLocaleString(): string;
|
23
|
+
valueOf(): Object;
|
24
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
25
|
+
isPrototypeOf(v: Object): boolean;
|
26
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
27
|
+
};
|
28
|
+
static savedValueTypes(schema: any): any[];
|
10
29
|
constructor(component: any, options: any, data: any);
|
11
30
|
previousValue: any;
|
12
31
|
get inputInfo(): {
|
@@ -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 } from '../../utils/utils';
|
4
|
+
import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
|
5
5
|
export default class RadioComponent extends ListComponent {
|
6
6
|
static schema(...extend) {
|
7
7
|
return ListComponent.schema({
|
@@ -26,6 +26,39 @@ export default class RadioComponent extends ListComponent {
|
|
26
26
|
schema: RadioComponent.schema()
|
27
27
|
};
|
28
28
|
}
|
29
|
+
static get conditionOperatorsSettings() {
|
30
|
+
return {
|
31
|
+
...super.conditionOperatorsSettings,
|
32
|
+
valueComponent(classComp) {
|
33
|
+
return {
|
34
|
+
type: 'select',
|
35
|
+
dataSrc: 'custom',
|
36
|
+
valueProperty: 'value',
|
37
|
+
dataType: classComp.dataType || '',
|
38
|
+
data: {
|
39
|
+
custom() {
|
40
|
+
return classComp.values;
|
41
|
+
}
|
42
|
+
},
|
43
|
+
};
|
44
|
+
}
|
45
|
+
};
|
46
|
+
}
|
47
|
+
static savedValueTypes(schema) {
|
48
|
+
const { boolean, string, number, object, array } = componentValueTypes;
|
49
|
+
const { dataType } = schema;
|
50
|
+
const types = getComponentSavedTypes(schema);
|
51
|
+
if (types) {
|
52
|
+
return types;
|
53
|
+
}
|
54
|
+
if (dataType === 'object') {
|
55
|
+
return [object, array];
|
56
|
+
}
|
57
|
+
if (componentValueTypes[dataType]) {
|
58
|
+
return [componentValueTypes[dataType]];
|
59
|
+
}
|
60
|
+
return [boolean, string, number, object, array];
|
61
|
+
}
|
29
62
|
constructor(component, options, data) {
|
30
63
|
super(component, options, data);
|
31
64
|
this.previousValue = this.dataValue || null;
|
@@ -9,8 +9,25 @@ export default class SelectComponent extends ListComponent {
|
|
9
9
|
};
|
10
10
|
static get serverConditionSettings(): {
|
11
11
|
valueComponent(classComp: any): any;
|
12
|
-
|
12
|
+
constructor: Function;
|
13
|
+
toString(): string;
|
14
|
+
toLocaleString(): string;
|
15
|
+
valueOf(): Object;
|
16
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
17
|
+
isPrototypeOf(v: Object): boolean;
|
18
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
13
19
|
};
|
20
|
+
static get conditionOperatorsSettings(): {
|
21
|
+
valueComponent(classComp: any): any;
|
22
|
+
constructor: Function;
|
23
|
+
toString(): string;
|
24
|
+
toLocaleString(): string;
|
25
|
+
valueOf(): Object;
|
26
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
27
|
+
isPrototypeOf(v: Object): boolean;
|
28
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
29
|
+
};
|
30
|
+
static savedValueTypes(schema: any): any[];
|
14
31
|
templateData: {} | undefined;
|
15
32
|
triggerUpdate: ((...args: any[]) => any) | undefined;
|
16
33
|
set itemsLoaded(arg: any);
|
@@ -40,6 +57,7 @@ export default class SelectComponent extends ListComponent {
|
|
40
57
|
get isSelectResource(): boolean;
|
41
58
|
get itemsFromUrl(): boolean;
|
42
59
|
get isInfiniteScrollProvided(): boolean;
|
60
|
+
get shouldInitialLoad(): any;
|
43
61
|
isEntireObjectDisplay(): boolean;
|
44
62
|
selectValueAndLabel(data: any): {
|
45
63
|
value: any;
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import _ from 'lodash';
|
2
2
|
import { Formio } from '../../Formio';
|
3
3
|
import ListComponent from '../_classes/list/ListComponent';
|
4
|
+
import Input from '../_classes/input/Input';
|
4
5
|
import Form from '../../Form';
|
5
|
-
import { getRandomComponentId, boolValue, isPromise } from '../../utils/utils';
|
6
|
+
import { getRandomComponentId, boolValue, isPromise, componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
|
6
7
|
import Choices from '../../utils/ChoicesWrapper';
|
7
8
|
export default class SelectComponent extends ListComponent {
|
8
9
|
static schema(...extend) {
|
@@ -54,13 +55,34 @@ export default class SelectComponent extends ListComponent {
|
|
54
55
|
};
|
55
56
|
}
|
56
57
|
static get serverConditionSettings() {
|
58
|
+
return SelectComponent.conditionOperatorsSettings;
|
59
|
+
}
|
60
|
+
static get conditionOperatorsSettings() {
|
57
61
|
return {
|
58
|
-
...super.
|
62
|
+
...super.conditionOperatorsSettings,
|
59
63
|
valueComponent(classComp) {
|
60
64
|
return { ...classComp, type: 'select' };
|
61
|
-
}
|
65
|
+
}
|
62
66
|
};
|
63
67
|
}
|
68
|
+
static savedValueTypes(schema) {
|
69
|
+
const { boolean, string, number, object, array } = componentValueTypes;
|
70
|
+
const { dataType, reference } = schema;
|
71
|
+
const types = getComponentSavedTypes(schema);
|
72
|
+
if (types) {
|
73
|
+
return types;
|
74
|
+
}
|
75
|
+
if (reference) {
|
76
|
+
return [object];
|
77
|
+
}
|
78
|
+
if (dataType === 'object') {
|
79
|
+
return [object, array];
|
80
|
+
}
|
81
|
+
if (componentValueTypes[dataType]) {
|
82
|
+
return [componentValueTypes[dataType]];
|
83
|
+
}
|
84
|
+
return [boolean, string, number, object, array];
|
85
|
+
}
|
64
86
|
init() {
|
65
87
|
super.init();
|
66
88
|
this.templateData = {};
|
@@ -172,6 +194,15 @@ export default class SelectComponent extends ListComponent {
|
|
172
194
|
get shouldDisabled() {
|
173
195
|
return super.shouldDisabled || this.parentDisabled;
|
174
196
|
}
|
197
|
+
get shouldInitialLoad() {
|
198
|
+
if (this.component.widget === 'html5' &&
|
199
|
+
this.isEntireObjectDisplay() &&
|
200
|
+
this.component.searchField &&
|
201
|
+
this.dataValue) {
|
202
|
+
return false;
|
203
|
+
}
|
204
|
+
return super.shouldLoad;
|
205
|
+
}
|
175
206
|
isEntireObjectDisplay() {
|
176
207
|
return this.component.dataSrc === 'resource' && this.valueProperty === 'data';
|
177
208
|
}
|
@@ -482,7 +513,11 @@ export default class SelectComponent extends ListComponent {
|
|
482
513
|
});
|
483
514
|
// Add search capability.
|
484
515
|
if (this.component.searchField && search) {
|
485
|
-
const searchValue = Array.isArray(search)
|
516
|
+
const searchValue = Array.isArray(search)
|
517
|
+
? search.join(',')
|
518
|
+
: typeof search === 'object'
|
519
|
+
? JSON.stringify(search)
|
520
|
+
: search;
|
486
521
|
query[this.component.searchField] = this.component.searchField.endsWith('__regex')
|
487
522
|
? _.escapeRegExp(searchValue)
|
488
523
|
: searchValue;
|
@@ -803,7 +838,7 @@ export default class SelectComponent extends ListComponent {
|
|
803
838
|
this.choices.containerOuter.element.setAttribute('tabIndex', '-1');
|
804
839
|
this.addEventListener(this.choices.containerOuter.element, 'focus', () => this.focusableElement.focus());
|
805
840
|
}
|
806
|
-
|
841
|
+
Input.prototype.addFocusBlurEvents.call(this, this.focusableElement);
|
807
842
|
if (this.itemsFromUrl && !this.component.noRefreshOnScroll) {
|
808
843
|
this.scrollList = this.choices.choiceList.element;
|
809
844
|
this.addEventListener(this.scrollList, 'scroll', () => this.onScroll());
|
@@ -1195,7 +1230,7 @@ export default class SelectComponent extends ListComponent {
|
|
1195
1230
|
!this.active &&
|
1196
1231
|
!this.selectOptions.length &&
|
1197
1232
|
hasValue &&
|
1198
|
-
this.
|
1233
|
+
this.shouldInitialLoad &&
|
1199
1234
|
this.visible && (this.component.searchField || this.component.valueProperty);
|
1200
1235
|
}
|
1201
1236
|
setChoicesValue(value, hasPreviousValue, flags = {}) {
|
@@ -0,0 +1,23 @@
|
|
1
|
+
declare namespace _default {
|
2
|
+
const type: string;
|
3
|
+
const display: string;
|
4
|
+
const components: {
|
5
|
+
label: string;
|
6
|
+
widget: string;
|
7
|
+
tableView: boolean;
|
8
|
+
data: {
|
9
|
+
values: {
|
10
|
+
label: string;
|
11
|
+
value: string;
|
12
|
+
}[];
|
13
|
+
};
|
14
|
+
validateOn: string;
|
15
|
+
validate: {
|
16
|
+
custom: string;
|
17
|
+
};
|
18
|
+
key: string;
|
19
|
+
type: string;
|
20
|
+
input: boolean;
|
21
|
+
}[];
|
22
|
+
}
|
23
|
+
export default _default;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
export default {
|
2
|
+
type: 'form',
|
3
|
+
display: 'form',
|
4
|
+
components: [
|
5
|
+
{
|
6
|
+
label: 'Select',
|
7
|
+
widget: 'choicesjs',
|
8
|
+
tableView: true,
|
9
|
+
data: {
|
10
|
+
values: [
|
11
|
+
{
|
12
|
+
label: 'Banana',
|
13
|
+
value: 'banana'
|
14
|
+
},
|
15
|
+
{
|
16
|
+
label: 'Apple',
|
17
|
+
value: 'apple'
|
18
|
+
},
|
19
|
+
{
|
20
|
+
label: 'Pineapple',
|
21
|
+
value: 'pineapple'
|
22
|
+
}
|
23
|
+
]
|
24
|
+
},
|
25
|
+
validateOn: 'blur',
|
26
|
+
validate: {
|
27
|
+
custom: "valid = data.select == 'apple' ? true : 'You must select an apple';"
|
28
|
+
},
|
29
|
+
key: 'select',
|
30
|
+
type: 'select',
|
31
|
+
input: true
|
32
|
+
},
|
33
|
+
]
|
34
|
+
};
|
@@ -15,5 +15,6 @@ import comp15 from './comp15';
|
|
15
15
|
import comp16 from './comp16';
|
16
16
|
import comp17 from './comp17';
|
17
17
|
import comp18 from './comp18';
|
18
|
-
|
18
|
+
import comp19 from './comp19';
|
19
|
+
export { comp1, comp2, comp4, comp5, comp6, comp7, comp8, comp9, comp10, comp11, comp12, comp13, comp14, comp15, comp16, comp17, comp18, comp19 };
|
19
20
|
export { multiSelect, multiSelectOptions } from "./comp3";
|
@@ -16,4 +16,5 @@ import comp15 from './comp15';
|
|
16
16
|
import comp16 from './comp16';
|
17
17
|
import comp17 from './comp17';
|
18
18
|
import comp18 from './comp18';
|
19
|
-
|
19
|
+
import comp19 from './comp19';
|
20
|
+
export { comp1, comp2, comp4, comp5, comp6, comp7, comp8, comp9, comp10, comp11, comp12, comp13, comp14, comp15, comp16, comp17, comp18, comp19 };
|
@@ -9,8 +9,33 @@ export default class SelectBoxesComponent extends RadioComponent {
|
|
9
9
|
custom: string;
|
10
10
|
};
|
11
11
|
};
|
12
|
-
|
12
|
+
constructor: Function;
|
13
|
+
toString(): string;
|
14
|
+
toLocaleString(): string;
|
15
|
+
valueOf(): Object;
|
16
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
17
|
+
isPrototypeOf(v: Object): boolean;
|
18
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
13
19
|
};
|
20
|
+
static get conditionOperatorsSettings(): {
|
21
|
+
valueComponent(classComp: any): {
|
22
|
+
type: string;
|
23
|
+
dataSrc: string;
|
24
|
+
valueProperty: string;
|
25
|
+
valueType: string;
|
26
|
+
data: {
|
27
|
+
custom: string;
|
28
|
+
};
|
29
|
+
};
|
30
|
+
constructor: Function;
|
31
|
+
toString(): string;
|
32
|
+
toLocaleString(): string;
|
33
|
+
valueOf(): Object;
|
34
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
35
|
+
isPrototypeOf(v: Object): boolean;
|
36
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
37
|
+
};
|
38
|
+
static savedValueTypes(schema: any): string[];
|
14
39
|
constructor(...args: any[]);
|
15
40
|
validators: string[];
|
16
41
|
get emptyValue(): any;
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import _ from 'lodash';
|
2
|
+
import { componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
|
2
3
|
import RadioComponent from '../radio/Radio';
|
3
4
|
export default class SelectBoxesComponent extends RadioComponent {
|
4
5
|
static schema(...extend) {
|
@@ -20,8 +21,11 @@ export default class SelectBoxesComponent extends RadioComponent {
|
|
20
21
|
};
|
21
22
|
}
|
22
23
|
static get serverConditionSettings() {
|
24
|
+
return SelectBoxesComponent.conditionOperatorsSettings;
|
25
|
+
}
|
26
|
+
static get conditionOperatorsSettings() {
|
23
27
|
return {
|
24
|
-
...super.
|
28
|
+
...super.conditionOperatorsSettings,
|
25
29
|
valueComponent(classComp) {
|
26
30
|
return {
|
27
31
|
type: 'select',
|
@@ -35,6 +39,9 @@ export default class SelectBoxesComponent extends RadioComponent {
|
|
35
39
|
}
|
36
40
|
};
|
37
41
|
}
|
42
|
+
static savedValueTypes(schema) {
|
43
|
+
return getComponentSavedTypes(schema) || [componentValueTypes.object];
|
44
|
+
}
|
38
45
|
constructor(...args) {
|
39
46
|
super(...args);
|
40
47
|
this.validators = this.validators.concat('minSelectedCount', 'maxSelectedCount', 'availableValueProperty');
|
@@ -7,6 +7,27 @@ export default class SignatureComponent extends Input {
|
|
7
7
|
documentation: string;
|
8
8
|
schema: any;
|
9
9
|
};
|
10
|
+
static get serverConditionSettings(): {
|
11
|
+
operators: string[];
|
12
|
+
constructor: Function;
|
13
|
+
toString(): string;
|
14
|
+
toLocaleString(): string;
|
15
|
+
valueOf(): Object;
|
16
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
17
|
+
isPrototypeOf(v: Object): boolean;
|
18
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
19
|
+
};
|
20
|
+
static get conditionOperatorsSettings(): {
|
21
|
+
operators: string[];
|
22
|
+
constructor: Function;
|
23
|
+
toString(): string;
|
24
|
+
toLocaleString(): string;
|
25
|
+
valueOf(): Object;
|
26
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
27
|
+
isPrototypeOf(v: Object): boolean;
|
28
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
29
|
+
};
|
30
|
+
static savedValueTypes(schema: any): string[];
|
10
31
|
currentWidth: any;
|
11
32
|
scale: any;
|
12
33
|
ratio: number | undefined;
|