@formio/js 5.0.0-dev.5614.ea3660d → 5.0.0-dev.5620.dedc19b
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 +4 -2
- package/dist/formio.form.js +31 -21
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +2 -0
- package/dist/formio.full.js +34 -24
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +2 -0
- package/dist/formio.utils.js +13 -3
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +2 -0
- package/lib/cjs/Element.d.ts +2 -1
- package/lib/cjs/Element.js +17 -8
- package/lib/cjs/Form.js +15 -1
- package/lib/cjs/PDF.js +8 -1
- package/lib/cjs/PDFBuilder.js +3 -3
- package/lib/cjs/Webform.d.ts +0 -1
- package/lib/cjs/Webform.js +17 -12
- package/lib/cjs/WebformBuilder.d.ts +0 -1
- package/lib/cjs/WebformBuilder.js +4 -4
- package/lib/cjs/Wizard.js +1 -1
- package/lib/cjs/addons/FormioAddon.d.ts +1 -0
- package/lib/cjs/components/_classes/component/Component.d.ts +2 -1
- package/lib/cjs/components/_classes/component/Component.js +46 -8
- package/lib/cjs/components/_classes/input/Input.js +16 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -2
- package/lib/cjs/components/_classes/nested/NestedComponent.js +8 -7
- package/lib/cjs/components/columns/Columns.js +2 -2
- package/lib/cjs/components/editgrid/EditGrid.d.ts +1 -1
- package/lib/cjs/components/editgrid/EditGrid.js +21 -7
- package/lib/cjs/components/file/File.d.ts +1 -0
- package/lib/cjs/components/file/File.js +2 -2
- package/lib/cjs/components/form/Form.js +3 -3
- package/lib/cjs/components/radio/Radio.d.ts +1 -1
- package/lib/cjs/components/radio/Radio.js +5 -3
- package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.d.ts +5 -0
- package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +3 -0
- package/lib/cjs/components/select/Select.js +10 -3
- package/lib/cjs/components/select/fixtures/comp23.d.ts +47 -0
- package/lib/cjs/components/select/fixtures/comp23.js +40 -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.js +4 -1
- package/lib/cjs/components/table/Table.d.ts +0 -1
- package/lib/cjs/components/table/Table.js +1 -1
- package/lib/cjs/components/tags/Tags.js +4 -2
- package/lib/cjs/utils/utils.d.ts +7 -1
- package/lib/cjs/utils/utils.js +29 -3
- package/lib/cjs/widgets/CalendarWidget.js +2 -2
- package/lib/mjs/Element.d.ts +2 -1
- package/lib/mjs/Element.js +17 -8
- package/lib/mjs/Form.js +15 -1
- package/lib/mjs/PDF.js +8 -1
- package/lib/mjs/PDFBuilder.js +3 -3
- package/lib/mjs/Webform.d.ts +0 -1
- package/lib/mjs/Webform.js +17 -12
- package/lib/mjs/WebformBuilder.d.ts +0 -1
- package/lib/mjs/WebformBuilder.js +4 -4
- package/lib/mjs/Wizard.js +1 -1
- package/lib/mjs/addons/FormioAddon.d.ts +1 -0
- package/lib/mjs/components/_classes/component/Component.d.ts +2 -1
- package/lib/mjs/components/_classes/component/Component.js +47 -9
- package/lib/mjs/components/_classes/input/Input.js +16 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -2
- package/lib/mjs/components/_classes/nested/NestedComponent.js +8 -7
- package/lib/mjs/components/columns/Columns.js +2 -2
- package/lib/mjs/components/editgrid/EditGrid.d.ts +1 -1
- package/lib/mjs/components/editgrid/EditGrid.js +20 -7
- package/lib/mjs/components/file/File.d.ts +1 -0
- package/lib/mjs/components/file/File.js +2 -2
- package/lib/mjs/components/form/Form.js +3 -3
- package/lib/mjs/components/radio/Radio.d.ts +1 -1
- package/lib/mjs/components/radio/Radio.js +5 -3
- package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.d.ts +5 -0
- package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +3 -0
- package/lib/mjs/components/select/Select.js +10 -3
- package/lib/mjs/components/select/fixtures/comp23.d.ts +47 -0
- package/lib/mjs/components/select/fixtures/comp23.js +38 -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.js +4 -1
- package/lib/mjs/components/table/Table.d.ts +0 -1
- package/lib/mjs/components/table/Table.js +1 -1
- package/lib/mjs/components/tags/Tags.js +4 -2
- package/lib/mjs/utils/utils.d.ts +7 -1
- package/lib/mjs/utils/utils.js +15 -1
- package/lib/mjs/widgets/CalendarWidget.js +2 -2
- package/package.json +2 -2
|
@@ -7,6 +7,9 @@ declare const _default: ({
|
|
|
7
7
|
label: string;
|
|
8
8
|
value: string;
|
|
9
9
|
}[];
|
|
10
|
+
validate: {
|
|
11
|
+
required: boolean;
|
|
12
|
+
};
|
|
10
13
|
weight: number;
|
|
11
14
|
input?: undefined;
|
|
12
15
|
dataSrc?: undefined;
|
|
@@ -28,6 +31,7 @@ declare const _default: ({
|
|
|
28
31
|
custom(context: any): any[];
|
|
29
32
|
};
|
|
30
33
|
values?: undefined;
|
|
34
|
+
validate?: undefined;
|
|
31
35
|
ignore?: undefined;
|
|
32
36
|
} | {
|
|
33
37
|
key: string;
|
|
@@ -36,6 +40,7 @@ declare const _default: ({
|
|
|
36
40
|
tooltip?: undefined;
|
|
37
41
|
type?: undefined;
|
|
38
42
|
values?: undefined;
|
|
43
|
+
validate?: undefined;
|
|
39
44
|
weight?: undefined;
|
|
40
45
|
input?: undefined;
|
|
41
46
|
dataSrc?: undefined;
|
|
@@ -228,9 +228,10 @@ class SelectComponent extends ListComponent_1.default {
|
|
|
228
228
|
}
|
|
229
229
|
selectValueAndLabel(data) {
|
|
230
230
|
const value = this.getOptionValue((this.isEntireObjectDisplay() && !this.itemValue(data)) ? data : this.itemValue(data));
|
|
231
|
+
const readOnlyResourceLabelData = this.options.readOnly && (this.component.dataSrc === 'resource' || this.component.dataSrc === 'url') && this.selectData;
|
|
231
232
|
return {
|
|
232
233
|
value,
|
|
233
|
-
label: this.itemTemplate((this.isEntireObjectDisplay() && !lodash_1.default.isObject(data.data)) ? { data: data } : data, value)
|
|
234
|
+
label: this.itemTemplate((this.isEntireObjectDisplay() && !lodash_1.default.isObject(data.data)) ? { data: data } : readOnlyResourceLabelData || data, value)
|
|
234
235
|
};
|
|
235
236
|
}
|
|
236
237
|
itemTemplate(data, value) {
|
|
@@ -811,7 +812,9 @@ class SelectComponent extends ListComponent_1.default {
|
|
|
811
812
|
}
|
|
812
813
|
const tabIndex = input.tabIndex;
|
|
813
814
|
this.addPlaceholder();
|
|
814
|
-
|
|
815
|
+
if (this.i18next) {
|
|
816
|
+
input.setAttribute('dir', this.i18next.dir());
|
|
817
|
+
}
|
|
815
818
|
if ((_c = (_b = (_a = this.choices) === null || _a === void 0 ? void 0 : _a.containerOuter) === null || _b === void 0 ? void 0 : _b.element) === null || _c === void 0 ? void 0 : _c.parentNode) {
|
|
816
819
|
this.choices.destroy();
|
|
817
820
|
}
|
|
@@ -1468,6 +1471,10 @@ class SelectComponent extends ListComponent_1.default {
|
|
|
1468
1471
|
asString(value, options = {}) {
|
|
1469
1472
|
var _a;
|
|
1470
1473
|
value = value !== null && value !== void 0 ? value : this.getValue();
|
|
1474
|
+
if (options.modalPreview && this.selectData) {
|
|
1475
|
+
const { label } = this.selectValueAndLabel(value);
|
|
1476
|
+
return label;
|
|
1477
|
+
}
|
|
1471
1478
|
//need to convert values to strings to be able to compare values with available options that are strings
|
|
1472
1479
|
const convertToString = (data, valueProperty) => {
|
|
1473
1480
|
if (valueProperty) {
|
|
@@ -1544,7 +1551,6 @@ class SelectComponent extends ListComponent_1.default {
|
|
|
1544
1551
|
}
|
|
1545
1552
|
detach() {
|
|
1546
1553
|
var _a, _b;
|
|
1547
|
-
super.detach();
|
|
1548
1554
|
this.off('blur');
|
|
1549
1555
|
if (this.choices) {
|
|
1550
1556
|
if ((_b = (_a = this.choices.containerOuter) === null || _a === void 0 ? void 0 : _a.element) === null || _b === void 0 ? void 0 : _b.parentNode) {
|
|
@@ -1552,6 +1558,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
|
1552
1558
|
}
|
|
1553
1559
|
this.choices = null;
|
|
1554
1560
|
}
|
|
1561
|
+
super.detach();
|
|
1555
1562
|
}
|
|
1556
1563
|
focus() {
|
|
1557
1564
|
if (this.focusableElement) {
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
let title: string;
|
|
3
|
+
let name: string;
|
|
4
|
+
let path: string;
|
|
5
|
+
let type: string;
|
|
6
|
+
let display: string;
|
|
7
|
+
let components: ({
|
|
8
|
+
label: string;
|
|
9
|
+
widget: string;
|
|
10
|
+
tableView: boolean;
|
|
11
|
+
dataSrc: string;
|
|
12
|
+
data: {
|
|
13
|
+
resource: string;
|
|
14
|
+
};
|
|
15
|
+
template: string;
|
|
16
|
+
validate: {
|
|
17
|
+
select: boolean;
|
|
18
|
+
};
|
|
19
|
+
key: string;
|
|
20
|
+
type: string;
|
|
21
|
+
searchField: string;
|
|
22
|
+
input: boolean;
|
|
23
|
+
noRefreshOnScroll: boolean;
|
|
24
|
+
addResource: boolean;
|
|
25
|
+
reference: boolean;
|
|
26
|
+
valueProperty: string;
|
|
27
|
+
disableOnInvalid?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
type: string;
|
|
30
|
+
label: string;
|
|
31
|
+
key: string;
|
|
32
|
+
disableOnInvalid: boolean;
|
|
33
|
+
input: boolean;
|
|
34
|
+
tableView: boolean;
|
|
35
|
+
widget?: undefined;
|
|
36
|
+
dataSrc?: undefined;
|
|
37
|
+
data?: undefined;
|
|
38
|
+
template?: undefined;
|
|
39
|
+
validate?: undefined;
|
|
40
|
+
searchField?: undefined;
|
|
41
|
+
noRefreshOnScroll?: undefined;
|
|
42
|
+
addResource?: undefined;
|
|
43
|
+
reference?: undefined;
|
|
44
|
+
valueProperty?: undefined;
|
|
45
|
+
})[];
|
|
46
|
+
}
|
|
47
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
title: 'FIO-8234',
|
|
5
|
+
name: 'fio8234',
|
|
6
|
+
path: 'fio8234',
|
|
7
|
+
type: 'form',
|
|
8
|
+
display: 'form',
|
|
9
|
+
components: [
|
|
10
|
+
{
|
|
11
|
+
label: 'Select',
|
|
12
|
+
widget: 'choicesjs',
|
|
13
|
+
tableView: true,
|
|
14
|
+
dataSrc: 'resource',
|
|
15
|
+
data: {
|
|
16
|
+
resource: '665446284c9b0163c3e0c7e6',
|
|
17
|
+
},
|
|
18
|
+
template: '<span>{{ item.data.textField1 }}</span>',
|
|
19
|
+
validate: {
|
|
20
|
+
select: false,
|
|
21
|
+
},
|
|
22
|
+
key: 'select',
|
|
23
|
+
type: 'select',
|
|
24
|
+
searchField: 'data.textField2__regex',
|
|
25
|
+
input: true,
|
|
26
|
+
noRefreshOnScroll: false,
|
|
27
|
+
addResource: false,
|
|
28
|
+
reference: false,
|
|
29
|
+
valueProperty: 'data.textField2',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'button',
|
|
33
|
+
label: 'Submit',
|
|
34
|
+
key: 'submit',
|
|
35
|
+
disableOnInvalid: true,
|
|
36
|
+
input: true,
|
|
37
|
+
tableView: false,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
|
@@ -19,5 +19,6 @@ import comp19 from './comp19';
|
|
|
19
19
|
import comp20 from './comp20';
|
|
20
20
|
import comp21 from './comp21';
|
|
21
21
|
import comp22 from './comp22';
|
|
22
|
-
|
|
22
|
+
import comp23 from './comp23';
|
|
23
|
+
export { comp1, comp2, comp4, comp5, comp6, comp7, comp8, comp9, comp10, comp11, comp12, comp13, comp14, comp15, comp16, comp17, comp18, comp19, comp20, comp21, comp22, comp23 };
|
|
23
24
|
export { multiSelect, multiSelectOptions } from "./comp3";
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.comp22 = exports.comp21 = exports.comp20 = exports.comp19 = exports.comp18 = exports.comp17 = exports.comp16 = exports.comp15 = exports.comp14 = exports.comp13 = exports.comp12 = exports.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp2 = exports.comp1 = exports.multiSelectOptions = exports.multiSelect = void 0;
|
|
6
|
+
exports.comp23 = exports.comp22 = exports.comp21 = exports.comp20 = exports.comp19 = exports.comp18 = exports.comp17 = exports.comp16 = exports.comp15 = exports.comp14 = exports.comp13 = exports.comp12 = exports.comp11 = exports.comp10 = exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp2 = exports.comp1 = exports.multiSelectOptions = exports.multiSelect = void 0;
|
|
7
7
|
const comp1_1 = __importDefault(require("./comp1"));
|
|
8
8
|
exports.comp1 = comp1_1.default;
|
|
9
9
|
const comp2_1 = __importDefault(require("./comp2"));
|
|
@@ -49,3 +49,5 @@ const comp21_1 = __importDefault(require("./comp21"));
|
|
|
49
49
|
exports.comp21 = comp21_1.default;
|
|
50
50
|
const comp22_1 = __importDefault(require("./comp22"));
|
|
51
51
|
exports.comp22 = comp22_1.default;
|
|
52
|
+
const comp23_1 = __importDefault(require("./comp23"));
|
|
53
|
+
exports.comp23 = comp23_1.default;
|
|
@@ -164,11 +164,14 @@ class SelectBoxesComponent extends Radio_1.default {
|
|
|
164
164
|
}
|
|
165
165
|
return changed;
|
|
166
166
|
}
|
|
167
|
-
getValueAsString(value) {
|
|
167
|
+
getValueAsString(value, options = {}) {
|
|
168
168
|
if (!value) {
|
|
169
169
|
return '';
|
|
170
170
|
}
|
|
171
171
|
if (this.isSelectURL) {
|
|
172
|
+
if (options.modalPreview && this.loadedOptions) {
|
|
173
|
+
return this.loadedOptions.filter((option) => value[option.value]).map((option) => option.label).join(', ');
|
|
174
|
+
}
|
|
172
175
|
return (0, lodash_1.default)(value).pickBy((val) => val).keys().join(', ');
|
|
173
176
|
}
|
|
174
177
|
return (0, lodash_1.default)(this.component.values || [])
|
|
@@ -61,7 +61,9 @@ class TagsComponent extends Input_1.default {
|
|
|
61
61
|
if (!element) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
if (this.i18next) {
|
|
65
|
+
element.setAttribute('dir', this.i18next.dir());
|
|
66
|
+
}
|
|
65
67
|
if (this.choices) {
|
|
66
68
|
this.choices.destroy();
|
|
67
69
|
}
|
|
@@ -108,11 +110,11 @@ class TagsComponent extends Input_1.default {
|
|
|
108
110
|
});
|
|
109
111
|
}
|
|
110
112
|
detach() {
|
|
111
|
-
super.detach();
|
|
112
113
|
if (this.choices) {
|
|
113
114
|
this.choices.destroy();
|
|
114
115
|
this.choices = null;
|
|
115
116
|
}
|
|
117
|
+
super.detach();
|
|
116
118
|
}
|
|
117
119
|
normalizeValue(value) {
|
|
118
120
|
if (this.component.storeas === 'string' && Array.isArray(value)) {
|
package/lib/cjs/utils/utils.d.ts
CHANGED
|
@@ -27,6 +27,12 @@ export function getElementRect(element: any): {
|
|
|
27
27
|
width: string;
|
|
28
28
|
height: string;
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Get non HTMLElement property in the window object
|
|
32
|
+
* @param {String} property
|
|
33
|
+
* @return {any || undefined}
|
|
34
|
+
*/
|
|
35
|
+
export function getScriptPlugin(property: string): any;
|
|
30
36
|
/**
|
|
31
37
|
* Determines the boolean value of a setting.
|
|
32
38
|
*
|
|
@@ -374,4 +380,4 @@ import jsonLogic from 'json-logic-js';
|
|
|
374
380
|
import ConditionOperators from './conditionOperators';
|
|
375
381
|
import Evaluator from './Evaluator';
|
|
376
382
|
export const interpolate: (rawTemplate: any, data: any, _options: any) => any;
|
|
377
|
-
export { jsonLogic,
|
|
383
|
+
export { jsonLogic, ConditionOperators, Evaluator, _ };
|
package/lib/cjs/utils/utils.js
CHANGED
|
@@ -11,22 +11,33 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
11
11
|
if (k2 === undefined) k2 = k;
|
|
12
12
|
o[k2] = m[k];
|
|
13
13
|
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
14
19
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
20
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
21
|
};
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
17
29
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
30
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
31
|
};
|
|
20
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.
|
|
22
|
-
exports.isSelectResourceWithObjectValue = exports.getItemTemplateKeys = exports.interpolateErrors = exports.getComponentSavedTypes = exports.componentValueTypes = exports._ = exports.getFocusableElements = exports.isInsideScopingComponent = exports.isPromise = exports.getDataParentComponent = exports.getComponentPath = exports.getComponentPathWithoutIndicies = exports.getBrowserInfo = exports.getIEBrowserVersion = exports.round = exports.getStringFromComponentPath = exports.isChildOf = exports.getArrayFromComponentPath = exports.isInputComponent = exports.interpolate = exports.Evaluator = exports.fastCloneDeep = exports.sanitize = exports.translateHTMLTemplate = exports.getContextButtons = exports.getContextComponents = void 0;
|
|
33
|
+
exports.withSwitch = exports.firstNonNil = exports.unfold = exports.bootstrapVersion = exports.uniqueKey = exports.iterateKey = exports.delay = exports.fieldData = exports.getCurrencyAffixes = exports.getNumberDecimalLimit = exports.getNumberSeparators = exports.matchInputMask = exports.unmaskValue = exports.getInputMask = exports.convertFormatToMask = exports.convertFormatToMoment = exports.convertFormatToFlatpickr = exports.getLocaleDateFormatInfo = exports.formatOffset = exports.formatDate = exports.momentDate = exports.loadZones = exports.shouldLoadZones = exports.zonesLoaded = exports.offsetDate = exports.currentTimezone = exports.isValidDate = exports.getDateSetting = exports.guid = exports.uniqueName = exports.convertStringToHTMLElement = exports.unescapeHTML = exports.setActionProperty = exports.checkTrigger = exports.checkCondition = exports.checkJsonConditional = exports.checkCustomConditional = exports.getComponentActualValue = exports.checkSimpleConditional = exports.checkCalculated = exports.isMongoId = exports.boolValue = exports.getScriptPlugin = exports.getElementRect = exports.getPropertyValue = exports.getRandomComponentId = exports.evaluate = exports.moment = exports.ConditionOperators = exports.jsonLogic = void 0;
|
|
34
|
+
exports.isSelectResourceWithObjectValue = exports.getItemTemplateKeys = exports.interpolateErrors = exports.getComponentSavedTypes = exports.componentValueTypes = exports._ = exports.getFocusableElements = exports.isInsideScopingComponent = exports.isPromise = exports.getDataParentComponent = exports.getComponentPath = exports.getComponentPathWithoutIndicies = exports.getBrowserInfo = exports.getIEBrowserVersion = exports.round = exports.getStringFromComponentPath = exports.isChildOf = exports.getArrayFromComponentPath = exports.isInputComponent = exports.interpolate = exports.Evaluator = exports.fastCloneDeep = exports.sanitize = exports.translateHTMLTemplate = exports.getContextButtons = exports.getContextComponents = exports.observeOverload = void 0;
|
|
23
35
|
const lodash_1 = __importDefault(require("lodash"));
|
|
24
36
|
exports._ = lodash_1.default;
|
|
25
37
|
const fetch_ponyfill_1 = __importDefault(require("fetch-ponyfill"));
|
|
26
38
|
const json_logic_js_1 = __importDefault(require("json-logic-js"));
|
|
27
39
|
exports.jsonLogic = json_logic_js_1.default;
|
|
28
40
|
const moment_timezone_1 = __importDefault(require("moment-timezone/moment-timezone"));
|
|
29
|
-
exports.moment = moment_timezone_1.default;
|
|
30
41
|
const jstimezonedetect_1 = __importDefault(require("jstimezonedetect"));
|
|
31
42
|
const operators_1 = require("./jsonlogic/operators");
|
|
32
43
|
const dompurify_1 = __importDefault(require("dompurify"));
|
|
@@ -55,6 +66,7 @@ json_logic_js_1.default.add_operation('relativeMinDate', (relativeMinDate) => {
|
|
|
55
66
|
json_logic_js_1.default.add_operation('relativeMaxDate', (relativeMaxDate) => {
|
|
56
67
|
return (0, moment_timezone_1.default)().add(relativeMaxDate, 'days').toISOString();
|
|
57
68
|
});
|
|
69
|
+
exports.moment = __importStar(require("moment-timezone/moment-timezone"));
|
|
58
70
|
function setPathToComponentAndPerentSchema(component) {
|
|
59
71
|
component.path = getComponentPath(component);
|
|
60
72
|
const dataParent = getDataParentComponent(component);
|
|
@@ -160,6 +172,20 @@ function getElementRect(element) {
|
|
|
160
172
|
};
|
|
161
173
|
}
|
|
162
174
|
exports.getElementRect = getElementRect;
|
|
175
|
+
/**
|
|
176
|
+
* Get non HTMLElement property in the window object
|
|
177
|
+
* @param {String} property
|
|
178
|
+
* @return {any || undefined}
|
|
179
|
+
*/
|
|
180
|
+
function getScriptPlugin(property) {
|
|
181
|
+
const obj = window[property];
|
|
182
|
+
if (typeof HTMLElement === 'object' ? obj instanceof HTMLElement : //DOM2
|
|
183
|
+
obj && typeof obj === 'object' && true && obj.nodeType === 1 && typeof obj.nodeName === 'string') {
|
|
184
|
+
return undefined;
|
|
185
|
+
}
|
|
186
|
+
return obj;
|
|
187
|
+
}
|
|
188
|
+
exports.getScriptPlugin = getScriptPlugin;
|
|
163
189
|
/**
|
|
164
190
|
* Determines the boolean value of a setting.
|
|
165
191
|
*
|
|
@@ -467,11 +467,11 @@ class CalendarWidget extends InputWidget_1.default {
|
|
|
467
467
|
return Flatpickr.formatDate(date, format);
|
|
468
468
|
};
|
|
469
469
|
}
|
|
470
|
-
destroy() {
|
|
471
|
-
super.destroy();
|
|
470
|
+
destroy(all = false) {
|
|
472
471
|
if (this.calendar) {
|
|
473
472
|
this.calendar.destroy();
|
|
474
473
|
}
|
|
474
|
+
super.destroy(all);
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
exports.default = CalendarWidget;
|
package/lib/mjs/Element.d.ts
CHANGED
|
@@ -117,10 +117,11 @@ export default class Element {
|
|
|
117
117
|
removeEventListener(obj: any, type: any, func?: null): this | undefined;
|
|
118
118
|
removeEventListeners(): void;
|
|
119
119
|
removeAllEvents(includeExternal: any): void;
|
|
120
|
+
teardown(): void;
|
|
120
121
|
/**
|
|
121
122
|
* Removes all event listeners attached to this component.
|
|
122
123
|
*/
|
|
123
|
-
destroy(): void;
|
|
124
|
+
destroy(all?: boolean): void;
|
|
124
125
|
/**
|
|
125
126
|
* Append an HTML DOM element to a container.
|
|
126
127
|
*
|
package/lib/mjs/Element.js
CHANGED
|
@@ -230,20 +230,29 @@ export default class Element {
|
|
|
230
230
|
this.eventHandlers = [];
|
|
231
231
|
}
|
|
232
232
|
removeAllEvents(includeExternal) {
|
|
233
|
-
|
|
234
|
-
_.each(events, (
|
|
235
|
-
|
|
236
|
-
this.
|
|
237
|
-
|
|
233
|
+
if (this.events) {
|
|
234
|
+
_.each(this.events._events, (events, type) => {
|
|
235
|
+
_.each(events, (listener) => {
|
|
236
|
+
if (listener && (this.id === listener.id) && (includeExternal || listener.internal)) {
|
|
237
|
+
this.events.off(type, listener);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
238
240
|
});
|
|
239
|
-
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
teardown() {
|
|
244
|
+
delete this.i18next;
|
|
245
|
+
delete this.events;
|
|
240
246
|
}
|
|
241
247
|
/**
|
|
242
248
|
* Removes all event listeners attached to this component.
|
|
243
249
|
*/
|
|
244
|
-
destroy() {
|
|
250
|
+
destroy(all = false) {
|
|
245
251
|
this.removeEventListeners();
|
|
246
252
|
this.removeAllEvents();
|
|
253
|
+
if (all) {
|
|
254
|
+
this.teardown();
|
|
255
|
+
}
|
|
247
256
|
}
|
|
248
257
|
/**
|
|
249
258
|
* Append an HTML DOM element to a container.
|
|
@@ -387,7 +396,7 @@ export default class Element {
|
|
|
387
396
|
* @param {Object} params - The i18n parameters to use for translation.
|
|
388
397
|
*/
|
|
389
398
|
t(text, ...args) {
|
|
390
|
-
return this.i18next.t(text, ...args);
|
|
399
|
+
return this.i18next ? this.i18next.t(text, ...args) : text;
|
|
391
400
|
}
|
|
392
401
|
/**
|
|
393
402
|
* Alias to create a text node.
|
package/lib/mjs/Form.js
CHANGED
|
@@ -35,6 +35,9 @@ export default class Form extends Element {
|
|
|
35
35
|
});
|
|
36
36
|
this.instance = null;
|
|
37
37
|
if (args[0] instanceof HTMLElement) {
|
|
38
|
+
if (this.element) {
|
|
39
|
+
delete this.element.component;
|
|
40
|
+
}
|
|
38
41
|
this.element = args[0];
|
|
39
42
|
this.options = args[2] || {};
|
|
40
43
|
this.options.events = this.events;
|
|
@@ -126,7 +129,7 @@ export default class Form extends Element {
|
|
|
126
129
|
* @return {*}
|
|
127
130
|
*/
|
|
128
131
|
set form(formParam) {
|
|
129
|
-
|
|
132
|
+
this.setForm(formParam);
|
|
130
133
|
}
|
|
131
134
|
errorForm(err) {
|
|
132
135
|
return {
|
|
@@ -224,6 +227,9 @@ export default class Form extends Element {
|
|
|
224
227
|
}
|
|
225
228
|
// A redraw has occurred so save off the new element in case of a setDisplay causing a rebuild.
|
|
226
229
|
return result.then(() => {
|
|
230
|
+
if (this.element) {
|
|
231
|
+
delete this.element.component;
|
|
232
|
+
}
|
|
227
233
|
this.element = this.instance.element;
|
|
228
234
|
return this.instance;
|
|
229
235
|
});
|
|
@@ -344,6 +350,9 @@ export default class Form extends Element {
|
|
|
344
350
|
if (!this.instance) {
|
|
345
351
|
return Promise.reject('Form not ready. Use form.ready promise');
|
|
346
352
|
}
|
|
353
|
+
if (this.element) {
|
|
354
|
+
delete this.element.component;
|
|
355
|
+
}
|
|
347
356
|
this.element = element;
|
|
348
357
|
return this.instance.attach(this.element)
|
|
349
358
|
.then((param) => {
|
|
@@ -351,6 +360,11 @@ export default class Form extends Element {
|
|
|
351
360
|
return param;
|
|
352
361
|
});
|
|
353
362
|
}
|
|
363
|
+
teardown() {
|
|
364
|
+
super.teardown();
|
|
365
|
+
delete this.instance;
|
|
366
|
+
delete this.ready;
|
|
367
|
+
}
|
|
354
368
|
}
|
|
355
369
|
// Allow simple embedding.
|
|
356
370
|
Formio.embedForm = (embed) => Form.embed(embed);
|
package/lib/mjs/PDF.js
CHANGED
|
@@ -57,8 +57,15 @@ export default class PDF extends Webform {
|
|
|
57
57
|
this.postMessage({ name: 'redraw' });
|
|
58
58
|
return this.builderMode ? Promise.resolve() : super.redraw();
|
|
59
59
|
}
|
|
60
|
+
destroy(all = false) {
|
|
61
|
+
if (this.iframeElement) {
|
|
62
|
+
delete this.iframeElement.formioComponent;
|
|
63
|
+
this.iframeElement.formioComponent = null;
|
|
64
|
+
}
|
|
65
|
+
super.destroy(all);
|
|
66
|
+
}
|
|
60
67
|
rebuild() {
|
|
61
|
-
if (this.builderMode && this.component.components) {
|
|
68
|
+
if (this.attached && this.builderMode && this.component.components) {
|
|
62
69
|
this.destroyComponents();
|
|
63
70
|
this.addComponents();
|
|
64
71
|
return Promise.resolve();
|
package/lib/mjs/PDFBuilder.js
CHANGED
|
@@ -251,9 +251,9 @@ export default class PDFBuilder extends WebformBuilder {
|
|
|
251
251
|
});
|
|
252
252
|
return this.webform;
|
|
253
253
|
}
|
|
254
|
-
destroy(
|
|
255
|
-
super.destroy(
|
|
256
|
-
this.webform.destroy(
|
|
254
|
+
destroy(all = false) {
|
|
255
|
+
super.destroy(all);
|
|
256
|
+
this.webform.destroy(all);
|
|
257
257
|
}
|
|
258
258
|
// d8b 8888888888 888
|
|
259
259
|
// Y8P 888 888
|
package/lib/mjs/Webform.d.ts
CHANGED
|
@@ -382,7 +382,6 @@ declare class Webform extends NestedDataComponent {
|
|
|
382
382
|
*/
|
|
383
383
|
init(): Promise<any>;
|
|
384
384
|
executeFormController(): false | undefined;
|
|
385
|
-
destroy(deleteFromGlobal?: boolean): void;
|
|
386
385
|
build(element: any): Promise<any>;
|
|
387
386
|
getClassName(): string;
|
|
388
387
|
render(): any;
|
package/lib/mjs/Webform.js
CHANGED
|
@@ -142,7 +142,7 @@ export default class Webform extends NestedDataComponent {
|
|
|
142
142
|
formOptions = elementOrOptions;
|
|
143
143
|
}
|
|
144
144
|
super(null, getOptions(formOptions));
|
|
145
|
-
this.element
|
|
145
|
+
this.setElement(element);
|
|
146
146
|
// Keep track of all available forms globally.
|
|
147
147
|
Formio.forms[this.id] = this;
|
|
148
148
|
// Set the base url.
|
|
@@ -331,10 +331,12 @@ export default class Webform extends NestedDataComponent {
|
|
|
331
331
|
* @return {*}
|
|
332
332
|
*/
|
|
333
333
|
addLanguage(code, lang, active = false) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
334
|
+
if (this.i18next) {
|
|
335
|
+
var translations = _.assign(fastCloneDeep(i18nDefaults.resources.en.translation), lang);
|
|
336
|
+
this.i18next.addResourceBundle(code, 'translation', translations, true, true);
|
|
337
|
+
if (active) {
|
|
338
|
+
this.language = code;
|
|
339
|
+
}
|
|
338
340
|
}
|
|
339
341
|
}
|
|
340
342
|
keyboardCatchableElement(element) {
|
|
@@ -913,18 +915,21 @@ export default class Webform extends NestedDataComponent {
|
|
|
913
915
|
});
|
|
914
916
|
});
|
|
915
917
|
}
|
|
916
|
-
|
|
918
|
+
teardown() {
|
|
919
|
+
this.emit('formDelete', this.id);
|
|
920
|
+
delete Formio.forms[this.id];
|
|
921
|
+
delete this.executeShortcuts;
|
|
922
|
+
delete this.triggerSaveDraft;
|
|
923
|
+
super.teardown();
|
|
924
|
+
}
|
|
925
|
+
destroy(all = false) {
|
|
917
926
|
this.off('submitButton');
|
|
918
927
|
this.off('checkValidity');
|
|
919
928
|
this.off('requestUrl');
|
|
920
929
|
this.off('resetForm');
|
|
921
930
|
this.off('deleteSubmission');
|
|
922
931
|
this.off('refreshData');
|
|
923
|
-
|
|
924
|
-
this.emit('formDelete', this.id);
|
|
925
|
-
delete Formio.forms[this.id];
|
|
926
|
-
}
|
|
927
|
-
return super.destroy();
|
|
932
|
+
return super.destroy(all);
|
|
928
933
|
}
|
|
929
934
|
build(element) {
|
|
930
935
|
if (element || this.element) {
|
|
@@ -958,7 +963,7 @@ export default class Webform extends NestedDataComponent {
|
|
|
958
963
|
return this.attach(this.element);
|
|
959
964
|
}
|
|
960
965
|
attach(element) {
|
|
961
|
-
this.element
|
|
966
|
+
this.setElement(element);
|
|
962
967
|
this.loadRefs(element, { webform: 'single' });
|
|
963
968
|
const childPromise = this.attachComponents(this.refs.webform);
|
|
964
969
|
this.addEventListener(document, 'keydown', this.executeShortcuts);
|
|
@@ -118,7 +118,6 @@ export default class WebformBuilder extends Component {
|
|
|
118
118
|
isParentSaveChildMethod(parentComp: any): boolean;
|
|
119
119
|
getParentElement(element: any): any;
|
|
120
120
|
addBuilderComponentInfo(component: any): any;
|
|
121
|
-
destroy(deleteFromGlobal: any): void;
|
|
122
121
|
addBuilderGroup(name: any, group: any): void;
|
|
123
122
|
updateBuilderGroup(name: any, group: any): void;
|
|
124
123
|
generateKey(info: any): any;
|
|
@@ -30,7 +30,7 @@ export default class WebformBuilder extends Component {
|
|
|
30
30
|
options.skipInit = false;
|
|
31
31
|
options.display = options.display || 'form';
|
|
32
32
|
super(null, options);
|
|
33
|
-
this.element
|
|
33
|
+
this.setElement(element);
|
|
34
34
|
this.dragulaLib = dragula;
|
|
35
35
|
this.builderHeight = 0;
|
|
36
36
|
this.schemas = {};
|
|
@@ -1584,11 +1584,11 @@ export default class WebformBuilder extends Component {
|
|
|
1584
1584
|
this.webform.clear();
|
|
1585
1585
|
}
|
|
1586
1586
|
}
|
|
1587
|
-
destroy(
|
|
1587
|
+
destroy(all = false) {
|
|
1588
1588
|
if (this.webform.initialized) {
|
|
1589
|
-
this.webform.destroy(
|
|
1589
|
+
this.webform.destroy(all);
|
|
1590
1590
|
}
|
|
1591
|
-
super.destroy(
|
|
1591
|
+
super.destroy(all);
|
|
1592
1592
|
}
|
|
1593
1593
|
addBuilderGroup(name, group) {
|
|
1594
1594
|
if (!this.groups[name]) {
|
package/lib/mjs/Wizard.js
CHANGED
|
@@ -335,7 +335,6 @@ declare class Component extends Element {
|
|
|
335
335
|
createComponentModal(element: any, modalShouldBeOpened: any, currentValue: any): ComponentModal;
|
|
336
336
|
attach(element: any): Promise<void>;
|
|
337
337
|
componentModal: any;
|
|
338
|
-
element: any;
|
|
339
338
|
restoreFocus(): void;
|
|
340
339
|
addShortcut(element: any, shortcut: any): void;
|
|
341
340
|
removeShortcut(element: any, shortcut: any): void;
|
|
@@ -364,6 +363,8 @@ declare class Component extends Element {
|
|
|
364
363
|
*/
|
|
365
364
|
inContext(component: any): boolean;
|
|
366
365
|
get viewOnly(): any;
|
|
366
|
+
setElement(element: any): void;
|
|
367
|
+
element: any;
|
|
367
368
|
createViewOnlyElement(): any;
|
|
368
369
|
get defaultViewOnlyValue(): string;
|
|
369
370
|
/**
|