{"version":3,"file":"static/js/FormParagraphText.cdb6f5a4.js","mappings":"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","sources":["components/FormParagraphText/FormParagraphText.styled.ts","components/FormParagraphText/FormParagraphText.tsx","types/EpiElementDependency.ts","utils/evaluteVisibilityFromDependencies.ts"],"sourcesContent":["import { styled } from \"styled-components\";\n\nimport TextBlock from \"components/TextBlock\";\nimport { styleBodyM } from \"style/components/Typography\";\nimport { MQ } from \"style/mediaQueries\";\n\nexport const Text = styled(TextBlock)`\n grid-column: col-start 1 / span 2;\n margin-top: 0.875rem;\n width: 100%;\n\n ${MQ.FROM_M} {\n grid-column: auto / span 6;\n margin-top: 1.3125rem;\n }\n\n ${MQ.FROM_XL} {\n margin-top: 1.75rem;\n }\n\n &:first-child {\n margin-top: 0;\n }\n\n p {\n ${styleBodyM};\n &:first-child {\n margin-top: 0;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n u:has(> a) {\n text-decoration: none;\n }\n`;\n","import React, { ReactElement, useContext } from \"react\";\nimport { ThemeContext, ThemeProvider } from \"styled-components\";\n\nimport { addEditAttributes } from \"utils/episerver\";\nimport evaluteVisibilityFromDependencies from \"utils/evaluteVisibilityFromDependencies\";\n\nimport { Text } from \"./FormParagraphText.styled\";\nimport FormParagraphTextProps from \"./FormParagraphTextProps\";\n\nconst FormParagraphText = ({\n identifier,\n paragraphText,\n dependencies,\n control,\n}: FormParagraphTextProps): ReactElement => {\n const visibleFromDependencies =\n dependencies && control\n ? evaluteVisibilityFromDependencies(dependencies, control)\n : true;\n\n const themeContext = useContext(ThemeContext);\n\n return (\n \n {visibleFromDependencies && (\n \n )}\n \n );\n};\n\nexport default React.memo(FormParagraphText);\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":["Text","styled","TextBlock","withConfig","componentId","MQ","FROM_M","FROM_XL","styleBodyM","FormParagraphText","identifier","paragraphText","dependencies","control","visibleFromDependencies","evaluteVisibilityFromDependencies","themeContext","useContext","ThemeContext","_jsx","ThemeProvider","theme","children","content","areaName","addEditAttributes","React","EpiConditionCombination","EpiDependencyAction","EpiConditionOperator","evaluateConditionByOperator","operator","targetValue","conditionValue","Array","isArray","Equals","includes","NotEquals","Contains","some","value","NotContains","MatchRegularExpression","RegExp","test","NotApplicable","evaluteVisibleFromDependencies","dependency","conditionCombination","action","returnValue","clientsideAction","Show","conditions","elementValues","map","condition","useWatch","name","fieldName","Any","index","fieldValue","elementValue","Boolean","every"],"sourceRoot":""}