@syncfusion/ej2-form-renderer 34.2.2
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/README.md +60 -0
- package/common.d.ts +4 -0
- package/common.js +4 -0
- package/dist/ej2-form-renderer.umd.min.js +11 -0
- package/dist/ej2-form-renderer.umd.min.js.map +1 -0
- package/dist/es6/ej2-form-renderer.es2015.js +6787 -0
- package/dist/es6/ej2-form-renderer.es2015.js.map +1 -0
- package/dist/es6/ej2-form-renderer.es5.js +7055 -0
- package/dist/es6/ej2-form-renderer.es5.js.map +1 -0
- package/dist/global/ej2-form-renderer.min.js +11 -0
- package/dist/global/ej2-form-renderer.min.js.map +1 -0
- package/dist/global/index.d.ts +14 -0
- package/form-renderer.d.ts +4 -0
- package/form-renderer.js +4 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +41 -0
- package/src/common/checkbox-group.d.ts +55 -0
- package/src/common/checkbox-group.js +241 -0
- package/src/common/conditional-rule-engine.d.ts +241 -0
- package/src/common/conditional-rule-engine.js +505 -0
- package/src/common/custom-validation-engine.d.ts +57 -0
- package/src/common/custom-validation-engine.js +152 -0
- package/src/common/datagrid-component.d.ts +156 -0
- package/src/common/datagrid-component.js +410 -0
- package/src/common/expressions/dependency-tracker.d.ts +29 -0
- package/src/common/expressions/dependency-tracker.js +137 -0
- package/src/common/expressions/expression-engine.d.ts +94 -0
- package/src/common/expressions/expression-engine.js +514 -0
- package/src/common/expressions/expression-parser.d.ts +40 -0
- package/src/common/expressions/expression-parser.js +270 -0
- package/src/common/expressions/grid-expressions.d.ts +24 -0
- package/src/common/expressions/grid-expressions.js +92 -0
- package/src/common/expressions/index.d.ts +4 -0
- package/src/common/expressions/index.js +4 -0
- package/src/common/index.d.ts +10 -0
- package/src/common/index.js +10 -0
- package/src/common/json-converter.d.ts +945 -0
- package/src/common/json-converter.js +1110 -0
- package/src/common/minmax-rule-engine.d.ts +105 -0
- package/src/common/minmax-rule-engine.js +380 -0
- package/src/common/option-fetcher.d.ts +30 -0
- package/src/common/option-fetcher.js +139 -0
- package/src/common/parser.d.ts +98 -0
- package/src/common/parser.js +788 -0
- package/src/common/static-html-renderer.d.ts +45 -0
- package/src/common/static-html-renderer.js +77 -0
- package/src/common/utils.d.ts +116 -0
- package/src/common/utils.js +484 -0
- package/src/form-renderer/form-renderer-model.d.ts +65 -0
- package/src/form-renderer/form-renderer.d.ts +425 -0
- package/src/form-renderer/form-renderer.js +2277 -0
- package/src/form-renderer/index.d.ts +6 -0
- package/src/form-renderer/index.js +5 -0
- package/src/form-renderer/render-form-field.d.ts +31 -0
- package/src/form-renderer/render-form-field.js +816 -0
- package/src/form-renderer/types/form-schema.d.ts +452 -0
- package/src/form-renderer/types/form-schema.js +32 -0
- package/src/global.js +1 -0
- package/src/index.d.ts +4 -0
- package/src/index.js +4 -0
- package/styles/bds-lite.css +599 -0
- package/styles/bds-lite.scss +2 -0
- package/styles/bds.css +599 -0
- package/styles/bds.scss +2 -0
- package/styles/bootstrap-dark-lite.css +608 -0
- package/styles/bootstrap-dark-lite.scss +2 -0
- package/styles/bootstrap-dark.css +608 -0
- package/styles/bootstrap-dark.scss +2 -0
- package/styles/bootstrap-lite.css +595 -0
- package/styles/bootstrap-lite.scss +2 -0
- package/styles/bootstrap.css +595 -0
- package/styles/bootstrap.scss +2 -0
- package/styles/bootstrap4-lite.css +595 -0
- package/styles/bootstrap4-lite.scss +2 -0
- package/styles/bootstrap4.css +595 -0
- package/styles/bootstrap4.scss +2 -0
- package/styles/bootstrap5-dark-lite.css +595 -0
- package/styles/bootstrap5-dark-lite.scss +2 -0
- package/styles/bootstrap5-dark.css +595 -0
- package/styles/bootstrap5-dark.scss +2 -0
- package/styles/bootstrap5-lite.css +595 -0
- package/styles/bootstrap5-lite.scss +2 -0
- package/styles/bootstrap5.3-lite.css +679 -0
- package/styles/bootstrap5.3-lite.scss +2 -0
- package/styles/bootstrap5.3.css +679 -0
- package/styles/bootstrap5.3.scss +2 -0
- package/styles/bootstrap5.css +595 -0
- package/styles/bootstrap5.scss +2 -0
- package/styles/fabric-dark-lite.css +608 -0
- package/styles/fabric-dark-lite.scss +2 -0
- package/styles/fabric-dark.css +608 -0
- package/styles/fabric-dark.scss +2 -0
- package/styles/fabric-lite.css +595 -0
- package/styles/fabric-lite.scss +2 -0
- package/styles/fabric.css +595 -0
- package/styles/fabric.scss +2 -0
- package/styles/fluent-dark-lite.css +595 -0
- package/styles/fluent-dark-lite.scss +2 -0
- package/styles/fluent-dark.css +595 -0
- package/styles/fluent-dark.scss +2 -0
- package/styles/fluent-lite.css +595 -0
- package/styles/fluent-lite.scss +2 -0
- package/styles/fluent.css +595 -0
- package/styles/fluent.scss +2 -0
- package/styles/fluent2-lite.css +681 -0
- package/styles/fluent2-lite.scss +2 -0
- package/styles/fluent2.css +681 -0
- package/styles/fluent2.scss +2 -0
- package/styles/form-renderer/_all.scss +2 -0
- package/styles/form-renderer/_bds-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap-dark-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap4-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap5-dark-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap5-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap5.3-definition.scss +8 -0
- package/styles/form-renderer/_fabric-dark-definition.scss +8 -0
- package/styles/form-renderer/_fabric-definition.scss +8 -0
- package/styles/form-renderer/_fluent-dark-definition.scss +8 -0
- package/styles/form-renderer/_fluent-definition.scss +8 -0
- package/styles/form-renderer/_fluent2-definition.scss +8 -0
- package/styles/form-renderer/_highcontrast-definition.scss +8 -0
- package/styles/form-renderer/_highcontrast-light-definition.scss +8 -0
- package/styles/form-renderer/_layout.scss +480 -0
- package/styles/form-renderer/_material-dark-definition.scss +8 -0
- package/styles/form-renderer/_material-definition.scss +8 -0
- package/styles/form-renderer/_material3-dark-definition.scss +8 -0
- package/styles/form-renderer/_material3-definition.scss +8 -0
- package/styles/form-renderer/_mixin.scss +26 -0
- package/styles/form-renderer/_tailwind-dark-definition.scss +8 -0
- package/styles/form-renderer/_tailwind-definition.scss +8 -0
- package/styles/form-renderer/_tailwind3-definition.scss +8 -0
- package/styles/form-renderer/_theme.scss +69 -0
- package/styles/form-renderer/_variables.scss +2 -0
- package/styles/form-renderer/bds.css +599 -0
- package/styles/form-renderer/bds.scss +2 -0
- package/styles/form-renderer/bootstrap-dark.css +608 -0
- package/styles/form-renderer/bootstrap-dark.scss +2 -0
- package/styles/form-renderer/bootstrap.css +595 -0
- package/styles/form-renderer/bootstrap.scss +2 -0
- package/styles/form-renderer/bootstrap4.css +595 -0
- package/styles/form-renderer/bootstrap4.scss +2 -0
- package/styles/form-renderer/bootstrap5-dark.css +595 -0
- package/styles/form-renderer/bootstrap5-dark.scss +2 -0
- package/styles/form-renderer/bootstrap5.3.css +679 -0
- package/styles/form-renderer/bootstrap5.3.scss +2 -0
- package/styles/form-renderer/bootstrap5.css +595 -0
- package/styles/form-renderer/bootstrap5.scss +2 -0
- package/styles/form-renderer/fabric-dark.css +608 -0
- package/styles/form-renderer/fabric-dark.scss +2 -0
- package/styles/form-renderer/fabric.css +595 -0
- package/styles/form-renderer/fabric.scss +2 -0
- package/styles/form-renderer/fluent-dark.css +595 -0
- package/styles/form-renderer/fluent-dark.scss +2 -0
- package/styles/form-renderer/fluent.css +595 -0
- package/styles/form-renderer/fluent.scss +2 -0
- package/styles/form-renderer/fluent2.css +681 -0
- package/styles/form-renderer/fluent2.scss +2 -0
- package/styles/form-renderer/highcontrast-light.css +595 -0
- package/styles/form-renderer/highcontrast-light.scss +2 -0
- package/styles/form-renderer/highcontrast.css +608 -0
- package/styles/form-renderer/highcontrast.scss +2 -0
- package/styles/form-renderer/material-dark.css +608 -0
- package/styles/form-renderer/material-dark.scss +2 -0
- package/styles/form-renderer/material.css +595 -0
- package/styles/form-renderer/material.scss +2 -0
- package/styles/form-renderer/material3-dark.css +677 -0
- package/styles/form-renderer/material3-dark.scss +2 -0
- package/styles/form-renderer/material3.css +679 -0
- package/styles/form-renderer/material3.scss +2 -0
- package/styles/form-renderer/tailwind-dark.css +595 -0
- package/styles/form-renderer/tailwind-dark.scss +2 -0
- package/styles/form-renderer/tailwind.css +595 -0
- package/styles/form-renderer/tailwind.scss +2 -0
- package/styles/form-renderer/tailwind3.css +669 -0
- package/styles/form-renderer/tailwind3.scss +2 -0
- package/styles/highcontrast-light-lite.css +595 -0
- package/styles/highcontrast-light-lite.scss +2 -0
- package/styles/highcontrast-light.css +595 -0
- package/styles/highcontrast-light.scss +2 -0
- package/styles/highcontrast-lite.css +608 -0
- package/styles/highcontrast-lite.scss +2 -0
- package/styles/highcontrast.css +608 -0
- package/styles/highcontrast.scss +2 -0
- package/styles/material-dark-lite.css +608 -0
- package/styles/material-dark-lite.scss +2 -0
- package/styles/material-dark.css +608 -0
- package/styles/material-dark.scss +2 -0
- package/styles/material-lite.css +595 -0
- package/styles/material-lite.scss +2 -0
- package/styles/material.css +595 -0
- package/styles/material.scss +2 -0
- package/styles/material3-dark-lite.css +677 -0
- package/styles/material3-dark-lite.scss +2 -0
- package/styles/material3-dark.css +677 -0
- package/styles/material3-dark.scss +2 -0
- package/styles/material3-lite.css +679 -0
- package/styles/material3-lite.scss +2 -0
- package/styles/material3.css +679 -0
- package/styles/material3.scss +2 -0
- package/styles/tailwind-dark-lite.css +595 -0
- package/styles/tailwind-dark-lite.scss +2 -0
- package/styles/tailwind-dark.css +595 -0
- package/styles/tailwind-dark.scss +2 -0
- package/styles/tailwind-lite.css +595 -0
- package/styles/tailwind-lite.scss +2 -0
- package/styles/tailwind.css +595 -0
- package/styles/tailwind.scss +2 -0
- package/styles/tailwind3-lite.css +669 -0
- package/styles/tailwind3-lite.scss +2 -0
- package/styles/tailwind3.css +669 -0
- package/styles/tailwind3.scss +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ej2-form-renderer.es5.js","sources":["../../src/common/conditional-rule-engine.js","../../src/common/json-converter.js","../../src/common/expressions/expression-parser.js","../../src/common/expressions/dependency-tracker.js","../../src/common/expressions/expression-engine.js","../../src/common/utils.js","../../src/common/option-fetcher.js","../../src/common/checkbox-group.js","../../src/common/expressions/grid-expressions.js","../../src/common/custom-validation-engine.js","../../src/common/datagrid-component.js","../../src/form-renderer/render-form-field.js","../../src/common/parser.js","../../src/common/static-html-renderer.js","../../src/common/minmax-rule-engine.js","../../src/form-renderer/form-renderer.js","../../src/form-renderer/types/form-schema.js"],"sourcesContent":["import { Internationalization } from '@syncfusion/ej2-base';\n/**\n * ConditionalRuleEngine class\n * @private\n */\nvar ConditionalRuleEngine = /** @class */ (function () {\n function ConditionalRuleEngine() {\n }\n /**\n * Evaluate a conditional rule against form values\n *\n * Handles both simple rules (field operator value) and composite rules (AND/OR).\n * Returns false for malformed rules.\n *\n * @param rule - ConditionalRule or CompositeConditionalRule\n * @param formValues - Current form field values (key = field name, value = field value)\n * @returns true if condition met, false otherwise\n * @private\n * @example\n * ```typescript\n * const rule = { field: 'age', operator: 'greaterThan', value: 18 };\n * const isAdult = ConditionalRuleEngine.evaluateCondition(rule, { age: 25 });\n * // isAdult = true\n * ```\n */\n ConditionalRuleEngine.evaluateCondition = function (rule, formValues) {\n try {\n // Handle simple rule (field operator value)\n if ('field' in rule && 'operator' in rule && 'value' in rule) {\n return this.evaluateSimpleRule(rule, formValues);\n }\n // Handle composite rule (AND/OR)\n if ('condition' in rule && 'rules' in rule) {\n return this.evaluateCompositeRule(rule, formValues);\n }\n return false;\n }\n catch (error) {\n return false; // Safe default on error\n }\n };\n /**\n * Evaluate simple field comparison rule\n *\n * Supports operators: equal, notEqual, greaterThan, lessThan, greaterThanOrEqual,\n * lessThanOrEqual, in, notIn, contains, notContains.\n *\n * Handles both camelCase (greaterThan) and lowercase (greaterthan) operator formats\n * for compatibility with QueryBuilder output.\n *\n * @param rule - Simple conditional rule with field, operator, value\n * @param formValues - Current form field values\n * @returns true if comparison is true, false otherwise\n *\n * @example\n * ```typescript\n * const rule = { field: 'email', operator: 'contains', value: '@' };\n * const hasAt = evaluateSimpleRule(rule, { email: 'test@example.com' });\n * // hasAt = true\n * ```\n */\n ConditionalRuleEngine.evaluateSimpleRule = function (rule, formValues) {\n try {\n var fieldValue_1 = formValues[rule.field];\n var operator = rule.operator.toLowerCase();\n // Allow evaluation for operators that make sense when value is undefined/empty\n if (fieldValue_1 === undefined) {\n var allowedForUndefined = ['equal', 'equals', 'notequal', 'notequals', 'isempty', 'isnotempty'];\n if (allowedForUndefined.indexOf(operator) === -1) {\n return false;\n }\n }\n // Check if field value is an array (for multiselect, checkboxGroup)\n var isFieldArray = Array.isArray(fieldValue_1);\n var intl = new Internationalization();\n switch (operator) {\n case 'equal':\n case 'equals':\n return fieldValue_1 === rule.value;\n case 'notequal':\n case 'notequals':\n return fieldValue_1 !== rule.value;\n case 'startswith': return fieldValue_1.startsWith(rule.value);\n case 'doesnotstartswith': return !fieldValue_1.startsWith(rule.value);\n case 'greaterthan':\n case 'lessthan':\n case 'greaterthanorequal':\n case 'lessthanorequal': {\n var ln = Number(fieldValue_1);\n var rn = Number(rule.value);\n if (!Number.isNaN(ln) && !Number.isNaN(rn)) {\n if (operator === 'greaterthan')\n return ln > rn;\n if (operator === 'lessthan')\n return ln < rn;\n if (operator === 'greaterthanorequal')\n return ln >= rn;\n return ln <= rn;\n }\n return false;\n }\n case 'dategreaterthan':\n case 'datelessthan': {\n // try date comparison first\n var leftTs = intl.parseDate(fieldValue_1, { format: 'MM/dd/yyyy' });\n var rightTs = intl.parseDate(rule.value, { format: 'MM/dd/yyyy' });\n if (leftTs !== null && rightTs !== null) {\n if (operator === 'dategreaterthan')\n return leftTs > rightTs;\n if (operator === 'datelessthan')\n return leftTs < rightTs;\n return leftTs <= rightTs;\n }\n return false;\n }\n case 'timegreaterthan':\n case 'timelessthan': {\n // Parse time strings (format: hh:mm a)\n var leftTime = intl.parseDate(fieldValue_1, { format: 'hh:mm a', type: 'time' });\n var rightTime = intl.parseDate(rule.value, { format: 'hh:mm a', type: 'time' });\n if (leftTime !== null && rightTime !== null) {\n if (operator === 'timegreaterthan')\n return leftTime > rightTime;\n if (operator === 'timelessthan')\n return leftTime < rightTime;\n }\n return false;\n }\n case 'datetimegreaterthan':\n case 'datetimelessthan': {\n // Parse datetime strings (format: MM/dd/yyyy hh:mm a)\n var leftDateTime = intl.parseDate(fieldValue_1, { format: 'MM/dd/yyyy hh:mm a', type: 'dateTime' });\n var rightDateTime = intl.parseDate(rule.value, { format: 'MM/dd/yyyy hh:mm a', type: 'dateTime' });\n if (leftDateTime !== null && rightDateTime !== null) {\n if (operator === 'datetimegreaterthan')\n return leftDateTime > rightDateTime;\n if (operator === 'datetimelessthan')\n return leftDateTime < rightDateTime;\n }\n return false;\n }\n case 'contains':\n // If field value is array, check if array contains the specific value(s)\n if (isFieldArray) {\n // Parse comma-separated values in rule.value if it's a string\n if (typeof rule.value === 'string' && rule.value.indexOf(',') !== -1) {\n var searchValues = rule.value.split(',').map(function (v) { return v.trim(); });\n // Check if array contains ANY of the search values\n return searchValues.some(function (searchVal) { return fieldValue_1.indexOf(searchVal) !== -1; });\n }\n return fieldValue_1.indexOf(rule.value) !== -1;\n }\n // Otherwise, check string contains\n return String(fieldValue_1).indexOf(String(rule.value)) !== -1;\n case 'notcontains':\n // If field value is array, check if array does NOT contain the specific value(s)\n if (isFieldArray) {\n // Parse comma-separated values in rule.value if it's a string\n if (typeof rule.value === 'string' && rule.value.indexOf(',') !== -1) {\n var searchValues = rule.value.split(',').map(function (v) { return v.trim(); });\n // Check if array contains NONE of the search values\n return !searchValues.some(function (searchVal) { return fieldValue_1.indexOf(searchVal) !== -1; });\n }\n return fieldValue_1.indexOf(rule.value) === -1;\n }\n // Otherwise, check string does not contain\n return String(fieldValue_1).indexOf(String(rule.value)) === -1;\n case 'isempty':\n // Check if array is empty\n if (isFieldArray) {\n return fieldValue_1.length === 0;\n }\n // For non-arrays, check if falsy or empty string\n return !fieldValue_1 || String(fieldValue_1).length === 0;\n case 'isnotempty':\n // Check if array has items\n if (isFieldArray) {\n return fieldValue_1.length > 0;\n }\n // For non-arrays, check if truthy and not empty string\n return !!fieldValue_1 && String(fieldValue_1).length > 0;\n default:\n return false;\n }\n }\n catch (error) {\n return false;\n }\n };\n /**\n * Evaluate composite rule with AND/OR logic\n *\n * Recursively evaluates nested rules with AND (all must be true) or OR\n * (at least one must be true) logic.\n *\n * @param rule - Composite rule with condition ('and'|'or') and rules array\n * @param formValues - Current form field values\n * @returns true if composite condition met, false otherwise\n *\n * @example\n * ```typescript\n * const rule = {\n * condition: 'and',\n * rules: [\n * { field: 'age', operator: 'greaterThan', value: 18 },\n * { field: 'country', operator: 'equal', value: 'US' }\n * ]\n * };\n * const isEligible = evaluateCompositeRule(rule, { age: 25, country: 'US' });\n * // isEligible = true\n * ```\n */\n ConditionalRuleEngine.evaluateCompositeRule = function (rule, formValues) {\n var _this = this;\n try {\n if (!Array.isArray(rule.rules) || rule.rules.length === 0) {\n return false;\n }\n var condition = rule.condition.toLowerCase();\n if (condition === 'and') {\n // All rules must be true\n return rule.rules.every(function (childRule) {\n return _this.evaluateCondition(childRule, formValues);\n });\n }\n else if (condition === 'or') {\n // At least one rule must be true\n return rule.rules.some(function (childRule) {\n return _this.evaluateCondition(childRule, formValues);\n });\n }\n else {\n return false;\n }\n }\n catch (error) {\n return false;\n }\n };\n /**\n * Check if field should be visible\n *\n * Evaluates visibleWhen condition. Defaults to true (visible) if no condition\n * is defined or on error.\n *\n * @param conditions - FormComponentConditions containing visibleWhen rule\n * @param formValues - Current form field values\n * @returns true if field should be visible, false if hidden\n *\n * @example\n * ```typescript\n * const conditions = {\n * visibleWhen: { field: 'showEmail', operator: 'equal', value: true }\n * };\n * const visible = isFieldVisible(conditions, { showEmail: true });\n * // visible = true\n * ```\n */\n ConditionalRuleEngine.isFieldVisible = function (conditions, formValues) {\n try {\n if (!conditions || !conditions.visibleWhen) {\n return true; // Default: visible if no condition\n }\n return this.evaluateCondition(conditions.visibleWhen, formValues);\n }\n catch (error) {\n return true; // Safe default: visible on error\n }\n };\n /**\n * Check if field should be read-only\n *\n * Evaluates readOnlyWhen condition. Defaults to false (editable) if no\n * condition is defined or on error.\n *\n * @param conditions - FormComponentConditions containing readOnlyWhen rule\n * @param formValues - Current form field values\n * @returns true if field should be read-only, false if editable\n *\n * @example\n * ```typescript\n * const conditions = {\n * readOnlyWhen: { field: 'isVerified', operator: 'equal', value: true }\n * };\n * const readOnly = isFieldReadOnly(conditions, { isVerified: true });\n * // readOnly = true\n * ```\n */\n ConditionalRuleEngine.isFieldReadOnly = function (conditions, formValues) {\n try {\n if (!conditions || !conditions.readOnlyWhen) {\n return false; // Default: not read-only if no condition\n }\n return this.evaluateCondition(conditions.readOnlyWhen, formValues);\n }\n catch (error) {\n return false; // Safe default: not read-only on error\n }\n };\n /**\n * Check if field should be disabled\n *\n * Evaluates disabledWhen condition. Defaults to false (enabled) if no\n * condition is defined or on error.\n *\n * @param conditions - FormComponentConditions containing disabledWhen rule\n * @param formValues - Current form field values\n * @returns true if field should be disabled, false if enabled\n *\n * @example\n * ```typescript\n * const conditions = {\n * disabledWhen: { field: 'orderStatus', operator: 'equal', value: 'completed' }\n * };\n * const disabled = isFieldDisabled(conditions, { orderStatus: 'completed' });\n * // disabled = true\n * ```\n */\n ConditionalRuleEngine.isFieldDisabled = function (conditions, formValues) {\n try {\n if (!conditions || !conditions.disabledWhen) {\n return false; // Default: not disabled if no condition\n }\n return this.evaluateCondition(conditions.disabledWhen, formValues);\n }\n catch (error) {\n return false; // Safe default: not disabled on error\n }\n };\n /**\n * Check if field should be hidden\n *\n * Evaluates hideWhen condition. Defaults to false (visible) if no condition\n * is defined or on error.\n *\n * @param conditions - FormComponentConditions containing hideWhen rule\n * @param formValues - Current form field values\n * @returns true if field should be hidden, false if visible\n *\n * @example\n * ```typescript\n * const conditions = {\n * hideWhen: { field: 'hideEmail', operator: 'equal', value: true }\n * };\n * const hidden = isFieldHidden(conditions, { hideEmail: true });\n * // hidden = true\n * ```\n */\n ConditionalRuleEngine.isFieldHidden = function (conditions, formValues) {\n try {\n if (!conditions || !conditions.hideWhen) {\n return false; // Default: not hidden if no condition\n }\n return this.evaluateCondition(conditions.hideWhen, formValues);\n }\n catch (error) {\n return false; // Safe default: not hidden on error\n }\n };\n /**\n * Check if field should be required\n *\n * Evaluates requiredWhen condition. Defaults to false (not required) if no condition\n * is defined or on error.\n *\n * @param conditions - FormComponentConditions containing requiredWhen rule\n * @param formValues - Current form field values\n * @returns true if field should be required, false if optional\n *\n * @example\n * ```typescript\n * const conditions = {\n * requiredWhen: { field: 'requireDetails', operator: 'equal', value: true }\n * };\n * const required = isFieldRequired(conditions, { requireDetails: true });\n * // required = true\n * ```\n */\n ConditionalRuleEngine.isFieldRequired = function (conditions, formValues) {\n try {\n if (!conditions || !conditions.requiredWhen) {\n return false; // Default: not required if no condition\n }\n return this.evaluateCondition(conditions.requiredWhen, formValues);\n }\n catch (error) {\n return false; // Safe default: not required on error\n }\n };\n /**\n * Get value to set for field if condition is met\n *\n * Evaluates setValueWhen condition and returns the value to assign if true.\n * Returns undefined if no condition is defined, condition not met, or on error.\n *\n * @param conditions - FormComponentConditions containing setValueWhen rule\n * @param formValues - Current form field values\n * @returns The value to set if condition met, undefined otherwise\n *\n * @example\n * ```typescript\n * const conditions = {\n * setValueWhen: {\n * condition: { field: 'country', operator: 'equal', value: 'US' },\n * value: 'United States'\n * }\n * };\n * const value = getConditionalValue(conditions, { country: 'US' });\n * // value = 'United States'\n * ```\n */\n ConditionalRuleEngine.getConditionalValue = function (conditions, formValues) {\n try {\n if (!conditions || !conditions.setValueWhen) {\n return undefined;\n }\n var isMet = this.evaluateCondition(conditions.setValueWhen.condition, formValues);\n if (isMet) {\n return conditions.setValueWhen.value;\n }\n return undefined;\n }\n catch (error) {\n return undefined;\n }\n };\n /**\n * Evaluate conditional data availability\n * Returns true if any conditional data rule's condition is met\n *\n * @param conditionalDataRules - Array of ConditionalDataRule objects\n * @param formValues - Current form field values\n * @returns Index of first matching rule, or -1 if none match\n */\n ConditionalRuleEngine.evaluateConditionalDataRules = function (conditionalDataRules, formValues) {\n if (!conditionalDataRules || !Array.isArray(conditionalDataRules)) {\n return -1;\n }\n for (var i = 0; i < conditionalDataRules.length; i++) {\n var rule = conditionalDataRules[i];\n if (this.evaluateCondition(rule.condition, formValues)) {\n return i; // Return index of first matching rule\n }\n }\n return -1;\n };\n /**\n * Get filtered options for a dependent dropdown based on choice-based field rule\n *\n * If choiceBasedField rule exists and primary field has a value,\n * return only the mapped dependent options for that primary value.\n * Otherwise return all options.\n *\n * @param rule - ChoiceBasedFieldRule configuration\n * @param allDependentOptions - Complete list of dependent field options\n * @param formValues - Current form values\n * @param primaryFieldId - ID of primary field\n * @returns Filtered options array\n *\n * @example\n * ```typescript\n * const rule = {\n * primaryFieldId: 'dept-id',\n * choiceMapping: {\n * 'Marketing': ['Markers', 'Sticky Notes'],\n * 'Finance': ['Calculator']\n * }\n * };\n *\n * const filtered = ConditionalRuleEngine.getChoiceBasedOptions(\n * rule,\n * ['Markers', 'Sticky Notes', 'Calculator'],\n * { 'dept-id': 'Marketing' },\n * 'dept-id'\n * );\n * // Returns: ['Markers', 'Sticky Notes']\n * ```\n */\n ConditionalRuleEngine.getChoiceBasedOptions = function (rule, allDependentOptions, formValues, primaryFieldId) {\n try {\n // Get primary field value from form\n var primaryValue = formValues && formValues[primaryFieldId];\n if (primaryValue === null || primaryValue === undefined) {\n // No primary value selected - return all or empty based on rule config\n return rule.showAllWhenNotMapped ? allDependentOptions : [];\n }\n // Ensure primary value is treated as string for comparison\n var primaryValueStr = String(primaryValue);\n // Check if this primary value is mapped in the rule\n if (primaryValueStr in rule.choiceMapping) {\n var mappedOptions = rule.choiceMapping[primaryValueStr];\n // Validate mapped options exist in all options (safety check)\n return mappedOptions.filter(function (opt) { return allDependentOptions.indexOf(opt) !== -1; });\n }\n // Primary value not mapped - return all or empty based on rule config\n return rule.showAllWhenNotMapped ? allDependentOptions : [];\n }\n catch (error) {\n // Safe default - return all options\n return allDependentOptions;\n }\n };\n return ConditionalRuleEngine;\n}());\nexport { ConditionalRuleEngine };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { sanitizeId } from './utils';\n/**\n * @private\n */\nexport var generateId = function (type) {\n var timestamp = Date.now();\n var random = Math.floor(Math.random() * 1000);\n return type + \"_\" + timestamp + \"_\" + random;\n};\n/**\n * @private\n */\nexport var generateName = function (type) {\n var random = Math.floor(Math.random() * 1000);\n return type + \"_\" + random;\n};\n/**\n * @private\n */\nexport function labelToFieldKey(label, fallbackId) {\n if (!label || label.trim() === '') {\n return fallbackId || 'field';\n }\n // Remove special characters, keep letters, numbers, and spaces\n var cleaned = label\n .replace(/[^\\w\\s]/g, '') // Remove special chars\n .trim();\n if (cleaned === '') {\n return fallbackId || 'field';\n }\n // Split by spaces/underscores and convert to camelCase\n var words = cleaned.split(/[\\s_]+/);\n if (words.length === 0) {\n return fallbackId || 'field';\n }\n // First word lowercase, rest title case\n var camelCase = words\n .map(function (word, index) {\n if (index === 0) {\n return word.toLowerCase();\n }\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n })\n .join('');\n return camelCase || fallbackId || 'field';\n}\n/**\n * @private\n */\nexport function makeUniqueFieldKey(baseKey, existingKeys, originalId) {\n if (!existingKeys.has(baseKey)) {\n return baseKey;\n }\n // Try with original ID suffix first\n if (originalId) {\n var withId = baseKey + \"_\" + originalId.split('_').pop();\n if (!existingKeys.has(withId)) {\n return withId;\n }\n }\n // Fall back to numeric suffix\n var counter = 2;\n while (existingKeys.has(\"\" + baseKey + counter)) {\n counter++;\n }\n return \"\" + baseKey + counter;\n}\n/**\n * @private\n */\nexport var UI_TYPE_TO_SEMANTIC_TYPE = {\n // String types\n 'textbox': { type: 'string' },\n 'textarea': { type: 'string' },\n 'email': { type: 'string', format: 'email' },\n 'url': { type: 'string', format: 'url' },\n 'phone': { type: 'string' },\n 'password': { type: 'string' },\n 'inputMask': { type: 'string' },\n // Numeric types\n 'number': { type: 'number' },\n 'rangeSlider': { type: 'number' },\n 'rating': { type: 'number' },\n // Boolean types\n 'checkbox': { type: 'boolean' },\n 'switch': { type: 'boolean' },\n // Date/Time types\n 'date': { type: 'string', format: 'date' },\n 'dateTime': { type: 'string', format: 'date-time' },\n 'time': { type: 'string', format: 'time' },\n 'dateRange': { type: 'string', format: 'date' },\n // Array types\n 'multiselect': { type: 'array' },\n 'checkboxGroup': { type: 'array' },\n // Single-value selection (stored as string)\n 'dropdown': { type: 'string' },\n 'radio': { type: 'string' },\n 'splitButton': { type: 'string' },\n // Special types (excluded from data schema)\n 'button': { type: 'button' },\n 'message': { type: 'message' },\n 'signature': { type: 'sign' },\n 'imageEditor': { type: 'image' },\n 'fileUpload': { type: 'file' },\n 'colorPicker': { type: 'color' },\n 'dataGrid': { type: 'grid' },\n // Layout types (excluded from data schema)\n 'staticHtml': { type: 'string' },\n 'table': null,\n 'panel': null,\n 'tabs': null,\n 'card': null\n};\n/**\n * @private\n */\nfunction stripConfiguredFlag(properties) {\n var out = {};\n var keys = Object.keys(properties || {});\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var val = properties[key];\n var copy = __assign({}, val);\n if (copy && copy._configured !== undefined) {\n delete copy._configured;\n }\n out[key] = copy;\n }\n return out;\n}\n/**\n * @private\n */\nfunction cleanConditionRules(condition, validFieldIds) {\n if (!condition || !condition.rules || !Array.isArray(condition.rules)) {\n return undefined;\n }\n var cleanedRules = condition.rules\n .map(function (rule) {\n // If rule has nested rules (group), recursively clean\n if (rule.rules && Array.isArray(rule.rules)) {\n return cleanConditionRules(rule, validFieldIds);\n }\n // If rule references non-existent field, exclude it\n if (rule.field && !validFieldIds.has(rule.field)) {\n return null;\n }\n return rule;\n })\n .filter(function (rule) { return rule !== null && rule !== undefined; });\n // If no rules remain, return undefined\n if (cleanedRules.length === 0) {\n return undefined;\n }\n return __assign({}, condition, { rules: cleanedRules });\n}\n/**\n * @private\n */\nfunction getAllComponentIds(components) {\n var ids = new Set();\n var stack = components.slice();\n while (stack.length) {\n var comp = stack.pop();\n ids.add(comp.id);\n if (comp.children)\n stack.push.apply(stack, comp.children);\n if (comp.tabItems) {\n comp.tabItems.forEach(function (tab) {\n if (tab.content)\n stack.push.apply(stack, tab.content);\n });\n }\n if (comp.tableCells) {\n comp.tableCells.forEach(function (row) {\n row.forEach(function (cell) { return stack.push.apply(stack, cell); });\n });\n }\n }\n return ids;\n}\n/**\n * @private\n */\nexport function splitSchema(heartSchema) {\n var dataFields = {};\n var uiFields = {};\n var layout = [];\n var usedFieldKeys = new Set(); // Track unique field keys\n var seenComponentIds = new Set(); // Track component IDs to prevent duplicates\n // ✅ Get all valid field IDs for condition validation\n var validFieldIds = getAllComponentIds(heartSchema.components);\n // Stack for iterative traversal (avoid recursion)\n var stack = heartSchema.components.map(function (c) { return ({\n component: c,\n layoutParent: layout\n }); });\n var _loop_1 = function () {\n // Use shift() instead of pop() to maintain order (FIFO instead of LIFO)\n var _a = stack.shift(), component = _a.component, layoutParent = _a.layoutParent;\n // ✅ Clean conditions before processing\n if (component.conditions) {\n var cleanedConditions = {};\n var hasValidConditions = false;\n if (component.conditions.visibleWhen) {\n var cleaned = cleanConditionRules(component.conditions.visibleWhen, validFieldIds);\n if (cleaned) {\n cleanedConditions.visibleWhen = cleaned;\n hasValidConditions = true;\n }\n }\n if (component.conditions.hideWhen) {\n var cleaned = cleanConditionRules(component.conditions.hideWhen, validFieldIds);\n if (cleaned) {\n cleanedConditions.hideWhen = cleaned;\n hasValidConditions = true;\n }\n }\n if (component.conditions.readOnlyWhen) {\n var cleaned = cleanConditionRules(component.conditions.readOnlyWhen, validFieldIds);\n if (cleaned) {\n cleanedConditions.readOnlyWhen = cleaned;\n hasValidConditions = true;\n }\n }\n if (component.conditions.disabledWhen) {\n var cleaned = cleanConditionRules(component.conditions.disabledWhen, validFieldIds);\n if (cleaned) {\n cleanedConditions.disabledWhen = cleaned;\n hasValidConditions = true;\n }\n }\n if (component.conditions.requiredWhen) {\n var cleaned = cleanConditionRules(component.conditions.requiredWhen, validFieldIds);\n if (cleaned) {\n cleanedConditions.requiredWhen = cleaned;\n hasValidConditions = true;\n }\n }\n if (component.conditions.setValueWhen) {\n var cleaned = cleanConditionRules(component.conditions.setValueWhen.condition, validFieldIds);\n if (cleaned && component.conditions.setValueWhen.value !== undefined && component.conditions.setValueWhen.value !== '') {\n cleanedConditions.setValueWhen = {\n condition: cleaned,\n value: component.conditions.setValueWhen.value\n };\n hasValidConditions = true;\n }\n }\n if (component.conditions && component.conditions.choiceBasedField) {\n var rule = component.conditions.choiceBasedField;\n // Validate that primary field exists\n if (rule.primaryFieldId && validFieldIds.has(rule.primaryFieldId)) {\n cleanedConditions.choiceBasedField = rule;\n hasValidConditions = true;\n }\n }\n if (component.conditions.conditionalData && Array.isArray(component.conditions.conditionalData)) {\n var cleanedDataRules = component.conditions.conditionalData\n .map(function (rule) {\n var cleaned = cleanConditionRules(rule.condition, validFieldIds);\n if (cleaned && rule.dataSource) {\n return {\n condition: cleaned,\n dataSource: rule.dataSource,\n columns: rule.columns,\n includeColumns: rule.includeColumns\n };\n }\n return null;\n })\n .filter(function (rule) { return rule !== null && rule !== undefined; });\n if (cleanedDataRules.length > 0) {\n cleanedConditions.conditionalData = cleanedDataRules;\n hasValidConditions = true;\n }\n }\n // Update component conditions (or remove if empty)\n component.conditions = hasValidConditions ? cleanedConditions : undefined;\n }\n // Get semantic type mapping (may be null for presentation-only widgets)\n var semanticType = UI_TYPE_TO_SEMANTIC_TYPE[component.type];\n // Handle layout containers\n if (component.type === 'table') {\n var safeId = sanitizeId(component.id, generateId(semanticType.type));\n var tableNode_1 = __assign({ type: 'table', id: safeId, name: component.name, label: component.label, cssClass: component.cssClass, hideBorders: component.hideBorders, rows: (component.tableCells && component.tableCells.length) || 0, cols: (component.tableCells && component.tableCells[0] && component.tableCells[0].length) || 0, cells: [], columnWidths: component.columnWidths }, (component.conditions ? { conditions: component.conditions } : {}));\n // Process table cells\n if (component.tableCells) {\n component.tableCells.forEach(function (row, rowIndex) {\n var cellRow = [];\n row.forEach(function (cellComponents, colIndex) {\n var cellChildren = [];\n // Reverse children and use unshift() to maintain order with depth-first processing\n cellComponents.slice().reverse().forEach(function (comp) {\n stack.unshift({ component: comp, layoutParent: cellChildren });\n });\n cellRow.push({ row: rowIndex, col: colIndex, children: cellChildren });\n });\n tableNode_1.cells.push(cellRow);\n });\n }\n layoutParent.push(tableNode_1);\n return \"continue\";\n }\n if (component.type === 'panel') {\n var safeId = sanitizeId(component.id, generateId(semanticType.type));\n var panelNode_1 = __assign({ type: 'panel', id: safeId, name: component.name, label: component.label, cssClass: component.cssClass, hideBorders: component.hideBorders, hideLabel: component.hideLabel, children: [] }, (component.conditions ? { conditions: component.conditions } : {}));\n // Process panel children\n // Reverse children and use unshift() to maintain order with depth-first processing\n (component.children || []).slice().reverse().forEach(function (child) {\n stack.unshift({ component: child, layoutParent: panelNode_1.children });\n });\n layoutParent.push(panelNode_1);\n return \"continue\";\n }\n if (component.type === 'tabs') {\n var safeId = sanitizeId(component.id, generateId(semanticType.type));\n var tabsNode_1 = __assign({ type: 'tabs', name: component.name, id: safeId, label: component.label, cssClass: component.cssClass, tabOptions: component.tabOptions, tabs: [] }, (component.conditions ? { conditions: component.conditions } : {}));\n // Process tabs\n if (component.tabItems) {\n component.tabItems.forEach(function (tab) {\n var tabChildren = [];\n // Reverse children and use unshift() to maintain order with depth-first processing\n (tab.content || []).slice().reverse().forEach(function (comp) {\n stack.unshift({ component: comp, layoutParent: tabChildren });\n });\n tabsNode_1.tabs.push({ header: tab.header, children: tabChildren });\n });\n }\n layoutParent.push(tabsNode_1);\n return \"continue\";\n }\n if (component.type === 'card') {\n var safeId = sanitizeId(component.id, generateId(semanticType.type));\n var cardNode_1 = __assign({ type: 'card', id: safeId, name: component.name, label: component.label, cssClass: component.cssClass, hideLabel: component.hideLabel, cardTitle: component.cardTitle, cardSubtitle: component.cardSubtitle, children: [] }, (component.conditions ? { conditions: component.conditions } : {}));\n // Process card children\n // Reverse children and use unshift() to maintain order with depth-first processing\n (component.children || []).slice().reverse().forEach(function (child) {\n stack.unshift({ component: child, layoutParent: cardNode_1.children });\n });\n layoutParent.push(cardNode_1);\n return \"continue\";\n }\n // ✅ DEDUPLICATION: Skip if we've already processed this component ID\n if (seenComponentIds.has(component.id)) {\n return \"continue\";\n }\n seenComponentIds.add(component.id);\n // Generate semantic field key from label\n var baseFieldKey = labelToFieldKey(component.label || component.id, component.id);\n var fieldKey = makeUniqueFieldKey(baseFieldKey, usedFieldKeys, component.id);\n usedFieldKeys.add(fieldKey);\n // Extract data field properties (all components, no skipping)\n // If no semantic type mapping exists, use 'any' as the type\n var dataField = extractDataField(component, semanticType || { type: 'any' });\n dataFields[fieldKey] = dataField;\n // Extract UI field properties (all components)\n uiFields[fieldKey] = extractUIField(component);\n // Add property reference to layout (use fieldKey instead of component ID)\n layoutParent.push({ type: 'field', propertyId: fieldKey });\n };\n while (stack.length > 0) {\n _loop_1();\n }\n // ✅ Merge data and UI fields into unified properties\n var unifiedProperties = {};\n Object.keys(dataFields).forEach(function (fieldKey) {\n var dataField = dataFields[fieldKey];\n var uiField = uiFields[fieldKey];\n unifiedProperties[fieldKey] = __assign({}, dataField, uiField, { \n // Ensure widget is always set\n widget: (uiField && uiField.widget) || inferWidgetFromType(dataField.type, dataField.format, dataField.options !== undefined) });\n });\n var settings = heartSchema.settings ? __assign({}, heartSchema.settings) : {};\n return __assign({ version: heartSchema.version, properties: stripConfiguredFlag(unifiedProperties), layout: layout }, (Object.keys(settings).length > 0 ? { settings: settings } : {}));\n}\n/**\n * @private\n */\nfunction extractDataField(component, semanticType) {\n var safeId = sanitizeId(component.id, generateId(semanticType.type));\n var dataField = {\n id: safeId,\n name: component.name,\n type: semanticType.type,\n };\n // Add format if present\n if (semanticType.format) {\n dataField.format = semanticType.format;\n }\n // Extract allowed properties only\n if (component.label !== undefined)\n dataField.label = component.label;\n if (component.defaultValue !== undefined)\n dataField.defaultValue = component.defaultValue;\n if (component.expressionValue !== undefined)\n dataField.expressionValue = component.expressionValue;\n if (component.content !== undefined)\n dataField.content = component.content;\n if (component.buttonType !== undefined)\n dataField.buttonType = component.buttonType;\n if (component.textboxType !== undefined)\n dataField.textboxType = component.textboxType;\n if (component.required !== undefined)\n dataField.required = component.required;\n // Extract options for selection fields (dropdown, radio, multiselect)\n if (component.options !== undefined)\n dataField.options = component.options;\n if (component.minLength !== undefined)\n dataField.minLength = component.minLength;\n if (component.maxLength !== undefined)\n dataField.maxLength = component.maxLength;\n // Handle numeric validation (use canonical names)\n if (component.minValue !== undefined)\n dataField.minValue = component.minValue;\n if (component.maxValue !== undefined)\n dataField.maxValue = component.maxValue;\n // Date/time validation\n if (component.minDate !== undefined)\n dataField.minDate = component.minDate;\n if (component.maxDate !== undefined)\n dataField.maxDate = component.maxDate;\n if (component.minTime !== undefined)\n dataField.minTime = component.minTime;\n if (component.maxTime !== undefined)\n dataField.maxTime = component.maxTime;\n // Pattern validation (rename from regex, convert RegExp to string)\n if (component.regex !== undefined) {\n var regex = component.regex;\n dataField.pattern = regex instanceof RegExp ? regex.source : regex;\n }\n if (component.pattern !== undefined) {\n var pattern = component.pattern;\n dataField.pattern = pattern instanceof RegExp ? pattern.source : pattern;\n }\n return dataField;\n}\n/**\n * @private\n */\nfunction extractUIField(component) {\n var uiField = {\n widget: component.type,\n };\n // Copy all properties EXCEPT those in data schema allowed list\n var dataSchemaProps = new Set([\n 'id', 'type', 'label', 'format', 'defaultValue', 'required', 'options', 'name', 'expressionValue',\n 'minLength', 'maxLength', 'minimum', 'maximum', 'minValue', 'maxValue',\n 'minDate', 'maxDate', 'minTime', 'maxTime', 'regex', 'pattern', 'content', 'buttonType', 'textboxType'\n ]);\n Object.keys(component).forEach(function (key) {\n if (!dataSchemaProps.has(key) && key !== 'id' && key !== 'type') {\n uiField[key] = component[key];\n }\n });\n // Special handling: Filter dataGrid columns to keep only required properties\n if (component.type === 'dataGrid' && uiField.columns && Array.isArray(uiField.columns)) {\n var requiredColumnProps_1 = [\n 'field',\n 'headerText',\n 'type',\n 'width',\n 'format',\n 'editType',\n 'validationRules',\n 'allowEditing',\n 'expression',\n 'isPrimaryKey',\n 'customValidation'\n ];\n uiField.columns = uiField.columns.map(function (col) {\n var filteredCol = {};\n requiredColumnProps_1.forEach(function (prop) {\n if (col[prop] !== undefined) {\n filteredCol[prop] = col[prop];\n }\n });\n return filteredCol;\n });\n }\n return uiField;\n}\n/**\n * @private\n */\nexport function mergeSchema(unified) {\n // Create lookup map for O(1) access to unified properties\n var propertyMap = new Map();\n var unifiedPropKeys = Object.keys(unified.properties);\n for (var _i = 0, unifiedPropKeys_1 = unifiedPropKeys; _i < unifiedPropKeys_1.length; _i++) {\n var id = unifiedPropKeys_1[_i];\n propertyMap.set(id, unified.properties[id]);\n }\n // Track processed field IDs to prevent duplicates\n var processedFieldIds = new Set();\n // Recursive function to process layout nodes\n var processLayoutNodes = function (layoutNodes) {\n var components = [];\n var _loop_2 = function (node) {\n if (node.type === 'field') {\n var fieldNode = node;\n // ✅ DEDUPLICATION: Skip if we've already processed this field\n if (processedFieldIds.has(fieldNode.propertyId)) {\n return \"continue\";\n }\n processedFieldIds.add(fieldNode.propertyId);\n var unifiedField = propertyMap.get(fieldNode.propertyId);\n if (!unifiedField) {\n // console.warn(`Field ${fieldNode.propertyId} in layout not found in schema`);\n // Generate fallback component\n var fallbackComponent = {\n id: fieldNode.propertyId || generateId('textbox'),\n name: generateName(''),\n type: 'textbox',\n label: 'Unknown Field',\n _configured: true\n };\n components.push(fallbackComponent);\n }\n else {\n components.push(mergeUnifiedField(unifiedField));\n }\n }\n else if (node.type === 'table') {\n var tableNode = node;\n var tableComponent_1 = __assign({ id: tableNode.id || generateId('table'), name: tableNode.name, type: 'table', label: tableNode.label || 'Table', cssClass: tableNode.cssClass, hideBorders: tableNode.hideBorders, rows: tableNode.rows, columns: tableNode.cols, columnWidths: tableNode.columnWidths, tableCells: [], _configured: true }, (tableNode.conditions ? { conditions: tableNode.conditions } : {}));\n // Process table cells recursively\n tableNode.cells.forEach(function (row) {\n var cellRow = [];\n row.forEach(function (cell) {\n var cellComponents = processLayoutNodes(cell.children);\n cellRow.push(cellComponents);\n });\n tableComponent_1.tableCells.push(cellRow);\n });\n components.push(tableComponent_1);\n }\n else if (node.type === 'panel') {\n var panelNode = node;\n var panelComponent = __assign({ id: panelNode.id || generateId('panel'), type: 'panel', name: panelNode.name, cssClass: panelNode.cssClass, hideBorders: panelNode.hideBorders, hideLabel: panelNode.hideLabel, label: panelNode.label || 'Panel', children: processLayoutNodes(panelNode.children), _configured: true }, (panelNode.conditions ? { conditions: panelNode.conditions } : {}));\n components.push(panelComponent);\n }\n else if (node.type === 'tabs') {\n var tabsNode = node;\n var tabsComponent_1 = __assign({ id: tabsNode.id || generateId('tabs'), type: 'tabs', name: tabsNode.name, label: tabsNode.label || 'Tabs', cssClass: tabsNode.cssClass, tabOptions: tabsNode.tabOptions, tabItems: [], _configured: true }, (tabsNode.conditions ? { conditions: tabsNode.conditions } : {}));\n // Process tabs recursively\n tabsNode.tabs.forEach(function (tab) {\n tabsComponent_1.tabItems.push({\n header: tab.header,\n content: processLayoutNodes(tab.children)\n });\n });\n components.push(tabsComponent_1);\n }\n else if (node.type === 'card') {\n var cardNode = node;\n var cardComponent = __assign({ id: cardNode.id || generateId('card'), type: 'card', name: cardNode.name, label: cardNode.label || 'Card', cssClass: cardNode.cssClass, hideLabel: cardNode.hideLabel, children: processLayoutNodes(cardNode.children), _configured: true }, (cardNode.conditions ? { conditions: cardNode.conditions } : {}));\n // Add card-specific properties\n if (cardNode.cardTitle !== undefined)\n cardComponent.cardTitle = cardNode.cardTitle;\n if (cardNode.cardSubtitle !== undefined)\n cardComponent.cardSubtitle = cardNode.cardSubtitle;\n components.push(cardComponent);\n }\n };\n for (var _i = 0, layoutNodes_1 = layoutNodes; _i < layoutNodes_1.length; _i++) {\n var node = layoutNodes_1[_i];\n _loop_2(node);\n }\n return components;\n };\n // Process root layout nodes\n var components;\n if (!unified.layout || unified.layout.length === 0) {\n // If layout is undefined or empty, generate a flat layout from properties\n var flatPropKeys = Object.keys(unified.properties);\n components = flatPropKeys.map(function (key) {\n return mergeUnifiedField(unified.properties[key]);\n });\n }\n else {\n components = processLayoutNodes(unified.layout);\n }\n return __assign({ version: unified.version, components: components }, (unified.settings ? { settings: unified.settings } : {}));\n}\n/**\n * @private\n */\nfunction mergeUnifiedField(unifiedField) {\n var hasOptions = unifiedField.options !== undefined && unifiedField.options.length > 0;\n var component = {\n id: unifiedField.id || generateId(unifiedField.widget || inferWidgetFromType(unifiedField.type, unifiedField.format, hasOptions)),\n name: unifiedField.name,\n type: (unifiedField.widget || inferWidgetFromType(unifiedField.type, unifiedField.format, hasOptions)),\n label: unifiedField.label || unifiedField.id,\n };\n // Copy all data and UI properties from unified field\n var dataSchemaProps = new Set([\n 'id', 'type', 'name', 'label', 'format', 'widget', 'defaultValue', 'required', 'options', 'expressionValue',\n 'minLength', 'maxLength', 'minimum', 'maximum', 'minValue', 'maxValue',\n 'minDate', 'maxDate', 'minTime', 'maxTime', 'regex', 'pattern', 'content', 'buttonType', 'textboxType'\n ]);\n Object.keys(unifiedField).forEach(function (key) {\n if (!dataSchemaProps.has(key) && key !== 'id' && key !== 'name' && key !== 'type' && key !== 'label') {\n component[key] = unifiedField[key];\n }\n });\n // Copy specific data properties\n if (unifiedField.defaultValue !== undefined)\n component.defaultValue = unifiedField.defaultValue;\n if (unifiedField.expressionValue !== undefined)\n component.expressionValue = unifiedField.expressionValue;\n if (unifiedField.required !== undefined)\n component.required = unifiedField.required;\n if (unifiedField.content !== undefined)\n component.content = unifiedField.content;\n if (unifiedField.buttonType !== undefined)\n component.buttonType = unifiedField.buttonType;\n if (unifiedField.textboxType !== undefined)\n component.textboxType = unifiedField.textboxType;\n if (unifiedField.options !== undefined)\n component.options = unifiedField.options;\n if (unifiedField.minLength !== undefined)\n component.minLength = unifiedField.minLength;\n if (unifiedField.maxLength !== undefined)\n component.maxLength = unifiedField.maxLength;\n if (unifiedField.minValue !== undefined)\n component.minValue = unifiedField.minValue;\n if (unifiedField.maxValue !== undefined)\n component.maxValue = unifiedField.maxValue;\n if (unifiedField.minDate !== undefined)\n component.minDate = unifiedField.minDate;\n if (unifiedField.maxDate !== undefined)\n component.maxDate = unifiedField.maxDate;\n if (unifiedField.minTime !== undefined)\n component.minTime = unifiedField.minTime;\n if (unifiedField.maxTime !== undefined)\n component.maxTime = unifiedField.maxTime;\n if (unifiedField.pattern !== undefined)\n component.regex = unifiedField.pattern;\n return component;\n}\n/**\n * @private\n */\nexport function inferWidgetFromType(type, format, hasOptions) {\n if (type === 'string') {\n if (format === 'date')\n return 'date';\n if (format === 'date-time')\n return 'dateTime';\n if (format === 'time')\n return 'time';\n if (format === 'email')\n return 'email';\n if (format === 'url')\n return 'url';\n // If options are present, default to dropdown for string types\n if (hasOptions)\n return 'dropdown';\n return 'textbox';\n }\n if (type === 'number')\n return 'number';\n if (type === 'boolean')\n return 'checkbox';\n if (type === 'array') {\n // For array type with options, use multiselect\n return 'multiselect';\n }\n if (type === 'button')\n return 'button';\n if (type === 'message')\n return 'message';\n if (type === 'sign')\n return 'signature';\n if (type === 'image')\n return 'imageEditor';\n if (type === 'file')\n return 'fileUpload';\n if (type === 'color')\n return 'colorPicker';\n if (type === 'grid')\n return 'dataGrid';\n if (type === 'any')\n return 'textbox';\n return 'textbox';\n}\n/**\n * @private\n */\nfunction levenshteinDistance(str1, str2) {\n var len1 = str1.length;\n var len2 = str2.length;\n var matrix = [];\n // Initialize matrix\n for (var i = 0; i <= len1; i++) {\n matrix[i] = [i];\n }\n for (var j = 0; j <= len2; j++) {\n matrix[0][j] = j;\n }\n // Fill matrix\n for (var i = 1; i <= len1; i++) {\n for (var j = 1; j <= len2; j++) {\n var cost = str1[i - 1] === str2[j - 1] ? 0 : 1;\n matrix[i][j] = Math.min(matrix[i - 1][j] + 1, // deletion\n matrix[i][j - 1] + 1, // insertion\n matrix[i - 1][j - 1] + cost // substitution\n );\n }\n }\n return matrix[len1][len2];\n}\n/**\n * @private\n */\nfunction calculateSimilarity(str1, str2) {\n var distance = levenshteinDistance(str1.toLowerCase(), str2.toLowerCase());\n var maxLen = Math.max(str1.length, str2.length);\n if (maxLen === 0)\n return 100;\n return Math.round(((maxLen - distance) / maxLen) * 100);\n}\n/**\n * @private\n */\nexport function matchFieldWithIDPreservation(newDataField, existingUISchema) {\n // 1. Try exact ID match first\n if (existingUISchema.properties[newDataField.id]) {\n return {\n existingId: newDataField.id,\n newDataId: newDataField.id,\n confidence: 'exact',\n method: 'id',\n similarity: 100\n };\n }\n // 2. Try fuzzy match by ID (check if existing ID starts with new ID or vice versa)\n var bestIdMatch = null;\n var idMatchKeys = Object.keys(existingUISchema.properties);\n for (var _i = 0, idMatchKeys_1 = idMatchKeys; _i < idMatchKeys_1.length; _i++) {\n var existingId = idMatchKeys_1[_i];\n var existingUIField = existingUISchema.properties[existingId];\n // Skip if this is a layout container\n if (existingUIField.widget === 'table' || existingUIField.widget === 'panel' || existingUIField.widget === 'tabs') {\n continue;\n }\n // Check if one ID is a prefix of the other (common case: radio_123 vs radio_123_456)\n var newId = newDataField.id || '';\n var isPrefix = existingId.indexOf(newId + '_') === 0 || newId.indexOf(existingId + '_') === 0;\n if (isPrefix) {\n var similarity = Math.round((Math.min(newId.length, existingId.length) / Math.max(newId.length, existingId.length)) * 100);\n if (!bestIdMatch || (bestIdMatch.similarity && similarity > bestIdMatch.similarity)) {\n bestIdMatch = {\n existingId: existingId,\n newDataId: newDataField.id,\n confidence: similarity >= 90 ? 'high' : similarity >= 70 ? 'medium' : 'low',\n method: 'id',\n similarity: similarity\n };\n }\n }\n else {\n // Try Levenshtein distance for ID similarity\n var idSimilarity = calculateSimilarity(existingId, newId);\n // Only consider as potential match if very similar (≥85%)\n if (idSimilarity >= 85) {\n if (!bestIdMatch || (bestIdMatch.similarity && idSimilarity > bestIdMatch.similarity)) {\n bestIdMatch = {\n existingId: existingId,\n newDataId: newDataField.id,\n confidence: idSimilarity >= 90 ? 'high' : 'medium',\n method: 'id',\n similarity: idSimilarity\n };\n }\n }\n }\n }\n // If we found a good ID match, use it\n if (bestIdMatch && bestIdMatch.similarity && bestIdMatch.similarity >= 70) {\n //console.log(`ID fuzzy match: \"${newDataField.id}\" → \"${bestIdMatch.existingId}\" (${bestIdMatch.similarity}% similar)`);\n return bestIdMatch;\n }\n // 3. Try fuzzy match by label\n var bestLabelMatch = null;\n var labelMatchKeys = Object.keys(existingUISchema.properties);\n for (var _a = 0, labelMatchKeys_1 = labelMatchKeys; _a < labelMatchKeys_1.length; _a++) {\n var existingId = labelMatchKeys_1[_a];\n var existingUIField = existingUISchema.properties[existingId];\n // Skip if this is a layout container\n if (existingUIField.widget === 'table' || existingUIField.widget === 'panel' || existingUIField.widget === 'tabs') {\n continue;\n }\n // Get label from UI field or try to extract from ID\n var existingLabel = existingUIField.label || existingId;\n var newLabel = newDataField.label || newDataField.id;\n if (!existingLabel || !newLabel)\n continue;\n var similarity = calculateSimilarity(existingLabel, newLabel);\n // Update best match if this is better\n if (!bestLabelMatch || (bestLabelMatch.similarity && similarity > bestLabelMatch.similarity)) {\n bestLabelMatch = {\n existingId: existingId,\n newDataId: newDataField.id,\n confidence: similarity >= 90 ? 'high' : similarity >= 70 ? 'medium' : 'low',\n method: similarity === 100 ? 'label-exact' : 'label-fuzzy',\n similarity: similarity\n };\n }\n }\n // 4. Return best label match if similarity is good enough (≥70%)\n if (bestLabelMatch && bestLabelMatch.similarity && bestLabelMatch.similarity >= 70) {\n //console.log(`Label fuzzy match: \"${newDataField.label}\" → \"${bestLabelMatch.existingId}\" (${bestLabelMatch.similarity}% similar)`);\n return bestLabelMatch;\n }\n // 5. No match found - use new ID\n return {\n existingId: newDataField.id,\n newDataId: newDataField.id,\n confidence: 'exact',\n method: 'new',\n similarity: 100\n };\n}\n/**\n * @private\n */\nexport function mergeWithIDRemapping(newDataSchema, existingUISchema) {\n var idMap = new Map(); // newId → canonicalId\n var matchResults = [];\n // Build ID mapping table\n var newDataPropKeys = Object.keys(newDataSchema.properties);\n for (var _i = 0, newDataPropKeys_1 = newDataPropKeys; _i < newDataPropKeys_1.length; _i++) {\n var newId = newDataPropKeys_1[_i];\n var dataField = newDataSchema.properties[newId];\n var match = matchFieldWithIDPreservation(dataField, existingUISchema);\n matchResults.push(match);\n idMap.set(newId, match.existingId || generateId(labelToFieldKey(dataField.label || '')));\n // Log remapping if IDs differ\n if (match.newDataId !== match.existingId) {\n //console.log(`ID remapped: ${match.newDataId} → ${match.existingId} (${match.method}, ${match.similarity}% similar)`);\n }\n }\n // Remap all data field IDs to canonical IDs\n var remappedDataFields = {};\n var newDataPropKeys2 = Object.keys(newDataSchema.properties);\n for (var _a = 0, newDataPropKeys2_1 = newDataPropKeys2; _a < newDataPropKeys2_1.length; _a++) {\n var newId = newDataPropKeys2_1[_a];\n var dataField = newDataSchema.properties[newId];\n var canonicalId = idMap.get(newId) || newId;\n remappedDataFields[canonicalId] = __assign({}, dataField, { id: canonicalId // Use canonical ID\n });\n }\n // Get existing field IDs from the layout\n var existingFieldIds = extractFieldIdsFromLayout(existingUISchema.layout);\n var newFieldIds = Object.keys(remappedDataFields).filter(function (id) { return !existingFieldIds.has(id); });\n //console.log(`📋 Existing fields in layout: ${existingFieldIds.size}, New fields: ${newFieldIds.length}`);\n // ✅ CHECK IF SUBMIT BUTTON EXISTS: Prevent duplicate submit buttons\n var existingUIValues = Object.keys(existingUISchema.properties).map(function (k) { return existingUISchema.properties[k]; });\n var hasExistingSubmitButton = existingUIValues.some(function (uiField) { return uiField.widget === 'button'; });\n // Filter out new submit buttons if one already exists\n var filteredNewFieldIds = newFieldIds.filter(function (id) {\n var dataField = remappedDataFields[id];\n if ((dataField.type === 'button' && dataField.buttonType === 'submit') && hasExistingSubmitButton) {\n //console.log(`⚠️ Skipping new button \"${dataField.label}\" - submit button already exists in layout`);\n return false;\n }\n return true;\n });\n //console.log(`📋 New fields after filtering: ${filteredNewFieldIds.length}`);\n // Update layout references to use canonical IDs\n var remappedLayout = remapLayoutIds(existingUISchema.layout, idMap);\n // Create UI properties for new fields that don't have them yet\n // ✅ Ensure all existing UI properties have _configured flag (add if missing from imported JSON)\n var enhancedUIProperties = {};\n var existingUIKeys = Object.keys(existingUISchema.properties);\n for (var _b = 0, existingUIKeys_1 = existingUIKeys; _b < existingUIKeys_1.length; _b++) {\n var key = existingUIKeys_1[_b];\n var uiField = existingUISchema.properties[key];\n enhancedUIProperties[key] = __assign({}, uiField, { _configured: uiField._configured !== undefined ? uiField._configured : true });\n }\n if (filteredNewFieldIds.length > 0) {\n //console.log(`➕ Adding ${filteredNewFieldIds.length} new fields to layout`);\n // Check if submit button exists and is at the last position (not moved by user)\n var lastNode = remappedLayout[remappedLayout.length - 1];\n var isSubmitAtEnd = lastNode && lastNode.type === 'field' &&\n enhancedUIProperties[lastNode.propertyId] && enhancedUIProperties[lastNode.propertyId].widget === 'button';\n var newFieldNodes_1 = [];\n // Generate default UI properties for new fields\n filteredNewFieldIds.forEach(function (id) {\n var dataField = remappedDataFields[id];\n var hasOptions = dataField.options !== undefined && dataField.options.length > 0;\n var widget = inferWidgetFromType(dataField.type, dataField.format, hasOptions);\n // ✅ Add default button styling\n var uiProperties = {\n widget: widget,\n label: dataField.label,\n _configured: true\n };\n // Add primary styling for buttons\n if (widget === 'button') {\n uiProperties.isPrimary = true;\n uiProperties.name = 'defaultFormSubmit';\n uiProperties.cssClass = 'e-primary';\n }\n enhancedUIProperties[id] = uiProperties;\n newFieldNodes_1.push({\n type: 'field',\n propertyId: id\n });\n });\n // Apply same logic as App.tsx: insert before submit if it's at the end\n if (isSubmitAtEnd) {\n // Insert new fields BEFORE the submit button\n remappedLayout = remappedLayout.slice(0, -1).concat(newFieldNodes_1, [remappedLayout[remappedLayout.length - 1]]);\n //console.log(`📐 Layout rebuilt: new fields inserted before submit button at end`);\n }\n else {\n // Submit moved or doesn't exist - add new fields at end\n remappedLayout = remappedLayout.concat(newFieldNodes_1);\n //console.log(`📐 Layout rebuilt: new fields added at end`);\n }\n }\n // Merge to FormSchema using unified schema\n var unifiedProperties = {};\n Object.keys(remappedDataFields).forEach(function (fieldKey) {\n var dataField = remappedDataFields[fieldKey];\n var uiField = enhancedUIProperties[fieldKey];\n unifiedProperties[fieldKey] = __assign({}, dataField, uiField, { widget: (uiField && uiField.widget) || inferWidgetFromType(dataField.type, dataField.format, dataField.options !== undefined) });\n });\n var mergedSchema = mergeSchema(__assign({ version: newDataSchema.version, properties: unifiedProperties, layout: remappedLayout }, (newDataSchema.settings ? { settings: newDataSchema.settings } : {})));\n return mergedSchema;\n}\n/**\n * @private\n */\nfunction remapLayoutIds(layout, idMap) {\n return layout.map(function (node) {\n if (node.type === 'field') {\n var fieldNode = node;\n var canonicalId = idMap.get(fieldNode.propertyId) || fieldNode.propertyId;\n return __assign({}, fieldNode, { propertyId: canonicalId });\n }\n else if (node.type === 'table') {\n var tableNode = node;\n return __assign({}, tableNode, { cells: tableNode.cells.map(function (row) {\n return row.map(function (cell) { return (__assign({}, cell, { children: remapLayoutIds(cell.children, idMap) })); });\n }) });\n }\n else if (node.type === 'panel') {\n var panelNode = node;\n return __assign({}, panelNode, { children: remapLayoutIds(panelNode.children, idMap) });\n }\n else if (node.type === 'tabs') {\n var tabsNode = node;\n return __assign({}, tabsNode, { tabs: tabsNode.tabs.map(function (tab) { return (__assign({}, tab, { children: remapLayoutIds(tab.children, idMap) })); }) });\n }\n else if (node.type === 'card') {\n var cardNode = node;\n return __assign({}, cardNode, { children: remapLayoutIds(cardNode.children, idMap) });\n }\n return node;\n });\n}\n/**\n * @private\n */\nexport function extractFieldIdsFromLayout(layout) {\n var fieldIds = new Set();\n var stack = layout.slice();\n while (stack.length > 0) {\n var node = stack.shift();\n if (node.type === 'field') {\n fieldIds.add(node.propertyId);\n }\n else if (node.type === 'table') {\n node.cells.forEach(function (row) {\n return row.forEach(function (cell) { return stack.push.apply(stack, cell.children); });\n });\n }\n else if (node.type === 'panel') {\n stack.push.apply(stack, node.children);\n }\n else if (node.type === 'tabs') {\n node.tabs.forEach(function (tab) { return stack.push.apply(stack, tab.children); });\n }\n else if (node.type === 'card') {\n stack.push.apply(stack, node.children);\n }\n }\n return fieldIds;\n}\n/**\n * @private\n */\nexport function convertComponentsToDataSchema(components) {\n var properties = {};\n var seenComponentIds = new Set(); // Track component IDs to prevent duplicates\n // Flatten all components (including nested ones)\n var stack = components.slice();\n while (stack.length > 0) {\n var comp = stack.shift();\n // Infer semantic type from component\n var semanticType = UI_TYPE_TO_SEMANTIC_TYPE[comp.type];\n // Skip presentation-only widgets (button, message, etc.) - they have null semantic type\n if (semanticType === null) {\n // Still process nested children for layout containers\n if (comp.children && comp.children.length) {\n stack.unshift.apply(stack, comp.children);\n }\n if (comp.tabItems && comp.tabItems.length) {\n for (var _i = 0, _a = comp.tabItems; _i < _a.length; _i++) {\n var tab = _a[_i];\n if (tab.content && tab.content.length) {\n stack.unshift.apply(stack, tab.content);\n }\n }\n }\n if (comp.tableCells && comp.tableCells.length) {\n for (var _b = 0, _c = comp.tableCells; _b < _c.length; _b++) {\n var row = _c[_b];\n for (var _d = 0, row_1 = row; _d < row_1.length; _d++) {\n var cell = row_1[_d];\n if (cell.length) {\n stack.unshift.apply(stack, cell);\n }\n }\n }\n }\n continue; // Skip adding to data schema\n }\n // ✅ DEDUPLICATION: Skip if we've already processed this component ID\n if (seenComponentIds.has(comp.id)) {\n //console.log(`⚠️ Skipping duplicate component: ${comp.id} (${comp.label})`);\n // Still process nested children\n if (comp.children && comp.children.length) {\n stack.unshift.apply(stack, comp.children);\n }\n if (comp.tabItems && comp.tabItems.length) {\n for (var _e = 0, _f = comp.tabItems; _e < _f.length; _e++) {\n var tab = _f[_e];\n if (tab.content && tab.content.length) {\n stack.unshift.apply(stack, tab.content);\n }\n }\n }\n if (comp.tableCells && comp.tableCells.length) {\n for (var _g = 0, _h = comp.tableCells; _g < _h.length; _g++) {\n var row = _h[_g];\n for (var _j = 0, row_2 = row; _j < row_2.length; _j++) {\n var cell = row_2[_j];\n if (cell.length) {\n stack.unshift.apply(stack, cell);\n }\n }\n }\n }\n continue;\n }\n seenComponentIds.add(comp.id);\n // Generate fieldKey from label or ID\n var baseFieldKey = labelToFieldKey(comp.label || comp.id, comp.id);\n var fieldKey = makeUniqueFieldKey(baseFieldKey, new Set(Object.keys(properties)), comp.id);\n var dataField = extractDataField(comp, semanticType || { type: 'any' });\n properties[fieldKey] = dataField;\n // Process nested children\n if (comp.children && comp.children.length) {\n stack.unshift.apply(stack, comp.children);\n }\n // Process tab items\n if (comp.tabItems && comp.tabItems.length) {\n for (var _k = 0, _l = comp.tabItems; _k < _l.length; _k++) {\n var tab = _l[_k];\n if (tab.content && tab.content.length) {\n stack.unshift.apply(stack, tab.content);\n }\n }\n }\n // Process table cells\n if (comp.tableCells && comp.tableCells.length) {\n for (var _m = 0, _o = comp.tableCells; _m < _o.length; _m++) {\n var row = _o[_m];\n for (var _p = 0, row_3 = row; _p < row_3.length; _p++) {\n var cell = row_3[_p];\n // cell is FormNode[], not an object with .components\n if (cell.length) {\n stack.unshift.apply(stack, cell);\n }\n }\n }\n }\n }\n return {\n version: '1.0',\n properties: properties\n };\n}\n","/**\n * ExpressionParser - Parse and compile expressions\n *\n * Converts string expressions into safe, compiled functions\n * Supports field references, operators, functions, and conditionals\n * @private\n */\nvar ExpressionParser = /** @class */ (function () {\n function ExpressionParser() {\n this.supportedFunctions = [\n 'SUM', 'AVG', 'MIN', 'MAX', 'COUNT',\n 'ROUND', 'FLOOR', 'CEIL', 'ABS', 'SQRT',\n 'UPPER', 'LOWER', 'CONCAT', 'LENGTH', 'TRIM', 'SUBSTRING',\n 'TODAY', 'AGE', 'DATEFORMAT', 'DATEDIFF', 'ADDDAYS', 'SUBDAYS', 'INCLUDES', 'CONTAINS', 'ISNAN', 'SUPPORTEDVALUESOF', 'TOSTRING', 'DATE', 'GETTIME',\n 'EVERY', 'SOME'\n ];\n this.availableFields = new Map();\n }\n /**\n * Initialize parser with available fields for type validation\n */\n ExpressionParser.prototype.setAvailableFields = function (fields) {\n var _this = this;\n this.availableFields.clear();\n fields.forEach(function (field) {\n _this.availableFields.set(field.name, field);\n });\n };\n ExpressionParser.prototype.validateFieldOperations = function (expression) {\n var errors = [];\n // Skip if no fields available\n if (this.availableFields.size === 0) {\n return errors;\n }\n // Invalid operators for string fields (allow only + for concatenation)\n var stringInvalidOps = ['-', '*', '/', '%', '^'];\n // All operators invalid for date fields\n var dateInvalidOps = ['-', '*', '/', '%', '^', '+'];\n // Track reported operator positions to avoid duplicates\n var reportedOperators = new Set();\n // Extract all field references and their surrounding operators\n var fieldRefPattern = /(\\{[^}]+\\})/g;\n var match;\n while ((match = fieldRefPattern.exec(expression)) !== null) {\n var fieldRef = match[0];\n var fieldName = fieldRef.slice(1, -1); // Remove { }\n var field = this.availableFields.get(fieldName);\n if (!field)\n continue; // Field not found in available fields, skip validation\n var fieldIndex = match.index;\n var fieldEndIndex = fieldIndex + fieldRef.length;\n // Get context around field reference (including spaces)\n var textBefore = expression.substring(Math.max(0, fieldIndex - 10), fieldIndex);\n var textAfter = expression.substring(fieldEndIndex, Math.min(expression.length, fieldEndIndex + 10));\n // Extract the operator if present (skip spaces)\n var operatorBefore = textBefore.replace(/\\s+$/, '').slice(-1);\n var operatorAfter = textAfter.replace(/^\\s+/, '').charAt(0);\n // Calculate actual position of operators in the original expression\n var textBeforeTrimmed = textBefore.replace(/\\s+$/, '');\n var textAfterTrimmed = textAfter.replace(/^\\s+/, '');\n var operatorBeforePos = fieldIndex - (textBefore.length - textBeforeTrimmed.length) - 1;\n var operatorAfterPos = fieldEndIndex + (textAfter.length - textAfterTrimmed.length);\n // For STRING fields: reject all operators except +\n if (field.type === 'string' && !field.format) {\n if (operatorBefore && stringInvalidOps.indexOf(operatorBefore) !== -1) {\n var key = operatorBeforePos + \":\" + operatorBefore;\n if (!reportedOperators.has(key)) {\n errors.push(\"Cannot perform '\" + operatorBefore + \"' operation on string field '{\" + fieldName + \"}'\");\n reportedOperators.add(key);\n }\n }\n if (operatorAfter && stringInvalidOps.indexOf(operatorAfter) !== -1) {\n var key = operatorAfterPos + \":\" + operatorAfter;\n if (!reportedOperators.has(key)) {\n errors.push(\"Cannot perform '\" + operatorAfter + \"' operation on string field '{\" + fieldName + \"}'\");\n reportedOperators.add(key);\n }\n }\n }\n // For DATE fields: reject ALL operators including +\n if (field.format === 'date' || field.format === 'date-time' || field.format === 'time') {\n if (operatorBefore && dateInvalidOps.indexOf(operatorBefore) !== -1) {\n var key = operatorBeforePos + \":\" + operatorBefore;\n if (!reportedOperators.has(key)) {\n errors.push(\"Cannot perform '\" + operatorBefore + \"' operation on date field '{\" + fieldName + \"}'\");\n reportedOperators.add(key);\n }\n }\n if (operatorAfter && dateInvalidOps.indexOf(operatorAfter) !== -1) {\n var key = operatorAfterPos + \":\" + operatorAfter;\n if (!reportedOperators.has(key)) {\n errors.push(\"Cannot perform '\" + operatorAfter + \"' operation on date field '{\" + fieldName + \"}'\");\n reportedOperators.add(key);\n }\n }\n }\n }\n return errors;\n };\n /**\n * Validate expression syntax\n */\n ExpressionParser.prototype.validate = function (expression) {\n var errors = [];\n if (!expression || expression.trim() === '') {\n return { valid: true, errors: [] };\n }\n // Check for unbalanced braces\n var openBraces = (expression.match(/\\{/g) || []).length;\n var closeBraces = (expression.match(/\\}/g) || []).length;\n if (openBraces !== closeBraces) {\n errors.push('Unbalanced braces in expression');\n }\n // Check for unbalanced parentheses\n var openParens = (expression.match(/\\(/g) || []).length;\n var closeParens = (expression.match(/\\)/g) || []).length;\n if (openParens !== closeParens) {\n errors.push('Unbalanced parentheses in expression');\n }\n // Check for invalid function calls\n var funcPattern = /(\\w+)\\s*\\(/g;\n var match;\n while ((match = funcPattern.exec(expression)) !== null) {\n var funcName = match[1].toUpperCase();\n // Only validate uppercase-named functions\n if (funcName === funcName.toUpperCase() && this.supportedFunctions.indexOf(funcName) === -1) {\n errors.push(\"Unknown function: \" + funcName);\n }\n }\n // Validate field operations based on field types\n var fieldOpErrors = this.validateFieldOperations(expression);\n errors.push.apply(errors, fieldOpErrors);\n return {\n valid: errors.length === 0,\n errors: errors\n };\n };\n /**\n * Compile expression to executable function\n */\n ExpressionParser.prototype.compile = function (expression, options) {\n if (options === void 0) { options = {}; }\n try {\n // Set available fields for validation if provided\n if (options.availableFields && Array.isArray(options.availableFields)) {\n this.setAvailableFields(options.availableFields);\n }\n // Validate expression before compiling\n var validation = this.validate(expression);\n if (!validation.valid) {\n return function () { return null; };\n }\n // Replace field references with context lookups\n var compiled_1 = expression;\n // Handle field references FIRST (this includes refs inside ${...})\n compiled_1 = this.compileFieldReferences(compiled_1);\n compiled_1 = options.isCustomValidation ? this.compileInputReferences(compiled_1) : compiled_1;\n // Handle bare function calls SECOND (e.g., SUM([...]) without braces)\n compiled_1 = this.compileBareFunctionCalls(compiled_1);\n // Handle math expressions THIRD (now ${} and {} contain already-replaced refs)\n compiled_1 = this.compileMatrixExpressions(compiled_1);\n return function (context) {\n try {\n // This uses Function constructor with controlled context binding\n // which is safer than eval() but still allows expressions\n // Note: compiled expression already uses context['field'] syntax\n var func = new Function('context', \"\\n try {\\n return \" + compiled_1 + \";\\n } catch (e) {\\n return null;\\n }\\n \");\n return func(context);\n }\n catch (e) {\n return null;\n }\n };\n }\n catch (error) {\n return function () { return null; };\n }\n };\n // Private helpers\n ExpressionParser.prototype.compileMatrixExpressions = function (expression) {\n var compiled = expression;\n var constants = ['PI', 'TRUE', 'FALSE', 'NULL', 'UNDEFINED', 'Math'];\n var functions = [\n 'SUM', 'AVG', 'MIN', 'MAX', 'COUNT',\n 'ROUND', 'FLOOR', 'CEIL', 'ABS', 'SQRT',\n 'UPPER', 'LOWER', 'CONCAT', 'LENGTH', 'TRIM', 'SUBSTRING',\n 'TODAY', 'AGE', 'DATEFORMAT', 'DATEDIFF', 'ADDDAYS', 'SUBDAYS'\n ];\n // Create fresh regex each time to avoid lastIndex issues with g flag\n var mathExprPattern = /\\$?\\{([^}]+)\\}/g;\n // Process ${...} and {...} blocks: replace bare identifiers with context lookups\n compiled = compiled.replace(mathExprPattern, function (_match, content) {\n var transformed = content;\n // STEP 1: Handle function calls first\n // Match function names followed by ( and prefix with context.\n // Use negative lookbehind to avoid double-replacing (e.g., context.SUM)\n functions.forEach(function (fn) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n var funcCallRegex = new RegExp(\"(?<!context\\\\.)\\\\b\" + fn + \"\\\\b(?=\\\\s*\\\\()\", 'g');\n transformed = transformed.replace(funcCallRegex, \"context.\" + fn);\n });\n constants.forEach(function (constant) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n var constantRegex = new RegExp(\"\\\\b\" + constant + \"\\\\b\", 'g');\n transformed = transformed.replace(constantRegex, \"context.\" + constant);\n });\n // Return as parenthesized expression\n return \"(\" + transformed + \")\";\n });\n return compiled;\n };\n ExpressionParser.prototype.compileBareFunctionCalls = function (expression) {\n var compiled = expression;\n var functions = [\n 'SUM', 'AVG', 'MIN', 'MAX', 'COUNT',\n 'ROUND', 'FLOOR', 'CEIL', 'ABS', 'SQRT',\n 'UPPER', 'LOWER', 'CONCAT', 'LENGTH', 'TRIM', 'SUBSTRING',\n 'TODAY', 'AGE', 'DATEFORMAT', 'DATEDIFF', 'ADDDAYS', 'SUBDAYS'\n ];\n // Handle bare function calls like SUM([...]) that are not inside ${...} or {...}\n // Use negative lookbehind to avoid matching if already preceded by context.\n functions.forEach(function (fn) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n var funcCallRegex = new RegExp(\"(?<!context\\\\.)\\\\b\" + fn + \"\\\\b(?=\\\\s*\\\\()\", 'g');\n compiled = compiled.replace(funcCallRegex, \"context.\" + fn);\n });\n return compiled;\n };\n ExpressionParser.prototype.compileFieldReferences = function (expression) {\n var compiled = expression;\n // Create fresh regex each time to avoid lastIndex issues with g flag\n var fieldRefPattern = /\\{([^{}]+)\\}/g;\n // Replace {fieldName} with context['fieldName'] or field access\n compiled = compiled.replace(fieldRefPattern, function (match, ref) {\n // Handle escaped braces\n if (ref.startsWith('\\\\') && ref.endsWith('\\\\')) {\n return match; // Keep as is\n }\n // Handle nested paths like {customer.name}\n return \"context['\" + ref.replace(/\\./g, '\\'].[') + \"']\";\n });\n return compiled;\n };\n ExpressionParser.prototype.compileInputReferences = function (expression) {\n var compiled = expression;\n // First, protect string literals to avoid replacing 'input' inside strings\n var strings = [];\n var stringProtected = compiled;\n // eslint-disable-next-line security/detect-unsafe-regex\n stringProtected = stringProtected.replace(/(['\"`])(?:(?=(\\\\?))\\2.)*?\\1/g, function (match) {\n strings.push(match);\n return \"__STRING_\" + (strings.length - 1) + \"__\";\n });\n // Case 1: Replace input.property with context['input'].property\n var inputPropertyPattern = /(?<!context\\[')\\binput\\./g;\n stringProtected = stringProtected.replace(inputPropertyPattern, 'context[\\'input\\'].');\n // Case 2: Replace bare 'input' with context['input']\n // Use negative lookbehind to avoid replacing if already preceded by context.'\n var inputPattern = /(?<!context\\[')\\binput\\b(?!\\s*[(\\.])/g;\n stringProtected = stringProtected.replace(inputPattern, 'context[\\'input\\']');\n // Restore string literals\n var result = stringProtected;\n strings.forEach(function (str, idx) {\n result = result.replace(\"__STRING_\" + idx + \"__\", str);\n });\n return result;\n };\n return ExpressionParser;\n}());\nexport { ExpressionParser };\n","/**\n * DependencyTracker - Extract and track field dependencies\n *\n * Analyzes expressions to find field references and build dependency graphs\n * Detects circular dependencies and calculates evaluation order\n * @private\n */\nvar DependencyTracker = /** @class */ (function () {\n function DependencyTracker() {\n this.escapedBracePattern = /\\\\{.*?\\\\}/g;\n }\n /**\n * Extract field names referenced in expression\n */\n DependencyTracker.prototype.extractFieldReferences = function (expression) {\n if (!expression)\n return [];\n var refs = new Set();\n var match;\n // Remove escaped braces first\n var cleanExpression = expression.replace(this.escapedBracePattern, '');\n // Extract field references from {field} syntax\n var fieldRefPattern = /\\{([^{}]+)\\}/g;\n while ((match = fieldRefPattern.exec(cleanExpression)) !== null) {\n var ref = match[1].trim();\n // Skip if it's a function call or operator\n if (!this.isFunctionCall(ref) && !this.isOperator(ref)) {\n // Extract field name from nested paths\n var fieldName = ref.split(/[.\\[\\]]/)[0].trim();\n if (fieldName && !this.isKeyword(fieldName)) {\n refs.add(fieldName);\n }\n }\n }\n // Extract identifiers from ${...} math expressions\n var mathExprPattern = /\\$\\{([^}]+)\\}/g;\n while ((match = mathExprPattern.exec(cleanExpression)) !== null) {\n var mathExpr = match[1];\n // Extract all identifiers from the math expression\n // Match word boundaries followed by identifier characters\n // But skip if followed by ( or . (those are function calls or property access)\n var identPattern = /\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*[(\\.])/g;\n var idMatch = void 0;\n while ((idMatch = identPattern.exec(mathExpr)) !== null) {\n var identifier = idMatch[1];\n // Skip keywords and constants\n if (!this.isKeyword(identifier) && identifier !== 'Math') {\n refs.add(identifier);\n }\n }\n }\n return Array.from(refs);\n };\n /**\n * Build dependency graph from multiple expressions\n */\n DependencyTracker.prototype.buildGraph = function (expressions) {\n var graph = {};\n var keys = Object.keys(expressions);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var fieldName = keys_1[_i];\n var deps = this.extractFieldReferences(expressions[fieldName]);\n graph[fieldName] = deps;\n }\n return graph;\n };\n /**\n * Detect circular dependencies using DFS\n */\n DependencyTracker.prototype.detectCircularDependencies = function (graph) {\n var visited = new Set();\n var recursionStack = new Set();\n var cycles = [];\n var visit = function (node, path) {\n visited.add(node);\n recursionStack.add(node);\n path.push(node);\n var deps = graph[node] || [];\n for (var _i = 0, deps_1 = deps; _i < deps_1.length; _i++) {\n var dep = deps_1[_i];\n if (!visited.has(dep)) {\n visit(dep, path.slice());\n }\n else if (recursionStack.has(dep)) {\n var cycleStart = path.indexOf(dep);\n cycles.push(path.slice(cycleStart).concat([dep]));\n }\n }\n recursionStack.delete(node);\n };\n for (var _i = 0, _a = Object.keys(graph); _i < _a.length; _i++) {\n var node = _a[_i];\n if (!visited.has(node)) {\n visit(node, []);\n }\n }\n return cycles;\n };\n /**\n * Get topological sort order for evaluation\n */\n DependencyTracker.prototype.getTopologicalOrder = function (graph) {\n var visited = new Set();\n var order = [];\n var visit = function (node) {\n if (visited.has(node))\n return;\n visited.add(node);\n var deps = graph[node] || [];\n for (var _i = 0, deps_2 = deps; _i < deps_2.length; _i++) {\n var dep = deps_2[_i];\n if (graph[dep]) {\n visit(dep);\n }\n }\n order.push(node);\n };\n for (var _i = 0, _a = Object.keys(graph); _i < _a.length; _i++) {\n var node = _a[_i];\n visit(node);\n }\n return order;\n };\n // Private helpers\n DependencyTracker.prototype.isFunctionCall = function (ref) {\n return /^\\w+\\s*\\(/.test(ref);\n };\n DependencyTracker.prototype.isOperator = function (ref) {\n return /^[+\\-*/()=!<>&|]/.test(ref);\n };\n DependencyTracker.prototype.isKeyword = function (name) {\n var keywords = ['PI', 'TRUE', 'FALSE', 'NULL', 'UNDEFINED', 'and', 'or', 'in'];\n return keywords.indexOf(name.toUpperCase()) !== -1;\n };\n return DependencyTracker;\n}());\nexport { DependencyTracker };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ExpressionParser } from './expression-parser';\nimport { DependencyTracker } from './dependency-tracker';\nimport { Internationalization } from '@syncfusion/ej2-base';\n/**\n * ExpressionEngine - Core evaluation engine\n *\n * Safely evaluates user-defined expressions against form state\n * Supports field references, math operations, functions, and conditionals\n * @private\n */\nvar ExpressionEngine = /** @class */ (function () {\n function ExpressionEngine() {\n this.evaluationCache = new Map();\n this.compiledFunctions = new Map();\n this.parser = new ExpressionParser();\n this.dependencyTracker = new DependencyTracker();\n }\n /**\n * Evaluate expression against form values\n */\n ExpressionEngine.prototype.evaluate = function (expression, formValues, options, isCustomValidation) {\n if (options === void 0) { options = {}; }\n if (isCustomValidation === void 0) { isCustomValidation = false; }\n try {\n if (!expression || expression.trim() === '') {\n return null;\n }\n var _a = options.timeout, timeout = _a === void 0 ? 5000 : _a, _b = options.maxDepth, maxDepth = _b === void 0 ? 10 : _b, _c = options.locale, locale = _c === void 0 ? 'en-US' : _c, _d = options.throwOnError, throwOnError = _d === void 0 ? false : _d;\n // Check cache\n var cacheKey = this.getCacheKey(expression, formValues);\n if (!isCustomValidation && this.evaluationCache.has(cacheKey)) {\n return this.evaluationCache.get(cacheKey);\n }\n // Get or compile function\n var fn = this.compiledFunctions.get(expression);\n if (!fn) {\n fn = this.parser.compile(expression, {\n timeout: timeout,\n maxDepth: maxDepth,\n locale: locale,\n isCustomValidation: isCustomValidation\n });\n this.compiledFunctions.set(expression, fn);\n }\n // Execute with context\n var context = this.buildContext(formValues);\n var startTime = Date.now();\n var result = fn(context);\n // Validate timeout\n if (Date.now() - startTime > timeout) {\n var error = new Error(\"Expression evaluation exceeded timeout of \" + timeout + \"ms\");\n if (throwOnError)\n throw error;\n return null;\n }\n // Cache result\n this.evaluationCache.set(cacheKey, result);\n return result;\n }\n catch (error) {\n if (options.throwOnError) {\n throw error;\n }\n return null;\n }\n };\n /**\n * Extract field names referenced in expression\n */\n ExpressionEngine.prototype.extractDependencies = function (expression) {\n if (!expression)\n return [];\n return this.dependencyTracker.extractFieldReferences(expression);\n };\n /**\n * Build dependency graph for all expressions\n */\n ExpressionEngine.prototype.buildDependencyGraph = function (components) {\n var _this = this;\n var graph = {};\n components.forEach(function (comp) {\n if (comp.expressionValue) {\n var deps = _this.extractDependencies(comp.expressionValue);\n graph[comp.name] = deps;\n }\n });\n return graph;\n };\n /**\n * Detect circular dependencies\n */\n ExpressionEngine.prototype.detectCircularDependencies = function (graph) {\n var visited = new Set();\n var recursionStack = new Set();\n var cycles = [];\n var visit = function (node, path) {\n visited.add(node);\n recursionStack.add(node);\n path.push(node);\n var deps = graph[node] || [];\n for (var _i = 0, deps_1 = deps; _i < deps_1.length; _i++) {\n var dep = deps_1[_i];\n if (!visited.has(dep)) {\n visit(dep, path.slice());\n }\n else if (recursionStack.has(dep)) {\n var cycleStart = path.indexOf(dep);\n cycles.push(path.slice(cycleStart).concat([dep]));\n }\n }\n recursionStack.delete(node);\n };\n for (var _i = 0, _a = Object.keys(graph); _i < _a.length; _i++) {\n var node = _a[_i];\n if (!visited.has(node)) {\n visit(node, []);\n }\n }\n return cycles;\n };\n /**\n * Get topological order for evaluation\n */\n ExpressionEngine.prototype.getTopologicalOrder = function (graph) {\n var visited = new Set();\n var order = [];\n var visit = function (node) {\n if (visited.has(node))\n return;\n visited.add(node);\n var deps = graph[node] || [];\n for (var _i = 0, deps_2 = deps; _i < deps_2.length; _i++) {\n var dep = deps_2[_i];\n visit(dep);\n }\n order.push(node);\n };\n for (var _i = 0, _a = Object.keys(graph); _i < _a.length; _i++) {\n var node = _a[_i];\n visit(node);\n }\n return order;\n };\n /**\n * Clear internal caches\n */\n ExpressionEngine.prototype.clearCache = function () {\n this.evaluationCache.clear();\n this.compiledFunctions.clear();\n };\n // Private helper methods\n ExpressionEngine.prototype.getCacheKey = function (expression, formValues) {\n // Simple cache key (in production, use better hashing)\n return expression + \":\" + JSON.stringify(formValues);\n };\n ExpressionEngine.prototype.buildContext = function (formValues) {\n var intl = new Internationalization();\n var dFormatter = intl.getDateFormat({\n format: 'MM/dd/yyyy',\n type: 'date'\n });\n return __assign({}, formValues, { \n // Constants\n PI: Math.PI, TRUE: true, FALSE: false, NULL: null, UNDEFINED: undefined, Math: Math, \n // Aggregate Functions\n SUM: function (values) { return Array.isArray(values) ? values.reduce(function (a, b) { return Number(a) + Number(b); }, 0) : 0; }, AVG: function (values) {\n if (!Array.isArray(values) || values.length === 0)\n return 0;\n var sum = values.reduce(function (a, b) { return Number(a) + Number(b); }, 0);\n return sum / values.length;\n }, MIN: function (values) { return Array.isArray(values) && values.length > 0 ? Math.min.apply(Math, values.map(Number)) : 0; }, MAX: function (values) { return Array.isArray(values) && values.length > 0 ? Math.max.apply(Math, values.map(Number)) : 0; }, COUNT: function (values) { return Array.isArray(values) ? values.length : 0; }, \n // Math Functions\n ROUND: function (value, decimals) {\n if (decimals === void 0) { decimals = 0; }\n return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);\n }, FLOOR: Math.floor, CEIL: Math.ceil, ABS: Math.abs, SQRT: Math.sqrt, \n // String Functions\n UPPER: function (text) { return String(text).toUpperCase(); }, LOWER: function (text) { return String(text).toLowerCase(); }, CONCAT: function () {\n var strings = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n strings[_i] = arguments[_i];\n }\n return strings.map(String).join('');\n }, LENGTH: function (text) { return String(text).length; }, TRIM: function (text) { return String(text).trim(); }, SUBSTRING: function (text, start, length) {\n return length !== undefined\n ? String(text).substr(start, length)\n : String(text).substr(start);\n }, \n // Date Functions\n TODAY: function () {\n var value = dFormatter(new Date());\n return value;\n }, AGE: function (birthDate) {\n var birth = typeof birthDate === 'string' ? new Date(birthDate) : birthDate;\n var today = new Date();\n var age = today.getFullYear() - birth.getFullYear();\n var monthDiff = today.getMonth() - birth.getMonth();\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) {\n age--;\n }\n return age;\n }, DATEFORMAT: function (date, format) {\n var d = typeof date === 'string' ? new Date(date) : date;\n var formatter = intl.getDateFormat({\n format: format,\n type: 'date'\n });\n // Simple date format implementation\n return formatter(d);\n }, DATEDIFF: function (date1, date2) {\n var d1 = typeof date1 === 'string' ? new Date(date1) : date1;\n var d2 = typeof date2 === 'string' ? new Date(date2) : date2;\n return Math.floor((d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));\n }, \n // Add days to a date (for date arithmetic like {date} + 5)\n ADDDAYS: function (date, days) {\n var d = typeof date === 'string' ? new Date(date) : new Date(date);\n d.setDate(d.getDate() + Number(days));\n return dFormatter(d);\n }, \n // Add days to a date (for date arithmetic like {date} + 5)\n SUBDAYS: function (date, days) {\n var d = typeof date === 'string' ? new Date(date) : new Date(date);\n d.setDate(d.getDate() - Number(days));\n return dFormatter(d);\n } });\n };\n return ExpressionEngine;\n}());\nexport { ExpressionEngine };\n/**\n * ExpressionValidator - Validates expressions before runtime\n *\n * Checks syntax, validates field references, and detects circular dependencies\n * @private\n */\nvar ExpressionValidator = /** @class */ (function () {\n function ExpressionValidator() {\n this.supportedFunctions = [\n 'SUM', 'AVG', 'MIN', 'MAX', 'COUNT',\n 'ROUND', 'FLOOR', 'CEIL', 'ABS', 'SQRT',\n 'UPPER', 'LOWER', 'CONCAT', 'LENGTH', 'TRIM', 'SUBSTRING',\n 'TODAY', 'AGE', 'DATEFORMAT', 'DATEDIFF', 'ADDDAYS', 'SUBDAYS'\n ];\n this.keywords = ['PI', 'TRUE', 'FALSE', 'NULL', 'UNDEFINED', 'and', 'or', 'in'];\n }\n /**\n * Validate expression against available fields\n */\n ExpressionValidator.prototype.validate = function (expression, availableFields) {\n var errors = [];\n if (!expression || expression.trim() === '') {\n return errors; // Empty expression is valid\n }\n // Check syntax\n var syntaxErrors = this.validateSyntax(expression);\n errors.push.apply(errors, syntaxErrors);\n // Check field references\n var fieldErrors = this.validateFieldReferences(expression, availableFields);\n errors.push.apply(errors, fieldErrors);\n // Check function calls\n var funcErrors = this.validateFunctionCalls(expression);\n errors.push.apply(errors, funcErrors);\n // Check field operations based on types\n var opErrors = this.validateFieldOperations(expression, availableFields);\n errors.push.apply(errors, opErrors);\n return errors;\n };\n /**\n * Validate field operations - check for invalid operators on string/date types\n */\n ExpressionValidator.prototype.validateFieldOperations = function (expression, availableFields) {\n var errors = [];\n // Skip if not field objects with type info\n if (!Array.isArray(availableFields) || availableFields.length === 0) {\n return errors;\n }\n var firstField = availableFields[0];\n if (typeof firstField === 'string') {\n return errors; // No type information available\n }\n // Build field map from objects\n var fieldMap = new Map();\n availableFields.forEach(function (field) {\n if (field && typeof field === 'object' && field.name) {\n fieldMap.set(field.name, field);\n }\n });\n if (fieldMap.size === 0)\n return errors;\n // Track reported operator positions to avoid duplicates\n var reportedOperators = new Set();\n // Check each field reference for invalid operations\n var fieldRefPattern = /(\\{[^}]+\\})/g;\n var match;\n // Invalid operators for string fields (allow only + for concatenation)\n var stringInvalidOps = ['-', '*', '/', '%', '^'];\n // Operators invalid for date fields (allow + for date arithmetic with numbers)\n var dateInvalidOps = ['-', '*', '/', '%', '^', '+'];\n while ((match = fieldRefPattern.exec(expression)) !== null) {\n var fieldRef = match[0];\n var fieldName = fieldRef.slice(1, -1); // Remove { }\n var field = fieldMap.get(fieldName);\n if (!field)\n continue;\n var fieldIndex = match.index;\n var fieldEndIndex = fieldIndex + fieldRef.length;\n // Get context around field reference (including spaces)\n var textBefore = expression.substring(Math.max(0, fieldIndex - 10), fieldIndex);\n var textAfter = expression.substring(fieldEndIndex, Math.min(expression.length, fieldEndIndex + 10));\n // Extract the operator if present (skip spaces)\n var operatorBefore = textBefore.replace(/\\s+$/, '').slice(-1);\n var operatorAfter = textAfter.replace(/^\\s+/, '').charAt(0);\n // Calculate actual position of operators in the original expression\n var textBeforeTrimmed = textBefore.replace(/\\s+$/, '');\n var textAfterTrimmed = textAfter.replace(/^\\s+/, '');\n var operatorBeforePos = fieldIndex - (textBefore.length - textBeforeTrimmed.length) - 1;\n var operatorAfterPos = fieldEndIndex + (textAfter.length - textAfterTrimmed.length);\n // For STRING fields (without format)\n if (field.type === 'string' && !field.format) {\n if (operatorBefore && stringInvalidOps.indexOf(operatorBefore) !== -1) {\n var key = operatorBeforePos + \":\" + operatorBefore;\n if (!reportedOperators.has(key)) {\n errors.push({\n type: 'InvalidOperation',\n message: \"Cannot perform '\" + operatorBefore + \"' operation on string field '{\" + fieldName + \"}'\"\n });\n reportedOperators.add(key);\n }\n }\n if (operatorAfter && stringInvalidOps.indexOf(operatorAfter) !== -1) {\n var key = operatorAfterPos + \":\" + operatorAfter;\n if (!reportedOperators.has(key)) {\n errors.push({\n type: 'InvalidOperation',\n message: \"Cannot perform '\" + operatorAfter + \"' operation on string field '{\" + fieldName + \"}'\"\n });\n reportedOperators.add(key);\n }\n }\n }\n // For DATE fields - allow + with numbers, reject other operators\n if (field.format === 'date' || field.format === 'date-time' || field.format === 'time') {\n if (operatorBefore && dateInvalidOps.indexOf(operatorBefore) !== -1) {\n var key = operatorBeforePos + \":\" + operatorBefore;\n if (!reportedOperators.has(key)) {\n errors.push({\n type: 'InvalidOperation',\n message: \"Cannot perform '\" + operatorBefore + \"' operation on date field '{\" + fieldName + \"}'\"\n });\n reportedOperators.add(key);\n }\n }\n if (operatorAfter && dateInvalidOps.indexOf(operatorAfter) !== -1) {\n var key = operatorAfterPos + \":\" + operatorAfter;\n if (!reportedOperators.has(key)) {\n errors.push({\n type: 'InvalidOperation',\n message: \"Cannot perform '\" + operatorAfter + \"' operation on date field '{\" + fieldName + \"}'\"\n });\n reportedOperators.add(key);\n }\n }\n // Allow + only when combined with numbers or number fields\n if (operatorAfter === '+') {\n var operandAfter = textAfter.replace(/^\\s+/, '').substring(1).trim();\n var isNumberField = /^\\{[^}]+\\}/.test(operandAfter) && fieldMap.get(operandAfter.slice(1, -1)) && fieldMap.get(operandAfter.slice(1, -1)).type === 'number';\n var isNumberLiteral = /^\\d+/.test(operandAfter);\n if (!isNumberField && !isNumberLiteral) {\n var key = operatorAfterPos + \":\" + operatorAfter;\n if (!reportedOperators.has(key)) {\n errors.push({\n type: 'InvalidOperation',\n message: \"Date field '{\" + fieldName + \"}' can only be used with +number or +{numberField}, not '\" + operatorAfter + operandAfter.substring(0, 10) + \"'\"\n });\n reportedOperators.add(key);\n }\n }\n }\n if (operatorBefore === '+') {\n var trimmedBefore = textBefore.replace(/\\s+$/, '');\n var operandBefore = trimmedBefore.substring(0, trimmedBefore.length - 1).trim();\n var isNumberField = /\\{[^}]+\\}$/.test(operandBefore) && fieldMap.get(operandBefore.slice(operandBefore.lastIndexOf('{') + 1, -1)) && fieldMap.get(operandBefore.slice(operandBefore.lastIndexOf('{') + 1, -1)).type === 'number';\n var isNumberLiteral = /\\d+$/.test(operandBefore);\n if (!isNumberField && !isNumberLiteral) {\n var key = operatorBeforePos + \":\" + operatorBefore;\n if (!reportedOperators.has(key)) {\n errors.push({\n type: 'InvalidOperation',\n message: \"Date field '{\" + fieldName + \"}' can only be used with +number or +{numberField}\"\n });\n reportedOperators.add(key);\n }\n }\n }\n }\n }\n return errors;\n };\n ExpressionValidator.prototype.validateSyntax = function (expression) {\n var errors = [];\n // Check balanced braces\n var openBraces = (expression.match(/\\{/g) || []).length;\n var closeBraces = (expression.match(/\\}/g) || []).length;\n if (openBraces !== closeBraces) {\n errors.push({\n type: 'SyntaxError',\n message: 'Unbalanced braces in expression'\n });\n }\n // Check balanced parentheses\n var openParens = (expression.match(/\\(/g) || []).length;\n var closeParens = (expression.match(/\\)/g) || []).length;\n if (openParens !== closeParens) {\n errors.push({\n type: 'SyntaxError',\n message: 'Unbalanced parentheses in expression'\n });\n }\n // Check balanced $ brackets\n var openDollar = (expression.match(/\\$\\{/g) || []).length;\n var closeDollar = (expression.match(/\\}/g) || []).length;\n if (openDollar > closeDollar) {\n errors.push({\n type: 'SyntaxError',\n message: 'Unbalanced ${ } in expression'\n });\n }\n return errors;\n };\n /**\n * @private\n */\n ExpressionValidator.prototype.validateFieldReferences = function (expression, availableFields) {\n var errors = [];\n // Skip field validation if availableFields is not properly populated\n // This allows expressions to work at runtime even if we can't validate field names at editor time\n if (!availableFields || availableFields.length === 0) {\n return errors;\n }\n var fieldRefPattern = /\\{([^{}]+)\\}/g;\n var match;\n // Handle both string[] and AvailableField[] formats\n var availableFieldsSet;\n if (typeof availableFields[0] === 'string') {\n availableFieldsSet = new Set(availableFields);\n }\n else {\n availableFieldsSet = new Set(availableFields.map(function (f) { return f.name; }));\n }\n while ((match = fieldRefPattern.exec(expression)) !== null) {\n var ref = match[1].trim();\n // Skip if it's a function call\n if (this.isFunctionCall(ref))\n continue;\n // Skip if it's a math expression (contains operators or numbers)\n // This distinguishes between {fieldName} and ${5 + 3}\n if (this.isMathExpression(ref))\n continue;\n // Extract field name from nested paths (e.g., \"customer.name\" -> \"customer\")\n var fieldName = ref.split(/[.\\[\\]]/)[0].trim();\n // Check if field exists\n if (fieldName && this.keywords.indexOf(fieldName.toUpperCase()) === -1) {\n if (!availableFieldsSet.has(fieldName)) {\n errors.push({\n type: 'UndefinedField',\n message: \"Field '\" + fieldName + \"' is not defined in the form\",\n field: fieldName\n });\n }\n }\n }\n return errors;\n };\n ExpressionValidator.prototype.validateFunctionCalls = function (expression) {\n var errors = [];\n var funcPattern = /(\\w+)\\s*\\(/g;\n var match;\n while ((match = funcPattern.exec(expression)) !== null) {\n var funcName = match[1];\n // Only validate uppercase functions (user-defined lowercase functions might be allowed)\n if (funcName === funcName.toUpperCase() && this.supportedFunctions.indexOf(funcName) === -1) {\n errors.push({\n type: 'InvalidFunction',\n message: \"Unknown function: '\" + funcName + \"'. Supported functions: \" + this.supportedFunctions.join(', ')\n });\n }\n }\n return errors;\n };\n ExpressionValidator.prototype.isFunctionCall = function (ref) {\n return /^\\w+\\s*\\(/.test(ref);\n };\n ExpressionValidator.prototype.isMathExpression = function (ref) {\n // Check if the expression contains math operators, numbers, or other non-field-name patterns\n // Math expressions like: \"5 + 3\", \"qty * 2\", \"age > 18\", \"sum([1,2,3])\"\n // should be skipped, while field references like \"fieldName\" or \"customer.name\" should be validated\n var mathOperatorPattern = /[\\+\\-\\*\\/\\%\\=\\<\\>\\!\\&\\|\\^\\~\\s\\d]/;\n return mathOperatorPattern.test(ref);\n };\n return ExpressionValidator;\n}());\nexport { ExpressionValidator };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Internationalization } from '@syncfusion/ej2-base';\nimport { DataManager, Query, UrlAdaptor, WebApiAdaptor, ODataV4Adaptor } from '@syncfusion/ej2-data';\nimport { ConditionalRuleEngine } from './conditional-rule-engine';\nimport { UI_TYPE_TO_SEMANTIC_TYPE } from './json-converter';\nimport { ExpressionEngine } from './expressions/expression-engine';\n/**\n * @private\n */\nexport var VALIDATION_REGEX = {\n EMAIL: /^(?!.*\\.\\.)[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$/,\n // eslint-disable-next-line security/detect-unsafe-regex\n URL: /^(https?:\\/\\/)?([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}(\\/[^\\s]*)?$/,\n DATE_ISO: /^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/,\n DIGITS: /^[0-9]*$/,\n PHONE: /^[+]?[0-9]{9,13}$/,\n CREDIT_CARD: /^\\d{13,16}$/\n};\n/**\n * Maps button style to Syncfusion CSS classes\n * @param style - Button style ('primary' | 'flat' | 'information' | 'error' | 'success' | 'warning')\n * @returns Space-separated CSS class string\n * @private\n */\nexport var mapButtonStyleToClass = function (style) {\n var styleMap = {\n 'primary': 'e-primary',\n 'flat': 'e-flat',\n 'information': 'e-info',\n 'error': 'e-danger',\n 'success': 'e-success',\n 'warning': 'e-warning'\n };\n return styleMap[style || 'primary'] || 'e-primary';\n};\n/**\n * Resolves button type to valid HTML button type\n * @param type - Button type ('submit' | 'reset' | 'button')\n * @returns Resolved button type\n * @private\n */\nexport var resolveButtonType = function (type) {\n return (type === 'submit' || type === 'reset') ? type : 'button';\n};\n/**\n * Maps button position to CSS justifyContent value\n * @param position - Button position ('Left' | 'Right' | 'Center')\n * @returns CSS justifyContent value\n * @private\n */\nexport var mapPositionToJustifyContent = function (position) {\n var positionMap = {\n 'Left': 'flex-start',\n 'Right': 'flex-end',\n 'Center': 'center'\n };\n return positionMap[position || 'Left'] || 'flex-start';\n};\n/**\n * @private\n */\nexport function splitWidths(input) {\n var result = input.map(function (v) { return (v === null ? NaN : Number(v)); });\n var sumKnown = result.reduce(function (s, v) { return s + (isNaN(v) ? 0 : v); }, 0);\n // If knowns already >= 100, unknowns become 0\n var remainingInt = Math.max(0, Math.round(100 - sumKnown));\n var unknownIndexes = result.map(function (v, i) { return (isNaN(v) ? i : -1); }).filter(function (i) { return i >= 0; });\n var k = unknownIndexes.length;\n if (k === 0) {\n // nothing to split; just clamp/round knowns so they sum to 100 if you prefer, but return as-is\n return result.map(function (v) { return Math.round(v); });\n }\n // Distribute integer percentage points to avoid fractional rounding problems\n var base = Math.floor(remainingInt / k);\n var remainder = remainingInt - base * k;\n // Fill unknowns with base + 1 for first `remainder` items\n unknownIndexes.forEach(function (idx) {\n var add = remainder > 0 ? base + 1 : base;\n result[idx] = add;\n remainder = Math.max(0, remainder - 1);\n });\n // Convert any NaN (shouldn't remain) to 0 and round knowns\n return result.map(function (v) { return (isNaN(v) ? 0 : Math.round(v)); });\n}\n/**\n * @private\n */\nexport function extractAllDescendantIds(component) {\n var childIds = [];\n function traverse(comps) {\n for (var _i = 0, comps_1 = comps; _i < comps_1.length; _i++) {\n var comp = comps_1[_i];\n childIds.push(comp.id);\n // Recursively traverse nested structures\n if (comp.children && Array.isArray(comp.children)) {\n traverse(comp.children);\n }\n // Handle table cells\n if (comp.tableCells && Array.isArray(comp.tableCells)) {\n comp.tableCells.forEach(function (row) {\n if (Array.isArray(row)) {\n row.forEach(function (cell) {\n if (Array.isArray(cell)) {\n traverse(cell);\n }\n });\n }\n });\n }\n // Handle tab items\n if (comp.tabItems && Array.isArray(comp.tabItems)) {\n comp.tabItems.forEach(function (tabItem) {\n if (tabItem.content && Array.isArray(tabItem.content)) {\n traverse(tabItem.content);\n }\n });\n }\n }\n }\n // Start with direct children\n if (component.children && Array.isArray(component.children)) {\n traverse(component.children);\n }\n // Handle table cells\n if (component.tableCells && Array.isArray(component.tableCells)) {\n component.tableCells.forEach(function (row) {\n if (Array.isArray(row)) {\n row.forEach(function (cell) {\n if (Array.isArray(cell)) {\n traverse(cell);\n }\n });\n }\n });\n }\n // Handle tab items\n if (component.tabItems && Array.isArray(component.tabItems)) {\n component.tabItems.forEach(function (tabItem) {\n if (tabItem.content && Array.isArray(tabItem.content)) {\n traverse(tabItem.content);\n }\n });\n }\n return childIds;\n}\n/**\n * @private\n */\nexport function formatDateValues(component, value) {\n var intl = new Internationalization();\n var dFormatter = intl.getDateFormat({\n format: 'MM/dd/yyyy',\n type: 'date'\n });\n if (component.type === 'date') {\n value = dFormatter(new Date(value));\n }\n if (component.type === 'time') {\n dFormatter = intl.getDateFormat({\n format: 'hh:mm a',\n type: 'time'\n });\n value = dFormatter(new Date(value));\n }\n if (component.type === 'dateTime') {\n dFormatter = intl.getDateFormat({\n format: 'MM/dd/yyyy hh:mm a',\n type: 'dateTime'\n });\n value = dFormatter(new Date(value));\n }\n if (component.type === 'dateRange' && Array.isArray(value)) {\n value = value.map(function (date) {\n return date ? dFormatter(new Date(date)) : null;\n });\n }\n return value;\n}\n/**\n * @private\n */\nexport var getComponentFromSchema = function (id, formSchema) {\n if (!id || !formSchema)\n return null;\n var findInComponents = function (components) {\n for (var _i = 0, components_1 = components; _i < components_1.length; _i++) {\n var comp = components_1[_i];\n if (comp.id === id || comp.name === id)\n return comp;\n if (comp.children) {\n var found = findInComponents(comp.children);\n if (found)\n return found;\n }\n if (comp.tableCells) {\n for (var _a = 0, _b = comp.tableCells; _a < _b.length; _a++) {\n var row = _b[_a];\n for (var _c = 0, row_1 = row; _c < row_1.length; _c++) {\n var cell = row_1[_c];\n var found = findInComponents(cell);\n if (found)\n return found;\n }\n }\n }\n if (comp.tabItems) {\n for (var _d = 0, _e = comp.tabItems; _d < _e.length; _d++) {\n var tab = _e[_d];\n if (tab.content) {\n var found = findInComponents(tab.content);\n if (found)\n return found;\n }\n }\n }\n }\n return null;\n };\n return findInComponents(formSchema.components || []);\n};\n/**\n * Helper function to get the appropriate adaptor instance\n * @param adaptorType - Type of adaptor ('WebApiAdaptor' | 'UrlAdaptor' | 'ODataV4Adaptor')\n * @returns Adaptor instance\n * @private\n */\nexport var getAdaptorInstance = function (adaptorType) {\n switch (adaptorType) {\n case 'WebApiAdaptor':\n return new WebApiAdaptor();\n case 'ODataV4Adaptor':\n return new ODataV4Adaptor();\n case 'UrlAdaptor':\n default:\n return new UrlAdaptor();\n }\n};\n/**\n * Extracts data from a nested path using dot notation and array indices\n * @param data - The data object or array\n * @param path - Path to the data (e.g., 'results.items', '[0].data', 'response[0].values')\n * @returns Extracted data or empty array\n * @private\n */\nexport var extractDataFromPath = function (data, path) {\n if (!path || data === null || data === undefined)\n return data;\n // Split by dots but preserve array indices\n var parts = path.split(/\\.(?![^\\[]*\\])/); // Split by dots not inside brackets\n var current = data;\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n if (current === null || current === undefined) {\n return null;\n }\n // Handle array index notation like [0] or results[0]\n var arrayMatch = part.match(/^(\\w*)\\[(\\d+)\\]$/);\n if (arrayMatch) {\n var propName = arrayMatch[1];\n var index = parseInt(arrayMatch[2]);\n // If propName is empty, current should be an array\n if (!propName) {\n current = current[index];\n }\n else {\n current = current[propName] && current[propName][index];\n }\n }\n else {\n // Regular property access\n current = current[part];\n }\n }\n return current;\n};\n/**\n * Build name-indexed context from ID-indexed formValues\n * Simple traversal to map field names to their values\n * @private\n */\nvar buildNameContext = function (formValues, components) {\n var context = {};\n var traverse = function (comps) {\n comps.forEach(function (comp) {\n // Map name -> value from formValues (keyed by ID)\n if (comp.name && comp.id in formValues) {\n context[comp.name] = formValues[comp.id];\n }\n if (comp.children)\n traverse(comp.children);\n if (comp.tabItems)\n comp.tabItems.forEach(function (t) { return t.content && traverse(t.content); });\n if (comp.tableCells)\n comp.tableCells.forEach(function (row) { return row.forEach(function (cell) { return traverse(cell); }); });\n });\n };\n traverse(components);\n return context;\n};\n/**\n * @private\n */\nvar sharedFieldBindingEngine = new ExpressionEngine();\n/**\n * @private\n */\nexport var resolveFieldBinding = function (value, formValues, components) {\n if (typeof value !== 'string' || !/{[^}]+}/.test(value)) {\n return value; // No field references\n }\n // Build context: map field names to values from ID-keyed formValues\n var context = components\n ? buildNameContext(formValues, components)\n : formValues;\n try {\n var result = sharedFieldBindingEngine.evaluate(value, context);\n return result !== null && result !== undefined ? String(result) : '';\n }\n catch (err) {\n return value; // Return original on error\n }\n};\n/**\n * @private\n * (useFetchOptions is NOT located here — see ./option-fetcher.ts)\n * (useFetchLookupOptions is NOT located here — see ./option-fetcher.ts)\n */\nexport var resolveOptions = function (options, fetchedOptions, fetchedLookupDataSource) {\n // If lookup type with fetched data, return fetched lookup records\n if (options && typeof options === 'object' && !Array.isArray(options) && options.type === 'lookup' && fetchedLookupDataSource) {\n return fetchedLookupDataSource && fetchedLookupDataSource.length > 0 ? fetchedLookupDataSource : [];\n }\n // If URL type with fetched data, return fetched options\n if (options && typeof options === 'object' && !Array.isArray(options) && options.type === 'url') {\n return fetchedOptions.length > 0 ? fetchedOptions : [];\n }\n // If already an array, return as-is\n if (Array.isArray(options)) {\n return options;\n }\n // If it's raw data type\n if (options && typeof options === 'object' && !Array.isArray(options) && options.type === 'raw') {\n return Array.isArray(options.data) ? options.data : [];\n }\n return [];\n};\n/**\n * @private\n */\nexport var collectAvailableFieldNames = function (components) {\n var fieldNames = [];\n var traverse = function (comps) {\n comps.forEach(function (comp) {\n // Only add fields that have a name and aren't layout components\n if (comp.name && ['panel', 'table', 'tabs', 'card', 'message', 'button', 'splitButton', 'staticHtml'].indexOf(comp.type) === -1) {\n // Get semantic type mapping for this component\n var semanticType = UI_TYPE_TO_SEMANTIC_TYPE[comp.type];\n if (semanticType) {\n fieldNames.push(__assign({ name: comp.name, type: semanticType.type }, (semanticType.format && { format: semanticType.format })));\n }\n }\n // Traverse nested components\n if (comp.children)\n traverse(comp.children);\n if (comp.tabItems) {\n comp.tabItems.forEach(function (tab) {\n if (tab.content)\n traverse(tab.content);\n });\n }\n if (comp.tableCells) {\n comp.tableCells.forEach(function (row) {\n row.forEach(function (cell) { return traverse(cell); });\n });\n }\n });\n };\n traverse(components);\n return fieldNames;\n};\n/**\n * Resolve conditional data for a DataGrid component\n * Evaluates all conditionalData rules and applies the first matching one\n * Returns both dataSource and custom columns if defined\n *\n * @param conditions - Component conditions including conditional data rules\n * @param formValues - Current form field values\n * @returns Object with dataSource and columns, or undefined if no condition matches\n * @private\n */\nexport var resolveConditionalData = function (conditions, formValues) {\n if (!conditions || !conditions.conditionalData || !Array.isArray(conditions.conditionalData)) {\n return undefined;\n }\n // Evaluate each conditional data rule in order\n for (var _i = 0, _a = conditions.conditionalData; _i < _a.length; _i++) {\n var rule = _a[_i];\n if (ConditionalRuleEngine.evaluateCondition(rule.condition, formValues)) {\n // Condition is met - resolve and return both data source and columns\n return {\n dataSource: rule.dataSource,\n columns: rule.columns && rule.columns.length > 0 ? rule.columns : undefined\n };\n }\n }\n return undefined;\n};\n/**\n * Reads the current builder mode from the URL `mode` query parameter.\n * @returns 'Simple' | 'Developer' | undefined if not present or invalid\n * @private\n */\nexport var getCurrentMode = function () {\n if (typeof window === 'undefined')\n return undefined;\n var urlMode = new URLSearchParams(window.location.search).get('mode');\n if (urlMode === 'developer')\n return 'Developer';\n if (urlMode === 'simple')\n return 'Simple';\n return undefined;\n};\n/**\n * Navigates to a URL while preserving the current `mode` query parameter.\n * - If `mode` is already in target, it is kept as-is.\n * - If `mode` is present in the current URL, it is appended to the target.\n *\n * @param target - Target path (may include existing query params), e.g. '/?sample=builder&formId=123'\n * @private\n */\nexport var navigateTo = function (target) {\n if (typeof window === 'undefined') {\n return;\n }\n try {\n var url = new URL('/demo' + target, window.location.origin);\n window.location.href = url.toString();\n }\n catch (_a) {\n window.location.href = '/demo' + target;\n }\n};\n/**\n * @private\n */\nexport function sanitizeId(rawId, fallback) {\n var MAX_ID_LEN = 100;\n var safeFallback = typeof fallback === 'string' && fallback ? fallback : \"field_\" + Date.now() + \"_\" + Math.floor(Math.random() * 1000);\n if (rawId === null || rawId === undefined)\n return safeFallback;\n var id = String(rawId).trim();\n // Reject obvious prototype/constructor keys outright\n if (!id || id === '__proto__' || id === 'prototype' || id === 'constructor') {\n return safeFallback;\n }\n // Replace any character that is not alnum, dash, or underscore with underscore.\n id = id.replace(/[^A-Za-z0-9_-]/g, '_');\n // Ensure it starts with a letter or underscore (prepend if necessary).\n if (!/^[A-Za-z_]/.test(id)) {\n id = \"f_\" + id;\n }\n // Truncate to a reasonable max length\n if (id.length > MAX_ID_LEN) {\n id = id.slice(0, MAX_ID_LEN);\n }\n // Final guard: avoid reserved names\n if (id === '__proto__' || id === 'prototype' || id === 'constructor') {\n return safeFallback;\n }\n return id;\n}\n// Exported EJ2 data symbols re-exported for downstream consumers (form-renderer option fetcher).\n// `DataManager` / `Query` are used by OptionFetcher (see ./option-fetcher.ts).\nexport { DataManager, Query };\n","import { DataManager, Query } from '@syncfusion/ej2-data';\nimport { resolveFieldBinding, getAdaptorInstance, extractDataFromPath } from './utils';\n/**\n * @private\n */\nvar OptionFetcher = /** @class */ (function () {\n function OptionFetcher() {\n }\n /**\n * Fetch option data via `DataManager` + `Query`, supporting\n * search/sort/filter/paging/queryParams, with `resolveFieldBinding`\n * used to resolve `{field}` references in search keys and filter\n * values, and `extractDataFromPath` used to project the result.\n *\n * Mirrors `useFetchOptions` (utils.tsx lines 359–471).\n *\n * @param componentOptions - Options config (array fallback handled by\n * caller; this method only handles `type==='url'` objects).\n * @param componentId - Id of the requesting component (for stale\n * avoidance by the caller). Not used internally beyond tagging.\n * @param formValues - Current form values (id-keyed) used to resolve\n * `{field}` references when `components` is provided.\n * @param components - Schema components used to map name-keyed context\n * from id-keyed `formValues`.\n * @returns Promise resolving to the option array (or empty array on\n * error / non-url config). Never rejects — errors are caught and return `[]`.\n */\n OptionFetcher.fetch = function (componentOptions, componentId, formValues, components) {\n var isUrlType = componentOptions &&\n typeof componentOptions === 'object' &&\n !Array.isArray(componentOptions) &&\n componentOptions.type === 'url' &&\n componentOptions.url;\n if (!isUrlType) {\n return Promise.resolve({ id: componentId, options: [] });\n }\n var urlConfig = componentOptions;\n return new Promise(function (resolve) {\n try {\n var headers_1 = {};\n if (urlConfig.headers && Array.isArray(urlConfig.headers)) {\n urlConfig.headers.forEach(function (h) {\n if (h.key && h.key.trim()) {\n headers_1[h.key] = h.value;\n }\n });\n }\n // Create DataManager with selected adaptor\n var dataManager = new DataManager({\n url: urlConfig.url,\n adaptor: getAdaptorInstance(urlConfig.adaptorType),\n headers: Object.keys(headers_1).length ? headers_1 : undefined\n });\n // Build Query (dynamic support)\n var query_1 = new Query();\n if (urlConfig.search && urlConfig.search.enabled && urlConfig.search.fields && urlConfig.search.fields.length > 0) {\n var searchKey = urlConfig.search.key || 'search';\n // Resolve field bindings in search value\n var resolvedSearchValue = formValues\n ? resolveFieldBinding(searchKey, formValues, components)\n : /[{}]/.test(searchKey) ? '' : searchKey;\n query_1 = query_1.search(resolvedSearchValue, urlConfig.search.fields);\n }\n // Apply sort query\n if (urlConfig.sort && urlConfig.sort.enabled && urlConfig.sort.field) {\n var sortDirection = urlConfig.sort.direction === 'descending' ? 'descending' : 'ascending';\n query_1 = query_1.sortBy(urlConfig.sort.field, sortDirection);\n }\n // Apply filter queries with field binding resolution\n if (urlConfig.filters && Array.isArray(urlConfig.filters) && urlConfig.filters.length > 0) {\n urlConfig.filters.forEach(function (f) {\n if (f.field && f.operator && f.value !== undefined && f.value !== '') {\n var resolvedFilterValue = formValues\n ? resolveFieldBinding(f.value, formValues, components)\n : /[{}]/.test(f.value) ? '' : f.value;\n if (resolvedFilterValue !== '') {\n query_1 = query_1.where(f.field, f.operator, resolvedFilterValue);\n }\n }\n });\n }\n // Add params (query string)\n if (urlConfig.queryParams) {\n Object.keys(urlConfig.queryParams).forEach(function (key) {\n query_1 = query_1.addParams(key, urlConfig.queryParams[key]);\n });\n }\n // Paging\n if (urlConfig.skip) {\n query_1 = query_1.skip(urlConfig.skip);\n }\n if (urlConfig.take) {\n query_1 = query_1.take(urlConfig.take);\n }\n var timeoutMs = 15000;\n var timedOut_1 = false;\n var timeoutHandle_1 = setTimeout(function () {\n timedOut_1 = true;\n resolve({ id: componentId, options: [] });\n }, timeoutMs);\n dataManager.executeQuery(query_1).then(function (res) {\n if (timedOut_1) {\n return;\n }\n clearTimeout(timeoutHandle_1);\n var data = res.result;\n if (urlConfig.dataPath) {\n data = extractDataFromPath(data, urlConfig.dataPath);\n }\n var options;\n if (Array.isArray(data)) {\n options = data;\n }\n else if (typeof data === 'string') {\n options = [data];\n }\n else {\n options = [];\n }\n resolve({ id: componentId, options: options });\n }).catch(function (err) {\n if (timedOut_1) {\n return;\n }\n clearTimeout(timeoutHandle_1);\n // console.error('Fetch error:', err);\n resolve({ id: componentId, options: [] });\n });\n }\n catch (err) {\n // console.error('Setup error:', err);\n resolve({ id: componentId, options: [] });\n }\n });\n };\n return OptionFetcher;\n}());\nexport { OptionFetcher };\nexport default OptionFetcher;\n","import { CheckBox } from '@syncfusion/ej2-buttons';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n */\nvar resolveAttributes = function (attributes) {\n if (!attributes) {\n return {};\n }\n if (Array.isArray(attributes)) {\n return attributes.reduce(function (acc, item) {\n if (item && item.key && item.value !== undefined) {\n acc[item.key] = item.value;\n }\n return acc;\n }, {});\n }\n return attributes;\n};\n/**\n * @private\n */\nvar CheckboxGroup = /** @class */ (function () {\n function CheckboxGroup(options) {\n this.checkboxes = [];\n this.component = options.component;\n this.formState = options.formState;\n this.onChangeCb = options.onChange;\n this.optionRef = options.optionRef;\n this.enableRtl = options.enableRtl;\n this.target = options.target;\n this.container = null;\n this.itemsContainer = null;\n this.ref = options.ref;\n }\n CheckboxGroup.prototype.getSelectedItems = function () {\n var resolvedValue = (this.formState\n ? this.formState.values[this.component.id]\n : (isNullOrUndefined(this.valueProp()) ? this.component.defaultValue : this.valueProp()));\n return Array.isArray(resolvedValue) ? resolvedValue : [];\n };\n CheckboxGroup.prototype.valueProp = function () {\n // Used only when `formState` is absent — read the `value` option.\n return this._value;\n };\n /** Used in non-formState mode to seed the initial value. */\n CheckboxGroup.prototype.setValue = function (value) {\n this._value = value;\n };\n CheckboxGroup.prototype.handleCheckboxChange = function (option, checked) {\n var selectedItems = this.getSelectedItems();\n var newValue = checked\n ? selectedItems.concat([option]) : selectedItems.filter(function (i) { return i !== option; });\n if (this.formState) {\n this.onChangeCb(newValue);\n }\n };\n Object.defineProperty(CheckboxGroup.prototype, \"sizeCssClass\", {\n /**\n * Compose the size CSS class for the CheckBox.\n */\n get: function () {\n var base = this.component.cssClass || '';\n var sizeMod = this.component.size === 'Small'\n ? ' e-small'\n : this.component.size === 'Bigger'\n ? ' e-bigger'\n : '';\n return \"\" + base + sizeMod;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Build and append the group DOM tree. Returns the container element.\n */\n CheckboxGroup.prototype.render = function (target) {\n var _this = this;\n var component = this.component;\n var groupLabel = component.label && component.required\n ? component.label + \" *\"\n : (component.label || '');\n var host = target || this.target;\n // Outer container\n var container = document.createElement('div');\n container.className = (\"checkbox-group \" + (component.cssClass || '')).trim();\n container.setAttribute('role', 'group');\n container.setAttribute('aria-label', groupLabel);\n container.title = component.tooltip || '';\n var htmlAttrs = resolveAttributes(component.htmlAttributes);\n Object.keys(htmlAttrs).forEach(function (key) {\n // Apply additional htmlAttributes to the container (matches spread).\n if (key !== 'class' && key !== 'className' && key !== 'style') {\n container.setAttribute(key, String(htmlAttrs[key]));\n }\n });\n var containerStyle = \"display:flex;flex-direction:\" + (component.layoutDirection === 'row' ? 'row' : 'column') + \";\" +\n (\"gap:\" + (component.gap || '8px') + \";align-items:flex-start;\");\n container.setAttribute('style', containerStyle);\n // Items container\n var itemsContainer = document.createElement('div');\n itemsContainer.className = 'checkbox-group-items';\n var itemsStyle = \"display:flex;flex-direction:\" + (component.layoutDirection === 'row' ? 'row' : 'column') + \";\" +\n (\"flex-wrap:wrap;gap:\" + (component.gap || '2px') + \";width:100%;\");\n itemsContainer.setAttribute('style', itemsStyle);\n var options = Array.isArray(component.options) ? component.options : ['Option 1'];\n var selectedItems = this.getSelectedItems();\n options.forEach(function (option, idx) {\n var optionValue = typeof option === 'string'\n ? option\n : (option.value != null ? option.value : (option.label != null ? option.label : option.key));\n var optionLabel = typeof option === 'string'\n ? option\n : (option.label != null ? option.label : (option.value != null ? option.value : String(optionValue)));\n var wrapper = document.createElement('div');\n itemsContainer.appendChild(wrapper);\n var checkBox = new CheckBox({\n label: optionLabel,\n enableRtl: _this.enableRtl,\n checked: selectedItems.indexOf(optionValue) !== -1,\n disabled: !!component.disabled,\n labelPosition: component.checkboxLabelPosition || 'After',\n cssClass: _this.sizeCssClass.trim(),\n htmlAttributes: htmlAttrs,\n change: function (e) {\n _this.handleCheckboxChange(optionValue, e.checked);\n }\n });\n checkBox.appendTo(wrapper);\n _this.ref(checkBox, idx);\n // Set the id mirroring `${component.id}_${idx}` after appendTo so\n // EJ2 preserves the wrapper id semantics.\n var inputEl = wrapper.querySelector('input[type=\"checkbox\"]');\n if (inputEl) {\n inputEl.id = _this.component.id + \"_\" + idx;\n }\n // Ref callback — provide the EJ2 instance + index.\n if (_this.optionRef) {\n _this.optionRef(checkBox, idx);\n }\n _this.checkboxes.push(checkBox);\n });\n container.appendChild(itemsContainer);\n if (host) {\n host.appendChild(container);\n }\n this.container = container;\n this.itemsContainer = itemsContainer;\n return container;\n };\n /**\n * Re-render the selection state from the current model value. Used by\n * the host after a programmatic value change.\n */\n CheckboxGroup.prototype.refreshSelection = function () {\n var _this = this;\n var selectedItems = this.getSelectedItems();\n var options = Array.isArray(this.component.options) ? this.component.options : ['Option 1'];\n options.forEach(function (option, idx) {\n var optionValue = typeof option === 'string'\n ? option\n : (option.value != null ? option.value : (option.label != null ? option.label : option.key));\n var checkBox = _this.checkboxes[idx];\n if (checkBox) {\n checkBox.checked = selectedItems.indexOf(optionValue) !== -1;\n }\n });\n };\n /**\n * Destroy all child EJ2 instances and detach the container.\n */\n CheckboxGroup.prototype.destroy = function () {\n for (var _i = 0, _a = this.checkboxes; _i < _a.length; _i++) {\n var cb = _a[_i];\n try {\n cb.destroy();\n }\n catch (e) { /* ignore */ }\n }\n this.checkboxes = [];\n if (this.container && this.container.parentNode) {\n this.container.parentNode.removeChild(this.container);\n }\n this.container = null;\n this.itemsContainer = null;\n };\n CheckboxGroup.prototype.setOptions = function (options) {\n var _this = this;\n this.component.options = options;\n if (!this.itemsContainer) {\n return;\n }\n for (var _i = 0, _a = this.checkboxes; _i < _a.length; _i++) {\n var cb = _a[_i];\n try {\n cb.destroy();\n }\n catch (_b) {\n }\n }\n this.checkboxes = [];\n while (this.itemsContainer.firstChild) {\n this.itemsContainer.removeChild(this.itemsContainer.firstChild);\n }\n var selectedItems = this.getSelectedItems();\n options.forEach(function (option, idx) {\n var optionValue = typeof option === 'string'\n ? option\n : (option.value || option.label || option.key);\n var optionLabel = typeof option === 'string'\n ? option\n : (option.label || option.value || String(optionValue));\n var wrapper = document.createElement('div');\n _this.itemsContainer.appendChild(wrapper);\n var checkBox = new CheckBox({\n label: optionLabel,\n enableRtl: _this.enableRtl,\n checked: selectedItems.indexOf(optionValue) !== -1,\n disabled: !!_this.component.disabled,\n labelPosition: _this.component.checkboxLabelPosition || 'After',\n cssClass: _this.sizeCssClass.trim(),\n change: function (e) {\n _this.handleCheckboxChange(optionValue, e.checked);\n }\n });\n checkBox.appendTo(wrapper);\n _this.ref(checkBox, idx);\n var inputEl = wrapper.querySelector('input[type=\"checkbox\"]');\n if (inputEl) {\n inputEl.id = _this.component.id + \"_\" + idx;\n }\n if (_this.optionRef) {\n _this.optionRef(checkBox, idx);\n }\n _this.checkboxes.push(checkBox);\n });\n };\n return CheckboxGroup;\n}());\nexport { CheckboxGroup };\nexport default CheckboxGroup;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ExpressionEngine } from './expression-engine';\n/**\n * @private\n */\nvar GridExpressions = /** @class */ (function () {\n function GridExpressions() {\n this.engine = new ExpressionEngine();\n }\n /**\n * Convert a column value to the proper JS type for expression evaluation.\n * Form inputs return strings; numeric/boolean values must be coerced.\n */\n GridExpressions.prototype.parseColumnValue = function (value, columnType) {\n // Handle null/undefined/empty\n if (value === null || value === undefined || value === '') {\n return value;\n }\n // Parse number types\n if (columnType === 'number') {\n var parsed = parseFloat(String(value));\n return isNaN(parsed) ? 0 : parsed;\n }\n // Parse boolean types\n if (columnType === 'boolean') {\n if (typeof value === 'boolean') {\n return value;\n }\n return value === 'true' || value === '1' || value === 1 || value === true;\n }\n // Return as-is for string and other types\n return value;\n };\n /**\n * Evaluate all expression-bearing columns for a single row.\n * Returns a new row object with calculated values merged in.\n */\n GridExpressions.prototype.evaluateRowExpressions = function (row, columns) {\n var _this = this;\n var calculatedRow = __assign({}, row);\n // Find all columns with expressions\n var calculatedColumns = columns.filter(function (col) { return col.expression && col.expression.toString().trim(); });\n var _loop_1 = function (column) {\n if (!column.expression) {\n return \"continue\";\n }\n try {\n // Prepare row values with proper type conversion\n var typedRow_1 = {};\n columns.forEach(function (col) {\n var value = calculatedRow[col.field];\n typedRow_1[col.field] = _this.parseColumnValue(value, col.type);\n });\n // Evaluate expression with current row as context\n var result = this_1.engine.evaluate(column.expression, typedRow_1, {\n throwOnError: false\n });\n // Update row with calculated value\n calculatedRow[column.field] = result;\n }\n catch (error) {\n calculatedRow[column.field] = null;\n }\n };\n var this_1 = this;\n for (var _i = 0, calculatedColumns_1 = calculatedColumns; _i < calculatedColumns_1.length; _i++) {\n var column = calculatedColumns_1[_i];\n _loop_1(column);\n }\n return calculatedRow;\n };\n /**\n * Extract the subset of columns that carry a non-empty `expression`.\n */\n GridExpressions.prototype.extractCalculatedColumns = function (columns) {\n return columns.filter(function (col) { return col.expression && col.expression.toString().trim(); });\n };\n GridExpressions.prototype.getEngine = function () { return this.engine; };\n return GridExpressions;\n}());\nexport { GridExpressions };\nexport default GridExpressions;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ExpressionEngine } from './expressions/expression-engine';\n/**\n * Custom Validation Engine\n *\n * Evaluates FormIO-style custom validation expressions:\n * valid = (condition) ? true : 'error message';\n *\n * Reuses ExpressionEngine for dependency extraction and expression parsing\n * @private\n */\nvar CustomValidationEngine = /** @class */ (function () {\n function CustomValidationEngine() {\n this.expressionEngine = new ExpressionEngine();\n }\n /**\n * Validate field using custom validation expression\n *\n * @param expression - FormIO-style validation expression (generated by UI)\n * @param fieldValue - Current field value (as 'input')\n * @param formValues - All form values for cross-field references\n * @returns true if valid, error message string if invalid\n */\n CustomValidationEngine.prototype.validate = function (expression, fieldValue, formValues) {\n if (!expression || expression.trim() === '') {\n return true; // No validation rule = valid\n }\n try {\n // Inject 'input' as current field value\n var context = __assign({}, formValues, { input: fieldValue, valid: true // Initialize valid variable\n });\n // Parse expression - FormIO pattern uses assignment: valid = ...\n // Pattern: valid = (condition) ? true : 'error message'\n var validPattern = /valid\\s*=\\s*(.+?)\\s*\\?\\s*true\\s*:\\s*['\"](.+?)['\"]\\s*$/;\n var match = expression.match(validPattern);\n if (!match) {\n return 'Invalid validation expression format';\n }\n var condition = match[1].trim();\n var errorMessage = match[2];\n // Evaluate the condition (should return boolean)\n var conditionResult = this.expressionEngine.evaluate(condition, context, { throwOnError: false }, true);\n // If condition is true, validation passes\n if (conditionResult === true) {\n return true;\n }\n else {\n // Condition is false, return the error message\n return errorMessage;\n }\n }\n catch (error) {\n return 'Validation expression error';\n }\n };\n /**\n * Extract field dependencies from validation expression\n *\n * @param expression - Custom validation expression (or just condition)\n * @returns Array of field names referenced in expression\n */\n CustomValidationEngine.prototype.extractDependencies = function (expression) {\n if (!expression)\n return [];\n // Extract validation logic (right side of = sign if present)\n var validPattern = /valid\\s*=\\s*(.+)/;\n var match = expression.match(validPattern);\n var validationLogic = match ? match[1] : expression;\n // Use ExpressionEngine to extract field references\n var deps = this.expressionEngine.extractDependencies(validationLogic);\n // Filter out 'input' as it's the current field, not a dependency\n return deps.filter(function (dep) { return dep !== 'input'; });\n };\n /**\n * Validate condition syntax (simplified - no need for \"valid =\" check)\n *\n * @param condition - Validation condition (without \"valid =\" prefix)\n * @param availableFields - Available field names for reference validation\n * @returns Array of validation error messages\n */\n CustomValidationEngine.prototype.validateConditionSyntax = function (condition, availableFields) {\n if (!condition || condition.trim() === '') {\n return ['Condition cannot be empty'];\n }\n var errors = [];\n // Check for balanced parentheses\n var openParens = (condition.match(/\\(/g) || []).length;\n var closeParens = (condition.match(/\\)/g) || []).length;\n if (openParens !== closeParens) {\n errors.push(\"Unbalanced parentheses (\" + openParens + \" open, \" + closeParens + \" close)\");\n }\n // Check for balanced braces\n var openBraces = (condition.match(/\\{/g) || []).length;\n var closeBraces = (condition.match(/\\}/g) || []).length;\n if (openBraces !== closeBraces) {\n errors.push(\"Unbalanced braces (\" + openBraces + \" open, \" + closeBraces + \" close)\");\n }\n // Validate field references\n var deps = this.extractDependencies(condition);\n var invalidFields = deps.filter(function (field) { return availableFields.indexOf(field) === -1; });\n if (invalidFields.length > 0) {\n errors.push(\"Unknown field references: \" + invalidFields.join(', '));\n }\n return errors;\n };\n /**\n * Build full FormIO expression from condition and error message\n *\n * @param condition - Validation condition (e.g., \"(input === {password})\")\n * @param errorMessage - Error message to show when validation fails\n * @returns Full FormIO expression\n */\n CustomValidationEngine.prototype.buildExpression = function (condition, errorMessage) {\n // Remove outer parentheses if present (we'll add them back in ternary)\n var trimmedCondition = condition.trim();\n // Escape single quotes in error message\n var escapedMessage = errorMessage.replace(/'/g, \"\\\\'\");\n // Build FormIO expression\n return \"valid = \" + trimmedCondition + \" ? true : '\" + escapedMessage + \"'\";\n };\n /**\n * Extract condition and error message from full FormIO expression\n * For editing existing rules\n *\n * @param expression - Full FormIO expression\n * @returns { condition, errorMessage } or null if invalid\n */\n CustomValidationEngine.prototype.parseExpression = function (expression) {\n // Pattern: valid = (condition) ? true : 'error message'\n var pattern = /valid\\s*=\\s*(.+?)\\s*\\?\\s*true\\s*:\\s*'(.+)'/;\n var match = expression.match(pattern);\n if (match) {\n return {\n condition: match[1].trim(),\n errorMessage: match[2].replace(/\\\\'/g, \"'\") // Unescape quotes\n };\n }\n return null;\n };\n return CustomValidationEngine;\n}());\nexport { CustomValidationEngine };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Grid, Edit, Toolbar, Page, Resize, Sort, Filter } from '@syncfusion/ej2-grids';\nimport { GridExpressions } from './expressions/grid-expressions';\nimport { CustomValidationEngine } from './custom-validation-engine';\n/**\n * @private\n *\n * `DataGridComponent` is the Category C native reimplementation of\n * `Common/DataGridComponent.tsx` using the EJ2 `Grid` (with `Edit`,\n * `Toolbar`, `Page`, `Resize`, `Sort`, `Filter` inject modules).\n *\n * Reproduces:\n * - internal current-data state seeded from `dataSource`;\n * - calculated/expression columns (disable `allowEditing`, recompute on\n * sibling field change via edit `change` params, update UI value by\n * column type);\n * - per-column custom validation merged into `validationRules`\n * (required + custom validator via `CustomValidationEngine`);\n * - dynamic toolbar (`Add`/`Edit`/`Delete` conditional + always\n * `Update`/`Cancel`);\n * - `actionComplete` → sync state + `onDataChange` callback;\n * - `getGridData()` equivalent;\n * - column mapping (`field, headerText, type, isPrimaryKey, width,\n * format (date default 'MM/dd/yyyy'), editType, allowEditing`);\n * - `filterSettings.mode='Immediate'`.\n */\nvar DataGridComponent = /** @class */ (function () {\n function DataGridComponent(options) {\n var _this = this;\n this.grid = null;\n this.wrapper = null;\n /**\n * Map React custom validation to a Syncfusion-style custom validator\n * closure. Mirrors `mapCustomValidationToSyncfusion`.\n */\n this.mapCustomValidationToSyncfusion = function (col) {\n if (!col.customValidation || col.customValidation.length === 0) {\n return undefined;\n }\n return function (value) {\n var formObj = _this.grid && _this.grid.editModule ? _this.grid.editModule.formObj : null;\n if (!formObj) {\n return true;\n }\n var rowContext = {};\n (_this.columns || []).forEach(function (gridCol) {\n var input = formObj.getInputElement(gridCol.field);\n if (input) {\n var v = input.value;\n rowContext[gridCol.field] = gridCol.type === 'number' ? parseInt(v, 10) : v;\n }\n });\n for (var _i = 0, _a = col.customValidation; _i < _a.length; _i++) {\n var rule = _a[_i];\n if (!rule.expression) {\n continue;\n }\n var fieldValue = col.type === 'number' ? parseInt(value.value, 10) : value.value;\n var result = _this.validationEngine.validate(rule.expression, fieldValue, rowContext);\n return result === true;\n }\n return true;\n };\n };\n /**\n * Create edit params attaching a `change` callback for non-calculated\n * columns that have calc dependents. Mirrors `createEditParams`.\n */\n this.createEditParams = function (col) {\n if (!_this.hasExpressions) {\n return undefined;\n }\n var calculatedCols = _this.calculatedColumns;\n var hasDependents = calculatedCols.some(function (calcCol) {\n if (!calcCol.expression) {\n return false;\n }\n return calcCol.expression.indexOf(\"{\" + col.field + \"}\") !== -1;\n });\n if (!hasDependents) {\n return undefined;\n }\n return {\n params: {\n change: function () {\n if (!_this.grid || !_this.grid.element) {\n return;\n }\n var form = _this.grid.element.querySelector('form');\n if (!form || !form.ej2_instances || !form.ej2_instances[0]) {\n return;\n }\n var formInstance = form.ej2_instances[0];\n calculatedCols.forEach(function (calcCol) {\n var input = formInstance.getInputElement(calcCol.field);\n if (!input) {\n return;\n }\n try {\n var rowValues_1 = {};\n _this.columns.forEach(function (c) {\n var fieldInput = formInstance.getInputElement(c.field);\n if (fieldInput) {\n rowValues_1[c.field] = fieldInput.value;\n }\n });\n var result = _this.gridExpressions.evaluateRowExpressions(rowValues_1, _this.columns);\n var calculatedValue = result[calcCol.field];\n if (calculatedValue !== undefined && calculatedValue !== null) {\n if (calcCol.type === 'boolean') {\n input.checked = !!calculatedValue;\n }\n else if (calcCol.type === 'number') {\n var wrapper = input.closest('.e-control-wrapper');\n var numericInput = wrapper ? wrapper.querySelector('input.e-control:not([type=\"hidden\"])') : null;\n if (numericInput && numericInput.ej2_instances && numericInput.ej2_instances[0]) {\n numericInput.ej2_instances[0].value = calculatedValue;\n }\n else {\n input.value = calculatedValue;\n }\n }\n else if (calcCol.type === 'date') {\n input.ej2_instances[0].value = new Date(calculatedValue);\n }\n else {\n input.value = calculatedValue;\n }\n }\n }\n catch (_a) {\n }\n });\n }\n }\n };\n };\n /**\n * Sync the working data on `actionComplete`. Mirrors `handleActionComplete`.\n */\n this.handleActionComplete = function (args) {\n if (!_this.grid) {\n return;\n }\n var eventType = args.requestType;\n switch (eventType) {\n case 'save':\n case 'delete':\n case 'add': {\n if (_this.grid.dataSource) {\n var updatedData = Array.isArray(_this.grid.dataSource)\n ? _this.grid.dataSource\n : [];\n _this.currentData = updatedData;\n if (_this.onDataChange) {\n _this.onDataChange(updatedData);\n }\n }\n break;\n }\n default:\n break;\n }\n };\n this.id = options.id;\n this.columns = options.columns || [];\n this.dataSource = Array.isArray(options.dataSource) ? options.dataSource : [];\n this.height = options.height != null ? options.height : '200px';\n this.width = options.width != null ? options.width : '100%';\n this.locale = options.locale;\n this.cssClass = options.cssClass;\n this.pageSize = options.pageSize != null ? options.pageSize : 6;\n this.allowPaging = options.allowPaging !== false;\n this.allowAdding = options.allowAdding !== false;\n this.allowEditing = options.allowEditing !== false;\n this.allowDeleting = options.allowDeleting !== false;\n this.allowFiltering = options.allowFiltering === true;\n this.onDataChange = options.onDataChange;\n this.isPreviewMode = options.isPreviewMode;\n this.enableRtl = options.enableRtl;\n this.ref = options.ref;\n this.currentData = Array.isArray(this.dataSource) ? this.dataSource : [];\n this.gridExpressions = new GridExpressions();\n this.validationEngine = new CustomValidationEngine();\n }\n Object.defineProperty(DataGridComponent.prototype, \"calculatedColumns\", {\n get: function () {\n return this.gridExpressions.extractCalculatedColumns(this.columns);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataGridComponent.prototype, \"hasExpressions\", {\n get: function () {\n return this.calculatedColumns.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Build the dynamic toolbar array. Mirrors `buildToolbar`.\n */\n DataGridComponent.prototype.buildToolbar = function () {\n var items = [];\n if (this.allowAdding) {\n items.push('Add');\n }\n if (this.allowEditing) {\n items.push('Edit');\n }\n if (this.allowDeleting) {\n items.push('Delete');\n }\n items.push('Update', 'Cancel');\n return items;\n };\n /**\n * Map a GridColumn to the EJ2 Grid column model, merging standard + custom\n * validation rules and disabling editing on expression / no-edit columns.\n */\n DataGridComponent.prototype.mapColumn = function (col) {\n var validationRules = col.validationRules ? __assign({}, col.validationRules) : {};\n var customValidator = this.mapCustomValidationToSyncfusion(col);\n if (customValidator) {\n var errorMessage = col.customValidation && col.customValidation[0] && col.customValidation[0].expression\n ? (this.validationEngine.parseExpression\n ? this.validationEngine.parseExpression(col.customValidation[0].expression).errorMessage\n : 'Validation failed') || 'Validation failed'\n : 'Validation failed';\n validationRules.required = [true, errorMessage];\n validationRules.custom = [customValidator, errorMessage];\n }\n return {\n field: col.field,\n headerText: col.headerText,\n type: col.type || 'string',\n isPrimaryKey: col.isPrimaryKey || false,\n width: col.width,\n format: col.type === 'date' ? (col.format || 'MM/dd/yyyy') : col.format,\n editType: col.editType,\n allowEditing: col.allowEditing !== false && !col.expression,\n validationRules: validationRules,\n edit: this.createEditParams(col)\n };\n };\n /**\n * Build the grid element, instantiate `Grid`, inject services and append\n * to the target/created container. Returns the wrapper element.\n */\n DataGridComponent.prototype.render = function (targetOrHost) {\n var _this = this;\n // Normalize initial currentData with expression evaluation\n var normalized = Array.isArray(this.dataSource) ? this.dataSource : [];\n if (this.hasExpressions && normalized.length > 0) {\n this.currentData = normalized.map(function (row) {\n var result = _this.gridExpressions.evaluateRowExpressions(row, _this.columns);\n return __assign({}, row, result);\n });\n }\n else {\n this.currentData = normalized;\n }\n var wrapper = document.createElement('div');\n wrapper.className = 'datagrid-wrapper';\n wrapper.style.width = typeof this.width === 'string' ? this.width : this.width + \"px\";\n wrapper.style.height = 'auto';\n var gridHost = document.createElement('div');\n gridHost.className = 'datagrid-grid';\n wrapper.appendChild(gridHost);\n if (this.id) {\n gridHost.id = this.id;\n }\n var grid = new Grid({\n dataSource: this.currentData,\n allowPaging: this.allowPaging,\n filterSettings: { mode: 'Immediate' },\n pageSettings: { pageSize: this.pageSize },\n editSettings: {\n allowEditing: this.allowEditing,\n allowAdding: this.allowAdding,\n allowDeleting: this.allowDeleting,\n mode: 'Normal'\n },\n enableRtl: this.enableRtl,\n locale: this.locale || 'en-US',\n cssClass: this.cssClass,\n toolbar: this.buildToolbar(),\n actionComplete: this.handleActionComplete,\n height: typeof this.height === 'string' ? this.height : this.height + \"px\",\n width: typeof this.width === 'string' ? this.width : this.width + \"px\",\n allowSorting: true,\n allowFiltering: this.allowFiltering,\n allowSelection: true,\n columns: (this.columns || []).map(function (c) { return _this.mapColumn(c); })\n });\n grid.appendTo(gridHost);\n this.ref(grid);\n // Inject the required modules into the Grid prototype (executed once\n // at module load — see the static `Grid.Inject(...)` call at the\n // bottom of this file).\n this.grid = grid;\n if (targetOrHost) {\n targetOrHost.appendChild(wrapper);\n }\n this.wrapper = wrapper;\n return wrapper;\n };\n /**\n * @private\n */\n DataGridComponent.prototype.getRef = function () {\n var _this = this;\n return {\n getGridData: function () { return _this.currentData; },\n gridRef: { current: this.grid }\n };\n };\n /**\n * Equivalent of `getGridData()`.\n */\n DataGridComponent.prototype.getGridData = function () {\n return this.currentData;\n };\n /**\n * Recompute expression-bearing rows from fresh `dataSource` (mirrors the\n * useEffect on `[dataSource, hasExpressions, columns, ...]`).\n */\n DataGridComponent.prototype.setDataSource = function (dataSource) {\n var _this = this;\n if (!this.grid) {\n return;\n }\n var normalized = Array.isArray(dataSource) ? dataSource : [];\n if (this.hasExpressions && normalized.length > 0) {\n this.currentData = normalized.map(function (row) {\n var r = _this.gridExpressions.evaluateRowExpressions(row, _this.columns);\n return __assign({}, row, r);\n });\n }\n else {\n this.currentData = normalized;\n }\n this.grid.dataSource = this.currentData;\n if (this.grid.refreshBatchData) {\n this.grid.setProperties({ dataSource: this.currentData }, true);\n }\n else {\n this.grid.dataSource = this.currentData;\n }\n if (this.grid.refresh) {\n this.grid.refresh();\n }\n };\n /**\n * Re-detect columns; refresh the grid (mirrors the useEffect on columns).\n */\n DataGridComponent.prototype.setColumns = function (columns) {\n if (!this.grid) {\n return;\n }\n if (!columns || columns.length === 0) {\n this.grid.columns = [];\n }\n else if (this.grid.columns.length === 0 && columns && columns.length === 1) {\n this.grid.columns = columns;\n }\n this.columns = columns;\n if (this.grid.refresh && !this.isPreviewMode) {\n if (this.dataSource && Array.isArray(this.dataSource) && this.dataSource.length > 0 && !this.hasExpressions) {\n this.grid.dataSource = this.dataSource;\n }\n this.grid.refresh();\n }\n };\n /**\n * @private\n */\n DataGridComponent.prototype.destroy = function () {\n if (this.grid) {\n try {\n this.grid.destroy();\n }\n catch (e) { /* ignore */ }\n this.grid = null;\n }\n if (this.wrapper && this.wrapper.parentNode) {\n this.wrapper.parentNode.removeChild(this.wrapper);\n }\n this.wrapper = null;\n this.gridExpressions = null;\n this.validationEngine = null;\n this.currentData = [];\n this.columns = [];\n this.dataSource = [];\n };\n return DataGridComponent;\n}());\nexport { DataGridComponent };\nexport default DataGridComponent;\nGrid.Inject(Edit, Toolbar, Page, Resize, Sort, Filter);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { TextBox, NumericTextBox, MaskedTextBox, Uploader, TextArea, Slider, ColorPicker, Rating, Signature } from '@syncfusion/ej2-inputs';\nimport { CheckBox, RadioButton, Switch, Button } from '@syncfusion/ej2-buttons';\nimport { SplitButton } from '@syncfusion/ej2-splitbuttons';\nimport { DropDownList, MultiSelect, CheckBoxSelection, VirtualScroll } from '@syncfusion/ej2-dropdowns';\nimport { DatePicker, DateTimePicker, TimePicker, DateRangePicker, Islamic } from '@syncfusion/ej2-calendars';\nimport { Message } from '@syncfusion/ej2-notifications';\nimport { ImageEditor } from '@syncfusion/ej2-image-editor';\nimport { RichTextEditor, Toolbar, HtmlEditor, Link, QuickToolbar, Image as RTEImage, Count, Table, EmojiPicker, SlashMenu, CodeBlock, ClipBoardCleanup, AutoFormat, ImportExport, PasteCleanup } from '@syncfusion/ej2-richtexteditor';\nimport { createElement } from '@syncfusion/ej2-base';\nimport { mapButtonStyleToClass, mapPositionToJustifyContent, resolveButtonType, resolveConditionalData, resolveOptions } from '../common/utils';\nimport { OptionFetcher } from '../common/option-fetcher';\nimport { CheckboxGroup } from '../common/checkbox-group';\nimport { DataGridComponent } from '../common/datagrid-component';\nimport { ConditionalRuleEngine } from '../common/conditional-rule-engine';\n/**\n * @private\n */\nvar normalizeAttributes = function (attributes) {\n if (!attributes) {\n return {};\n }\n if (Array.isArray(attributes)) {\n return attributes.reduce(function (acc, item) {\n if (item && item.key && item.value !== undefined) {\n acc[item.key] = item.value;\n }\n return acc;\n }, {});\n }\n return attributes;\n};\n/**\n * @private\n */\nvar applyHostId = function (el, id) {\n if (el && id) {\n el.setAttribute('id', id);\n }\n};\n/**\n * Renders a single form field component (vanilla EJ2 TS) and returns the\n * instantiated EJ2 component instance (or host element). The host owns DOM\n * attachment and ref tracking.\n *\n * @private\n */\nexport var renderFormField = function (options) {\n var component = options.component, value = options.value, onChange = options.onChange, onBlur = options.onBlur, onClick = options.onClick, _a = options.hasError, hasError = _a === void 0 ? false : _a, locale = options.locale, formState = options.formState, settings = options.settings, components = options.components, enableRtl = options.enableRtl, ref = options.ref, l10n = options.l10n;\n var initializedGrids = options.initializedGrids || new Set();\n var target = options.target;\n var commonProps = {\n floatLabelType: (component.floatLabelType || 'Never'),\n placeholder: component.placeholder || '',\n enabled: !component.disabled\n };\n var createValidationHandlers = function (getValue) {\n var validateOn = component.validateOn || 'Change';\n var handlers = {};\n if (!validateOn || validateOn === 'Change') {\n handlers.change = function (args) { return onChange(getValue(args)); };\n handlers.blur = function () { if (onBlur) {\n onBlur();\n } };\n }\n if (validateOn === 'Blur') {\n handlers.change = function (args) { return onChange(getValue(args)); };\n handlers.blur = function () { if (onBlur) {\n onBlur();\n } };\n }\n return handlers;\n };\n var htmlAttrs = normalizeAttributes(component.htmlAttributes);\n if (component.required) {\n htmlAttrs['aria-required'] = 'true';\n }\n var errorClass = hasError ? 'e-error' : '';\n var cssClass = ((component.cssClass || '') + \" \" + errorClass + \" \" + (component.size === 'Small' ? ' e-small' : component.size === 'Bigger' ? ' e-bigger' : '')).trim();\n switch (component.type) {\n case 'textbox': {\n var tb = new TextBox(__assign({ id: component.name, type: component.multiline ? 'hidden' : (component.textboxType ? component.textboxType : 'text'), name: component.id, enableRtl: enableRtl, locale: locale, floatLabelType: commonProps.floatLabelType, placeholder: commonProps.placeholder, enabled: commonProps.enabled, value: value !== undefined ? value : (component.defaultValue || ''), multiline: component.multiline, showClearButton: component.showClearButton, autocomplete: component.autocomplete === false || component.autocomplete === undefined ? 'off' : 'on', readonly: component.readOnly || false, cssClass: cssClass, htmlAttributes: htmlAttrs, appendTemplate: component.suffix, prependTemplate: component.prefix }, createValidationHandlers(function (args) { return args.value || ''; })));\n if (target) {\n tb.appendTo(target);\n }\n ref(tb);\n return tb;\n }\n case 'textarea': {\n var ta = new TextArea(__assign({ id: component.name, name: component.id, enableRtl: enableRtl, locale: locale, floatLabelType: commonProps.floatLabelType, placeholder: commonProps.placeholder, enabled: commonProps.enabled, value: value !== undefined ? value : (component.defaultValue || ''), cols: component.cols || 200, rows: component.textareaRows || 4, showClearButton: component.showClearButton || false, readonly: component.readOnly || false, maxLength: component.maxLength || 255, cssClass: cssClass, htmlAttributes: htmlAttrs, appendTemplate: component.suffix, prependTemplate: component.prefix, resizeMode: 'Vertical' }, createValidationHandlers(function (args) { return args.value || ''; })));\n if (target) {\n ta.appendTo(target);\n }\n ref(ta);\n return ta;\n }\n case 'number': {\n var numValue = value === '' ? undefined : value;\n var ntb = new NumericTextBox({\n locale: locale,\n enableRtl: enableRtl,\n floatLabelType: commonProps.floatLabelType,\n placeholder: commonProps.placeholder,\n enabled: commonProps.enabled,\n value: numValue !== undefined ? numValue : (component.defaultValue || undefined),\n decimals: component.decimals || 2,\n currency: component.currency,\n format: component.numberFormat || 'n2',\n step: component.step || 1,\n min: component.minValue || undefined,\n max: component.maxValue || undefined,\n readonly: component.readOnly || false,\n showClearButton: component.showClearButton || false,\n cssClass: cssClass,\n htmlAttributes: htmlAttrs,\n appendTemplate: component.suffix,\n prependTemplate: component.prefix,\n change: function (args) { return onChange(args.value); }\n });\n if (target) {\n applyHostId(target, component.name);\n target.setAttribute('name', component.id);\n ntb.appendTo(target);\n }\n ref(ntb);\n return ntb;\n }\n case 'checkbox': {\n var checkboxLabel = component.label && component.required\n ? component.label + \" *\"\n : component.label;\n var cb = new CheckBox({\n locale: locale,\n name: component.id,\n enableRtl: enableRtl,\n label: checkboxLabel,\n labelPosition: component.checkboxLabelPosition,\n checked: ((component.checked !== undefined && component.checked !== null ? component.checked : false) || (value !== undefined && value !== null ? value : false)),\n indeterminate: component.indeterminate || false,\n disabled: component.disabled,\n cssClass: cssClass,\n htmlAttributes: htmlAttrs,\n change: function (args) { return onChange(args.checked); }\n });\n if (target) {\n applyHostId(target, component.name);\n cb.appendTo(target);\n }\n ref(cb);\n return cb;\n }\n case 'checkboxGroup': {\n var fetchedCheckboxOptions_1 = [];\n OptionFetcher.fetch(component.options, component.id, formState ? formState.values : undefined, components)\n .then(function (res) {\n if (res.id === component.id && res.options.length > 0) {\n fetchedCheckboxOptions_1.push.apply(fetchedCheckboxOptions_1, res.options);\n group_1.setOptions(fetchedCheckboxOptions_1);\n }\n }).catch(function () { });\n var resolvedCheckboxOptions = resolveOptions(component.options, fetchedCheckboxOptions_1);\n var finalCheckboxOptions = resolvedCheckboxOptions.length > 0\n ? resolvedCheckboxOptions\n : (component.options || ['Option 1']);\n var group_1 = new CheckboxGroup({\n component: __assign({}, component, { options: finalCheckboxOptions }),\n formState: formState,\n value: value,\n enableRtl: enableRtl,\n onChange: function (v) { return onChange(v); },\n optionRef: options.ref,\n target: target,\n ref: ref\n });\n if (target) {\n applyHostId(target, component.name);\n }\n group_1.render(target);\n return group_1;\n }\n case 'radio': {\n var radioOptions = Array.isArray(component.options) ? component.options : ['Option 1'];\n var wrapper_1 = createElement('div', {\n id: component.name + \"-group\",\n className: \"e-radio-group \" + errorClass\n });\n var rbInstances = [];\n radioOptions.forEach(function (option, idx) {\n var optionValue = option;\n var optionText = option;\n var row = createElement('div');\n row.style.marginBottom = '8px';\n wrapper_1.appendChild(row);\n var rbHost = createElement('input', {\n id: component.name + \"_\" + idx + \"_\" + optionValue,\n attrs: { type: 'radio' }\n });\n row.appendChild(rbHost);\n var rb = new RadioButton({\n name: component.id,\n label: optionText,\n enableRtl: enableRtl,\n locale: locale,\n disabled: component.disabled,\n value: optionValue,\n htmlAttributes: htmlAttrs,\n labelPosition: component.fieldLabelPosition,\n checked: component.defaultValue === optionValue || value === optionValue,\n cssClass: cssClass,\n change: function (args) {\n if (args.value === optionValue) {\n onChange(optionValue);\n }\n }\n });\n rb.appendTo(rbHost);\n ref(rb, idx);\n if (options.ref && typeof options.ref === 'function') {\n options.ref(rb, idx);\n }\n });\n if (target) {\n target.appendChild(wrapper_1);\n }\n return rbInstances;\n }\n case 'dropdown': {\n // Same Vanilla TS fetch adaptation as checkboxGroup (see above).\n var fetchedDropdownOptions_1 = [];\n OptionFetcher.fetch(component.options, component.id, formState ? formState.values : undefined, components)\n .then(function (res) {\n if (res.id === component.id && res.options.length > 0) {\n fetchedDropdownOptions_1.push.apply(fetchedDropdownOptions_1, res.options);\n ddl_1.dataSource = fetchedDropdownOptions_1;\n }\n }).catch(function () { });\n var resolvedDropdownOptions = resolveOptions(component.options, fetchedDropdownOptions_1);\n var finalDropdownOptions = resolvedDropdownOptions.length > 0\n ? resolvedDropdownOptions\n : (component.options || ['Option 1']);\n if (component.conditions && component.conditions.choiceBasedField) {\n finalDropdownOptions = ConditionalRuleEngine.getChoiceBasedOptions(component.conditions.choiceBasedField, finalDropdownOptions, formState ? formState.values : undefined, component.conditions.choiceBasedField.primaryFieldId);\n if (finalDropdownOptions.length > 0 && value != null && finalDropdownOptions.indexOf(value) === -1) {\n if (formState) {\n formState.values[component.id] = null;\n }\n }\n }\n var ddl_1 = new DropDownList(__assign({ id: component.name, name: component.id, floatLabelType: commonProps.floatLabelType, placeholder: commonProps.placeholder, enabled: commonProps.enabled, locale: locale, enableRtl: enableRtl, cssClass: cssClass, dataSource: finalDropdownOptions, value: formState.values[component.id] !== undefined ? formState.values[component.id] : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : null), showClearButton: component.showClearButton || false, readonly: component.readOnly || false, enableVirtualization: component.enableVirtualization || false, popupHeight: component.popupHeight || '300px', popupWidth: component.popupWidth || '100%', htmlAttributes: htmlAttrs }, createValidationHandlers(function (args) { return args.value || ''; })));\n // Inject services (VirtualScroll) for the virtualization path.\n DropDownList.Inject(VirtualScroll);\n if (target) {\n ddl_1.appendTo(target);\n }\n ref(ddl_1);\n return ddl_1;\n }\n case 'multiselect': {\n var fetchedMultiSelectOptions_1 = [];\n OptionFetcher.fetch(component.options, component.id, formState ? formState.values : undefined, components)\n .then(function (res) {\n if (res.id === component.id && res.options.length > 0) {\n fetchedMultiSelectOptions_1.push.apply(fetchedMultiSelectOptions_1, res.options);\n ms_1.dataSource = fetchedMultiSelectOptions_1;\n }\n }).catch(function () { });\n var resolvedMultiSelectOptions = resolveOptions(component.options, fetchedMultiSelectOptions_1);\n var finalMultiSelectOptions = resolvedMultiSelectOptions.length > 0\n ? resolvedMultiSelectOptions\n : (component.options || ['Option 1']);\n var ms_1 = new MultiSelect(__assign({ name: component.id, enableRtl: enableRtl, locale: locale, floatLabelType: commonProps.floatLabelType, enabled: commonProps.enabled, value: value !== undefined ? value : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : null), placeholder: component.placeholder, dataSource: finalMultiSelectOptions, fields: { text: 'text', value: 'value' }, showClearButton: component.showClearButton || false, readonly: component.readOnly || false, allowCustomValue: component.allowCustomValue || false, addTagOnBlur: component.addTagOnBlur || false, delimiterChar: component.delimiterChar || ',', showSelectAll: component.showSelectAll || false, mode: component.showSelectAll ? 'CheckBox' : (component.visualMode ? component.visualMode : undefined), selectAllText: component.selectAllText, unSelectAllText: component.unSelectAllText, showDropDownIcon: component.showDropDownIcon !== false, enableVirtualization: component.enableVirtualization || false, popupHeight: component.popupHeight || '300px', popupWidth: component.popupWidth || '100%', cssClass: cssClass, htmlAttributes: htmlAttrs }, createValidationHandlers(function (args) { return args.value || ''; })));\n MultiSelect.Inject(CheckBoxSelection, VirtualScroll);\n if (target) {\n ms_1.appendTo(target);\n }\n ref(ms_1);\n return ms_1;\n }\n case 'date': {\n var dp = new DatePicker(__assign({ floatLabelType: commonProps.floatLabelType, id: component.name, name: component.id, enableRtl: enableRtl, locale: locale, placeholder: commonProps.placeholder, enabled: commonProps.enabled, value: value !== undefined ? value : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : null), format: component.format || 'MM/dd/yyyy', readOnly: component.readOnly || false, showClearButton: component.showClearButton === undefined ? false : component.showClearButton, showTodayButton: component.showTodayButton !== false ? true : false, calendarMode: component.calendarMode || 'Gregorian', dayHeaderFormat: component.dayHeaderFormat || 'Short', depth: component.depth || 'Month', start: component.start || 'Month', firstDayOfWeek: component.firstDayOfWeek || 0, min: component.minDate ? new Date(component.minDate) : undefined, max: component.maxDate ? new Date(component.maxDate) : undefined, cssClass: cssClass, htmlAttributes: htmlAttrs }, createValidationHandlers(function (args) { return args.value || ''; })));\n DatePicker.Inject(Islamic);\n if (target) {\n dp.appendTo(target);\n }\n ref(dp);\n return dp;\n }\n case 'dateTime': {\n var dtp = new DateTimePicker(__assign({ id: component.name, floatLabelType: commonProps.floatLabelType, placeholder: commonProps.placeholder, enabled: commonProps.enabled, locale: locale, enableRtl: enableRtl, name: component.id, dayHeaderFormat: component.dayHeaderFormat || 'Short', value: value !== undefined ? value : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : null), format: component.format || 'MM/dd/yyyy hh:mm a', showClearButton: component.showClearButton === undefined ? false : component.showClearButton, showTodayButton: component.showTodayButton !== false ? true : false, depth: component.depth || 'Month', start: component.start || 'Month', step: component.step || 1, readonly: component.readOnly || false, min: component.minDate ? new Date(component.minDate) : undefined, max: component.maxDate ? new Date(component.maxDate) : undefined, minTime: component.minTime ? new Date(\"2000-01-01 \" + component.minTime) : undefined, maxTime: component.maxTime ? new Date(\"2000-01-01 \" + component.maxTime) : undefined, enableMask: false, cssClass: cssClass, htmlAttributes: htmlAttrs }, createValidationHandlers(function (args) { return args.value || ''; })));\n DateTimePicker.Inject(Islamic);\n if (target) {\n dtp.appendTo(target);\n }\n ref(dtp);\n return dtp;\n }\n case 'time': {\n var tp = new TimePicker(__assign({ id: component.name, locale: locale, name: component.id, enableRtl: enableRtl, floatLabelType: commonProps.floatLabelType, placeholder: commonProps.placeholder, enabled: commonProps.enabled, value: value !== undefined ? value : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : null), format: component.format || 'hh:mm a', showClearButton: component.showClearButton === undefined ? false : component.showClearButton, step: component.step || 30, readonly: component.readOnly || false, min: component.minTime ? new Date(\"2000-01-01 \" + component.minTime) : undefined, max: component.maxTime ? new Date(\"2000-01-01 \" + component.maxTime) : undefined, enableMask: false, cssClass: cssClass, htmlAttributes: htmlAttrs }, createValidationHandlers(function (args) { return args.value || ''; })));\n if (target) {\n tp.appendTo(target);\n }\n ref(tp);\n return tp;\n }\n case 'dateRange': {\n var drp = new DateRangePicker(__assign({ id: component.name, locale: locale, enableRtl: enableRtl, name: component.id, floatLabelType: commonProps.floatLabelType, dayHeaderFormat: component.dayHeaderFormat || 'Short', placeholder: commonProps.placeholder, enabled: commonProps.enabled, value: value !== undefined ? value : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : null), depth: component.depth || 'Month', start: component.start || 'Month', min: component.minDate ? new Date(component.minDate) : undefined, max: component.maxDate ? new Date(component.maxDate) : undefined, format: component.format || 'MM/dd/yyyy', separator: component.separator || ' - ', showClearButton: component.showClearButton === undefined ? false : component.showClearButton, readonly: component.readOnly || false, cssClass: cssClass, htmlAttributes: htmlAttrs }, createValidationHandlers(function (args) { return args.value || ''; })));\n if (target) {\n drp.appendTo(target);\n }\n ref(drp);\n return drp;\n }\n case 'switch': {\n var sw = new Switch({\n locale: locale,\n enableRtl: enableRtl,\n value: component.defaultValue,\n name: component.id,\n checked: ((component.checked !== undefined && component.checked !== null ? component.checked : false) || (value !== undefined && value !== null ? value : false)),\n disabled: component.disabled,\n onLabel: component.onLabel || '',\n offLabel: component.offLabel || '',\n cssClass: cssClass,\n htmlAttributes: htmlAttrs,\n change: function (args) { return onChange(args.checked); }\n });\n if (target) {\n applyHostId(target, component.name);\n sw.appendTo(target);\n }\n ref(sw);\n return sw;\n }\n case 'button': {\n var groupButtons = (component.buttonsGroups || component.buttons || []);\n if (groupButtons && groupButtons.length > 0) {\n var groupStyleObj = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: component.gap || '8px',\n justifyContent: mapPositionToJustifyContent(component.position),\n width: component.width || undefined\n };\n var groupContainer_1 = createElement('div', {\n id: component.name,\n attrs: {\n role: 'group',\n 'aria-label': component.label || 'Button Group',\n className: cssClass + \" \" + (enableRtl ? 'e-rtl' : '')\n }\n });\n Object.assign(groupContainer_1.style, groupStyleObj);\n var btnInstances_1 = [];\n groupButtons.forEach(function (btnDef, idx) {\n var btnId = component.name + \"_\" + idx;\n var btnCssClass = [mapButtonStyleToClass(btnDef.style)].filter(Boolean).join(' ');\n btnCssClass += component.size === 'Small' ? ' e-small' : component.size === 'Bigger' ? ' e-bigger' : '';\n var resolvedGroupType = resolveButtonType(btnDef.type);\n var btnHost = createElement('button', {\n id: String(btnId),\n attrs: { name: String(btnId), type: resolvedGroupType }\n });\n groupContainer_1.appendChild(btnHost);\n var btnInst = new Button({\n locale: locale,\n enableRtl: enableRtl,\n cssClass: btnCssClass,\n disabled: btnDef.disabled || false,\n content: btnDef.label || \"Button \" + (idx + 1),\n iconCss: btnDef.iconCss,\n iconPosition: btnDef.iconPosition\n });\n btnInst.appendTo(btnHost);\n btnInst.element.onclick = function (event) {\n if (onClick) {\n onClick(event);\n }\n };\n ref(btnInst, idx);\n btnInstances_1.push(btnInst);\n if (options.ref && typeof options.ref === 'function') {\n options.ref(btnInst, idx);\n }\n });\n if (target) {\n target.appendChild(groupContainer_1);\n }\n return btnInstances_1;\n }\n // Fallback: single ButtonComponent when no group is configured.\n var resolvedButtonType = resolveButtonType(component.buttonType);\n var buttonCssClassList = [\n mapButtonStyleToClass(component.style),\n resolvedButtonType === 'submit' ? 'submit-btn form-submit-type' : '',\n resolvedButtonType === 'reset' ? 'form-reset-type' : '',\n component.cssClass || 'e-primary',\n component.size === 'Small' ? ' e-small' : component.size === 'Bigger' ? ' e-bigger' : ''\n ].filter(Boolean).join(' ') || 'e-primary';\n var buttonContainerStyle = {\n display: 'flex',\n justifyContent: mapPositionToJustifyContent(component.position),\n width: component.width || '100%'\n };\n var container = createElement('div', {\n id: component.name + \"-container\"\n });\n Object.assign(container.style, buttonContainerStyle);\n var btnHost = createElement('button', {\n id: component.name,\n attrs: { type: resolvedButtonType }\n });\n container.appendChild(btnHost);\n var btnInst = new Button({\n enableRtl: enableRtl,\n locale: locale,\n cssClass: buttonCssClassList,\n disabled: component.disabled,\n iconCss: component.iconCss,\n iconPosition: component.iconPosition,\n content: component.label,\n });\n btnInst.appendTo(btnHost);\n ref(btnInst);\n btnInst.element.onclick = function (event) {\n if (onClick) {\n onClick(event);\n }\n };\n if (target) {\n target.appendChild(container);\n }\n return btnInst;\n }\n case 'splitButton': {\n var splitButtonCssClassList = [\n component.style === 'primary' ? 'e-primary' : '',\n component.style === 'flat' ? '' : '',\n component.style === 'information' ? 'e-info' : '',\n component.style === 'error' ? 'e-danger' : '',\n component.style === 'success' ? 'e-success' : '',\n component.style === 'warning' ? 'e-warning' : '',\n component.cssClass || ''\n ].filter(Boolean).join(' ') || undefined;\n var splitButtonContainerStyle = {\n display: 'flex',\n justifyContent: mapPositionToJustifyContent(component.position)\n };\n var container = createElement('div', {\n id: component.name + \"-container\",\n attrs: { 'aria-label': 'Splitbutton' }\n });\n Object.assign(container.style, splitButtonContainerStyle);\n var items = (component.options && component.options.length > 0\n ? component.options.map(function (option, index) { return ( /* eslint-disable-next-line */{\n text: option,\n id: component.id + \"_option_\" + index\n }); })\n : [/* eslint-disable-next-line */ { text: 'Option 1', id: component.id + \"_option_0\" }]);\n var sbHost = createElement('button', {\n id: component.name\n });\n container.appendChild(sbHost);\n var sb = new SplitButton({\n locale: locale,\n enableRtl: enableRtl,\n content: component.label || 'Split Button',\n items: items,\n cssClass: splitButtonCssClassList,\n disabled: component.disabled,\n iconCss: component.iconCss,\n iconPosition: component.iconPosition || 'Left',\n click: function (args) {\n if (onClick) {\n onClick(__assign({}, args));\n }\n },\n select: function (args) {\n if (onClick) {\n onClick(__assign({}, args, { selectedItem: args.item.text }));\n }\n }\n });\n sb.appendTo(sbHost);\n if (target) {\n target.appendChild(container);\n }\n ref(sb);\n return sb;\n }\n case 'signature': {\n var canvas = createElement('canvas', {\n id: component.name\n });\n var sig = new Signature({\n enableRtl: enableRtl,\n locale: locale,\n backgroundColor: component.backgroundColor || '',\n strokeColor: component.strokeColor || '',\n maxStrokeWidth: component.maxValue,\n minStrokeWidth: component.minValue,\n velocity: component.velocity,\n disabled: component.disabled,\n change: function () { return onChange(component.name); }\n });\n if (target) {\n sig.appendTo(canvas);\n target.appendChild(canvas);\n }\n ref(sig);\n return sig;\n }\n case 'rating': {\n var rt = new Rating({\n enableRtl: enableRtl,\n locale: locale,\n value: value !== undefined ? value : (component.defaultValue || 0),\n disabled: component.disabled,\n cssClass: cssClass,\n allowReset: component.allowReset,\n itemsCount: component.itemsCount,\n min: component.minValue,\n precision: component.precision,\n readOnly: component.readOnly,\n showTooltip: component.showRatingTooltip || false,\n showLabel: component.showRatingLabel,\n labelPosition: component.showRatingLabel ? component.ratingLabelPosition : undefined,\n valueChanged: function (args) { return onChange(args.value); }\n });\n if (target) {\n applyHostId(target, component.name);\n target.setAttribute('name', component.id);\n rt.appendTo(target);\n }\n ref(rt);\n return rt;\n }\n case 'colorPicker': {\n var cp = new ColorPicker({\n enableRtl: enableRtl,\n locale: locale,\n value: value !== undefined ? value : (component.defaultValue || ''),\n disabled: component.disabled,\n enableOpacity: component.enableOpacity,\n showButtons: component.showButtons,\n showRecentColors: component.showRecentColors,\n noColor: component.showNoColor,\n cssClass: cssClass,\n change: function (args) { return onChange(args.value); }\n });\n if (target) {\n applyHostId(target, component.name);\n cp.appendTo(target);\n }\n ref(cp);\n return cp;\n }\n case 'inputMask': {\n var im = new MaskedTextBox(__assign({ id: component.name, name: component.id, enableRtl: enableRtl, floatLabelType: component.floatLabelType || 'Never', placeholder: component.placeholder || '', enabled: !component.disabled, locale: locale, value: value !== undefined ? value : (component.defaultValue || ''), mask: component.mask || '000-000-0000', promptChar: component.promptChar || '_', customCharacters: component.customCharacters, readOnly: component.readOnly || false, showClearButton: component.showClearButton !== false, cssClass: cssClass, htmlAttributes: htmlAttrs, appendTemplate: component.suffix, prependTemplate: component.prefix }, createValidationHandlers(function (args) { return args.value || ''; })));\n if (target) {\n im.appendTo(target);\n }\n ref(im);\n return im;\n }\n case 'rangeSlider': {\n var sl = new Slider({\n enableRtl: enableRtl,\n locale: locale,\n value: value !== undefined ? value : (component.defaultValue !== undefined && component.defaultValue !== null ? component.defaultValue : 0),\n min: component.minValue || 0,\n max: component.maxValue || 100,\n step: component.step || 1,\n cssClass: cssClass,\n enabled: !component.disabled,\n readonly: component.readOnly,\n showButtons: component.showButtons,\n change: function (args) { return onChange(args.value); }\n });\n if (target) {\n applyHostId(target, component.name);\n sl.appendTo(target);\n }\n ref(sl);\n return sl;\n }\n case 'fileUpload': {\n var up = new Uploader({\n enableRtl: enableRtl,\n locale: locale,\n type: 'file',\n enabled: !component.disabled,\n allowedExtensions: component.allowExtensions,\n asyncSettings: { saveUrl: component.saveUrl, removeUrl: component.removeUrl },\n buttons: component.buttons || {\n 'browse': 'Choose File',\n 'clear': 'Clear All',\n 'upload': 'Upload All'\n },\n maxFileSize: component.maxValue,\n minFileSize: component.minValue,\n multiple: !!component.allowMultiple,\n showFileList: component.showFileList,\n htmlAttributes: htmlAttrs,\n cssClass: cssClass,\n change: function (args) { return onChange(args.file); }\n });\n if (target) {\n applyHostId(target, component.name);\n up.appendTo(target);\n }\n ref(up);\n return up;\n }\n case 'imageEditor': {\n var ieHost = createElement('div', {\n id: component.name,\n attrs: { 'data-field': component.id }\n });\n var ie_1;\n setTimeout(function () {\n ie_1 = new ImageEditor({\n locale: locale,\n enableRtl: enableRtl,\n disabled: component.disabled,\n cssClass: cssClass,\n height: (component.height != null ? component.height : '350px').toString(),\n width: (component.width != null ? component.width : '100%').toString(),\n editComplete: function () { return onChange(component.name); },\n fileOpened: function () { return onChange(component.name); }\n }, \"#\" + component.name);\n }, 100);\n if (target) {\n target.appendChild(ieHost);\n }\n ref(ie_1);\n return ie_1;\n }\n case 'message': {\n var msg = new Message({\n locale: locale,\n enableRtl: enableRtl,\n severity: component.severity || component.messageType || 'info',\n variant: component.variant,\n content: component.content || 'Message',\n showCloseIcon: component.showCloseIcon,\n showIcon: ((component.showIcon === undefined ? false : component.showIcon) || false),\n cssClass: cssClass\n });\n if (target) {\n applyHostId(target, component.name);\n msg.appendTo(target);\n }\n ref(msg);\n return msg;\n }\n case 'dataGrid': {\n var dg_1 = component;\n var conditionalDataResult = resolveConditionalData(dg_1.conditions, (formState && formState.values) || {});\n var conditionalData_1 = conditionalDataResult ? conditionalDataResult.dataSource : undefined;\n var conditionalColumns = conditionalDataResult ? conditionalDataResult.columns : undefined;\n var effectiveDataSource = conditionalData_1 || dg_1.dataSource;\n var fetchedDataSource = [];\n OptionFetcher.fetch(conditionalData_1 || dg_1.dataSource, dg_1.id, formState && formState.values, components).then(function (res) {\n if (res.id === dg_1.id && res.options.length > 0) {\n var newDataSource = resolveOptions(conditionalData_1 || dg_1.dataSource, res.options, fetchedLookupDataSource_1);\n gridComp_1.setDataSource(newDataSource);\n }\n });\n var fetchedLookupDataSource_1 = [];\n var resolvedDataSource = conditionalData_1\n ? resolveOptions(conditionalData_1, fetchedDataSource, fetchedLookupDataSource_1)\n : resolveOptions(dg_1.dataSource, fetchedDataSource, fetchedLookupDataSource_1);\n var finalDataSource = resolvedDataSource.length > 0 ? resolvedDataSource : (dg_1.dataSource !== undefined && dg_1.dataSource !== null ? dg_1.dataSource : []);\n var finalColumns = conditionalColumns && conditionalColumns.length > 0 ? conditionalColumns : (dg_1.columns !== undefined && dg_1.columns !== null ? dg_1.columns : []);\n var gridHost = target || createElement('div', {\n id: dg_1.name,\n className: dg_1.cssClass\n });\n if (target) {\n applyHostId(target, component.name);\n }\n var gridComp_1 = new DataGridComponent({\n locale: locale,\n name: dg_1.name || '',\n columns: finalColumns,\n enableRtl: enableRtl,\n dataSource: (finalDataSource !== undefined && finalDataSource.length > 0) ? finalDataSource : value,\n height: (dg_1.height != null ? dg_1.height : '200px'),\n width: (dg_1.width != null ? dg_1.width : '100%'),\n pageSize: dg_1.pageSize || 6,\n allowPaging: dg_1.allowPaging !== false,\n allowFiltering: dg_1.allowFiltering,\n allowAdding: dg_1.allowAdding !== false,\n allowEditing: dg_1.allowEditing !== false,\n allowDeleting: dg_1.allowDeleting !== false,\n onDataChange: function (data) { return onChange(data); },\n cssClass: cssClass,\n target: gridHost,\n ref: ref\n });\n gridComp_1.render(gridHost);\n if (!initializedGrids.has(component.id) && formState && Array.isArray(finalDataSource)) {\n formState.values[component.id] = finalDataSource;\n gridComp_1.isInitialized = true;\n initializedGrids.add(component.id);\n }\n if (typeof options.ref === 'function') {\n options.ref(gridComp_1);\n }\n else if (options.ref) {\n options.ref.current = gridComp_1;\n }\n return target || gridHost;\n }\n case 'richTextEditor': {\n var toolbarSettings = {\n items: [\n 'Undo', 'Redo', '|', 'Bold', 'Italic', 'Underline', 'StrikeThrough', 'InlineCode', '|',\n 'CreateLink', 'Image', 'CreateTable', 'CodeBlock', 'HorizontalLine', 'Blockquote', 'EmojiPicker', '|',\n 'LineHeight', 'Formats', 'Alignments', '|', 'BulletFormatList', 'NumberFormatList', 'Checklist', '|',\n 'Outdent', 'Indent', '|', 'FontColor', 'BackgroundColor', 'FontName', 'FontSize', '|',\n 'LowerCase', 'UpperCase', 'SuperScript', 'SubScript', '|', 'SourceCode', '|'\n ]\n };\n if (component.enableImportFromWord && component.enableImportFromWord.enabled) {\n toolbarSettings.items.push('ImportWord');\n }\n if (component.enableExportToWord && component.enableExportToWord.enabled) {\n toolbarSettings.items.push('ExportWord');\n }\n if (component.enableExportToPdf && component.enableExportToPdf.enabled) {\n toolbarSettings.items.push('ExportPdf');\n }\n toolbarSettings.items.push('Print');\n var hasValidService = function (config) {\n return !!config && config.enabled && typeof config.serviceUrl === 'string' && config.serviceUrl.trim() !== '';\n };\n var importWord = hasValidService(component.enableImportFromWord)\n ? {\n // eslint-disable-next-line security/detect-unsafe-regex\n serviceUrl: /^(https?:)?\\/\\//i.test(component.enableImportFromWord ? component.enableImportFromWord.serviceUrl : '')\n ? (component.enableImportFromWord ? component.enableImportFromWord.serviceUrl : '')\n : (settings && settings.hostUrl ? settings.hostUrl : '').replace(/\\/+$/, '') + \"/\" + (component.enableImportFromWord ? component.enableImportFromWord.serviceUrl : '').replace(/^\\/+/, '')\n }\n : undefined;\n var exportWord = hasValidService(component.enableExportToWord)\n ? {\n // eslint-disable-next-line security/detect-unsafe-regex\n serviceUrl: /^(https?:)?\\/\\//i.test(component.enableExportToWord ? component.enableExportToWord.serviceUrl : '')\n ? (component.enableExportToWord ? component.enableExportToWord.serviceUrl : '')\n : (settings && settings.hostUrl ? settings.hostUrl : '').replace(/\\/+$/, '') + \"/\" + (component.enableExportToWord ? component.enableExportToWord.serviceUrl : '').replace(/^\\/+/, ''),\n fileName: 'RichTextEditor.docx',\n stylesheet: \"\\n .e-rte-content {\\n font-size: 1em;\\n font-weight: 400;\\n margin: 0;\\n }\\n \"\n }\n : undefined;\n var exportPdf = hasValidService(component.enableExportToPdf)\n ? {\n // eslint-disable-next-line security/detect-unsafe-regex\n serviceUrl: /^(https?:)?\\/\\//i.test(component.enableExportToPdf ? component.enableExportToPdf.serviceUrl : '')\n ? (component.enableExportToPdf ? component.enableExportToPdf.serviceUrl : '')\n : (settings && settings.hostUrl ? settings.hostUrl : '').replace(/\\/+$/, '') + \"/\" + (component.enableExportToPdf ? component.enableExportToPdf.serviceUrl : '').replace(/^\\/+/, ''),\n fileName: 'RichTextEditor.pdf',\n stylesheet: \"\\n .e-rte-content {\\n font-size: 1em;\\n font-weight: 400;\\n margin: 0;\\n }\\n \"\n }\n : undefined;\n var rte = new RichTextEditor({\n locale: locale,\n toolbarSettings: toolbarSettings,\n enableRtl: enableRtl,\n value: value !== undefined ? value : (component.defaultValue || ''),\n placeholder: component.placeholder || '',\n enabled: !component.disabled,\n readonly: component.readOnly || false,\n maxLength: component.maxLength || undefined,\n cssClass: cssClass || undefined,\n height: component.height || '300px',\n width: component.width || '100%',\n htmlAttributes: htmlAttrs,\n importWord: importWord,\n exportPdf: exportPdf,\n exportWord: exportWord,\n change: function (args) { return onChange(args.value); }\n });\n RichTextEditor.Inject(Toolbar, Link, HtmlEditor, QuickToolbar, RTEImage, Count, Table, EmojiPicker, PasteCleanup, SlashMenu, CodeBlock, ClipBoardCleanup, AutoFormat, ImportExport);\n rte.appendTo(target);\n ref(rte);\n return rte;\n }\n default: {\n var msg = new Message({\n locale: locale,\n enableRtl: enableRtl,\n severity: 'Warning',\n content: l10n.getConstant('unsupportedComponent') + \" : \" + component.type,\n cssClass: cssClass\n });\n if (target) {\n applyHostId(target, component.name);\n msg.appendTo(target);\n }\n ref(msg);\n return msg;\n }\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { sanitizeId, VALIDATION_REGEX } from './utils';\n/**\n * @private\n */\nvar DEFAULT_CONFIG = {\n strict: false,\n maxInputSize: 5 * 1024 * 1024,\n defaultTextType: 'textbox',\n inferTypeFromValue: true,\n generateIds: true,\n includeMetadata: true,\n customTypeMap: {},\n validateUnknownFields: false\n};\n/**\n * @private\n */\nvar UniversalJsonParser = /** @class */ (function () {\n function UniversalJsonParser(customConfig) {\n this.config = __assign({}, DEFAULT_CONFIG, customConfig);\n }\n UniversalJsonParser.prototype.parse = function (input) {\n var errors = [];\n var warnings = [];\n // Handle string input\n if (typeof input === 'string') {\n if (input.length > this.config.maxInputSize) {\n return this.formatError(errors, warnings, \"Input exceeds maximum size of \" + this.config.maxInputSize + \" bytes\");\n }\n var jsonValidation = validateJSON(input);\n if (!jsonValidation.valid) {\n return this.formatError(errors, warnings, (jsonValidation.errors && jsonValidation.errors[0]) || 'Invalid JSON');\n }\n try {\n input = JSON.parse(input);\n }\n catch (error) {\n return this.formatError(errors, warnings, \"Failed to parse JSON: \" + error.message);\n }\n }\n // Detect format\n var detection = this.detectFormat(input);\n // Add warnings for ambiguous format detection\n if (detection.ambiguousFormats && detection.ambiguousFormats.length > 0) {\n warnings.push(\"Ambiguous format detected.\");\n warnings.push(\"Using \" + detection.format + \" format (\" + (detection.format === 'json-schema' ? 'properties priority' : 'pages priority') + \")\");\n }\n // Parse based on format\n var components = [];\n switch (detection.format) {\n case 'configured-schema':\n // Already in our standard format, just use directly\n components = input.properties || [];\n break;\n case 'json-schema': {\n var jsonSchemaResult = this.parseJsonSchema(input);\n components = jsonSchemaResult.components;\n if (jsonSchemaResult.warnings) {\n warnings.push.apply(warnings, jsonSchemaResult.warnings);\n }\n break;\n }\n case 'surveyjs':\n components = this.parseSurveyJS(input);\n break;\n case 'openapi':\n components = this.parseOpenAPI(input);\n break;\n case 'data-inference':\n components = this.parseDataInference(input);\n // Only warn about inferred types if components were actually created\n if (components.length > 0) {\n warnings.push('Field types inferred from data; please verify');\n }\n break;\n default:\n errors.push('Could not determine input format');\n }\n if (components.length === 0) {\n errors.push('No form fields could be extracted from input');\n }\n // Add default submit button if not already present\n var hasSubmitButton = components.some(function (comp) { return comp.type === 'button' && comp.buttonType === 'submit'; });\n if (!hasSubmitButton && components.length > 0) {\n components.push({\n id: this.generateComponentId('button'),\n type: 'button',\n label: 'Submit',\n style: 'primary',\n buttonType: 'submit',\n });\n }\n var schema = {\n version: input.version || \"0.1.0\",\n components: components\n };\n var schemaValidation = validateFormSchema(schema);\n if (!schemaValidation.valid && schemaValidation.errors) {\n errors.push.apply(errors, schemaValidation.errors);\n }\n if (schemaValidation.warnings) {\n warnings.push.apply(warnings, schemaValidation.warnings);\n }\n if (this.config.strict && warnings.length > 0) {\n errors.push.apply(errors, warnings);\n warnings.length = 0;\n }\n var sanitized = sanitizeFormSchema(schema);\n return {\n success: errors.length === 0,\n schema: sanitized,\n errors: errors,\n warnings: warnings,\n metadata: {\n detectedFormat: detection.format,\n confidence: detection.confidence,\n sourceHints: detection.hints\n }\n };\n };\n UniversalJsonParser.prototype.formatError = function (errors, warnings, message) {\n errors.push(message);\n return {\n success: false,\n schema: null,\n errors: errors,\n warnings: warnings,\n metadata: {\n detectedFormat: 'unknown',\n confidence: 'low',\n sourceHints: []\n }\n };\n };\n UniversalJsonParser.prototype.detectFormat = function (input) {\n var hints = [];\n var ambiguousFormats = [];\n if (!input || typeof input !== 'object') {\n return {\n format: 'unknown',\n confidence: 'low',\n hints: ['Input is not a valid object']\n };\n }\n // Check for JSON Schema indicators\n if (input.$schema && typeof input.$schema === 'string' && input.$schema.includes('json-schema')) {\n hints.push('$schema property detected');\n return { format: 'json-schema', confidence: 'high', hints: hints };\n }\n // Detect ambiguous formats (Test Case 8)\n var hasProperties = input.properties && typeof input.properties === 'object';\n var hasPages = input.pages && Array.isArray(input.pages);\n var hasElements = input.elements && Array.isArray(input.elements);\n if (hasProperties && hasPages) {\n hints.push('Multiple format patterns detected');\n hints.push('Selected based on priority rules');\n ambiguousFormats.push('properties format', 'pages format');\n // JSON Schema has priority\n return {\n format: 'json-schema',\n confidence: 'medium',\n hints: hints,\n ambiguousFormats: ambiguousFormats\n };\n }\n // Check for SurveyJS with pages\n if (hasPages) {\n hints.push('pages array detected');\n if (input.pages[0] && input.pages[0].elements)\n hints.push('elements structure matched');\n return { format: 'surveyjs', confidence: 'high', hints: hints };\n }\n // Check for SurveyJS with elements at root\n if (hasElements && !hasProperties) {\n hints.push('elements array at root level');\n return { format: 'surveyjs', confidence: 'medium', hints: hints };\n }\n // Check for JSON Schema with properties\n if (hasProperties) {\n hints.push('properties object detected');\n if (input.type === 'object')\n hints.push('type: object matched');\n if (input.required && Array.isArray(input.required))\n hints.push('required array found');\n // Check for API schema indicators (example fields pattern)\n if (this.hasExampleFields(input.properties)) {\n hints.push('example fields detected (API schema pattern)');\n return { format: 'openapi', confidence: 'high', hints: hints };\n }\n return { format: 'json-schema', confidence: 'high', hints: hints };\n }\n // Check for Data Inference\n if (this.isDataInferenceCandidate(input)) {\n hints.push('Simple object with primitive values');\n hints.push('No schema indicators found');\n return { format: 'data-inference', confidence: 'medium', hints: hints };\n }\n return {\n format: 'unknown',\n confidence: 'low',\n hints: ['Could not identify format']\n };\n };\n UniversalJsonParser.prototype.hasExampleFields = function (properties) {\n if (!properties || typeof properties !== 'object')\n return false;\n var keys = Object.keys(properties);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var prop = properties[key];\n if (prop && 'example' in prop) {\n return true;\n }\n }\n return false;\n };\n UniversalJsonParser.prototype.isDataInferenceCandidate = function (input) {\n if (!input || typeof input !== 'object')\n return false;\n if (input.$schema || input.properties || input.pages || input.elements)\n return false;\n var inputKeys = Object.keys(input);\n return inputKeys.every(function (k) {\n var val = input[k];\n if (val === null || val === undefined)\n return true;\n if (typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean')\n return true;\n if (Array.isArray(val)) {\n return val.every(function (item) {\n return typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean';\n });\n }\n return false;\n });\n };\n UniversalJsonParser.prototype.inferComponentType = function (fieldName, value) {\n var valueType = this.inferTypeFromValue(fieldName, value);\n if (valueType.type) {\n return __assign({}, valueType, { confidence: 'high', method: 'value-type' });\n }\n var patternMatch = this.matchFieldNamePattern(fieldName);\n if (patternMatch.type) {\n return __assign({}, patternMatch, { confidence: 'high', method: 'name-pattern' });\n }\n return {\n type: this.config.defaultTextType,\n confidence: 'low',\n method: 'fallback'\n };\n };\n UniversalJsonParser.prototype.inferTypeFromValue = function (fieldName, value) {\n if (!this.config.inferTypeFromValue)\n return { type: 'textbox' };\n if (value === null || value === undefined) {\n // Even with null/undefined values, check field name patterns\n return this.matchFieldNamePattern(fieldName);\n }\n if (typeof value === 'string') {\n // Check value-based patterns first (highest confidence)\n if (value.includes('@') && value.includes('.')) {\n return { type: 'textbox', textboxType: 'email' };\n }\n // eslint-disable-next-line security/detect-unsafe-regex\n if (/^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}/.test(value)) {\n return { type: 'textbox', textboxType: 'url' };\n }\n if (/^\\d{4}-\\d{2}-\\d{2}/.test(value)) {\n return { type: 'date' };\n }\n // For generic strings, check field name patterns\n var fieldNameMatch = this.matchFieldNamePattern(fieldName);\n if (fieldNameMatch.type !== 'textbox' || fieldNameMatch.textboxType) {\n return fieldNameMatch;\n }\n return { type: this.config.defaultTextType };\n }\n if (typeof value === 'number') {\n return { type: 'number' };\n }\n if (typeof value === 'boolean') {\n return { type: 'checkbox' };\n }\n if (Array.isArray(value)) {\n return { type: 'multiselect' };\n }\n return { type: 'textbox' };\n };\n UniversalJsonParser.prototype.matchFieldNamePattern = function (fieldName) {\n if (this.config.customTypeMap) {\n var customType = this.config.customTypeMap[fieldName.toLowerCase()];\n if (customType)\n return { type: customType };\n }\n var lower = fieldName.toLowerCase();\n var normalized = lower.replace(/[_\\-\\s]+/g, ' ');\n if (/email|mail|e-?mail/.test(normalized))\n return { type: 'textbox', textboxType: 'email' };\n if (/date|birth|birthday|dob|created|updated/.test(normalized))\n return { type: 'date' };\n if (/phone|tel|mobile|cell|cellphone|msisdn/.test(normalized))\n return { type: 'textbox', textboxType: 'number' };\n if (/url|link|uri|website/.test(normalized))\n return { type: 'textbox', textboxType: 'url' };\n if (/password|pwd|pass|security|secret|key|token/.test(normalized))\n return { type: 'textbox', textboxType: 'password' };\n if (/\\b(?:age|count|qty|quantity|amount|price|cost|salary|fee|rate|number|num)\\b/.test(normalized))\n return { type: 'number' };\n if (/active|enabled|visible|deleted|archived|approved|confirmed/.test(normalized))\n return { type: 'checkbox' };\n if (/select|choice|option|type|status|category|kind/.test(normalized))\n return { type: 'dropdown' };\n if (/description|comment|note|bio|biography|about|message|content|summary|details/.test(normalized))\n return { type: 'textarea' };\n return { type: 'textbox' };\n };\n UniversalJsonParser.prototype.parseJsonSchema = function (schema) {\n var components = [];\n var warnings = [];\n if (!schema.properties || typeof schema.properties !== 'object')\n return { components: components, warnings: warnings };\n var flattenedProperties = this.flattenNestedProperties(schema.properties, '', warnings);\n var flatKeys = Object.keys(flattenedProperties);\n for (var _i = 0, flatKeys_1 = flatKeys; _i < flatKeys_1.length; _i++) {\n var key = flatKeys_1[_i];\n var propDef = flattenedProperties[key];\n var typeInfo = this.mapJsonSchemaType(propDef);\n var requiredArr = schema.required || [];\n var isRequired = requiredArr.indexOf(key) !== -1;\n components.push(this.createComponent(key, propDef, typeInfo, { required: isRequired }));\n }\n return { components: components, warnings: warnings };\n };\n UniversalJsonParser.prototype.flattenNestedProperties = function (properties, prefix, warnings) {\n var flattened = {};\n var hasNested = false;\n var propKeys = Object.keys(properties);\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n var propDef = properties[key];\n var fullKey = prefix ? prefix + \"_\" + key : key;\n // Check if this is a nested object (Test Case 9)\n if (propDef.type === 'object' && propDef.properties && typeof propDef.properties === 'object') {\n hasNested = true;\n var nestedFlattened = this.flattenNestedProperties(propDef.properties, fullKey, warnings);\n Object.assign(flattened, nestedFlattened);\n }\n else {\n flattened[fullKey] = propDef;\n }\n }\n // Add warnings for nested objects\n if (hasNested && !prefix) {\n warnings.push('NESTED_OBJECTS_FLATTENED: Nested objects converted to flat structure');\n var outerKeys = Object.keys(properties);\n for (var _a = 0, outerKeys_1 = outerKeys; _a < outerKeys_1.length; _a++) {\n var key = outerKeys_1[_a];\n var propDef = properties[key];\n if (propDef.type === 'object' && propDef.properties) {\n this.collectFlattenedFieldNames(propDef.properties, key, warnings);\n }\n }\n }\n return flattened;\n };\n UniversalJsonParser.prototype.collectFlattenedFieldNames = function (properties, prefix, warnings) {\n var collKeys = Object.keys(properties);\n for (var _i = 0, collKeys_1 = collKeys; _i < collKeys_1.length; _i++) {\n var key = collKeys_1[_i];\n var propDef = properties[key];\n var fullKey = prefix + \"_\" + key;\n warnings.push(\"Field '\" + prefix + \".\" + key + \"' flattened to '\" + fullKey + \"'\");\n if (propDef.type === 'object' && propDef.properties) {\n this.collectFlattenedFieldNames(propDef.properties, fullKey, warnings);\n }\n }\n };\n UniversalJsonParser.prototype.parseSurveyJS = function (schema) {\n var _this = this;\n var components = [];\n if (schema.pages && Array.isArray(schema.pages)) {\n schema.pages.forEach(function (page) {\n if (page.elements && Array.isArray(page.elements)) {\n page.elements.forEach(function (element) {\n components.push(_this.createComponentFromSurveyJS(element));\n });\n }\n });\n }\n if (!components.length && schema.elements && Array.isArray(schema.elements)) {\n schema.elements.forEach(function (element) {\n components.push(_this.createComponentFromSurveyJS(element));\n });\n }\n return components;\n };\n UniversalJsonParser.prototype.createComponentFromSurveyJS = function (element) {\n var type = this.mapSurveyJSType(element.type || 'text');\n var validation = {};\n // Only add required if explicitly true\n if (element.isRequired === true) {\n validation.required = true;\n }\n if (element.validators && Array.isArray(element.validators)) {\n element.validators.forEach(function (validator) {\n if (validator.type === 'numeric') {\n if (validator.minValue !== undefined)\n validation.minValue = validator.minValue;\n if (validator.maxValue !== undefined)\n validation.maxValue = validator.maxValue;\n }\n if (validator.type === 'text') {\n if (validator.minLength !== undefined)\n validation.minLength = validator.minLength;\n if (validator.maxLength !== undefined)\n validation.maxLength = validator.maxLength;\n }\n });\n }\n var component = __assign({ id: this.generateComponentId(type), type: type, label: element.title || element.label || this.humanizeFieldName(element.name), defaultValue: element.defaultValue, expressionValue: element.expressionValue }, Object.keys(validation).length > 0 ? validation : undefined);\n if (type === 'dropdown' || type === 'multiselect' || type === 'radio' || type === 'splitButton') {\n if (element.choices && Array.isArray(element.choices)) {\n component.options = element.choices;\n }\n }\n return component;\n };\n UniversalJsonParser.prototype.mapSurveyJSType = function (surveyType) {\n var typeMap = {\n text: 'textbox',\n email: 'email',\n number: 'number',\n checkbox: 'checkbox',\n radiogroup: 'radio',\n dropdown: 'dropdown',\n tagbox: 'multiselect',\n multiselect: 'multiselect',\n rating: 'number',\n comment: 'textarea',\n date: 'date'\n };\n return typeMap[surveyType] || 'textbox';\n };\n UniversalJsonParser.prototype.parseOpenAPI = function (schema) {\n var components = [];\n if (!schema.properties || typeof schema.properties !== 'object')\n return components;\n var openAPIKeys = Object.keys(schema.properties);\n var requiredArr = schema.required || [];\n for (var _i = 0, openAPIKeys_1 = openAPIKeys; _i < openAPIKeys_1.length; _i++) {\n var key = openAPIKeys_1[_i];\n var propDef = schema.properties[key];\n var typeInfo = this.mapJsonSchemaType(propDef);\n var isRequired = requiredArr.indexOf(key) !== -1;\n components.push(this.createComponent(key, propDef, typeInfo, { required: isRequired }));\n }\n return components;\n };\n UniversalJsonParser.prototype.parseDataInference = function (data) {\n var components = [];\n var dataKeys = Object.keys(data);\n for (var _i = 0, dataKeys_1 = dataKeys; _i < dataKeys_1.length; _i++) {\n var key = dataKeys_1[_i];\n var value = data[key];\n var typeInference = this.inferComponentType(key, value);\n var component = {\n id: this.generateComponentId(typeInference.type),\n type: typeInference.type,\n label: this.humanizeFieldName(key),\n defaultValue: value,\n expressionValue: undefined\n };\n if (typeInference.textboxType) {\n component.textboxType = typeInference.textboxType;\n // Add default regex patterns for email and url\n if (typeInference.textboxType === 'email') {\n component.regex = VALIDATION_REGEX['EMAIL'];\n }\n else if (typeInference.textboxType === 'url') {\n component.regex = VALIDATION_REGEX['URL'];\n }\n }\n if (typeInference.type === 'date' && component.defaultValue !== undefined && component.defaultValue !== null) {\n var formatted = this.formatDateTimeValue(component.defaultValue);\n if (formatted)\n component.defaultValue = formatted;\n }\n if (Array.isArray(value) && value.length > 0) {\n component.options = value;\n }\n components.push(component);\n }\n return components;\n };\n UniversalJsonParser.prototype.createComponent = function (fieldName, propDef, typeInfo, context) {\n var validation = {};\n // Only add required if explicitly true\n var isRequired = propDef.required !== undefined ? propDef.required : context.required;\n if (isRequired === true) {\n validation.required = true;\n }\n if (propDef.minLength)\n validation.minLength = propDef.minLength;\n if (propDef.maxLength)\n validation.maxLength = propDef.maxLength;\n if (propDef.minDate)\n validation.minDate = propDef.minDate;\n if (propDef.maxDate)\n validation.maxDate = propDef.maxDate;\n if (propDef.minTime)\n validation.minTime = propDef.minTime;\n if (propDef.minValue)\n validation.minValue = propDef.minValue;\n if (propDef.maxValue)\n validation.maxValue = propDef.maxValue;\n if (propDef.pattern) {\n validation.pattern = propDef.pattern;\n }\n var rawId = propDef.id || this.generateComponentId(typeInfo.type);\n var safeGeneratedId = sanitizeId(rawId, this.generateComponentId(typeInfo.type));\n var component = __assign({ id: safeGeneratedId, name: propDef.name, type: typeInfo.type, label: propDef.title || propDef.label || this.humanizeFieldName(fieldName), defaultValue: propDef.default || propDef.defaultValue || undefined, expressionValue: propDef.expressionValue || undefined, content: propDef.content, buttonType: propDef.buttonType, textboxType: propDef.textboxType }, Object.keys(validation).length > 0 ? validation : undefined);\n if (typeInfo.textboxType) {\n component.textboxType = typeInfo.textboxType;\n // Add default regex patterns for email and url\n if (typeInfo.textboxType === 'email') {\n if (!validation.pattern) {\n validation.regex = '^[^\\\\s@]+@[^\\\\s@]+\\\\.[^\\\\s@]+$'; // Standard email regex\n validation.validationMessage = 'Please enter a valid email address';\n }\n }\n else if (typeInfo.textboxType === 'url') {\n if (!validation.pattern) {\n validation.regex = '^(https?:\\\\/\\\\/)?(www\\\\.)?[-a-zA-Z0-9@:%._\\\\+~#=]{1,256}\\\\.[a-zA-Z0-9()]{1,6}\\\\b([-a-zA-Z0-9()@:%_\\\\+.~#?&//=]*)$';\n validation.validationMessage = 'Please enter a valid URL';\n }\n }\n }\n if (typeInfo.type === 'date' && component.defaultValue !== undefined && component.defaultValue !== null) {\n var formatted = this.formatDateTimeValue(component.defaultValue);\n if (formatted)\n component.defaultValue = formatted;\n }\n if ((typeInfo.type === 'splitButton' || typeInfo.type === 'dropdown' || typeInfo.type === 'multiselect' || typeInfo.type === 'radio') && (propDef.enum || propDef.options)) {\n component.options = propDef.enum || propDef.options;\n }\n return component;\n };\n UniversalJsonParser.prototype.parseDateFromValue = function (value) {\n if (value == null)\n return null;\n // numeric timestamps\n if (typeof value === 'number') {\n // assume seconds if small\n if (value < 1e12)\n return new Date(value * 1000);\n return new Date(value);\n }\n if (typeof value === 'string') {\n var s = value.trim();\n // Try ISO / RFC parse\n var dIso = new Date(s);\n if (!isNaN(dIso.getTime()))\n return dIso;\n // yyyy-mm-dd[ T hh:mm(:ss)]\n // eslint-disable-next-line security/detect-unsafe-regex\n var m = s.match(/^(\\d{4})-(\\d{2})-(\\d{2})(?:[T ](\\d{2}):(\\d{2})(?::(\\d{2}))?)?/);\n if (m)\n return new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3]), Number(m[4] || 0), Number(m[5] || 0), Number(m[6] || 0));\n // mm/dd/yyyy or m/d/yyyy\n // eslint-disable-next-line security/detect-unsafe-regex\n var m2 = s.match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})(?:[ T](\\d{1,2}):(\\d{2})(?:[:](\\d{2}))?)?/);\n if (m2)\n return new Date(Number(m2[3]), Number(m2[1]) - 1, Number(m2[2]), Number(m2[4] || 0), Number(m2[5] || 0), Number(m2[6] || 0));\n }\n return null;\n };\n UniversalJsonParser.prototype.formatDate = function (d) {\n var monthNum = d.getMonth() + 1;\n var dayNum = d.getDate();\n var mm = monthNum < 10 ? '0' + monthNum : String(monthNum);\n var dd = dayNum < 10 ? '0' + dayNum : String(dayNum);\n var yyyy = d.getFullYear();\n return mm + \"/\" + dd + \"/\" + yyyy;\n };\n // private formatTime(d: Date): string {\n // let hours = d.getHours();\n // const minutes = d.getMinutes().toString().padStart(2, '0');\n // const ampm = hours >= 12 ? 'PM' : 'AM';\n // hours = hours % 12;\n // if (hours === 0) hours = 12;\n // return `${hours.toString().padStart(2, '0')}:${minutes} ${ampm}`;\n // }\n UniversalJsonParser.prototype.formatDateTimeValue = function (value) {\n var d = this.parseDateFromValue(value);\n if (!d)\n return undefined;\n var datePart = this.formatDate(d);\n var hasTime = d.getHours() !== 0 || d.getMinutes() !== 0 || /\\dT\\d{2}:\\d{2}/.test(String(value));\n if (hasTime)\n return \"\" + datePart;\n return datePart;\n };\n UniversalJsonParser.prototype.mapJsonSchemaType = function (propDef) {\n var schemaType = propDef.type;\n if (schemaType === 'string') {\n var fmt = (propDef.format || '').toString().toLowerCase();\n var text = ((propDef.title || propDef.label || '') + ' ' + (propDef.description || '')).toLowerCase();\n if (/email|mail|e-?mail/.test(fmt) || /email|mail|e-?mail/.test(text))\n return { type: 'textbox', textboxType: 'email' };\n if (/uri|url|link|website/.test(fmt) || /uri|url|link|website/.test(text))\n return { type: 'textbox', textboxType: 'url' };\n if (/phone|tel|mobile|cell|msisdn/.test(fmt) || /phone|tel|mobile|cell|msisdn/.test(text))\n return { type: 'textbox', textboxType: 'number' };\n if (/password|pwd|pass|security|secret|key/.test(fmt) || /password|pwd|pass|security|secret|key/.test(text))\n return { type: 'textbox', textboxType: 'password' };\n if (fmt === 'date' || fmt === 'date-time' || /date|birthday|dob/.test(text))\n return { type: 'date' };\n if (propDef.enum)\n return { type: 'dropdown' };\n if (propDef.options)\n return { type: 'dropdown' };\n return { type: this.config.defaultTextType };\n }\n if (schemaType === 'number' || schemaType === 'integer')\n return { type: 'number' };\n if (schemaType === 'boolean')\n return { type: 'checkbox' };\n if (schemaType === 'array')\n return { type: 'multiselect' };\n // Presentation / custom widget types\n if (schemaType === 'message')\n return { type: 'message' };\n if (schemaType === 'button')\n return { type: 'button' };\n if (schemaType === 'signature' || schemaType === 'sign')\n return { type: 'signature' };\n if (schemaType === 'image' || schemaType === 'imageEditor')\n return { type: 'imageEditor' };\n if (schemaType === 'file' || schemaType === 'fileUpload')\n return { type: 'fileUpload' };\n if (schemaType === 'color' || schemaType === 'colorPicker')\n return { type: 'colorPicker' };\n if (schemaType === 'splitButton')\n return { type: 'splitButton' };\n return { type: this.config.defaultTextType };\n };\n UniversalJsonParser.prototype.generateComponentId = function (type) {\n if (!this.config.generateIds)\n return '';\n var timestamp = Date.now();\n var random = Math.floor(Math.random() * 1000);\n return type + \"_\" + timestamp + \"_\" + random;\n };\n UniversalJsonParser.prototype.humanizeFieldName = function (fieldName) {\n var result = fieldName.replace(/_/g, ' ');\n result = result.replace(/([a-z])([A-Z])/g, '$1 $2');\n return result;\n };\n return UniversalJsonParser;\n}());\nexport { UniversalJsonParser };\n/**\n * @private\n */\nexport var validateJSON = function (jsonString) {\n try {\n JSON.parse(jsonString);\n return { valid: true };\n }\n catch (error) {\n return {\n valid: false,\n errors: [\"Invalid JSON syntax: \" + error.message]\n };\n }\n};\n/**\n * @private\n */\nexport var validateFormSchema = function (schema) {\n var errors = [];\n var warnings = [];\n if (!schema.components) {\n errors.push('Missing required property: components');\n }\n else if (!Array.isArray(schema.components)) {\n errors.push('Property \"components\" must be an array');\n }\n // Validate component structure\n if (Array.isArray(schema.components)) {\n var componentIds_1 = new Set();\n var validateComponent_1 = function (comp, path) {\n if (path === void 0) { path = 'root'; }\n if (!comp.id) {\n errors.push(\"Component at \" + path + \" is missing \\\"id\\\" property\");\n }\n else {\n if (componentIds_1.has(comp.id)) {\n errors.push(\"Duplicate component ID found: \" + comp.id);\n }\n componentIds_1.add(comp.id);\n }\n if (!comp.type) {\n errors.push(\"Component \\\"\" + (comp.id || 'unknown') + \"\\\" is missing \\\"type\\\" property\");\n }\n if (comp.children && Array.isArray(comp.children)) {\n comp.children.forEach(function (child, index) {\n validateComponent_1(child, path + \".children[\" + index + \"]\");\n });\n }\n if (comp.tabItems && Array.isArray(comp.tabItems)) {\n comp.tabItems.forEach(function (tab, tabIndex) {\n if (tab.content && Array.isArray(tab.content)) {\n tab.content.forEach(function (child, index) {\n validateComponent_1(child, path + \".tabItems[\" + tabIndex + \"].content[\" + index + \"]\");\n });\n }\n });\n }\n if (comp.tableCells && Array.isArray(comp.tableCells)) {\n comp.tableCells.forEach(function (row, rowIndex) {\n if (Array.isArray(row)) {\n row.forEach(function (cell, colIndex) {\n if (Array.isArray(cell)) {\n cell.forEach(function (child, index) {\n validateComponent_1(child, path + \".tableCells[\" + rowIndex + \"][\" + colIndex + \"][\" + index + \"]\");\n });\n }\n });\n }\n });\n }\n };\n schema.components.forEach(function (comp, index) {\n validateComponent_1(comp, \"components[\" + index + \"]\");\n });\n }\n return {\n valid: errors.length === 0,\n errors: errors.length > 0 ? errors : undefined,\n warnings: warnings.length > 0 ? warnings : undefined\n };\n};\n/**\n * @private\n */\nexport var sanitizeFormSchema = function (schema) {\n var sanitized = {\n version: schema.version || \"0.1.0\",\n components: schema.components || []\n };\n var sanitizeComponent = function (comp) {\n var sanitizedComp = __assign({}, comp, { _configured: true });\n if (comp.children && Array.isArray(comp.children)) {\n sanitizedComp.children = comp.children.map(sanitizeComponent);\n }\n if (comp.tabItems && Array.isArray(comp.tabItems)) {\n sanitizedComp.tabItems = comp.tabItems.map(function (tab) { return (__assign({}, tab, { content: tab.content ? tab.content.map(sanitizeComponent) : [] })); });\n }\n if (comp.tableCells && Array.isArray(comp.tableCells)) {\n sanitizedComp.tableCells = comp.tableCells.map(function (row) {\n return row.map(function (cell) {\n return Array.isArray(cell) ? cell.map(sanitizeComponent) : [];\n });\n });\n }\n return sanitizedComp;\n };\n sanitized.components = sanitized.components.map(sanitizeComponent);\n return sanitized;\n};\n/**\n * @private\n */\nexport var exportFormSchema = function (schema) {\n return JSON.stringify(schema, null, 2);\n};\n","import { isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\n/**\n * @private\n * `StaticHtmlRenderer` is the Category C native reimplementation of\n * `Common/StaticHtmlRenderer.tsx`.\n *\n * Renders raw HTML into a `div`. Calls `SanitizeHtmlHelper.sanitize`\n * **only when** `enableHtmlSanitizer` is true; otherwise renders the raw\n * content. Supports an optional `id`.\n *\n * Mirrors the React component's `useMemo([content])` memoization by\n * recomputing the rendered string only when `content` changes — the host\n * replaces the inner HTML directly via `update()`.\n */\nvar StaticHtmlRenderer = /** @class */ (function () {\n function StaticHtmlRenderer(options) {\n this.content = options.content;\n this.id = options.id;\n this.enableHtmlSanitizer = isNullOrUndefined(options.enableHtmlSanitizer) ? true : options.enableHtmlSanitizer;\n this.el = options.target || null;\n }\n StaticHtmlRenderer.prototype.resolveHtml = function (content) {\n try {\n if (this.enableHtmlSanitizer) {\n return SanitizeHtmlHelper.sanitize(content);\n }\n return content;\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Create and return the container element with the rendered HTML\n * already injected. The caller appends the returned element to the DOM.\n */\n StaticHtmlRenderer.prototype.render = function () {\n var div = document.createElement('div');\n if (this.id) {\n div.id = this.id;\n }\n div.innerHTML = this.resolveHtml(this.content);\n this.el = div;\n return div;\n };\n /**\n * Update the rendered content in-place (re-runs the sanitization /\n * raw-pass-through). Used by the host when `content` changes.\n */\n StaticHtmlRenderer.prototype.update = function (content) {\n this.content = content;\n if (this.el) {\n this.el.innerHTML = this.resolveHtml(this.content);\n }\n };\n /**\n * Return the live host element (or null before `render()`).\n */\n StaticHtmlRenderer.prototype.getElement = function () {\n return this.el;\n };\n /**\n * @private\n */\n StaticHtmlRenderer.prototype.destroy = function () {\n if (this.el && this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n this.el = null;\n this.content = '';\n this.enableHtmlSanitizer = false;\n this.id = undefined;\n };\n return StaticHtmlRenderer;\n}());\nexport { StaticHtmlRenderer };\nexport default StaticHtmlRenderer;\n","/**\n * Extract min/max constraints from minMaxRange array\n * @private\n */\nvar MinMaxRuleEngine = /** @class */ (function () {\n function MinMaxRuleEngine() {\n }\n /**\n * Extract min/max constraints from minMaxRange array\n * Handles three cases:\n * 1. Direct values (enabled: false)\n * 2. Single field reference (enabled: true, 1 range)\n * 3. Multiple ranges (enabled: true, 2+ ranges) - takes UTMOST\n * @private\n * @param minMaxRange - Array of range configurations\n * @param formValues - Current form state values (id → value)\n * @param componentType - 'number' | 'date' | 'dateRange'\n * @returns Constraints object with appropriate keys\n */\n MinMaxRuleEngine.getConstraints = function (minMaxRange, formValues, componentType) {\n var _this = this;\n if (componentType === void 0) { componentType = 'number'; }\n // No ranges provided\n if (!minMaxRange || minMaxRange.length === 0) {\n return this.getEmptyConstraints(componentType);\n }\n // First, check for CASE 1: Direct values (enabled: false)\n var directValueRange = minMaxRange.find(function (range) { return range.enabled === false; });\n if (directValueRange) {\n // Use direct values without field lookup\n var minValue = this.resolveValue(directValueRange.minValue, {});\n var maxValue = this.resolveValue(directValueRange.maxValue, {});\n if (componentType === 'date' || componentType === 'dateRange') {\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: minValue,\n maxDate: maxValue,\n minTime: undefined,\n maxTime: undefined\n };\n }\n if (componentType === 'time') {\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: undefined,\n maxDate: undefined,\n minTime: minValue,\n maxTime: maxValue\n };\n }\n return {\n minValue: minValue,\n maxValue: maxValue,\n minDate: undefined,\n maxDate: undefined,\n minTime: undefined,\n maxTime: undefined\n };\n }\n // CASE 2 & 3: Field references (enabled: true)\n var enabledRanges = minMaxRange.filter(function (range) { return range.enabled === true; });\n // No enabled ranges - return empty\n if (enabledRanges.length === 0) {\n return this.getEmptyConstraints(componentType);\n }\n // Extract resolved values from each enabled range\n var resolvedRanges = enabledRanges\n .map(function (range) { return ({\n min: _this.resolveValue(range.minValue, formValues),\n max: _this.resolveValue(range.maxValue, formValues)\n }); })\n .filter(function (range) { return range.min !== undefined || range.max !== undefined; });\n // No valid ranges\n if (resolvedRanges.length === 0) {\n return this.getEmptyConstraints(componentType);\n }\n // Combine multiple ranges using UTMOST (most permissive)\n var finalMin = this.getPermissiveMin(resolvedRanges, componentType);\n var finalMax = this.getPermissiveMax(resolvedRanges, componentType);\n // Return appropriate keys based on component type\n if (componentType === 'date' || componentType === 'dateRange') {\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: finalMin,\n maxDate: finalMax,\n minTime: undefined,\n maxTime: undefined\n };\n }\n if (componentType === 'time') {\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: undefined,\n maxDate: undefined,\n minTime: finalMin,\n maxTime: finalMax\n };\n }\n return {\n minValue: finalMin,\n maxValue: finalMax,\n minDate: undefined,\n maxDate: undefined,\n minTime: undefined,\n maxTime: undefined\n };\n };\n /**\n * Resolve a single value - either direct or field reference\n *\n * @param value - Direct value or field reference object\n * @param formValues - Form state values for field lookup\n * @returns Resolved value or undefined\n */\n MinMaxRuleEngine.resolveValue = function (value, formValues) {\n // Direct value (number or string)\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return value;\n }\n // Field reference object\n if (value && typeof value === 'object' && value.field) {\n var fieldId = value.field;\n var fieldValue = formValues[fieldId];\n return fieldValue !== undefined ? fieldValue : undefined;\n }\n return undefined;\n };\n /**\n * Get the most permissive (widest) minimum value\n * For numbers: MIN of all mins\n * For dates: earliest date (MIN string comparison on ISO format)\n * For times: earliest time (MIN string comparison on 24-hour format)\n *\n * @param ranges - Array of {min, max} values\n * @param componentType - Type of component\n * @returns Most permissive minimum value\n */\n MinMaxRuleEngine.getPermissiveMin = function (ranges, componentType) {\n var _this = this;\n if (ranges.length === 0)\n return undefined;\n if (componentType === 'date' || componentType === 'dateRange') {\n // For dates, find earliest (minimum) date\n return ranges.reduce(function (earliest, current) {\n if (!current.min)\n return earliest;\n if (!earliest)\n return current.min;\n var earliestIso = _this.convertToISO(earliest);\n var currentIso = _this.convertToISO(current.min);\n return currentIso < earliestIso ? current.min : earliest;\n }, undefined);\n }\n if (componentType === 'time') {\n // For times, find earliest (minimum) time\n return ranges.reduce(function (earliest, current) {\n if (!current.min)\n return earliest;\n if (!earliest)\n return current.min;\n var earliest24 = _this.convertTimeTo24Hour(earliest);\n var current24 = _this.convertTimeTo24Hour(current.min);\n return current24 < earliest24 ? current.min : earliest;\n }, undefined);\n }\n // For numbers, find minimum (skip undefined values)\n var minValues = ranges.map(function (r) { return r.min; }).filter(function (v) { return v !== undefined; });\n return minValues.length > 0 ? Math.min.apply(Math, minValues) : undefined;\n };\n /**\n * Get the most permissive (widest) maximum value\n * For numbers: MAX of all maxs\n * For dates: latest date (MAX string comparison on ISO format)\n * For times: latest time (MAX string comparison on 24-hour format)\n *\n * @param ranges - Array of {min, max} values\n * @param componentType - Type of component\n * @returns Most permissive maximum value\n */\n MinMaxRuleEngine.getPermissiveMax = function (ranges, componentType) {\n var _this = this;\n if (ranges.length === 0)\n return undefined;\n if (componentType === 'date' || componentType === 'dateRange') {\n // For dates, find latest (maximum) date\n return ranges.reduce(function (latest, current) {\n if (!current.max)\n return latest;\n if (!latest)\n return current.max;\n var latestIso = _this.convertToISO(latest);\n var currentIso = _this.convertToISO(current.max);\n return currentIso > latestIso ? current.max : latest;\n }, undefined);\n }\n if (componentType === 'time') {\n // For times, find latest (maximum) time\n return ranges.reduce(function (latest, current) {\n if (!current.max)\n return latest;\n if (!latest)\n return current.max;\n var latest24 = _this.convertTimeTo24Hour(latest);\n var current24 = _this.convertTimeTo24Hour(current.max);\n return current24 > latest24 ? current.max : latest;\n }, undefined);\n }\n // For numbers, find maximum (skip undefined values)\n var maxValues = ranges.map(function (r) { return r.max; }).filter(function (v) { return v !== undefined; });\n return maxValues.length > 0 ? Math.max.apply(Math, maxValues) : undefined;\n };\n /**\n * Convert MM/DD/YYYY date format to ISO (YYYY-MM-DD) for comparison\n * Handles both formats gracefully\n *\n * @param dateString - Date in MM/DD/YYYY or ISO format\n * @returns ISO date string (YYYY-MM-DD)\n */\n MinMaxRuleEngine.convertToISO = function (dateString) {\n if (!dateString)\n return '';\n // Already ISO format (YYYY-MM-DD)\n if (dateString.includes('-') && dateString.length === 10) {\n return dateString;\n }\n // MM/DD/YYYY format\n if (dateString.indexOf('/') !== -1) {\n var parts = dateString.split('/');\n var month = parts[0];\n var day = parts[1];\n var year = parts[2];\n if (!month || !day || !year)\n return dateString;\n var monthPadded = month.length < 2 ? '0' + month : month;\n var dayPadded = day.length < 2 ? '0' + day : day;\n return year + \"-\" + monthPadded + \"-\" + dayPadded;\n }\n return dateString;\n };\n /**\n * Convert 12-hour time format to 24-hour format for comparison\n * Handles both 12-hour (hh:mm a) and 24-hour (HH:mm) formats\n *\n * @param timeString - Time in 12-hour (hh:mm a/p) or 24-hour (HH:mm) format\n * @returns 24-hour format time string (HH:mm)\n */\n MinMaxRuleEngine.convertTimeTo24Hour = function (timeString) {\n if (!timeString)\n return '';\n // Check if it contains AM/PM (12-hour format)\n var isPM = /PM/i.test(timeString);\n var isAM = /AM/i.test(timeString);\n if (isAM || isPM) {\n // Extract time part (before AM/PM)\n var timePart = timeString.replace(/\\s*(AM|PM)/i, '').trim();\n var _a = timePart.split(':'), hours = _a[0], minutes = _a[1];\n if (!hours || !minutes)\n return timeString;\n var hour = parseInt(hours, 10);\n if (isPM && hour !== 12) {\n hour += 12; // Convert PM hours (except 12) to 24-hour\n }\n else if (isAM && hour === 12) {\n hour = 0; // Convert 12 AM to 00:00\n }\n var hourStr = String(hour);\n var hourPadded = hourStr.length < 2 ? '0' + hourStr : hourStr;\n return hourPadded + \":\" + minutes;\n }\n // Already in 24-hour format or unknown format\n return timeString;\n };\n /**\n * Get empty constraints object based on component type\n */\n MinMaxRuleEngine.getEmptyConstraints = function (componentType) {\n if (componentType === 'date' || componentType === 'dateRange') {\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: undefined,\n maxDate: undefined,\n minTime: undefined,\n maxTime: undefined\n };\n }\n if (componentType === 'time') {\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: undefined,\n maxDate: undefined,\n minTime: undefined,\n maxTime: undefined\n };\n }\n return {\n minValue: undefined,\n maxValue: undefined,\n minDate: undefined,\n maxDate: undefined,\n minTime: undefined,\n maxTime: undefined\n };\n };\n /**\n * Validate if a value passes all min/max constraints (optional)\n * Can be used for client-side validation before submission\n *\n * @param value - Value to validate\n * @param constraints - Constraints to check against\n * @param componentType - Type of component\n * @returns Validation result with error message if invalid\n */\n MinMaxRuleEngine.validateValue = function (value, constraints, componentType) {\n if (value === undefined || value === null || value === '') {\n return { isValid: true }; // Empty values pass (required handled separately)\n }\n if (componentType === 'date' || componentType === 'dateRange') {\n if (constraints.minDate) {\n var minIso = this.convertToISO(constraints.minDate);\n var valueIso = this.convertToISO(value);\n if (valueIso < minIso) {\n return { isValid: false, error: \"Date must be on or after \" + constraints.minDate };\n }\n }\n if (constraints.maxDate) {\n var maxIso = this.convertToISO(constraints.maxDate);\n var valueIso = this.convertToISO(value);\n if (valueIso > maxIso) {\n return { isValid: false, error: \"Date must be on or before \" + constraints.maxDate };\n }\n }\n }\n else if (componentType === 'time') {\n if (constraints.minTime) {\n if (value < constraints.minTime) {\n return { isValid: false, error: \"Time must be on or after \" + constraints.minTime };\n }\n }\n if (constraints.maxTime) {\n if (value > constraints.maxTime) {\n return { isValid: false, error: \"Time must be on or before \" + constraints.maxTime };\n }\n }\n }\n else {\n // Number type\n var numValue = Number(value);\n if (constraints.minValue !== undefined) {\n var minNum = Number(constraints.minValue);\n if (numValue < minNum) {\n return {\n isValid: false,\n error: \"Value must be at least \" + constraints.minValue\n };\n }\n }\n if (constraints.maxValue !== undefined) {\n var maxNum = Number(constraints.maxValue);\n if (numValue > maxNum) {\n return {\n isValid: false,\n error: \"Value must be at most \" + constraints.maxValue\n };\n }\n }\n }\n return { isValid: true };\n };\n return MinMaxRuleEngine;\n}());\nexport { MinMaxRuleEngine };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, NotifyPropertyChanges, enableRipple, createElement, isNullOrUndefined, L10n, getComponent, addClass } from '@syncfusion/ej2-base';\nimport { Tab } from '@syncfusion/ej2-navigations';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { FormValidator } from '@syncfusion/ej2-inputs';\nimport { renderFormField } from './render-form-field';\nimport { mergeSchema } from '../common/json-converter';\nimport { UniversalJsonParser } from '../common/parser';\nimport { VALIDATION_REGEX, formatDateValues, splitWidths } from '../common/utils';\nimport StaticHtmlRenderer from '../common/static-html-renderer';\nimport { ConditionalRuleEngine } from '../common/conditional-rule-engine';\nimport { ExpressionEngine } from '../common/expressions/expression-engine';\nimport { MinMaxRuleEngine } from '../common/minmax-rule-engine';\nimport { CustomValidationEngine } from '../common/custom-validation-engine';\n/**\n * @private\n *\n * Internal input target types array to define a target.\n */\nvar inputTargetTypes = [\n 'textbox',\n 'number',\n 'checkbox',\n 'dropdown',\n 'multiselect',\n 'date',\n 'dateTime',\n 'time',\n 'dateRange',\n 'switch',\n 'rating',\n 'colorPicker',\n 'inputMask',\n 'fileUpload'\n];\n/**\n * @private\n */\nexport var defaultLocale = {\n \"unsupportedComponent\": \"Unsupported Component type\"\n};\n/**\n * The FormRenderer component consumes a JSON form schema and renders a fully functional, Syncfusion-based form. It handles field mapping, conditional visibility/disabling, expression evaluation, custom validation, and data submission.\n *\n * ```typescript\n * let form: FormRenderer = new FormRenderer({\n * schema: formSchema,\n * submit: (args: SubmitEventArgs) => console.log(args)\n * });\n * form.appendTo('#container');\n * ```\n */\nvar FormRenderer = /** @class */ (function (_super) {\n __extends(FormRenderer, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {FormRendererModel} options - Specifies the form renderer model\n * @param {string|HTMLDivElement} element - Specifies the target element\n */\n function FormRenderer(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.processedSchemaCache = { version: '1.0.0', components: [] };\n /** Localization instance */\n _this.l10n = new L10n('form-renderer', defaultLocale, _this.locale);\n /**\n * @private\n *\n * Minimal form-state container owned by the orchestrator. The previous\n * vanilla-TS port delegated this to `FormStateBridge`; that bridge's\n * `registeredFields` gate silently short-circuited every field to \"no\n * error\" because the orchestrator never called `registerField`. The\n * EJ2 native `FormValidator` (bound to `this.element`) now handles all\n * rule evaluation, error-element placement, change/blur/submit wiring,\n * and ARIA — exactly what `FormValidator` was designed for. This object\n * is the orchestrator's authoritative values store; `errors` are\n * mirrored from the FormValidator's `errorRules` for `renderField`'s\n * initial-paint logic and for submit-time `isValid` checks.\n */\n _this.formState = { values: Object.create(null), errors: Object.create(null) };\n /** EJ2 native FormValidator bound to `this.element` (replaces FormStateBridge). */\n _this.validator = null;\n /** Map of input component instances keyed by `name` (or `${name}_${idx}`). */\n _this.inputRefs = {};\n /** Conditional value applied tracker (per-field). */\n _this.conditionalValueApplied = {};\n /** Expression engine + dependency graph + computed-field set. */\n _this.expressionEngine = null;\n _this.expressionDependencyGraph = {};\n _this.expressionEvaluationInProgress = false;\n _this.previousFormValues = {};\n _this.computedFieldNames = new Set();\n /** Custom validation engine instance. */\n _this.customValidationEngine = new CustomValidationEngine();\n /** Latest form values snapshot for custom validation (named-key context). */\n _this.currentFormValues = {};\n /** Whether initial values have been seeded once. */\n _this.isInitialized = false;\n /** Cached layout detection result. */\n _this.hasLayoutComponentsCache = false;\n /** Cached id→label map. */\n _this.idToLabelCache = {};\n /** Cached initial values (recomputed on schema change). */\n _this.initialValuesCache = {};\n /** Rendered child EJ2 instances (for destroy cleanup). */\n _this.renderedInstances = [];\n /** Tooltip instances keyed by field id so stale tooltips can be replaced promptly. */\n _this.tooltipRefs = {};\n /** `created` fired-once guard. */\n _this.createdFired = false;\n /**\n * Coalescing guard for `scheduleRerender`. Prevents redundant full-form\n * re-renders within a single microtask — mirrors React's batched-state\n * semantics so that a user keystroke + expression cascade fire one render.\n */\n _this.rerenderScheduled = false;\n /**\n * Set of `component.id`s that are referenced as the trigger field of any\n * other component's `conditions` (`visibleWhen` / `hideWhen` /\n * `disabledWhen` / `requiredWhen` / `readOnlyWhen` / `setValueWhen` /\n * `choiceBasedField.primaryFieldId`). Only changes to these fields can\n * affect visibility / disabled / required / valueWhen of any other\n * field, so only they need to trigger a full-form re-render. Changes to\n * fields *not* in this set are guaranteed to have no conditional side\n * effects and safely skip the (expensive) full DOM teardown + rebuild.\n * Built once per schema in `buildConditionalDependencyMap`.\n */\n _this.conditionalTriggerFieldIds = new Set();\n /**\n * Maps `component.id` → the previously-rendered DOM subtree (form-group)\n * for \"expensive\" components (dataGrid, dropdown, multiselect,\n * checkboxGroup) that support remote data. During a full-form re-render\n * triggered by an *unrelated* conditional change, these subtrees are\n * detached (not destroyed) and re-attached in place, avoiding a re-fetch\n * of their remote data sources and preventing the visible blink/reload.\n * A subtree is *invalidated* (dropped from this map, forcing a fresh\n * render) when a field it depends on (via its own `conditions` or\n * `conditionalData`) is the one that changed.\n */\n _this.preservedFields = new Map();\n /**\n * Per-consumer dependency map: `component.id` → set of trigger field ids\n * that the consumer's own `conditions` / `conditionalData` /\n * `choiceBasedField` reference. Used during `rerenderForm` to decide\n * whether a preserved subtree must be invalidated (rebuilt) because the\n * changed field is one of its own dependencies, or can be safely reused.\n */\n _this.consumerDependencyMap = new Map();\n /**\n * @private\n *\n * Coalesced full-form re-render. Multiple triggers within the same\n * microtask drain into a single `rerenderForm()` call. The set of\n * changed field ids is accumulated across the tick so `rerenderForm`\n * can decide which preserved subtrees must be invalidated (because one\n * of the changed fields is in their own dependency set).\n */\n _this.pendingChangedFieldIds = new Set();\n return _this;\n }\n FormRenderer_1 = FormRenderer;\n /**\n * Returns the EJ2 component module name.\n * @private\n */\n FormRenderer.prototype.getModuleName = function () {\n return 'form-renderer';\n };\n /**\n * Return the persisted-state payload. The base class declares this\n * abstract; FormRenderer does not implement state persistence, so an\n * empty object is returned (mirrors the EJ2 convention for\n * non-persistent components).\n * @private\n */\n FormRenderer.prototype.getPersistData = function () {\n return this.addOnPersist(['formState', JSON.stringify(this.formState)]);\n };\n /**\n * Pre-render wiring: enable ripple, init the expression engine + bridge.\n * @private\n */\n FormRenderer.prototype.preRender = function () {\n enableRipple(true);\n this.createdFired = false;\n this.expressionEngine = new ExpressionEngine();\n };\n /**\n * Main render: normalize schema, build rules + initial values, render tree.\n * @private\n */\n FormRenderer.prototype.render = function () {\n var _this = this;\n this.clearEngineCaches();\n this.removePreviousRoot();\n this.normalizeSchema();\n this.element.classList.add('form-renderer-container');\n if (this.className) {\n addClass([this.element], this.className.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n else {\n this.element.classList.remove('e-rtl');\n }\n this.hasLayoutComponentsCache = this.computeHasLayoutComponents();\n this.idToLabelCache = this.computeIdToLabel();\n this.initialValuesCache = this.buildInitialValues();\n this.buildValidationRulesAndBridge();\n // Seed initial values into the form-state values map once.\n if (!this.isInitialized) {\n this.isInitialized = true;\n }\n if (this.formState && this.initialValuesCache) {\n var initKeys = Object.keys(this.initialValuesCache);\n for (var _i = 0, initKeys_1 = initKeys; _i < initKeys_1.length; _i++) {\n var id = initKeys_1[_i];\n var value = this.initialValuesCache[id];\n if (!(this.formState).values[id]) {\n (this.formState).values[id] = value;\n }\n }\n }\n this.currentFormValues = __assign({}, (this.formState ? this.formState.values : {}));\n this.initExpressionEngine();\n this.buildConditionalDependencyMap();\n var root = createElement('form', {\n className: \"form-renderer \" + this.layoutClass,\n attrs: { role: 'region', 'aria-label': this.processedSchemaCache.settings ? (this.processedSchemaCache.settings.name || 'Form') : 'Form' }\n });\n this.element.appendChild(root);\n this.inputRefs = {};\n (this.processedSchemaCache.components || []).forEach(function (component) {\n var rendered = _this.renderComponent(component);\n if (rendered) {\n root.appendChild(rendered);\n }\n if (component.type === 'richTextEditor') {\n var rteElement = rendered.querySelector('.e-richtexteditor');\n var rteInstance = getComponent(rteElement, 'richtexteditor');\n rteInstance.refreshUI();\n }\n if (component.type === 'dataGrid') {\n var toolbarElement = rendered.querySelector('.e-control.e-toolbar');\n var rteInstance = getComponent(toolbarElement, 'toolbar');\n rteInstance.refresh();\n }\n });\n if (this.created && !this.createdFired) {\n setTimeout(function () {\n if (Object.keys(_this.inputRefs).length > 0) {\n _this.createdFired = true;\n _this.trigger('created', {});\n }\n }, 0);\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.normalizeSchema = function () {\n var schema = this.schema;\n try {\n if (!schema) {\n this.processedSchemaCache = { version: '1.0.0', components: [] };\n return;\n }\n var parsedInput = schema;\n if (typeof schema === 'string') {\n try {\n parsedInput = JSON.parse(schema);\n }\n catch (err) {\n if (this.failure) {\n this.trigger('failure', {\n error: err\n });\n }\n this.processedSchemaCache = { version: '1.0.0', components: [] };\n return;\n }\n }\n var isUnifiedSchema = parsedInput && typeof parsedInput === 'object' &&\n parsedInput.properties && Array.isArray(parsedInput.layout);\n if (isUnifiedSchema) {\n this.processedSchemaCache = mergeSchema(parsedInput);\n }\n else {\n var parser = new UniversalJsonParser();\n var parseResult = parser.parse(typeof schema === 'string' ? schema : JSON.stringify(schema));\n if (parseResult.success && parseResult.schema) {\n this.processedSchemaCache = parseResult.schema;\n }\n else {\n if (this.failure) {\n this.trigger('failure', {\n error: parseResult.errors\n });\n }\n this.processedSchemaCache = { version: '1.0.0', components: [] };\n }\n }\n }\n catch (error) {\n if (this.failure) {\n this.trigger('failure', {\n error: error\n });\n }\n this.processedSchemaCache = { version: '1.0.0', components: [] };\n }\n };\n // ----------------------------------------------------------------------\n // G3 — layout detection + suppression map\n // ----------------------------------------------------------------------\n /**\n * Recursively scan the schema for any `table`/`tabs`/`panel`/`card`\n * (including inside table cells and tab content). Mirrors `hasLayoutComponents`.\n * @private\n */\n FormRenderer.prototype.computeHasLayoutComponents = function () {\n if (!this.processedSchemaCache.components) {\n return false;\n }\n var checkForLayoutTypes = function (components) {\n for (var _i = 0, components_1 = components; _i < components_1.length; _i++) {\n var comp = components_1[_i];\n if (['table', 'tabs', 'panel', 'card'].indexOf(comp.type) !== -1) {\n return true;\n }\n if (comp.children && checkForLayoutTypes(comp.children)) {\n return true;\n }\n if (comp.tableCells) {\n for (var _a = 0, _b = comp.tableCells; _a < _b.length; _a++) {\n var row = _b[_a];\n for (var _c = 0, row_1 = row; _c < row_1.length; _c++) {\n var cell = row_1[_c];\n if (checkForLayoutTypes(cell)) {\n return true;\n }\n }\n }\n }\n if (comp.tabItems) {\n for (var _d = 0, _e = comp.tabItems; _d < _e.length; _d++) {\n var tab = _e[_d];\n if (tab.content && checkForLayoutTypes(tab.content)) {\n return true;\n }\n }\n }\n }\n return false;\n };\n return checkForLayoutTypes(this.processedSchemaCache.components);\n };\n Object.defineProperty(FormRenderer.prototype, \"layoutClass\", {\n /**\n * The layout CSS class (suppressed when layout components are present).\n * @private\n */\n get: function () {\n if (this.hasLayoutComponentsCache) {\n return '';\n }\n switch (this.layout) {\n case 'TwoColumn':\n return 'twolayout';\n case 'ThreeColumn':\n return 'threelayout';\n case 'FourColumn':\n return 'fourlayout';\n case 'SingleColumn':\n default:\n return '';\n }\n },\n enumerable: true,\n configurable: true\n });\n // ----------------------------------------------------------------------\n // G4 — collectAllComponents + idToLabel\n // ----------------------------------------------------------------------\n /**\n * Recursively collect all components including nested ones.\n * @private\n */\n FormRenderer.prototype.collectAllComponents = function (components) {\n var all = [];\n var traverse = function (comps) {\n comps.forEach(function (comp) {\n all.push(comp);\n if (comp.children && comp.children.length > 0) {\n traverse(comp.children);\n }\n if (comp.tableCells) {\n comp.tableCells.forEach(function (row) {\n row.forEach(function (cell) { return traverse(cell); });\n });\n }\n if (comp.tabItems) {\n comp.tabItems.forEach(function (tab) {\n if (tab.content) {\n traverse(tab.content);\n }\n });\n }\n });\n };\n traverse(components);\n return all;\n };\n /**\n * @private\n */\n FormRenderer.prototype.computeIdToLabel = function () {\n var map = {};\n var traverse = function (comps) {\n comps.forEach(function (comp) {\n if (comp.label && ['panel', 'table', 'tabs', 'card', 'button', 'message', 'splitButton'].indexOf(comp.type) === -1) {\n if (comp.name) {\n map[comp.id] = comp.name;\n }\n else if (comp.label) {\n map[comp.id] = comp.label;\n }\n }\n if (comp.children) {\n traverse(comp.children);\n }\n if (comp.tableCells) {\n comp.tableCells.forEach(function (row) { return row.forEach(function (cell) { return traverse(cell); }); });\n }\n if (comp.tabItems) {\n comp.tabItems.forEach(function (tab) { if (tab.content) {\n traverse(tab.content);\n } });\n }\n });\n };\n traverse(this.processedSchemaCache.components);\n return map;\n };\n // ----------------------------------------------------------------------\n // G5 — buildValidationRules via FormStateBridge + ConditionalRuleEngine +\n // EMAIL/URL auto-regex + customValidator closure\n // ----------------------------------------------------------------------\n /**\n * @private\n */\n FormRenderer.prototype.buildValidationRulesAndBridge = function () {\n var _this = this;\n var rules = {};\n var formValues = (this.formState && this.formState.values) || {};\n var collectRules = function (components, parentVisible) {\n if (parentVisible === void 0) { parentVisible = true; }\n components.forEach(function (component) {\n if (!component) {\n return;\n }\n var componentRules = {};\n var isVisible = parentVisible && (component.visible === false\n ? false\n : ConditionalRuleEngine.isFieldVisible(component.conditions, formValues));\n var isHidden = parentVisible && ConditionalRuleEngine.isFieldHidden(component.conditions, formValues);\n if (!isVisible || isHidden) {\n return;\n }\n var conditionalRequired = ConditionalRuleEngine.isFieldRequired(component.conditions, formValues);\n var conditionalDisabled = ConditionalRuleEngine.isFieldDisabled(component.conditions, formValues);\n var conditionalReadOnly = ConditionalRuleEngine.isFieldReadOnly(component.conditions, formValues);\n var finalRequired = !!component.required || conditionalRequired;\n var finalDisabled = !!component.disabled || conditionalDisabled;\n var finalReadOnly = !!component.readOnly || conditionalReadOnly;\n if (component.customValidation &&\n Array.isArray(component.customValidation) &&\n component.customValidation.length > 0 &&\n !finalDisabled && !finalReadOnly) {\n var customValidationExpression = component.customValidation && component.customValidation[0] && component.customValidation[0].expression;\n var validationMessage = customValidationExpression && customValidationExpression.match(/\\?\\s*true\\s*:\\s*['\"](.+?)['\"]/) ? customValidationExpression.match(/\\?\\s*true\\s*:\\s*['\"](.+?)['\"]/)[1] : undefined;\n var customMessage = validationMessage ||\n component.validationMessage ||\n (component.label || component.id) + \" is invalid\";\n var self_1 = _this;\n componentRules.customValidation = [\n function (args) {\n var fieldValue = args.value;\n if (finalRequired && (fieldValue === '' || fieldValue === null || fieldValue === undefined)) {\n return true;\n }\n var idToNameMap = {};\n var allComponents = self_1.collectAllComponents(self_1.processedSchemaCache.components);\n allComponents.forEach(function (comp) {\n if (comp.name) {\n idToNameMap[comp.id] = comp.name;\n }\n });\n var currentFormValues = __assign({}, (self_1.currentFormValues || {}));\n var cfvKeys = Object.keys(__assign({}, currentFormValues));\n for (var _i = 0, cfvKeys_1 = cfvKeys; _i < cfvKeys_1.length; _i++) {\n var componentId = cfvKeys_1[_i];\n var value = currentFormValues[componentId];\n var fieldName = idToNameMap[componentId];\n if (fieldName) {\n currentFormValues[fieldName] = value;\n delete currentFormValues[componentId];\n }\n }\n for (var _a = 0, _b = component.customValidation; _a < _b.length; _a++) {\n var rule = _b[_a];\n if (!self_1.customValidationEngine) {\n return true;\n }\n var result = self_1.customValidationEngine.validate(rule.expression, fieldValue, currentFormValues);\n if (result !== true) {\n return false;\n }\n }\n return true;\n },\n customMessage\n ];\n }\n if (finalRequired && !finalDisabled && !finalReadOnly) {\n componentRules.required = [true, component.validationMessage || component.label + \" is required\"];\n }\n if (component.minLength && !finalDisabled && !finalReadOnly) {\n componentRules.minLength = [component.minLength, \"Minimum \" + component.minLength + \" characters allowed\"];\n }\n if (component.maxLength && !finalDisabled && !finalReadOnly) {\n componentRules.maxLength = [component.maxLength, \"Maximum \" + component.maxLength + \" characters allowed\"];\n }\n if (component.type === 'textbox' && component.textboxType && !component.regex &&\n !componentRules.regex && !finalDisabled && !finalReadOnly) {\n if (component.textboxType === 'email') {\n componentRules.regex = [VALIDATION_REGEX['EMAIL'], component.validationMessage || 'Invalid format'];\n }\n else if (component.textboxType === 'url') {\n componentRules.regex = [VALIDATION_REGEX['URL'], component.validationMessage || 'Invalid format'];\n }\n }\n if (component.regex && !finalDisabled && !finalReadOnly) {\n componentRules.regex = [component.regex, component.validationMessage || 'Invalid format'];\n }\n if (Object.keys(componentRules).length > 0) {\n rules[component.id] = componentRules;\n }\n if (component.children) {\n collectRules(component.children, isVisible && !isHidden);\n }\n if (component.tableCells) {\n component.tableCells.forEach(function (row) { return row.forEach(function (cell) { return collectRules(cell, isVisible && !isHidden); }); });\n }\n if (component.tabItems) {\n component.tabItems.forEach(function (tab) {\n if (tab.content) {\n collectRules(tab.content, isVisible && !isHidden);\n }\n });\n }\n });\n };\n collectRules(this.processedSchemaCache.components);\n // Preserve previously-entered values across a re-render.\n var previousValues = this.formState ? __assign({}, this.formState.values) : __assign({}, this.initialValuesCache);\n this.formState = {\n values: Object.assign(Object.create(null), this.initialValuesCache, previousValues),\n errors: this.enablePersistence ? this.formState.errors : Object.create(null)\n };\n // Restore any previously-entered values that the merge above pruned.\n if (previousValues) {\n Object.keys(previousValues).forEach(function (id) {\n if (!(id in _this.formState.values)) {\n _this.formState.values[id] = previousValues[id];\n }\n });\n }\n // (Re)create the EJ2 native FormValidator bound to the host element.\n if (this.validator) {\n try {\n this.validator.refresh();\n this.validator.destroy();\n }\n catch (e) { /* swallow */ }\n this.validator = null;\n }\n var self = this;\n this.validator = new FormValidator(this.element, {\n rules: rules,\n locale: this.locale,\n ignore: 'e-hidden',\n errorClass: 'e-error',\n validClass: 'e-valid',\n errorElement: 'div',\n errorContainer: 'div',\n customPlacement: function (inputElement, errorElement) {\n // Locate the per-field error-message slot rendered in\n // `renderField` by its id (`error-<component.id>`). The\n // input's `name` attribute matches `component.id`\n // (set in renderField), so `getElementById('error-' + name)`\n // resolves the slot and the validator's error element is\n // appended into it (FormValidator sets\n // `errorElement.style.display = 'block'` before invoking\n // customPlacement, which makes the slot visible).\n var name = inputElement.getAttribute('name');\n if (!name) {\n if (inputElement.parentElement) {\n inputElement.parentElement.appendChild(errorElement);\n }\n return;\n }\n var slot = document.getElementById(\"error-\" + name);\n if (slot) {\n while (slot.firstChild) {\n slot.removeChild(slot.firstChild);\n }\n slot.appendChild(errorElement);\n slot.style.display = 'block';\n }\n else if (inputElement.parentElement) {\n inputElement.parentElement.appendChild(errorElement);\n }\n },\n validationComplete: function (args) {\n // Mirror the validator's error state into formState.errors so\n // submit-time isValid and renderField's initial-paint logic\n // (which read formState.errors[id]) continue to work.\n self.syncFormStateErrors();\n // Keep the per-field error slot's visibility in sync with\n // the validator's outcome. On `success`, the FormValidator's\n // `hideMessage` sets its own error element's `display: none`,\n // but our slot (`error-<id>`) would otherwise keep the stale\n // error element appended. Clear + hide the slot on success.\n if (args && args.inputName) {\n var slot = document.getElementById(\"error-\" + args.inputName);\n if (slot) {\n if (args.status === 'success') {\n while (slot.firstChild) {\n slot.removeChild(slot.firstChild);\n }\n slot.style.display = 'none';\n }\n else if (args.status === 'failure') {\n slot.style.display = 'block';\n }\n }\n }\n },\n submit: function (event) {\n if (!self.validator) {\n return;\n }\n var isValid = self.validator.validate();\n if (!isValid) {\n if (event && typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n return;\n }\n self.handleSubmitData(__assign({}, self.formState.values));\n if (event && typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n },\n reset: function () {\n }\n });\n // Apply cached previous values to the FormValidator's input elements.\n // The validator reads live values from inputs at validate() time, but\n // initial values seeded here ensure any pre-populated values are\n // respected even if a field is never focused before submit.\n if (previousValues) {\n Object.keys(previousValues).forEach(function (id) {\n var inputEl = _this.validator.getInputElement(id);\n if (inputEl && previousValues[id] !== undefined && previousValues[id] !== null) {\n try {\n inputEl.value = String(previousValues[id]);\n }\n catch (e) { /* swallow */ }\n }\n });\n }\n };\n /**\n * @private\n *\n * Mirror the FormValidator's `errorRules` array into `this.formState.errors`\n * keyed by field `name` (= `component.id`). Called after every\n * `validationComplete` callback and from submit-time `isValid` reads.\n */\n FormRenderer.prototype.syncFormStateErrors = function () {\n var errors = {};\n if (this.validator) {\n var errorRules = this.validator.errorRules || [];\n for (var _i = 0, errorRules_1 = errorRules; _i < errorRules_1.length; _i++) {\n var rule = errorRules_1[_i];\n if (rule && rule.name) {\n errors[rule.name] = rule.message;\n }\n }\n }\n this.formState.errors = errors;\n };\n /**\n * @private\n */\n FormRenderer.prototype.buildInitialValues = function () {\n var _this = this;\n var values = {};\n var allComponents = this.collectAllComponents(this.processedSchemaCache.components);\n var componentIds = new Set();\n allComponents.forEach(function (comp) {\n if (comp.type === 'staticHtml') {\n componentIds.add(comp.id);\n return;\n }\n if (comp.type === 'dataGrid') {\n values[comp.id] = Array.isArray(comp.dataSource)\n ? comp.dataSource\n : [];\n }\n if (comp.defaultValue !== undefined) {\n values[comp.id] = comp.defaultValue;\n }\n else {\n switch (comp.type) {\n case 'checkbox':\n case 'switch':\n values[comp.id] = false;\n break;\n default:\n break;\n }\n }\n componentIds.add(comp.id);\n });\n if (this.formState) {\n Object.keys(this.formState.values)\n .filter(function (key) { return !componentIds.has(key); })\n .forEach(function (key) {\n delete (_this.formState).values[key];\n });\n }\n return values;\n };\n // ----------------------------------------------------------------------\n // Expression engine init (used by G9)\n // ----------------------------------------------------------------------\n /**\n * Initialize the expression engine dependency graph + computed-field set.\n * @private\n */\n FormRenderer.prototype.initExpressionEngine = function () {\n if (!this.processedSchemaCache.components || this.processedSchemaCache.components.length === 0) {\n return;\n }\n try {\n var engine = this.expressionEngine;\n var allComponents = this.collectAllComponents(this.processedSchemaCache.components);\n var graph = engine.buildDependencyGraph(allComponents);\n var cycles = engine.detectCircularDependencies(graph);\n if (cycles.length > 0) {\n }\n this.expressionDependencyGraph = graph;\n var computedFields_1 = new Set();\n allComponents.forEach(function (comp) {\n if (comp.expressionValue) {\n computedFields_1.add(comp.id);\n }\n });\n this.computedFieldNames = computedFields_1;\n }\n catch (error) {\n if (this.failure) {\n this.trigger('failure', {\n error: error\n });\n }\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.disposeTooltipInstance = function (fieldId) {\n var existingTooltip = this.tooltipRefs[fieldId] || null;\n if (existingTooltip) {\n try {\n existingTooltip.destroy();\n }\n catch (e) {\n this.trigger('failure', {\n error: e\n });\n }\n this.renderedInstances = this.renderedInstances.filter(function (inst) { return inst !== existingTooltip; });\n this.tooltipRefs[fieldId] = null;\n }\n };\n FormRenderer.prototype.renderField = function (component) {\n var _this = this;\n var formState = this.formState;\n var formValues = formState ? formState.values : {};\n if (['panel', 'table', 'tabs', 'card', 'message', 'button', 'splitButton', 'staticHtml'].indexOf(component.type) !== -1) {\n return null;\n }\n var conditionalReadOnly = ConditionalRuleEngine.isFieldReadOnly(component.conditions, formValues);\n var conditionalDisabled = ConditionalRuleEngine.isFieldDisabled(component.conditions, formValues);\n var conditionalRequired = ConditionalRuleEngine.isFieldRequired(component.conditions, formValues);\n var conditionalValue = ConditionalRuleEngine.getConditionalValue(component.conditions, formValues);\n var computedReadOnly = !!component.readOnly || conditionalReadOnly;\n var computedDisabled = !!component.disabled || conditionalDisabled;\n var computedRequired = !!component.required || conditionalRequired;\n var minMaxConstraints = MinMaxRuleEngine.getConstraints(component.minMaxRange, formValues, component.type);\n if (component.type === 'dateTime') {\n var dateConstraints = MinMaxRuleEngine.getConstraints(component.minMaxRange, formValues, 'date');\n var timeConstraints = MinMaxRuleEngine.getConstraints(component.minMaxTimeRange, formValues, 'time');\n minMaxConstraints = {\n minValue: undefined,\n maxValue: undefined,\n minDate: dateConstraints.minDate,\n maxDate: dateConstraints.maxDate,\n minTime: timeConstraints.minTime,\n maxTime: timeConstraints.maxTime\n };\n }\n var labelPos = component.labelPosition || 'top';\n var labelWidth = component.labelWidth || 'auto';\n var showLabel = !component.hideLabel && !!component.label &&\n ['checkbox', 'button', 'staticHtml'].indexOf(component.type) === -1;\n var shouldShowError = !!(formState && formState.errors[component.id]);\n var isRequiredError = shouldShowError && !!(formState && formState.errors[component.id].indexOf('required') !== -1);\n var hasError = shouldShowError && !(isRequiredError && !computedRequired);\n // setValueWhen false→true transition tracking.\n var conditionIsActive = conditionalValue !== undefined;\n var wasConditionActive = this.conditionalValueApplied[component.id] || false;\n if (formState) {\n if (conditionIsActive && !wasConditionActive) {\n formState.values[component.id] = conditionalValue;\n this.conditionalValueApplied[component.id] = true;\n }\n else if (!conditionIsActive && wasConditionActive) {\n this.conditionalValueApplied[component.id] = false;\n }\n }\n var formGroup = createElement('div', {\n className: 'form-group',\n attrs: { 'data-field-id': component.id, 'data-fr-field': component.id }\n });\n var fieldWrapper = createElement('div', {\n className: \"field-wrapper label-\" + labelPos.toLowerCase()\n });\n if (showLabel) {\n var labelEl = createElement('label', {\n className: 'field-label'\n });\n if (inputTargetTypes.indexOf(component.type) !== -1 || component.type === 'textarea') {\n labelEl.setAttribute('for', !isNullOrUndefined(this.element.id) ? this.element.id + '-' + component.name : component.name);\n }\n labelEl.style.width = labelPos.toLowerCase() === 'left' ? labelWidth + \"%\" : 'auto';\n var span = createElement('span');\n span.textContent = component.label;\n labelEl.appendChild(span);\n if (computedRequired) {\n var asterisk = createElement('span', { className: 'required-asterisk' });\n asterisk.textContent = '*';\n labelEl.appendChild(asterisk);\n }\n this.disposeTooltipInstance(component.id);\n if (component.tooltip) {\n var tooltipHost = createElement('span', {\n className: 'e-msg-icon e-icons e-circle-info tooltip-icon',\n attrs: {\n 'aria-label': component.tooltip,\n title: component.tooltip,\n tabindex: '0',\n role: 'button',\n 'aria-haspopup': 'true'\n }\n });\n tooltipHost.style.cursor = 'pointer';\n tooltipHost.style.display = 'flex';\n tooltipHost.style.alignItems = 'center';\n tooltipHost.style.justifyContent = 'center';\n tooltipHost.style.flexShrink = '0';\n labelEl.appendChild(tooltipHost);\n var tooltip = new Tooltip({ content: component.tooltip, enableRtl: this.enableRtl });\n tooltip.appendTo(tooltipHost);\n this.tooltipRefs[component.id] = tooltip;\n this.renderedInstances.push(tooltip);\n }\n fieldWrapper.appendChild(labelEl);\n }\n var fieldInput = createElement('div', {\n className: 'field-input',\n });\n var isIndexedRef = (component.type === 'radio' || component.type === 'checkboxGroup') && Array.isArray(component.options);\n var setInputRef = isIndexedRef\n ? function (el, idx) {\n if (el && typeof idx === 'number') {\n _this.inputRefs[component.name + \"_\" + idx] = el;\n }\n }\n : function (el) {\n if (el) {\n _this.inputRefs[component.name] = el;\n }\n };\n var mergedComponent = __assign({}, component, { readOnly: computedReadOnly, disabled: computedDisabled, required: computedRequired }, (minMaxConstraints.minValue !== undefined && { minValue: minMaxConstraints.minValue }), (minMaxConstraints.maxValue !== undefined && { maxValue: minMaxConstraints.maxValue }), (minMaxConstraints.minDate !== undefined && { minDate: minMaxConstraints.minDate }), (minMaxConstraints.maxDate !== undefined && { maxDate: minMaxConstraints.maxDate }), (minMaxConstraints.minTime !== undefined && { minTime: minMaxConstraints.minTime }), (minMaxConstraints.maxTime !== undefined && { maxTime: minMaxConstraints.maxTime }));\n var onChangeHandler = function (value) {\n if (component.type !== 'staticHtml') {\n if (component.type === 'signature') {\n var ref = _this.inputRefs[value];\n value = ref.getSignature();\n }\n if (component.type === 'imageEditor') {\n var ref = _this.inputRefs[value];\n var imageData = ref.getImageData();\n var canvas = document.createElement('canvas');\n canvas.width = imageData.width;\n canvas.height = imageData.height;\n var context = canvas.getContext('2d');\n if (context) {\n context.putImageData(imageData, 0, 0);\n }\n value = canvas.toDataURL();\n }\n if (component.type === 'radio' || component.type === 'checkboxGroup') {\n var inputElement = _this.validator.getInputElement(component.id);\n inputElement.value = value;\n }\n value = formatDateValues(component, value);\n if (_this.formState && formState) {\n _this.formState.values[component.id] = value;\n formState.values[component.id] = value;\n }\n _this.trigger('change', { fieldName: component.name, label: component.label || component.id, value: value });\n _this.afterValueChange(component.id);\n }\n };\n var targetTag = inputTargetTypes.indexOf(component.type) !== -1\n ? 'input' : component.type === 'textarea' ? 'textarea' : 'div';\n var target = createElement(targetTag, {\n attrs: { 'aria-label': component.label + \" \" + component.type }\n });\n if (component.type === 'radio' || component.type === 'checkboxGroup') {\n var inputEl = createElement('input');\n inputEl.id = !isNullOrUndefined(this.element.id) ? this.element.id + '-' + component.name : component.name;\n inputEl.setAttribute('name', component.id);\n inputEl.style.display = 'none';\n inputEl.setAttribute('aria-hidden', 'true');\n target.appendChild(inputEl);\n }\n else {\n target.id = !isNullOrUndefined(this.element.id) ? this.element.id + '-' + component.name : component.name;\n target.setAttribute('name', component.id);\n }\n fieldInput.appendChild(target);\n var instance = renderFormField({\n component: mergedComponent,\n value: formState ? formState.values[component.id] : undefined,\n onChange: onChangeHandler,\n formState: formState,\n settings: this.processedSchemaCache.settings,\n onBlur: function () {\n if (formState && component.type !== 'staticHtml') {\n if (_this.validator) {\n try {\n _this.beforeValidate(component.id);\n _this.validator.validate(component.id);\n }\n catch (e) { /* swallow */ }\n _this.syncFormStateErrors();\n }\n }\n },\n ref: setInputRef,\n hasError: hasError,\n locale: this.locale,\n components: this.collectAllComponents(this.processedSchemaCache.components),\n enableRtl: this.enableRtl,\n target: target,\n l10n: this.l10n\n });\n if (Array.isArray(instance)) {\n instance.forEach(function (entry) {\n if (entry && typeof entry.destroy === 'function') {\n _this.renderedInstances.push(entry);\n }\n else if (entry instanceof HTMLElement) {\n for (var _i = 0, _a = Object.keys(_this.inputRefs); _i < _a.length; _i++) {\n var key = _a[_i];\n var inst = _this.inputRefs[key];\n var hostEl = inst && (inst.element || inst.target || (inst.hostElement && inst.hostElement()));\n if (hostEl && (hostEl === entry || entry.contains(hostEl))) {\n _this.renderedInstances.push(inst);\n }\n }\n }\n });\n }\n else if (instance) {\n if (typeof instance.destroy === 'function') {\n this.renderedInstances.push(instance);\n }\n else if (instance instanceof HTMLElement) {\n for (var _i = 0, _a = Object.keys(this.inputRefs); _i < _a.length; _i++) {\n var key = _a[_i];\n var inst = this.inputRefs[key];\n var hostEl = inst && (inst.element || inst.target || (inst.hostElement && inst.hostElement()));\n if (hostEl && (hostEl === instance || instance.contains(hostEl))) {\n this.renderedInstances.push(inst);\n }\n }\n }\n }\n var errorSlot = createElement('div', {\n id: 'error-' + (component.id || component.name || component.label),\n className: 'e-error-message',\n attrs: { role: 'alert', 'aria-live': 'assertive' }\n });\n errorSlot.style.display = 'none';\n if (hasError && formState && formState.errors[component.id]) {\n errorSlot.textContent = formState.errors[component.id];\n errorSlot.classList.add('e-error');\n errorSlot.style.display = 'block';\n }\n fieldInput.appendChild(errorSlot);\n fieldWrapper.appendChild(fieldInput);\n formGroup.appendChild(fieldWrapper);\n if (component.description) {\n var desc = createElement('div', {\n className: 'field-description',\n attrs: { 'aria-describedby': \"description-\" + component.label }\n });\n desc.textContent = component.description;\n formGroup.appendChild(desc);\n }\n return formGroup;\n };\n /**\n * @private\n */\n FormRenderer.prototype.renderComponent = function (component) {\n var _this = this;\n var formState = this.formState;\n var formValues = formState ? formState.values : {};\n var isVisible = component.visible === false\n ? false\n : ConditionalRuleEngine.isFieldVisible(component.conditions, formValues);\n var isHidden = ConditionalRuleEngine.isFieldHidden(component.conditions, formValues);\n if (!isVisible || isHidden) {\n if (formState && formState.values[component.id] !== undefined && formState.values[component.id] !== null) {\n formState.values[component.id] = null;\n }\n return null;\n }\n // Re-attach preserved subtree for expensive / remote-data components\n // (dataGrid / dropdown / multiselect / checkboxGroup / lookup). The\n // subtree was detached in `rerenderForm` before the rest of the tree\n // was destroyed; re-attaching it here avoids a re-fetch of remote\n // data sources and prevents the visible blink of a fresh render.\n if (FormRenderer_1.PRESERVABLE_TYPES.has(component.type) && this.preservedFields.has(component.id)) {\n var preservedNode = this.preservedFields.get(component.id);\n if (preservedNode) {\n this.preservedFields.delete(component.id);\n return preservedNode;\n }\n }\n switch (component.type) {\n case 'panel': {\n var fieldset = createElement('fieldset', {\n className: \"form-panel-renderer \" + (component.cssClass || '')\n });\n fieldset.style.minInlineSize = 'unset';\n if (component.label && !component.hideLabel) {\n var legend = createElement('legend', {\n className: !component.hideBorders ? 'panel-legend' : ''\n });\n legend.textContent = component.label;\n fieldset.appendChild(legend);\n }\n var content_1 = createElement('div', { className: 'panel-content' });\n (component.children || []).forEach(function (child) {\n var rendered = _this.renderComponent(child);\n if (rendered) {\n content_1.appendChild(rendered);\n }\n });\n fieldset.appendChild(content_1);\n return fieldset;\n }\n case 'table': {\n var tableRows = component.rows || (component.tableCells ? component.tableCells.length : 2);\n var tableCols = component.columns || (component.tableCells && component.tableCells[0] ? component.tableCells[0].length : 2);\n var defaultColSpan = Math.floor(12 / tableCols);\n var columnWidthsProp = component.columnWidths;\n var splittedWidths = columnWidthsProp ? splitWidths(columnWidthsProp.widths) : [];\n var tableDiv = createElement('div', {\n className: \"form-table-renderer \" + (component.hideBorders ? '' : 'table-border') + \" \" + (component.cssClass || ''),\n attrs: { role: 'group', 'aria-label': component.label || 'Table Layout' }\n });\n for (var rowIndex = 0; rowIndex < tableRows; rowIndex++) {\n var rowDiv = createElement('div', { className: 'e-form-table-row' });\n if (component.hideBorders) {\n rowDiv.style.display = 'flex';\n rowDiv.style.gap = '1.5rem';\n }\n var _loop_1 = function (colIndex) {\n var cellComponents = (component.tableCells && component.tableCells[rowIndex] &&\n component.tableCells[rowIndex][colIndex]) || [];\n var cellSpan = defaultColSpan;\n var colWidthValue = splittedWidths[colIndex];\n var isSingleColumn = tableCols === 1;\n var cellStyle = isSingleColumn ? { width: '100%' } : (colWidthValue ? { width: colWidthValue + \"%\" } : {});\n var allNullWidths = !columnWidthsProp || (Array.isArray(columnWidthsProp.widths) && columnWidthsProp.widths.every(function (w) { return w === null; }));\n var isFirstRow = rowIndex === 0;\n var cellDiv = createElement('div', {\n className: \"e-form-table-cell \" + (colWidthValue ? '' : allNullWidths ? \"col-\" + cellSpan : '')\n });\n if (component.hideBorders) {\n Object.assign(cellDiv.style, cellStyle, { padding: isFirstRow ? '0' : '12px 0 0 0' });\n }\n else {\n Object.assign(cellDiv.style, cellStyle);\n }\n cellComponents.forEach(function (comp) {\n var rendered = _this.renderComponent(comp);\n if (rendered) {\n cellDiv.appendChild(rendered);\n }\n });\n rowDiv.appendChild(cellDiv);\n };\n for (var colIndex = 0; colIndex < tableCols; colIndex++) {\n _loop_1(colIndex);\n }\n tableDiv.appendChild(rowDiv);\n }\n return tableDiv;\n }\n case 'tabs': {\n var tabsDiv = createElement('div', {\n className: \"form-tabs-renderer \" + (component.cssClass || '')\n });\n var tabHost = createElement('div', {\n className: 'e-tab'\n });\n tabHost.id = component.id;\n var tabHeader_1 = createElement('div', {\n className: 'e-tab-header'\n });\n var tabContent_1 = createElement('div', {\n className: 'e-content'\n });\n tabHost.appendChild(tabHeader_1);\n tabHost.appendChild(tabContent_1);\n tabsDiv.appendChild(tabHost);\n // Build the tab's host DOM up front so each `.e-content > .e-item`\n // wrapper exists during initialization. Using the JSON `items`\n // path causes EJ2 to lazily materialize only the active content\n // panel, which leaves the remaining rendered tab bodies missing\n // from the live DOM. By seeding the HTML markup structure and\n // inserting the already-rendered live child nodes into every\n // content item, the bound EJ2 instances stay attached and all\n // tabs render correctly.\n (component.tabItems || []).forEach(function (tab) {\n var headerItem = createElement('div');\n headerItem.textContent = tab.header;\n tabHeader_1.appendChild(headerItem);\n var contentItem = createElement('div');\n var contentDiv = createElement('div', { className: 'tab-content-renderer' });\n (tab.content || []).forEach(function (comp) {\n var rendered = _this.renderComponent(comp);\n if (rendered) {\n contentDiv.appendChild(rendered);\n }\n });\n contentItem.appendChild(contentDiv);\n tabContent_1.appendChild(contentItem);\n });\n var tab = new Tab({\n enableRtl: this.enableRtl,\n cssClass: component.cssClass,\n enablePersistence: true,\n animation: { previous: { effect: 'None' }, next: { effect: 'None' } },\n selected: function (args) {\n if (typeof window === 'undefined')\n return null;\n try {\n window.localStorage.setItem('tab' + component.id, JSON.stringify({\n selectedItem: args.selectedIndex\n }));\n }\n catch (_a) {\n }\n }\n });\n tab.appendTo(tabHost);\n this.renderedInstances.push(tab);\n return tabsDiv;\n }\n case 'card': {\n var fieldset = createElement('fieldset', {\n className: \"e-card form-card-renderer \" + (component.cssClass || '')\n });\n fieldset.style.minInlineSize = 'unset';\n fieldset.style.padding = '0';\n var header = createElement('div', { className: 'e-card-header' });\n var caption = createElement('div', { className: 'e-card-header-caption' });\n var title = createElement('div', { className: 'e-card-title' });\n title.textContent = component.cardTitle || component.label || 'Card Title';\n caption.appendChild(title);\n if (component.cardSubtitle) {\n var sub = createElement('div', { className: 'e-card-sub-title' });\n sub.textContent = component.cardSubtitle;\n caption.appendChild(sub);\n }\n header.appendChild(caption);\n fieldset.appendChild(header);\n var content_2 = createElement('div', { className: 'e-card-content card-content' });\n (component.children || []).forEach(function (child) {\n var rendered = _this.renderComponent(child);\n if (rendered) {\n content_2.appendChild(rendered);\n }\n });\n fieldset.appendChild(content_2);\n return fieldset;\n }\n case 'staticHtml': {\n var renderer = new StaticHtmlRenderer({\n content: component.defaultValue || '<p>HTML content</p>',\n id: component.id,\n enableHtmlSanitizer: component.enableHtmlSanitizer\n });\n var el = renderer.render();\n this.renderedInstances.push(renderer);\n return el;\n }\n case 'message': {\n var wrapper = createElement('div', { className: 'form-group' });\n var target = createElement('div');\n target.id = component.name;\n target.setAttribute('name', component.id);\n wrapper.appendChild(target);\n var instance = renderFormField({\n component: component,\n locale: this.locale,\n value: undefined,\n onChange: function () { },\n enableRtl: this.enableRtl,\n target: target,\n ref: function (el, idx) {\n if (idx !== undefined) {\n _this.inputRefs[component.name + \"_\" + idx] = el;\n }\n else {\n _this.inputRefs[component.name] = el;\n }\n },\n });\n if (Array.isArray(instance)) {\n instance.forEach(function (entry) {\n if (entry) {\n _this.renderedInstances.push(entry);\n }\n });\n }\n else if (instance) {\n this.renderedInstances.push(instance);\n }\n return wrapper;\n }\n case 'button': {\n var buttonlDisabled = ConditionalRuleEngine.isFieldDisabled(component.conditions, formValues);\n var buttonComputed = !!component.disabled || buttonlDisabled;\n var wrapper = createElement('div', { className: 'form-group' });\n var target = createElement('div');\n target.id = component.name;\n target.setAttribute('name', component.id);\n wrapper.appendChild(target);\n var handleButtonClick = function (event) {\n if (_this.buttonClick) {\n var label = component.buttonsGroups\n ? (event.target && event.target.ej2_instances ? event.target.ej2_instances[0].content : '')\n : component.label || '';\n _this.trigger('buttonClick', { fieldName: component.name, label: label, event: event });\n }\n var button = event.target;\n if (button.type && button.type === 'reset') {\n var form = button.closest('form');\n if (form) {\n form.querySelectorAll('input[type=\"checkbox\"]').forEach(function (cb) {\n (cb.ej2_instances[0]).checked = false;\n });\n }\n _this.formState.values = {};\n form.reset();\n _this.rerenderForm();\n _this.validator.destroy();\n }\n };\n var instance = renderFormField({\n component: __assign({}, component, { disabled: buttonComputed }),\n value: undefined,\n onChange: function () { },\n locale: this.locale,\n onClick: handleButtonClick,\n ref: function (el, idx) {\n if (idx !== undefined) {\n _this.inputRefs[component.name + \"_\" + idx] = el;\n }\n else {\n _this.inputRefs[component.name] = el;\n }\n },\n enableRtl: this.enableRtl,\n target: target\n });\n if (Array.isArray(instance)) {\n instance.forEach(function (entry) {\n if (entry) {\n _this.renderedInstances.push(entry);\n }\n });\n }\n else if (instance) {\n this.renderedInstances.push(instance);\n }\n return wrapper;\n }\n case 'splitButton': {\n var splitButtonDisabled = ConditionalRuleEngine.isFieldDisabled(component.conditions, formValues);\n var computedDisabled = !!component.disabled || splitButtonDisabled;\n var wrapper = createElement('div', { className: 'form-group' });\n var target = createElement('div');\n target.id = component.name;\n target.setAttribute('name', component.id);\n wrapper.appendChild(target);\n var handleSplitButtonEvent = function (event) {\n if (_this.buttonClick) {\n _this.trigger('buttonClick', { fieldName: component.name, label: component.label || '', event: event });\n }\n };\n var instance = renderFormField({\n component: __assign({}, component, { disabled: computedDisabled }),\n value: undefined,\n locale: this.locale,\n onChange: function () { },\n onClick: handleSplitButtonEvent,\n ref: function (el) { if (el) {\n _this.inputRefs[component.name] = el;\n } },\n enableRtl: this.enableRtl,\n target: target\n });\n if (Array.isArray(instance)) {\n instance.forEach(function (entry) {\n if (entry) {\n _this.renderedInstances.push(entry);\n }\n });\n }\n else if (instance) {\n this.renderedInstances.push(instance);\n }\n return wrapper;\n }\n default:\n return this.renderField(component);\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.afterValueChange = function (changedFieldId) {\n if (!this.formState) {\n return;\n }\n this.currentFormValues = __assign({}, this.formState.values);\n this.evaluateExpressions();\n this.retriggerCustomValidation();\n this.beforeValidate(changedFieldId);\n this.validator.validate(changedFieldId);\n this.syncFormStateErrors();\n // Only schedule a full-form re-render when the changed field is a\n // conditional trigger (i.e. some other field's visibility/disabled/\n // required/readOnly/valueWhen references its id). Changes to fields\n // that nothing depends on skip the expensive DOM teardown + rebuild,\n // keeping keystroke latency low for non-conditional inputs.\n if (changedFieldId && this.isConditionalTrigger(changedFieldId)) {\n this.scheduleRerender(changedFieldId);\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.beforeValidate = function (fieldId) {\n var infoElement = this.element.querySelector(\"#\" + fieldId + \"-info\");\n if (infoElement && infoElement.classList.contains('e-error')) {\n infoElement.classList.remove('e-error');\n }\n var inputElement = this.getInputElementByName(fieldId);\n var inputParent = inputElement.parentElement;\n var grandParent = inputParent.parentElement;\n if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper') ||\n (inputElement.classList.contains('e-input') && inputParent.classList.contains('e-input-group'))) {\n inputParent.classList.remove('e-error');\n }\n else if ((grandParent != null) && (grandParent.classList.contains('e-control-wrapper') || grandParent.classList.contains('e-wrapper'))) {\n grandParent.classList.remove('e-error');\n }\n else {\n inputElement.classList.remove('e-error');\n }\n if (this.validator) {\n this.validator.errorRules = [];\n }\n };\n FormRenderer.prototype.scheduleRerender = function (changedFieldId) {\n var _this = this;\n if (changedFieldId) {\n this.pendingChangedFieldIds.add(changedFieldId);\n }\n if (this.rerenderScheduled) {\n return;\n }\n this.rerenderScheduled = true;\n Promise.resolve().then(function () {\n _this.rerenderScheduled = false;\n var changedIds = new Set(_this.pendingChangedFieldIds);\n _this.pendingChangedFieldIds.clear();\n _this.rerenderForm(changedIds);\n });\n };\n /**\n * @private\n *\n * Recursively walk a `ConditionType` (a `ConditionalRule { field }` leaf\n * or a `CompositeConditionalRule { rules: [...] }` tree) and collect the\n * `field` ids of every leaf rule into the supplied `acc` set. These are\n * the trigger ids whose value changes can affect the visibility/disabled/\n * required/readOnly/valueWhen of the component that owns this `conditions`.\n */\n FormRenderer.prototype.collectConditionFieldIds = function (condition, acc) {\n if (!condition) {\n return;\n }\n if (typeof condition.field === 'string') {\n // Leaf rule.\n acc.add(condition.field);\n }\n else if (Array.isArray(condition.rules)) {\n // Composite (and/or) — recurse.\n for (var _i = 0, _a = condition.rules; _i < _a.length; _i++) {\n var sub = _a[_i];\n this.collectConditionFieldIds(sub, acc);\n }\n }\n };\n FormRenderer.prototype.collectDataSourceReferenceIds = function (value, allComps, target) {\n if (typeof value !== 'string') {\n return;\n }\n var matches = value.match(/\\{([^}]+)\\}/g);\n if (!matches) {\n return;\n }\n var _loop_2 = function (match) {\n var componentName = match.slice(1, -1);\n var referencedComp = allComps.find(function (c) { return c.name === componentName; });\n if (referencedComp && referencedComp.id) {\n target.add(referencedComp.id);\n }\n };\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n _loop_2(match);\n }\n };\n /**\n * @private\n *\n * Build `this.conditionalTriggerFieldIds` — the set of every\n * `component.id` that is referenced by *any* other component's\n * `conditions` (visibleWhen / hideWhen / disabledWhen / requiredWhen /\n * readOnlyWhen / setValueWhen / choiceBasedField.primaryFieldId).\n * Only changes to ids in this set can affect another field's\n * visibility/enabled/required/value, so only they need to trigger a\n * full-form re-render. Called once per schema during `render()`.\n */\n FormRenderer.prototype.buildConditionalDependencyMap = function () {\n var triggers = new Set();\n // Per-consumer dependency set (rebuilt each pass).\n var consumerDeps = new Map();\n var allComps = this.collectAllComponents(this.processedSchemaCache.components);\n for (var _i = 0, allComps_1 = allComps; _i < allComps_1.length; _i++) {\n var comp = allComps_1[_i];\n var myDeps = new Set();\n consumerDeps.set(comp.id, myDeps);\n var conditions = comp.conditions;\n if (conditions) {\n var conditionKeys = [\n 'visibleWhen',\n 'hideWhen',\n 'disabledWhen',\n 'requiredWhen',\n 'readOnlyWhen',\n 'choiceBasedField',\n 'conditionalData'\n ];\n for (var _a = 0, conditionKeys_1 = conditionKeys; _a < conditionKeys_1.length; _a++) {\n var key = conditionKeys_1[_a];\n if (conditions[key]) {\n this.collectConditionFieldIds(conditions[key], triggers);\n this.collectConditionFieldIds(conditions[key], myDeps);\n }\n }\n if (Array.isArray(conditions.conditionalData)) {\n for (var _b = 0, _c = conditions.conditionalData; _b < _c.length; _b++) {\n var item = _c[_b];\n if (item && item.condition) {\n this.collectConditionFieldIds(item.condition, triggers);\n this.collectConditionFieldIds(item.condition, myDeps);\n }\n // DataGrid conditional columns\n if (item && Array.isArray(item.conditions)) {\n for (var _d = 0, _e = item.conditions; _d < _e.length; _d++) {\n var subCond = _e[_d];\n this.collectConditionFieldIds(subCond, triggers);\n this.collectConditionFieldIds(subCond, myDeps);\n }\n }\n }\n }\n if (conditions.setValueWhen &&\n conditions.setValueWhen.condition) {\n this.collectConditionFieldIds(conditions.setValueWhen.condition, triggers);\n this.collectConditionFieldIds(conditions.setValueWhen.condition, myDeps);\n }\n if (conditions.choiceBasedField &&\n typeof conditions.choiceBasedField.primaryFieldId === 'string') {\n triggers.add(conditions.choiceBasedField.primaryFieldId);\n myDeps.add(conditions.choiceBasedField.primaryFieldId);\n }\n }\n // ==========================================================\n // DataGrid remote datasource dependencies\n // Example:\n // search.key = \"{combobox}\"\n // filter.value = \"{department}\"\n // Resolve component by NAME and add its ID as dependency.\n // ==========================================================\n var ds = comp.dataSource;\n if ((comp.type === 'dataGrid') &&\n ds &&\n ds.type === 'url') {\n if (ds.search && typeof ds.search.key === 'string') {\n this.collectDataSourceReferenceIds(ds.search.key, allComps, triggers);\n this.collectDataSourceReferenceIds(ds.search.key, allComps, myDeps);\n }\n if (Array.isArray(ds.filters)) {\n for (var _f = 0, _g = ds.filters; _f < _g.length; _f++) {\n var filter = _g[_f];\n if (typeof filter.value === 'string') {\n this.collectDataSourceReferenceIds(filter.value, allComps, triggers);\n this.collectDataSourceReferenceIds(filter.value, allComps, myDeps);\n }\n }\n }\n }\n }\n this.conditionalTriggerFieldIds = triggers;\n this.consumerDependencyMap = consumerDeps;\n };\n /**\n * @private\n *\n * Returns `true` if a value change to `fieldId` can affect any other\n * field's conditional state (visibility/disabled/required/readOnly/\n * valueWhen/choiceBasedField) — i.e. `fieldId` is in the\n * `conditionalTriggerFieldIds` set built by\n * `buildConditionalDependencyMap`. Used by `afterValueChange` to skip\n * the expensive full-form re-render when the changed field is not a\n * conditional trigger.\n */\n FormRenderer.prototype.isConditionalTrigger = function (fieldId) {\n return this.conditionalTriggerFieldIds.has(fieldId);\n };\n /**\n * @private\n *\n * Tear down the rendered tree and re-render it, preserving user-entered\n * `formState.values` (carried through `buildValidationRulesAndBridge`'s\n * `previousValues` merge) and restoring keyboard focus to the field that\n * had it before re-render (so a user typing in a textbox is not\n * interrupted by a dependent field appearing/disappearing on the page).\n */\n FormRenderer.prototype.rerenderForm = function (changedFieldIds) {\n var _this = this;\n var changedIds = changedFieldIds || new Set();\n var activeEl = document.activeElement;\n var focusedName = activeEl && activeEl.getAttribute\n ? activeEl.getAttribute('name')\n : null;\n var selectionStart = null;\n var selectionEnd = null;\n if (focusedName && activeEl && activeEl.selectionStart !== undefined) {\n try {\n selectionStart = activeEl.selectionStart;\n selectionEnd = activeEl.selectionEnd;\n }\n catch (e) { /* not a text input — ignore */ }\n }\n var savedElementScrollTop = this.element.scrollTop;\n var savedElementScrollLeft = this.element.scrollLeft;\n var savedWindowScrollX = window.scrollX;\n var savedWindowScrollY = window.scrollY;\n this.preservedFields.clear();\n var allComps = this.collectAllComponents(this.processedSchemaCache.components);\n var _loop_3 = function (comp) {\n if (!FormRenderer_1.PRESERVABLE_TYPES.has(comp.type)) {\n return \"continue\";\n }\n var myDeps = this_1.consumerDependencyMap.get(comp.id);\n var dependsOnChanged = false;\n if (myDeps) {\n changedIds.forEach(function (changedId) {\n if (myDeps.has(changedId)) {\n dependsOnChanged = true;\n }\n });\n }\n if (dependsOnChanged) {\n return \"continue\";\n }\n var liveNode = this_1.element.querySelector(\"[data-field-id=\\\"\" + comp.id + \"\\\"]\");\n if (liveNode && liveNode.parentElement) {\n liveNode.parentElement.removeChild(liveNode);\n this_1.preservedFields.set(comp.id, liveNode);\n }\n };\n var this_1 = this;\n for (var _i = 0, allComps_2 = allComps; _i < allComps_2.length; _i++) {\n var comp = allComps_2[_i];\n _loop_3(comp);\n }\n this.refreshing = true;\n this.destroyRenderedExcludingPreserved();\n this.removePreviousRoot();\n if (this.validator) {\n this.validator.destroy();\n }\n this.render();\n this.refreshing = false;\n try {\n this.element.scrollTop = savedElementScrollTop;\n this.element.scrollLeft = savedElementScrollLeft;\n window.scrollTo(savedWindowScrollX, savedWindowScrollY);\n }\n catch (e) { /* swallow */ }\n if (focusedName) {\n var elToFocus = this.getInputElementByName(focusedName);\n if (elToFocus && typeof elToFocus.focus === 'function') {\n try {\n elToFocus.focus();\n if (selectionStart !== null && selectionEnd !== null &&\n typeof elToFocus.setSelectionRange === 'function') {\n try {\n elToFocus.setSelectionRange(selectionStart, selectionEnd);\n }\n catch (e) { /* swallow — non-text input */ }\n }\n }\n catch (e) { /* swallow */ }\n }\n }\n // Drop preserved subtrees that were not re-attached (e.g. their\n // field became hidden during this re-render). Their EJ2 instances\n // are still in `renderedInstances`; destroy them now to avoid leaks.\n if (this.preservedFields.size > 0) {\n var stillKept_1 = [];\n this.preservedFields.forEach(function (node, id) {\n // If the node is no longer in the live document tree, the\n // field was not re-attached (hidden / removed). Destroy it\n // and remove the detached DOM node so it cannot be re-used.\n if (!_this.element.contains(node) && !document.body.contains(node)) {\n _this.destroyPreservedSubtree(node);\n try {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n catch (e) {\n // swallow\n }\n _this.preservedFields.delete(id);\n }\n else {\n stillKept_1.push(id);\n }\n });\n stillKept_1.forEach(function (id) { return _this.preservedFields.delete(id); });\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.removePreviousRoot = function () {\n if (this.element) {\n while (this.element.childNodes.length > 0) {\n this.element.removeChild(this.element.firstChild);\n }\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.destroyRenderedInstance = function (inst) {\n if (!inst || typeof inst.destroy !== 'function') {\n return;\n }\n var state = inst;\n if (state.isDestroyed || state.destroyed || state.disposed) {\n return;\n }\n var hostElement = inst.element || inst.target || (inst.hostElement && typeof inst.hostElement === 'function' ? inst.hostElement() : undefined);\n try {\n state.isDestroyed = true;\n state.destroyed = true;\n state.disposed = true;\n inst.destroy();\n }\n catch (e) {\n console.warn('FormRenderer: failed to destroy child instance.', e);\n }\n finally {\n if (hostElement && hostElement.parentNode) {\n try {\n hostElement.parentNode.removeChild(hostElement);\n }\n catch (e) {\n }\n }\n }\n };\n /**\n * @private\n *\n * Destroy all rendered EJ2 instances except those whose host element\n * lives inside a preserved subtree (those are kept alive for re-use in\n * the upcoming `render()` pass). Mirrors `destroyRendered` but skips\n * instances rooted in `preservedFields` nodes.\n */\n FormRenderer.prototype.destroyRenderedExcludingPreserved = function () {\n var survived = [];\n var preservedNodes = Array.from(this.preservedFields.values());\n var _loop_4 = function (inst) {\n var hostEl = inst && (inst.element || inst.target || (inst.hostElement && inst.hostElement()));\n var isPreserved = !!hostEl && preservedNodes.some(function (n) { return n === hostEl || n.contains(hostEl); });\n if (isPreserved) {\n survived.push(inst);\n }\n else {\n this_2.destroyRenderedInstance(inst);\n }\n };\n var this_2 = this;\n for (var _i = 0, _a = this.renderedInstances; _i < _a.length; _i++) {\n var inst = _a[_i];\n _loop_4(inst);\n }\n this.renderedInstances = survived;\n // Prune inputRefs whose host element lives in a destroyed subtree\n // (preserved ones stay).\n var inputRefKeys = Object.keys(this.inputRefs);\n var _loop_5 = function (key) {\n var inst = this_3.inputRefs[key];\n var hostEl = inst && (inst.element || inst.target || (inst.hostElement && inst.hostElement()));\n var isPreserved = !!hostEl && preservedNodes.some(function (n) { return n === hostEl || n.contains(hostEl); });\n if (!isPreserved) {\n delete this_3.inputRefs[key];\n }\n };\n var this_3 = this;\n for (var _b = 0, inputRefKeys_1 = inputRefKeys; _b < inputRefKeys_1.length; _b++) {\n var key = inputRefKeys_1[_b];\n _loop_5(key);\n }\n this.conditionalValueApplied = {};\n this.expressionDependencyGraph = {};\n this.computedFieldNames = new Set();\n this.previousFormValues = {};\n this.conditionalTriggerFieldIds = new Set();\n };\n /**\n * @private\n *\n * Destroy EJ2 instances whose host element lives inside a preserved\n * subtree that was NOT re-attached (field became hidden). Used during\n * the post-render cleanup pass in `rerenderForm`.\n */\n FormRenderer.prototype.destroyPreservedSubtree = function (rootNode) {\n var survived = [];\n for (var _i = 0, _a = this.renderedInstances; _i < _a.length; _i++) {\n var inst = _a[_i];\n var hostEl = inst && (inst.element || inst.target || (inst.hostElement && inst.hostElement()));\n if (hostEl && (hostEl === rootNode || rootNode.contains(hostEl))) {\n this.destroyRenderedInstance(inst);\n }\n else {\n survived.push(inst);\n }\n }\n this.renderedInstances = survived;\n };\n FormRenderer.prototype.getInputElementByName = function (name) {\n var inputEl = this.element.querySelector(\"[name=\\\"\" + name + \"\\\"]\");\n if (!inputEl) {\n return null;\n }\n if (!inputEl.classList.contains('e-control')) {\n var eControl = inputEl.parentElement ? inputEl.parentElement.querySelector('.e-control') : null;\n if (eControl) {\n return eControl;\n }\n }\n return inputEl;\n };\n /**\n * Evaluate expressions in topological order with type coercion.\n * @private\n */\n FormRenderer.prototype.evaluateExpressions = function () {\n if (!this.formState || !this.expressionEngine) {\n return;\n }\n if (this.expressionEvaluationInProgress) {\n return;\n }\n try {\n this.expressionEvaluationInProgress = true;\n var engine = this.expressionEngine;\n var dependencyGraph = this.expressionDependencyGraph;\n var formValues = this.formState.values || {};\n var allComponents = this.collectAllComponents(this.processedSchemaCache.components);\n var previousValues = this.previousFormValues;\n var computedFieldNames = this.computedFieldNames;\n var idToNameMap_1 = {};\n allComponents.forEach(function (comp) {\n if (comp.name) {\n idToNameMap_1[comp.id] = comp.name;\n }\n });\n var contextValues = {};\n var fvKeys = Object.keys(formValues);\n for (var _i = 0, fvKeys_1 = fvKeys; _i < fvKeys_1.length; _i++) {\n var componentId = fvKeys_1[_i];\n var value = formValues[componentId];\n var fieldName = idToNameMap_1[componentId];\n if (fieldName) {\n contextValues[fieldName] = value;\n }\n }\n var previousContextValues = __assign({}, previousValues);\n Object.assign(previousValues, contextValues);\n var changedFields = new Set();\n var ctxKeys = Object.keys(contextValues);\n var _loop_6 = function (fieldName) {\n var fieldId = Object.keys(idToNameMap_1).find(function (id) { return idToNameMap_1[id] === fieldName; });\n if (fieldId && contextValues[fieldName] !== previousContextValues[fieldName] && !computedFieldNames.has(fieldId)) {\n changedFields.add(fieldName);\n }\n };\n for (var _a = 0, ctxKeys_1 = ctxKeys; _a < ctxKeys_1.length; _a++) {\n var fieldName = ctxKeys_1[_a];\n _loop_6(fieldName);\n }\n if (changedFields.size === 0) {\n return;\n }\n var evaluationOrder = engine.getTopologicalOrder(dependencyGraph);\n var _loop_7 = function (fieldName) {\n var component = allComponents.find(function (c) { return c.name === fieldName; });\n if (component && component.expressionValue) {\n computedFieldNames.add(component.id);\n try {\n var isVisible = component.visible !== false\n ? ConditionalRuleEngine.isFieldVisible(component.conditions, formValues)\n : false;\n if (isVisible) {\n var currentValues = {};\n var fvKeys2 = Object.keys(formValues);\n for (var _i = 0, fvKeys2_1 = fvKeys2; _i < fvKeys2_1.length; _i++) {\n var componentId = fvKeys2_1[_i];\n var value = formValues[componentId];\n var fn = idToNameMap_1[componentId];\n if (fn) {\n currentValues[fn] = value;\n }\n }\n var result = engine.evaluate(component.expressionValue, currentValues);\n result = (typeof result === 'string' && result.indexOf('undefined') !== -1)\n ? result.replace(/undefined/g, '')\n : result;\n if (result !== null && result !== undefined && result !== '') {\n switch (component.type) {\n case 'number': {\n var numResult = Number(result);\n result = isNaN(numResult) ? 0 : numResult;\n break;\n }\n case 'checkbox':\n case 'switch':\n result = Boolean(result);\n break;\n case 'textbox':\n case 'textarea':\n result = String(result);\n break;\n case 'dateRange':\n case 'checkboxGroup':\n case 'multiselect':\n break;\n default:\n result = String(result);\n break;\n }\n }\n if (result !== null && result !== undefined && result !== formValues[component.id] && this_4.formState) {\n this_4.formState.values[component.id] = result;\n // Sync the underlying input element so the\n // FormValidator reads the new value on its\n // next validate() pass.\n if (this_4.validator) {\n var inputEl = this_4.getInputElementByName(component.id);\n if (inputEl) {\n try {\n if (inputEl.ej2_instances[0]) {\n inputEl.ej2_instances[0].value = result;\n // (inputEl as any).ej2_instances[0].refresh();\n }\n else {\n (inputEl).value = String(result);\n }\n }\n catch (e) { /* swallow */ }\n }\n }\n }\n }\n }\n catch (error) {\n if (this_4.failure) {\n this_4.trigger('failure', {\n error: error\n });\n }\n }\n }\n };\n var this_4 = this;\n for (var _b = 0, evaluationOrder_1 = evaluationOrder; _b < evaluationOrder_1.length; _b++) {\n var fieldName = evaluationOrder_1[_b];\n _loop_7(fieldName);\n }\n Object.assign(previousValues, contextValues);\n }\n finally {\n this.expressionEvaluationInProgress = false;\n }\n };\n /**\n * Re-trigger custom validation for changed + dependent fields.\n * @private\n */\n FormRenderer.prototype.retriggerCustomValidation = function () {\n var _this = this;\n if (!this.formState) {\n return;\n }\n if (!this.customValidationEngine) {\n return;\n }\n try {\n var allComponents_1 = this.collectAllComponents(this.processedSchemaCache.components);\n var formValues_1 = this.formState.values || {};\n var previousValues_1 = this.previousFormValues;\n var changedFields_1 = new Set();\n Object.keys(formValues_1).forEach(function (fieldId) {\n if (formValues_1[fieldId] !== previousValues_1[fieldId]) {\n changedFields_1.add(fieldId);\n }\n });\n if (changedFields_1.size === 0) {\n return;\n }\n var fieldsToValidate_1 = new Set();\n changedFields_1.forEach(function (fieldId) {\n var component = allComponents_1.find(function (c) { return c.id === fieldId; });\n if (component && component.customValidation && Array.isArray(component.customValidation)) {\n fieldsToValidate_1.add(fieldId);\n }\n });\n allComponents_1.forEach(function (component) {\n if (component.customValidation && Array.isArray(component.customValidation)) {\n component.customValidation.forEach(function (rule) {\n var deps = _this.customValidationEngine.extractDependencies(rule.expression);\n deps.forEach(function (dep) {\n var depComponent = allComponents_1.find(function (c) { return c.id === dep || c.name === dep; });\n if (depComponent && changedFields_1.has(depComponent.id)) {\n fieldsToValidate_1.add(component.id);\n }\n });\n });\n }\n });\n this.previousFormValues = __assign({}, formValues_1);\n }\n catch (error) {\n if (this.failure) {\n this.trigger('failure', {\n error: error\n });\n }\n }\n };\n /**\n * @private\n */\n FormRenderer.prototype.handleSubmitData = function (data) {\n var formState = this.formState;\n var isValid = formState && formState.errors ? Object.keys(formState.errors).length === 0 : false;\n var transformedData = {};\n var formValues = formState ? formState.values : {};\n var excludedTypes = new Set(['button', 'message', 'panel', 'table', 'tabs']);\n var allComps = this.collectAllComponents(this.processedSchemaCache.components || []);\n var excludedIds = new Set(allComps.filter(function (c) { return excludedTypes.has(c.type); }).map(function (c) { return c.id; }));\n var hiddenFieldIds = new Set(allComps.filter(function (c) {\n if (c.visible === false) {\n return true;\n }\n if (c.conditions && c.conditions.visibleWhen) {\n if (!ConditionalRuleEngine.isFieldVisible(c.conditions, formValues)) {\n return true;\n }\n }\n if (c.conditions && c.conditions.hideWhen) {\n if (ConditionalRuleEngine.isFieldHidden(c.conditions, formValues)) {\n return true;\n }\n }\n return false;\n }).map(function (c) { return c.id; }));\n var disabledFieldIds = new Set(allComps.filter(function (c) {\n if (c.disabled) {\n return true;\n }\n if (c.conditions && c.conditions.disabledWhen) {\n return ConditionalRuleEngine.isFieldDisabled(c.conditions, formValues);\n }\n return false;\n }).map(function (c) { return c.id; }));\n var dataKeys = Object.keys(data);\n for (var _i = 0, dataKeys_1 = dataKeys; _i < dataKeys_1.length; _i++) {\n var id = dataKeys_1[_i];\n var val = data[id];\n if (excludedIds.has(id) || hiddenFieldIds.has(id) || disabledFieldIds.has(id)) {\n return;\n }\n var label = this.idToLabelCache[id] || id;\n transformedData[label] = val;\n }\n if (this.submit) {\n this.trigger('submit', { data: transformedData, isValid: isValid });\n }\n };\n /**\n * Retrieves the underlying Syncfusion form-input component instance by its field name. Use this to call Syncfusion component methods and properties.\n */\n FormRenderer.prototype.getComponent = function (name) {\n return this.inputRefs[name] || null;\n };\n /**\n * Re-normalize + re-render on `schema`/`locale`/`enableRtl` change.\n * @private\n */\n FormRenderer.prototype.onPropertyChanged = function (newProps, oldProps) {\n var reRender = false;\n if (newProps.schema !== oldProps.schema) {\n reRender = true;\n }\n if (newProps.locale !== oldProps.locale) {\n reRender = true;\n }\n if (newProps.enableRtl !== oldProps.enableRtl) {\n reRender = true;\n }\n if (newProps.layout !== oldProps.layout) {\n reRender = true;\n }\n if (newProps.locale !== oldProps.locale) {\n reRender = true;\n }\n if (!reRender) {\n return;\n }\n // Tear down rendered children and re-render.\n this.refreshing = true;\n this.destroyRendered();\n this.removePreviousRoot();\n this.isInitialized = false;\n this.render();\n this.refreshing = false;\n };\n /**\n * Destroy all child EJ2 instances, detach listeners, null refs.\n * @private\n */\n FormRenderer.prototype.destroyRendered = function () {\n var _this = this;\n if (this.validator) {\n try {\n this.validator.destroy();\n }\n catch (e) {\n this.trigger('failure', {\n error: e\n });\n }\n this.validator = null;\n }\n this.renderedInstances.forEach(function (inst) {\n _this.destroyRenderedInstance(inst);\n });\n this.renderedInstances = [];\n this.removePreviousRoot();\n this.inputRefs = {};\n this.tooltipRefs = {};\n this.conditionalValueApplied = {};\n this.expressionDependencyGraph = {};\n this.computedFieldNames = new Set();\n this.previousFormValues = {};\n this.conditionalTriggerFieldIds = new Set();\n this.consumerDependencyMap = new Map();\n this.preservedFields = new Map();\n this.pendingChangedFieldIds = new Set();\n };\n /**\n * Remove persisted tab selection state for this form when it is fully destroyed.\n * @private\n */\n FormRenderer.prototype.clearPersistedTabSelections = function () {\n if (typeof window === 'undefined')\n return null;\n try {\n var components = (this.processedSchemaCache && this.processedSchemaCache.components)\n ? this.processedSchemaCache.components\n : [];\n var allComps = this.collectAllComponents(components);\n allComps.forEach(function (component) {\n if (component.type === 'tabs' && component.id) {\n window.localStorage.removeItem('tab' + component.id);\n }\n });\n }\n catch (_a) {\n }\n };\n /**\n * Full component teardown.\n * @private\n */\n FormRenderer.prototype.destroy = function () {\n this.destroyRendered();\n this.formState = { values: {}, errors: {} };\n this.expressionEngine = null;\n this.customValidationEngine = null;\n this.clearEngineCaches();\n this.clearPersistedTabSelections();\n this.consumerDependencyMap = new Map();\n this.preservedFields = new Map();\n this.conditionalTriggerFieldIds = new Set();\n _super.prototype.destroy.call(this);\n };\n /**\n * @private\n */\n FormRenderer.prototype.clearEngineCaches = function () {\n if (this.expressionEngine) {\n try {\n this.expressionEngine.clearCache();\n }\n catch (e) { /* swallow */ }\n }\n if (this.customValidationEngine) {\n var inner = this.customValidationEngine.expressionEngine;\n if (inner && typeof inner.clearCache === 'function') {\n try {\n inner.clearCache();\n }\n catch (e) { /* swallow */ }\n }\n }\n };\n var FormRenderer_1;\n /**\n * Component types eligible for DOM preservation across re-renders.\n * These types either bind remote data (dataGrid, lookup-backed\n * dropdown/multiselect) or render many child options (checkboxGroup)\n * and are noticeably expensive / flicker-prone to rebuild.\n */\n FormRenderer.PRESERVABLE_TYPES = new Set([\n 'textbox', 'textarea', 'number', 'checkbox', 'checkboxGroup', 'radio', 'dropdown', 'multiselect', 'button', 'date', 'dateTime', 'time', 'dateRange', 'switch', 'signature', 'rating', 'imageEditor', 'fileUpload', 'rangeSlider', 'colorPicker', 'inputMask', 'message', 'panel', 'table', 'tabs', 'dataGrid', 'staticHtml', 'card', 'splitButton', 'richTextEditor'\n ]);\n __decorate([\n Property(null)\n ], FormRenderer.prototype, \"schema\", void 0);\n __decorate([\n Property('SingleColumn')\n ], FormRenderer.prototype, \"layout\", void 0);\n __decorate([\n Property('')\n ], FormRenderer.prototype, \"className\", void 0);\n __decorate([\n Event()\n ], FormRenderer.prototype, \"submit\", void 0);\n __decorate([\n Event()\n ], FormRenderer.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], FormRenderer.prototype, \"buttonClick\", void 0);\n __decorate([\n Event()\n ], FormRenderer.prototype, \"failure\", void 0);\n __decorate([\n Event()\n ], FormRenderer.prototype, \"created\", void 0);\n FormRenderer = FormRenderer_1 = __decorate([\n NotifyPropertyChanges\n ], FormRenderer);\n return FormRenderer;\n}(Component));\nexport { FormRenderer };\nexport default FormRenderer;\n","/**\n * These enum values define the layouts available to render forms.\n */\nexport var FormLayout;\n(function (FormLayout) {\n /**\n * SingleColumn - Represents the single column layout and renders forms in a vertical layout.\n */\n FormLayout[\"SingleColumn\"] = \"SingleColumn\";\n /**\n * TwoColumn - Represents the two column layout and renders forms in a two column grid layout.\n */\n FormLayout[\"TwoColumn\"] = \"TwoColumn\";\n /**\n * ThreeColumn - Represents the three column layout which renders forms in a three column grid layout.\n */\n FormLayout[\"ThreeColumn\"] = \"ThreeColumn\";\n /**\n * FourColumn - Represents the four column layout which renders forms in a four column grid layout.\n */\n FormLayout[\"FourColumn\"] = \"FourColumn\";\n})(FormLayout || (FormLayout = {}));\n/**\n * Specifies the component types supported in the Form Renderer.\n */\nexport var FORM_COMPONENT_TYPES = [\n 'textbox', 'textarea', 'number', 'checkbox', 'checkboxGroup', 'radio',\n 'dropdown', 'multiselect', 'button', 'date', 'dateTime', 'time', 'dateRange',\n 'switch', 'signature', 'rating', 'imageEditor', 'fileUpload', 'rangeSlider',\n 'colorPicker', 'inputMask', 'message', 'panel', 'table', 'tabs', 'dataGrid',\n 'staticHtml', 'card', 'splitButton', 'richTextEditor'\n];\n"],"names":["this","__assign","Toolbar","RTEImage"],"mappings":"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"}
|