@syncfusion/ej2-form-renderer 35.1.37 → 35.1.42

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-form-renderer.es5.js","sources":["../../src/form-renderer/common/conditional-rule-engine.js","../../src/form-renderer/common/json-converter.js","../../src/form-renderer/common/expressions/expression-parser.js","../../src/form-renderer/common/expressions/dependency-tracker.js","../../src/form-renderer/common/expressions/expression-engine.js","../../src/form-renderer/common/utils.js","../../src/form-renderer/common/option-fetcher.js","../../src/form-renderer/common/checkbox-group.js","../../src/form-renderer/common/expressions/grid-expressions.js","../../src/form-renderer/common/custom-validation-engine.js","../../src/form-renderer/common/datagrid-component.js","../../src/form-renderer/common/minmax-rule-engine.js","../../src/form-renderer/common/parser.js","../../src/form-renderer/common/props-forwarder.js","../../src/form-renderer/common/static-html-renderer.js","../../src/form-renderer/form-renderer/render-form-field.js","../../src/form-renderer/form-renderer/custom-widget-resolver.js","../../src/form-renderer/form-renderer/form-renderer.js","../../src/form-renderer/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('table'));\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('panel'));\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('tabs'));\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('card'));\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, dataModel) {\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, dataModel));\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], dataModel);\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, dataModel) {\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 if (unifiedField.name && dataModel && Object.prototype.hasOwnProperty.call(dataModel, unifiedField.name)) {\n if (component.type === 'checkbox' || component.type === 'switch') {\n component.checked = dataModel[unifiedField.name];\n }\n if (component.type === 'dataGrid') {\n component.dataSource = dataModel[unifiedField.name];\n }\n else {\n component.defaultValue = dataModel[unifiedField.name];\n }\n }\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}\nexport function inferTypeFromWidget(widget) {\n switch (widget) {\n case 'number':\n case 'rangeSlider':\n case 'rating':\n return 'number';\n case 'checkbox':\n case 'switch':\n return 'boolean';\n case 'multiselect':\n case 'checkboxGroup':\n return 'array';\n case 'button':\n return 'button';\n case 'message':\n return 'message';\n case 'signature':\n return 'sign';\n case 'imageEditor':\n return 'image';\n case 'fileUpload':\n return 'file';\n case 'colorPicker':\n return 'color';\n case 'dataGrid':\n return 'grid';\n default:\n return 'string';\n }\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 : [];\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('input');\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('input');\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","/**\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 __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","/**\n * @private\n */\n/**\n * @private\n */\nexport var RESERVED_RENDERER_KEYS = [\n 'id',\n 'type',\n 'name',\n 'label',\n 'conditions',\n 'customValidation',\n 'customvalidation',\n '_configured',\n 'widget',\n 'templateId',\n 'kind',\n 'as',\n 'visibility',\n 'options',\n 'tableCells',\n 'tabItems',\n 'children',\n 'templateData',\n 'ref'\n];\n/**\n * EJ2 lifecycle / framework methods whose names MUST NOT be invoked\n * by the pass-through (would be assigned-as-data, ignored by the\n * framework, but also poison if mapped to a setter eager on init).\n *\n * @private\n */\nexport var EJ2_LIFECYCLE_KEYS = [\n 'created',\n 'destroyed',\n 'appendTo',\n 'appendToElement',\n 'append',\n 'render',\n 'addEventListener',\n 'removeEventListener',\n 'getModuleName',\n 'inject',\n 'dataBind',\n 'refresh',\n 'onPropertyChanged'\n];\n/**\n * @private\n */\nexport function pickUnmappedSchemaProps(component, explicitKeys) {\n var comp = component || {};\n var explicit = {};\n for (var exIdx = 0; exIdx < explicitKeys.length; exIdx++) {\n explicit[explicitKeys[exIdx]] = true;\n }\n for (var rIdx = 0; rIdx < RESERVED_RENDERER_KEYS.length; rIdx++) {\n explicit[RESERVED_RENDERER_KEYS[rIdx]] = true;\n }\n for (var lIdx = 0; lIdx < EJ2_LIFECYCLE_KEYS.length; lIdx++) {\n explicit[EJ2_LIFECYCLE_KEYS[lIdx]] = true;\n }\n var keys = [];\n for (var k in comp) {\n if (Object.prototype.hasOwnProperty.call(comp, k) &&\n !explicit[k] &&\n k !== '__proto__' &&\n k !== 'constructor') {\n keys.push(k);\n }\n }\n keys.sort();\n var out = {};\n for (var outIdx = 0; outIdx < keys.length; outIdx++) {\n var key = keys[outIdx];\n out[key] = comp[key];\n }\n return out;\n}\n/**\n * @private\n */\nexport function applyExtraProps(control, extra) {\n if (!control || !extra) {\n return 0;\n }\n var keys = Object.keys(extra);\n var applied = 0;\n for (var kIdx = 0; kIdx < keys.length; kIdx++) {\n var k = keys[kIdx];\n try {\n control[k] = extra[k];\n applied++;\n }\n catch (e) {\n var ctor = (control && control.constructor && control.constructor.name) || '<unknown>';\n // eslint-disable-next-line no-console\n console.warn(\"[form-renderer] cannot forward schema property \\\"\" + k + \"\\\" to control of type \" + ctor + \":\", e);\n }\n }\n return applied;\n}\n/**\n * @private\n */\nexport function forwardExtras(control, component, explicitKeys, extras) {\n var picked = pickUnmappedSchemaProps(component, explicitKeys);\n if (extras && extras.length) {\n for (var exIdx = 0; exIdx < extras.length; exIdx++) {\n var item = extras[exIdx];\n picked[item.key] = item.value;\n }\n // Re-sort with the injected extras deterministically.\n var sorted_1 = {};\n Object.keys(picked).sort().forEach(function (k) {\n sorted_1[k] = picked[k];\n });\n return applyExtraProps(control, sorted_1);\n }\n return applyExtraProps(control, picked);\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","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';\nimport { forwardExtras } from '../common/index';\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 forwardExtras(tb, component, [\n 'name', 'multiline', 'textboxType', 'defaultValue',\n 'showClearButton', 'autocomplete', 'readOnly', 'cssClass',\n 'suffix', 'prefix', 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(ta, component, [\n 'name', 'defaultValue', 'cols', 'textareaRows',\n 'showClearButton', 'readOnly', 'maxLength', 'cssClass',\n 'suffix', 'prefix', 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(ntb, component, [\n 'name', 'defaultValue', 'decimals', 'currency', 'numberFormat',\n 'step', 'minValue', 'maxValue', 'readOnly', 'showClearButton',\n 'cssClass', 'suffix', 'prefix', 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(cb, component, [\n 'name', 'checked', 'indeterminate',\n 'checkboxLabelPosition', 'cssClass'\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 forwardExtras(group_1, component, [\n 'options', 'enableRtl', 'disabled', 'readOnly', 'required',\n 'checkboxLabelPosition', 'layoutDirection', 'gap', 'size',\n 'cssClass', 'htmlAttributes'\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_1 = [];\n radioOptions.forEach(function (option, idx) {\n var optionValue = option;\n var optionText = option;\n var row = createElement('div');\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 rbInstances_1.push(rb);\n forwardExtras(rb, component, [\n 'name', 'options', 'disabled', 'defaultValue',\n 'fieldLabelPosition', 'cssClass', 'htmlAttributes'\n ]);\n });\n if (target) {\n target.appendChild(wrapper_1);\n }\n return rbInstances_1;\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 forwardExtras(ddl_1, component, [\n 'name', 'defaultValue', 'showClearButton', 'readOnly',\n 'enableVirtualization', 'popupHeight', 'popupWidth',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled', 'fields', 'groupBy'\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 forwardExtras(ms_1, component, [\n 'name', 'defaultValue', 'placeholder', 'showClearButton',\n 'readOnly', 'allowCustomValue', 'addTagOnBlur',\n 'delimiterChar', 'showSelectAll', 'visualMode', 'selectAllText',\n 'unSelectAllText', 'showDropDownIcon', 'enableVirtualization',\n 'popupHeight', 'popupWidth', 'cssClass', 'htmlAttributes',\n 'floatLabelType', 'disabled'\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 forwardExtras(dp, component, [\n 'name', 'defaultValue', 'format', 'readOnly', 'showClearButton',\n 'showTodayButton', 'calendarMode', 'dayHeaderFormat',\n 'depth', 'start', 'firstDayOfWeek', 'minDate', 'maxDate',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(dtp, component, [\n 'name', 'defaultValue', 'format', 'showClearButton',\n 'showTodayButton', 'dayHeaderFormat', 'depth', 'start', 'step',\n 'minDate', 'maxDate', 'minTime', 'maxTime', 'readOnly',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(tp, component, [\n 'name', 'defaultValue', 'format', 'showClearButton',\n 'step', 'minTime', 'maxTime', 'readOnly',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(drp, component, [\n 'name', 'defaultValue', 'format', 'separator',\n 'showClearButton', 'minDate', 'maxDate', 'readOnly',\n 'dayHeaderFormat', 'depth', 'start',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(sw, component, [\n 'name', 'defaultValue', 'checked', 'onLabel', 'offLabel',\n 'cssClass', 'htmlAttributes'\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 maxWidth: '100%'\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 for (var bi = 0; bi < btnInstances_1.length; bi++) {\n forwardExtras(btnInstances_1[bi], component, [\n 'buttonsGroups', 'gap', 'position', 'size', 'cssClass'\n ]);\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 forwardExtras(btnInst, component, [\n 'buttonType', 'style', 'iconCss', 'iconPosition',\n 'cssClass', 'position', 'size', 'disabled'\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 component.size === 'Small' ? ' e-small' : component.size === 'Bigger' ? ' e-bigger' : ''\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 forwardExtras(sb, component, [\n 'options', 'style', 'iconCss', 'iconPosition',\n 'cssClass', 'position', 'disabled'\n ]);\n ref(sb);\n return sb;\n }\n case 'signature': {\n var canvas = createElement('canvas', {\n id: component.name,\n className: cssClass\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 forwardExtras(sig, component, [\n 'backgroundColor', 'strokeColor', 'maxValue', 'minValue', 'velocity'\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 forwardExtras(rt, component, [\n 'defaultValue', 'allowReset', 'itemsCount', 'minValue',\n 'precision', 'readOnly', 'showRatingTooltip',\n 'showRatingLabel', 'ratingLabelPosition', 'cssClass', 'labelPosition'\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 forwardExtras(cp, component, [\n 'defaultValue', 'enableOpacity', 'showButtons',\n 'showRecentColors', 'showNoColor', 'cssClass'\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 forwardExtras(im, component, [\n 'name', 'defaultValue', 'mask', 'promptChar',\n 'customCharacters', 'readOnly', 'showClearButton',\n 'cssClass', 'htmlAttributes', 'suffix', 'prefix',\n 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(sl, component, [\n 'defaultValue', 'minValue', 'maxValue', 'step',\n 'cssClass', 'readOnly', 'showButtons'\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 forwardExtras(up, component, [\n 'allowExtensions', 'saveUrl', 'removeUrl',\n 'buttons', 'maxValue', 'minValue',\n 'allowMultiple', 'showFileList',\n 'htmlAttributes', 'cssClass'\n ]);\n ref(up);\n return up;\n }\n case 'imageEditor': {\n var ie = 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 });\n if (target) {\n applyHostId(target, component.name);\n ie.appendTo(target);\n }\n forwardExtras(ie, component, [\n 'height', 'width', 'cssClass'\n ]);\n ref(ie);\n return ie;\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 forwardExtras(msg, component, [\n 'severity', 'messageType', 'variant', 'content',\n 'showCloseIcon', 'showIcon', 'cssClass'\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 forwardExtras(gridComp_1, component, [\n 'dataSource', 'columns', 'conditions', 'height', 'width',\n 'pageSize', 'allowPaging', 'allowFiltering', 'allowAdding',\n 'allowEditing', 'allowDeleting', 'cssClass'\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 forwardExtras(rte, component, [\n 'enableImportFromWord', 'enableExportToWord', 'enableExportToPdf',\n 'defaultValue', 'placeholder', 'readOnly', 'maxLength', 'cssClass',\n 'height', 'width', 'htmlAttributes', 'toolbarSettings'\n ]);\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","/**\n * @private\n */\nexport function resolveCustomWidget(component, settings) {\n if (!settings || settings.length === 0) {\n return null;\n }\n var compName = component.name;\n if (typeof compName === 'string' && compName.length > 0) {\n for (var _i = 0, settings_1 = settings; _i < settings_1.length; _i++) {\n var entry = settings_1[_i];\n var fn = entry.fieldName;\n if (typeof fn === 'string' && fn.length > 0 && fn === compName) {\n return { entry: entry, matchKind: 'fieldName' };\n }\n }\n }\n var compTemplateId = component.templateId;\n if (typeof compTemplateId === 'string' && compTemplateId.length > 0) {\n for (var _a = 0, settings_2 = settings; _a < settings_2.length; _a++) {\n var entry = settings_2[_a];\n var eid = entry.templateId;\n if (typeof eid === 'string' && eid.length > 0 && eid === compTemplateId) {\n return { entry: entry, matchKind: 'templateId' };\n }\n }\n }\n var compType = component.type;\n if (typeof compType === 'string' && compType.length > 0) {\n for (var _b = 0, settings_3 = settings; _b < settings_3.length; _b++) {\n var entry = settings_3[_b];\n var et = entry.type;\n if (typeof et === 'string' && et.length > 0 && et === compType) {\n return { entry: entry, matchKind: 'type' };\n }\n }\n }\n return null;\n}\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, Collection, Property, Event, NotifyPropertyChanges, enableRipple, createElement, ChildProperty, isNullOrUndefined, L10n, getComponent, addClass, compile, SanitizeHtmlHelper } 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 { resolveCustomWidget } from './custom-widget-resolver';\nimport { mergeSchema, inferTypeFromWidget } 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/index';\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 */\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 * Specifies the custom widget settings for rendering custom templates for existing FormComponentTypes.\n */\nvar CustomWidgetSetting = /** @class */ (function (_super) {\n __extends(CustomWidgetSetting, _super);\n function CustomWidgetSetting() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], CustomWidgetSetting.prototype, \"template\", void 0);\n __decorate([\n Property('')\n ], CustomWidgetSetting.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], CustomWidgetSetting.prototype, \"templateId\", void 0);\n __decorate([\n Property('')\n ], CustomWidgetSetting.prototype, \"fieldName\", void 0);\n return CustomWidgetSetting;\n}(ChildProperty));\nexport { CustomWidgetSetting };\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 * @private\n */\n function FormRenderer(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.processedSchemaCache = { version: '1.0.0', components: [] };\n _this.l10n = new L10n('form-renderer', defaultLocale, _this.locale);\n /**\n * @private\n */\n _this.formState = { values: Object.create(null), errors: Object.create(null) };\n _this.validator = null;\n _this.inputRefs = {};\n _this.conditionalValueApplied = {};\n _this.expressionEngine = null;\n _this.expressionDependencyGraph = {};\n _this.expressionEvaluationInProgress = false;\n _this.previousFormValues = {};\n _this.computedFieldNames = new Set();\n _this.customValidationEngine = new CustomValidationEngine();\n _this.currentFormValues = {};\n _this.isInitialized = false;\n _this.hasLayoutComponentsCache = false;\n _this.idToLabelCache = {};\n _this.initialValuesCache = {};\n _this.renderedInstances = [];\n _this.tooltipRefs = {};\n _this.createdFired = false;\n _this.rerenderScheduled = false;\n _this.conditionalTriggerFieldIds = new Set();\n _this.preservedFields = new Map();\n _this.consumerDependencyMap = new Map();\n /**\n * @private\n */\n _this.pendingChangedFieldIds = new Set();\n return _this;\n }\n FormRenderer_1 = FormRenderer;\n /**\n * @private\n */\n FormRenderer.prototype.getModuleName = function () {\n return 'form-renderer';\n };\n /**\n * @private\n */\n FormRenderer.prototype.getPersistData = function () {\n return this.addOnPersist(['formState', JSON.stringify(this.formState)]);\n };\n /**\n * @private\n */\n FormRenderer.prototype.preRender = function () {\n enableRipple(true);\n this.createdFired = false;\n this.expressionEngine = new ExpressionEngine();\n };\n /**\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 if (!this.isInitialized) {\n this.isInitialized = true;\n }\n if (this.isReact && this.portals) {\n this.renderReactTemplates();\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 _this.refreshRenderedComponent(component, rendered);\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 FormRenderer.prototype.refreshRenderedComponent = function (component, rendered) {\n var _this = this;\n var componentRoot = rendered;\n if (component.type === 'tabs') {\n componentRoot = rendered.querySelector(\"#\" + component.id + \".e-control.e-tab\") || rendered;\n }\n else {\n componentRoot = rendered.querySelector(\"[data-field-id=\\\"\" + component.id + \"\\\"]\") || rendered;\n }\n if (component.type === 'richTextEditor') {\n var rteElement = componentRoot.querySelector('.e-richtexteditor');\n var rteInstance = rteElement ? getComponent(rteElement, 'richtexteditor') : null;\n if (rteInstance) {\n rteInstance.refreshUI();\n }\n }\n else if (component.type === 'dataGrid') {\n var toolbarElement = componentRoot.querySelector('.e-control.e-toolbar');\n var toolbarInstance = toolbarElement ? getComponent(toolbarElement, 'toolbar') : null;\n if (toolbarInstance) {\n toolbarInstance.refresh();\n }\n }\n else if (component.type === 'imageEditor') {\n var editorElement = componentRoot.querySelector('.e-control.e-image-editor');\n var editorInstance = editorElement ? getComponent(editorElement, 'image-editor') : null;\n if (editorInstance) {\n editorInstance.refresh();\n }\n }\n else if (component.type === 'tabs') {\n var tabInstance = getComponent(componentRoot, 'tab');\n if (tabInstance) {\n tabInstance.refreshOverflow();\n }\n }\n if (component.children) {\n component.children.forEach(function (child) { return _this.refreshRenderedComponent(child, rendered); });\n }\n if (component.tableCells) {\n component.tableCells.forEach(function (row) {\n row.forEach(function (cell) { return cell.forEach(function (child) { return _this.refreshRenderedComponent(child, rendered); }); });\n });\n }\n if (component.tabItems) {\n component.tabItems.forEach(function (tab) {\n if (tab.content) {\n tab.content.forEach(function (child) { return _this.refreshRenderedComponent(child, rendered); });\n }\n });\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, this.dataModel || undefined);\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 * @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 * @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 * @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 FormRenderer.prototype.getDataModelByName = function () {\n var _this = this;\n var dataModel = {};\n var components = this.collectAllComponents(this.processedSchemaCache.components);\n var componentsById = {};\n components.forEach(function (component) {\n componentsById[component.id] = component;\n });\n Object.keys(this.formState.values).forEach(function (id) {\n var component = componentsById[id];\n if (component && component.name) {\n dataModel[component.name] = _this.formState.values[id];\n }\n });\n return dataModel;\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 * @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 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 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 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 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 self.syncFormStateErrors();\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 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 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 * @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', '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 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, dataModel: _this.getDataModelByName() });\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 skipDefault = false;\n var resolvedWidget = resolveCustomWidget(component, this.customWidgetSettings);\n if (resolvedWidget) {\n var compiled = null;\n try {\n compiled = this.getTemplateFunction(resolvedWidget.entry.template);\n }\n catch (e) {\n if (this.failure) {\n this.trigger('failure', { error: e });\n }\n compiled = null;\n }\n if (compiled) {\n try {\n if (target.parentNode) {\n target.parentNode.removeChild(target);\n }\n var swappedComponent = Object.assign({}, component, {\n id: component.name,\n name: component.id,\n type: inferTypeFromWidget(component.type),\n widget: component.type\n });\n var renderedOut = compiled({\n fieldData: swappedComponent,\n value: formState ? formState.values[component.id] : undefined,\n }, this);\n var outList = void 0;\n if (renderedOut == null) {\n outList = [];\n }\n else if (Array.isArray(renderedOut)) {\n outList = renderedOut;\n }\n else if (typeof renderedOut === 'string') {\n outList = [renderedOut];\n }\n else if (typeof renderedOut === 'object'\n && !renderedOut.nodeType\n && typeof renderedOut.length === 'number'\n && typeof renderedOut.item === 'function') {\n var snapshot = [];\n var list = renderedOut;\n for (var i = 0; i < list.length; i++) {\n snapshot.push(list[i]);\n }\n outList = snapshot;\n }\n else {\n outList = [renderedOut];\n }\n for (var _i = 0, outList_1 = outList; _i < outList_1.length; _i++) {\n var node = outList_1[_i];\n if (node && typeof node === 'object' && node.nodeType) {\n fieldInput.appendChild(node);\n }\n else if (typeof node === 'string') {\n var markup = this.sanitizeTemplateValue(node);\n var span = createElement('span');\n span.innerHTML = markup;\n while (span.firstChild) {\n fieldInput.appendChild(span.firstChild);\n }\n }\n else if (node && typeof node === 'object') {\n throw new Error('Custom widget template for \"' + component.name + '\" returned a ' +\n 'framework object that the vanilla renderer cannot insert. Use the ' +\n 'React/Angular/Vue wrapper (registered templates / portals) for ' +\n 'JSX or platform templates.');\n }\n }\n setInputRef(fieldInput);\n skipDefault = true;\n }\n catch (renderErr) {\n if (this.failure) {\n this.trigger('failure', { error: renderErr });\n }\n skipDefault = false;\n }\n }\n }\n if (!skipDefault) {\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 _a = 0, _b = Object.keys(this.inputRefs); _a < _b.length; _a++) {\n var key = _b[_a];\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 }\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 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 (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 if (resolveCustomWidget(component, this.customWidgetSettings)) {\n return this.renderField(component);\n }\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 form.querySelectorAll('.e-control.e-multiselect.e-lib').forEach(function (cb) {\n (cb.ej2_instances[0]).value = [];\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 if (resolveCustomWidget(component, this.customWidgetSettings)) {\n return this.renderField(component);\n }\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 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 if (!inputElement) {\n return;\n }\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 FormRenderer.prototype.collectConditionFieldIds = function (condition, acc) {\n if (!condition) {\n return;\n }\n if (typeof condition.field === 'string') {\n acc.add(condition.field);\n }\n else if (Array.isArray(condition.rules)) {\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 FormRenderer.prototype.buildConditionalDependencyMap = function () {\n var triggers = new Set();\n var consumerDeps = new Map();\n var allComps = this.collectAllComponents(this.processedSchemaCache.components);\n var _loop_3 = function (comp) {\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 _i = 0, conditionKeys_1 = conditionKeys; _i < conditionKeys_1.length; _i++) {\n var key = conditionKeys_1[_i];\n if (conditions[key]) {\n this_1.collectConditionFieldIds(conditions[key], triggers);\n this_1.collectConditionFieldIds(conditions[key], myDeps);\n }\n }\n if (Array.isArray(conditions.conditionalData)) {\n for (var _a = 0, _b = conditions.conditionalData; _a < _b.length; _a++) {\n var item = _b[_a];\n if (item && item.condition) {\n this_1.collectConditionFieldIds(item.condition, triggers);\n this_1.collectConditionFieldIds(item.condition, myDeps);\n }\n if (item && Array.isArray(item.conditions)) {\n for (var _c = 0, _d = item.conditions; _c < _d.length; _c++) {\n var subCond = _d[_c];\n this_1.collectConditionFieldIds(subCond, triggers);\n this_1.collectConditionFieldIds(subCond, myDeps);\n }\n }\n }\n }\n if (conditions.setValueWhen &&\n conditions.setValueWhen.condition) {\n this_1.collectConditionFieldIds(conditions.setValueWhen.condition, triggers);\n this_1.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 var collectMinMaxReferenceIds = function (range) {\n if (!range || range.enabled !== true) {\n return;\n }\n var collectFromBound = function (bound) {\n if (bound && typeof bound === 'object' && typeof bound.field === 'string') {\n triggers.add(bound.field);\n myDeps.add(bound.field);\n }\n };\n collectFromBound(range.minValue);\n collectFromBound(range.maxValue);\n };\n var minMaxRule = comp.minMaxRange;\n if (Array.isArray(minMaxRule)) {\n for (var _e = 0, minMaxRule_1 = minMaxRule; _e < minMaxRule_1.length; _e++) {\n var range = minMaxRule_1[_e];\n collectMinMaxReferenceIds(range);\n }\n }\n var minMaxTimeRule = comp.minMaxTimeRange;\n if (Array.isArray(minMaxTimeRule)) {\n for (var _f = 0, minMaxTimeRule_1 = minMaxTimeRule; _f < minMaxTimeRule_1.length; _f++) {\n var range = minMaxTimeRule_1[_f];\n collectMinMaxReferenceIds(range);\n }\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_1.collectDataSourceReferenceIds(ds.search.key, allComps, triggers);\n this_1.collectDataSourceReferenceIds(ds.search.key, allComps, myDeps);\n }\n if (Array.isArray(ds.filters)) {\n for (var _g = 0, _h = ds.filters; _g < _h.length; _g++) {\n var filter = _h[_g];\n if (typeof filter.value === 'string') {\n this_1.collectDataSourceReferenceIds(filter.value, allComps, triggers);\n this_1.collectDataSourceReferenceIds(filter.value, allComps, myDeps);\n }\n }\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, allComps_1 = allComps; _i < allComps_1.length; _i++) {\n var comp = allComps_1[_i];\n _loop_3(comp);\n }\n this.conditionalTriggerFieldIds = triggers;\n this.consumerDependencyMap = consumerDeps;\n };\n /**\n * @private\n */\n FormRenderer.prototype.isConditionalTrigger = function (fieldId) {\n return this.conditionalTriggerFieldIds.has(fieldId);\n };\n FormRenderer.prototype.getScrollParent = function () {\n var parent = this.element.parentElement;\n while (parent) {\n var style = window.getComputedStyle(parent);\n var overflowY = style.overflowY;\n var overflowX = style.overflowX;\n var canScrollY = (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') &&\n parent.scrollHeight > parent.clientHeight;\n var canScrollX = (overflowX === 'auto' || overflowX === 'scroll' || overflowX === 'overlay') &&\n parent.scrollWidth > parent.clientWidth;\n if (canScrollY || canScrollX) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n /**\n * @private\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) { /* 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 var scrollParent = this.getScrollParent();\n var savedScrollParentTop = scrollParent ? scrollParent.scrollTop : 0;\n var savedScrollParentLeft = scrollParent ? scrollParent.scrollLeft : 0;\n this.preservedFields.clear();\n var allComps = this.collectAllComponents(this.processedSchemaCache.components);\n var _loop_4 = function (comp) {\n if (!FormRenderer_1.PRESERVABLE_TYPES.has(comp.type)) {\n return \"continue\";\n }\n var myDeps = this_2.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_2.element.querySelector(\"[data-field-id=\\\"\" + comp.id + \"\\\"]\");\n if (liveNode && liveNode.parentElement) {\n liveNode.parentElement.removeChild(liveNode);\n this_2.preservedFields.set(comp.id, liveNode);\n }\n };\n var this_2 = this;\n for (var _i = 0, allComps_2 = allComps; _i < allComps_2.length; _i++) {\n var comp = allComps_2[_i];\n _loop_4(comp);\n }\n this.refreshing = true;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\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 if (scrollParent) {\n scrollParent.scrollTop = savedScrollParentTop;\n scrollParent.scrollLeft = savedScrollParentLeft;\n }\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 if (this.preservedFields.size > 0) {\n var stillKept_1 = [];\n this.preservedFields.forEach(function (node, id) {\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 // ignore\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 FormRenderer.prototype.destroyRenderedExcludingPreserved = function () {\n var survived = [];\n var preservedNodes = Array.from(this.preservedFields.values());\n var _loop_5 = 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_3.destroyRenderedInstance(inst);\n }\n };\n var this_3 = this;\n for (var _i = 0, _a = this.renderedInstances; _i < _a.length; _i++) {\n var inst = _a[_i];\n _loop_5(inst);\n }\n this.renderedInstances = survived;\n var inputRefKeys = Object.keys(this.inputRefs);\n var _loop_6 = function (key) {\n var inst = this_4.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_4.inputRefs[key];\n }\n };\n var this_4 = this;\n for (var _b = 0, inputRefKeys_1 = inputRefKeys; _b < inputRefKeys_1.length; _b++) {\n var key = inputRefKeys_1[_b];\n _loop_6(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 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 * @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_7 = 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_7(fieldName);\n }\n if (changedFields.size === 0) {\n return;\n }\n var evaluationOrder = engine.getTopologicalOrder(dependencyGraph);\n var _loop_8 = 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_5.formState) {\n this_5.formState.values[component.id] = result;\n if (this_5.validator) {\n var inputEl = this_5.getInputElementByName(component.id);\n if (inputEl) {\n this_5.syncValueToInput(inputEl, component.id, result);\n }\n }\n }\n }\n }\n catch (error) {\n if (this_5.failure) {\n this_5.trigger('failure', {\n error: error\n });\n }\n }\n }\n };\n var this_5 = this;\n for (var _b = 0, evaluationOrder_1 = evaluationOrder; _b < evaluationOrder_1.length; _b++) {\n var fieldName = evaluationOrder_1[_b];\n _loop_8(fieldName);\n }\n Object.assign(previousValues, contextValues);\n }\n finally {\n this.expressionEvaluationInProgress = false;\n }\n };\n /**\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.\n * Use this to call Syncfusion component methods and properties.\n *\n * @param {string} name - Specifies the name for the built-in Syncfusion component.\n * @returns {object | null} - Specifies the instance of the Syncfusion component in the form.\n */\n FormRenderer.prototype.getComponent = function (name) {\n return this.inputRefs[name] || null;\n };\n /**\n * Programmatically sets a form field's value for user edits.\n *\n * @param {string} fieldName - The field's `name` (the schema property's `name`).\n * @param {any} value - The new value to set.\n * @returns void\n */\n FormRenderer.prototype.setFieldValue = function (fieldName, value) {\n var allComponents = this.collectAllComponents(this.processedSchemaCache.components || []);\n var component = allComponents.find(function (c) { return c.name === fieldName; });\n if (!component) {\n return;\n }\n if (this.formState) {\n this.formState.values[component.id] = value;\n }\n var inputEl = this.getInputElementByName(component.id);\n if (inputEl) {\n this.syncValueToInput(inputEl, component.id, value);\n }\n this.afterValueChange(component.id);\n };\n /**\n * @private\n */\n FormRenderer.prototype.syncValueToInput = function (inputEl, fieldId, value) {\n if (!inputEl) {\n return;\n }\n try {\n var nativeInput = (inputEl instanceof HTMLInputElement) ? inputEl : null;\n var isCheckable = !!nativeInput &&\n (nativeInput.type === 'checkbox' || nativeInput.type === 'radio');\n var ej2Inst = inputEl.ej2_instances && inputEl.ej2_instances[0];\n if (ej2Inst) {\n if (isCheckable && typeof ej2Inst.checked !== 'undefined') {\n if (nativeInput.type === 'radio' && typeof ej2Inst.value !== 'undefined') {\n ej2Inst.checked = String(value) === String(ej2Inst.value);\n }\n else {\n ej2Inst.checked = FormRenderer_1.coerceChecked(value);\n }\n }\n else if (typeof ej2Inst.value !== 'undefined') {\n ej2Inst.value = value;\n }\n return;\n }\n if (inputEl instanceof HTMLSelectElement) {\n var strValue = (value === null || value === undefined) ? '' : String(value);\n inputEl.value = strValue;\n if (inputEl.value !== strValue && inputEl.options.length > 0) {\n for (var i = 0; i < inputEl.options.length; i++) {\n if (inputEl.options[i].text === strValue) {\n inputEl.value = inputEl.options[i].value;\n break;\n }\n }\n }\n }\n else if (nativeInput && nativeInput.type === 'radio') {\n var radios = this.element.querySelectorAll(\"input[type=\\\"radio\\\"][name=\\\"\" + fieldId + \"\\\"]\");\n for (var i = 0; i < radios.length; i++) {\n radios[i].checked = String(value) === radios[i].value;\n }\n }\n else if (isCheckable) {\n nativeInput.checked = FormRenderer_1.coerceChecked(value);\n }\n else if (typeof inputEl.value !== 'undefined') {\n inputEl.value = (value === null || value === undefined) ? '' : String(value);\n }\n }\n catch (e) { /* ignore */ }\n };\n /**\n * @private\n */\n FormRenderer.coerceChecked = function (value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'number') {\n return value !== 0;\n }\n if (typeof value === 'string') {\n return value !== '' && value !== 'false' && value !== '0';\n }\n return !!value;\n };\n /**\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.dataModel !== oldProps.dataModel) {\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.customWidgetSettings !== oldProps.customWidgetSettings) {\n reRender = true;\n }\n if (!reRender) {\n return;\n }\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.refreshing = true;\n this.destroyRendered();\n this.removePreviousRoot();\n this.isInitialized = false;\n this.render();\n this.refreshing = false;\n };\n /**\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 * @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 FormRenderer.prototype.getTemplateFunction = function (template) {\n var templateFn = null;\n try {\n if (typeof template === 'string' && template.indexOf('#') !== -1 && document.querySelectorAll(template).length) {\n templateFn = compile(this.sanitizeTemplateValue(document.querySelector(template).innerHTML.trim()));\n }\n else if (typeof template === 'string') {\n templateFn = compile(this.sanitizeTemplateValue(template));\n }\n else {\n templateFn = compile(template);\n }\n }\n catch (e) {\n templateFn = compile(template);\n }\n return templateFn;\n };\n /**\n * @private\n */\n FormRenderer.prototype.sanitizeTemplateValue = function (value) {\n if (this.enableHtmlSanitizer && typeof value === 'string') {\n try {\n return SanitizeHtmlHelper.sanitize(value);\n }\n catch (e) { /* swallow */ }\n }\n return value;\n };\n /**\n * @private\n */\n FormRenderer.prototype.destroy = function () {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\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 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(null)\n ], FormRenderer.prototype, \"dataModel\", 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 Collection([], CustomWidgetSetting)\n ], FormRenderer.prototype, \"customWidgetSettings\", void 0);\n __decorate([\n Property(false)\n ], FormRenderer.prototype, \"enableHtmlSanitizer\", 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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"}
1
+ {"version":3,"file":"ej2-form-renderer.es5.js","sources":["../../src/form-renderer/common/conditional-rule-engine.js","../../src/form-renderer/common/json-converter.js","../../src/form-renderer/common/expressions/expression-parser.js","../../src/form-renderer/common/expressions/dependency-tracker.js","../../src/form-renderer/common/expressions/expression-engine.js","../../src/form-renderer/common/utils.js","../../src/form-renderer/common/option-fetcher.js","../../src/form-renderer/common/checkbox-group.js","../../src/form-renderer/common/expressions/grid-expressions.js","../../src/form-renderer/common/custom-validation-engine.js","../../src/form-renderer/common/datagrid-component.js","../../src/form-renderer/common/minmax-rule-engine.js","../../src/form-renderer/common/parser.js","../../src/form-renderer/common/props-forwarder.js","../../src/form-renderer/common/static-html-renderer.js","../../src/form-renderer/form-renderer/render-form-field.js","../../src/form-renderer/form-renderer/custom-widget-resolver.js","../../src/form-renderer/form-renderer/form-renderer.js","../../src/form-renderer/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('table'));\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('panel'));\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('tabs'));\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('card'));\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, dataModel) {\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, dataModel));\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], dataModel);\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, dataModel) {\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 if (unifiedField.name && dataModel && Object.prototype.hasOwnProperty.call(dataModel, unifiedField.name)) {\n if (component.type === 'checkbox' || component.type === 'switch') {\n component.checked = dataModel[unifiedField.name];\n }\n if (component.type === 'dataGrid') {\n component.dataSource = dataModel[unifiedField.name];\n }\n else {\n component.defaultValue = dataModel[unifiedField.name];\n }\n }\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}\nexport function inferTypeFromWidget(widget) {\n switch (widget) {\n case 'number':\n case 'rangeSlider':\n case 'rating':\n return 'number';\n case 'checkbox':\n case 'switch':\n return 'boolean';\n case 'multiselect':\n case 'checkboxGroup':\n return 'array';\n case 'button':\n return 'button';\n case 'message':\n return 'message';\n case 'signature':\n return 'sign';\n case 'imageEditor':\n return 'image';\n case 'fileUpload':\n return 'file';\n case 'colorPicker':\n return 'color';\n case 'dataGrid':\n return 'grid';\n default:\n return 'string';\n }\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 : [];\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('input');\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('input');\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","/**\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 __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","/**\n * @private\n */\n/**\n * @private\n */\nexport var RESERVED_RENDERER_KEYS = [\n 'id',\n 'type',\n 'name',\n 'label',\n 'conditions',\n 'customValidation',\n 'customvalidation',\n '_configured',\n 'widget',\n 'templateId',\n 'kind',\n 'as',\n 'visibility',\n 'options',\n 'tableCells',\n 'tabItems',\n 'children',\n 'templateData',\n 'ref'\n];\n/**\n * EJ2 lifecycle / framework methods whose names MUST NOT be invoked\n * by the pass-through (would be assigned-as-data, ignored by the\n * framework, but also poison if mapped to a setter eager on init).\n *\n * @private\n */\nexport var EJ2_LIFECYCLE_KEYS = [\n 'created',\n 'destroyed',\n 'appendTo',\n 'appendToElement',\n 'append',\n 'render',\n 'addEventListener',\n 'removeEventListener',\n 'getModuleName',\n 'inject',\n 'dataBind',\n 'refresh',\n 'onPropertyChanged'\n];\n/**\n * @private\n */\nexport function pickUnmappedSchemaProps(component, explicitKeys) {\n var comp = component || {};\n var explicit = {};\n for (var exIdx = 0; exIdx < explicitKeys.length; exIdx++) {\n explicit[explicitKeys[exIdx]] = true;\n }\n for (var rIdx = 0; rIdx < RESERVED_RENDERER_KEYS.length; rIdx++) {\n explicit[RESERVED_RENDERER_KEYS[rIdx]] = true;\n }\n for (var lIdx = 0; lIdx < EJ2_LIFECYCLE_KEYS.length; lIdx++) {\n explicit[EJ2_LIFECYCLE_KEYS[lIdx]] = true;\n }\n var keys = [];\n for (var k in comp) {\n if (Object.prototype.hasOwnProperty.call(comp, k) &&\n !explicit[k] &&\n k !== '__proto__' &&\n k !== 'constructor') {\n keys.push(k);\n }\n }\n keys.sort();\n var out = {};\n for (var outIdx = 0; outIdx < keys.length; outIdx++) {\n var key = keys[outIdx];\n out[key] = comp[key];\n }\n return out;\n}\n/**\n * @private\n */\nexport function applyExtraProps(control, extra) {\n if (!control || !extra) {\n return 0;\n }\n var keys = Object.keys(extra);\n var applied = 0;\n for (var kIdx = 0; kIdx < keys.length; kIdx++) {\n var k = keys[kIdx];\n try {\n control[k] = extra[k];\n applied++;\n }\n catch (e) {\n var ctor = (control && control.constructor && control.constructor.name) || '<unknown>';\n // eslint-disable-next-line no-console\n console.warn(\"[form-renderer] cannot forward schema property \\\"\" + k + \"\\\" to control of type \" + ctor + \":\", e);\n }\n }\n return applied;\n}\n/**\n * @private\n */\nexport function forwardExtras(control, component, explicitKeys, extras) {\n var picked = pickUnmappedSchemaProps(component, explicitKeys);\n if (extras && extras.length) {\n for (var exIdx = 0; exIdx < extras.length; exIdx++) {\n var item = extras[exIdx];\n picked[item.key] = item.value;\n }\n // Re-sort with the injected extras deterministically.\n var sorted_1 = {};\n Object.keys(picked).sort().forEach(function (k) {\n sorted_1[k] = picked[k];\n });\n return applyExtraProps(control, sorted_1);\n }\n return applyExtraProps(control, picked);\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","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';\nimport { forwardExtras } from '../common/index';\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 forwardExtras(tb, component, [\n 'name', 'multiline', 'textboxType', 'defaultValue',\n 'showClearButton', 'autocomplete', 'readOnly', 'cssClass',\n 'suffix', 'prefix', 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(ta, component, [\n 'name', 'defaultValue', 'cols', 'textareaRows',\n 'showClearButton', 'readOnly', 'maxLength', 'cssClass',\n 'suffix', 'prefix', 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(ntb, component, [\n 'name', 'defaultValue', 'decimals', 'currency', 'numberFormat',\n 'step', 'minValue', 'maxValue', 'readOnly', 'showClearButton',\n 'cssClass', 'suffix', 'prefix', 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(cb, component, [\n 'name', 'checked', 'indeterminate',\n 'checkboxLabelPosition', 'cssClass'\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 forwardExtras(group_1, component, [\n 'options', 'enableRtl', 'disabled', 'readOnly', 'required',\n 'checkboxLabelPosition', 'layoutDirection', 'gap', 'size',\n 'cssClass', 'htmlAttributes'\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_1 = [];\n radioOptions.forEach(function (option, idx) {\n var optionValue = option;\n var optionText = option;\n var row = createElement('div');\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 rbInstances_1.push(rb);\n forwardExtras(rb, component, [\n 'name', 'options', 'disabled', 'defaultValue',\n 'fieldLabelPosition', 'cssClass', 'htmlAttributes'\n ]);\n });\n if (target) {\n target.appendChild(wrapper_1);\n }\n return rbInstances_1;\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 forwardExtras(ddl_1, component, [\n 'name', 'defaultValue', 'showClearButton', 'readOnly',\n 'enableVirtualization', 'popupHeight', 'popupWidth',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled', 'fields', 'groupBy'\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 forwardExtras(ms_1, component, [\n 'name', 'defaultValue', 'placeholder', 'showClearButton',\n 'readOnly', 'allowCustomValue', 'addTagOnBlur',\n 'delimiterChar', 'showSelectAll', 'visualMode', 'selectAllText',\n 'unSelectAllText', 'showDropDownIcon', 'enableVirtualization',\n 'popupHeight', 'popupWidth', 'cssClass', 'htmlAttributes',\n 'floatLabelType', 'disabled'\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 forwardExtras(dp, component, [\n 'name', 'defaultValue', 'format', 'readOnly', 'showClearButton',\n 'showTodayButton', 'calendarMode', 'dayHeaderFormat',\n 'depth', 'start', 'firstDayOfWeek', 'minDate', 'maxDate',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(dtp, component, [\n 'name', 'defaultValue', 'format', 'showClearButton',\n 'showTodayButton', 'dayHeaderFormat', 'depth', 'start', 'step',\n 'minDate', 'maxDate', 'minTime', 'maxTime', 'readOnly',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(tp, component, [\n 'name', 'defaultValue', 'format', 'showClearButton',\n 'step', 'minTime', 'maxTime', 'readOnly',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(drp, component, [\n 'name', 'defaultValue', 'format', 'separator',\n 'showClearButton', 'minDate', 'maxDate', 'readOnly',\n 'dayHeaderFormat', 'depth', 'start',\n 'cssClass', 'htmlAttributes', 'floatLabelType', 'placeholder',\n 'disabled'\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 forwardExtras(sw, component, [\n 'name', 'defaultValue', 'checked', 'onLabel', 'offLabel',\n 'cssClass', 'htmlAttributes'\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 maxWidth: '100%'\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 for (var bi = 0; bi < btnInstances_1.length; bi++) {\n forwardExtras(btnInstances_1[bi], component, [\n 'buttonsGroups', 'gap', 'position', 'size', 'cssClass'\n ]);\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 forwardExtras(btnInst, component, [\n 'buttonType', 'style', 'iconCss', 'iconPosition',\n 'cssClass', 'position', 'size', 'disabled'\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 component.size === 'Small' ? ' e-small' : component.size === 'Bigger' ? ' e-bigger' : ''\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 forwardExtras(sb, component, [\n 'options', 'style', 'iconCss', 'iconPosition',\n 'cssClass', 'position', 'disabled'\n ]);\n ref(sb);\n return sb;\n }\n case 'signature': {\n var canvas = createElement('canvas', {\n id: component.name,\n className: cssClass\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 forwardExtras(sig, component, [\n 'backgroundColor', 'strokeColor', 'maxValue', 'minValue', 'velocity'\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 forwardExtras(rt, component, [\n 'defaultValue', 'allowReset', 'itemsCount', 'minValue',\n 'precision', 'readOnly', 'showRatingTooltip',\n 'showRatingLabel', 'ratingLabelPosition', 'cssClass', 'labelPosition'\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 forwardExtras(cp, component, [\n 'defaultValue', 'enableOpacity', 'showButtons',\n 'showRecentColors', 'showNoColor', 'cssClass'\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 forwardExtras(im, component, [\n 'name', 'defaultValue', 'mask', 'promptChar',\n 'customCharacters', 'readOnly', 'showClearButton',\n 'cssClass', 'htmlAttributes', 'suffix', 'prefix',\n 'floatLabelType', 'placeholder', 'disabled'\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 forwardExtras(sl, component, [\n 'defaultValue', 'minValue', 'maxValue', 'step',\n 'cssClass', 'readOnly', 'showButtons'\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 forwardExtras(up, component, [\n 'allowExtensions', 'saveUrl', 'removeUrl',\n 'buttons', 'maxValue', 'minValue',\n 'allowMultiple', 'showFileList',\n 'htmlAttributes', 'cssClass'\n ]);\n ref(up);\n return up;\n }\n case 'imageEditor': {\n var ie = 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 });\n if (target) {\n applyHostId(target, component.name);\n ie.appendTo(target);\n }\n forwardExtras(ie, component, [\n 'height', 'width', 'cssClass'\n ]);\n ref(ie);\n return ie;\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 forwardExtras(msg, component, [\n 'severity', 'messageType', 'variant', 'content',\n 'showCloseIcon', 'showIcon', 'cssClass'\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 forwardExtras(gridComp_1, component, [\n 'dataSource', 'columns', 'conditions', 'height', 'width',\n 'pageSize', 'allowPaging', 'allowFiltering', 'allowAdding',\n 'allowEditing', 'allowDeleting', 'cssClass'\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 forwardExtras(rte, component, [\n 'enableImportFromWord', 'enableExportToWord', 'enableExportToPdf',\n 'defaultValue', 'placeholder', 'readOnly', 'maxLength', 'cssClass',\n 'height', 'width', 'htmlAttributes', 'toolbarSettings'\n ]);\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","/**\n * @private\n */\nexport function resolveCustomWidget(component, settings) {\n if (!settings || settings.length === 0) {\n return null;\n }\n var compName = component.name;\n if (typeof compName === 'string' && compName.length > 0) {\n for (var _i = 0, settings_1 = settings; _i < settings_1.length; _i++) {\n var entry = settings_1[_i];\n var fn = entry.fieldName;\n if (typeof fn === 'string' && fn.length > 0 && fn === compName) {\n return { entry: entry, matchKind: 'fieldName' };\n }\n }\n }\n var compTemplateId = component.templateId;\n if (typeof compTemplateId === 'string' && compTemplateId.length > 0) {\n for (var _a = 0, settings_2 = settings; _a < settings_2.length; _a++) {\n var entry = settings_2[_a];\n var eid = entry.templateId;\n if (typeof eid === 'string' && eid.length > 0 && eid === compTemplateId) {\n return { entry: entry, matchKind: 'templateId' };\n }\n }\n }\n var compType = component.type;\n if (typeof compType === 'string' && compType.length > 0) {\n for (var _b = 0, settings_3 = settings; _b < settings_3.length; _b++) {\n var entry = settings_3[_b];\n var et = entry.type;\n if (typeof et === 'string' && et.length > 0 && et === compType) {\n return { entry: entry, matchKind: 'type' };\n }\n }\n }\n return null;\n}\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, Collection, Property, Event, NotifyPropertyChanges, enableRipple, createElement, ChildProperty, isNullOrUndefined, L10n, getComponent, addClass, compile, SanitizeHtmlHelper } 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 { resolveCustomWidget } from './custom-widget-resolver';\nimport { mergeSchema, inferTypeFromWidget } 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/index';\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 */\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 * Specifies the custom widget settings for rendering custom templates for existing FormComponentTypes.\n */\nvar CustomWidgetSetting = /** @class */ (function (_super) {\n __extends(CustomWidgetSetting, _super);\n function CustomWidgetSetting() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], CustomWidgetSetting.prototype, \"template\", void 0);\n __decorate([\n Property('')\n ], CustomWidgetSetting.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], CustomWidgetSetting.prototype, \"templateId\", void 0);\n __decorate([\n Property('')\n ], CustomWidgetSetting.prototype, \"fieldName\", void 0);\n return CustomWidgetSetting;\n}(ChildProperty));\nexport { CustomWidgetSetting };\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 * @private\n */\n function FormRenderer(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.processedSchemaCache = { version: '1.0.0', components: [] };\n _this.l10n = new L10n('form-renderer', defaultLocale, _this.locale);\n /**\n * @private\n */\n _this.formState = { values: Object.create(null), errors: Object.create(null) };\n _this.validator = null;\n _this.inputRefs = {};\n _this.conditionalValueApplied = {};\n _this.expressionEngine = null;\n _this.expressionDependencyGraph = {};\n _this.expressionEvaluationInProgress = false;\n _this.previousFormValues = {};\n _this.computedFieldNames = new Set();\n _this.customValidationEngine = new CustomValidationEngine();\n _this.currentFormValues = {};\n _this.isInitialized = false;\n _this.hasLayoutComponentsCache = false;\n _this.idToLabelCache = {};\n _this.initialValuesCache = {};\n _this.renderedInstances = [];\n _this.tooltipRefs = {};\n _this.createdFired = false;\n _this.rerenderScheduled = false;\n _this.conditionalTriggerFieldIds = new Set();\n _this.preservedFields = new Map();\n _this.consumerDependencyMap = new Map();\n /**\n * @private\n */\n _this.pendingChangedFieldIds = new Set();\n return _this;\n }\n FormRenderer_1 = FormRenderer;\n /**\n * @private\n */\n FormRenderer.prototype.getModuleName = function () {\n return 'form-renderer';\n };\n /**\n * @private\n */\n FormRenderer.prototype.getPersistData = function () {\n return this.addOnPersist(['formState', JSON.stringify(this.formState)]);\n };\n /**\n * @private\n */\n FormRenderer.prototype.preRender = function () {\n enableRipple(true);\n this.createdFired = false;\n this.expressionEngine = new ExpressionEngine();\n };\n /**\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 if (!this.isInitialized) {\n this.isInitialized = true;\n }\n if (this.isReact && this.portals) {\n this.renderReactTemplates();\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 _this.refreshRenderedComponent(component, rendered);\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 FormRenderer.prototype.refreshRenderedComponent = function (component, rendered) {\n var _this = this;\n var componentRoot = rendered;\n if (component.type === 'tabs') {\n componentRoot = rendered.querySelector(\"#\" + component.id + \".e-control.e-tab\") || rendered;\n }\n else {\n componentRoot = rendered.querySelector(\"[data-field-id=\\\"\" + component.id + \"\\\"]\") || rendered;\n }\n if (component.type === 'richTextEditor') {\n var rteElement = componentRoot.querySelector('.e-richtexteditor');\n var rteInstance = rteElement ? getComponent(rteElement, 'richtexteditor') : null;\n if (rteInstance) {\n rteInstance.refreshUI();\n }\n }\n else if (component.type === 'dataGrid') {\n var toolbarElement = componentRoot.querySelector('.e-control.e-toolbar');\n var toolbarInstance = toolbarElement ? getComponent(toolbarElement, 'toolbar') : null;\n if (toolbarInstance) {\n toolbarInstance.refresh();\n }\n }\n else if (component.type === 'imageEditor') {\n var editorElement = componentRoot.querySelector('.e-control.e-image-editor');\n var editorInstance = editorElement ? getComponent(editorElement, 'image-editor') : null;\n if (editorInstance) {\n editorInstance.refresh();\n }\n }\n else if (component.type === 'tabs') {\n var tabInstance = getComponent(componentRoot, 'tab');\n if (tabInstance) {\n tabInstance.refreshOverflow();\n }\n }\n if (component.children) {\n component.children.forEach(function (child) { return _this.refreshRenderedComponent(child, rendered); });\n }\n if (component.tableCells) {\n component.tableCells.forEach(function (row) {\n row.forEach(function (cell) { return cell.forEach(function (child) { return _this.refreshRenderedComponent(child, rendered); }); });\n });\n }\n if (component.tabItems) {\n component.tabItems.forEach(function (tab) {\n if (tab.content) {\n tab.content.forEach(function (child) { return _this.refreshRenderedComponent(child, rendered); });\n }\n });\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, this.dataModel || undefined);\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 * @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 * @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 * @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 FormRenderer.prototype.getDataModelByName = function () {\n var _this = this;\n var dataModel = {};\n var components = this.collectAllComponents(this.processedSchemaCache.components);\n var componentsById = {};\n components.forEach(function (component) {\n componentsById[component.id] = component;\n });\n Object.keys(this.formState.values).forEach(function (id) {\n var component = componentsById[id];\n if (component && component.name) {\n dataModel[component.name] = _this.formState.values[id];\n }\n });\n return dataModel;\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 * @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 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 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 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 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 self.syncFormStateErrors();\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 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 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 * @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', '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 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, dataModel: _this.getDataModelByName() });\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 skipDefault = false;\n var resolvedWidget = resolveCustomWidget(component, this.customWidgetSettings);\n if (resolvedWidget) {\n var compiled = null;\n try {\n compiled = this.getTemplateFunction(resolvedWidget.entry.template);\n }\n catch (e) {\n if (this.failure) {\n this.trigger('failure', { error: e });\n }\n compiled = null;\n }\n if (compiled) {\n try {\n if (target.parentNode) {\n target.parentNode.removeChild(target);\n }\n var swappedComponent = Object.assign({}, component, {\n id: component.name,\n name: component.id,\n type: inferTypeFromWidget(component.type),\n widget: component.type\n });\n var renderedOut = compiled({\n fieldData: swappedComponent,\n value: formState ? formState.values[component.id] : undefined,\n }, this, 'customWidgetTemplate' + component.id, (this.element.id || 'form-renderer') + 'customWidgetTemplate', this.isStringTemplate, undefined, fieldInput, this.root);\n var outList = void 0;\n if (renderedOut == null) {\n outList = [];\n }\n else if (Array.isArray(renderedOut)) {\n outList = renderedOut;\n }\n else if (typeof renderedOut === 'string') {\n outList = [renderedOut];\n }\n else if (typeof renderedOut === 'object'\n && !renderedOut.nodeType\n && typeof renderedOut.length === 'number'\n && typeof renderedOut.item === 'function') {\n var snapshot = [];\n var list = renderedOut;\n for (var i = 0; i < list.length; i++) {\n snapshot.push(list[i]);\n }\n outList = snapshot;\n }\n else {\n outList = [renderedOut];\n }\n for (var _i = 0, outList_1 = outList; _i < outList_1.length; _i++) {\n var node = outList_1[_i];\n if (node && typeof node === 'object' && node.nodeType) {\n fieldInput.appendChild(node);\n }\n else if (typeof node === 'string') {\n var markup = this.sanitizeTemplateValue(node);\n var span = createElement('span');\n span.innerHTML = markup;\n while (span.firstChild) {\n fieldInput.appendChild(span.firstChild);\n }\n }\n else if (node && typeof node === 'object') {\n throw new Error('Custom widget template for \"' + component.name + '\" returned a ' +\n 'framework object that the vanilla renderer cannot insert. Use the ' +\n 'React/Angular/Vue wrapper (registered templates / portals) for ' +\n 'JSX or platform templates.');\n }\n }\n setInputRef(fieldInput);\n skipDefault = true;\n }\n catch (renderErr) {\n if (this.failure) {\n this.trigger('failure', { error: renderErr });\n }\n skipDefault = false;\n }\n }\n }\n if (!skipDefault) {\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 _a = 0, _b = Object.keys(this.inputRefs); _a < _b.length; _a++) {\n var key = _b[_a];\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 }\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 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 (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 if (resolveCustomWidget(component, this.customWidgetSettings)) {\n return this.renderField(component);\n }\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 form.querySelectorAll('.e-control.e-multiselect.e-lib').forEach(function (cb) {\n (cb.ej2_instances[0]).value = [];\n });\n form.querySelectorAll('.e-control.e-slider.e-lib').forEach(function (slider) {\n (slider.ej2_instances[0]).value = 0;\n });\n form.querySelectorAll('.e-control.e-uploader.e-lib').forEach(function (upload) {\n (upload.ej2_instances[0]).clearAll();\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 if (resolveCustomWidget(component, this.customWidgetSettings)) {\n return this.renderField(component);\n }\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 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 if (!inputElement) {\n return;\n }\n var inputParent = inputElement.parentElement;\n var grandParent = inputParent.parentElement;\n var greatGrandParent = grandParent ? grandParent.parentElement : null;\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 if ((greatGrandParent != null) && (greatGrandParent.classList.contains('e-control-wrapper') || greatGrandParent.classList.contains('e-wrapper'))) {\n greatGrandParent.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 FormRenderer.prototype.collectConditionFieldIds = function (condition, acc) {\n if (!condition) {\n return;\n }\n if (typeof condition.field === 'string') {\n acc.add(condition.field);\n }\n else if (Array.isArray(condition.rules)) {\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 FormRenderer.prototype.buildConditionalDependencyMap = function () {\n var triggers = new Set();\n var consumerDeps = new Map();\n var allComps = this.collectAllComponents(this.processedSchemaCache.components);\n var _loop_3 = function (comp) {\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 _i = 0, conditionKeys_1 = conditionKeys; _i < conditionKeys_1.length; _i++) {\n var key = conditionKeys_1[_i];\n if (conditions[key]) {\n this_1.collectConditionFieldIds(conditions[key], triggers);\n this_1.collectConditionFieldIds(conditions[key], myDeps);\n }\n }\n if (Array.isArray(conditions.conditionalData)) {\n for (var _a = 0, _b = conditions.conditionalData; _a < _b.length; _a++) {\n var item = _b[_a];\n if (item && item.condition) {\n this_1.collectConditionFieldIds(item.condition, triggers);\n this_1.collectConditionFieldIds(item.condition, myDeps);\n }\n if (item && Array.isArray(item.conditions)) {\n for (var _c = 0, _d = item.conditions; _c < _d.length; _c++) {\n var subCond = _d[_c];\n this_1.collectConditionFieldIds(subCond, triggers);\n this_1.collectConditionFieldIds(subCond, myDeps);\n }\n }\n }\n }\n if (conditions.setValueWhen &&\n conditions.setValueWhen.condition) {\n this_1.collectConditionFieldIds(conditions.setValueWhen.condition, triggers);\n this_1.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 var collectMinMaxReferenceIds = function (range) {\n if (!range || range.enabled !== true) {\n return;\n }\n var collectFromBound = function (bound) {\n if (bound && typeof bound === 'object' && typeof bound.field === 'string') {\n triggers.add(bound.field);\n myDeps.add(bound.field);\n }\n };\n collectFromBound(range.minValue);\n collectFromBound(range.maxValue);\n };\n var minMaxRule = comp.minMaxRange;\n if (Array.isArray(minMaxRule)) {\n for (var _e = 0, minMaxRule_1 = minMaxRule; _e < minMaxRule_1.length; _e++) {\n var range = minMaxRule_1[_e];\n collectMinMaxReferenceIds(range);\n }\n }\n var minMaxTimeRule = comp.minMaxTimeRange;\n if (Array.isArray(minMaxTimeRule)) {\n for (var _f = 0, minMaxTimeRule_1 = minMaxTimeRule; _f < minMaxTimeRule_1.length; _f++) {\n var range = minMaxTimeRule_1[_f];\n collectMinMaxReferenceIds(range);\n }\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_1.collectDataSourceReferenceIds(ds.search.key, allComps, triggers);\n this_1.collectDataSourceReferenceIds(ds.search.key, allComps, myDeps);\n }\n if (Array.isArray(ds.filters)) {\n for (var _g = 0, _h = ds.filters; _g < _h.length; _g++) {\n var filter = _h[_g];\n if (typeof filter.value === 'string') {\n this_1.collectDataSourceReferenceIds(filter.value, allComps, triggers);\n this_1.collectDataSourceReferenceIds(filter.value, allComps, myDeps);\n }\n }\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, allComps_1 = allComps; _i < allComps_1.length; _i++) {\n var comp = allComps_1[_i];\n _loop_3(comp);\n }\n this.conditionalTriggerFieldIds = triggers;\n this.consumerDependencyMap = consumerDeps;\n };\n /**\n * @private\n */\n FormRenderer.prototype.isConditionalTrigger = function (fieldId) {\n return this.conditionalTriggerFieldIds.has(fieldId);\n };\n FormRenderer.prototype.getScrollParent = function () {\n var parent = this.element.parentElement;\n while (parent) {\n var style = window.getComputedStyle(parent);\n var overflowY = style.overflowY;\n var overflowX = style.overflowX;\n var canScrollY = (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') &&\n parent.scrollHeight > parent.clientHeight;\n var canScrollX = (overflowX === 'auto' || overflowX === 'scroll' || overflowX === 'overlay') &&\n parent.scrollWidth > parent.clientWidth;\n if (canScrollY || canScrollX) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n /**\n * @private\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) { /* 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 var scrollParent = this.getScrollParent();\n var savedScrollParentTop = scrollParent ? scrollParent.scrollTop : 0;\n var savedScrollParentLeft = scrollParent ? scrollParent.scrollLeft : 0;\n this.preservedFields.clear();\n var allComps = this.collectAllComponents(this.processedSchemaCache.components);\n var _loop_4 = function (comp) {\n if (!FormRenderer_1.PRESERVABLE_TYPES.has(comp.type)) {\n return \"continue\";\n }\n var myDeps = this_2.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_2.element.querySelector(\"[data-field-id=\\\"\" + comp.id + \"\\\"]\");\n if (liveNode && liveNode.parentElement) {\n liveNode.parentElement.removeChild(liveNode);\n this_2.preservedFields.set(comp.id, liveNode);\n }\n };\n var this_2 = this;\n for (var _i = 0, allComps_2 = allComps; _i < allComps_2.length; _i++) {\n var comp = allComps_2[_i];\n _loop_4(comp);\n }\n this.refreshing = true;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\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 if (scrollParent) {\n scrollParent.scrollTop = savedScrollParentTop;\n scrollParent.scrollLeft = savedScrollParentLeft;\n }\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 if (this.preservedFields.size > 0) {\n var stillKept_1 = [];\n this.preservedFields.forEach(function (node, id) {\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 // ignore\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 FormRenderer.prototype.destroyRenderedExcludingPreserved = function () {\n var survived = [];\n var preservedNodes = Array.from(this.preservedFields.values());\n var _loop_5 = 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_3.destroyRenderedInstance(inst);\n }\n };\n var this_3 = this;\n for (var _i = 0, _a = this.renderedInstances; _i < _a.length; _i++) {\n var inst = _a[_i];\n _loop_5(inst);\n }\n this.renderedInstances = survived;\n var inputRefKeys = Object.keys(this.inputRefs);\n var _loop_6 = function (key) {\n var inst = this_4.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_4.inputRefs[key];\n }\n };\n var this_4 = this;\n for (var _b = 0, inputRefKeys_1 = inputRefKeys; _b < inputRefKeys_1.length; _b++) {\n var key = inputRefKeys_1[_b];\n _loop_6(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 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 * @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_7 = 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_7(fieldName);\n }\n if (changedFields.size === 0) {\n return;\n }\n var evaluationOrder = engine.getTopologicalOrder(dependencyGraph);\n var _loop_8 = 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_5.formState) {\n this_5.formState.values[component.id] = result;\n if (this_5.validator) {\n var inputEl = this_5.getInputElementByName(component.id);\n if (inputEl) {\n this_5.syncValueToInput(inputEl, component.id, result);\n }\n }\n }\n }\n }\n catch (error) {\n if (this_5.failure) {\n this_5.trigger('failure', {\n error: error\n });\n }\n }\n }\n };\n var this_5 = this;\n for (var _b = 0, evaluationOrder_1 = evaluationOrder; _b < evaluationOrder_1.length; _b++) {\n var fieldName = evaluationOrder_1[_b];\n _loop_8(fieldName);\n }\n Object.assign(previousValues, contextValues);\n }\n finally {\n this.expressionEvaluationInProgress = false;\n }\n };\n /**\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.\n * Use this to call Syncfusion component methods and properties.\n *\n * @param {string} name - Specifies the name for the built-in Syncfusion component.\n * @returns {object | null} - Specifies the instance of the Syncfusion component in the form.\n */\n FormRenderer.prototype.getComponent = function (name) {\n return this.inputRefs[name] || null;\n };\n /**\n * Programmatically sets a form field's value for user edits.\n *\n * @param {string} fieldName - The field's `name` (the schema property's `name`).\n * @param {any} value - The new value to set.\n * @returns void\n */\n FormRenderer.prototype.setFieldValue = function (fieldName, value) {\n var allComponents = this.collectAllComponents(this.processedSchemaCache.components || []);\n var component = allComponents.find(function (c) { return c.name === fieldName; });\n if (!component) {\n return;\n }\n if (this.formState) {\n this.formState.values[component.id] = value;\n }\n var inputEl = this.getInputElementByName(component.id);\n if (inputEl) {\n this.syncValueToInput(inputEl, component.id, value);\n }\n this.afterValueChange(component.id);\n };\n /**\n * @private\n */\n FormRenderer.prototype.syncValueToInput = function (inputEl, fieldId, value) {\n if (!inputEl) {\n return;\n }\n try {\n var nativeInput = (inputEl instanceof HTMLInputElement) ? inputEl : null;\n var isCheckable = !!nativeInput &&\n (nativeInput.type === 'checkbox' || nativeInput.type === 'radio');\n var ej2Inst = inputEl.ej2_instances && inputEl.ej2_instances[0];\n if (ej2Inst) {\n if (isCheckable && typeof ej2Inst.checked !== 'undefined') {\n if (nativeInput.type === 'radio' && typeof ej2Inst.value !== 'undefined') {\n ej2Inst.checked = String(value) === String(ej2Inst.value);\n }\n else {\n ej2Inst.checked = FormRenderer_1.coerceChecked(value);\n }\n }\n else if (typeof ej2Inst.value !== 'undefined') {\n ej2Inst.value = value;\n }\n return;\n }\n if (inputEl instanceof HTMLSelectElement) {\n var strValue = (value === null || value === undefined) ? '' : String(value);\n inputEl.value = strValue;\n if (inputEl.value !== strValue && inputEl.options.length > 0) {\n for (var i = 0; i < inputEl.options.length; i++) {\n if (inputEl.options[i].text === strValue) {\n inputEl.value = inputEl.options[i].value;\n break;\n }\n }\n }\n }\n else if (nativeInput && nativeInput.type === 'radio') {\n var radios = this.element.querySelectorAll(\"input[type=\\\"radio\\\"][name=\\\"\" + fieldId + \"\\\"]\");\n for (var i = 0; i < radios.length; i++) {\n radios[i].checked = String(value) === radios[i].value;\n }\n }\n else if (isCheckable) {\n nativeInput.checked = FormRenderer_1.coerceChecked(value);\n }\n else if (typeof inputEl.value !== 'undefined') {\n inputEl.value = (value === null || value === undefined) ? '' : String(value);\n }\n }\n catch (e) { /* ignore */ }\n };\n /**\n * @private\n */\n FormRenderer.coerceChecked = function (value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'number') {\n return value !== 0;\n }\n if (typeof value === 'string') {\n return value !== '' && value !== 'false' && value !== '0';\n }\n return !!value;\n };\n /**\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.dataModel !== oldProps.dataModel) {\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.customWidgetSettings !== oldProps.customWidgetSettings) {\n reRender = true;\n }\n if (!reRender) {\n return;\n }\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.refreshing = true;\n this.destroyRendered();\n this.removePreviousRoot();\n this.isInitialized = false;\n this.render();\n this.refreshing = false;\n };\n /**\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 * @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 FormRenderer.prototype.getTemplateFunction = function (template) {\n var templateFn = null;\n try {\n if (typeof template === 'string' && template.indexOf('#') !== -1 && document.querySelectorAll(template).length) {\n templateFn = compile(this.sanitizeTemplateValue(document.querySelector(template).innerHTML.trim()));\n }\n else if (typeof template === 'string') {\n templateFn = compile(this.sanitizeTemplateValue(template));\n }\n else {\n templateFn = compile(template);\n }\n }\n catch (e) {\n templateFn = compile(template);\n }\n return templateFn;\n };\n /**\n * @private\n */\n FormRenderer.prototype.sanitizeTemplateValue = function (value) {\n if (this.enableHtmlSanitizer && typeof value === 'string') {\n try {\n return SanitizeHtmlHelper.sanitize(value);\n }\n catch (e) { /* swallow */ }\n }\n return value;\n };\n /**\n * @private\n */\n FormRenderer.prototype.destroy = function () {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\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 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(null)\n ], FormRenderer.prototype, \"dataModel\", 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 Collection([], CustomWidgetSetting)\n ], FormRenderer.prototype, \"customWidgetSettings\", void 0);\n __decorate([\n Property(false)\n ], FormRenderer.prototype, \"enableHtmlSanitizer\", 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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"}