{"version":3,"file":"static/js/HiddenField.188b1be3.js","mappings":"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","sources":["components/HiddenField/HiddenField.tsx","types/EpiElementDependency.ts","utils/evaluteVisibilityFromDependencies.ts"],"sourcesContent":["import React, { ReactElement, useEffect } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\n\nimport evaluteVisibilityFromDependencies from \"utils/evaluteVisibilityFromDependencies\";\n\nimport HiddenFieldProps from \"./HiddenFieldProps\";\n\nconst HiddenField = ({\n id,\n identifier,\n predefinedValue,\n elementName,\n className,\n control,\n attributes,\n setValue,\n dependencies,\n}: HiddenFieldProps): ReactElement => {\n const formContext = useFormContext();\n const defaultvalue = predefinedValue || attributes?.value || \"\";\n const visibleFromDependencies =\n dependencies && control\n ? evaluteVisibilityFromDependencies(dependencies, control)\n : true;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const updateHidden = (event: any) => {\n if (\n event.detail?.value &&\n (event.detail.id === id || event.detail.id === identifier)\n ) {\n setValue &&\n elementName &&\n setValue(elementName, event.detail.value);\n }\n };\n\n React.useEffect(() => {\n window.addEventListener(\"updateHidden\", updateHidden);\n\n // cleanup listeners\n return () => {\n window.removeEventListener(\"updateHidden\", updateHidden);\n };\n });\n\n useEffect(() => {\n if (elementName && setValue)\n if (visibleFromDependencies) setValue(elementName, defaultvalue);\n else formContext.unregister(elementName);\n }, [visibleFromDependencies]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n {visibleFromDependencies && (\n (\n \n )}\n />\n )}\n \n );\n};\n\nexport default React.memo(HiddenField);\n","export default interface EpiElementDependency {\n action?: {\n displayName?: string;\n name?: string;\n order?: number;\n clientsideAction?: EpiDependencyAction;\n };\n conditionCombination?: EpiConditionCombination;\n conditions: EpiCondition[];\n}\n\nexport interface EpiCondition {\n fieldName: string;\n operator: EpiConditionOperator;\n fieldValue: string;\n}\n\nexport enum EpiConditionCombination {\n All = \"All\",\n Any = \"Any\",\n}\n\nexport enum EpiDependencyAction {\n Hide = \"hide\",\n Show = \"show\",\n}\n\nexport enum EpiConditionOperator {\n NotApplicable = \"NotApplicable\",\n MatchRegularExpression = \"MatchRegularExpression\",\n Equals = \"Equals\",\n NotEquals = \"NotEquals\",\n Contains = \"Contains\",\n NotContains = \"NotContains\",\n}\n","import { useWatch, Control } from \"react-hook-form\";\n\nimport EpiElementDependency, {\n EpiConditionCombination,\n EpiConditionOperator,\n EpiDependencyAction,\n} from \"types/EpiElementDependency\";\n\nconst evaluateConditionByOperator = (\n operator: EpiConditionOperator,\n targetValue: string | string[],\n conditionValue: string,\n): boolean => {\n if (typeof targetValue === \"undefined\") return false;\n\n if (!Array.isArray(targetValue))\n switch (operator) {\n case EpiConditionOperator.Equals:\n return targetValue === conditionValue;\n case EpiConditionOperator.NotEquals:\n return targetValue !== conditionValue;\n case EpiConditionOperator.Contains:\n return targetValue.includes(conditionValue);\n case EpiConditionOperator.NotContains:\n return !targetValue.includes(conditionValue);\n case EpiConditionOperator.MatchRegularExpression:\n return new RegExp(conditionValue).test(targetValue);\n case EpiConditionOperator.NotApplicable:\n return true;\n default:\n return false;\n }\n else\n switch (operator) {\n case EpiConditionOperator.Equals:\n return targetValue.includes(conditionValue);\n case EpiConditionOperator.NotEquals:\n return !targetValue.includes(conditionValue);\n case EpiConditionOperator.Contains:\n return targetValue.some((value) =>\n value.includes(conditionValue),\n );\n case EpiConditionOperator.NotContains:\n return !targetValue.some((value) =>\n value.includes(conditionValue),\n );\n case EpiConditionOperator.MatchRegularExpression:\n return targetValue.some((value) =>\n new RegExp(conditionValue).test(value),\n );\n case EpiConditionOperator.NotApplicable:\n return true;\n default:\n return false;\n }\n};\n\nconst evaluteVisibleFromDependencies = (\n dependency: EpiElementDependency | undefined,\n control: Control, any>, // eslint-disable-line @typescript-eslint/no-explicit-any\n): boolean => {\n if (dependency && control) {\n const { conditionCombination, action } = dependency;\n const returnValue =\n action?.clientsideAction === EpiDependencyAction.Show;\n\n const conditions = dependency.conditions || [];\n const elementValues = conditions.map(\n (condition) =>\n useWatch({\n control,\n name: condition.fieldName,\n }) || \"\",\n );\n\n if (conditionCombination === EpiConditionCombination.Any)\n return conditions\n .map((condition, index) => {\n const { operator, fieldValue } = condition;\n const elementValue = elementValues[index];\n return evaluateConditionByOperator(\n operator,\n elementValue,\n fieldValue || \"\",\n )\n ? returnValue\n : !returnValue;\n })\n .some(Boolean);\n else\n return conditions.every((condition, index) => {\n const { operator, fieldValue } = condition;\n const elementValue = elementValues[index];\n return evaluateConditionByOperator(\n operator,\n elementValue,\n fieldValue || \"\",\n )\n ? returnValue\n : !returnValue;\n });\n }\n return true;\n};\n\nexport default evaluteVisibleFromDependencies;\n"],"names":["HiddenField","id","identifier","predefinedValue","elementName","className","control","attributes","setValue","dependencies","formContext","useFormContext","defaultvalue","value","visibleFromDependencies","evaluteVisibilityFromDependencies","updateHidden","event","_event$detail","detail","React","window","addEventListener","removeEventListener","useEffect","unregister","_jsx","_Fragment","children","Controller","name","defaultValue","render","field","type","EpiConditionCombination","EpiDependencyAction","EpiConditionOperator","evaluateConditionByOperator","operator","targetValue","conditionValue","Array","isArray","Equals","includes","NotEquals","Contains","some","NotContains","MatchRegularExpression","RegExp","test","NotApplicable","evaluteVisibleFromDependencies","dependency","conditionCombination","action","returnValue","clientsideAction","Show","conditions","elementValues","map","condition","useWatch","fieldName","Any","index","fieldValue","elementValue","Boolean","every"],"sourceRoot":""}