@formio/js 5.0.0-dev.5720.5431de8 → 5.0.0-dev.5720.e861c22
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 +6 -0
- package/dist/formio.form.js +9 -9
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.full.js +10 -10
- package/dist/formio.full.min.js +1 -1
- package/lib/cjs/Form.js +0 -2
- package/lib/cjs/Webform.js +1 -1
- package/lib/cjs/WebformBuilder.js +11 -2
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.js +4 -1
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +2 -0
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +50 -29
- package/lib/cjs/components/currency/Currency.d.ts +1 -0
- package/lib/cjs/components/editgrid/fixtures/comp17.d.ts +80 -0
- package/lib/cjs/components/editgrid/fixtures/comp17.js +99 -0
- package/lib/cjs/components/editgrid/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/editgrid/fixtures/index.js +3 -1
- package/lib/cjs/components/number/Number.d.ts +7 -1
- package/lib/cjs/components/number/Number.js +11 -0
- package/lib/cjs/components/number/fixtures/comp10.d.ts +18 -0
- package/lib/cjs/components/number/fixtures/comp10.js +21 -0
- package/lib/cjs/components/number/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/number/fixtures/index.js +3 -1
- package/lib/cjs/components/panel/Panel.d.ts +1 -0
- package/lib/cjs/components/panel/Panel.js +1 -0
- package/lib/cjs/components/radio/Radio.js +17 -6
- package/lib/cjs/components/radio/fixtures/comp12.d.ts +29 -0
- package/lib/cjs/components/radio/fixtures/comp12.js +36 -0
- package/lib/cjs/components/radio/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/radio/fixtures/index.js +3 -1
- package/lib/cjs/components/select/Select.js +1 -1
- package/lib/cjs/components/time/Time.d.ts +2 -2
- package/lib/cjs/components/time/Time.js +3 -2
- package/lib/cjs/components/time/fixtures/comp4.d.ts +166 -0
- package/lib/cjs/components/time/fixtures/comp4.js +171 -0
- package/lib/cjs/components/time/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/time/fixtures/index.js +3 -1
- package/lib/mjs/Form.js +0 -2
- package/lib/mjs/Webform.js +1 -1
- package/lib/mjs/WebformBuilder.js +10 -2
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.js +4 -1
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +2 -0
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +51 -29
- package/lib/mjs/components/currency/Currency.d.ts +1 -0
- package/lib/mjs/components/editgrid/fixtures/comp17.d.ts +80 -0
- package/lib/mjs/components/editgrid/fixtures/comp17.js +97 -0
- package/lib/mjs/components/editgrid/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/editgrid/fixtures/index.js +2 -1
- package/lib/mjs/components/number/Number.d.ts +7 -1
- package/lib/mjs/components/number/Number.js +11 -0
- package/lib/mjs/components/number/fixtures/comp10.d.ts +18 -0
- package/lib/mjs/components/number/fixtures/comp10.js +19 -0
- package/lib/mjs/components/number/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/number/fixtures/index.js +2 -1
- package/lib/mjs/components/panel/Panel.d.ts +1 -0
- package/lib/mjs/components/panel/Panel.js +1 -0
- package/lib/mjs/components/radio/Radio.js +17 -6
- package/lib/mjs/components/radio/fixtures/comp12.d.ts +29 -0
- package/lib/mjs/components/radio/fixtures/comp12.js +34 -0
- package/lib/mjs/components/radio/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/radio/fixtures/index.js +2 -1
- package/lib/mjs/components/select/Select.js +1 -1
- package/lib/mjs/components/time/Time.d.ts +2 -2
- package/lib/mjs/components/time/Time.js +3 -2
- package/lib/mjs/components/time/fixtures/comp4.d.ts +166 -0
- package/lib/mjs/components/time/fixtures/comp4.js +169 -0
- package/lib/mjs/components/time/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/time/fixtures/index.js +2 -1
- package/package.json +1 -1
|
@@ -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.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
|
|
6
|
+
exports.comp12 = exports.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
|
|
7
7
|
const comp1_1 = __importDefault(require("./comp1"));
|
|
8
8
|
exports.comp1 = comp1_1.default;
|
|
9
9
|
const comp2_1 = __importDefault(require("./comp2"));
|
|
@@ -26,3 +26,5 @@ const comp10_1 = __importDefault(require("./comp10"));
|
|
|
26
26
|
exports.comp10 = comp10_1.default;
|
|
27
27
|
const comp11_1 = __importDefault(require("./comp11"));
|
|
28
28
|
exports.comp11 = comp11_1.default;
|
|
29
|
+
const comp12_1 = __importDefault(require("./comp12"));
|
|
30
|
+
exports.comp12 = comp12_1.default;
|
|
@@ -526,7 +526,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
|
526
526
|
skip,
|
|
527
527
|
};
|
|
528
528
|
// Allow for url interpolation.
|
|
529
|
-
url = this.interpolate(url, {
|
|
529
|
+
url = this.interpolate(this.sanitize(url, this.shouldSanitizeValue), {
|
|
530
530
|
formioBase: Formio_1.Formio.getBaseUrl(),
|
|
531
531
|
search,
|
|
532
532
|
limit,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export default class TimeComponent extends TextFieldComponent {
|
|
2
|
-
rawData:
|
|
2
|
+
rawData: any;
|
|
3
3
|
get dataFormat(): any;
|
|
4
4
|
get skipMaskValidation(): boolean;
|
|
5
5
|
isNotCompleteInput(value: any): any;
|
|
6
6
|
removeValue(index: any): void;
|
|
7
7
|
resetRawData(index: any): void;
|
|
8
8
|
setRawValue(value: any, index: any): void;
|
|
9
|
-
getRawValue(index: any):
|
|
9
|
+
getRawValue(index: any): any;
|
|
10
10
|
getValueAt(index: any): any;
|
|
11
11
|
setValueAt(index: any, value: any): void;
|
|
12
12
|
getStringAsValue(view: any): any;
|
|
@@ -30,7 +30,8 @@ class TimeComponent extends TextField_1.default {
|
|
|
30
30
|
this.component.inputType = isEdgeBrowser && edgeVersion <= 18
|
|
31
31
|
? 'text'
|
|
32
32
|
: (this.component.inputType || 'time');
|
|
33
|
-
|
|
33
|
+
// If default value is given then the raw data needs to be set
|
|
34
|
+
this.rawData = this.component.multiple ? [] : this.getValueAsString(this.defaultValue) || this.emptyValue;
|
|
34
35
|
}
|
|
35
36
|
static get builderInfo() {
|
|
36
37
|
return {
|
|
@@ -61,7 +62,7 @@ class TimeComponent extends TextField_1.default {
|
|
|
61
62
|
return value;
|
|
62
63
|
}
|
|
63
64
|
get validationValue() {
|
|
64
|
-
if (Array.isArray(this.rawData) && !this.rawData.length || !this.rawData) {
|
|
65
|
+
if ((Array.isArray(this.rawData) && !this.rawData.length) || !this.rawData) {
|
|
65
66
|
return this.dataValue;
|
|
66
67
|
}
|
|
67
68
|
return this.rawData;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
let type: string;
|
|
3
|
+
let display: string;
|
|
4
|
+
let components: {
|
|
5
|
+
title: string;
|
|
6
|
+
breadcrumbClickable: boolean;
|
|
7
|
+
buttonSettings: {
|
|
8
|
+
previous: boolean;
|
|
9
|
+
cancel: boolean;
|
|
10
|
+
next: boolean;
|
|
11
|
+
};
|
|
12
|
+
navigateOnEnter: boolean;
|
|
13
|
+
saveOnEnter: boolean;
|
|
14
|
+
scrollToTop: boolean;
|
|
15
|
+
collapsible: boolean;
|
|
16
|
+
key: string;
|
|
17
|
+
type: string;
|
|
18
|
+
label: string;
|
|
19
|
+
components: {
|
|
20
|
+
label: string;
|
|
21
|
+
disabled: boolean;
|
|
22
|
+
alwaysEnabled: boolean;
|
|
23
|
+
tableView: boolean;
|
|
24
|
+
defaultValue: string;
|
|
25
|
+
key: string;
|
|
26
|
+
type: string;
|
|
27
|
+
input: boolean;
|
|
28
|
+
inputMask: string;
|
|
29
|
+
hideOnChildrenHidden: boolean;
|
|
30
|
+
id: string;
|
|
31
|
+
placeholder: string;
|
|
32
|
+
prefix: string;
|
|
33
|
+
customClass: string;
|
|
34
|
+
suffix: string;
|
|
35
|
+
multiple: boolean;
|
|
36
|
+
protected: boolean;
|
|
37
|
+
unique: boolean;
|
|
38
|
+
persistent: boolean;
|
|
39
|
+
hidden: boolean;
|
|
40
|
+
clearOnHide: boolean;
|
|
41
|
+
refreshOn: string;
|
|
42
|
+
redrawOn: string;
|
|
43
|
+
modalEdit: boolean;
|
|
44
|
+
dataGridLabel: boolean;
|
|
45
|
+
labelPosition: string;
|
|
46
|
+
description: string;
|
|
47
|
+
errorLabel: string;
|
|
48
|
+
tooltip: string;
|
|
49
|
+
hideLabel: boolean;
|
|
50
|
+
tabindex: string;
|
|
51
|
+
autofocus: boolean;
|
|
52
|
+
dbIndex: boolean;
|
|
53
|
+
customDefaultValue: string;
|
|
54
|
+
calculateValue: string;
|
|
55
|
+
calculateServer: boolean;
|
|
56
|
+
widget: {
|
|
57
|
+
type: string;
|
|
58
|
+
};
|
|
59
|
+
attributes: {};
|
|
60
|
+
validateOn: string;
|
|
61
|
+
validate: {
|
|
62
|
+
required: boolean;
|
|
63
|
+
custom: string;
|
|
64
|
+
customPrivate: boolean;
|
|
65
|
+
strictDateValidation: boolean;
|
|
66
|
+
multiple: boolean;
|
|
67
|
+
unique: boolean;
|
|
68
|
+
minLength: string;
|
|
69
|
+
maxLength: string;
|
|
70
|
+
pattern: string;
|
|
71
|
+
};
|
|
72
|
+
conditional: {
|
|
73
|
+
show: null;
|
|
74
|
+
when: null;
|
|
75
|
+
eq: string;
|
|
76
|
+
};
|
|
77
|
+
overlay: {
|
|
78
|
+
style: string;
|
|
79
|
+
left: string;
|
|
80
|
+
top: string;
|
|
81
|
+
width: string;
|
|
82
|
+
height: string;
|
|
83
|
+
};
|
|
84
|
+
allowCalculateOverride: boolean;
|
|
85
|
+
encrypted: boolean;
|
|
86
|
+
showCharCount: boolean;
|
|
87
|
+
showWordCount: boolean;
|
|
88
|
+
properties: {};
|
|
89
|
+
allowMultipleMasks: boolean;
|
|
90
|
+
addons: never[];
|
|
91
|
+
mask: boolean;
|
|
92
|
+
inputType: string;
|
|
93
|
+
inputFormat: string;
|
|
94
|
+
displayMask: string;
|
|
95
|
+
spellcheck: boolean;
|
|
96
|
+
truncateMultipleSpaces: boolean;
|
|
97
|
+
format: string;
|
|
98
|
+
dataFormat: string;
|
|
99
|
+
}[];
|
|
100
|
+
input: boolean;
|
|
101
|
+
tableView: boolean;
|
|
102
|
+
id: string;
|
|
103
|
+
placeholder: string;
|
|
104
|
+
prefix: string;
|
|
105
|
+
customClass: string;
|
|
106
|
+
suffix: string;
|
|
107
|
+
multiple: boolean;
|
|
108
|
+
defaultValue: null;
|
|
109
|
+
protected: boolean;
|
|
110
|
+
unique: boolean;
|
|
111
|
+
persistent: boolean;
|
|
112
|
+
hidden: boolean;
|
|
113
|
+
clearOnHide: boolean;
|
|
114
|
+
refreshOn: string;
|
|
115
|
+
redrawOn: string;
|
|
116
|
+
modalEdit: boolean;
|
|
117
|
+
dataGridLabel: boolean;
|
|
118
|
+
labelPosition: string;
|
|
119
|
+
description: string;
|
|
120
|
+
errorLabel: string;
|
|
121
|
+
tooltip: string;
|
|
122
|
+
hideLabel: boolean;
|
|
123
|
+
tabindex: string;
|
|
124
|
+
disabled: boolean;
|
|
125
|
+
autofocus: boolean;
|
|
126
|
+
dbIndex: boolean;
|
|
127
|
+
customDefaultValue: string;
|
|
128
|
+
calculateValue: string;
|
|
129
|
+
calculateServer: boolean;
|
|
130
|
+
widget: null;
|
|
131
|
+
attributes: {};
|
|
132
|
+
validateOn: string;
|
|
133
|
+
validate: {
|
|
134
|
+
required: boolean;
|
|
135
|
+
custom: string;
|
|
136
|
+
customPrivate: boolean;
|
|
137
|
+
strictDateValidation: boolean;
|
|
138
|
+
multiple: boolean;
|
|
139
|
+
unique: boolean;
|
|
140
|
+
};
|
|
141
|
+
conditional: {
|
|
142
|
+
show: null;
|
|
143
|
+
when: null;
|
|
144
|
+
eq: string;
|
|
145
|
+
};
|
|
146
|
+
overlay: {
|
|
147
|
+
style: string;
|
|
148
|
+
left: string;
|
|
149
|
+
top: string;
|
|
150
|
+
width: string;
|
|
151
|
+
height: string;
|
|
152
|
+
};
|
|
153
|
+
allowCalculateOverride: boolean;
|
|
154
|
+
encrypted: boolean;
|
|
155
|
+
showCharCount: boolean;
|
|
156
|
+
showWordCount: boolean;
|
|
157
|
+
properties: {};
|
|
158
|
+
allowMultipleMasks: boolean;
|
|
159
|
+
addons: never[];
|
|
160
|
+
tree: boolean;
|
|
161
|
+
lazyLoad: boolean;
|
|
162
|
+
theme: string;
|
|
163
|
+
breadcrumb: string;
|
|
164
|
+
}[];
|
|
165
|
+
}
|
|
166
|
+
export default _default;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
"type": "form",
|
|
5
|
+
"display": "wizard",
|
|
6
|
+
"components": [
|
|
7
|
+
{
|
|
8
|
+
"title": "Page 1",
|
|
9
|
+
"breadcrumbClickable": true,
|
|
10
|
+
"buttonSettings": {
|
|
11
|
+
"previous": true,
|
|
12
|
+
"cancel": true,
|
|
13
|
+
"next": true
|
|
14
|
+
},
|
|
15
|
+
"navigateOnEnter": false,
|
|
16
|
+
"saveOnEnter": false,
|
|
17
|
+
"scrollToTop": false,
|
|
18
|
+
"collapsible": false,
|
|
19
|
+
"key": "page1",
|
|
20
|
+
"type": "panel",
|
|
21
|
+
"label": "Page 1",
|
|
22
|
+
"components": [
|
|
23
|
+
{
|
|
24
|
+
"label": "Time",
|
|
25
|
+
"disabled": true,
|
|
26
|
+
"alwaysEnabled": false,
|
|
27
|
+
"tableView": true,
|
|
28
|
+
"defaultValue": "03:03 PM",
|
|
29
|
+
"key": "time1",
|
|
30
|
+
"type": "time",
|
|
31
|
+
"input": true,
|
|
32
|
+
"inputMask": "99:99",
|
|
33
|
+
"hideOnChildrenHidden": false,
|
|
34
|
+
"id": "efw9yyq",
|
|
35
|
+
"placeholder": "",
|
|
36
|
+
"prefix": "",
|
|
37
|
+
"customClass": "",
|
|
38
|
+
"suffix": "",
|
|
39
|
+
"multiple": false,
|
|
40
|
+
"protected": false,
|
|
41
|
+
"unique": false,
|
|
42
|
+
"persistent": true,
|
|
43
|
+
"hidden": false,
|
|
44
|
+
"clearOnHide": true,
|
|
45
|
+
"refreshOn": "",
|
|
46
|
+
"redrawOn": "",
|
|
47
|
+
"modalEdit": false,
|
|
48
|
+
"dataGridLabel": false,
|
|
49
|
+
"labelPosition": "top",
|
|
50
|
+
"description": "",
|
|
51
|
+
"errorLabel": "",
|
|
52
|
+
"tooltip": "",
|
|
53
|
+
"hideLabel": false,
|
|
54
|
+
"tabindex": "",
|
|
55
|
+
"autofocus": false,
|
|
56
|
+
"dbIndex": false,
|
|
57
|
+
"customDefaultValue": "",
|
|
58
|
+
"calculateValue": "",
|
|
59
|
+
"calculateServer": false,
|
|
60
|
+
"widget": {
|
|
61
|
+
"type": "input"
|
|
62
|
+
},
|
|
63
|
+
"attributes": {},
|
|
64
|
+
"validateOn": "change",
|
|
65
|
+
"validate": {
|
|
66
|
+
"required": false,
|
|
67
|
+
"custom": "",
|
|
68
|
+
"customPrivate": false,
|
|
69
|
+
"strictDateValidation": false,
|
|
70
|
+
"multiple": false,
|
|
71
|
+
"unique": false,
|
|
72
|
+
"minLength": "",
|
|
73
|
+
"maxLength": "",
|
|
74
|
+
"pattern": ""
|
|
75
|
+
},
|
|
76
|
+
"conditional": {
|
|
77
|
+
"show": null,
|
|
78
|
+
"when": null,
|
|
79
|
+
"eq": ""
|
|
80
|
+
},
|
|
81
|
+
"overlay": {
|
|
82
|
+
"style": "",
|
|
83
|
+
"left": "",
|
|
84
|
+
"top": "",
|
|
85
|
+
"width": "",
|
|
86
|
+
"height": ""
|
|
87
|
+
},
|
|
88
|
+
"allowCalculateOverride": false,
|
|
89
|
+
"encrypted": false,
|
|
90
|
+
"showCharCount": false,
|
|
91
|
+
"showWordCount": false,
|
|
92
|
+
"properties": {},
|
|
93
|
+
"allowMultipleMasks": false,
|
|
94
|
+
"addons": [],
|
|
95
|
+
"mask": false,
|
|
96
|
+
"inputType": "time",
|
|
97
|
+
"inputFormat": "plain",
|
|
98
|
+
"displayMask": "",
|
|
99
|
+
"spellcheck": true,
|
|
100
|
+
"truncateMultipleSpaces": false,
|
|
101
|
+
"format": "HH:mm",
|
|
102
|
+
"dataFormat": "HH:mm:ss"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"input": false,
|
|
106
|
+
"tableView": false,
|
|
107
|
+
"id": "e7vej1d",
|
|
108
|
+
"placeholder": "",
|
|
109
|
+
"prefix": "",
|
|
110
|
+
"customClass": "",
|
|
111
|
+
"suffix": "",
|
|
112
|
+
"multiple": false,
|
|
113
|
+
"defaultValue": null,
|
|
114
|
+
"protected": false,
|
|
115
|
+
"unique": false,
|
|
116
|
+
"persistent": false,
|
|
117
|
+
"hidden": false,
|
|
118
|
+
"clearOnHide": false,
|
|
119
|
+
"refreshOn": "",
|
|
120
|
+
"redrawOn": "",
|
|
121
|
+
"modalEdit": false,
|
|
122
|
+
"dataGridLabel": false,
|
|
123
|
+
"labelPosition": "top",
|
|
124
|
+
"description": "",
|
|
125
|
+
"errorLabel": "",
|
|
126
|
+
"tooltip": "",
|
|
127
|
+
"hideLabel": false,
|
|
128
|
+
"tabindex": "",
|
|
129
|
+
"disabled": false,
|
|
130
|
+
"autofocus": false,
|
|
131
|
+
"dbIndex": false,
|
|
132
|
+
"customDefaultValue": "",
|
|
133
|
+
"calculateValue": "",
|
|
134
|
+
"calculateServer": false,
|
|
135
|
+
"widget": null,
|
|
136
|
+
"attributes": {},
|
|
137
|
+
"validateOn": "change",
|
|
138
|
+
"validate": {
|
|
139
|
+
"required": false,
|
|
140
|
+
"custom": "",
|
|
141
|
+
"customPrivate": false,
|
|
142
|
+
"strictDateValidation": false,
|
|
143
|
+
"multiple": false,
|
|
144
|
+
"unique": false
|
|
145
|
+
},
|
|
146
|
+
"conditional": {
|
|
147
|
+
"show": null,
|
|
148
|
+
"when": null,
|
|
149
|
+
"eq": ""
|
|
150
|
+
},
|
|
151
|
+
"overlay": {
|
|
152
|
+
"style": "",
|
|
153
|
+
"left": "",
|
|
154
|
+
"top": "",
|
|
155
|
+
"width": "",
|
|
156
|
+
"height": ""
|
|
157
|
+
},
|
|
158
|
+
"allowCalculateOverride": false,
|
|
159
|
+
"encrypted": false,
|
|
160
|
+
"showCharCount": false,
|
|
161
|
+
"showWordCount": false,
|
|
162
|
+
"properties": {},
|
|
163
|
+
"allowMultipleMasks": false,
|
|
164
|
+
"addons": [],
|
|
165
|
+
"tree": false,
|
|
166
|
+
"lazyLoad": false,
|
|
167
|
+
"theme": "default",
|
|
168
|
+
"breadcrumb": "default"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import comp1 from './comp1';
|
|
2
2
|
import comp2 from './comp2';
|
|
3
3
|
import comp3 from './comp3';
|
|
4
|
+
import comp4 from './comp4';
|
|
4
5
|
import timeForm from './timeForm';
|
|
5
6
|
import timeForm2 from './timeForm2';
|
|
6
|
-
export { comp1, comp2, comp3, timeForm, timeForm2 };
|
|
7
|
+
export { comp1, comp2, comp3, comp4, timeForm, timeForm2 };
|
|
@@ -3,13 +3,15 @@ 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.timeForm2 = exports.timeForm = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
|
|
6
|
+
exports.timeForm2 = exports.timeForm = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
|
|
7
7
|
const comp1_1 = __importDefault(require("./comp1"));
|
|
8
8
|
exports.comp1 = comp1_1.default;
|
|
9
9
|
const comp2_1 = __importDefault(require("./comp2"));
|
|
10
10
|
exports.comp2 = comp2_1.default;
|
|
11
11
|
const comp3_1 = __importDefault(require("./comp3"));
|
|
12
12
|
exports.comp3 = comp3_1.default;
|
|
13
|
+
const comp4_1 = __importDefault(require("./comp4"));
|
|
14
|
+
exports.comp4 = comp4_1.default;
|
|
13
15
|
const timeForm_1 = __importDefault(require("./timeForm"));
|
|
14
16
|
exports.timeForm = timeForm_1.default;
|
|
15
17
|
const timeForm2_1 = __importDefault(require("./timeForm2"));
|
package/lib/mjs/Form.js
CHANGED
|
@@ -3,7 +3,6 @@ import { Formio } from './Formio';
|
|
|
3
3
|
import Displays from './displays';
|
|
4
4
|
import templates from './templates';
|
|
5
5
|
import * as FormioUtils from './utils/utils';
|
|
6
|
-
import _ from "lodash";
|
|
7
6
|
export default class Form extends Element {
|
|
8
7
|
/**
|
|
9
8
|
* Represents a JSON value.
|
|
@@ -294,7 +293,6 @@ export default class Form extends Element {
|
|
|
294
293
|
this.instance = this.instance || this.create(form.display);
|
|
295
294
|
const options = this.getFormInitOptions(formParam, form);
|
|
296
295
|
this.instance.setUrl(formParam, options);
|
|
297
|
-
_.set(form, 'config.myApiUrl', options.project);
|
|
298
296
|
this.instance.nosubmit = false;
|
|
299
297
|
this._form = this.instance.form = form;
|
|
300
298
|
if (submission) {
|
package/lib/mjs/Webform.js
CHANGED
|
@@ -1134,7 +1134,7 @@ export default class Webform extends NestedDataComponent {
|
|
|
1134
1134
|
});
|
|
1135
1135
|
const displayedErrors = [];
|
|
1136
1136
|
if (errors.length) {
|
|
1137
|
-
errors = _.uniqBy(errors, (error) => error.message);
|
|
1137
|
+
errors = _.uniqBy(errors, (error) => [error.message, error.component?.id, error.context?.path].join());
|
|
1138
1138
|
const createListItem = (message, index) => {
|
|
1139
1139
|
const err = errors[index];
|
|
1140
1140
|
const messageFromIndex = !_.isUndefined(index) && errors && errors[index];
|
|
@@ -892,7 +892,11 @@ export default class WebformBuilder extends Component {
|
|
|
892
892
|
if (form && form.properties) {
|
|
893
893
|
this.options.properties = form.properties;
|
|
894
894
|
}
|
|
895
|
-
|
|
895
|
+
let keyboardActionsEnabled = _.get(this.options, 'keyboardBuilder', false) || this.options.properties?.keyboardBuilder;
|
|
896
|
+
if (typeof keyboardActionsEnabled === 'string') {
|
|
897
|
+
keyboardActionsEnabled = keyboardActionsEnabled === 'true';
|
|
898
|
+
}
|
|
899
|
+
this.keyboardActionsEnabled = keyboardActionsEnabled;
|
|
896
900
|
const isShowSubmitButton = !this.options.noDefaultSubmitButton
|
|
897
901
|
&& (!form.components.length || !form.components.find(comp => comp.key === 'submit'));
|
|
898
902
|
// Ensure there is at least a submit button.
|
|
@@ -1044,7 +1048,10 @@ export default class WebformBuilder extends Component {
|
|
|
1044
1048
|
'calculateValue',
|
|
1045
1049
|
'conditional',
|
|
1046
1050
|
'customConditional',
|
|
1047
|
-
'id'
|
|
1051
|
+
'id',
|
|
1052
|
+
'fields.day.required',
|
|
1053
|
+
'fields.month.required',
|
|
1054
|
+
'fields.year.required',
|
|
1048
1055
|
]));
|
|
1049
1056
|
const parentComponent = defaultValueComponent.parent;
|
|
1050
1057
|
let tabIndex = -1;
|
|
@@ -1231,6 +1238,7 @@ export default class WebformBuilder extends Component {
|
|
|
1231
1238
|
helplinks: this.helplinks,
|
|
1232
1239
|
}));
|
|
1233
1240
|
this.editForm.attach(this.componentEdit.querySelector(`[${this._referenceAttributeName}="editForm"]`));
|
|
1241
|
+
this.updateComponent(this.editForm.submission.data ?? component);
|
|
1234
1242
|
this.attachEditComponentControls(component, parent, isNew, original, ComponentClass);
|
|
1235
1243
|
});
|
|
1236
1244
|
});
|
|
@@ -211,11 +211,12 @@ export default class NestedComponent extends Field {
|
|
|
211
211
|
calculateValue(data: any, flags: any, row: any): any;
|
|
212
212
|
isLastPage(): boolean;
|
|
213
213
|
isValid(data: any, dirty: any): any;
|
|
214
|
-
validationProcessor({ scope, data, row, instance }: {
|
|
214
|
+
validationProcessor({ scope, data, row, instance, component }: {
|
|
215
215
|
scope: any;
|
|
216
216
|
data: any;
|
|
217
217
|
row: any;
|
|
218
218
|
instance: any;
|
|
219
|
+
component: any;
|
|
219
220
|
}, flags: any): void;
|
|
220
221
|
/**
|
|
221
222
|
* Perform a validation on all child components of this nested component.
|
|
@@ -677,8 +677,11 @@ export default class NestedComponent extends Field {
|
|
|
677
677
|
isValid(data, dirty) {
|
|
678
678
|
return this.getComponents().reduce((valid, comp) => comp.isValid(data, dirty) && valid, super.isValid(data, dirty));
|
|
679
679
|
}
|
|
680
|
-
validationProcessor({ scope, data, row, instance }, flags) {
|
|
680
|
+
validationProcessor({ scope, data, row, instance, component }, flags) {
|
|
681
681
|
const { dirty } = flags;
|
|
682
|
+
if (this.root.hasExtraPages && this.page !== this.root.page) {
|
|
683
|
+
instance = this.getComponentById(component.id);
|
|
684
|
+
}
|
|
682
685
|
if (!instance) {
|
|
683
686
|
return;
|
|
684
687
|
}
|
|
@@ -12,6 +12,8 @@ export default class NestedArrayComponent extends NestedDataComponent {
|
|
|
12
12
|
hasAddButton(): any;
|
|
13
13
|
getComponent(path: any, fn: any, originalPath: any): any;
|
|
14
14
|
everyComponent(fn: any, rowIndex: any, options?: {}): void;
|
|
15
|
+
_getEmailTableHeader(options: any): string;
|
|
16
|
+
_getEmailTableBody(options: any): string;
|
|
15
17
|
getComponents(rowIndex: any): any;
|
|
16
18
|
}
|
|
17
19
|
import NestedDataComponent from '../nesteddata/NestedDataComponent';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
import _ from 'lodash';
|
|
3
|
-
import { componentValueTypes, getStringFromComponentPath } from '../../../utils/utils';
|
|
3
|
+
import { componentValueTypes, getStringFromComponentPath, isLayoutComponent } from '../../../utils/utils';
|
|
4
4
|
import Component from '../component/Component';
|
|
5
5
|
import NestedDataComponent from '../nesteddata/NestedDataComponent';
|
|
6
6
|
export default class NestedArrayComponent extends NestedDataComponent {
|
|
@@ -145,38 +145,60 @@ export default class NestedArrayComponent extends NestedDataComponent {
|
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
|
+
_getEmailTableHeader(options) {
|
|
149
|
+
let row = '';
|
|
150
|
+
const getHeaderCell = (component) => {
|
|
151
|
+
if (!component.isInputComponent || !component.visible || component.skipInEmail) {
|
|
152
|
+
return '';
|
|
153
|
+
}
|
|
154
|
+
const label = component.label || component.key;
|
|
155
|
+
return `<th style="padding: 5px 10px;">${label}</th>`;
|
|
156
|
+
};
|
|
157
|
+
const components = this.getComponents(0);
|
|
158
|
+
for (const component of components) {
|
|
159
|
+
if (component.isInputComponent) {
|
|
160
|
+
row += getHeaderCell(component);
|
|
161
|
+
}
|
|
162
|
+
else if (isLayoutComponent(component) && typeof component.everyComponent === 'function') {
|
|
163
|
+
component.everyComponent((comp) => {
|
|
164
|
+
row += getHeaderCell(comp);
|
|
165
|
+
}, options);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return `<thead><tr>${row}</tr></thead>`;
|
|
169
|
+
}
|
|
170
|
+
_getEmailTableBody(options) {
|
|
171
|
+
const getBodyCell = (component) => {
|
|
172
|
+
if (!component.isInputComponent || !component.visible || component.skipInEmail) {
|
|
173
|
+
return '';
|
|
174
|
+
}
|
|
175
|
+
return `<td style="padding: 5px 10px;">${component.getView(component.dataValue, options)}</td>`;
|
|
176
|
+
};
|
|
177
|
+
const rows = [];
|
|
178
|
+
for (const { components } of this.iteratableRows) {
|
|
179
|
+
let row = '';
|
|
180
|
+
for (const component of components) {
|
|
181
|
+
if (component.isInputComponent) {
|
|
182
|
+
row += getBodyCell(component);
|
|
183
|
+
}
|
|
184
|
+
else if (isLayoutComponent(component) && typeof component.everyComponent === 'function') {
|
|
185
|
+
component.everyComponent((comp) => {
|
|
186
|
+
row += getBodyCell(comp);
|
|
187
|
+
}, options);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
rows.push(`<tr>${row}</tr>`);
|
|
191
|
+
}
|
|
192
|
+
return `<tbody>${rows.join('')}</tbody>`;
|
|
193
|
+
}
|
|
148
194
|
getValueAsString(value, options) {
|
|
149
195
|
if (options?.email) {
|
|
150
|
-
|
|
196
|
+
return `
|
|
151
197
|
<table border="1" style="width:100%">
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
`);
|
|
155
|
-
this.component.components?.forEach((component) => {
|
|
156
|
-
const label = component.label || component.key;
|
|
157
|
-
result += `<th style="padding: 5px 10px;">${label}</th>`;
|
|
158
|
-
});
|
|
159
|
-
result += (`
|
|
160
|
-
</tr>
|
|
161
|
-
</thead>
|
|
162
|
-
<tbody>
|
|
163
|
-
`);
|
|
164
|
-
this.iteratableRows.forEach(({ components }) => {
|
|
165
|
-
result += '<tr>';
|
|
166
|
-
_.each(components, (component) => {
|
|
167
|
-
result += '<td style="padding:5px 10px;">';
|
|
168
|
-
if (component.isInputComponent && component.visible && !component.skipInEmail) {
|
|
169
|
-
result += component.getView(component.dataValue, options);
|
|
170
|
-
}
|
|
171
|
-
result += '</td>';
|
|
172
|
-
});
|
|
173
|
-
result += '</tr>';
|
|
174
|
-
});
|
|
175
|
-
result += (`
|
|
176
|
-
</tbody>
|
|
198
|
+
${this._getEmailTableHeader(options)}
|
|
199
|
+
${this._getEmailTableBody(options)}
|
|
177
200
|
</table>
|
|
178
|
-
|
|
179
|
-
return result;
|
|
201
|
+
`;
|
|
180
202
|
}
|
|
181
203
|
if (!value || !value.length) {
|
|
182
204
|
return '';
|
|
@@ -2,6 +2,7 @@ export default class CurrencyComponent extends NumberComponent {
|
|
|
2
2
|
constructor(component: any, options: any, data: any);
|
|
3
3
|
currencyPrefix: any;
|
|
4
4
|
currencySuffix: any;
|
|
5
|
+
parseNumber(value: any): number;
|
|
5
6
|
parseValue(value: any): string | null;
|
|
6
7
|
addZerosAndFormatValue(value: any): any;
|
|
7
8
|
stripPrefixSuffix(value: any): any;
|