@formio/js 5.3.4 → 5.3.6
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.js +1 -1
- package/dist/formio.embed.min.js +1 -1
- package/dist/formio.embed.min.js.LICENSE.txt +1 -1
- package/dist/formio.form.js +8 -8
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +1 -1
- package/dist/formio.full.js +8 -8
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +1 -1
- package/dist/formio.js +4 -4
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -1
- package/dist/formio.utils.js +2 -2
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +1 -1
- package/lib/cjs/Embed.js +1 -1
- package/lib/cjs/Formio.js +1 -1
- package/lib/cjs/components/Components.js +3 -9
- package/lib/cjs/components/_classes/component/Component.d.ts +8 -0
- package/lib/cjs/components/_classes/component/Component.js +18 -0
- package/lib/cjs/components/_classes/nested/NestedComponent.js +4 -9
- package/lib/cjs/components/datagrid/DataGrid.js +18 -3
- package/lib/cjs/package.json +1 -1
- package/lib/mjs/Embed.js +1 -1
- package/lib/mjs/Formio.js +1 -1
- package/lib/mjs/components/Components.js +3 -9
- package/lib/mjs/components/_classes/component/Component.d.ts +8 -0
- package/lib/mjs/components/_classes/component/Component.js +18 -0
- package/lib/mjs/components/_classes/nested/NestedComponent.js +4 -8
- package/lib/mjs/components/datagrid/DataGrid.js +18 -3
- package/lib/mjs/package.json +1 -1
- package/package.json +2 -2
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
/*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE */
|
|
22
22
|
|
|
23
|
-
/*! formiojs v5.3.
|
|
23
|
+
/*! formiojs v5.3.6 | https://unpkg.com/formiojs@5.3.6/LICENSE.txt */
|
|
24
24
|
|
|
25
25
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
26
26
|
|
package/dist/formio.utils.js
CHANGED
|
@@ -1771,7 +1771,7 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
|
|
|
1771
1771
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1772
1772
|
|
|
1773
1773
|
"use strict";
|
|
1774
|
-
eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dereferenceProcessInfo = exports.dereferenceProcess = void 0;\nconst error_1 = __webpack_require__(/*! ../../error */ \"../core/lib/error/index.js\");\nconst utils_1 = __webpack_require__(/*! ../../utils */ \"../core/lib/utils/index.js\");\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/lodash.js\");\nconst isDereferenceableDataTableComponent = (component) => {\n var _a, _b, _c;\n return (component &&\n component.type === 'datatable' &&\n ((_a = component.fetch) === null || _a === void 0 ? void 0 : _a.enableFetch) === true &&\n ((_b = component.fetch) === null || _b === void 0 ? void 0 : _b.dataSrc) === 'resource' &&\n typeof ((_c = component.fetch) === null || _c === void 0 ? void 0 : _c.resource) === 'string');\n};\nconst isDereferenceableSelectResourceComponent = (component) => {\n return (component &&\n component.type === 'select' &&\n component.reference &&\n component.dataSrc === 'resource');\n};\n/**\n * This function is used to dereference reference IDs contained in the form.\n * It is currently only compatible with Data Table components.\n * @todo Add support for other components (if applicable) and for submission data dereferencing (e.g. save-as-reference, currently a property action).\n */\nconst dereferenceProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n const { component, config, scope, path, value } = context;\n if (!scope.dereference) {\n scope.dereference = {};\n }\n const dtDereference = isDereferenceableDataTableComponent(component);\n const selectResourceDereference = isDereferenceableSelectResourceComponent(component);\n if (!dtDereference && !selectResourceDereference) {\n return;\n }\n if (!(config === null || config === void 0 ? void 0 : config.database)) {\n throw new error_1.ProcessorError('Cannot dereference resource value without a database config object', context, 'dereference');\n }\n try {\n if (dtDereference) {\n const components = yield ((_a = config.database) === null || _a === void 0 ? void 0 : _a.dereferenceDataTableComponent(component));\n const vmCompatibleComponents = (0, utils_1.fastCloneDeep)(components);\n scope.dereference[path] = vmCompatibleComponents;\n // Modify the components in place; we have to do this now as opposed to a \"post-processor\" step because\n // eachComponentDataAsync will immediately turn around and introspect these components in the case of Data Table\n component.components = vmCompatibleComponents;\n }\n else if (selectResourceDereference) {\n if ((0, lodash_1.isEmpty)(value) || !(0, lodash_1.isObject)(value)) {\n return;\n }\n const references = yield ((_b = config.database) === null || _b === void 0 ? void 0 : _b.dereferenceSelectResourceValue(component, value));\n if ((0, lodash_1.isEmpty)(references) || !(0, lodash_1.isArray)(references)) {\n return;\n }\n scope.dereference[path] =
|
|
1774
|
+
eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dereferenceProcessInfo = exports.dereferenceProcess = void 0;\nconst error_1 = __webpack_require__(/*! ../../error */ \"../core/lib/error/index.js\");\nconst utils_1 = __webpack_require__(/*! ../../utils */ \"../core/lib/utils/index.js\");\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/lodash.js\");\nconst isDereferenceableDataTableComponent = (component) => {\n var _a, _b, _c;\n return (component &&\n component.type === 'datatable' &&\n ((_a = component.fetch) === null || _a === void 0 ? void 0 : _a.enableFetch) === true &&\n ((_b = component.fetch) === null || _b === void 0 ? void 0 : _b.dataSrc) === 'resource' &&\n typeof ((_c = component.fetch) === null || _c === void 0 ? void 0 : _c.resource) === 'string');\n};\nconst isDereferenceableSelectResourceComponent = (component) => {\n return (component &&\n component.type === 'select' &&\n component.reference &&\n component.dataSrc === 'resource');\n};\n/**\n * This function is used to dereference reference IDs contained in the form.\n * It is currently only compatible with Data Table components.\n * @todo Add support for other components (if applicable) and for submission data dereferencing (e.g. save-as-reference, currently a property action).\n */\nconst dereferenceProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n const { component, config, scope, path, value } = context;\n if (!scope.dereference) {\n scope.dereference = {};\n }\n const dtDereference = isDereferenceableDataTableComponent(component);\n const selectResourceDereference = isDereferenceableSelectResourceComponent(component);\n if (!dtDereference && !selectResourceDereference) {\n return;\n }\n if (!(config === null || config === void 0 ? void 0 : config.database)) {\n throw new error_1.ProcessorError('Cannot dereference resource value without a database config object', context, 'dereference');\n }\n try {\n if (dtDereference) {\n const components = yield ((_a = config.database) === null || _a === void 0 ? void 0 : _a.dereferenceDataTableComponent(component));\n const vmCompatibleComponents = (0, utils_1.fastCloneDeep)(components);\n scope.dereference[path] = vmCompatibleComponents;\n // Modify the components in place; we have to do this now as opposed to a \"post-processor\" step because\n // eachComponentDataAsync will immediately turn around and introspect these components in the case of Data Table\n component.components = vmCompatibleComponents;\n }\n else if (selectResourceDereference) {\n if ((0, lodash_1.isEmpty)(value) || !(0, lodash_1.isObject)(value)) {\n return;\n }\n const references = yield ((_b = config.database) === null || _b === void 0 ? void 0 : _b.dereferenceSelectResourceValue(component, value));\n if ((0, lodash_1.isEmpty)(references) || !(0, lodash_1.isArray)(references)) {\n return;\n }\n const vmCompatibleReferences = (0, utils_1.fastCloneDeep)(references);\n scope.dereference[path] = vmCompatibleReferences;\n if (component.multiple) {\n (0, lodash_1.each)(value, (item) => {\n var _a;\n const itemId = (_a = item._id) === null || _a === void 0 ? void 0 : _a.toString();\n const reference = (0, lodash_1.find)(vmCompatibleReferences, (refItem) => { var _a; return ((_a = refItem._id) === null || _a === void 0 ? void 0 : _a.toString()) === itemId; });\n if ((0, lodash_1.isObject)(reference)) {\n (0, lodash_1.assign)(item, reference);\n }\n });\n }\n else {\n (0, lodash_1.assign)(value, vmCompatibleReferences[0]);\n }\n }\n }\n catch (err) {\n throw new error_1.ProcessorError(err.message || err, context, 'dereference');\n }\n});\nexports.dereferenceProcess = dereferenceProcess;\nexports.dereferenceProcessInfo = {\n name: 'dereference',\n shouldProcess: () => true,\n process: exports.dereferenceProcess,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/dereference/index.js?\n}");
|
|
1775
1775
|
|
|
1776
1776
|
/***/ }),
|
|
1777
1777
|
|
|
@@ -1903,7 +1903,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexp
|
|
|
1903
1903
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1904
1904
|
|
|
1905
1905
|
"use strict";
|
|
1906
|
-
eval("{\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.postValidateProcessInfo = exports.validateProcessInfo = exports.validateServerProcessInfo = exports.validateCustomProcessInfo = exports.validatePostProcessSync = exports.validatePostProcess = exports.validateAllProcessSync = exports.validateAllProcess = exports.validateServerProcessSync = exports.validateServerProcess = exports.validateCustomProcessSync = exports.validateCustomProcess = exports.validateProcessSync = exports.validateProcess = exports.shouldSkipValidation = exports.shouldSkipValidationSimple = exports.shouldSkipValidationCustom = exports._shouldSkipValidation = void 0;\nexports.validationRules = validationRules;\nexports.isInputComponent = isInputComponent;\nexports.isValueHidden = isValueHidden;\nexports.isForcedHidden = isForcedHidden;\nexports.shouldValidateAll = shouldValidateAll;\nexports.shouldValidateCustom = shouldValidateCustom;\nexports.shouldValidateServer = shouldValidateServer;\nconst rules_1 = __webpack_require__(/*! ./rules */ \"../core/lib/process/validation/rules/index.js\");\nconst find_1 = __importDefault(__webpack_require__(/*! lodash/find */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/find.js\"));\nconst get_1 = __importDefault(__webpack_require__(/*! lodash/get */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/get.js\"));\nconst pick_1 = __importDefault(__webpack_require__(/*! lodash/pick */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/pick.js\"));\nconst has_1 = __importDefault(__webpack_require__(/*! lodash/has */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/has.js\"));\nconst error_1 = __webpack_require__(/*! ../../utils/error */ \"../core/lib/utils/error.js\");\nconst conditions_1 = __webpack_require__(/*! ../conditions */ \"../core/lib/process/conditions/index.js\");\n// Cleans up validation errors to remove unnessesary parts\n// and make them transferable to ivm.\nconst cleanupValidationError = (error) => (Object.assign(Object.assign({}, error), { context: (0, pick_1.default)(error.context, [\n 'component',\n 'path',\n 'index',\n 'value',\n 'field',\n 'hasLabel',\n 'processor',\n 'setting',\n 'pattern',\n 'length',\n 'min',\n 'max',\n 'maxDate',\n 'minDate',\n 'maxYear',\n 'minYear',\n 'minCount',\n 'maxCount',\n 'regex',\n ]) }));\nfunction validationRules(context, rules, skipValidation) {\n if (skipValidation && skipValidation(context)) {\n return [];\n }\n const validationRules = [];\n return rules.reduce((acc, rule) => {\n if (rule.shouldProcess && rule.shouldProcess(context)) {\n acc.push(rule);\n }\n return acc;\n }, validationRules);\n}\nfunction isInputComponent(context) {\n const { component } = context;\n return !component.hasOwnProperty('input') || component.input;\n}\nfunction isValueHidden(context) {\n const { component } = context;\n if (component.protected) {\n return false;\n }\n if ((component.hasOwnProperty('persistent') && !component.persistent) ||\n component.persistent === 'client-only') {\n return true;\n }\n return false;\n}\nfunction isForcedHidden(context, isConditionallyHidden) {\n var _a, _b;\n const { component } = context;\n // if conditionsl were checked earlier, take the result from scope\n const conditionallyHidden = (0, has_1.default)(component, 'scope.conditionallyHidden')\n ? (_a = component.scope) === null || _a === void 0 ? void 0 : _a.conditionallyHidden\n : isConditionallyHidden(context);\n if (conditionallyHidden) {\n return true;\n }\n if ((_b = component.scope) === null || _b === void 0 ? void 0 : _b.intentionallyHidden) {\n return true;\n }\n if (component.hasOwnProperty('hidden')) {\n return !!component.hidden;\n }\n return false;\n}\nconst _shouldSkipValidation = (context, isConditionallyHidden) => {\n const { component } = context;\n const rules = [\n // Skip validation if component is readOnly\n // () => this.options.readOnly,\n // Do not check validations if component is not an input component.\n () => !isInputComponent(context),\n // Check to see if we are editing and if so, check component persistence.\n () => isValueHidden(context),\n // Force valid if component is hidden.\n () => !component.validateWhenHidden && isForcedHidden(context, isConditionallyHidden),\n ];\n return rules.some((pred) => pred());\n};\nexports._shouldSkipValidation = _shouldSkipValidation;\nconst shouldSkipValidationCustom = (context) => {\n return (0, exports._shouldSkipValidation)(context, conditions_1.isCustomConditionallyHidden);\n};\nexports.shouldSkipValidationCustom = shouldSkipValidationCustom;\nconst shouldSkipValidationSimple = (context) => {\n return (0, exports._shouldSkipValidation)(context, conditions_1.isSimpleConditionallyHidden);\n};\nexports.shouldSkipValidationSimple = shouldSkipValidationSimple;\nconst shouldSkipValidation = (context) => {\n return (0, exports._shouldSkipValidation)(context, conditions_1.isConditionallyHidden);\n};\nexports.shouldSkipValidation = shouldSkipValidation;\nfunction shouldValidateAll(context) {\n return validationRules(context, rules_1.rules, exports.shouldSkipValidation).length > 0;\n}\nfunction shouldValidateCustom(context) {\n const { component } = context;\n if (component.customConditional) {\n return true;\n }\n return !(0, exports.shouldSkipValidationCustom)(context);\n}\nfunction shouldValidateServer(context) {\n const { component } = context;\n if (component.customConditional) {\n return false;\n }\n if ((0, exports.shouldSkipValidationSimple)(context)) {\n return false;\n }\n return shouldValidateAll(context);\n}\nfunction handleError(error, context) {\n const { scope, path } = context;\n if (error) {\n const cleanedError = cleanupValidationError(error);\n cleanedError.context.path = path;\n if (!(0, find_1.default)(scope.errors, {\n errorKeyOrMessage: cleanedError.errorKeyOrMessage,\n context: {\n path: path,\n },\n })) {\n if (!scope.validated)\n scope.validated = [];\n if (!scope.errors)\n scope.errors = [];\n scope.errors.push(cleanedError);\n scope.validated.push({ path, error: cleanedError });\n }\n }\n}\nconst validateProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n const { component, data, row, path, instance, scope, rules, skipValidation } = context;\n let { value } = context;\n if (!scope.validated)\n scope.validated = [];\n if (!scope.errors)\n scope.errors = [];\n if (!rules || !rules.length) {\n return;\n }\n if (component.multiple && Array.isArray(value) && value.length > 0) {\n const fullValueRules = rules.filter((rule) => rule.fullValue);\n const otherRules = rules.filter((rule) => !rule.fullValue);\n for (let i = 0; i < value.length; i++) {\n const amendedPath = `${path}[${i}]`;\n let amendedValue = (0, get_1.default)(data, amendedPath);\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data)) {\n return;\n }\n const rulesToExecute = validationRules(context, otherRules, skipValidation);\n if (!rulesToExecute.length) {\n continue;\n }\n if (component.truncateMultipleSpaces && amendedValue && typeof amendedValue === 'string') {\n amendedValue = amendedValue.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n if (rule && rule.process) {\n handleError(yield rule.process(Object.assign(Object.assign({}, context), { value: amendedValue, index: i, path: amendedPath })), context);\n }\n }\n }\n for (const rule of fullValueRules) {\n if (rule && rule.process) {\n handleError(yield rule.process(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n return;\n }\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data, row)) {\n return;\n }\n const rulesToExecute = validationRules(context, rules, skipValidation);\n if (!rulesToExecute.length) {\n return;\n }\n if (component.truncateMultipleSpaces && value && typeof value === 'string') {\n value = value.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n try {\n if (rule && rule.process) {\n handleError(yield rule.process(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n catch (err) {\n console.error('Validator error:', (0, error_1.getErrorMessage)(err));\n }\n }\n return;\n});\nexports.validateProcess = validateProcess;\nconst validateProcessSync = (context) => {\n const { component, data, row, path, instance, scope, rules, skipValidation } = context;\n let { value } = context;\n if (!scope.validated)\n scope.validated = [];\n if (!scope.errors)\n scope.errors = [];\n if (!rules || !rules.length) {\n return;\n }\n if (component.multiple && Array.isArray(value) && value.length > 0) {\n const fullValueRules = rules.filter((rule) => rule.fullValue);\n const otherRules = rules.filter((rule) => !rule.fullValue);\n for (let i = 0; i < value.length; i++) {\n const amendedPath = `${path}[${i}]`;\n let amendedValue = (instance === null || instance === void 0 ? void 0 : instance.inEditGrid) ? value[i] : (0, get_1.default)(data, amendedPath);\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data)) {\n return;\n }\n const rulesToExecute = validationRules(context, otherRules, skipValidation);\n if (!rulesToExecute.length) {\n continue;\n }\n if (component.truncateMultipleSpaces && amendedValue && typeof amendedValue === 'string') {\n amendedValue = amendedValue.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n if (rule && rule.processSync) {\n handleError(rule.processSync(Object.assign(Object.assign({}, context), { value: amendedValue, index: i, path: amendedPath })), context);\n }\n }\n }\n for (const rule of fullValueRules) {\n if (rule && rule.processSync) {\n handleError(rule.processSync(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n return;\n }\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data, row)) {\n return;\n }\n const rulesToExecute = validationRules(context, rules, skipValidation);\n if (!rulesToExecute.length) {\n return;\n }\n if (component.truncateMultipleSpaces && value && typeof value === 'string') {\n value = value.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n try {\n if (rule && rule.processSync) {\n handleError(rule.processSync(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n catch (err) {\n console.error('Validator error:', (0, error_1.getErrorMessage)(err));\n }\n }\n return;\n};\nexports.validateProcessSync = validateProcessSync;\nconst validateCustomProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n context.rules = context.rules || rules_1.evaluationRules;\n context.skipValidation = exports.shouldSkipValidationCustom;\n return (0, exports.validateProcess)(context);\n});\nexports.validateCustomProcess = validateCustomProcess;\nconst validateCustomProcessSync = (context) => {\n context.rules = context.rules || rules_1.evaluationRules;\n context.skipValidation = exports.shouldSkipValidationCustom;\n return (0, exports.validateProcessSync)(context);\n};\nexports.validateCustomProcessSync = validateCustomProcessSync;\nconst validateServerProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n context.rules = context.rules || rules_1.serverRules;\n context.skipValidation = exports.shouldSkipValidationSimple;\n return (0, exports.validateProcess)(context);\n});\nexports.validateServerProcess = validateServerProcess;\nconst validateServerProcessSync = (context) => {\n context.rules = context.rules || rules_1.serverRules;\n context.skipValidation = exports.shouldSkipValidationSimple;\n return (0, exports.validateProcessSync)(context);\n};\nexports.validateServerProcessSync = validateServerProcessSync;\nconst validateAllProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n context.rules = context.rules || rules_1.rules;\n context.skipValidation = exports.shouldSkipValidation;\n return (0, exports.validateProcess)(context);\n});\nexports.validateAllProcess = validateAllProcess;\nconst validateAllProcessSync = (context) => {\n context.rules = context.rules || rules_1.rules;\n context.skipValidation = exports.shouldSkipValidation;\n return (0, exports.validateProcessSync)(context);\n};\nexports.validateAllProcessSync = validateAllProcessSync;\nconst validatePostProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n yield (0, exports.validateAllProcess)(context);\n});\nexports.validatePostProcess = validatePostProcess;\nconst validatePostProcessSync = (context) => {\n (0, exports.validateAllProcessSync)(context);\n};\nexports.validatePostProcessSync = validatePostProcessSync;\nexports.validateCustomProcessInfo = {\n name: 'validateCustom',\n process: exports.validateCustomProcess,\n processSync: exports.validateCustomProcessSync,\n shouldProcess: shouldValidateCustom,\n};\nexports.validateServerProcessInfo = {\n name: 'validateServer',\n process: exports.validateServerProcess,\n processSync: exports.validateServerProcessSync,\n shouldProcess: shouldValidateServer,\n};\nexports.validateProcessInfo = {\n name: 'validate',\n process: exports.validateAllProcess,\n processSync: exports.validateAllProcessSync,\n shouldProcess: shouldValidateAll,\n};\nexports.postValidateProcessInfo = {\n name: 'validate',\n postProcess: exports.validatePostProcess,\n postProcessSync: exports.validatePostProcessSync,\n shouldProcess: shouldValidateAll,\n};\n__exportStar(__webpack_require__(/*! ./util */ \"../core/lib/process/validation/util.js\"), exports);\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/index.js?\n}");
|
|
1906
|
+
eval("{\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.postValidateProcessInfo = exports.validateProcessInfo = exports.validateServerProcessInfo = exports.validateCustomProcessInfo = exports.validatePostProcessSync = exports.validatePostProcess = exports.validateAllProcessSync = exports.validateAllProcess = exports.validateServerProcessSync = exports.validateServerProcess = exports.validateCustomProcessSync = exports.validateCustomProcess = exports.validateProcessSync = exports.validateProcess = exports.shouldSkipValidation = exports.shouldSkipValidationSimple = exports.shouldSkipValidationCustom = exports._shouldSkipValidation = void 0;\nexports.validationRules = validationRules;\nexports.isInputComponent = isInputComponent;\nexports.isValueHidden = isValueHidden;\nexports.isForcedHidden = isForcedHidden;\nexports.shouldValidateAll = shouldValidateAll;\nexports.shouldValidateCustom = shouldValidateCustom;\nexports.getMultipleComponentValue = getMultipleComponentValue;\nexports.shouldValidateServer = shouldValidateServer;\nconst rules_1 = __webpack_require__(/*! ./rules */ \"../core/lib/process/validation/rules/index.js\");\nconst find_1 = __importDefault(__webpack_require__(/*! lodash/find */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/find.js\"));\nconst get_1 = __importDefault(__webpack_require__(/*! lodash/get */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/get.js\"));\nconst pick_1 = __importDefault(__webpack_require__(/*! lodash/pick */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/pick.js\"));\nconst has_1 = __importDefault(__webpack_require__(/*! lodash/has */ \"../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/has.js\"));\nconst error_1 = __webpack_require__(/*! ../../utils/error */ \"../core/lib/utils/error.js\");\nconst conditions_1 = __webpack_require__(/*! ../conditions */ \"../core/lib/process/conditions/index.js\");\n// Cleans up validation errors to remove unnessesary parts\n// and make them transferable to ivm.\nconst cleanupValidationError = (error) => (Object.assign(Object.assign({}, error), { context: (0, pick_1.default)(error.context, [\n 'component',\n 'path',\n 'index',\n 'value',\n 'field',\n 'hasLabel',\n 'processor',\n 'setting',\n 'pattern',\n 'length',\n 'min',\n 'max',\n 'maxDate',\n 'minDate',\n 'maxYear',\n 'minYear',\n 'minCount',\n 'maxCount',\n 'regex',\n ]) }));\nfunction validationRules(context, rules, skipValidation) {\n if (skipValidation && skipValidation(context)) {\n return [];\n }\n const validationRules = [];\n return rules.reduce((acc, rule) => {\n if (rule.shouldProcess && rule.shouldProcess(context)) {\n acc.push(rule);\n }\n return acc;\n }, validationRules);\n}\nfunction isInputComponent(context) {\n const { component } = context;\n return !component.hasOwnProperty('input') || component.input;\n}\nfunction isValueHidden(context) {\n const { component } = context;\n if (component.protected) {\n return false;\n }\n if ((component.hasOwnProperty('persistent') && !component.persistent) ||\n component.persistent === 'client-only') {\n return true;\n }\n return false;\n}\nfunction isForcedHidden(context, isConditionallyHidden) {\n var _a, _b;\n const { component } = context;\n // if conditionsl were checked earlier, take the result from scope\n const conditionallyHidden = (0, has_1.default)(component, 'scope.conditionallyHidden')\n ? (_a = component.scope) === null || _a === void 0 ? void 0 : _a.conditionallyHidden\n : isConditionallyHidden(context);\n if (conditionallyHidden) {\n return true;\n }\n if ((_b = component.scope) === null || _b === void 0 ? void 0 : _b.intentionallyHidden) {\n return true;\n }\n if (component.hasOwnProperty('hidden')) {\n return !!component.hidden;\n }\n return false;\n}\nconst _shouldSkipValidation = (context, isConditionallyHidden) => {\n const { component } = context;\n const rules = [\n // Skip validation if component is readOnly\n // () => this.options.readOnly,\n // Do not check validations if component is not an input component.\n () => !isInputComponent(context),\n // Check to see if we are editing and if so, check component persistence.\n () => isValueHidden(context),\n // Force valid if component is hidden.\n () => !component.validateWhenHidden && isForcedHidden(context, isConditionallyHidden),\n ];\n return rules.some((pred) => pred());\n};\nexports._shouldSkipValidation = _shouldSkipValidation;\nconst shouldSkipValidationCustom = (context) => {\n return (0, exports._shouldSkipValidation)(context, conditions_1.isCustomConditionallyHidden);\n};\nexports.shouldSkipValidationCustom = shouldSkipValidationCustom;\nconst shouldSkipValidationSimple = (context) => {\n return (0, exports._shouldSkipValidation)(context, conditions_1.isSimpleConditionallyHidden);\n};\nexports.shouldSkipValidationSimple = shouldSkipValidationSimple;\nconst shouldSkipValidation = (context) => {\n return (0, exports._shouldSkipValidation)(context, conditions_1.isConditionallyHidden);\n};\nexports.shouldSkipValidation = shouldSkipValidation;\nfunction shouldValidateAll(context) {\n return validationRules(context, rules_1.rules, exports.shouldSkipValidation).length > 0;\n}\nfunction shouldValidateCustom(context) {\n const { component } = context;\n if (component.customConditional) {\n return true;\n }\n return !(0, exports.shouldSkipValidationCustom)(context);\n}\n/**\n * Resolve a single value from a multiple-value component for per-index validation.\n * EditGrid rows use the context value directly. Otherwise read from submission data when\n * indexed paths exist, and fall back to the context value when they do not (e.g. nested\n * form fields where path is local but data is the root submission).\n */\nfunction getMultipleComponentValue(data, path, index, value, instance) {\n if (instance === null || instance === void 0 ? void 0 : instance.inEditGrid) {\n return value[index];\n }\n const amendedPath = `${path}[${index}]`;\n const dataValue = (0, get_1.default)(data, amendedPath);\n if (dataValue !== undefined) {\n return dataValue;\n }\n return value[index];\n}\nfunction shouldValidateServer(context) {\n const { component } = context;\n if (component.customConditional) {\n return false;\n }\n if ((0, exports.shouldSkipValidationSimple)(context)) {\n return false;\n }\n return shouldValidateAll(context);\n}\nfunction handleError(error, context) {\n const { scope, path } = context;\n if (error) {\n const cleanedError = cleanupValidationError(error);\n cleanedError.context.path = path;\n if (!(0, find_1.default)(scope.errors, {\n errorKeyOrMessage: cleanedError.errorKeyOrMessage,\n context: {\n path: path,\n },\n })) {\n if (!scope.validated)\n scope.validated = [];\n if (!scope.errors)\n scope.errors = [];\n scope.errors.push(cleanedError);\n scope.validated.push({ path, error: cleanedError });\n }\n }\n}\nconst validateProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n const { component, data, row, path, instance, scope, rules, skipValidation } = context;\n let { value } = context;\n if (!scope.validated)\n scope.validated = [];\n if (!scope.errors)\n scope.errors = [];\n if (!rules || !rules.length) {\n return;\n }\n if (component.multiple && Array.isArray(value) && value.length > 0) {\n const fullValueRules = rules.filter((rule) => rule.fullValue);\n const otherRules = rules.filter((rule) => !rule.fullValue);\n for (let i = 0; i < value.length; i++) {\n const amendedPath = `${path}[${i}]`;\n let amendedValue = getMultipleComponentValue(data, path, i, value, instance);\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data)) {\n return;\n }\n const rulesToExecute = validationRules(context, otherRules, skipValidation);\n if (!rulesToExecute.length) {\n continue;\n }\n if (component.truncateMultipleSpaces && amendedValue && typeof amendedValue === 'string') {\n amendedValue = amendedValue.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n if (rule && rule.process) {\n handleError(yield rule.process(Object.assign(Object.assign({}, context), { value: amendedValue, index: i, path: amendedPath })), context);\n }\n }\n }\n for (const rule of fullValueRules) {\n if (rule && rule.process) {\n handleError(yield rule.process(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n return;\n }\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data, row)) {\n return;\n }\n const rulesToExecute = validationRules(context, rules, skipValidation);\n if (!rulesToExecute.length) {\n return;\n }\n if (component.truncateMultipleSpaces && value && typeof value === 'string') {\n value = value.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n try {\n if (rule && rule.process) {\n handleError(yield rule.process(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n catch (err) {\n console.error('Validator error:', (0, error_1.getErrorMessage)(err));\n }\n }\n return;\n});\nexports.validateProcess = validateProcess;\nconst validateProcessSync = (context) => {\n const { component, data, row, path, instance, scope, rules, skipValidation } = context;\n let { value } = context;\n if (!scope.validated)\n scope.validated = [];\n if (!scope.errors)\n scope.errors = [];\n if (!rules || !rules.length) {\n return;\n }\n if (component.multiple && Array.isArray(value) && value.length > 0) {\n const fullValueRules = rules.filter((rule) => rule.fullValue);\n const otherRules = rules.filter((rule) => !rule.fullValue);\n for (let i = 0; i < value.length; i++) {\n const amendedPath = `${path}[${i}]`;\n let amendedValue = getMultipleComponentValue(data, path, i, value, instance);\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data)) {\n return;\n }\n const rulesToExecute = validationRules(context, otherRules, skipValidation);\n if (!rulesToExecute.length) {\n continue;\n }\n if (component.truncateMultipleSpaces && amendedValue && typeof amendedValue === 'string') {\n amendedValue = amendedValue.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n if (rule && rule.processSync) {\n handleError(rule.processSync(Object.assign(Object.assign({}, context), { value: amendedValue, index: i, path: amendedPath })), context);\n }\n }\n }\n for (const rule of fullValueRules) {\n if (rule && rule.processSync) {\n handleError(rule.processSync(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n return;\n }\n if (instance === null || instance === void 0 ? void 0 : instance.shouldSkipValidation(data, row)) {\n return;\n }\n const rulesToExecute = validationRules(context, rules, skipValidation);\n if (!rulesToExecute.length) {\n return;\n }\n if (component.truncateMultipleSpaces && value && typeof value === 'string') {\n value = value.trim().replace(/\\s{2,}/g, ' ');\n }\n for (const rule of rulesToExecute) {\n try {\n if (rule && rule.processSync) {\n handleError(rule.processSync(Object.assign(Object.assign({}, context), { value })), context);\n }\n }\n catch (err) {\n console.error('Validator error:', (0, error_1.getErrorMessage)(err));\n }\n }\n return;\n};\nexports.validateProcessSync = validateProcessSync;\nconst validateCustomProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n context.rules = context.rules || rules_1.evaluationRules;\n context.skipValidation = exports.shouldSkipValidationCustom;\n return (0, exports.validateProcess)(context);\n});\nexports.validateCustomProcess = validateCustomProcess;\nconst validateCustomProcessSync = (context) => {\n context.rules = context.rules || rules_1.evaluationRules;\n context.skipValidation = exports.shouldSkipValidationCustom;\n return (0, exports.validateProcessSync)(context);\n};\nexports.validateCustomProcessSync = validateCustomProcessSync;\nconst validateServerProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n context.rules = context.rules || rules_1.serverRules;\n context.skipValidation = exports.shouldSkipValidationSimple;\n return (0, exports.validateProcess)(context);\n});\nexports.validateServerProcess = validateServerProcess;\nconst validateServerProcessSync = (context) => {\n context.rules = context.rules || rules_1.serverRules;\n context.skipValidation = exports.shouldSkipValidationSimple;\n return (0, exports.validateProcessSync)(context);\n};\nexports.validateServerProcessSync = validateServerProcessSync;\nconst validateAllProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n context.rules = context.rules || rules_1.rules;\n context.skipValidation = exports.shouldSkipValidation;\n return (0, exports.validateProcess)(context);\n});\nexports.validateAllProcess = validateAllProcess;\nconst validateAllProcessSync = (context) => {\n context.rules = context.rules || rules_1.rules;\n context.skipValidation = exports.shouldSkipValidation;\n return (0, exports.validateProcessSync)(context);\n};\nexports.validateAllProcessSync = validateAllProcessSync;\nconst validatePostProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n yield (0, exports.validateAllProcess)(context);\n});\nexports.validatePostProcess = validatePostProcess;\nconst validatePostProcessSync = (context) => {\n (0, exports.validateAllProcessSync)(context);\n};\nexports.validatePostProcessSync = validatePostProcessSync;\nexports.validateCustomProcessInfo = {\n name: 'validateCustom',\n process: exports.validateCustomProcess,\n processSync: exports.validateCustomProcessSync,\n shouldProcess: shouldValidateCustom,\n};\nexports.validateServerProcessInfo = {\n name: 'validateServer',\n process: exports.validateServerProcess,\n processSync: exports.validateServerProcessSync,\n shouldProcess: shouldValidateServer,\n};\nexports.validateProcessInfo = {\n name: 'validate',\n process: exports.validateAllProcess,\n processSync: exports.validateAllProcessSync,\n shouldProcess: shouldValidateAll,\n};\nexports.postValidateProcessInfo = {\n name: 'validate',\n postProcess: exports.validatePostProcess,\n postProcessSync: exports.validatePostProcessSync,\n shouldProcess: shouldValidateAll,\n};\n__exportStar(__webpack_require__(/*! ./util */ \"../core/lib/process/validation/util.js\"), exports);\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/index.js?\n}");
|
|
1907
1907
|
|
|
1908
1908
|
/***/ }),
|
|
1909
1909
|
|