@bpmn-io/form-js-viewer 1.11.0-alpha.0 → 1.11.0

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.
Files changed (47) hide show
  1. package/README.md +1 -0
  2. package/dist/assets/form-js-base.css +5 -0
  3. package/dist/assets/form-js.css +5 -0
  4. package/dist/index.cjs +316 -427
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.es.js +316 -427
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/types/Form.d.ts +1 -2
  9. package/dist/types/core/FieldFactory.d.ts +1 -1
  10. package/dist/types/core/FormFieldInstanceRegistry.d.ts +2 -3
  11. package/dist/types/core/index.d.ts +0 -1
  12. package/dist/types/features/repeatRender/RepeatRenderManager.d.ts +4 -9
  13. package/dist/types/index.d.ts +1 -1
  14. package/dist/types/render/components/Util.d.ts +1 -0
  15. package/dist/types/render/components/form-fields/Button.d.ts +2 -1
  16. package/dist/types/render/components/form-fields/Checkbox.d.ts +4 -2
  17. package/dist/types/render/components/form-fields/Checklist.d.ts +2 -3
  18. package/dist/types/render/components/form-fields/Datetime.d.ts +3 -2
  19. package/dist/types/render/components/form-fields/Default.d.ts +1 -0
  20. package/dist/types/render/components/form-fields/DynamicList.d.ts +2 -1
  21. package/dist/types/render/components/form-fields/ExpressionField.d.ts +1 -1
  22. package/dist/types/render/components/form-fields/FilePicker.d.ts +5 -4
  23. package/dist/types/render/components/form-fields/Group.d.ts +2 -1
  24. package/dist/types/render/components/form-fields/Html.d.ts +1 -1
  25. package/dist/types/render/components/form-fields/IFrame.d.ts +2 -1
  26. package/dist/types/render/components/form-fields/Image.d.ts +2 -1
  27. package/dist/types/render/components/form-fields/Number.d.ts +4 -2
  28. package/dist/types/render/components/form-fields/Radio.d.ts +2 -3
  29. package/dist/types/render/components/form-fields/Select.d.ts +2 -3
  30. package/dist/types/render/components/form-fields/Separator.d.ts +1 -1
  31. package/dist/types/render/components/form-fields/Spacer.d.ts +1 -1
  32. package/dist/types/render/components/form-fields/Table.d.ts +2 -1
  33. package/dist/types/render/components/form-fields/Taglist.d.ts +2 -3
  34. package/dist/types/render/components/form-fields/Text.d.ts +2 -1
  35. package/dist/types/render/components/form-fields/Textarea.d.ts +4 -2
  36. package/dist/types/render/components/form-fields/Textfield.d.ts +4 -2
  37. package/dist/types/render/components/index.d.ts +1 -1
  38. package/dist/types/render/hooks/index.d.ts +0 -1
  39. package/dist/types/render/hooks/useExpressionEvaluation.d.ts +4 -3
  40. package/dist/types/render/hooks/useService.d.ts +1 -7
  41. package/dist/types/render/index.d.ts +0 -2
  42. package/dist/types/util/expressions.d.ts +4 -3
  43. package/package.json +8 -8
  44. package/dist/types/render/FileRegistry.d.ts +0 -52
  45. package/dist/types/render/hooks/useBooleanExpressionEvaluation.d.ts +0 -9
  46. package/dist/types/util/constants/FilePickerConstants.d.ts +0 -1
  47. package/dist/types/util/extractFileReferencesFromRemovedData.d.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/features/expressionLanguage/variableExtractionHelpers.js","../src/features/expressionLanguage/FeelExpressionLanguage.js","../src/features/expressionLanguage/FeelersTemplating.js","../src/util/constants/DatetimeConstants.js","../src/util/constants/OptionsSourceConstants.js","../src/util/constants/IFrameConstants.js","../src/util/injector.js","../src/util/form.js","../src/render/components/Util.js","../src/render/context/FormRenderContext.js","../src/render/context/LocalExpressionContext.js","../src/render/context/FormContext.js","../src/render/hooks/useService.js","../src/util/simple.js","../src/util/expressions.js","../src/render/hooks/useCondition.js","../src/render/components/util/optionsUtil.js","../src/render/hooks/useExpressionEvaluation.js","../src/render/hooks/useDeepCompareMemoize.js","../src/render/hooks/useOptionsAsync.js","../src/render/hooks/useDangerousHTMLWrapper.js","../src/render/hooks/useSecurityAttributesMap.js","../src/render/hooks/useGetLabelCorrelation.js","../src/render/components/util/domUtil.js","../src/render/hooks/useScrollIntoView.js","../src/render/hooks/useBooleanExpressionEvaluation.js","../src/render/hooks/useFilteredFormData.js","../src/render/hooks/useKeyDownAction.js","../src/render/hooks/useReadonly.js","../src/render/hooks/usePrevious.js","../src/render/hooks/useFlushDebounce.js","../src/render/hooks/useTemplateEvaluation.js","../src/render/hooks/useSingleLineTemplateEvaluation.js","../src/render/components/util/dateTimeUtil.js","../src/render/components/util/sanitizerUtil.js","../src/render/hooks/useCleanupSingleSelectValue.js","../src/render/hooks/useCleanupMultiSelectValue.js","../src/render/components/form-fields/Button.js","../src/render/components/Description.js","../src/render/components/Errors.js","../src/render/components/Label.js","../src/render/components/form-fields/Checkbox.js","../src/render/components/form-fields/Checklist.js","../src/render/components/FormField.js","../src/render/components/form-fields/parts/ChildrenRenderer.js","../src/render/components/form-fields/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/util/localisationUtil.js","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/form-fields/Group.js","../src/render/components/form-fields/IFrame.js","../src/render/components/icons/Button.svg","../src/render/components/icons/Checkbox.svg","../src/render/components/icons/Checklist.svg","../src/render/components/icons/Datetime.svg","../src/render/components/icons/Taglist.svg","../src/render/components/icons/Form.svg","../src/render/components/icons/Group.svg","../src/render/components/icons/Number.svg","../src/render/components/icons/Radio.svg","../src/render/components/icons/Select.svg","../src/render/components/icons/Separator.svg","../src/render/components/icons/Spacer.svg","../src/render/components/icons/DynamicList.svg","../src/render/components/icons/Text.svg","../src/render/components/icons/HTML.svg","../src/render/components/icons/ExpressionField.svg","../src/render/components/icons/Textfield.svg","../src/render/components/icons/Textarea.svg","../src/render/components/icons/IFrame.svg","../src/render/components/icons/Image.svg","../src/render/components/icons/Table.svg","../src/render/components/icons/FilePicker.svg","../src/render/components/icons/index.js","../src/render/components/form-fields/Image.js","../src/render/components/form-fields/parts/TemplatedInputAdorner.js","../src/render/components/form-fields/icons/AngelDown.svg","../src/render/components/form-fields/icons/AngelUp.svg","../src/render/components/util/numberFieldUtil.js","../src/render/components/form-fields/Number.js","../src/render/components/form-fields/Radio.js","../src/render/components/form-fields/icons/XMark.svg","../src/render/components/form-fields/parts/SearchableSelect.js","../src/render/components/form-fields/parts/SimpleSelect.js","../src/render/components/form-fields/Select.js","../src/render/components/form-fields/Separator.js","../src/render/components/form-fields/Spacer.js","../src/render/components/form-fields/DynamicList.js","../src/render/components/form-fields/parts/SkipLink.js","../src/render/components/form-fields/Taglist.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/Text.js","../src/render/components/form-fields/Html.js","../src/render/components/form-fields/ExpressionField.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.js","../src/render/components/form-fields/icons/ArrowDown.svg","../src/render/components/form-fields/icons/ArrowUp.svg","../src/render/components/form-fields/icons/CaretLeft.svg","../src/render/components/form-fields/icons/CaretRight.svg","../src/render/components/form-fields/Table.js","../src/util/constants/FilePickerConstants.js","../src/render/components/form-fields/FilePicker.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/index.js","../src/render/FormFields.js","../src/util/getSchemaVariables.js","../src/util/structure.js","../src/features/expressionLanguage/ConditionChecker.js","../src/features/expressionLanguage/index.js","../src/features/expressionField/ExpressionLoopPreventer.js","../src/features/expressionField/index.js","../src/features/markdown/MarkdownRenderer.js","../src/features/markdown/index.js","../../../node_modules/diagram-js/lib/command/CommandStack.js","../../../node_modules/diagram-js/lib/command/index.js","../src/features/viewerCommands/cmd/UpdateFieldValidationHandler.js","../src/features/viewerCommands/cmd/UpdateFieldInstanceValidationHandler.js","../src/features/viewerCommands/ViewerCommands.js","../src/features/viewerCommands/index.js","../src/render/components/form-fields/icons/Expand.svg","../src/render/components/form-fields/icons/Collapse.svg","../src/render/components/form-fields/icons/Add.svg","../src/render/components/form-fields/icons/Delete.svg","../src/features/repeatRender/RepeatRenderManager.js","../src/features/repeatRender/index.js","../../../node_modules/diagram-js/lib/core/EventBus.js","../src/core/Validator.js","../src/core/Importer.js","../src/core/FieldFactory.js","../src/core/PathRegistry.js","../src/core/FormLayouter.js","../src/core/FormFieldRegistry.js","../src/core/FormFieldInstanceRegistry.js","../src/render/Renderer.js","../src/util/extractFileReferencesFromRemovedData.js","../src/render/FileRegistry.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { parseExpression, parseUnaryTests } from 'feelin';\n\nexport const getFlavouredFeelVariableNames = (feelString, feelFlavour = 'expression', options = {}) => {\n const { depth = 0, specialDepthAccessors = {} } = options;\n\n if (!['expression', 'unaryTest'].includes(feelFlavour)) return [];\n\n const tree = feelFlavour === 'expression' ? parseExpression(feelString) : parseUnaryTests(feelString);\n\n const simpleExpressionTree = _buildSimpleFeelStructureTree(tree, feelString);\n\n const variables = (function _unfoldVariables(node) {\n if (node.name === 'PathExpression') {\n // if the path is built on top of a context, we process that context and\n // ignore the rest of the path expression, as it is not relevant for variable extraction\n const pathRoot = _linearizePathExpression(node)[0];\n if (pathRoot.name === 'Context') {\n return _unfoldVariables(pathRoot);\n }\n\n if (Object.keys(specialDepthAccessors).length === 0) {\n return depth === 0 ? [_getVariableNameAtPathIndex(node, 0)] : [];\n }\n\n // if using special depth accessors, use a more complex extraction\n return Array.from(_smartExtractVariableNames(node, depth, specialDepthAccessors));\n }\n\n if (depth === 0 && node.name === 'VariableName') return [node.variableName];\n\n // for any other kind of node, traverse its children and flatten the result\n if (node.children) {\n const variables = node.children.reduce((acc, child) => {\n return acc.concat(_unfoldVariables(child));\n }, []);\n\n // if we are within a filter context, we need to remove the item variable as it is used for iteration there\n return node.name === 'FilterContext' ? variables.filter((name) => name !== 'item') : variables;\n }\n\n return [];\n })(simpleExpressionTree);\n\n return [...new Set(variables)];\n};\n\n/**\n * Get the variable name at the specified index in a given path expression.\n *\n * @param {Object} root - The root node of the path expression tree.\n * @param {number} index - The index of the variable name to retrieve.\n * @returns {string|null} The variable name at the specified index or null if index is out of bounds.\n */\nconst _getVariableNameAtPathIndex = (root, index) => {\n const nodes = _linearizePathExpression(root);\n return nodes[index].variableName || null;\n};\n\n/**\n * Extracts the variables which are required of the external context for a given path expression.\n * This is done by traversing the path expression tree and keeping track of the current depth relative to the external context.\n *\n * @param {Object} node - The root node of the path expression tree.\n * @param {number} initialDepth - The depth at which the root node is located in the outer context.\n * @param {Object} specialDepthAccessors - Definitions of special keywords which represent more complex accesses of the outer context.\n * @returns {Set} - A set containing the extracted variable names.\n */\nconst _smartExtractVariableNames = (node, initialDepth, specialDepthAccessors) => {\n // depth info represents the previous (initialised as null) and current depth of the current accessor in the path expression\n // we track multiple of these to account for the fact that a path expression may be ambiguous due to special keywords\n let accessorDepthInfos = [{ previous: null, current: initialDepth - 1 }];\n const extractedVariables = new Set();\n const pathNodes = _linearizePathExpression(node);\n\n for (let i = 0; i < pathNodes.length; i++) {\n const currentAccessor = pathNodes[i].variableName;\n\n if (currentAccessor in specialDepthAccessors) {\n const depthOffsets = specialDepthAccessors[currentAccessor];\n\n // if the current accessor is a special keyword, we need to expand the current depth info set\n // this is done to account for the ambiguity of keywords like parent, which may be used to access\n // the parent of the current node, or a child variable of the same name\n accessorDepthInfos = depthOffsets\n .reduce((accumulator, offset) => {\n return [\n ...accumulator,\n ...accessorDepthInfos.map((depthInfo) => ({\n previous: depthInfo.current,\n current: depthInfo.current + offset,\n })),\n ];\n }, [])\n .filter((depthInfo) => depthInfo.current >= -1); // discard all depth infos which are out of bounds\n } else {\n // if the current accessor is not a special keyword, we know it's simply accessing a child\n // hence we are now one level deeper in the tree and simply increment\n accessorDepthInfos = accessorDepthInfos.map((depthInfo) => ({\n previous: depthInfo.current,\n current: depthInfo.current + 1,\n }));\n }\n\n // finally, we check if for the current accessor, there is a scenario where:\n // previous it was at depth -1 (i.e. the root context), and is now at depth 0 (i.e. a variable)\n // these are the variables we need to request, so we add them to the set\n if (accessorDepthInfos.some((depthInfo) => depthInfo.previous === -1 && depthInfo.current === 0)) {\n extractedVariables.add(currentAccessor);\n }\n }\n\n // we return a set to avoid duplicates\n return new Set(extractedVariables);\n};\n\n/**\n * Deconstructs a path expression tree into an array of components.\n *\n * @param {Object} root - The root node of the path expression tree.\n * @returns {Array<object>} An array of components in the path expression, in the correct order.\n */\nconst _linearizePathExpression = (root) => {\n let node = root;\n let parts = [];\n\n // Traverse the tree and collect path components\n while (node.name === 'PathExpression') {\n parts.push(node.children[1]);\n node = node.children[0];\n }\n\n // Add the last component to the array\n parts.push(node);\n\n // Reverse and return the array to get the correct order\n return parts.reverse();\n};\n\n/**\n * Builds a simplified feel structure tree from the given parse tree and feel string.\n * The nodes follow this structure: `{ name: string, children: Array, variableName?: string }`\n *\n * @param {Object} parseTree - The parse tree generated by a parser.\n * @param {string} feelString - The feel string used for parsing.\n * @returns {Object} The simplified feel structure tree.\n */\nconst _buildSimpleFeelStructureTree = (parseTree, feelString) => {\n const stack = [{ children: [] }];\n parseTree.iterate({\n enter: (node) => {\n const nodeRepresentation = {\n name: node.type.name,\n children: [],\n };\n\n if (node.type.name === 'VariableName') {\n nodeRepresentation.variableName = feelString.slice(node.from, node.to);\n }\n\n stack.push(nodeRepresentation);\n },\n leave: () => {\n const result = stack.pop();\n const parent = stack[stack.length - 1];\n parent.children.push(result);\n },\n });\n\n return _extractFilterExpressions(stack[0].children[0]);\n};\n\n/**\n * Restructure the tree in such a way to bring filters (which create new contexts) to the root of the tree.\n * This is done to simplify the extraction of variables and match the context hierarchy.\n */\nconst _extractFilterExpressions = (tree) => {\n const flattenedExpressionTree = {\n name: 'Root',\n children: [tree],\n };\n\n const iterate = (node) => {\n if (node.children) {\n for (let x = 0; x < node.children.length; x++) {\n if (node.children[x].name === 'FilterExpression') {\n const filterTarget = node.children[x].children[0];\n const filterExpression = node.children[x].children[2];\n\n // bypass the filter expression\n node.children[x] = filterTarget;\n\n const taggedFilterExpression = {\n name: 'FilterContext',\n children: [filterExpression],\n };\n\n // append the filter expression to the root\n flattenedExpressionTree.children.push(taggedFilterExpression);\n\n // recursively iterate the expression\n iterate(filterExpression);\n } else {\n iterate(node.children[x]);\n }\n }\n }\n };\n\n iterate(tree);\n\n return flattenedExpressionTree;\n};\n","import { evaluate } from 'feelin';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport class FeelExpressionLanguage {\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Determines if the given value is a FEEL expression.\n *\n * @param {any} value\n * @returns {boolean}\n *\n */\n isExpression(value) {\n return isString(value) && value.startsWith('=');\n }\n\n /**\n * Retrieve variable names from a given FEEL expression.\n *\n * @param {string} expression\n * @param {object} [options]\n * @param {string} [options.type]\n *\n * @returns {string[]}\n */\n getVariableNames(expression, options = {}) {\n const { type = 'expression' } = options;\n\n if (!this.isExpression(expression)) {\n return [];\n }\n\n if (!['unaryTest', 'expression'].includes(type)) {\n throw new Error('Unknown expression type: ' + type);\n }\n\n return getFlavouredFeelVariableNames(expression, type);\n }\n\n /**\n * Evaluate an expression.\n *\n * @param {string} expression\n * @param {import('../../types').Data} [data]\n *\n * @returns {any}\n */\n evaluate(expression, data = {}) {\n if (!expression) {\n return null;\n }\n\n if (!isString(expression) || !expression.startsWith('=')) {\n return null;\n }\n\n try {\n const result = evaluate(expression.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n}\n\nFeelExpressionLanguage.$inject = ['eventBus'];\n","import { parser as feelersParser, buildSimpleTree, evaluate as evaluateFeelers } from 'feelers';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport class FeelersTemplating {\n constructor() {}\n\n /**\n * Determines if the given value is a feelers template.\n *\n * @param {any} value\n * @returns {boolean}\n *\n */\n isTemplate(value) {\n return isString(value) && (value.startsWith('=') || /{{.*?}}/.test(value));\n }\n\n /**\n * Retrieve variable names from a given feelers template.\n *\n * @param {string} template\n *\n * @returns {string[]}\n */\n getVariableNames(template) {\n if (!this.isTemplate(template)) {\n return [];\n }\n\n const expressions = this._extractExpressionsWithDepth(template);\n\n // defines special accessors, and the change(s) in depth they could imply (e.g. parent can be used to access the parent context (depth - 1) or a child variable named parent (depth + 1)\n const specialDepthAccessors = {\n parent: [-1, 1],\n _parent_: [-1],\n this: [0, 1],\n _this_: [0],\n };\n\n return expressions.reduce((variables, { expression, depth }) => {\n return variables.concat(\n getFlavouredFeelVariableNames(expression, 'expression', { depth, specialDepthAccessors }),\n );\n }, []);\n }\n\n /**\n * Evaluate a template.\n *\n * @param {string} template\n * @param {Object<string, any>} context\n * @param {Object} options\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.buildDebugString]\n * @param {Function} [options.sanitizer]\n *\n * @returns\n */\n evaluate(template, context = {}, options = {}) {\n const {\n debug = false,\n strict = false,\n buildDebugString = (err) => ' {{⚠}} ',\n sanitizer = (value) => value,\n } = options;\n\n return evaluateFeelers(template, context, { debug, strict, buildDebugString, sanitizer });\n }\n\n /**\n * @typedef {Object} ExpressionWithDepth\n * @property {number} depth - The depth of the expression in the syntax tree.\n * @property {string} expression - The extracted expression\n */\n\n /**\n * Extracts all feel expressions in the template along with their depth in the syntax tree.\n * The depth is incremented for child expressions of loops to account for context drilling.\n\n * @name extractExpressionsWithDepth\n * @param {string} template - A feelers template string.\n * @returns {Array<ExpressionWithDepth>} An array of objects, each containing the depth and the extracted expression.\n *\n * @example\n * const template = \"Hello {{user}}, you have:{{#loop items}}\\n- {{amount}} {{name}}{{/loop}}.\";\n * const extractedExpressions = _extractExpressionsWithDepth(template);\n */\n _extractExpressionsWithDepth(template) {\n // build simplified feelers syntax tree\n const parseTree = feelersParser.parse(template);\n const tree = buildSimpleTree(parseTree, template);\n\n return (function _traverse(n, depth = 0) {\n if (['Feel', 'FeelBlock'].includes(n.name)) {\n return [{ depth, expression: n.content }];\n }\n\n if (n.name === 'LoopSpanner') {\n const loopExpression = n.children[0].content;\n const childResults = n.children.slice(1).reduce((acc, child) => {\n return acc.concat(_traverse(child, depth + 1));\n }, []);\n return [{ depth, expression: loopExpression }, ...childResults];\n }\n\n return n.children.reduce((acc, child) => {\n return acc.concat(_traverse(child, depth));\n }, []);\n })(tree);\n }\n}\n\nFeelersTemplating.$inject = [];\n","// config ///////////////////\n\nexport const MINUTES_IN_DAY = 60 * 24;\n\nexport const DATETIME_SUBTYPES = {\n DATE: 'date',\n TIME: 'time',\n DATETIME: 'datetime',\n};\n\nexport const TIME_SERIALISING_FORMATS = {\n UTC_OFFSET: 'utc_offset',\n UTC_NORMALIZED: 'utc_normalized',\n NO_TIMEZONE: 'no_timezone',\n};\n\nexport const DATETIME_SUBTYPES_LABELS = {\n [DATETIME_SUBTYPES.DATE]: 'Date',\n [DATETIME_SUBTYPES.TIME]: 'Time',\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time',\n};\n\nexport const TIME_SERIALISINGFORMAT_LABELS = {\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone',\n};\n\nexport const DATETIME_SUBTYPE_PATH = ['subtype'];\nexport const DATE_LABEL_PATH = ['dateLabel'];\nexport const DATE_DISALLOW_PAST_PATH = ['disallowPassedDates'];\nexport const TIME_LABEL_PATH = ['timeLabel'];\nexport const TIME_USE24H_PATH = ['use24h'];\nexport const TIME_INTERVAL_PATH = ['timeInterval'];\nexport const TIME_SERIALISING_FORMAT_PATH = ['timeSerializingFormat'];\n","import { get } from 'min-dash';\n\n// config ///////////////////\n\nexport const OPTIONS_SOURCES = {\n STATIC: 'static',\n INPUT: 'input',\n EXPRESSION: 'expression',\n};\n\nexport const OPTIONS_SOURCE_DEFAULT = OPTIONS_SOURCES.STATIC;\n\nexport const OPTIONS_SOURCES_LABELS = {\n [OPTIONS_SOURCES.STATIC]: 'Static',\n [OPTIONS_SOURCES.INPUT]: 'Input data',\n [OPTIONS_SOURCES.EXPRESSION]: 'Expression',\n};\n\nexport const OPTIONS_SOURCES_PATHS = {\n [OPTIONS_SOURCES.STATIC]: ['values'],\n [OPTIONS_SOURCES.INPUT]: ['valuesKey'],\n [OPTIONS_SOURCES.EXPRESSION]: ['valuesExpression'],\n};\n\nexport const OPTIONS_SOURCES_DEFAULTS = {\n [OPTIONS_SOURCES.STATIC]: [\n {\n label: 'Value',\n value: 'value',\n },\n ],\n [OPTIONS_SOURCES.INPUT]: '',\n [OPTIONS_SOURCES.EXPRESSION]: '=',\n};\n\n// helpers ///////////////////\n\nexport function getOptionsSource(field) {\n for (const source of Object.values(OPTIONS_SOURCES)) {\n if (get(field, OPTIONS_SOURCES_PATHS[source]) !== undefined) {\n return source;\n }\n }\n\n return OPTIONS_SOURCE_DEFAULT;\n}\n","export const SANDBOX_ATTRIBUTE = 'sandbox';\nexport const ALLOW_ATTRIBUTE = 'allow';\n\n// Cf. https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy#iframe_syntax\nexport const SECURITY_ATTRIBUTES_DEFINITIONS = [\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-scripts',\n property: 'allowScripts',\n label: 'Script execution',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-same-origin',\n property: 'allowSameOrigin',\n label: 'Allow same origin',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'fullscreen',\n property: 'fullscreen',\n label: 'Open in fullscreen',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'geolocation',\n property: 'geolocation',\n label: 'Geolocation',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'camera',\n property: 'camera',\n label: 'Camera access',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'microphone',\n property: 'microphone',\n label: 'Microphone access',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-forms',\n property: 'allowForms',\n label: 'Forms submission',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-modals',\n property: 'allowModals',\n label: 'Open modal windows',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-popups',\n property: 'allowPopups',\n label: 'Open popups',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-top-navigation',\n property: 'allowTopNavigation',\n label: 'Top level navigation',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-storage-access-by-user-activation',\n property: 'allowStorageAccessByUserActivation',\n label: 'Storage access by user',\n },\n];\n","import { Injector } from 'didi';\n\nexport function createInjector(bootstrapModules) {\n const injector = new Injector(bootstrapModules);\n\n injector.init();\n\n return injector;\n}\n","/**\n * @param {string?} prefix\n *\n * @returns Element\n */\nexport function createFormContainer(prefix = 'fjs') {\n const container = document.createElement('div');\n\n container.classList.add(`${prefix}-container`);\n\n return container;\n}\n","import classNames from 'classnames';\n\nexport function formFieldClasses(type, { errors = [], disabled = false, readonly = false } = {}) {\n if (!type) {\n throw new Error('type required');\n }\n\n return classNames('fjs-form-field', `fjs-form-field-${type}`, {\n 'fjs-has-errors': errors.length > 0,\n 'fjs-disabled': disabled,\n 'fjs-readonly': readonly,\n });\n}\n\nexport function gridColumnClasses(formField) {\n const { layout = {} } = formField;\n\n const { columns } = layout;\n\n return classNames(\n 'fjs-layout-column',\n `cds--col${columns ? '-lg-' + columns : ''}`,\n\n // always fall back to top-down on smallest screens\n 'cds--col-sm-16',\n 'cds--col-md-16',\n );\n}\n\nexport function prefixId(id, formId, indexes) {\n let result = 'fjs-form';\n\n if (formId) {\n result += `-${formId}`;\n }\n\n result += `-${id}`;\n\n Object.values(indexes || {}).forEach((index) => {\n result += `_${index}`;\n });\n\n return result;\n}\n","import { createContext } from 'preact';\n\nexport const FormRenderContext = createContext({\n Empty: (props) => {\n return null;\n },\n Hidden: (props) => {\n return null;\n },\n Children: (props) => {\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n Element: (props) => {\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n Row: (props) => {\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n Column: (props) => {\n if (props.field.type === 'default') {\n return props.children;\n }\n\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n hoverInfo: {\n cleanup: () => {},\n },\n});\n","import { createContext } from 'preact';\n\nexport const LocalExpressionContext = createContext({\n data: null,\n this: null,\n parent: null,\n i: null,\n});\n","import { createContext } from 'preact';\n\n/**\n * @param {string} type\n * @param {boolean} [strict]\n *\n * @returns {any}\n */\nfunction getService(type, strict) {}\n\nexport const FormContext = createContext({\n getService,\n formId: null,\n});\n","import { useContext } from 'preact/hooks';\n\nimport { FormContext } from '../context';\n\n/**\n * @template T\n * @param {string} type\n * @param {boolean} [strict=true]\n * @returns {T | null}\n */\nexport function useService(type, strict) {\n const { getService } = useContext(FormContext);\n\n return getService(type, strict);\n}\n","export function isRequired(field) {\n return field.required;\n}\n\nexport function pathParse(path) {\n if (!path) {\n return [];\n }\n\n return path.split('.').map((key) => {\n return isNaN(parseInt(key)) ? key : parseInt(key);\n });\n}\n\nexport function pathsEqual(a, b) {\n return a && b && a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\nconst indices = {};\n\nexport function generateIndexForType(type) {\n if (type in indices) {\n indices[type]++;\n } else {\n indices[type] = 1;\n }\n\n return indices[type];\n}\n\nexport function generateIdForType(type) {\n return `${type}${generateIndexForType(type)}`;\n}\n\n/**\n * @template T\n * @param {T} data\n * @param {(this: any, key: string, value: any) => any} [replacer]\n * @return {T}\n */\nexport function clone(data, replacer) {\n return JSON.parse(JSON.stringify(data, replacer));\n}\n\nexport function runRecursively(formField, fn) {\n const components = formField.components || [];\n\n components.forEach((component, _) => {\n runRecursively(component, fn);\n });\n\n fn(formField);\n}\n\nexport function wrapObjectKeysWithUnderscores(obj) {\n const newObj = {};\n for (const [key, value] of Object.entries(obj)) {\n newObj[`_${key}_`] = value;\n }\n return newObj;\n}\n","import { wrapObjectKeysWithUnderscores } from './simple';\n\n/**\n * Transform a LocalExpressionContext object into a usable FEEL context.\n *\n * @param {Object} context - The LocalExpressionContext object.\n * @returns {Object} The usable FEEL context.\n */\n\nexport function buildExpressionContext(context) {\n const { data, ...specialContextKeys } = context;\n\n return {\n ...specialContextKeys,\n ...data,\n ...wrapObjectKeysWithUnderscores(specialContextKeys),\n };\n}\n\n/**\n * If the value is a valid expression, it is evaluated and returned. Otherwise, it is returned as-is.\n *\n * @param {any} expressionLanguage - The expression language to use.\n * @param {any} value - The static value or expression to evaluate.\n * @param {Object} expressionContextInfo - The context information to use.\n * @returns {any} - Evaluated value or the original value if not an expression.\n */\nexport function runExpressionEvaluation(expressionLanguage, value, expressionContextInfo) {\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\n return expressionLanguage.evaluate(value, buildExpressionContext(expressionContextInfo));\n }\n return value;\n}\n","import { useService } from './useService.js';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext.js';\nimport { buildExpressionContext } from '../../util/expressions.js';\n\n/**\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\n *\n * @param {string | undefined} condition\n *\n * @returns {boolean} true if condition is met or no condition or condition checker exists\n */\nexport function useCondition(condition) {\n const conditionChecker = useService('conditionChecker', false);\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n return useMemo(() => {\n return conditionChecker ? conditionChecker.check(condition, buildExpressionContext(expressionContextInfo)) : null;\n }, [conditionChecker, condition, expressionContextInfo]);\n}\n","import { get, isObject, isString, isNil } from 'min-dash';\n\n/**\n * Returns the options data for the provided if they can be simply determined, ignoring expression defined options.\n *\n * @param {object} formField\n * @param {object} formData\n */\nfunction getSimpleOptionsData(formField, formData) {\n const { valuesExpression: optionsExpression, valuesKey: optionsKey, values: staticOptions } = formField;\n\n if (optionsExpression) {\n return null;\n }\n\n return optionsKey ? get(formData, [optionsKey]) : staticOptions;\n}\n\n/**\n * Normalizes the provided options data to a format that can be used by the select components.\n * If the options data is not valid, it is filtered out.\n *\n * @param {any[]} optionsData\n *\n * @returns {object[]}\n */\nfunction normalizeOptionsData(optionsData) {\n return optionsData\n .filter(_isAllowedValue)\n .map(_normalizeOption)\n .filter((o) => !isNil(o));\n}\n\n/**\n * Creates an options object with default values if no options are provided.\n *\n * @param {object} options\n *\n * @returns {object}\n */\nfunction createEmptyOptions(options = {}) {\n const defaults = {};\n\n // provide default options if valuesKey and valuesExpression are not set\n if (!options.valuesKey && !options.valuesExpression) {\n defaults.values = [\n {\n label: 'Value',\n value: 'value',\n },\n ];\n }\n\n return {\n ...defaults,\n ...options,\n };\n}\n\n/**\n * Converts the provided option to a normalized format.\n * If the option is not valid, null is returned.\n *\n * @param {object} option\n * @param {string} option.label\n * @param {*} option.value\n *\n * @returns\n */\nfunction _normalizeOption(option) {\n // (1) simple primitive case, use it as both label and value\n if (_isAllowedPrimitive(option)) {\n return { value: option, label: `${option}` };\n }\n\n if (isObject(option)) {\n const isValidLabel = _isValidLabel(option.label);\n\n // (2) no label provided, but value is a simple primitive, use it as label and value\n if (!isValidLabel && _isAllowedPrimitive(option.value)) {\n return { value: option.value, label: `${option.value}` };\n }\n\n // (3) both label and value are provided, use them as is\n if (isValidLabel && _isAllowedValue(option.value)) {\n return option;\n }\n }\n\n return null;\n}\n\nfunction _isAllowedPrimitive(value) {\n const isAllowedPrimitiveType = ['number', 'string', 'boolean'].includes(typeof value);\n const isValid = value || value === 0 || value === false;\n\n return isAllowedPrimitiveType && isValid;\n}\n\nfunction _isValidLabel(label) {\n return label && isString(label);\n}\n\nfunction _isAllowedValue(value) {\n if (isObject(value)) {\n return Object.keys(value).length > 0;\n }\n\n return _isAllowedPrimitive(value);\n}\n\nexport { getSimpleOptionsData, normalizeOptionsData, createEmptyOptions };\n","import { useService } from './useService';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { runExpressionEvaluation } from '../../util/expressions';\n\n/**\n * If the value is a valid expression, it is evaluated and returned. Otherwise, it is returned as-is.\n * The function is memoized to minimize re-renders.\n *\n * @param {any} value - A static value or expression to evaluate.\n * @returns {any} - Evaluated value or the original value if not an expression.\n */\nexport function useExpressionEvaluation(value) {\n const expressionLanguage = useService('expressionLanguage');\n const expressionContextInfo = useContext(LocalExpressionContext);\n return useMemo(\n () => runExpressionEvaluation(expressionLanguage, value, expressionContextInfo),\n [expressionLanguage, expressionContextInfo, value],\n );\n}\n","import { useRef } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\n\n/**\n * A custom hook to manage state changes with deep comparison.\n *\n * @template T\n * @param {T} value - The current value to manage.\n * @returns {T} - Returns the current state.\n */\nexport function useDeepCompareMemoize(value) {\n const ref = useRef();\n\n if (!isEqual(value, ref.current)) {\n ref.current = value;\n }\n\n return ref.current;\n}\n","import { useMemo } from 'preact/hooks';\nimport { normalizeOptionsData } from '../components/util/optionsUtil';\nimport { useExpressionEvaluation } from './useExpressionEvaluation';\nimport { useDeepCompareMemoize } from './useDeepCompareMemoize';\nimport { useService } from './useService';\n\n/**\n * @enum { String }\n */\nexport const LOAD_STATES = {\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error',\n};\n\n/**\n * @typedef {Object} OptionsGetter\n * @property {Object[]} options - The options data\n * @property {(LOAD_STATES)} loadState - The options data's loading state, to use for conditional rendering\n */\n\n/**\n * A hook to load options for single and multiselect components.\n *\n * @param {Object} field - The form field to handle options for\n * @return {OptionsGetter} optionsGetter - A options getter object providing loading state and options\n */\nexport function useOptionsAsync(field) {\n const { valuesExpression: optionsExpression, valuesKey: optionsKey, values: staticOptions } = field;\n\n const initialData = useService('form')._getState().initialData;\n const expressionEvaluation = useExpressionEvaluation(optionsExpression);\n const evaluatedOptions = useDeepCompareMemoize(expressionEvaluation || []);\n\n const optionsGetter = useMemo(() => {\n let options = [];\n\n // dynamic options\n if (optionsKey !== undefined) {\n const keyedOptions = (initialData || {})[optionsKey];\n if (keyedOptions && Array.isArray(keyedOptions)) {\n options = keyedOptions;\n }\n\n // static options\n } else if (staticOptions !== undefined) {\n options = Array.isArray(staticOptions) ? staticOptions : [];\n\n // expression\n } else if (optionsExpression && evaluatedOptions && Array.isArray(evaluatedOptions)) {\n options = evaluatedOptions;\n\n // error case\n } else {\n return buildErrorState('No options source defined in the form definition');\n }\n\n // normalize data to support primitives and partially defined objects\n return buildLoadedState(normalizeOptionsData(options));\n }, [optionsKey, staticOptions, initialData, optionsExpression, evaluatedOptions]);\n\n return optionsGetter;\n}\n\nconst buildErrorState = (error) => ({ options: [], error, loadState: LOAD_STATES.ERROR });\n\nconst buildLoadedState = (options) => ({ options, error: undefined, loadState: LOAD_STATES.LOADED });\n","import { useMemo } from 'preact/hooks';\nimport DOMPurify from 'dompurify';\n\n/**\n * Wrap HTML content in a configuration object for dangerouslySetInnerHTML\n * @param {Object} props\n * @param {string} props.html\n * @param {Function} [props.transform]\n * @param {boolean} [props.sanitize = true]\n * @param {boolean} [props.sanitizeStyleTags = true]\n */\nconst useDangerousHTMLWrapper = (props) => {\n const { html, transform = (html) => html, sanitize = true, sanitizeStyleTags = true } = props;\n\n const sanitizedHtml = useMemo(\n () => (sanitize ? DOMPurify.sanitize(html, getDOMPurifyConfig(sanitizeStyleTags)) : html),\n [html, sanitize, sanitizeStyleTags],\n );\n const transformedHtml = useMemo(() => transform(sanitizedHtml), [sanitizedHtml, transform]);\n\n // Return the configuration object for dangerouslySetInnerHTML\n return { __html: transformedHtml };\n};\n\nconst getDOMPurifyConfig = (sanitizeStyleTags) => {\n return {\n FORCE_BODY: true,\n FORBID_TAGS: sanitizeStyleTags ? ['style'] : [],\n };\n};\n\nexport { useDangerousHTMLWrapper };\n","import { get } from 'min-dash';\nimport { SECURITY_ATTRIBUTES_DEFINITIONS, SANDBOX_ATTRIBUTE } from '../../util/constants';\nimport { useMemo } from 'preact/hooks';\nimport { useDeepCompareMemoize } from './useDeepCompareMemoize';\n\n/**\n * A custom hook to build up security attributes from form configuration.\n *\n * @param {Object} security - The security configuration.\n * @returns {Array} - Returns a tuple with sandbox and allow attributes.\n */\nexport function useSecurityAttributesMap(security) {\n const securityMemoized = useDeepCompareMemoize(security);\n\n const sandbox = useMemo(\n () =>\n SECURITY_ATTRIBUTES_DEFINITIONS.filter(({ attribute }) => attribute === SANDBOX_ATTRIBUTE)\n .filter(({ property }) => get(securityMemoized, [property], false))\n .map(({ directive }) => directive)\n .join(' '),\n [securityMemoized],\n );\n\n const allow = useMemo(\n () =>\n SECURITY_ATTRIBUTES_DEFINITIONS.filter(({ attribute }) => attribute !== SANDBOX_ATTRIBUTE)\n .filter(({ property }) => get(securityMemoized, [property], false))\n .map(({ directive }) => directive)\n .join('; '),\n [securityMemoized],\n );\n\n return [sandbox, allow];\n}\n","import { useCallback, useMemo } from 'preact/hooks';\nimport { isObject } from 'min-dash';\n\n/**\n * This hook allows us to retrieve the label from a value in linear time by caching it in a map\n * @param {Array} options\n */\nexport function useGetLabelCorrelation(options) {\n // This allows us to retrieve the label from a value in linear time\n const labelMap = useMemo(\n () => Object.assign({}, ...options.map((o) => ({ [_getValueHash(o.value)]: o.label }))),\n [options],\n );\n return useCallback((value) => labelMap[_getValueHash(value)], [labelMap]);\n}\n\nconst _getValueHash = (value) => {\n return isObject(value) ? JSON.stringify(value) : value;\n};\n","/**\n * Wrap CSS styles with a given prefix.\n *\n * @param {HTMLElement} rootNode\n * @param {string} prefix\n *\n * @returns {HTMLElement}\n */\nfunction wrapCSSStyles(rootNode, prefix) {\n const styleTags = rootNode.querySelectorAll('style');\n styleTags.forEach((styleTag) => {\n const topLevelRules = extractTopLevelRules(styleTag.textContent);\n const scopedCss = topLevelRules\n .map((rule) => {\n const { selector, styles } = splitRule(rule);\n const scopedSelector = scopeSelector(selector, prefix);\n return `${scopedSelector} ${styles}`;\n })\n .join(' ');\n styleTag.textContent = scopedCss;\n });\n\n return rootNode;\n}\n\nfunction extractTopLevelRules(cssString) {\n let cursor = 0;\n let start = 0;\n let level = 0;\n const topLevelRules = [];\n\n while (cursor < cssString.length) {\n if (cssString[cursor] === '{') {\n level++;\n }\n\n if (cssString[cursor] === '}') {\n level--;\n if (level === 0) {\n topLevelRules.push(cssString.substring(start, cursor + 1));\n start = cursor + 1;\n }\n }\n\n cursor++;\n }\n\n return topLevelRules.map((rule) => rule.trim());\n}\n\nfunction splitRule(rule) {\n const firstBracket = rule.indexOf('{');\n const selector = rule.substring(0, firstBracket);\n const styles = rule.substring(firstBracket);\n return { selector, styles };\n}\n\nfunction scopeSelector(selector, prefix) {\n return selector\n .split(',')\n .map((sel) => `${prefix} ${sel.trim()}`)\n .join(', ');\n}\n\nfunction getScrollContainer(el) {\n while (el && el !== document.body && el !== document.documentElement) {\n if (_isElementScrollable(el)) {\n return el;\n }\n el = el.parentElement;\n }\n\n if (_isElementScrollable(document.body)) {\n return document.body;\n } else if (_isElementScrollable(document.documentElement)) {\n return document.documentElement;\n }\n\n return null;\n}\n\nfunction _isElementScrollable(el) {\n const style = window.getComputedStyle(el);\n const overflowY = style.overflowY || style.overflow;\n\n return (overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight;\n}\n\nexport { wrapCSSStyles, getScrollContainer };\n","import { some } from 'min-dash';\nimport { useEffect } from 'preact/hooks';\nimport { getScrollContainer } from '../components/util/domUtil';\n\nconst EMPTY_OBJECT = {};\nconst EMPTY_ARRAY = [];\n\n/**\n * Custom hook to scroll an element within a scrollable container.\n *\n * @param {Object} scrolledElementRef - A ref pointing to the DOM element to scroll into view.\n * @param {Array} deps - An array of dependencies that trigger the effect.\n * @param {Object} [scrollOptions={}] - Options defining the behavior of the scrolling.\n * @param {String} [scrollOptions.align='center'] - The alignment of the element within the viewport.\n * @param {String} [scrollOptions.behavior='auto'] - The scrolling behavior.\n * @param {Number} [scrollOptions.offset=0] - An offset that is added to the scroll position.\n * @param {Boolean} [scrollOptions.scrollIfVisible=false] - Whether to scroll even if the element is visible.\n * @param {Array} [flagRefs] - An array of refs that are used as flags to control when to scroll.\n */\nexport function useScrollIntoView(scrolledElementRef, deps, scrollOptions, flagRefs) {\n const _scrollOptions = scrollOptions || EMPTY_OBJECT;\n const _flagRefs = flagRefs || EMPTY_ARRAY;\n\n useEffect(() => {\n // return early if flags are not raised, or component is not mounted\n if (some(_flagRefs, (ref) => !ref.current) || !scrolledElementRef.current) {\n return;\n }\n\n for (let i = 0; i < _flagRefs.length; i++) {\n _flagRefs[i].current = false;\n }\n\n const itemToBeScrolled = scrolledElementRef.current;\n const scrollContainer = getScrollContainer(itemToBeScrolled);\n\n if (!scrollContainer) {\n return;\n }\n\n const itemRect = itemToBeScrolled.getBoundingClientRect();\n const containerRect = scrollContainer.getBoundingClientRect();\n\n const { align = 'center', offset = 0, behavior = 'auto', scrollIfVisible = false } = _scrollOptions;\n\n const shouldScroll =\n scrollIfVisible || !(itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom);\n\n if (!shouldScroll) {\n return;\n }\n\n const topOffset = _getTopOffset(itemToBeScrolled, scrollContainer, { align, offset });\n scrollContainer.scroll({ top: topOffset, behavior });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n// helper //////////////////////\n\nfunction _getTopOffset(item, scrollContainer, options) {\n const itemRect = item.getBoundingClientRect();\n const containerRect = scrollContainer.getBoundingClientRect();\n\n if (options.align === 'top') {\n return itemRect.top - containerRect.top + scrollContainer.scrollTop - options.offset;\n } else if (options.align === 'bottom') {\n return (\n itemRect.bottom - containerRect.top - scrollContainer.clientHeight + scrollContainer.scrollTop + options.offset\n );\n } else if (options.align === 'center') {\n return (\n itemRect.top -\n containerRect.top -\n scrollContainer.clientHeight / 2 +\n scrollContainer.scrollTop +\n itemRect.height / 2 +\n options.offset\n );\n }\n\n return 0;\n}\n","import { useService } from './useService';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { runExpressionEvaluation } from '../../util/expressions';\n\n/**\n * If the value is a valid expression, we evaluate it. Otherwise, we continue with the value as-is.\n * If the resulting value isn't a boolean, we return 'false'\n * The function is memoized to minimize re-renders.\n *\n * @param {boolean | string} value - A static boolean or expression to evaluate.\n * @returns {boolean} - Evaluated boolean result.\n */\nexport function useBooleanExpressionEvaluation(value) {\n const expressionLanguage = useService('expressionLanguage');\n const expressionContextInfo = useContext(LocalExpressionContext);\n return useMemo(() => {\n const evaluationResult = runExpressionEvaluation(expressionLanguage, value, expressionContextInfo);\n return typeof evaluationResult === 'boolean' ? evaluationResult : false;\n }, [expressionLanguage, expressionContextInfo, value]);\n}\n","import { useService } from './useService.js';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Returns the conditionally filtered data of a form reactively.\n * Memoised to minimize re-renders\n *\n * Warning: costly operation, use with care\n */\nexport function useFilteredFormData() {\n const { initialData, data } = useService('form')._getState();\n const conditionChecker = useService('conditionChecker', false);\n\n return useMemo(() => {\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\n return { ...initialData, ...newData };\n }, [conditionChecker, data, initialData]);\n}\n","import { useEffect } from 'preact/hooks';\n\nexport function useKeyDownAction(targetKey, action, listenerElement = window) {\n function downHandler({ key }) {\n if (key === targetKey) {\n action();\n }\n }\n\n useEffect(() => {\n listenerElement.addEventListener('keydown', downHandler);\n\n return () => {\n listenerElement.removeEventListener('keydown', downHandler);\n };\n });\n}\n","import { buildExpressionContext } from '../../util/expressions.js';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext.js';\nimport { useService } from './useService.js';\nimport { useContext } from 'preact/hooks';\n\n/**\n * Retrieve readonly value of a form field, given it can be an\n * expression optionally or configured globally.\n *\n * @typedef { import('../../types').FormProperties } FormProperties\n *\n * @param {any} formField\n * @param {FormProperties} properties\n *\n * @returns {boolean}\n */\nexport function useReadonly(formField, properties = {}) {\n const expressionLanguage = useService('expressionLanguage');\n const conditionChecker = useService('conditionChecker', false);\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n const { readonly } = formField;\n\n if (properties.readOnly) {\n return true;\n }\n\n if (expressionLanguage && expressionLanguage.isExpression(readonly)) {\n return conditionChecker ? conditionChecker.check(readonly, buildExpressionContext(expressionContextInfo)) : false;\n }\n\n return readonly || false;\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nexport function usePrevious(value, defaultValue = null) {\n const ref = useRef(defaultValue);\n\n useEffect(() => (ref.current = value), [value]);\n\n return ref.current;\n}\n","import { useCallback, useRef } from 'preact/hooks';\nimport { useService } from './useService';\n\nexport function useFlushDebounce(func) {\n const timeoutRef = useRef(null);\n const lastArgsRef = useRef(null);\n\n const config = useService('config', false);\n const debounce = config && config.debounce;\n const shouldDebounce = debounce !== false && debounce !== 0;\n const delay = typeof debounce === 'number' ? debounce : 300;\n\n const debounceFunc = useCallback(\n (...args) => {\n if (!shouldDebounce) {\n func(...args);\n return;\n }\n\n lastArgsRef.current = args;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n func(...lastArgsRef.current);\n lastArgsRef.current = null;\n }, delay);\n },\n [func, delay, shouldDebounce],\n );\n\n const flushFunc = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n if (lastArgsRef.current !== null) {\n func(...lastArgsRef.current);\n lastArgsRef.current = null;\n }\n timeoutRef.current = null;\n }\n }, [func]);\n\n return [debounceFunc, flushFunc];\n}\n","import { useService } from './useService';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\nimport { buildExpressionContext } from '../../util/expressions';\n\n/**\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\n * Memoised to minimize re-renders\n *\n * @param {string} value\n * @param {Object} options\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.sanitizer]\n * @param {Function} [options.buildDebugString]\n *\n */\nexport function useTemplateEvaluation(value, options = {}) {\n const templating = useService('templating');\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n return useMemo(() => {\n if (templating && templating.isTemplate(value)) {\n return templating.evaluate(value, buildExpressionContext(expressionContextInfo), options);\n }\n return value;\n }, [templating, value, expressionContextInfo, options]);\n}\n","import { useTemplateEvaluation } from './useTemplateEvaluation';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\n * If the string contains multiple lines, only the first line is returned.\n * Memoised to minimize re-renders\n *\n * @param {string} value\n * @param {Object} [options]\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.buildDebugString]\n *\n */\nexport function useSingleLineTemplateEvaluation(value, options = {}) {\n const evaluatedTemplate = useTemplateEvaluation(value, options);\n return useMemo(() => evaluatedTemplate && evaluatedTemplate.split('\\n')[0], [evaluatedTemplate]);\n}\n","import { isNumber } from 'min-dash';\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\nimport { DateTime as LuxonDateTime } from 'luxon';\n\nexport const ENTER_KEYDOWN_EVENT = new KeyboardEvent('keydown', {\n code: 'Enter',\n key: 'Enter',\n charCode: 13,\n keyCode: 13,\n bubbles: true,\n});\n\nexport function focusRelevantFlatpickerDay(flatpickrInstance) {\n if (!flatpickrInstance) return;\n\n !flatpickrInstance.isOpen && flatpickrInstance.open();\n\n const container = flatpickrInstance.calendarContainer;\n const dayToFocus =\n container.querySelector('.flatpickr-day.selected') ||\n container.querySelector('.flatpickr-day.today') ||\n container.querySelector('.flatpickr-day');\n\n dayToFocus && dayToFocus.focus();\n}\n\nexport function formatTime(use24h, minutes) {\n if (minutes === null) return null;\n\n const wrappedMinutes = minutes % (24 * 60);\n\n const minute = minutes % 60;\n let hour = Math.floor(wrappedMinutes / 60);\n\n if (use24h) {\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute);\n }\n\n hour = hour % 12 || 12;\n\n const isPM = wrappedMinutes >= 12 * 60;\n\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute) + ' ' + (isPM ? 'PM' : 'AM');\n}\n\nexport function parseInputTime(stringTime) {\n let workingString = stringTime.toLowerCase();\n const is12h = workingString.includes('am') || workingString.includes('pm');\n\n if (is12h) {\n const isPM = workingString.includes('pm');\n const digits = workingString.match(/\\d+/g);\n const displayHour = parseInt(digits && digits[0]);\n const minute = parseInt(digits && digits[1]) || 0;\n\n const isValidDisplayHour = isNumber(displayHour) && displayHour >= 1 && displayHour <= 12;\n const isValidMinute = minute >= 0 && minute <= 59;\n\n if (!isValidDisplayHour || !isValidMinute) return null;\n\n const hour = (displayHour % 12) + (isPM ? 12 : 0);\n\n return hour * 60 + minute;\n } else {\n const digits = workingString.match(/\\d+/g);\n const hour = parseInt(digits && digits[0]);\n const minute = parseInt(digits && digits[1]);\n\n const isValidHour = isNumber(hour) && hour >= 0 && hour <= 23;\n const isValidMinute = isNumber(minute) && minute >= 0 && minute <= 59;\n\n if (!isValidHour || !isValidMinute) return null;\n\n return hour * 60 + minute;\n }\n}\n\nexport function serializeTime(minutes, offset, timeSerializingFormat) {\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n return (\n _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) +\n ':' +\n _getZeroPaddedString(normalizedMinutes % 60) +\n 'Z'\n );\n }\n\n const baseTime = _getZeroPaddedString(Math.floor(minutes / 60)) + ':' + _getZeroPaddedString(minutes % 60);\n const addUTCOffset = timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_OFFSET;\n\n return baseTime + (addUTCOffset ? formatTimezoneOffset(offset) : '');\n}\n\nexport function parseIsoTime(isoTimeString) {\n if (!isoTimeString) return null;\n\n const parseBasicMinutes = (timeString) => {\n const timeSegments = timeString.split(':');\n const hour = parseInt(timeSegments[0]);\n const minute = timeSegments.length > 1 ? parseInt(timeSegments[1]) : 0;\n if (isNaN(hour) || hour < 0 || hour > 24 || isNaN(minute) || minute < 0 || minute > 60) return null;\n return hour * 60 + minute;\n };\n\n const localOffset = new Date().getTimezoneOffset();\n\n // Parse normalized time\n if (isoTimeString.includes('Z')) {\n isoTimeString = isoTimeString.replace('Z', '');\n const minutes = parseBasicMinutes(isoTimeString);\n if (minutes === null) return null;\n return (minutes - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Parse offset positive time\n else if (isoTimeString.includes('+')) {\n const [timeString, offsetString] = isoTimeString.split('+');\n\n const minutes = parseBasicMinutes(timeString);\n let inboundOffset = parseBasicMinutes(offsetString);\n\n if (minutes === null || inboundOffset === null) return null;\n\n // The offset is flipped for consistency with javascript\n inboundOffset = -inboundOffset;\n\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Parse offset negative time\n else if (isoTimeString.includes('-')) {\n const [timeString, offsetString] = isoTimeString.split('-');\n\n const minutes = parseBasicMinutes(timeString);\n let inboundOffset = parseBasicMinutes(offsetString);\n\n if (minutes === null || inboundOffset === null) return null;\n\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Default to local parsing\n else {\n return parseBasicMinutes(isoTimeString);\n }\n}\n\n/**\n * Returns the date object as a simple 'YYYY-MM-DD' formatted date in the local timezone.\n *\n * @param {*} date The date object to serialize.\n * @returns {string} The serialized date.\n */\nexport function serializeDate(date) {\n return LuxonDateTime.fromJSDate(date).toISODate();\n}\n// this method is used to make the `new Date(value)` parsing behavior stricter\nexport function isDateTimeInputInformationSufficient(value) {\n if (!value || typeof value !== 'string') return false;\n\n const segments = value.split('T');\n if (segments.length != 2) return false;\n\n const dateNumbers = segments[0].split('-');\n if (dateNumbers.length != 3) return false;\n\n return true;\n}\n\n// this method checks if the date isn't a datetime, or a partial date\nexport function isDateInputInformationMatching(value) {\n if (!value || typeof value !== 'string') return false;\n\n if (value.includes('T')) return false;\n\n const dateNumbers = value.split('-');\n if (dateNumbers.length != 3) return false;\n\n return true;\n}\n\nexport function serializeDateTime(date, time, timeSerializingFormat) {\n const workingDate = new Date();\n workingDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n workingDate.setHours(Math.floor(time / 60), time % 60, 0, 0);\n\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n const timezoneOffsetMinutes = workingDate.getTimezoneOffset();\n const dayOffset = time + timezoneOffsetMinutes < 0 ? -1 : time + timezoneOffsetMinutes > MINUTES_IN_DAY ? 1 : 0;\n\n // Apply the date rollover pre-emptively\n workingDate.setHours(workingDate.getHours() + dayOffset * 24);\n }\n\n return serializeDate(workingDate) + 'T' + serializeTime(time, workingDate.getTimezoneOffset(), timeSerializingFormat);\n}\n\nexport function formatTimezoneOffset(minutes) {\n return _getSignedPaddedHours(minutes) + ':' + _getZeroPaddedString(Math.abs(minutes % 60));\n}\n\nexport function isInvalidDateString(value) {\n return isNaN(new Date(Date.parse(value)).getTime());\n}\n\nexport function getNullDateTime() {\n return {\n date: new Date(Date.parse(null)),\n time: null,\n };\n}\n\nexport function isValidDate(date) {\n return date && !isNaN(date.getTime());\n}\n\nexport function isValidTime(time) {\n return !isNaN(parseInt(time));\n}\n\nfunction _getSignedPaddedHours(minutes) {\n if (minutes > 0) {\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\n } else {\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\n }\n}\n\nfunction _getZeroPaddedString(time) {\n return time.toString().padStart(2, '0');\n}\n","import isEqual from 'lodash/isEqual';\nimport { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport {\n isDateInputInformationMatching,\n isDateTimeInputInformationSufficient,\n isInvalidDateString,\n parseIsoTime,\n} from './dateTimeUtil';\nimport { getSimpleOptionsData, normalizeOptionsData } from './optionsUtil';\n\nconst ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape\nconst ALLOWED_IFRAME_SRC_PATTERN = /^(https):\\/\\/*/i; // eslint-disable-line no-useless-escape\n\nexport function sanitizeDateTimePickerValue(options) {\n const { formField, value } = options;\n\n const { subtype } = formField;\n\n if (typeof value !== 'string') return null;\n\n if (subtype === DATETIME_SUBTYPES.DATE && (isInvalidDateString(value) || !isDateInputInformationMatching(value)))\n return null;\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\n if (\n subtype === DATETIME_SUBTYPES.DATETIME &&\n (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))\n )\n return null;\n\n return value;\n}\n\nexport function hasEqualValue(value, array) {\n if (!Array.isArray(array)) {\n return false;\n }\n\n return array.some((element) => isEqual(value, element));\n}\n\nexport function sanitizeSingleSelectValue(options) {\n const { formField, data, value } = options;\n\n const { valuesExpression: optionsExpression } = formField;\n\n try {\n // if options are expression evaluated, we don't need to sanitize the value against the options\n // and defer to the field's internal validation\n if (optionsExpression) {\n return value;\n }\n\n const validValues = normalizeOptionsData(getSimpleOptionsData(formField, data)).map((v) => v.value);\n return hasEqualValue(value, validValues) ? value : null;\n } catch (error) {\n // use default value in case of formatting error\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\n return null;\n }\n}\n\nexport function sanitizeMultiSelectValue(options) {\n const { formField, data, value } = options;\n\n const { valuesExpression: optionsExpression } = formField;\n\n try {\n // if options are expression evaluated, we don't need to sanitize the values against the options\n // and defer to the field's internal validation\n if (optionsExpression) {\n return value;\n }\n\n const validValues = normalizeOptionsData(getSimpleOptionsData(formField, data)).map((v) => v.value);\n return value.filter((v) => hasEqualValue(v, validValues));\n } catch (error) {\n // use default value in case of formatting error\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\n return [];\n }\n}\n\n/**\n * Sanitizes an image source to ensure we only allow for data URI and links\n * that start with http(s).\n *\n * Note: Most browsers anyway do not support script execution in <img> elements.\n *\n * @param {string} src\n * @returns {string}\n */\nexport function sanitizeImageSource(src) {\n const valid = ALLOWED_IMAGE_SRC_PATTERN.test(src);\n\n return valid ? src : '';\n}\n\n/**\n * Sanitizes an iframe source to ensure we only allow for links\n * that start with http(s).\n *\n * @param {string} src\n * @returns {string}\n */\nexport function sanitizeIFrameSource(src) {\n const valid = ALLOWED_IFRAME_SRC_PATTERN.test(src);\n\n return valid ? src : '';\n}\n\n/**\n * Escapes HTML and returns pure text.\n * @param {string} html\n * @returns {string}\n */\nexport function escapeHTML(html) {\n const escapeMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#039;',\n '{': '&#123;',\n '}': '&#125;',\n ':': '&#58;',\n ';': '&#59;',\n };\n\n return html.replace(/[&<>\"'{};:]/g, (match) => escapeMap[match]);\n}\n","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\n\nexport function useCleanupSingleSelectValue(props) {\n const { field, options, loadState, onChange, value } = props;\n\n // Ensures that the value is always one of the possible options\n useEffect(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return;\n }\n\n const optionValues = options.map((o) => o.value);\n const hasValueNotInOptions = value && !hasEqualValue(value, optionValues);\n\n if (hasValueNotInOptions) {\n onChange({\n field,\n value: null,\n });\n }\n }, [field, options, onChange, value, loadState]);\n}\n","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\nimport { useDeepCompareMemoize } from './useDeepCompareMemoize';\n\nexport function useCleanupMultiSelectValue(props) {\n const { field, options, loadState, onChange, values } = props;\n\n const memoizedValues = useDeepCompareMemoize(values || []);\n\n // ensures that the values are always a subset of the possible options\n useEffect(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return;\n }\n\n const optionValues = options.map((o) => o.value);\n const hasValuesNotInOptions = memoizedValues.some((v) => !hasEqualValue(v, optionValues));\n\n if (hasValuesNotInOptions) {\n onChange({\n field,\n value: memoizedValues.filter((v) => hasEqualValue(v, optionValues)),\n });\n }\n }, [field, options, onChange, memoizedValues, loadState]);\n}\n","import { formFieldClasses } from '../Util';\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\n\nconst type = 'button';\n\nexport function Button(props) {\n const { disabled, onFocus, onBlur, field } = props;\n\n const { action = 'submit' } = field;\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(field.label || '', { debug: true });\n\n return (\n <div class={formFieldClasses(type)}>\n <button\n class=\"fjs-button\"\n type={action}\n disabled={disabled}\n onFocus={() => onFocus && onFocus()}\n onBlur={() => onBlur && onBlur()}>\n {evaluatedLabel}\n </button>\n </div>\n );\n}\n\nButton.config = {\n type,\n keyed: false,\n label: 'Button',\n group: 'action',\n create: (options = {}) => ({\n action: 'submit',\n ...options,\n }),\n};\n","import { useSingleLineTemplateEvaluation } from '../hooks';\n\nexport function Description(props) {\n const { description, id } = props;\n\n const evaluatedDescription = useSingleLineTemplateEvaluation(description || '', { debug: true });\n\n if (!evaluatedDescription) {\n return null;\n }\n\n return (\n <div id={id} class=\"fjs-form-field-description\">\n {evaluatedDescription}\n </div>\n );\n}\n","export function Errors(props) {\n const { errors, id } = props;\n\n if (!errors.length) {\n return null;\n }\n\n return (\n <div class=\"fjs-form-field-error\" aria-live=\"polite\" id={id}>\n <ul>\n {errors.map((error) => {\n return <li>{error}</li>;\n })}\n </ul>\n </div>\n );\n}\n","import classNames from 'classnames';\n\nimport { useSingleLineTemplateEvaluation } from '../hooks';\n\n/**\n * @typedef Props\n * @property {string|undefined} [id]\n * @property {string|undefined} [htmlFor]\n * @property {string|undefined} label\n * @property {string} [class]\n * @property {boolean} [collapseOnEmpty]\n * @property {boolean} [required]\n * @property {import(\"preact\").VNode} [children]\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function Label(props) {\n const { id, htmlFor, label, collapseOnEmpty = true, required = false } = props;\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(label || '', { debug: true });\n\n return (\n <label\n id={id}\n for={htmlFor}\n class={classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class'])}>\n {props.children}\n {evaluatedLabel}\n {required && (\n <span class=\"fjs-asterix\" aria-hidden>\n *\n </span>\n )}\n </label>\n );\n}\n","import { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { formFieldClasses } from '../Util';\n\nimport classNames from 'classnames';\n\nconst type = 'checkbox';\n\nexport function Checkbox(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = false } = props;\n\n const { description, label, validate = {} } = field;\n\n const { required } = validate;\n\n const onChange = ({ target }) => {\n props.onChange({\n value: target.checked,\n });\n };\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value })}>\n <Label htmlFor={domId} label={label} required={required}>\n <input\n checked={value}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={domId}\n type=\"checkbox\"\n onChange={onChange}\n onBlur={() => onBlur && onBlur()}\n onFocus={() => onFocus && onFocus()}\n required={required}\n aria-invalid={errors.length > 0}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n />\n </Label>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nCheckbox.config = {\n type,\n keyed: true,\n label: 'Checkbox',\n group: 'selection',\n emptyValue: false,\n sanitizeValue: ({ value }) => value === true,\n create: (options = {}) => ({\n ...options,\n }),\n};\n","import { useRef } from 'preact/hooks';\nimport { useOptionsAsync, LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport { useCleanupMultiSelectValue } from '../../hooks/useCleanupMultiSelectValue';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'checklist';\n\nexport function Checklist(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value: values = [] } = props;\n\n const { description, label, validate = {} } = field;\n\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const toggleCheckbox = (toggledValue) => {\n const newValues = hasEqualValue(toggledValue, values)\n ? values.filter((value) => !isEqual(value, toggledValue))\n : [...values, toggledValue];\n\n props.onChange({\n value: newValues,\n });\n };\n\n const onCheckboxBlur = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n };\n\n const onCheckboxFocus = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n };\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupMultiSelectValue({\n field,\n loadState,\n options,\n values,\n onChange: props.onChange,\n });\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={classNames(formFieldClasses(type, { errors, disabled, readonly }))} ref={outerDivRef}>\n <Label label={label} required={required} />\n {loadState == LOAD_STATES.LOADED &&\n options.map((o, index) => {\n const itemDomId = `${domId}-${index}`;\n const isChecked = hasEqualValue(o.value, values);\n\n return (\n <Label\n htmlFor={itemDomId}\n label={o.label}\n class={classNames({\n 'fjs-checked': isChecked,\n })}\n required={false}>\n <input\n checked={isChecked}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={itemDomId}\n type=\"checkbox\"\n onClick={() => toggleCheckbox(o.value)}\n onBlur={onCheckboxBlur}\n onFocus={onCheckboxFocus}\n required={required}\n aria-invalid={errors.length > 0}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n />\n </Label>\n );\n })}\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nChecklist.config = {\n type,\n keyed: true,\n label: 'Checkbox group',\n group: 'selection',\n emptyValue: [],\n sanitizeValue: sanitizeMultiSelectValue,\n create: createEmptyOptions,\n};\n","import Ids from 'ids';\n\nimport { useRef, useCallback, useContext, useEffect, useMemo, useState } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\n\nimport { get } from 'min-dash';\n\nimport { FormContext, FormRenderContext, LocalExpressionContext } from '../context';\n\nimport { useCondition, useReadonly, useService } from '../hooks';\n\nimport { gridColumnClasses, prefixId } from './Util';\n\nconst noop = () => false;\nconst ids = new Ids([32, 36, 1]);\n\nexport function FormField(props) {\n const instanceIdRef = useRef(ids.next());\n\n const { field, indexes, onChange: _onChange } = props;\n\n const formFields = useService('formFields'),\n viewerCommands = useService('viewerCommands', false),\n formFieldInstanceRegistry = useService('formFieldInstanceRegistry', false),\n pathRegistry = useService('pathRegistry'),\n eventBus = useService('eventBus'),\n form = useService('form');\n\n const { initialData, data, errors, properties } = form._getState();\n\n const { Element, Hidden, Column } = useContext(FormRenderContext);\n\n const { formId } = useContext(FormContext);\n\n // track whether we should trigger initial validation on certain actions, e.g. field blur\n // disabled straight away, if viewerCommands are not available\n const [initialValidationTrigger, setInitialValidationTrigger] = useState(!!viewerCommands);\n\n const FormFieldComponent = formFields.get(field.type);\n\n if (!FormFieldComponent) {\n throw new Error(`cannot render field <${field.type}>`);\n }\n\n const fieldConfig = FormFieldComponent.config;\n\n const localExpressionContext = useContext(LocalExpressionContext);\n const valuePath = useMemo(() => pathRegistry.getValuePath(field, { indexes }), [field, indexes, pathRegistry]);\n\n const initialValue = useMemo(() => get(initialData, valuePath), [initialData, valuePath]);\n\n const readonly = useReadonly(field, properties);\n\n const value = get(data, valuePath);\n\n // add precedence: global readonly > form field disabled\n const disabled = !properties.readOnly && (properties.disabled || field.disabled || false);\n\n const hidden = useCondition((field.conditional && field.conditional.hide) || null);\n\n const instanceId = useMemo(() => {\n if (!formFieldInstanceRegistry) {\n return null;\n }\n\n return formFieldInstanceRegistry.syncInstance(instanceIdRef.current, {\n id: field.id,\n expressionContextInfo: localExpressionContext,\n valuePath,\n value,\n indexes,\n hidden,\n });\n }, [formFieldInstanceRegistry, field.id, localExpressionContext, valuePath, value, indexes, hidden]);\n\n const fieldInstance = instanceId ? formFieldInstanceRegistry.get(instanceId) : null;\n\n // cleanup the instance on unmount\n useEffect(() => {\n const instanceId = instanceIdRef.current;\n\n if (formFieldInstanceRegistry) {\n return () => formFieldInstanceRegistry.cleanupInstance(instanceId);\n }\n }, [formFieldInstanceRegistry]);\n\n // ensures the initial validation behavior can be re-triggered upon form reset\n useEffect(() => {\n if (!viewerCommands) {\n return;\n }\n\n const resetValidation = () => {\n setInitialValidationTrigger(true);\n };\n\n eventBus.on('import.done', resetValidation);\n eventBus.on('reset', resetValidation);\n\n return () => {\n eventBus.off('import.done', resetValidation);\n eventBus.off('reset', resetValidation);\n };\n }, [eventBus, viewerCommands]);\n\n useEffect(() => {\n const hasInitialValue = initialValue && !isEqual(initialValue, []);\n\n if (initialValidationTrigger && hasInitialValue) {\n setInitialValidationTrigger(false);\n viewerCommands.updateFieldInstanceValidation(fieldInstance, initialValue);\n }\n }, [fieldInstance, initialValidationTrigger, initialValue, viewerCommands]);\n\n const onBlur = useCallback(() => {\n const value = get(data, valuePath);\n\n if (initialValidationTrigger) {\n setInitialValidationTrigger(false);\n viewerCommands.updateFieldInstanceValidation(fieldInstance, value);\n }\n\n eventBus.fire('formField.blur', { formField: field });\n }, [data, eventBus, field, fieldInstance, initialValidationTrigger, valuePath, viewerCommands]);\n\n const onFocus = useCallback(() => {\n eventBus.fire('formField.focus', { formField: field });\n }, [eventBus, field]);\n\n const onChange = useCallback(\n (update) => {\n setInitialValidationTrigger(false);\n _onChange({ field, indexes, fieldInstance, ...update });\n },\n [_onChange, field, fieldInstance, indexes],\n );\n\n if (hidden) {\n return <Hidden field={field} />;\n }\n\n const domId = `${prefixId(field.id, formId, indexes)}`;\n const fieldErrors = get(errors, [field.id, ...Object.values(indexes || {})]) || [];\n\n const formFieldElement = (\n <FormFieldComponent\n {...props}\n disabled={disabled}\n errors={fieldErrors}\n domId={domId}\n onChange={disabled || readonly ? noop : onChange}\n onBlur={disabled || readonly ? noop : onBlur}\n onFocus={disabled || readonly ? noop : onFocus}\n readonly={readonly}\n value={value}\n fieldInstance={fieldInstance}\n />\n );\n\n if (fieldConfig.escapeGridRender) {\n return formFieldElement;\n }\n\n return (\n <Column field={field} class={gridColumnClasses(field)}>\n <Element class=\"fjs-element\" field={field}>\n {formFieldElement}\n </Element>\n </Column>\n );\n}\n","import { useContext, useState } from 'preact/hooks';\n\nimport { useService } from '../../../hooks/useService';\n\nimport { FormField } from '../../FormField';\n\nimport { FormRenderContext } from '../../../context';\n\nexport function ChildrenRenderer(props) {\n const { Children } = useContext(FormRenderContext);\n\n const { field, Empty } = props;\n\n const { id } = field;\n\n const repeatRenderManager = useService('repeatRenderManager', false);\n\n const isRepeating = repeatRenderManager && repeatRenderManager.isFieldRepeating(id);\n\n const Repeater = repeatRenderManager.Repeater;\n const RepeatFooter = repeatRenderManager.RepeatFooter;\n\n return isRepeating ? (\n <RepeatChildrenRenderer\n {...props}\n {...{ ChildrenRoot: Children, Empty, Repeater, RepeatFooter, repeatRenderManager }}\n />\n ) : (\n <SimpleChildrenRenderer {...props} {...{ ChildrenRoot: Children, Empty }} />\n );\n}\n\nfunction SimpleChildrenRenderer(props) {\n const { ChildrenRoot, Empty, field } = props;\n\n const { components = [] } = field;\n\n const isEmpty = !components.length;\n\n return (\n <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={field}>\n <RowsRenderer {...props} />\n {isEmpty ? <Empty field={field} /> : null}\n </ChildrenRoot>\n );\n}\n\nfunction RepeatChildrenRenderer(props) {\n const { ChildrenRoot, repeatRenderManager, Empty, field, ...restProps } = props;\n\n const { components = [] } = field;\n\n const useSharedState = useState({ isCollapsed: true });\n\n const Repeater = repeatRenderManager.Repeater;\n const RepeatFooter = repeatRenderManager.RepeatFooter;\n\n return (\n <>\n <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={field}>\n {Repeater ? (\n <Repeater {...{ ...restProps, useSharedState, field, RowsRenderer }} />\n ) : (\n <RowsRenderer {...{ ...restProps, field }} />\n )}\n {!components.length ? <Empty field={field} /> : null}\n </ChildrenRoot>\n {RepeatFooter ? <RepeatFooter {...{ ...restProps, useSharedState, field }} /> : null}\n </>\n );\n}\n\nfunction RowsRenderer(props) {\n const { field, indexes } = props;\n const { id: parentId, verticalAlignment = 'start' } = field;\n\n const formLayouter = useService('formLayouter');\n const formFieldRegistry = useService('formFieldRegistry');\n const rows = formLayouter.getRows(parentId);\n\n const { Row } = useContext(FormRenderContext);\n\n return (\n <>\n {' '}\n {rows.map((row) => {\n const { components = [] } = row;\n\n if (!components.length) {\n return null;\n }\n\n return (\n <Row row={row} class=\"fjs-layout-row cds--row\" style={{ alignItems: verticalAlignment }}>\n {components.map((childId) => {\n const childField = formFieldRegistry.get(childId);\n\n if (!childField) {\n return null;\n }\n\n return <FormField {...props} key={childId} field={childField} indexes={indexes} />;\n })}\n </Row>\n );\n })}{' '}\n </>\n );\n}\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function Default(props) {\n const { Empty } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return <ChildrenRenderer {...fullProps} />;\n}\n\nDefault.config = {\n type: 'default',\n keyed: false,\n label: null,\n group: null,\n create: (options = {}) => ({\n components: [],\n ...options,\n }),\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"15\" fill=\"none\" viewBox=\"0 0 28 30\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M19 2H9V0H7v2H2a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5V0h-2v2ZM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7Zm-5 4v17h24V11H2Z\" clip-rule=\"evenodd\"/></svg>","/**\n * Returns date format for the provided locale.\n * If the locale is not provided, uses the browser's locale.\n *\n * @param {string} [locale] - The locale to get date format for.\n * @returns {string} The date format for the locale.\n */\nexport function getLocaleDateFormat(locale = 'default') {\n const parts = new Intl.DateTimeFormat(locale).formatToParts(new Date(Date.UTC(2020, 5, 5)));\n return parts\n .map((part) => {\n const len = part.value.length;\n switch (part.type) {\n case 'day':\n return 'd'.repeat(len);\n case 'month':\n return 'M'.repeat(len);\n case 'year':\n return 'y'.repeat(len);\n default:\n return part.value;\n }\n })\n .join('');\n}\n\n/**\n * Returns readable date format for the provided locale.\n * If the locale is not provided, uses the browser's locale.\n *\n * @param {string} [locale] - The locale to get readable date format for.\n * @returns {string} The readable date format for the locale.\n */\nexport function getLocaleReadableDateFormat(locale) {\n let format = getLocaleDateFormat(locale).toLowerCase();\n\n // Ensure month is in 'mm' format\n if (!format.includes('mm')) {\n format = format.replace('m', 'mm');\n }\n\n // Ensure day is in 'dd' format\n if (!format.includes('dd')) {\n format = format.replace('d', 'dd');\n }\n\n return format;\n}\n\n/**\n * Returns flatpickr config for the provided locale.\n * If the locale is not provided, uses the browser's locale.\n *\n * @param {string} [locale] - The locale to get flatpickr config for.\n * @returns {object} The flatpickr config for the locale.\n */\nexport function getLocaleDateFlatpickrConfig(locale) {\n return flatpickerizeDateFormat(getLocaleDateFormat(locale));\n}\n\nfunction flatpickerizeDateFormat(dateFormat) {\n const useLeadingZero = {\n day: dateFormat.includes('dd'),\n month: dateFormat.includes('MM'),\n year: dateFormat.includes('yyyy'),\n };\n\n dateFormat = useLeadingZero.day ? dateFormat.replace('dd', 'd') : dateFormat.replace('d', 'j');\n dateFormat = useLeadingZero.month ? dateFormat.replace('MM', 'm') : dateFormat.replace('M', 'n');\n dateFormat = useLeadingZero.year ? dateFormat.replace('yyyy', 'Y') : dateFormat.replace('yy', 'y');\n\n return dateFormat;\n}\n","import classNames from 'classnames';\nimport { isString } from 'min-dash';\n\nexport function InputAdorner(props) {\n const { pre, post, rootRef, inputRef, children, disabled, readonly, hasErrors } = props;\n\n const onAdornmentClick = () => inputRef && inputRef.current && inputRef.current.focus();\n\n return (\n <div\n class={classNames(\n 'fjs-input-group',\n { 'fjs-disabled': disabled, 'fjs-readonly': readonly },\n { hasErrors: hasErrors },\n )}\n ref={rootRef}>\n {pre && (\n <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={onAdornmentClick}>\n {' '}\n {isString(pre) ? <span class=\"fjs-input-adornment-text\">{pre}</span> : pre}{' '}\n </span>\n )}\n {children}\n {post && (\n <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={onAdornmentClick}>\n {' '}\n {isString(post) ? <span class=\"fjs-input-adornment-text\">{post}</span> : post}{' '}\n </span>\n )}\n </div>\n );\n}\n","import flatpickr from 'flatpickr';\nimport CalendarIcon from '../icons/Calendar.svg';\n\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\nimport { getLocaleReadableDateFormat, getLocaleDateFlatpickrConfig } from '../../util/localisationUtil';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { useDeepCompareMemoize } from '../../../hooks';\n\nimport { InputAdorner } from './InputAdorner';\nimport { Label } from '../../Label';\n\nexport function Datepicker(props) {\n const {\n label,\n domId,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n required,\n disabled,\n disallowPassedDates,\n date: dateObject,\n readonly,\n setDate,\n } = props;\n\n const dateInputRef = useRef();\n const focusScopeRef = useRef();\n\n const [flatpickrInstance, setFlatpickrInstance] = useState(null);\n const [isInputDirty, setIsInputDirty] = useState(false);\n const [forceFocusCalendar, setForceFocusCalendar] = useState(false);\n\n // ensures we render based on date value instead of reference\n const date = useDeepCompareMemoize(dateObject);\n\n // shorts the date value back to the source\n useEffect(() => {\n if (!flatpickrInstance || !flatpickrInstance.config) return;\n\n flatpickrInstance.setDate(date, true);\n setIsInputDirty(false);\n }, [flatpickrInstance, date]);\n\n useEffect(() => {\n if (!forceFocusCalendar) return;\n\n focusRelevantFlatpickerDay(flatpickrInstance);\n setForceFocusCalendar(false);\n }, [flatpickrInstance, forceFocusCalendar]);\n\n // setup flatpickr instance\n useEffect(() => {\n let config = {\n allowInput: true,\n dateFormat: getLocaleDateFlatpickrConfig(),\n static: true,\n clickOpens: false,\n\n // TODO: support dates prior to 1900 (https://github.com/bpmn-io/form-js/issues/533)\n minDate: disallowPassedDates ? 'today' : '01/01/1900',\n errorHandler: () => {\n /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */\n },\n };\n\n const instance = flatpickr(dateInputRef.current, config);\n\n setFlatpickrInstance(instance);\n\n const onCalendarFocusOut = (e) => {\n if (!instance.calendarContainer.contains(e.relatedTarget) && e.relatedTarget != dateInputRef.current) {\n instance.close();\n }\n };\n\n // remove dirty tag to have mouse day selection prioritize input blur\n const onCalendarMouseDown = (e) => {\n if (e.target.classList.contains('flatpickr-day')) {\n setIsInputDirty(false);\n }\n };\n\n // when the dropdown of the datepickr opens, we register a few event handlers to re-implement some of the\n // flatpicker logic that was lost when setting allowInput to true\n instance.config.onOpen = [\n () => instance.calendarContainer.addEventListener('focusout', onCalendarFocusOut),\n () => instance.calendarContainer.addEventListener('mousedown', onCalendarMouseDown),\n ];\n\n instance.config.onClose = [\n () => instance.calendarContainer.removeEventListener('focusout', onCalendarFocusOut),\n () => instance.calendarContainer.removeEventListener('mousedown', onCalendarMouseDown),\n ];\n }, [disallowPassedDates]);\n\n // onChange is updated dynamically, so not to re-render the flatpicker every time it changes\n useEffect(() => {\n if (!flatpickrInstance || !flatpickrInstance.config) return;\n\n flatpickrInstance.config.onChange = [(date) => setDate(new Date(date)), () => setIsInputDirty(false)];\n }, [flatpickrInstance, setDate]);\n\n const onInputKeyDown = useCallback(\n (e) => {\n if (!flatpickrInstance) return;\n\n if (e.code === 'Escape') {\n flatpickrInstance.close();\n }\n\n if (e.code === 'ArrowDown') {\n if (isInputDirty) {\n // trigger an enter keypress to submit the new input, then focus calendar day on the next render cycle\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\n setIsInputDirty(false);\n setForceFocusCalendar(true);\n } else {\n // focus calendar day immediately\n focusRelevantFlatpickerDay(flatpickrInstance);\n }\n\n e.preventDefault();\n }\n\n if (e.code === 'Enter') {\n setIsInputDirty(false);\n }\n },\n [flatpickrInstance, isInputDirty],\n );\n\n const onInputFocus = useCallback(\n (e) => {\n if (!flatpickrInstance || focusScopeRef.current.contains(e.relatedTarget) || readonly) return;\n flatpickrInstance.open();\n onDateTimeFocus(e);\n },\n [flatpickrInstance, readonly, onDateTimeFocus],\n );\n\n // simulate an enter press on blur to make sure the date value is submitted in all scenarios\n const onInputBlur = useCallback(\n (e) => {\n const isFalseBlur = e.relatedTarget && e.relatedTarget.classList.contains('flatpickr-day');\n if (isFalseBlur) return;\n if (isInputDirty) {\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\n setIsInputDirty(false);\n }\n\n onDateTimeBlur(e);\n },\n [isInputDirty, onDateTimeBlur],\n );\n\n return (\n <div class=\"fjs-datetime-subsection\">\n <Label htmlFor={domId} label={label} collapseOnEmpty={collapseLabelOnEmpty} required={required} />\n <InputAdorner\n pre={<CalendarIcon />}\n disabled={disabled}\n readonly={readonly}\n rootRef={focusScopeRef}\n inputRef={dateInputRef}>\n <div class=\"fjs-datepicker\" style={{ width: '100%' }}>\n <input\n ref={dateInputRef}\n type=\"text\"\n id={domId}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n placeholder={getLocaleReadableDateFormat()}\n autoComplete=\"off\"\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n onKeyDown={onInputKeyDown}\n onMouseDown={() => !flatpickrInstance.isOpen && !readonly && flatpickrInstance.open()}\n onInput={() => setIsInputDirty(true)}\n data-input\n aria-describedby={props['aria-describedby']}\n />\n </div>\n </InputAdorner>\n </div>\n );\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 28 29\"><path fill=\"currentColor\" d=\"M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2v9.41Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.222 25.64A14 14 0 1 0 21.778 2.36 14 14 0 0 0 6.222 25.64ZM7.333 4.023a12 12 0 1 1 13.334 19.955A12 12 0 0 1 7.333 4.022Z\" clip-rule=\"evenodd\"/></svg>","import classNames from 'classnames';\nimport { useState, useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\nimport { useKeyDownAction } from '../../../hooks/useKeyDownAction';\n\nconst DEFAULT_LABEL_GETTER = (value) => value;\nconst NOOP = () => {};\n\nexport function DropdownList(props) {\n const {\n listenerElement = window,\n values = [],\n getLabel = DEFAULT_LABEL_GETTER,\n onValueSelected = NOOP,\n height = 235,\n emptyListMessage = 'No results',\n initialFocusIndex = 0,\n } = props;\n\n const [mouseControl, setMouseControl] = useState(false);\n const [focusedValueIndex, setFocusedValueIndex] = useState(initialFocusIndex);\n const [smoothScrolling, setSmoothScrolling] = useState(false);\n const dropdownContainer = useRef();\n const mouseScreenPos = useRef();\n\n const focusedItem = useMemo(() => (values.length ? values[focusedValueIndex] : null), [focusedValueIndex, values]);\n\n const changeFocusedValueIndex = useCallback(\n (delta) => {\n setFocusedValueIndex((x) => Math.min(Math.max(0, x + delta), values.length - 1));\n },\n [values.length],\n );\n\n useEffect(() => {\n if (focusedValueIndex === 0) return;\n\n if (!focusedValueIndex || !values.length) {\n setFocusedValueIndex(0);\n } else if (focusedValueIndex >= values.length) {\n setFocusedValueIndex(values.length - 1);\n }\n }, [focusedValueIndex, values.length]);\n\n useKeyDownAction(\n 'ArrowUp',\n () => {\n if (values.length) {\n changeFocusedValueIndex(-1);\n setMouseControl(false);\n }\n },\n listenerElement,\n );\n\n useKeyDownAction(\n 'ArrowDown',\n () => {\n if (values.length) {\n changeFocusedValueIndex(1);\n setMouseControl(false);\n }\n },\n listenerElement,\n );\n\n useKeyDownAction(\n 'Enter',\n () => {\n if (focusedItem) {\n onValueSelected(focusedItem);\n }\n },\n listenerElement,\n );\n\n useEffect(() => {\n const individualEntries = dropdownContainer.current.children;\n if (individualEntries.length && !mouseControl) {\n const focusedEntry = individualEntries[focusedValueIndex];\n focusedEntry && focusedEntry.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }, [focusedValueIndex, mouseControl]);\n\n useEffect(() => {\n setSmoothScrolling(true);\n }, []);\n\n const onMouseMovedInKeyboardMode = (event, valueIndex) => {\n const userMovedCursor =\n !mouseScreenPos.current ||\n (mouseScreenPos.current.x !== event.screenX && mouseScreenPos.current.y !== event.screenY);\n\n if (userMovedCursor) {\n mouseScreenPos.current = { x: event.screenX, y: event.screenY };\n setMouseControl(true);\n setFocusedValueIndex(valueIndex);\n }\n };\n\n return (\n <div\n ref={dropdownContainer}\n tabIndex={-1}\n class=\"fjs-dropdownlist\"\n onMouseDown={(e) => e.preventDefault()}\n style={{ maxHeight: height, scrollBehavior: smoothScrolling ? 'smooth' : 'auto' }}>\n {values.length > 0 &&\n values.map((v, i) => {\n return (\n <div\n class={classNames('fjs-dropdownlist-item', { focused: focusedValueIndex === i })}\n onMouseMove={mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, i)}\n onMouseEnter={mouseControl ? () => setFocusedValueIndex(i) : undefined}\n onMouseDown={(e) => onValueSelected(v)}>\n {getLabel(v)}\n </div>\n );\n })}\n {!values.length && <div class=\"fjs-dropdownlist-empty\">{emptyListMessage}</div>}\n </div>\n );\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\nimport { isNumber } from 'min-dash';\n\nimport ClockIcon from '../icons/Clock.svg';\nimport { DropdownList } from './DropdownList';\nimport { InputAdorner } from './InputAdorner';\nimport { Label } from '../../Label';\n\nexport function Timepicker(props) {\n const {\n label,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n domId,\n required,\n disabled,\n readonly,\n use24h = false,\n timeInterval,\n time,\n setTime,\n } = props;\n\n const safeTimeInterval = useMemo(() => {\n const allowedIntervals = [1, 5, 10, 15, 30, 60];\n\n if (allowedIntervals.includes(timeInterval)) {\n return timeInterval;\n }\n\n return 15;\n }, [timeInterval]);\n\n const timeInputRef = useRef();\n const [dropdownIsOpen, setDropdownIsOpen] = useState(false);\n const useDropdown = useMemo(() => safeTimeInterval !== 1, [safeTimeInterval]);\n\n const [rawValue, setRawValue] = useState('');\n\n // populates values from source\n useEffect(() => {\n if (time === null) {\n setRawValue('');\n return;\n }\n\n const intervalAdjustedTime = time - (time % safeTimeInterval);\n setRawValue(formatTime(use24h, intervalAdjustedTime));\n\n if (intervalAdjustedTime != time) {\n setTime(intervalAdjustedTime);\n }\n }, [time, setTime, use24h, safeTimeInterval]);\n\n const propagateRawToMinute = useCallback(\n (newRawValue) => {\n const localRawValue = newRawValue || rawValue;\n\n // If no raw value exists, set the minute to null\n if (!localRawValue) {\n setTime(null);\n return;\n }\n\n const minutes = parseInputTime(localRawValue);\n\n // If raw string couldn't be parsed, clean everything up\n if (!isNumber(minutes)) {\n setRawValue('');\n setTime(null);\n return;\n }\n\n // Enforce the minutes to match the timeInterval\n const correctedMinutes = minutes - (minutes % safeTimeInterval);\n\n // Enforce the raw text to be formatted properly\n setRawValue(formatTime(use24h, correctedMinutes));\n setTime(correctedMinutes);\n },\n [rawValue, safeTimeInterval, use24h, setTime],\n );\n\n const timeOptions = useMemo(() => {\n const minutesInDay = 24 * 60;\n const intervalCount = Math.floor(minutesInDay / safeTimeInterval);\n return [...Array(intervalCount).keys()].map((intervalIndex) =>\n formatTime(use24h, intervalIndex * safeTimeInterval),\n );\n }, [safeTimeInterval, use24h]);\n\n const initialFocusIndex = useMemo(() => {\n // if there are no options, there will not be any focusing\n if (!timeOptions || !safeTimeInterval) return null;\n\n // if there is a set minute value, we focus it in the dropdown\n if (time) return time / safeTimeInterval;\n\n const cacheTime = parseInputTime(rawValue);\n\n // if there is a valid value in the input cache, we try and focus close to it\n if (cacheTime) {\n const flooredCacheTime = cacheTime - (cacheTime % safeTimeInterval);\n return flooredCacheTime / safeTimeInterval;\n }\n\n // If there is no set value, simply focus the middle of the dropdown (12:00)\n return Math.floor(timeOptions.length / 2);\n }, [rawValue, time, safeTimeInterval, timeOptions]);\n\n const onInputKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n break;\n case 'ArrowDown':\n useDropdown && setDropdownIsOpen(true);\n e.preventDefault();\n break;\n case 'Escape':\n useDropdown && setDropdownIsOpen(false);\n break;\n case 'Enter':\n !dropdownIsOpen && propagateRawToMinute();\n break;\n }\n };\n\n const onInputBlur = (e) => {\n setDropdownIsOpen(false);\n propagateRawToMinute();\n onDateTimeBlur(e);\n };\n\n const onInputFocus = (e) => {\n onDateTimeFocus(e);\n !readonly && useDropdown && setDropdownIsOpen(true);\n };\n\n const onDropdownValueSelected = (value) => {\n setDropdownIsOpen(false);\n propagateRawToMinute(value);\n };\n\n return (\n <div class=\"fjs-datetime-subsection\">\n <Label htmlFor={domId} label={label} collapseOnEmpty={collapseLabelOnEmpty} required={required} />\n <InputAdorner pre={<ClockIcon />} inputRef={timeInputRef} disabled={disabled} readonly={readonly}>\n <div class=\"fjs-timepicker fjs-timepicker-anchor\">\n <input\n ref={timeInputRef}\n type=\"text\"\n id={domId}\n class=\"fjs-input\"\n value={rawValue}\n disabled={disabled}\n readOnly={readonly}\n placeholder={use24h ? 'hh:mm' : 'hh:mm ?m'}\n autoComplete=\"off\"\n onInput={(e) => {\n // @ts-expect-error\n setRawValue(e.target.value);\n useDropdown && setDropdownIsOpen(false);\n }}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n onClick={() => !readonly && useDropdown && setDropdownIsOpen(true)}\n onKeyDown={onInputKeyDown}\n data-input\n aria-describedby={props['aria-describedby']}\n />\n\n {dropdownIsOpen && (\n <DropdownList\n values={timeOptions}\n height={150}\n onValueSelected={onDropdownValueSelected}\n listenerElement={timeInputRef.current}\n initialFocusIndex={initialFocusIndex}\n />\n )}\n </div>\n </InputAdorner>\n </div>\n );\n}\n","import { useCallback, useContext, useMemo, useState, useEffect, useRef } from 'preact/hooks';\nimport { DateTime as LuxonDateTime } from 'luxon';\n\nimport classNames from 'classnames';\n\nimport { set } from 'min-dash';\n\nimport { FormContext } from '../../context';\n\nimport { DATETIME_SUBTYPES, DATETIME_SUBTYPE_PATH, DATE_LABEL_PATH } from '../../../util/constants/DatetimeConstants';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Datepicker } from './parts/Datepicker';\nimport { Timepicker } from './parts/Timepicker';\n\nimport { formFieldClasses, prefixId } from '../Util';\nimport { sanitizeDateTimePickerValue } from '../util/sanitizerUtil';\nimport {\n parseIsoTime,\n serializeDate,\n serializeDateTime,\n serializeTime,\n getNullDateTime,\n isValidDate,\n isValidTime,\n} from '../util/dateTimeUtil';\n\nconst type = 'datetime';\n\nexport function Datetime(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, onChange, readonly, value = '' } = props;\n\n const {\n description,\n id,\n dateLabel,\n timeLabel,\n validate = {},\n subtype,\n use24h,\n disallowPassedDates,\n timeInterval,\n timeSerializingFormat,\n } = field;\n\n const { required } = validate;\n const { formId } = useContext(FormContext);\n const dateTimeGroupRef = useRef();\n\n const [dateTime, setDateTime] = useState(getNullDateTime());\n const [dateTimeUpdateRequest, setDateTimeUpdateRequest] = useState(null);\n\n const useDatePicker = useMemo(\n () => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME,\n [subtype],\n );\n const useTimePicker = useMemo(\n () => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME,\n [subtype],\n );\n\n const onDateTimeBlur = useCallback(\n (e) => {\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n },\n [onBlur],\n );\n\n const onDateTimeFocus = useCallback(\n (e) => {\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n },\n [onFocus],\n );\n\n useEffect(() => {\n let { date, time } = getNullDateTime();\n\n switch (subtype) {\n case DATETIME_SUBTYPES.DATE: {\n date = typeof value === 'string' ? LuxonDateTime.fromISO(value).toJSDate() : new Date(NaN);\n break;\n }\n case DATETIME_SUBTYPES.TIME: {\n time = parseIsoTime(value);\n break;\n }\n case DATETIME_SUBTYPES.DATETIME: {\n date = new Date(Date.parse(value));\n time = isValidDate(date) ? 60 * date.getHours() + date.getMinutes() : null;\n break;\n }\n }\n\n setDateTime({ date, time });\n }, [subtype, value]);\n\n const computeAndSetState = useCallback(\n ({ date, time }) => {\n let newDateTimeValue = null;\n\n if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\n newDateTimeValue = serializeDate(date);\n } else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\n newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\n } else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\n newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\n }\n\n if (value === newDateTimeValue) {\n return;\n }\n\n onChange({ value: newDateTimeValue, field });\n },\n [value, field, onChange, subtype, timeSerializingFormat],\n );\n\n useEffect(() => {\n if (dateTimeUpdateRequest) {\n if (dateTimeUpdateRequest.refreshOnly) {\n computeAndSetState(dateTime);\n } else {\n const newDateTime = { ...dateTime, ...dateTimeUpdateRequest };\n setDateTime(newDateTime);\n computeAndSetState(newDateTime);\n }\n setDateTimeUpdateRequest(null);\n }\n }, [computeAndSetState, dateTime, dateTimeUpdateRequest]);\n\n useEffect(() => {\n setDateTimeUpdateRequest({ refreshOnly: true });\n }, [timeSerializingFormat]);\n\n const allErrors = useMemo(() => {\n if (required || subtype !== DATETIME_SUBTYPES.DATETIME) return errors;\n const isOnlyOneFieldSet =\n (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) ||\n (!isValidDate(dateTime.date) && isValidTime(dateTime.time));\n return isOnlyOneFieldSet ? ['Date and time must both be entered.', ...errors] : errors;\n }, [required, subtype, dateTime, errors]);\n\n const setDate = useCallback((date) => {\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, date } : { date }));\n }, []);\n\n const setTime = useCallback((time) => {\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, time } : { time }));\n }, []);\n\n const errorMessageId = allErrors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n const descriptionId = `${prefixId(id, formId)}-description`;\n\n const datePickerProps = {\n label: dateLabel,\n collapseLabelOnEmpty: !timeLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n domId: `${domId}-date`,\n required,\n disabled,\n disallowPassedDates,\n date: dateTime.date,\n readonly,\n setDate,\n 'aria-describedby': [descriptionId, errorMessageId].join(' '),\n };\n\n const timePickerProps = {\n label: timeLabel,\n collapseLabelOnEmpty: !dateLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n domId: `${domId}-time`,\n required,\n disabled,\n readonly,\n use24h,\n timeInterval,\n time: dateTime.time,\n setTime,\n 'aria-describedby': [descriptionId, errorMessageId].join(' '),\n };\n\n return (\n <div class={formFieldClasses(type, { errors: allErrors, disabled, readonly })}>\n <div class={classNames('fjs-vertical-group')} ref={dateTimeGroupRef}>\n {useDatePicker && <Datepicker {...datePickerProps} />}\n {useTimePicker && useDatePicker && <div class=\"fjs-datetime-separator\" />}\n {useTimePicker && <Timepicker {...timePickerProps} />}\n </div>\n <Description id={descriptionId} description={description} />\n <Errors errors={allErrors} id={errorMessageId} />\n </div>\n );\n}\n\nDatetime.config = {\n type,\n keyed: true,\n label: 'Date time',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: sanitizeDateTimePickerValue,\n create: (options = {}) => {\n const defaults = {};\n set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\n set(defaults, DATE_LABEL_PATH, 'Date');\n\n return { ...defaults, ...options };\n },\n};\n","import classNames from 'classnames';\nimport { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport { Label } from '../Label';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function Group(props) {\n const { field, domId } = props;\n const { label, type, showOutline } = field;\n const { Empty } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div\n className={classNames(formFieldClasses(type), 'fjs-form-field-grouplike', { 'fjs-outlined': showOutline })}\n role=\"group\"\n aria-labelledby={domId}>\n <Label id={domId} label={label} />\n <ChildrenRenderer {...fullProps} />\n </div>\n );\n}\n\nGroup.config = {\n type: 'group',\n pathed: true,\n label: 'Group',\n group: 'container',\n create: (options = {}) => ({\n components: [],\n showOutline: true,\n ...options,\n }),\n};\n","import { useEffect, useMemo, useState } from 'preact/hooks';\n\nimport { useSingleLineTemplateEvaluation, useSecurityAttributesMap } from '../../hooks';\nimport { sanitizeIFrameSource } from '../util/sanitizerUtil';\n\nimport { Label } from '../Label';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'iframe';\n\nconst DEFAULT_HEIGHT = 300;\n\nexport function IFrame(props) {\n const { field, disabled, readonly, domId } = props;\n\n const { height = DEFAULT_HEIGHT, label, url, security = {} } = field;\n\n const evaluatedUrl = useSingleLineTemplateEvaluation(url, { debug: true });\n\n const safeUrl = useMemo(() => sanitizeIFrameSource(evaluatedUrl), [evaluatedUrl]);\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(label, { debug: true });\n\n const [sandbox, allow] = useSecurityAttributesMap(security);\n const [iframeRefresh, setIframeRefresh] = useState(0);\n\n // forces re-render of iframe when sandbox or allow attributes change, as browsers do not do it automatically\n useEffect(() => {\n setIframeRefresh((count) => count + 1);\n }, [sandbox, allow]);\n\n return (\n <div class={formFieldClasses(type, { disabled, readonly })}>\n <Label htmlFor={domId} label={evaluatedLabel} />\n {!evaluatedUrl && <IFramePlaceholder text=\"No content to show.\" />}\n {evaluatedUrl && safeUrl && (\n <iframe\n src={safeUrl}\n title={evaluatedLabel}\n height={height}\n class=\"fjs-iframe\"\n id={domId}\n sandbox={sandbox}\n key={'iframe-' + iframeRefresh}\n /* @Note: JSX HTML attributes do not include <allow> */\n {...{ allow }}\n />\n )}\n {evaluatedUrl && !safeUrl && <IFramePlaceholder text=\"External content couldn't be loaded.\" />}\n </div>\n );\n}\n\nfunction IFramePlaceholder(props) {\n const { text = 'iFrame' } = props;\n\n return (\n <div class=\"fjs-iframe-placeholder\">\n <p class=\"fjs-iframe-placeholder-text\">{text}</p>\n </div>\n );\n}\n\nIFrame.config = {\n type,\n keyed: false,\n label: 'iFrame',\n group: 'container',\n create: (options = {}) => ({\n security: {\n allowScripts: true,\n },\n ...options,\n }),\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 17a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h36zm-9 8.889H18v2.222h18v-2.222z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M34 18H20a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V20a2 2 0 0 0-2-2zm-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23l-9 9z\"/></svg>","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.35 24.75H19V29.4H14.35V24.75ZM12.9358 23.3358C13.3109 22.9607 13.8196 22.75 14.35 22.75H19C19.5304 22.75 20.0391 22.9607 20.4142 23.3358C20.7893 23.7109 21 24.2196 21 24.75V29.4C21 29.9304 20.7893 30.4391 20.4142 30.8142C20.0391 31.1893 19.5304 31.4 19 31.4H14.35C13.8196 31.4 13.3109 31.1893 12.9358 30.8142C12.5607 30.4391 12.35 29.9304 12.35 29.4V24.75C12.35 24.2196 12.5607 23.7109 12.9358 23.3358ZM14.35 37.05H19V41.7H14.35V37.05ZM12.9358 35.6358C13.3109 35.2607 13.8196 35.05 14.35 35.05H19C19.5304 35.05 20.0391 35.2607 20.4142 35.6358C20.7893 36.0109 21 36.5196 21 37.05V41.7C21 42.2304 20.7893 42.7391 20.4142 43.1142C20.0391 43.4893 19.5304 43.7 19 43.7H14.35C13.8196 43.7 13.3109 43.4893 12.9358 43.1142C12.5607 42.7391 12.35 42.2304 12.35 41.7V37.05C12.35 36.5196 12.5607 36.0109 12.9358 35.6358ZM14.35 12.45H19V17.1H14.35V12.45ZM12.9358 11.0358C13.3109 10.6607 13.8196 10.45 14.35 10.45H19C19.5304 10.45 20.0391 10.6607 20.4142 11.0358C20.7893 11.4109 21 11.9196 21 12.45V17.1C21 17.6304 20.7893 18.1391 20.4142 18.5142C20.0391 18.8893 19.5304 19.1 19 19.1H14.35C13.8196 19.1 13.3109 18.8893 12.9358 18.5142C12.5607 18.1391 12.35 17.6304 12.35 17.1V12.45C12.35 11.9196 12.5607 11.4109 12.9358 11.0358ZM24.9429 26.0128C24.7554 26.2004 24.65 26.4547 24.65 26.7199V27.3699C24.65 27.6352 24.7554 27.8895 24.9429 28.077C25.1304 28.2646 25.3848 28.3699 25.65 28.3699H40.65C40.9152 28.3699 41.1696 28.2646 41.3571 28.077C41.5446 27.8895 41.65 27.6352 41.65 27.3699V26.7199C41.65 26.4547 41.5446 26.2004 41.3571 26.0128C41.1696 25.8253 40.9152 25.7199 40.65 25.7199H25.65C25.3848 25.7199 25.1304 25.8253 24.9429 26.0128ZM24.9429 38.3128C24.7554 38.5004 24.65 38.7547 24.65 39.0199V39.6699C24.65 39.9352 24.7554 40.1895 24.9429 40.377C25.1304 40.5646 25.3848 40.6699 25.65 40.6699H40.65C40.9152 40.6699 41.1696 40.5646 41.3571 40.377C41.5446 40.1895 41.65 39.9352 41.65 39.6699V39.0199C41.65 38.7547 41.5446 38.5004 41.3571 38.3128C41.1696 38.1253 40.9152 38.0199 40.65 38.0199H25.65C25.3848 38.0199 25.1304 38.1253 24.9429 38.3128ZM24.9429 13.7128C24.7554 13.9004 24.65 14.1547 24.65 14.4199V15.0699C24.65 15.3352 24.7554 15.5895 24.9429 15.777C25.1304 15.9646 25.3848 16.0699 25.65 16.0699H40.65C40.9152 16.0699 41.1696 15.9646 41.3571 15.777C41.5446 15.5895 41.65 15.3352 41.65 15.0699V14.4199C41.65 14.1547 41.5446 13.9004 41.3571 13.7128C41.1696 13.5253 40.9152 13.4199 40.65 13.4199H25.65C25.3848 13.4199 25.1304 13.5253 24.9429 13.7128Z\" fill=\"currentColor\"/>\n</svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 0 0-2.06 2.06v23.549a2.07 2.07 0 0 0 2.06 2.06h6.77v-1.766h-6.358a.707.707 0 0 1-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 0 1 .707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z\"/><path d=\"m35.13 37.603 1.237-1.237-3.468-3.475v-5.926h-1.754v6.654l3.984 3.984Z\"/><path fill-rule=\"evenodd\" d=\"M23.08 36.962a9.678 9.678 0 1 0 17.883-7.408 9.678 9.678 0 0 0-17.882 7.408Zm4.54-10.292a7.924 7.924 0 1 1 8.805 13.177A7.924 7.924 0 0 1 27.62 26.67Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36Zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1Z\"/><path d=\"M11 22a1 1 0 0 1 1-1h19a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H12a1 1 0 0 1-1-1V22Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\"><rect width=\"24\" height=\"4\" x=\"15\" y=\"17\" rx=\"1\"/><rect width=\"24\" height=\"4\" x=\"15\" y=\"25\" rx=\"1\"/><rect width=\"13\" height=\"4\" x=\"15\" y=\"33\" rx=\"1\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M4.05 42.132v1.164c0 .693.604 1.254 1.35 1.254h1.35v-2.507h-2.7v.09Zm0-2.328h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7V32.82h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656v.09h2.7V9.45H5.4c-.746 0-1.35.561-1.35 1.254v1.164Zm5.4-2.418v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V10.704c0-.693-.604-1.254-1.35-1.254h-1.35Zm2.7 4.746h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7V32.82Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656v-.09h-2.7v2.508h1.35c.746 0 1.35-.561 1.35-1.254v-1.164Zm-5.4 2.418v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-12 7h9l-4.5 6-4.5-6z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" d=\"M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM9 26h36v2H9v-2ZM22.293 33.707l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" d=\"M9 15v2h36v-2H9ZM9 37v2h36v-2H9ZM26.293 19.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM22.293 30.707l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795c.049.14.075.29.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096H2.7Zm2.7-2.507v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014V13.21H2.7v2.507h2.7Zm-2.7-5.014h1.852a1.346 1.346 0 0 1-.502.096h1.275v-.096H5.4V9.45c0 .156-.026.306-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45v1.254Zm5.175.096h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1-2.7v1.795a1.348 1.348 0 0 1-.075-.445v1.254h.075v.096h1.275c-.177 0-.347-.034-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35h-1.275Zm-.075 5.11v2.508h2.7V13.21h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7V23.24h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm2.7 5.014h-1.852c.155-.062.325-.096.502-.096h-1.275v.096H48.6v1.254c0-.156.026-.305.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35v-1.254Zm-5.175-.096h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7ZM16.2 17.55a4.05 4.05 0 0 1 4.05 4.05v1.35A4.05 4.05 0 0 1 16.2 27h-1.35a4.05 4.05 0 0 1-4.05-4.05V21.6a4.05 4.05 0 0 1 4.05-4.05h1.35Zm0 2.7h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35c0 .746.604 1.35 1.35 1.35h1.35a1.35 1.35 0 0 0 1.35-1.35V21.6a1.35 1.35 0 0 0-1.35-1.35Zm27 1.35a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35A4.05 4.05 0 0 0 29.7 27h9.45a4.05 4.05 0 0 0 4.05-4.05V21.6Zm-13.5-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35a1.35 1.35 0 0 1-1.35 1.35H29.7a1.35 1.35 0 0 1-1.35-1.35V21.6c0-.746.604-1.35 1.35-1.35ZM43.2 37.8a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35h2.7V37.8c0-.746.604-1.35 1.35-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35h2.7V37.8Zm-27-4.05a4.05 4.05 0 0 1 4.05 4.05v1.35h-2.7V37.8a1.35 1.35 0 0 0-1.35-1.35h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35h-2.7V37.8a4.05 4.05 0 0 1 4.05-4.05h1.35Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 0 1 2.4.14 3.42 3.42 0 0 1 1.41.55 3.47 3.47 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.63 3.63 0 0 1-1.09 1.4 3.89 3.89 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 0 0 1.1-.49 1.41 1.41 0 0 0 .41-1 1.49 1.49 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.69 1.69 0 0 0-.86-.62 9.28 9.28 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.09 7.09 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.31 5.31 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21z\"/></svg>","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M47.0082 12.15C48.6329 12.15 49.95 13.5106 49.95 15.189V38.811C49.95 40.4894 48.6329 41.85 47.0082 41.85H6.99194C5.36718 41.85 4.05005 40.4894 4.05005 38.811V15.189C4.05005 13.5106 5.36718 12.15 6.99194 12.15H47.0082ZM47.0082 14.176H6.99194C6.45035 14.176 6.01131 14.6295 6.01131 15.189V16.2H6.00755V18.9H6.01131V38.811C6.01131 39.3705 6.45035 39.824 6.99194 39.824H47.0082C47.5498 39.824 47.9888 39.3705 47.9888 38.811V18.9H47.9925V16.2H47.9888V15.189C47.9888 14.6295 47.5498 14.176 47.0082 14.176ZM14.9344 26.055V22.275H17.1282V31.725H14.9344V27.945H11.6438V31.725H9.45005V22.275H11.6438V26.055H14.9344ZM19.3219 24.165H21.5157V31.725H23.7094V24.165H25.9032V22.275H19.3219V24.165ZM33.5813 22.275H35.775V31.725H33.5813V25.11L31.936 28.89L30.2907 25.11V31.725H28.0969V22.275H30.2907L31.936 26.055L33.5813 22.275ZM37.9688 22.275H40.1625V29.835H44.55V31.725H37.9688V22.275Z\" fill=\"currentColor\"/>\n</svg>\n","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.78 16.2V22.95C12.78 24.5689 12.1447 26.0086 11.1621 27C12.1447 27.9914 12.78 29.4311 12.78 31.05V37.8H16.29V40.5H12.78C11.4912 40.5 10.44 39.2871 10.44 37.8V31.05C10.44 29.5629 9.38883 28.35 8.10001 28.35V25.65C9.38883 25.65 10.44 24.4371 10.44 22.95V16.2C10.44 14.7129 11.4912 13.5 12.78 13.5H16.29V16.2H12.78ZM43.56 16.2V22.95C43.56 24.4371 44.6112 25.65 45.9 25.65V28.35C44.6112 28.35 43.56 29.5629 43.56 31.05V37.8C43.56 39.2871 42.5088 40.5 41.22 40.5H37.71V37.8H41.22V31.05C41.22 29.4311 41.8553 27.9914 42.8379 27C41.8553 26.0086 41.22 24.5689 41.22 22.95V16.2H37.71V13.5H41.22C42.5088 13.5 43.56 14.7129 43.56 16.2ZM21.8005 34.5313C22.2674 34.1521 22.5869 33.5662 22.7589 32.7734L24.5467 24.4321H26.1317L26.5187 22.6053H24.9337L25.3392 20.7268H26.9242L27.3113 18.9H25.6894C24.8416 18.9 24.1842 19.0896 23.7173 19.4687C23.2627 19.8479 22.9494 20.4338 22.7774 21.2266L22.4825 22.6053H21.3398L20.9527 24.4321H22.0954L20.1971 33.2732H18.612L18.225 35.1H19.8469C20.6947 35.1 21.3459 34.9104 21.8005 34.5313ZM29.0479 26.8449L25.2512 31.6532H27.8499L29.9694 28.6372H30.1906L31.0752 31.6532H33.6739L31.9967 27.293L35.775 22.6053H33.1763L31.0568 25.5523H30.8356L29.951 22.6053H27.3523L29.0479 26.8449Z\" fill=\"currentcolor\"/>\r\n</svg>\r\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-32 4v10h-2V22h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1zm-1.136 15.5.849.849-6.364 6.364-.849-.849 6.364-6.364zm.264 3.5.849.849-2.828 2.828-.849-.849L44.128 34zM13 19v10h-2V19h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039h37.316Zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.768 8.768 0 0 1 39.825 27a8.768 8.768 0 0 1 8.775 8.775 8.768 8.768 0 0 1-8.775 8.775 8.768 8.768 0 0 1-8.775-8.775Zm12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161h-2.994Zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678h3.097Zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0c-.103 1.755-.413 3.303-.929 4.645 1.858-.826 3.304-2.58 3.923-4.645h-2.994Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z\" clip-rule=\"evenodd\"/><path fill-rule=\"evenodd\" d=\"M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2H15Zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73V15ZM15 39v-8.754c.06-.038.116-.083.168-.135l5.893-5.893 6.684 6.685a1.911 1.911 0 0 0 2.41.238l2.657-1.77 6.02 6.02c.052.051.108.097.168.135V39H15Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 54 54\"><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M42.545479 12.272741C43.901087 12.272741 45 13.371687 45 14.727295v24.545443c0 1.355609-1.098913 2.454521-2.454521 2.454521H11.454554C10.098946 41.727259 9 40.628347 9 39.272738V14.727295c0-1.355608 1.098946-2.454554 2.454554-2.454554zM27.818242 40.090875h14.727237c.451869 0 .818137-.366267.818137-.818137v-4.909042H27.818242Zm-1.636385-5.727179v5.727179H11.454554c-.451869 0-.818192-.366267-.818192-.818137v-4.909042zm1.636385-1.636385h15.545374v-5.727289H27.818242Zm-1.636385-5.727289v5.727289H10.636362v-5.727289zm1.636385-1.636384h15.545374v-5.72729H27.818242Zm-1.636385-5.72729v5.72729H10.636362v-5.72729z\" clip-rule=\"evenodd\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M17.55 41.175H27v2.362h-9.45a2.37 2.37 0 0 1-2.363-2.362v-28.35a2.37 2.37 0 0 1 2.363-2.363h11.813a1.074 1.074 0 0 1 .826.355l8.27 8.269a1.074 1.074 0 0 1 .353.826v5.907H36.45v-3.544h-7.088A2.37 2.37 0 0 1 27 19.912v-7.087h-9.45v28.35Zm18.427-21.263-6.614-6.615v6.615h6.614Zm4.253 18.664 3.308 3.308-1.654 1.653-3.308-3.307a6.35 6.35 0 0 1-3.307.945c-3.308 0-5.906-2.599-5.906-5.906 0-3.308 2.598-5.907 5.906-5.907 3.307 0 5.906 2.6 5.906 5.907a6.35 6.35 0 0 1-.945 3.307Zm-4.961-6.851c-2.008 0-3.544 1.536-3.544 3.544s1.536 3.543 3.544 3.543 3.544-1.535 3.544-3.543-1.536-3.544-3.544-3.544Z\" clip-rule=\"evenodd\"/></svg>","import ButtonIcon from './Button.svg';\nimport CheckboxIcon from './Checkbox.svg';\nimport ChecklistIcon from './Checklist.svg';\nimport DatetimeIcon from './Datetime.svg';\nimport TaglistIcon from './Taglist.svg';\nimport FormIcon from './Form.svg';\nimport ColumnsIcon from './Group.svg';\nimport NumberIcon from './Number.svg';\nimport RadioIcon from './Radio.svg';\nimport SelectIcon from './Select.svg';\nimport SeparatorIcon from './Separator.svg';\nimport SpacerIcon from './Spacer.svg';\nimport DynamicListIcon from './DynamicList.svg';\nimport TextIcon from './Text.svg';\nimport HTMLIcon from './HTML.svg';\nimport ExpressionFieldIcon from './ExpressionField.svg';\nimport TextfieldIcon from './Textfield.svg';\nimport TextareaIcon from './Textarea.svg';\nimport IFrameIcon from './IFrame.svg';\nimport ImageIcon from './Image.svg';\nimport GroupIcon from './Group.svg';\nimport TableIcon from './Table.svg';\nimport FilePickerIcon from './FilePicker.svg';\n\nexport const iconsByType = (type) => {\n return {\n button: ButtonIcon,\n checkbox: CheckboxIcon,\n checklist: ChecklistIcon,\n columns: ColumnsIcon,\n datetime: DatetimeIcon,\n group: GroupIcon,\n iframe: IFrameIcon,\n image: ImageIcon,\n number: NumberIcon,\n expression: ExpressionFieldIcon,\n radio: RadioIcon,\n select: SelectIcon,\n separator: SeparatorIcon,\n spacer: SpacerIcon,\n dynamiclist: DynamicListIcon,\n taglist: TaglistIcon,\n text: TextIcon,\n html: HTMLIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n table: TableIcon,\n filepicker: FilePickerIcon,\n default: FormIcon,\n }[type];\n};\n","import { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { iconsByType } from '../icons';\n\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\nimport { sanitizeImageSource } from '../util/sanitizerUtil';\n\nimport { formFieldClasses, prefixId } from '../Util';\n\nconst type = 'image';\n\nexport function Image(props) {\n const { field } = props;\n\n const { alt, id, source } = field;\n\n const Icon = iconsByType(field.type);\n\n const evaluatedImageSource = useSingleLineTemplateEvaluation(source, { debug: true });\n\n const safeSource = useMemo(() => sanitizeImageSource(evaluatedImageSource), [evaluatedImageSource]);\n\n const altText = useSingleLineTemplateEvaluation(alt, { debug: true });\n\n const { formId } = useContext(FormContext);\n\n return (\n <div class={formFieldClasses(type)}>\n {safeSource && (\n <div class=\"fjs-image-container\">\n <img alt={altText} src={safeSource} class=\"fjs-image\" id={prefixId(id, formId)} />\n </div>\n )}\n {!safeSource && (\n <div class=\"fjs-image-placeholder\">\n <span class=\"fjs-image-placeholder-inner\">\n <Icon alt=\"This is an image placeholder\" width=\"32\" height=\"32\" viewBox=\"0 0 56 56\" />\n </span>\n </div>\n )}\n </div>\n );\n}\n\nImage.config = {\n type,\n keyed: false,\n label: 'Image view',\n group: 'presentation',\n create: (options = {}) => ({\n ...options,\n }),\n};\n","import { InputAdorner } from './InputAdorner';\n\nimport { useSingleLineTemplateEvaluation } from '../../../hooks';\n\nexport function TemplatedInputAdorner(props) {\n const { pre, post } = props;\n\n const evaluatedPre = useSingleLineTemplateEvaluation(pre, { debug: true });\n const evaluatedPost = useSingleLineTemplateEvaluation(post, { debug: true });\n\n return <InputAdorner {...props} pre={evaluatedPre} post={evaluatedPost} />;\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M7.75 1.336 4 6.125.258 1.335 0 1.54l4 5.125L8 1.54Zm0 0\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M7.75 6.664 4 1.875.258 6.665 0 6.46l4-5.125L8 6.46Zm0 0\" clip-rule=\"evenodd\"/></svg>","import Big from 'big.js';\n\nexport function countDecimals(number) {\n const num = Big(number);\n if (num.toString() === num.toFixed(0)) return 0;\n return num.toFixed().split('.')[1].length || 0;\n}\n\nexport function isValidNumber(value) {\n return (typeof value === 'number' || typeof value === 'string') && value !== '' && !isNaN(Number(value));\n}\n\nexport function willKeyProduceValidNumber(key, previousValue, caretIndex, selectionWidth, decimalDigits) {\n if (previousValue === 'NaN') {\n return false;\n }\n\n // Dot and comma are both treated as dot\n previousValue = previousValue.replace(',', '.');\n const isFirstDot = !previousValue.includes('.') && (key === '.' || key === ',');\n const isFirstMinus = !previousValue.includes('-') && key === '-' && caretIndex === 0;\n\n const keypressIsNumeric = /^[0-9]$/i.test(key);\n const dotIndex = previousValue === undefined ? -1 : previousValue.indexOf('.');\n\n // If the caret is positioned after a dot, and the current decimal digits count is equal or greater to the maximum, disallow the key press\n const overflowsDecimalSpace =\n typeof decimalDigits === 'number' &&\n selectionWidth === 0 &&\n dotIndex !== -1 &&\n previousValue.includes('.') &&\n previousValue.split('.')[1].length >= decimalDigits &&\n caretIndex > dotIndex;\n\n const keypressIsAllowedChar = keypressIsNumeric || (decimalDigits !== 0 && isFirstDot) || isFirstMinus;\n\n return keypressIsAllowedChar && !overflowsDecimalSpace;\n}\n\nexport function isNullEquivalentValue(value) {\n return value === undefined || value === null || value === '';\n}\n","import Big from 'big.js';\nimport classNames from 'classnames';\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport { useFlushDebounce, usePrevious } from '../../hooks';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { TemplatedInputAdorner } from './parts/TemplatedInputAdorner';\n\nimport AngelDownIcon from './icons/AngelDown.svg';\nimport AngelUpIcon from './icons/AngelUp.svg';\n\nimport { formFieldClasses } from '../Util';\n\nimport { isNullEquivalentValue, isValidNumber, willKeyProduceValidNumber } from '../util/numberFieldUtil';\n\nconst type = 'number';\n\nexport function Numberfield(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, value, readonly } = props;\n\n const { description, label, appearance = {}, validate = {}, decimalDigits, increment: incrementValue } = field;\n\n const { prefixAdorner, suffixAdorner } = appearance;\n\n const { required } = validate;\n\n const inputRef = useRef();\n\n const [cachedValue, setCachedValue] = useState(value);\n const [displayValue, setDisplayValue] = useState(value);\n\n const sanitize = useCallback((value) => Numberfield.config.sanitizeValue({ value, formField: field }), [field]);\n\n const [debouncedOnChange, flushOnChange] = useFlushDebounce(props.onChange);\n\n const previousCachedValue = usePrevious(value);\n\n if (previousCachedValue !== cachedValue) {\n debouncedOnChange({ field, value: cachedValue });\n }\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n // all value changes must go through this function\n const setValue = useCallback(\n (stringValue) => {\n if (isNullEquivalentValue(stringValue)) {\n setDisplayValue('');\n setCachedValue(null);\n return;\n }\n\n // converts automatically for countries where the comma is used as a decimal separator\n stringValue = stringValue.replaceAll(',', '.');\n\n if (stringValue === '-') {\n setDisplayValue('-');\n return;\n }\n\n // provides feedback for invalid numbers entered via pasting as opposed to just ignoring the paste\n if (isNaN(Number(stringValue))) {\n setDisplayValue('NaN');\n setCachedValue(null);\n return;\n }\n\n setDisplayValue(stringValue);\n setCachedValue(sanitize(stringValue));\n },\n [sanitize],\n );\n\n // when external changes occur independently of the input, we update the display and cache values of the component\n const previousValue = usePrevious(value);\n const outerValueChanged = previousValue != value;\n const outerValueEqualsCache = sanitize(value) === sanitize(cachedValue);\n\n if (outerValueChanged && !outerValueEqualsCache) {\n setValue((value && value.toString()) || '');\n }\n\n // caches the value an increment/decrement operation will be based on\n const incrementAmount = useMemo(() => {\n if (incrementValue) return Big(incrementValue);\n if (decimalDigits) return Big(`1e-${decimalDigits}`);\n return Big('1');\n }, [decimalDigits, incrementValue]);\n\n const increment = () => {\n if (readonly) {\n return;\n }\n\n const base = isValidNumber(cachedValue) ? Big(cachedValue) : Big(0);\n const stepFlooredValue = base.minus(base.mod(incrementAmount));\n\n // note: toFixed() behaves differently in big.js\n setValue(stepFlooredValue.plus(incrementAmount).toFixed());\n };\n\n const decrement = () => {\n if (readonly) {\n return;\n }\n\n const base = isValidNumber(cachedValue) ? Big(cachedValue) : Big(0);\n const offset = base.mod(incrementAmount);\n\n if (offset.cmp(0) === 0) {\n // if we're already on a valid step, decrement\n setValue(base.minus(incrementAmount).toFixed());\n } else {\n // otherwise floor to the step\n const stepFlooredValue = base.minus(base.mod(incrementAmount));\n setValue(stepFlooredValue.toFixed());\n }\n };\n\n const onKeyDown = (e) => {\n // delete the NaN state all at once on backspace or delete\n if (displayValue === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\n setValue('');\n e.preventDefault();\n return;\n }\n\n if (e.code === 'ArrowUp') {\n increment();\n e.preventDefault();\n return;\n }\n\n if (e.code === 'ArrowDown') {\n decrement();\n e.preventDefault();\n return;\n }\n };\n\n // intercept key presses which would lead to an invalid number\n const onKeyPress = (e) => {\n const caretIndex = inputRef.current.selectionStart;\n const selectionWidth = inputRef.current.selectionStart - inputRef.current.selectionEnd;\n const previousValue = inputRef.current.value;\n\n if (!willKeyProduceValidNumber(e.key, previousValue, caretIndex, selectionWidth, decimalDigits)) {\n e.preventDefault();\n }\n };\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <TemplatedInputAdorner disabled={disabled} readonly={readonly} pre={prefixAdorner} post={suffixAdorner}>\n <div\n class={classNames(\n 'fjs-vertical-group',\n { 'fjs-disabled': disabled, 'fjs-readonly': readonly },\n { hasErrors: errors.length },\n )}>\n <input\n ref={inputRef}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={domId}\n onKeyDown={onKeyDown}\n onKeyPress={onKeyPress}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n // @ts-ignore\n onInput={(e) => setValue(e.target.value, true)}\n onPaste={(e) => displayValue === 'NaN' && e.preventDefault()}\n type=\"text\"\n autoComplete=\"off\"\n step={incrementAmount}\n value={displayValue}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n <div class={classNames('fjs-number-arrow-container', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}>\n {/* we're disabling tab navigation on both buttons to imitate the native browser behavior of input[type='number'] increment arrows */}\n <button\n type=\"button\"\n class=\"fjs-number-arrow-up\"\n aria-label=\"Increment\"\n onClick={() => increment()}\n tabIndex={-1}>\n <AngelUpIcon />\n </button>\n <div class=\"fjs-number-arrow-separator\" />\n <button\n type=\"button\"\n class=\"fjs-number-arrow-down\"\n aria-label=\"Decrement\"\n onClick={() => decrement()}\n tabIndex={-1}>\n <AngelDownIcon />\n </button>\n </div>\n </div>\n </TemplatedInputAdorner>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nNumberfield.config = {\n type,\n keyed: true,\n label: 'Number',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: ({ value, formField }) => {\n // invalid value types are sanitized to null\n if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;\n\n // otherwise, we return a string or a number depending on the form field configuration\n return formField.serializeToString ? value.toString() : Number(value);\n },\n create: (options = {}) => ({\n ...options,\n }),\n};\n","import { useRef } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\nimport { useOptionsAsync, LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport { useCleanupSingleSelectValue } from '../../hooks/useCleanupSingleSelectValue';\nimport classNames from 'classnames';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'radio';\n\nexport function Radio(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value } = props;\n\n const { description, label, validate = {} } = field;\n\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const onChange = (v) => {\n props.onChange({\n value: v,\n });\n };\n\n const onRadioBlur = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n };\n\n const onRadioFocus = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n };\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange,\n });\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })} ref={outerDivRef}>\n <Label label={label} required={required} />\n {loadState == LOAD_STATES.LOADED &&\n options.map((option, index) => {\n const itemDomId = `${domId}-${index}`;\n const isChecked = isEqual(option.value, value);\n\n return (\n <Label\n htmlFor={itemDomId}\n key={index}\n label={option.label}\n class={classNames({ 'fjs-checked': isChecked })}\n required={false}>\n <input\n checked={isChecked}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={itemDomId}\n type=\"radio\"\n onClick={() => onChange(option.value)}\n onBlur={onRadioBlur}\n onFocus={onRadioFocus}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n </Label>\n );\n })}\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nRadio.config = {\n type,\n keyed: true,\n label: 'Radio group',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: createEmptyOptions,\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M4 3.766 7.43.336l.234.234L4.234 4l3.43 3.43-.234.234L4 4.234.57 7.664.336 7.43 3.766 4 .336.57.57.336Zm0 0\" clip-rule=\"evenodd\"/></svg>","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useOptionsAsync, LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\nimport { useService, useCleanupSingleSelectValue } from '../../../hooks';\n\nimport classNames from 'classnames';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\nimport { DropdownList } from './DropdownList';\n\nexport function SearchableSelect(props) {\n const { domId, disabled, errors, onBlur, onFocus, field, readonly, value } = props;\n\n const [filter, setFilter] = useState('');\n const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n const [isFilterActive, setIsFilterActive] = useState(true);\n const [isEscapeClosed, setIsEscapeClose] = useState(false);\n const searchbarRef = useRef();\n const eventBus = useService('eventBus');\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange,\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const label = useMemo(() => value && getLabelCorrelation(value), [value, getLabelCorrelation]);\n\n // whenever we change the underlying value, set the label to it\n useEffect(() => {\n setFilter(label || '');\n }, [label]);\n\n const filteredOptions = useMemo(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return [];\n }\n\n if (!filter || !isFilterActive) {\n return options;\n }\n\n return options.filter((o) => o.label && o.value && o.label.toLowerCase().includes(filter.toLowerCase()));\n }, [filter, loadState, options, isFilterActive]);\n\n const setValue = useCallback(\n (option) => {\n setFilter((option && option.label) || '');\n props.onChange({ value: (option && option.value) || null });\n },\n [props],\n );\n\n const displayState = useMemo(() => {\n const ds = {};\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded && !isEscapeClosed;\n return ds;\n }, [disabled, isDropdownExpanded, isEscapeClosed, loadState, readonly, value]);\n\n const onAngelMouseDown = useCallback(\n (e) => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(!isDropdownExpanded);\n\n const searchbar = searchbarRef.current;\n isDropdownExpanded ? searchbar.blur() : searchbar.focus();\n\n e.preventDefault();\n },\n [isDropdownExpanded],\n );\n\n const onInputChange = ({ target }) => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n setIsFilterActive(true);\n setFilter(target.value || '');\n eventBus.fire('formField.search', { formField: field, value: target.value || '' });\n };\n\n const onInputKeyDown = useCallback(\n (keyDownEvent) => {\n switch (keyDownEvent.key) {\n case 'ArrowUp':\n keyDownEvent.preventDefault();\n break;\n case 'ArrowDown': {\n if (!isDropdownExpanded) {\n setIsDropdownExpanded(true);\n setIsFilterActive(false);\n }\n\n keyDownEvent.preventDefault();\n break;\n }\n case 'Escape':\n setIsEscapeClose(true);\n break;\n case 'Enter':\n if (isEscapeClosed) {\n setIsEscapeClose(false);\n }\n break;\n }\n },\n [isDropdownExpanded, isEscapeClosed],\n );\n\n const onInputMouseDown = useCallback(() => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n setIsFilterActive(false);\n }, []);\n\n const onInputFocus = useCallback(() => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n onFocus && onFocus();\n }, [onFocus]);\n\n const onInputBlur = useCallback(() => {\n setIsDropdownExpanded(false);\n setFilter(label || '');\n onBlur && onBlur();\n }, [onBlur, label]);\n\n return (\n <>\n <div\n class={classNames('fjs-input-group', { disabled: disabled, readonly: readonly }, { hasErrors: errors.length })}>\n <input\n disabled={disabled}\n readOnly={readonly}\n class=\"fjs-input\"\n ref={searchbarRef}\n id={domId}\n onChange={onInputChange}\n type=\"text\"\n value={filter}\n placeholder={'Search'}\n autoComplete=\"off\"\n onKeyDown={onInputKeyDown}\n onMouseDown={onInputMouseDown}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n aria-describedby={props['aria-describedby']}\n />\n {displayState.displayCross && (\n <span\n class=\"fjs-select-cross\"\n onMouseDown={(e) => {\n setValue(null);\n e.preventDefault();\n }}>\n <XMarkIcon />{' '}\n </span>\n )}\n <span class=\"fjs-select-arrow\" onMouseDown={(e) => onAngelMouseDown(e)}>\n {displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon />}\n </span>\n </div>\n <div class=\"fjs-select-anchor\">\n {displayState.displayDropdown && (\n <DropdownList\n values={filteredOptions}\n getLabel={(o) => o.label}\n onValueSelected={(o) => {\n setValue(o);\n setIsDropdownExpanded(false);\n }}\n listenerElement={searchbarRef.current}\n />\n )}\n </div>\n </>\n );\n}\n","import { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { findIndex } from 'min-dash';\nimport { useOptionsAsync, LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useCleanupSingleSelectValue } from '../../../hooks/useCleanupSingleSelectValue';\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\nimport { DropdownList } from './DropdownList';\n\nexport function SimpleSelect(props) {\n const { domId, disabled, errors, onBlur, onFocus, field, readonly, value } = props;\n\n const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n const selectRef = useRef();\n const inputRef = useRef();\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange,\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const valueLabel = useMemo(() => value && getLabelCorrelation(value), [value, getLabelCorrelation]);\n\n const setValue = useCallback(\n (option) => {\n props.onChange({ value: (option && option.value) || null });\n },\n [props],\n );\n\n const displayState = useMemo(() => {\n const ds = {};\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded;\n return ds;\n }, [disabled, isDropdownExpanded, loadState, readonly, value]);\n\n const onMouseDown = useCallback(\n (e) => {\n const input = inputRef.current;\n\n if (disabled || !input) {\n return;\n }\n\n setIsDropdownExpanded(!isDropdownExpanded);\n\n if (isDropdownExpanded) {\n input.blur();\n } else {\n input.focus();\n }\n\n e.preventDefault();\n },\n [disabled, isDropdownExpanded],\n );\n\n const initialFocusIndex = useMemo(\n () => (value && findIndex(options, (o) => o.value === value)) || 0,\n [options, value],\n );\n\n const onInputFocus = useCallback(() => {\n if (!readonly) {\n setIsDropdownExpanded(true);\n onFocus && onFocus();\n }\n }, [onFocus, readonly]);\n\n const onInputBlur = useCallback(() => {\n if (!readonly) {\n setIsDropdownExpanded(false);\n onBlur && onBlur();\n }\n }, [onBlur, readonly]);\n\n return (\n <>\n <div\n ref={selectRef}\n class={classNames('fjs-input-group', { disabled, readonly }, { hasErrors: errors.length })}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n onMouseDown={onMouseDown}>\n <div class={classNames('fjs-select-display', { 'fjs-select-placeholder': !value })} id={`${domId}-display`}>\n {valueLabel || 'Select'}\n </div>\n {!disabled && (\n <input\n ref={inputRef}\n id={domId}\n class=\"fjs-select-hidden-input\"\n value={valueLabel}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n aria-describedby={props['aria-describedby']}\n />\n )}\n {displayState.displayCross && (\n <span\n class=\"fjs-select-cross\"\n onMouseDown={(e) => {\n setValue(null);\n e.stopPropagation();\n }}>\n <XMarkIcon />\n </span>\n )}\n <span class=\"fjs-select-arrow\">{displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon />}</span>\n </div>\n <div class=\"fjs-select-anchor\">\n {displayState.displayDropdown && (\n <DropdownList\n values={options}\n getLabel={(o) => o.label}\n initialFocusIndex={initialFocusIndex}\n onValueSelected={(o) => {\n setValue(o);\n setIsDropdownExpanded(false);\n }}\n listenerElement={selectRef.current}\n />\n )}\n </div>\n </>\n );\n}\n","import { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { SearchableSelect } from './parts/SearchableSelect';\nimport { SimpleSelect } from './parts/SimpleSelect';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/optionsUtil';\nimport { formFieldClasses } from '../Util';\n\nconst type = 'select';\n\nexport function Select(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, onChange, readonly, value } = props;\n\n const { description, label, searchable = false, validate = {} } = field;\n\n const { required } = validate;\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n const selectProps = {\n domId,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n value,\n onChange,\n readonly,\n required,\n 'aria-invalid': errors.length > 0,\n 'aria-describedby': [descriptionId, errorMessageId].join(' '),\n };\n\n return (\n <div\n class={formFieldClasses(type, { errors, disabled, readonly })}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n }\n }}>\n <Label htmlFor={domId} label={label} required={required} />\n {searchable ? <SearchableSelect {...selectProps} /> : <SimpleSelect {...selectProps} />}\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nSelect.config = {\n type,\n keyed: true,\n label: 'Select',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: createEmptyOptions,\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'separator';\n\nexport function Separator() {\n return (\n <div class={formFieldClasses(type)}>\n <hr />\n </div>\n );\n}\n\nSeparator.config = {\n type,\n keyed: false,\n label: 'Separator',\n group: 'presentation',\n create: (options = {}) => ({\n ...options,\n }),\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'spacer';\n\nexport function Spacer(props) {\n const { field } = props;\n const { height = 60 } = field;\n\n return <div class={formFieldClasses(type)} style={{ height: height }} />;\n}\n\nSpacer.config = {\n type,\n keyed: false,\n label: 'Spacer',\n group: 'presentation',\n create: (options = {}) => ({\n height: 60,\n ...options,\n }),\n};\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport classNames from 'classnames';\n\nimport { Label } from '../Label';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function DynamicList(props) {\n const { field, domId, readonly } = props;\n const { label, type, showOutline } = field;\n\n const { Empty } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div\n className={classNames(formFieldClasses(type, { readonly }), 'fjs-form-field-grouplike', {\n 'fjs-outlined': showOutline,\n })}\n role=\"group\"\n aria-labelledby={domId}>\n <Label id={domId} label={label} />\n <ChildrenRenderer {...fullProps} />\n </div>\n );\n}\n\nDynamicList.config = {\n type: 'dynamiclist',\n pathed: true,\n repeatable: true,\n label: 'Dynamic list',\n group: 'container',\n create: (options = {}) => ({\n components: [],\n showOutline: true,\n isRepeating: true,\n allowAddRemove: true,\n defaultRepetitions: 1,\n ...options,\n }),\n};\n","import classNames from 'classnames';\n\nimport { useCallback } from 'preact/hooks';\n\nexport function SkipLink(props) {\n const { className, label, onSkip } = props;\n\n const onKeyDown = useCallback(\n (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n onSkip();\n }\n },\n [onSkip],\n );\n\n return (\n <a href=\"#\" class={classNames('fjs-skip-link', className)} onKeyDown={onKeyDown}>\n {label}\n </a>\n );\n}\n","import { useMemo, useRef, useState } from 'preact/hooks';\n\nimport {\n useDeepCompareMemoize,\n useService,\n useOptionsAsync,\n useCleanupMultiSelectValue,\n useGetLabelCorrelation,\n LOAD_STATES,\n} from '../../hooks';\n\nimport XMarkIcon from './icons/XMark.svg';\nimport { DropdownList } from './parts/DropdownList';\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { SkipLink } from './parts/SkipLink';\n\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/optionsUtil';\nimport { formFieldClasses } from '../Util';\n\nconst type = 'taglist';\n\nexport function Taglist(props) {\n const { disabled, errors = [], onFocus, domId, onBlur, field, readonly, value } = props;\n\n const { description, label, validate = {} } = field;\n\n const { required } = validate;\n\n const [filter, setFilter] = useState('');\n const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n const [isEscapeClosed, setIsEscapeClose] = useState(false);\n const focusScopeRef = useRef();\n const inputRef = useRef();\n const eventBus = useService('eventBus');\n\n const { loadState, options } = useOptionsAsync(field);\n\n // ensures we render based on array content instead of reference\n const values = useDeepCompareMemoize(value || []);\n\n useCleanupMultiSelectValue({\n field,\n loadState,\n options,\n values,\n onChange: props.onChange,\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const hasOptionsLeft = useMemo(() => options.length > values.length, [options.length, values.length]);\n\n const filteredOptions = useMemo(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return [];\n }\n\n const isValidFilteredOption = (option) => {\n const filterMatches = option.label.toLowerCase().includes(filter.toLowerCase());\n return filterMatches && !hasEqualValue(option.value, values);\n };\n\n return options.filter(isValidFilteredOption);\n }, [filter, options, values, loadState]);\n\n const selectValue = (value) => {\n setFilter('');\n\n // Ensure values cannot be double selected due to latency\n if (values.at(-1) === value) {\n return;\n }\n\n props.onChange({ value: [...values, value] });\n };\n\n const deselectValue = (value) => {\n const newValues = values.filter((v) => !isEqual(v, value));\n props.onChange({ value: newValues });\n };\n\n const onInputChange = ({ target }) => {\n setIsEscapeClose(false);\n setFilter(target.value || '');\n eventBus.fire('formField.search', { formField: field, value: target.value || '' });\n };\n\n const onInputKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n // We do not want the cursor to seek in the search field when we press up and down\n e.preventDefault();\n break;\n case 'Backspace':\n if (!filter && values.length) {\n deselectValue(values[values.length - 1]);\n }\n break;\n case 'Escape':\n setIsEscapeClose(true);\n break;\n case 'Enter':\n if (isEscapeClosed) {\n setIsEscapeClose(false);\n }\n break;\n }\n };\n\n const onElementBlur = (e) => {\n if (focusScopeRef.current.contains(e.relatedTarget)) return;\n onBlur && onBlur();\n };\n\n const onElementFocus = (e) => {\n if (focusScopeRef.current.contains(e.relatedTarget)) return;\n onFocus && onFocus();\n };\n\n const onInputBlur = (e) => {\n if (!readonly) {\n setIsDropdownExpanded(false);\n setFilter('');\n }\n onElementBlur(e);\n };\n\n const onInputFocus = (e) => {\n if (!readonly) {\n setIsDropdownExpanded(true);\n }\n onElementFocus(e);\n };\n\n const onTagRemoveClick = (event, value) => {\n const { target } = event;\n\n deselectValue(value);\n\n // restore focus if there is no next sibling to focus\n const nextTag = target.closest('.fjs-taglist-tag').nextSibling;\n if (!nextTag) {\n inputRef.current.focus();\n }\n };\n\n const onSkipToSearch = () => {\n inputRef.current.focus();\n };\n\n const shouldDisplayDropdown = useMemo(\n () => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed,\n [disabled, isDropdownExpanded, isEscapeClosed, loadState],\n );\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div\n ref={focusScopeRef}\n class={formFieldClasses(type, { errors, disabled, readonly })}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.stopPropagation();\n event.preventDefault();\n }\n }}>\n <Label label={label} required={required} htmlFor={domId} />\n {!disabled && !readonly && !!values.length && (\n <SkipLink className=\"fjs-taglist-skip-link\" label=\"Skip to search\" onSkip={onSkipToSearch} />\n )}\n <div class={classNames('fjs-taglist', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}>\n {loadState === LOAD_STATES.LOADED && (\n <div class=\"fjs-taglist-tags\">\n {values.map((v) => {\n return (\n <div\n class={classNames('fjs-taglist-tag', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}\n onMouseDown={(e) => e.preventDefault()}>\n <span class=\"fjs-taglist-tag-label\">{getLabelCorrelation(v)}</span>\n {!disabled && !readonly && (\n <button\n type=\"button\"\n title=\"Remove tag\"\n class=\"fjs-taglist-tag-remove\"\n onFocus={onElementFocus}\n onBlur={onElementBlur}\n onClick={(event) => onTagRemoveClick(event, v)}>\n <XMarkIcon />\n </button>\n )}\n </div>\n );\n })}\n </div>\n )}\n <input\n disabled={disabled}\n readOnly={readonly}\n class=\"fjs-taglist-input\"\n ref={inputRef}\n id={domId}\n onChange={onInputChange}\n type=\"text\"\n value={filter}\n placeholder={disabled || readonly ? undefined : 'Search'}\n autoComplete=\"off\"\n onKeyDown={onInputKeyDown}\n onMouseDown={() => setIsEscapeClose(false)}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n </div>\n <div class=\"fjs-taglist-anchor\">\n {shouldDisplayDropdown && (\n <DropdownList\n values={filteredOptions}\n getLabel={(o) => o.label}\n onValueSelected={(o) => selectValue(o.value)}\n emptyListMessage={hasOptionsLeft ? 'No results' : 'All values selected'}\n listenerElement={inputRef.current}\n />\n )}\n </div>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nTaglist.config = {\n type,\n keyed: true,\n label: 'Tag list',\n group: 'selection',\n emptyValue: [],\n sanitizeValue: sanitizeMultiSelectValue,\n create: createEmptyOptions,\n};\n","const NODE_TYPE_TEXT = 3,\n NODE_TYPE_ELEMENT = 1;\n\nconst ALLOWED_NODES = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'span',\n 'em',\n 'a',\n 'p',\n 'div',\n 'ul',\n 'ol',\n 'li',\n 'hr',\n 'blockquote',\n 'img',\n 'pre',\n 'code',\n 'br',\n 'strong',\n 'table',\n 'thead',\n 'tbody',\n 'tr',\n 'th',\n 'td',\n];\n\nconst ALLOWED_ATTRIBUTES = ['align', 'alt', 'class', 'href', 'id', 'name', 'rel', 'target', 'src'];\n\nconst ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\nconst ATTR_WHITESPACE_PATTERN = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g; // eslint-disable-line no-control-regex\n\nconst FORM_ELEMENT = document.createElement('form');\n\n/**\n * Sanitize a HTML string and return the cleaned, safe version.\n *\n * @param {string} html\n * @return {string}\n */\n\n// see https://github.com/developit/snarkdown/issues/70\nexport function sanitizeHTML(html) {\n const doc = new DOMParser().parseFromString(`<!DOCTYPE html>\\n<html><body><div>${html}`, 'text/html');\n\n doc.normalize();\n\n const element = doc.body.firstChild;\n\n if (element) {\n sanitizeNode(/** @type Element */ (element));\n return /** @type Element */ (element).innerHTML;\n } else {\n // handle the case that document parsing\n // does not work at all, due to HTML gibberish\n return '';\n }\n}\n\n/**\n * Recursively sanitize a HTML node, potentially\n * removing it, its children or attributes.\n *\n * Inspired by https://github.com/developit/snarkdown/issues/70\n * and https://github.com/cure53/DOMPurify. Simplified\n * for our use-case.\n *\n * @param {Element} node\n */\nfunction sanitizeNode(node) {\n // allow text nodes\n if (node.nodeType === NODE_TYPE_TEXT) {\n return;\n }\n\n // disallow all other nodes but Element\n if (node.nodeType !== NODE_TYPE_ELEMENT) {\n return node.remove();\n }\n\n const lcTag = node.tagName.toLowerCase();\n\n // disallow non-whitelisted tags\n if (!ALLOWED_NODES.includes(lcTag)) {\n return node.remove();\n }\n\n const attributes = node.attributes;\n\n // clean attributes\n for (let i = attributes.length; i--; ) {\n const attribute = attributes[i];\n\n const name = attribute.name;\n const lcName = name.toLowerCase();\n\n // normalize node value\n const value = attribute.value.trim();\n\n node.removeAttribute(name);\n\n const valid = isValidAttribute(lcTag, lcName, value);\n\n if (valid) {\n node.setAttribute(name, value);\n }\n }\n\n // force noopener on target=\"_blank\" links\n if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\n node.setAttribute('rel', 'noopener');\n }\n\n for (let i = node.childNodes.length; i--; ) {\n sanitizeNode(/** @type Element */ (node.childNodes[i]));\n }\n}\n\n/**\n * Validates attributes for validity.\n *\n * @param {string} lcTag\n * @param {string} lcName\n * @param {string} value\n * @return {boolean}\n */\nfunction isValidAttribute(lcTag, lcName, value) {\n // disallow most attributes based on whitelist\n if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\n return false;\n }\n\n // disallow \"DOM clobbering\" / polution of document and wrapping form elements\n if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\n return false;\n }\n\n if (lcName === 'target' && value !== '_blank') {\n return false;\n }\n\n // allow valid url links only\n if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\n return false;\n }\n\n return true;\n}\n","import { useCallback, useMemo } from 'preact/hooks';\nimport { useDangerousHTMLWrapper, useService, useTemplateEvaluation } from '../../hooks';\nimport { sanitizeHTML } from '../Sanitizer';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'text';\n\nexport function Text(props) {\n const form = useService('form');\n const { textLinkTarget } = form._getState().properties;\n\n const { field, disableLinks } = props;\n\n const { text = '', strict = false } = field;\n\n const markdownRenderer = useService('markdownRenderer');\n\n // feelers => pure markdown\n const markdown = useTemplateEvaluation(text, { debug: true, strict });\n\n // markdown => html\n const html = useMemo(() => markdownRenderer.render(markdown), [markdownRenderer, markdown]);\n\n const sanitizeAndTransformLinks = useCallback(\n (unsafeHtml) => {\n const html = sanitizeHTML(unsafeHtml);\n\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n\n const links = tempDiv.querySelectorAll('a');\n\n links.forEach((link) => {\n if (disableLinks) {\n link.setAttribute('class', 'fjs-disabled-link');\n link.setAttribute('tabIndex', '-1');\n }\n\n if (textLinkTarget) {\n link.setAttribute('target', textLinkTarget);\n }\n });\n\n return tempDiv.innerHTML;\n },\n [disableLinks, textLinkTarget],\n );\n\n const dangerouslySetInnerHTML = useDangerousHTMLWrapper({\n html,\n transform: sanitizeAndTransformLinks,\n sanitize: false,\n sanitizeStyleTags: false,\n });\n\n return <div class={formFieldClasses(type)} dangerouslySetInnerHTML={dangerouslySetInnerHTML}></div>;\n}\n\nText.config = {\n type,\n keyed: false,\n label: 'Text view',\n group: 'presentation',\n create: (options = {}) => ({\n text: '# Text',\n ...options,\n }),\n};\n","import { useCallback } from 'preact/hooks';\nimport { useService, useTemplateEvaluation, useDangerousHTMLWrapper } from '../../hooks';\nimport { escapeHTML } from '../util/sanitizerUtil';\nimport { wrapCSSStyles } from '../util/domUtil';\n\nimport { formFieldClasses } from '../Util';\nimport classNames from 'classnames';\n\nconst type = 'html';\n\nexport function Html(props) {\n const form = useService('form');\n const { textLinkTarget } = form._getState().properties;\n\n const { field, disableLinks, domId } = props;\n\n const { content = '', strict = false } = field;\n\n const styleScope = `${domId}-style-scope`;\n\n // we escape HTML within the template evaluation to prevent clickjacking attacks\n const html = useTemplateEvaluation(content, { debug: true, strict, sanitizer: escapeHTML });\n\n const transform = useCallback(\n (html) => {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n\n // (1) apply modifications to links\n\n const links = tempDiv.querySelectorAll('a');\n\n links.forEach((link) => {\n if (disableLinks) {\n link.setAttribute('class', 'fjs-disabled-link');\n link.setAttribute('tabIndex', '-1');\n }\n\n if (textLinkTarget) {\n link.setAttribute('target', textLinkTarget);\n }\n });\n\n // (2) scope styles to the root div\n wrapCSSStyles(tempDiv, `.${styleScope}`);\n\n return tempDiv.innerHTML;\n },\n [disableLinks, styleScope, textLinkTarget],\n );\n\n const dangerouslySetInnerHTML = useDangerousHTMLWrapper({\n html,\n transform,\n sanitize: true,\n sanitizeStyleTags: false,\n });\n\n return (\n <div class={classNames(formFieldClasses(type), styleScope)} dangerouslySetInnerHTML={dangerouslySetInnerHTML}></div>\n );\n}\n\nHtml.config = {\n type,\n keyed: false,\n label: 'HTML view',\n group: 'presentation',\n create: (options = {}) => ({\n content: '',\n ...options,\n }),\n};\n","import { useCallback, useEffect } from 'preact/hooks';\nimport { useExpressionEvaluation, useDeepCompareMemoize, useService } from '../../hooks';\n\nimport { isEqual } from 'lodash';\n\nconst type = 'expression';\n\nexport function ExpressionField(props) {\n const { field, onChange, value } = props;\n\n const { computeOn, expression } = field;\n\n const evaluation = useExpressionEvaluation(expression);\n const evaluationMemo = useDeepCompareMemoize(evaluation);\n const eventBus = useService('eventBus');\n const expressionLoopPreventer = useService('expressionLoopPreventer');\n\n const sendValue = useCallback(() => {\n onChange && onChange({ field, value: evaluationMemo, shouldNotRecompute: true });\n }, [field, evaluationMemo, onChange]);\n\n useEffect(() => {\n if (\n computeOn !== 'change' ||\n isEqual(evaluationMemo, value) ||\n !expressionLoopPreventer.registerExpressionExecution(this)\n ) {\n return;\n }\n sendValue();\n });\n\n useEffect(() => {\n if (computeOn === 'presubmit') {\n eventBus.on('presubmit', sendValue);\n return () => eventBus.off('presubmit', sendValue);\n }\n }, [computeOn, sendValue, eventBus]);\n\n return null;\n}\n\nExpressionField.config = {\n type,\n label: 'Expression',\n group: 'basic-input',\n keyed: true,\n emptyValue: null,\n escapeGridRender: true,\n create: (options = {}) => ({\n computeOn: 'change',\n ...options,\n }),\n};\n","import { isArray, isObject, isNil } from 'min-dash';\nimport { formFieldClasses } from '../Util';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { TemplatedInputAdorner } from './parts/TemplatedInputAdorner';\n\nimport { useFlushDebounce } from '../../hooks/useFlushDebounce';\n\nconst type = 'textfield';\n\nexport function Textfield(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = '' } = props;\n\n const { description, label, appearance = {}, validate = {} } = field;\n\n const { prefixAdorner, suffixAdorner } = appearance;\n\n const { required } = validate;\n\n const [onInputChange, flushOnChange] = useFlushDebounce(({ target }) => {\n props.onChange({\n value: target.value,\n });\n });\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <TemplatedInputAdorner disabled={disabled} readonly={readonly} pre={prefixAdorner} post={suffixAdorner}>\n <input\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={domId}\n onInput={onInputChange}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n type=\"text\"\n value={value}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n </TemplatedInputAdorner>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nTextfield.config = {\n type,\n keyed: true,\n label: 'Text field',\n group: 'basic-input',\n emptyValue: '',\n sanitizeValue: ({ value }) => {\n if (isArray(value) || isObject(value) || isNil(value)) {\n return '';\n }\n\n // sanitize newlines to spaces\n if (typeof value === 'string') {\n return value.replace(/[\\r\\n\\t]/g, ' ');\n }\n\n return String(value);\n },\n create: (options = {}) => ({ ...options }),\n};\n","import { isArray, isObject, isNil } from 'min-dash';\n\nimport { useEffect, useLayoutEffect, useRef } from 'preact/hooks';\nimport { useFlushDebounce } from '../../hooks/useFlushDebounce';\n\nimport { formFieldClasses } from '../Util';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nconst type = 'textarea';\n\nexport function Textarea(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = '' } = props;\n\n const { description, label, validate = {} } = field;\n\n const { required } = validate;\n const textareaRef = useRef();\n\n const [onChange, flushOnChange] = useFlushDebounce(({ target }) => {\n props.onChange({\n value: target.value,\n });\n });\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n const onInputChange = (event) => {\n onChange({ target: event.target });\n autoSizeTextarea(textareaRef.current);\n };\n\n useLayoutEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [value]);\n\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, []);\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <textarea\n class=\"fjs-textarea\"\n disabled={disabled}\n readonly={readonly}\n id={domId}\n onInput={onInputChange}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n value={value}\n ref={textareaRef}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nTextarea.config = {\n type,\n keyed: true,\n label: 'Text area',\n group: 'basic-input',\n emptyValue: '',\n sanitizeValue: ({ value }) => (isArray(value) || isObject(value) || isNil(value) ? '' : String(value)),\n create: (options = {}) => ({ ...options }),\n};\n\nconst autoSizeTextarea = (textarea) => {\n // Ensures the textarea shrinks back, and improves resizing behavior consistency\n textarea.style.height = '0px';\n\n const computed = window.getComputedStyle(textarea);\n\n const heightFromLines = () => {\n const lineHeight = parseInt(computed.getPropertyValue('line-height').replace('px', '')) || 0;\n const lines = textarea.value ? textarea.value.toString().split('\\n').length : 0;\n return lines * lineHeight;\n };\n\n const calculatedHeight =\n parseInt(computed.getPropertyValue('border-top-width')) +\n parseInt(computed.getPropertyValue('padding-top')) +\n (textarea.scrollHeight || heightFromLines()) +\n parseInt(computed.getPropertyValue('padding-bottom')) +\n parseInt(computed.getPropertyValue('border-bottom-width'));\n\n const minHeight = 75;\n const maxHeight = 350;\n const displayHeight = Math.max(Math.min(calculatedHeight || 0, maxHeight), minHeight);\n\n textarea.style.height = `${displayHeight}px`;\n\n // Overflow is hidden by default to hide scrollbar flickering\n textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M24.59 16.59 17 24.17V4h-2v20.17l-7.59-7.58L6 18l10 10 10-10-1.41-1.41z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m20 24-10-8 10-8z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m12 8 10 8-10 8z\"/></svg>","import { isDefined, isNumber, isObject, isString } from 'min-dash';\nimport { useExpressionEvaluation } from '../../hooks';\nimport { useEffect, useState } from 'preact/hooks';\nimport { formFieldClasses, prefixId } from '../Util';\nimport classNames from 'classnames';\n\nimport { Label } from '../Label';\nimport ArrowDownIcon from './icons/ArrowDown.svg';\nimport ArrowUpIcon from './icons/ArrowUp.svg';\nimport CaretLeftIcon from './icons/CaretLeft.svg';\nimport CaretRightIcon from './icons/CaretRight.svg';\n\nconst type = 'table';\n\n/**\n * @typedef {('asc'|'desc')} Direction\n *\n * @typedef Sorting\n * @property {string} key\n * @property {Direction} direction\n *\n * @typedef Column\n * @property {string} label\n * @property {string} key\n *\n * @typedef Field\n * @property {string} id\n * @property {Array<Column>} [columns]\n * @property {string} [columnsExpression]\n * @property {string} [label]\n * @property {number} [rowCount]\n * @property {string} [dataSource]\n *\n * @typedef Props\n * @property {Field} field\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function Table(props) {\n const { field } = props;\n const { columns = [], columnsExpression, dataSource = '', rowCount, id, label } = field;\n\n /** @type {[(null|Sorting), import(\"preact/hooks\").StateUpdater<null|Sorting>]} */\n const [sortBy, setSortBy] = useState(null);\n const evaluatedColumns = useEvaluatedColumns(columnsExpression || '', columns);\n const columnKeys = evaluatedColumns.map(({ key }) => key);\n const evaluatedDataSource = useExpressionEvaluation(dataSource);\n const data = Array.isArray(evaluatedDataSource) ? evaluatedDataSource.filter((i) => i !== undefined) : [];\n const sortedData = sortBy === null ? data : sortByColumn(data, sortBy.key, sortBy.direction);\n\n /** @type {unknown[][]} */\n const chunkedData = isNumber(rowCount) ? chunk(sortedData, rowCount) : [sortedData];\n const [currentPage, setCurrentPage] = useState(0);\n const currentChunk = chunkedData[currentPage] || [];\n\n useEffect(() => {\n setCurrentPage(0);\n }, [rowCount, sortBy]);\n\n /** @param {string} key */\n function toggleSortBy(key) {\n setSortBy((current) => {\n if (current === null || current.key !== key) {\n return {\n key,\n direction: 'asc',\n };\n }\n\n if (current.direction === 'desc') {\n return null;\n }\n\n return {\n key,\n direction: 'desc',\n };\n });\n }\n\n return (\n <div class={formFieldClasses(type)}>\n <Label htmlFor={prefixId(id)} label={label} />\n <div\n class={classNames('fjs-table-middle-container', {\n 'fjs-table-empty': evaluatedColumns.length === 0,\n })}>\n {evaluatedColumns.length === 0 ? (\n 'Nothing to show.'\n ) : (\n <div class=\"fjs-table-inner-container\">\n <table class=\"fjs-table\" id={prefixId(id)}>\n <thead class=\"fjs-table-head\">\n <tr class=\"fjs-table-tr\">\n {evaluatedColumns.map(({ key, label }) => {\n const displayLabel = label || key;\n\n return (\n <th\n key={key}\n tabIndex={0}\n class=\"fjs-table-th\"\n onClick={() => {\n toggleSortBy(key);\n }}\n onKeyDown={(event) => {\n if (['Enter', 'Space'].includes(event.code)) {\n toggleSortBy(key);\n }\n }}\n aria-label={getHeaderAriaLabel(sortBy, key, displayLabel)}>\n <span class=\"fjs-table-th-label\">\n {displayLabel}\n {sortBy !== null && sortBy.key === key ? (\n <>\n {sortBy.direction === 'asc' ? (\n <ArrowUpIcon class=\"fjs-table-sort-icon-asc\" />\n ) : (\n <ArrowDownIcon class=\"fjs-table-sort-icon-desc\" />\n )}\n </>\n ) : null}\n </span>\n </th>\n );\n })}\n </tr>\n </thead>\n {currentChunk.length === 0 ? (\n <tbody class=\"fjs-table-body\">\n <tr class=\"fjs-table-tr\">\n <td class=\"fjs-table-td\" colSpan={evaluatedColumns.length}>\n Nothing to show.\n </td>\n </tr>\n </tbody>\n ) : (\n <tbody class=\"fjs-table-body\">\n {currentChunk.map((row, index) => (\n <tr key={index} class=\"fjs-table-tr\">\n {columnKeys.map((key) => (\n <td key={key} class=\"fjs-table-td\">\n {row[key]}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n </div>\n )}\n\n {isNumber(rowCount) && chunkedData.length > 1 && evaluatedColumns.length > 0 ? (\n <nav class=\"fjs-table-nav\">\n <span class=\"fjs-table-nav-label\">\n {currentPage + 1} of {chunkedData.length}\n </span>\n <button\n type=\"button\"\n class=\"fjs-table-nav-button\"\n onClick={() => {\n setCurrentPage((page) => Math.max(page - 1, 0));\n }}\n disabled={currentPage === 0}\n aria-label=\"Previous page\">\n <CaretLeftIcon />\n </button>\n <button\n type=\"button\"\n class=\"fjs-table-nav-button\"\n onClick={() => {\n setCurrentPage((page) => Math.min(page + 1, chunkedData.length - 1));\n }}\n disabled={currentPage >= chunkedData.length - 1}\n aria-label=\"Next page\">\n <CaretRightIcon />\n </button>\n </nav>\n ) : null}\n </div>\n </div>\n );\n}\n\nTable.config = {\n type,\n keyed: false,\n label: 'Table',\n group: 'presentation',\n create: (options = {}) => {\n const { id, columnsExpression, columns, rowCount, ...remainingOptions } = options;\n\n if (isDefined(id) && isNumber(rowCount)) {\n remainingOptions['rowCount'] = rowCount;\n }\n\n if (isString(columnsExpression)) {\n return {\n ...remainingOptions,\n id,\n columnsExpression,\n };\n }\n\n if (Array.isArray(columns) && columns.every(isColumn)) {\n return {\n ...remainingOptions,\n id,\n columns,\n };\n }\n\n return {\n ...remainingOptions,\n rowCount: 10,\n columns: [\n {\n label: 'ID',\n key: 'id',\n },\n {\n label: 'Name',\n key: 'name',\n },\n {\n label: 'Date',\n key: 'date',\n },\n ],\n };\n },\n\n /**\n * @experimental\n *\n * A function that generates demo data for a new field on the form playground.\n * @param {Field} field\n */\n generateInitialDemoData: (field) => {\n const demoData = [\n { id: 1, name: 'John Doe', date: '31.01.2023' },\n { id: 2, name: 'Erika Muller', date: '20.02.2023' },\n { id: 3, name: 'Dominic Leaf', date: '11.03.2023' },\n ];\n const demoDataKeys = Object.keys(demoData[0]);\n const { columns, id, dataSource } = field;\n\n if (!Array.isArray(columns) || columns.length === 0 || dataSource !== `=${id}`) {\n return;\n }\n\n if (!columns.map(({ key }) => key).every((key) => demoDataKeys.includes(key))) {\n return;\n }\n\n return demoData;\n },\n};\n\n// helpers /////////////////////////////\n\n/**\n * @param {string|void} columnsExpression\n * @param {Column[]} fallbackColumns\n * @returns {Column[]}\n */\nfunction useEvaluatedColumns(columnsExpression, fallbackColumns) {\n /** @type {Column[]|null} */\n const evaluation = useExpressionEvaluation(columnsExpression || '');\n\n return Array.isArray(evaluation) && evaluation.every(isColumn) ? evaluation : fallbackColumns;\n}\n\n/**\n * @param {any} column\n * @returns {column is Column}\n */\nfunction isColumn(column) {\n return isObject(column) && isString(column['label']) && isString(column['key']);\n}\n\n/**\n * @param {Array} array\n * @param {number} size\n * @returns {Array}\n */\nfunction chunk(array, size) {\n return array.reduce((chunks, item, index) => {\n if (index % size === 0) {\n chunks.push([item]);\n } else {\n chunks[chunks.length - 1].push(item);\n }\n\n return chunks;\n }, []);\n}\n\n/**\n * @param {unknown[]} array\n * @param {string} key\n * @param {Direction} direction\n * @returns {unknown[]}\n */\nfunction sortByColumn(array, key, direction) {\n return [...array].sort((a, b) => {\n if (!isObject(a) || !isObject(b)) {\n return 0;\n }\n\n if (direction === 'asc') {\n return a[key] > b[key] ? 1 : -1;\n }\n\n return a[key] < b[key] ? 1 : -1;\n });\n}\n\n/**\n * @param {null|Sorting} sortBy\n * @param {string} key\n * @param {string} label\n */\nfunction getHeaderAriaLabel(sortBy, key, label) {\n if (sortBy === null || sortBy.key !== key) {\n return `Click to sort by ${label} descending`;\n }\n\n if (sortBy.direction === 'asc') {\n return 'Click to remove sorting';\n }\n\n return `Click to sort by ${label} ascending`;\n}\n","const FILE_PICKER_FILE_KEY_PREFIX = 'files::';\n\nexport { FILE_PICKER_FILE_KEY_PREFIX };\n","import Ids from 'ids';\nimport { formFieldClasses } from '../Util';\nimport { Label } from '../Label';\nimport { Errors } from '../Errors';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { useService, useSingleLineTemplateEvaluation, useBooleanExpressionEvaluation } from '../../hooks';\nimport { FILE_PICKER_FILE_KEY_PREFIX } from '../../../util/constants/FilePickerConstants';\n\nconst type = 'filepicker';\nconst ids = new Ids();\nconst EMPTY_ARRAY = [];\n\n/**\n * @typedef Props\n * @property {(props: { value: string }) => void} onChange\n * @property {string} domId\n * @property {string[]} errors\n * @property {boolean} disabled\n * @property {boolean} readonly\n * @property {boolean} required\n * @property {Object} field\n * @property {string} field.id\n * @property {string} [field.label]\n * @property {string} [field.accept]\n * @property {string|boolean} [field.multiple]\n * @property {string} [value]\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function FilePicker(props) {\n /** @type {import(\"preact/hooks\").Ref<HTMLInputElement>} */\n const fileInputRef = useRef(null);\n /** @type {import('../../FileRegistry').FileRegistry} */\n const fileRegistry = useService('fileRegistry', false);\n const { field, onChange, domId, errors = [], disabled, readonly, required, value: filesKey = '' } = props;\n const { label, multiple = false, accept = '' } = field;\n /** @type {string} */\n const evaluatedAccept = useSingleLineTemplateEvaluation(accept);\n const evaluatedMultiple = useBooleanExpressionEvaluation(multiple);\n const errorMessageId = `${domId}-error-message`;\n /** @type {File[]} */\n const selectedFiles = fileRegistry === null ? EMPTY_ARRAY : fileRegistry.getFiles(filesKey);\n\n useEffect(() => {\n if (filesKey && fileRegistry !== null && !fileRegistry.hasKey(filesKey)) {\n onChange({ value: null });\n }\n }, [fileRegistry, filesKey, onChange, selectedFiles.length]);\n\n useEffect(() => {\n const data = new DataTransfer();\n selectedFiles.forEach((file) => data.items.add(file));\n fileInputRef.current.files = data.files;\n }, [selectedFiles]);\n\n /**\n * @type import(\"preact\").JSX.GenericEventHandler<HTMLInputElement>\n */\n const onFileChange = (event) => {\n const input = /** @type {HTMLInputElement} */ (event.target);\n\n // if we have an associated file key but no files are selected, clear the file key and associated files\n if ((input.files === null || input.files.length === 0) && filesKey !== '') {\n fileRegistry.deleteFiles(filesKey);\n onChange({ value: null });\n return;\n }\n\n const files = Array.from(input.files);\n\n // ensure fileKey exists\n const updatedFilesKey = filesKey || ids.nextPrefixed(FILE_PICKER_FILE_KEY_PREFIX);\n\n fileRegistry.setFiles(updatedFilesKey, files);\n onChange({ value: updatedFilesKey });\n };\n\n const isInputDisabled = disabled || readonly || fileRegistry === null;\n\n return (\n <div className={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <input\n type=\"file\"\n className=\"fjs-hidden\"\n ref={fileInputRef}\n id={domId}\n name={domId}\n disabled={isInputDisabled}\n multiple={evaluatedMultiple || undefined}\n accept={evaluatedAccept || undefined}\n onChange={onFileChange}\n />\n <div className=\"fjs-filepicker-container\">\n <button\n type=\"button\"\n disabled={isInputDisabled}\n readonly={readonly}\n className=\"fjs-button fjs-filepicker-button\"\n onClick={() => {\n fileInputRef.current.click();\n }}>\n Browse\n </button>\n <span className=\"fjs-form-field-label\">{getSelectedFilesLabel(selectedFiles)}</span>\n </div>\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nFilePicker.config = {\n type: 'filepicker',\n keyed: true,\n label: 'File picker',\n group: 'basic-input',\n emptyValue: null,\n create: (options = {}) => ({ ...options }),\n};\n\n// helper //////////\n\n/**\n * @param {File[]} files\n * @returns {string}\n */\nfunction getSelectedFilesLabel(files) {\n if (files.length === 0) {\n return 'No files selected';\n }\n\n if (files.length === 1) {\n return files[0].name;\n }\n\n return `${files.length} files selected`;\n}\n","/**\n * This file must not be changed or exchanged.\n *\n * @see http://bpmn.io/license for more information.\n */\nimport { Fragment } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { createPortal } from 'preact/compat';\n\nfunction Logo() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 14.02 5.57\"\n width=\"53\"\n height=\"21\"\n style=\"vertical-align:middle\">\n <path\n fill=\"currentColor\"\n d=\"M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z\"\n />\n <path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\" />\n </svg>\n );\n}\n\nfunction Lightbox(props) {\n const { open } = props;\n\n if (!open) {\n return null;\n }\n\n return (\n <div class=\"fjs-powered-by-lightbox\" style=\"z-index: 100; position: fixed; top: 0; left: 0;right: 0; bottom: 0\">\n <div\n class=\"backdrop\"\n style=\"width: 100%; height: 100%; background: rgba(40 40 40 / 20%)\"\n onClick={props.onBackdropClick}></div>\n <div\n class=\"notice\"\n style=\"position: absolute; left: 50%; top: 40%; transform: translate(-50%); width: 260px; padding: 10px; background: white; box-shadow: 0 1px 4px rgba(0 0 0 / 30%); font-family: Helvetica, Arial, sans-serif; font-size: 14px; display: flex; line-height: 1.3\">\n <a\n href=\"https://bpmn.io\"\n target=\"_blank\"\n rel=\"noopener\"\n style=\"margin: 15px 20px 15px 10px; align-self: center; color: var(--cds-icon-primary, #404040)\">\n <Logo />\n </a>\n <span>\n Web-based tooling for BPMN, DMN, and forms powered by{' '}\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">\n bpmn.io\n </a>\n .\n </span>\n </div>\n </div>\n );\n}\n\nfunction Link(props) {\n return (\n <div class=\"fjs-powered-by fjs-form-field\" style=\"text-align: right\">\n <a\n href=\"https://bpmn.io\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"fjs-powered-by-link\"\n title=\"Powered by bpmn.io\"\n style=\"color: var(--cds-text-primary, #404040)\"\n onClick={props.onClick}>\n <Logo />\n </a>\n </div>\n );\n}\n\nexport function PoweredBy(props) {\n const [open, setOpen] = useState(false);\n\n function toggleOpen(open) {\n return (event) => {\n event.preventDefault();\n\n setOpen(open);\n };\n }\n\n return (\n <Fragment>\n {createPortal(<Lightbox open={open} onBackdropClick={toggleOpen(false)} />, document.body)}\n <Link onClick={toggleOpen(true)} />\n </Fragment>\n );\n}\n","import { FormField } from './FormField';\nimport { PoweredBy } from './PoweredBy';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\n\nimport { useMemo } from 'preact/hooks';\nimport { useFilteredFormData, useService } from '../hooks';\n\nconst noop = () => {};\n\nexport function FormComponent(props) {\n const form = useService('form');\n\n const { schema, properties } = form._getState();\n\n const { ariaLabel } = properties;\n\n const { onSubmit = noop, onReset = noop, onChange = noop } = props;\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n onSubmit();\n };\n\n const handleReset = (event) => {\n event.preventDefault();\n\n onReset();\n };\n\n const filteredFormData = useFilteredFormData();\n\n const localExpressionContext = useMemo(\n () => ({\n data: filteredFormData,\n parent: null,\n this: filteredFormData,\n i: [],\n }),\n [filteredFormData],\n );\n\n return (\n <form class=\"fjs-form\" onSubmit={handleSubmit} onReset={handleReset} aria-label={ariaLabel} noValidate>\n <LocalExpressionContext.Provider value={localExpressionContext}>\n <FormField field={schema} onChange={onChange} />\n </LocalExpressionContext.Provider>\n <PoweredBy />\n </form>\n );\n}\n","import { Button } from './form-fields/Button';\nimport { Checkbox } from './form-fields/Checkbox';\nimport { Checklist } from './form-fields/Checklist';\nimport { Default } from './form-fields/Default';\nimport { Datetime } from './form-fields/Datetime';\nimport { Group } from './form-fields/Group';\nimport { IFrame } from './form-fields/IFrame';\nimport { Image } from './form-fields/Image';\nimport { Numberfield } from './form-fields/Number';\nimport { Radio } from './form-fields/Radio';\nimport { Select } from './form-fields/Select';\nimport { Separator } from './form-fields/Separator';\nimport { Spacer } from './form-fields/Spacer';\nimport { DynamicList } from './form-fields/DynamicList';\nimport { Taglist } from './form-fields/Taglist';\nimport { Text } from './form-fields/Text';\nimport { Html } from './form-fields/Html';\nimport { ExpressionField } from './form-fields/ExpressionField';\nimport { Textfield } from './form-fields/Textfield';\nimport { Textarea } from './form-fields/Textarea';\nimport { Table } from './form-fields/Table';\nimport { FilePicker } from './form-fields/FilePicker';\n\nimport { Label } from './Label';\nimport { Description } from './Description';\nimport { Errors } from './Errors';\nimport { FormComponent } from './FormComponent';\nimport { FormField } from './FormField';\n\nexport { Label, Description, Errors };\n\nexport {\n Button,\n Checkbox,\n Checklist,\n Default,\n Datetime,\n FormComponent,\n FormField,\n Group,\n IFrame,\n DynamicList,\n Image,\n Numberfield,\n ExpressionField,\n Radio,\n Select,\n Separator,\n Spacer,\n Taglist,\n Text,\n Html,\n Textfield,\n Textarea,\n Table,\n FilePicker,\n};\n\nexport const formFields = [\n /* Input */\n Textfield,\n Textarea,\n Numberfield,\n Datetime,\n ExpressionField,\n FilePicker,\n\n /* Selection */\n Checkbox,\n Checklist,\n Radio,\n Select,\n Taglist,\n\n /* Presentation */\n Text,\n Image,\n Table,\n Html,\n Spacer,\n Separator,\n\n /* Containers */\n Group,\n DynamicList,\n IFrame,\n\n /* Other */\n Button,\n Default,\n];\n\nexport * from './icons';\nexport * from './Sanitizer';\nexport * from './util/domUtil';\nexport * from './util/sanitizerUtil';\n","import { formFields } from './components';\n\nexport class FormFields {\n constructor() {\n this._formFields = {};\n\n formFields.forEach((formField) => {\n this.register(formField.config.type, formField);\n });\n }\n\n register(type, formField) {\n this._formFields[type] = formField;\n }\n\n get(type) {\n return this._formFields[type];\n }\n}\n","import { FeelExpressionLanguage } from '../features/expressionLanguage/FeelExpressionLanguage.js';\nimport { FeelersTemplating } from '../features/expressionLanguage/FeelersTemplating.js';\nimport { FormFields } from '../render/FormFields.js';\n\nimport { get } from 'min-dash';\n\nconst EXPRESSION_PROPERTIES = [\n 'alt',\n 'appearance.prefixAdorner',\n 'appearance.suffixAdorner',\n 'conditional.hide',\n 'description',\n 'label',\n 'source',\n 'readonly',\n 'text',\n 'validate.min',\n 'validate.max',\n 'validate.minLength',\n 'validate.maxLength',\n 'valuesExpression',\n 'url',\n 'dataSource',\n 'columnsExpression',\n 'expression',\n 'accept',\n 'multiple',\n];\n\nconst TEMPLATE_PROPERTIES = [\n 'alt',\n 'appearance.prefixAdorner',\n 'appearance.suffixAdorner',\n 'description',\n 'label',\n 'source',\n 'text',\n 'content',\n 'url',\n];\n\n/**\n * @typedef { import('../types').Schema } Schema\n */\n\n/**\n * Parse the schema for variables a form might make use of.\n *\n * @example\n *\n * // retrieve variables from schema\n * const variables = getSchemaVariables(schema);\n *\n * @example\n *\n * // retrieve input variables from schema\n * const inputVariables = getSchemaVariables(schema, { outputs: false });\n *\n * @example\n *\n * // retrieve output variables from schema\n * const outputVariables = getSchemaVariables(schema, { inputs: false });\n *\n * @param {Schema} schema\n * @param {object} [options]\n * @param {any} [options.expressionLanguage]\n * @param {any} [options.templating]\n * @param {any} [options.formFields]\n * @param {boolean} [options.inputs=true]\n * @param {boolean} [options.outputs=true]\n *\n * @return {string[]}\n */\nexport function getSchemaVariables(schema, options = {}) {\n const {\n formFields = new FormFields(),\n expressionLanguage = new FeelExpressionLanguage(null),\n templating = new FeelersTemplating(),\n inputs = true,\n outputs = true,\n } = options;\n\n if (!schema.components) {\n return [];\n }\n\n const getAllComponents = (node) => {\n const components = [];\n\n if (node.components) {\n node.components.forEach((component) => {\n components.push(component);\n components.push(...getAllComponents(component));\n });\n }\n\n return components;\n };\n\n const variables = getAllComponents(schema).reduce((variables, component) => {\n const { valuesKey } = component;\n\n // collect input-only variables\n if (inputs) {\n if (valuesKey) {\n variables = [...variables, valuesKey];\n }\n\n EXPRESSION_PROPERTIES.forEach((prop) => {\n const property = get(component, prop.split('.'));\n\n if (property && expressionLanguage.isExpression(property)) {\n const expressionVariables = expressionLanguage.getVariableNames(property, { type: 'expression' });\n\n variables = [...variables, ...expressionVariables];\n }\n });\n\n TEMPLATE_PROPERTIES.forEach((prop) => {\n const property = get(component, prop.split('.'));\n\n if (property && !expressionLanguage.isExpression(property) && templating.isTemplate(property)) {\n const templateVariables = templating.getVariableNames(property);\n variables = [...variables, ...templateVariables];\n }\n });\n }\n\n return variables.filter((variable) => typeof variable === 'string');\n }, []);\n\n const getBindingVariables = (node) => {\n const bindingVariable = [];\n const formField = formFields.get(node.type);\n\n if (formField && formField.config.keyed && node.key) {\n return [node.key.split('.')[0]];\n } else if (formField && formField.config.pathed && node.path) {\n return [node.path.split('.')[0]];\n } else if (node.components) {\n node.components.forEach((component) => {\n bindingVariable.push(...getBindingVariables(component));\n });\n }\n\n return bindingVariable;\n };\n\n // collect binding variables\n if (inputs || outputs) {\n variables.push(...getBindingVariables(schema));\n }\n\n // remove duplicates\n return Array.from(new Set(variables));\n}\n","/**\n * Get the ancestry list of a form field.\n *\n * @param {string} formFieldId\n * @param {import('../core/FormFieldRegistry').FormFieldRegistry} formFieldRegistry\n *\n * @return {Array<string>} ancestry list\n */\nexport const getAncestryList = (formFieldId, formFieldRegistry) => {\n const ids = [];\n\n let currentFormField = formFieldRegistry.get(formFieldId);\n\n while (currentFormField) {\n ids.push(currentFormField.id);\n\n currentFormField = formFieldRegistry.get(currentFormField._parent);\n }\n\n return ids;\n};\n","import { unaryTest } from 'feelin';\nimport { get, isString, set, values, isObject } from 'min-dash';\nimport { buildExpressionContext, clone } from '../../util';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport class ConditionChecker {\n constructor(formFieldRegistry, pathRegistry, eventBus) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._eventBus = eventBus;\n }\n\n /**\n * For given data, remove properties based on condition.\n *\n * @param {Object<string, any>} data\n * @param {Object<string, any>} contextData\n * @param {Object} [options]\n * @param {Function} [options.getFilterPath]\n * @param {boolean} [options.leafNodeDeletionOnly]\n */\n applyConditions(data, contextData = {}, options = {}) {\n const workingData = clone(data);\n\n const { getFilterPath = (field, indexes) => this._pathRegistry.getValuePath(field, { indexes }) } = options;\n\n const _applyConditionsWithinScope = (rootField, scopeContext, startHidden = false) => {\n const { indexes = {}, expressionIndexes = [], scopeData = contextData, parentScopeData = null } = scopeContext;\n\n this._pathRegistry.executeRecursivelyOnFields(rootField, ({ field, isClosed, isRepeatable, context }) => {\n const { conditional, components, id } = field;\n\n // build the expression context in the right format\n const localExpressionContext = buildExpressionContext({\n this: scopeData,\n data: contextData,\n i: expressionIndexes,\n parent: parentScopeData,\n });\n\n context.isHidden =\n startHidden ||\n context.isHidden ||\n (conditional && this._checkHideCondition(conditional, localExpressionContext));\n\n // if a field is repeatable and visible, we need to implement custom recursion on its children\n if (isRepeatable && !context.isHidden) {\n // prevent the regular recursion behavior of executeRecursivelyOnFields\n context.preventRecursion = true;\n\n const repeaterValuePath = this._pathRegistry.getValuePath(field, { indexes });\n const repeaterValue = get(contextData, repeaterValuePath);\n\n // quit early if there are no children or data associated with the repeater\n if (\n !Array.isArray(repeaterValue) ||\n !repeaterValue.length ||\n !Array.isArray(components) ||\n !components.length\n ) {\n return;\n }\n\n for (let i = 0; i < repeaterValue.length; i++) {\n // create a new scope context for each index\n const newScopeContext = {\n indexes: { ...indexes, [id]: i },\n expressionIndexes: [...expressionIndexes, i + 1],\n scopeData: repeaterValue[i],\n parentScopeData: scopeData,\n };\n\n // for each child component, apply conditions within the new repetition scope\n components.forEach((component) => {\n _applyConditionsWithinScope(component, newScopeContext, context.isHidden);\n });\n }\n }\n\n // if we have a hidden repeatable field, and the data structure allows, we clear it directly at the root and stop recursion\n if (context.isHidden && isRepeatable) {\n context.preventRecursion = true;\n this._eventBus.fire('conditionChecker.remove', {\n item: { [field.key]: get(workingData, getFilterPath(field, indexes)) },\n });\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\n }\n\n // for simple leaf fields, we always clear\n if (context.isHidden && isClosed) {\n this._eventBus.fire('conditionChecker.remove', {\n item: { [field.key]: get(workingData, getFilterPath(field, indexes)) },\n });\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\n }\n });\n };\n\n // apply conditions starting with the root of the form\n const form = this._formFieldRegistry.getForm();\n\n if (!form) {\n throw new Error('form field registry has no form');\n }\n\n _applyConditionsWithinScope(form, {\n scopeData: contextData,\n });\n\n return workingData;\n }\n\n /**\n * Check if given condition is met. Returns null for invalid/missing conditions.\n *\n * @param {string} condition\n * @param {import('../../types').Data} [data]\n *\n * @returns {boolean|null}\n */\n check(condition, data = {}) {\n if (!condition) {\n return null;\n }\n\n if (!isString(condition) || !condition.startsWith('=')) {\n return null;\n }\n\n try {\n // cut off initial '='\n const result = unaryTest(condition.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n\n /**\n * Check if hide condition is met.\n *\n * @param {Condition} condition\n * @param {Object<string, any>} data\n * @returns {boolean}\n */\n _checkHideCondition(condition, data) {\n if (!condition.hide) {\n return false;\n }\n\n const result = this.check(condition.hide, data);\n\n return result === true;\n }\n\n _cleanlyClearDataAtPath(valuePath, obj) {\n const workingValuePath = [...valuePath];\n let recurse = false;\n\n do {\n set(obj, workingValuePath, undefined);\n workingValuePath.pop();\n const parentObject = get(obj, workingValuePath);\n recurse = !!workingValuePath.length && (this._isEmptyObject(parentObject) || this._isEmptyArray(parentObject));\n } while (recurse);\n }\n\n _isEmptyObject(parentObject) {\n return isObject(parentObject) && !values(parentObject).length;\n }\n\n _isEmptyArray(parentObject) {\n return Array.isArray(parentObject) && (!parentObject.length || parentObject.every((item) => item === undefined));\n }\n}\n\nConditionChecker.$inject = ['formFieldRegistry', 'pathRegistry', 'eventBus'];\n","import { FeelExpressionLanguage } from './FeelExpressionLanguage';\nimport { FeelersTemplating } from './FeelersTemplating';\nimport { ConditionChecker } from './ConditionChecker';\n\nexport const ExpressionLanguageModule = {\n __init__: ['expressionLanguage', 'templating', 'conditionChecker'],\n expressionLanguage: ['type', FeelExpressionLanguage],\n templating: ['type', FeelersTemplating],\n conditionChecker: ['type', ConditionChecker],\n};\n\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };\n","export class ExpressionLoopPreventer {\n constructor(eventBus) {\n this._computedExpressions = [];\n\n eventBus.on('field.updated', ({ shouldNotRecompute }) => {\n if (shouldNotRecompute) {\n return;\n }\n\n this.reset();\n });\n\n eventBus.on('import.done', this.reset.bind(this));\n eventBus.on('reset', this.reset.bind(this));\n }\n\n /**\n * Checks if the expression field has already been computed, and registers it if not.\n *\n * @param {any} expressionField\n * @returns {boolean} - whether the expression field has already been computed within the current cycle\n */\n registerExpressionExecution(expressionField) {\n if (this._computedExpressions.includes(expressionField)) {\n return false;\n }\n\n this._computedExpressions.push(expressionField);\n\n return true;\n }\n\n /**\n * Resets the list of computed expressions.\n */\n reset() {\n this._computedExpressions = [];\n }\n}\n\nExpressionLoopPreventer.$inject = ['eventBus'];\n","import { ExpressionLoopPreventer } from './ExpressionLoopPreventer';\n\nexport const ExpressionFieldModule = {\n __init__: ['expressionLoopPreventer'],\n expressionLoopPreventer: ['type', ExpressionLoopPreventer],\n};\n\nexport { ExpressionLoopPreventer };\n","import { marked } from 'marked';\n\nexport class MarkdownRenderer {\n /**\n * Render markdown to HTML.\n *\n * @param {string} markdown - The markdown to render\n *\n * @returns {string} HTML\n */\n render(markdown) {\n // @ts-expect-error\n return marked.parse(markdown, {\n gfm: true,\n breaks: true,\n });\n }\n}\n\nMarkdownRenderer.$inject = [];\n","import { MarkdownRenderer } from './MarkdownRenderer';\n\nexport const MarkdownRendererModule = {\n __init__: ['markdownRenderer'],\n markdownRenderer: ['type', MarkdownRenderer],\n};\n\nexport { MarkdownRenderer };\n","import {\n uniqueBy,\n isArray\n} from 'min-dash';\n\n/**\n * @typedef {import('didi').Injector} Injector\n *\n * @typedef {import('../core/Types').ElementLike} ElementLike\n *\n * @typedef {import('../core/EventBus').default} EventBus\n * @typedef {import('./CommandHandler').default} CommandHandler\n *\n * @typedef { any } CommandContext\n * @typedef { {\n * new (...args: any[]) : CommandHandler\n * } } CommandHandlerConstructor\n * @typedef { {\n * [key: string]: CommandHandler;\n * } } CommandHandlerMap\n * @typedef { {\n * command: string;\n * context: any;\n * id?: any;\n * } } CommandStackAction\n * @typedef { {\n * actions: CommandStackAction[];\n * dirty: ElementLike[];\n * trigger: 'execute' | 'undo' | 'redo' | 'clear' | null;\n * atomic?: boolean;\n * } } CurrentExecution\n */\n\n/**\n * A service that offers un- and redoable execution of commands.\n *\n * The command stack is responsible for executing modeling actions\n * in a un- and redoable manner. To do this it delegates the actual\n * command execution to {@link CommandHandler}s.\n *\n * Command handlers provide {@link CommandHandler#execute(ctx)} and\n * {@link CommandHandler#revert(ctx)} methods to un- and redo a command\n * identified by a command context.\n *\n *\n * ## Life-Cycle events\n *\n * In the process the command stack fires a number of life-cycle events\n * that other components to participate in the command execution.\n *\n * * preExecute\n * * preExecuted\n * * execute\n * * executed\n * * postExecute\n * * postExecuted\n * * revert\n * * reverted\n *\n * A special event is used for validating, whether a command can be\n * performed prior to its execution.\n *\n * * canExecute\n *\n * Each of the events is fired as `commandStack.{eventName}` and\n * `commandStack.{commandName}.{eventName}`, respectively. This gives\n * components fine grained control on where to hook into.\n *\n * The event object fired transports `command`, the name of the\n * command and `context`, the command context.\n *\n *\n * ## Creating Command Handlers\n *\n * Command handlers should provide the {@link CommandHandler#execute(ctx)}\n * and {@link CommandHandler#revert(ctx)} methods to implement\n * redoing and undoing of a command.\n *\n * A command handler _must_ ensure undo is performed properly in order\n * not to break the undo chain. It must also return the shapes that\n * got changed during the `execute` and `revert` operations.\n *\n * Command handlers may execute other modeling operations (and thus\n * commands) in their `preExecute(d)` and `postExecute(d)` phases. The command\n * stack will properly group all commands together into a logical unit\n * that may be re- and undone atomically.\n *\n * Command handlers must not execute other commands from within their\n * core implementation (`execute`, `revert`).\n *\n *\n * ## Change Tracking\n *\n * During the execution of the CommandStack it will keep track of all\n * elements that have been touched during the command's execution.\n *\n * At the end of the CommandStack execution it will notify interested\n * components via an 'elements.changed' event with all the dirty\n * elements.\n *\n * The event can be picked up by components that are interested in the fact\n * that elements have been changed. One use case for this is updating\n * their graphical representation after moving / resizing or deletion.\n *\n * @see CommandHandler\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nexport default function CommandStack(eventBus, injector) {\n\n /**\n * A map of all registered command handlers.\n *\n * @type {CommandHandlerMap}\n */\n this._handlerMap = {};\n\n /**\n * A stack containing all re/undoable actions on the diagram\n *\n * @type {CommandStackAction[]}\n */\n this._stack = [];\n\n /**\n * The current index on the stack\n *\n * @type {number}\n */\n this._stackIdx = -1;\n\n /**\n * Current active commandStack execution\n *\n * @type {CurrentExecution}\n */\n this._currentExecution = {\n actions: [],\n dirty: [],\n trigger: null\n };\n\n /**\n * @type {Injector}\n */\n this._injector = injector;\n\n /**\n * @type EventBus\n */\n this._eventBus = eventBus;\n\n /**\n * @type { number }\n */\n this._uid = 1;\n\n eventBus.on([\n 'diagram.destroy',\n 'diagram.clear'\n ], function() {\n this.clear(false);\n }, this);\n}\n\nCommandStack.$inject = [ 'eventBus', 'injector' ];\n\n\n/**\n * Execute a command.\n *\n * @param {string} command The command to execute.\n * @param {CommandContext} context The context with which to execute the command.\n */\nCommandStack.prototype.execute = function(command, context) {\n if (!command) {\n throw new Error('command required');\n }\n\n this._currentExecution.trigger = 'execute';\n\n const action = { command: command, context: context };\n\n this._pushAction(action);\n this._internalExecute(action);\n this._popAction();\n};\n\n\n/**\n * Check whether a command can be executed.\n *\n * Implementors may hook into the mechanism on two ways:\n *\n * * in event listeners:\n *\n * Users may prevent the execution via an event listener.\n * It must prevent the default action for `commandStack.(<command>.)canExecute` events.\n *\n * * in command handlers:\n *\n * If the method {@link CommandHandler#canExecute} is implemented in a handler\n * it will be called to figure out whether the execution is allowed.\n *\n * @param {string} command The command to execute.\n * @param {CommandContext} context The context with which to execute the command.\n *\n * @return {boolean} Whether the command can be executed with the given context.\n */\nCommandStack.prototype.canExecute = function(command, context) {\n\n const action = { command: command, context: context };\n\n const handler = this._getHandler(command);\n\n let result = this._fire(command, 'canExecute', action);\n\n // handler#canExecute will only be called if no listener\n // decided on a result already\n if (result === undefined) {\n if (!handler) {\n return false;\n }\n\n if (handler.canExecute) {\n result = handler.canExecute(context);\n }\n }\n\n return result;\n};\n\n\n/**\n * Clear the command stack, erasing all undo / redo history.\n *\n * @param {boolean} [emit=true] Whether to fire an event. Defaults to `true`.\n */\nCommandStack.prototype.clear = function(emit) {\n this._stack.length = 0;\n this._stackIdx = -1;\n\n if (emit !== false) {\n this._fire('changed', { trigger: 'clear' });\n }\n};\n\n\n/**\n * Undo last command(s)\n */\nCommandStack.prototype.undo = function() {\n let action = this._getUndoAction(),\n next;\n\n if (action) {\n this._currentExecution.trigger = 'undo';\n\n this._pushAction(action);\n\n while (action) {\n this._internalUndo(action);\n next = this._getUndoAction();\n\n if (!next || next.id !== action.id) {\n break;\n }\n\n action = next;\n }\n\n this._popAction();\n }\n};\n\n\n/**\n * Redo last command(s)\n */\nCommandStack.prototype.redo = function() {\n let action = this._getRedoAction(),\n next;\n\n if (action) {\n this._currentExecution.trigger = 'redo';\n\n this._pushAction(action);\n\n while (action) {\n this._internalExecute(action, true);\n next = this._getRedoAction();\n\n if (!next || next.id !== action.id) {\n break;\n }\n\n action = next;\n }\n\n this._popAction();\n }\n};\n\n\n/**\n * Register a handler instance with the command stack.\n *\n * @param {string} command Command to be executed.\n * @param {CommandHandler} handler Handler to execute the command.\n */\nCommandStack.prototype.register = function(command, handler) {\n this._setHandler(command, handler);\n};\n\n\n/**\n * Register a handler type with the command stack by instantiating it and\n * injecting its dependencies.\n *\n * @param {string} command Command to be executed.\n * @param {CommandHandlerConstructor} handlerCls Constructor to instantiate a {@link CommandHandler}.\n */\nCommandStack.prototype.registerHandler = function(command, handlerCls) {\n\n if (!command || !handlerCls) {\n throw new Error('command and handlerCls must be defined');\n }\n\n const handler = this._injector.instantiate(handlerCls);\n this.register(command, handler);\n};\n\n/**\n * @return {boolean}\n */\nCommandStack.prototype.canUndo = function() {\n return !!this._getUndoAction();\n};\n\n/**\n * @return {boolean}\n */\nCommandStack.prototype.canRedo = function() {\n return !!this._getRedoAction();\n};\n\n// stack access //////////////////////\n\nCommandStack.prototype._getRedoAction = function() {\n return this._stack[this._stackIdx + 1];\n};\n\n\nCommandStack.prototype._getUndoAction = function() {\n return this._stack[this._stackIdx];\n};\n\n\n// internal functionality //////////////////////\n\nCommandStack.prototype._internalUndo = function(action) {\n const command = action.command,\n context = action.context;\n\n const handler = this._getHandler(command);\n\n // guard against illegal nested command stack invocations\n this._atomicDo(() => {\n this._fire(command, 'revert', action);\n\n if (handler.revert) {\n this._markDirty(handler.revert(context));\n }\n\n this._revertedAction(action);\n\n this._fire(command, 'reverted', action);\n });\n};\n\n\nCommandStack.prototype._fire = function(command, qualifier, event) {\n if (arguments.length < 3) {\n event = qualifier;\n qualifier = null;\n }\n\n const names = qualifier ? [ command + '.' + qualifier, qualifier ] : [ command ];\n let result;\n\n event = this._eventBus.createEvent(event);\n\n for (const name of names) {\n result = this._eventBus.fire('commandStack.' + name, event);\n\n if (event.cancelBubble) {\n break;\n }\n }\n\n return result;\n};\n\nCommandStack.prototype._createId = function() {\n return this._uid++;\n};\n\nCommandStack.prototype._atomicDo = function(fn) {\n\n const execution = this._currentExecution;\n\n execution.atomic = true;\n\n try {\n fn();\n } finally {\n execution.atomic = false;\n }\n};\n\nCommandStack.prototype._internalExecute = function(action, redo) {\n const command = action.command,\n context = action.context;\n\n const handler = this._getHandler(command);\n\n if (!handler) {\n throw new Error('no command handler registered for <' + command + '>');\n }\n\n this._pushAction(action);\n\n if (!redo) {\n this._fire(command, 'preExecute', action);\n\n if (handler.preExecute) {\n handler.preExecute(context);\n }\n\n this._fire(command, 'preExecuted', action);\n }\n\n // guard against illegal nested command stack invocations\n this._atomicDo(() => {\n\n this._fire(command, 'execute', action);\n\n if (handler.execute) {\n\n // actual execute + mark return results as dirty\n this._markDirty(handler.execute(context));\n }\n\n // log to stack\n this._executedAction(action, redo);\n\n this._fire(command, 'executed', action);\n });\n\n if (!redo) {\n this._fire(command, 'postExecute', action);\n\n if (handler.postExecute) {\n handler.postExecute(context);\n }\n\n this._fire(command, 'postExecuted', action);\n }\n\n this._popAction();\n};\n\n\nCommandStack.prototype._pushAction = function(action) {\n\n const execution = this._currentExecution,\n actions = execution.actions;\n\n const baseAction = actions[0];\n\n if (execution.atomic) {\n throw new Error('illegal invocation in <execute> or <revert> phase (action: ' + action.command + ')');\n }\n\n if (!action.id) {\n action.id = (baseAction && baseAction.id) || this._createId();\n }\n\n actions.push(action);\n};\n\n\nCommandStack.prototype._popAction = function() {\n const execution = this._currentExecution,\n trigger = execution.trigger,\n actions = execution.actions,\n dirty = execution.dirty;\n\n actions.pop();\n\n if (!actions.length) {\n this._eventBus.fire('elements.changed', { elements: uniqueBy('id', dirty.reverse()) });\n\n dirty.length = 0;\n\n this._fire('changed', { trigger: trigger });\n\n execution.trigger = null;\n }\n};\n\n\nCommandStack.prototype._markDirty = function(elements) {\n const execution = this._currentExecution;\n\n if (!elements) {\n return;\n }\n\n elements = isArray(elements) ? elements : [ elements ];\n\n execution.dirty = execution.dirty.concat(elements);\n};\n\n\nCommandStack.prototype._executedAction = function(action, redo) {\n const stackIdx = ++this._stackIdx;\n\n if (!redo) {\n this._stack.splice(stackIdx, this._stack.length, action);\n }\n};\n\n\nCommandStack.prototype._revertedAction = function(action) {\n this._stackIdx--;\n};\n\n\nCommandStack.prototype._getHandler = function(command) {\n return this._handlerMap[command];\n};\n\nCommandStack.prototype._setHandler = function(command, handler) {\n if (!command || !handler) {\n throw new Error('command and handler required');\n }\n\n if (this._handlerMap[command]) {\n throw new Error('overriding handler for command <' + command + '>');\n }\n\n this._handlerMap[command] = handler;\n};\n","import CommandStack from './CommandStack';\n\n/**\n * @type { import('didi').ModuleDeclaration }\n */\nexport default {\n commandStack: [ 'type', CommandStack ]\n};\n","import { set } from 'min-dash';\nimport { clone } from '../../../util';\n\n/**\n * @deprecated\n */\nexport class UpdateFieldValidationHandler {\n constructor(form, validator) {\n this._form = form;\n this._validator = validator;\n }\n\n execute(context) {\n const { field, value, indexes } = context;\n const { errors } = this._form._getState();\n\n context.oldErrors = clone(errors);\n\n const fieldErrors = this._validator.validateField(field, value);\n const updatedErrors = set(\n errors,\n [field.id, ...Object.values(indexes || {})],\n fieldErrors.length ? fieldErrors : undefined,\n );\n this._form._setState({ errors: updatedErrors });\n }\n\n revert(context) {\n this._form._setState({ errors: context.oldErrors });\n }\n}\n\nUpdateFieldValidationHandler.$inject = ['form', 'validator'];\n","import { set } from 'min-dash';\nimport { clone } from '../../../util';\n\nexport class UpdateFieldInstanceValidationHandler {\n constructor(form, validator) {\n this._form = form;\n this._validator = validator;\n }\n\n execute(context) {\n const { fieldInstance, value } = context;\n const { id, indexes } = fieldInstance;\n const { errors } = this._form._getState();\n\n context.oldErrors = clone(errors);\n\n const fieldErrors = this._validator.validateFieldInstance(fieldInstance, value);\n const updatedErrors = set(\n errors,\n [id, ...Object.values(indexes || {})],\n fieldErrors.length ? fieldErrors : undefined,\n );\n this._form._setState({ errors: updatedErrors });\n }\n\n revert(context) {\n this._form._setState({ errors: context.oldErrors });\n }\n}\n\nUpdateFieldInstanceValidationHandler.$inject = ['form', 'validator'];\n","import { UpdateFieldValidationHandler } from './cmd/UpdateFieldValidationHandler';\nimport { UpdateFieldInstanceValidationHandler } from './cmd/UpdateFieldInstanceValidationHandler';\n\nexport class ViewerCommands {\n constructor(commandStack, eventBus) {\n this._commandStack = commandStack;\n\n eventBus.on('form.init', () => {\n this.registerHandlers();\n });\n }\n\n registerHandlers() {\n Object.entries(this.getHandlers()).forEach(([id, handler]) => {\n this._commandStack.registerHandler(id, handler);\n });\n }\n\n getHandlers() {\n return {\n 'formField.validation.update': UpdateFieldValidationHandler,\n 'formFieldInstance.validation.update': UpdateFieldInstanceValidationHandler,\n };\n }\n\n /**\n * @deprecated\n */\n updateFieldValidation(field, value, indexes) {\n const context = {\n field,\n value,\n indexes,\n };\n\n this._commandStack.execute('formField.validation.update', context);\n }\n\n updateFieldInstanceValidation(fieldInstance, value) {\n const context = {\n fieldInstance,\n value,\n };\n\n this._commandStack.execute('formFieldInstance.validation.update', context);\n }\n}\n\nViewerCommands.$inject = ['commandStack', 'eventBus'];\n","import commandModule from 'diagram-js/lib/command';\n\nimport { ViewerCommands } from './ViewerCommands';\n\nexport const ViewerCommandsModule = {\n __depends__: [commandModule],\n __init__: ['viewerCommands'],\n viewerCommands: ['type', ViewerCommands],\n};\n\nexport { ViewerCommands };\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M2 9h5.5v3.086l-1.293-1.293-.707.707L8 14l2.5-2.5-.707-.707L8.5 12.086V9H14V8H2v1ZM13 2H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Zm0 3H3V3h10v2Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M13 10H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1Zm0 3H3v-2h10v2ZM8.5 3.914l1.293 1.293.707-.707L8 2 5.5 4.5l.707.707L7.5 3.914V7H2v1h12V7H8.5V3.914Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6Zm0-1C4.15 1 1 4.15 1 8s3.15 7 7 7 7-3.15 7-7-3.15-7-7-7Z\"/><path fill=\"currentColor\" d=\"M12 7.5H8.5V4h-1v3.5H4v1h3.5V12h1V8.5H12v-1Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"m12 4.7-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8 12 4.7Z\"/></svg>","// disable react hook rules as the linter is confusing the functional components within a class as class components\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport { get } from 'min-dash';\nimport { useContext, useMemo, useRef } from 'preact/hooks';\nimport { LocalExpressionContext } from '../../render/context/LocalExpressionContext';\n\nimport ExpandSvg from '../../render/components/form-fields/icons/Expand.svg';\nimport CollapseSvg from '../../render/components/form-fields/icons/Collapse.svg';\nimport AddSvg from '../../render/components/form-fields/icons/Add.svg';\nimport DeleteSvg from '../../render/components/form-fields/icons/Delete.svg';\n\nimport { buildExpressionContext } from '../../util';\nimport { useScrollIntoView } from '../../render/hooks';\nimport classNames from 'classnames';\n\nexport class RepeatRenderManager {\n constructor(form, formFields, formFieldRegistry, pathRegistry, eventBus) {\n this._form = form;\n /** @type {import('../../render/FormFields').FormFields} */\n this._formFields = formFields;\n /** @type {import('../../core/FormFieldRegistry').FormFieldRegistry} */\n this._formFieldRegistry = formFieldRegistry;\n /** @type {import('../../core/PathRegistry').PathRegistry} */\n this._pathRegistry = pathRegistry;\n /** @type {import('../../core/EventBus').EventBus} */\n this._eventBus = eventBus;\n this.Repeater = this.Repeater.bind(this);\n this.RepeatFooter = this.RepeatFooter.bind(this);\n }\n\n /**\n * Checks whether a field is currently repeating its children.\n *\n * @param {string} id - The id of the field to check\n * @returns {boolean} - True if repeatable, false otherwise\n */\n isFieldRepeating(id) {\n if (!id) {\n return false;\n }\n\n const formField = this._formFieldRegistry.get(id);\n const formFieldDefinition = this._formFields.get(formField.type);\n return formFieldDefinition.config.repeatable && formField.isRepeating;\n }\n\n Repeater(props) {\n const { RowsRenderer, indexes, useSharedState, ...restProps } = props;\n\n const [sharedRepeatState] = useSharedState;\n\n const { data } = this._form._getState();\n\n const repeaterField = props.field;\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && values.length > nonCollapsedItems;\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showRemove = repeaterField.allowAddRemove && hasChildren;\n\n /**\n * @param {number} index\n */\n const onDeleteItem = (index) => {\n const updatedValues = values.slice();\n const removedItem = updatedValues.splice(index, 1)[0];\n\n this._eventBus.fire('repeatRenderManager.remove', { dataPath, index, item: removedItem });\n\n props.onChange({\n field: repeaterField,\n value: updatedValues,\n indexes,\n });\n };\n\n const parentExpressionContextInfo = useContext(LocalExpressionContext);\n\n return (\n <>\n {values.map((itemValue, itemIndex) => (\n <div\n class={classNames({\n 'fjs-repeat-row-collapsed': isCollapsed ? itemIndex >= nonCollapsedItems : false,\n })}>\n <RepetitionScaffold\n itemIndex={itemIndex}\n itemValue={itemValue}\n parentExpressionContextInfo={parentExpressionContextInfo}\n repeaterField={repeaterField}\n RowsRenderer={RowsRenderer}\n indexes={indexes}\n onDeleteItem={onDeleteItem}\n showRemove={showRemove}\n {...restProps}\n />\n </div>\n ))}\n </>\n );\n }\n\n RepeatFooter(props) {\n const addButtonRef = useRef(null);\n const { useSharedState, indexes, field: repeaterField, readonly, disabled } = props;\n const [sharedRepeatState, setSharedRepeatState] = useSharedState;\n\n const { data } = this._form._getState();\n\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && values.length > nonCollapsedItems;\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showAdd = repeaterField.allowAddRemove && hasChildren;\n\n const toggle = () => {\n setSharedRepeatState((state) => ({ ...state, isCollapsed: !isCollapsed }));\n };\n\n const shouldScroll = useRef(false);\n\n const onAddItem = () => {\n const updatedValues = values.slice();\n const newItem = this._form._getInitializedFieldData(this._form._getState().data, {\n container: repeaterField,\n indexes: { ...indexes, [repeaterField.id]: updatedValues.length },\n });\n\n updatedValues.push(newItem);\n\n shouldScroll.current = true;\n\n this._eventBus.fire('repeatRenderManager.add', { dataPath, index: updatedValues.length - 1, item: newItem });\n\n props.onChange({\n value: updatedValues,\n });\n\n setSharedRepeatState((state) => ({ ...state, isCollapsed: false }));\n };\n\n useScrollIntoView(\n addButtonRef,\n [values.length],\n {\n align: 'bottom',\n behavior: 'auto',\n offset: 20,\n },\n [shouldScroll],\n );\n\n return (\n <div\n className={classNames('fjs-repeat-render-footer', {\n 'fjs-remove-allowed': repeaterField.allowAddRemove,\n })}>\n {showAdd ? (\n <button\n type=\"button\"\n readOnly={readonly}\n disabled={disabled || readonly}\n class=\"fjs-repeat-render-add\"\n ref={addButtonRef}\n onClick={onAddItem}>\n <>\n <AddSvg /> {'Add new'}\n </>\n </button>\n ) : null}\n {collapseEnabled ? (\n <button type=\"button\" class=\"fjs-repeat-render-collapse\" onClick={toggle}>\n {isCollapsed ? (\n <>\n <ExpandSvg /> {`Expand all (${values.length - 1})`}\n </>\n ) : (\n <>\n <CollapseSvg /> {'Collapse'}\n </>\n )}\n </button>\n ) : null}\n </div>\n );\n }\n\n _getNonCollapsedItems(field) {\n const DEFAULT_NON_COLLAPSED_ITEMS = 5;\n\n const { nonCollapsedItems } = field;\n\n return nonCollapsedItems ? nonCollapsedItems : DEFAULT_NON_COLLAPSED_ITEMS;\n }\n}\n\n/**\n * Individual repetition of a repeated field and context scaffolding.\n *\n * @param {Object} props\n * @param {number} props.itemIndex\n * @param {Object} props.itemValue\n * @param {Object} props.parentExpressionContextInfo\n * @param {Object} props.repeaterField\n * @param {Function} props.RowsRenderer\n * @param {Object} props.indexes\n * @param {Function} props.onDeleteItem\n * @param {boolean} props.showRemove\n */\n\nconst RepetitionScaffold = (props) => {\n const {\n itemIndex,\n itemValue,\n parentExpressionContextInfo,\n repeaterField,\n RowsRenderer,\n indexes,\n onDeleteItem,\n showRemove,\n ...restProps\n } = props;\n\n const elementProps = useMemo(\n () => ({\n ...restProps,\n indexes: { ...(indexes || {}), [repeaterField.id]: itemIndex },\n }),\n [itemIndex, indexes, repeaterField.id, restProps],\n );\n\n const localExpressionContextInfo = useMemo(\n () => ({\n data: parentExpressionContextInfo.data,\n this: itemValue,\n parent: buildExpressionContext({ ...parentExpressionContextInfo, data: parentExpressionContextInfo.this }),\n i: [...parentExpressionContextInfo.i, itemIndex + 1],\n }),\n [itemIndex, parentExpressionContextInfo, itemValue],\n );\n\n return !showRemove ? (\n <LocalExpressionContext.Provider value={localExpressionContextInfo}>\n <RowsRenderer {...elementProps} />\n </LocalExpressionContext.Provider>\n ) : (\n <div class=\"fjs-repeat-row-container\">\n <div class=\"fjs-repeat-row-rows\">\n <LocalExpressionContext.Provider value={localExpressionContextInfo}>\n <RowsRenderer {...elementProps} />\n </LocalExpressionContext.Provider>\n </div>\n <button\n type=\"button\"\n class=\"fjs-repeat-row-remove\"\n aria-label={`Remove list item ${itemIndex + 1}`}\n onClick={() => onDeleteItem(itemIndex)}>\n <div class=\"fjs-repeat-row-remove-icon-container\">\n <DeleteSvg />\n </div>\n </button>\n </div>\n );\n};\n\nRepeatRenderManager.$inject = ['form', 'formFields', 'formFieldRegistry', 'pathRegistry', 'eventBus'];\n","import { RepeatRenderManager } from './RepeatRenderManager';\n\nexport const RepeatRenderModule = {\n __init__: ['repeatRenderManager'],\n repeatRenderManager: ['type', RepeatRenderManager],\n};\n\nexport { RepeatRenderManager };\n","import {\n isFunction,\n isArray,\n isNumber,\n bind,\n assign\n} from 'min-dash';\n\nvar FN_REF = '__fn';\n\nvar DEFAULT_PRIORITY = 1000;\n\nvar slice = Array.prototype.slice;\n\n/**\n * @typedef { {\n * stopPropagation(): void;\n * preventDefault(): void;\n * cancelBubble: boolean;\n * defaultPrevented: boolean;\n * returnValue: any;\n * } } Event\n */\n\n/**\n * @template E\n *\n * @typedef { (event: E & Event, ...any) => any } EventBusEventCallback\n */\n\n/**\n * @typedef { {\n * priority: number;\n * next: EventBusListener | null;\n * callback: EventBusEventCallback<any>;\n * } } EventBusListener\n */\n\n/**\n * A general purpose event bus.\n *\n * This component is used to communicate across a diagram instance.\n * Other parts of a diagram can use it to listen to and broadcast events.\n *\n *\n * ## Registering for Events\n *\n * The event bus provides the {@link EventBus#on} and {@link EventBus#once}\n * methods to register for events. {@link EventBus#off} can be used to\n * remove event registrations. Listeners receive an instance of {@link Event}\n * as the first argument. It allows them to hook into the event execution.\n *\n * ```javascript\n *\n * // listen for event\n * eventBus.on('foo', function(event) {\n *\n * // access event type\n * event.type; // 'foo'\n *\n * // stop propagation to other listeners\n * event.stopPropagation();\n *\n * // prevent event default\n * event.preventDefault();\n * });\n *\n * // listen for event with custom payload\n * eventBus.on('bar', function(event, payload) {\n * console.log(payload);\n * });\n *\n * // listen for event returning value\n * eventBus.on('foobar', function(event) {\n *\n * // stop event propagation + prevent default\n * return false;\n *\n * // stop event propagation + return custom result\n * return {\n * complex: 'listening result'\n * };\n * });\n *\n *\n * // listen with custom priority (default=1000, higher is better)\n * eventBus.on('priorityfoo', 1500, function(event) {\n * console.log('invoked first!');\n * });\n *\n *\n * // listen for event and pass the context (`this`)\n * eventBus.on('foobar', function(event) {\n * this.foo();\n * }, this);\n * ```\n *\n *\n * ## Emitting Events\n *\n * Events can be emitted via the event bus using {@link EventBus#fire}.\n *\n * ```javascript\n *\n * // false indicates that the default action\n * // was prevented by listeners\n * if (eventBus.fire('foo') === false) {\n * console.log('default has been prevented!');\n * };\n *\n *\n * // custom args + return value listener\n * eventBus.on('sum', function(event, a, b) {\n * return a + b;\n * });\n *\n * // you can pass custom arguments + retrieve result values.\n * var sum = eventBus.fire('sum', 1, 2);\n * console.log(sum); // 3\n * ```\n *\n * @template [EventMap=null]\n */\nexport default function EventBus() {\n\n /**\n * @type { Record<string, EventBusListener> }\n */\n this._listeners = {};\n\n // cleanup on destroy on lowest priority to allow\n // message passing until the bitter end\n this.on('diagram.destroy', 1, this._destroy, this);\n}\n\n/**\n * @overlord\n *\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\n/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template {keyof EventMap} EventName\n *\n * @param {EventName} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<EventMap[EventName]>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n events = isArray(events) ? events : [ events ];\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n var actualCallback = callback;\n\n if (that) {\n actualCallback = bind(callback, that);\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n actualCallback[FN_REF] = callback[FN_REF] || callback;\n }\n\n var self = this;\n\n events.forEach(function(e) {\n self._addListener(e, {\n priority: priority,\n callback: actualCallback,\n next: null\n });\n });\n};\n\n/**\n * @overlord\n *\n * Register an event listener that is called only once.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] the listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\n/**\n * Register an event listener that is called only once.\n *\n * @template {keyof EventMap} EventName\n *\n * @param {EventName} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<EventMap[EventName]>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.once = function(events, priority, callback, that) {\n var self = this;\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n function wrappedCallback() {\n wrappedCallback.__isTomb = true;\n\n var result = callback.apply(that, arguments);\n\n self.off(events, wrappedCallback);\n\n return result;\n }\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n wrappedCallback[FN_REF] = callback;\n\n this.on(events, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|string[]} events\n * @param {EventBusEventCallback} [callback]\n */\nEventBus.prototype.off = function(events, callback) {\n\n events = isArray(events) ? events : [ events ];\n\n var self = this;\n\n events.forEach(function(event) {\n self._removeListener(event, callback);\n });\n\n};\n\n\n/**\n * Create an event recognized be the event bus.\n *\n * @param {Object} data Event data.\n *\n * @return {Event} An event that will be recognized by the event bus.\n */\nEventBus.prototype.createEvent = function(data) {\n var event = new InternalEvent();\n\n event.init(data);\n\n return event;\n};\n\n\n/**\n * Fires an event.\n *\n * @example\n *\n * ```javascript\n * // fire event by name\n * events.fire('foo');\n *\n * // fire event object with nested type\n * var event = { type: 'foo' };\n * events.fire(event);\n *\n * // fire event with explicit type\n * var event = { x: 10, y: 20 };\n * events.fire('element.moved', event);\n *\n * // pass additional arguments to the event\n * events.on('foo', function(event, bar) {\n * alert(bar);\n * });\n *\n * events.fire({ type: 'foo' }, 'I am bar!');\n * ```\n *\n * @param {string} [type] event type\n * @param {Object} [data] event or event data\n * @param {...any} [args] additional arguments the callback will be called with.\n *\n * @return {any} The return value. Will be set to `false` if the default was prevented.\n */\nEventBus.prototype.fire = function(type, data) {\n var event,\n firstListener,\n returnValue,\n args;\n\n args = slice.call(arguments);\n\n if (typeof type === 'object') {\n data = type;\n type = data.type;\n }\n\n if (!type) {\n throw new Error('no event type specified');\n }\n\n firstListener = this._listeners[type];\n\n if (!firstListener) {\n return;\n }\n\n // we make sure we fire instances of our home made\n // events here. We wrap them only once, though\n if (data instanceof InternalEvent) {\n\n // we are fine, we alread have an event\n event = data;\n } else {\n event = this.createEvent(data);\n }\n\n // ensure we pass the event as the first parameter\n args[0] = event;\n\n // original event type (in case we delegate)\n var originalType = event.type;\n\n // update event type before delegation\n if (type !== originalType) {\n event.type = type;\n }\n\n try {\n returnValue = this._invokeListeners(event, args, firstListener);\n } finally {\n\n // reset event type after delegation\n if (type !== originalType) {\n event.type = originalType;\n }\n }\n\n // set the return value to false if the event default\n // got prevented and no other return value exists\n if (returnValue === undefined && event.defaultPrevented) {\n returnValue = false;\n }\n\n return returnValue;\n};\n\n/**\n * Handle an error by firing an event.\n *\n * @param {Error} error The error to be handled.\n *\n * @return {boolean} Whether the error was handled.\n */\nEventBus.prototype.handleError = function(error) {\n return this.fire('error', { error: error }) === false;\n};\n\n\nEventBus.prototype._destroy = function() {\n this._listeners = {};\n};\n\n/**\n * @param {Event} event\n * @param {any[]} args\n * @param {EventBusListener} listener\n *\n * @return {any}\n */\nEventBus.prototype._invokeListeners = function(event, args, listener) {\n\n var returnValue;\n\n while (listener) {\n\n // handle stopped propagation\n if (event.cancelBubble) {\n break;\n }\n\n returnValue = this._invokeListener(event, args, listener);\n\n listener = listener.next;\n }\n\n return returnValue;\n};\n\n/**\n * @param {Event} event\n * @param {any[]} args\n * @param {EventBusListener} listener\n *\n * @return {any}\n */\nEventBus.prototype._invokeListener = function(event, args, listener) {\n\n var returnValue;\n\n if (listener.callback.__isTomb) {\n return returnValue;\n }\n\n try {\n\n // returning false prevents the default action\n returnValue = invokeFunction(listener.callback, args);\n\n // stop propagation on return value\n if (returnValue !== undefined) {\n event.returnValue = returnValue;\n event.stopPropagation();\n }\n\n // prevent default on return false\n if (returnValue === false) {\n event.preventDefault();\n }\n } catch (error) {\n if (!this.handleError(error)) {\n console.error('unhandled error in event listener', error);\n\n throw error;\n }\n }\n\n return returnValue;\n};\n\n/**\n * Add new listener with a certain priority to the list\n * of listeners (for the given event).\n *\n * The semantics of listener registration / listener execution are\n * first register, first serve: New listeners will always be inserted\n * after existing listeners with the same priority.\n *\n * Example: Inserting two listeners with priority 1000 and 1300\n *\n * * before: [ 1500, 1500, 1000, 1000 ]\n * * after: [ 1500, 1500, (new=1300), 1000, 1000, (new=1000) ]\n *\n * @param {string} event\n * @param {EventBusListener} newListener\n */\nEventBus.prototype._addListener = function(event, newListener) {\n\n var listener = this._getListeners(event),\n previousListener;\n\n // no prior listeners\n if (!listener) {\n this._setListeners(event, newListener);\n\n return;\n }\n\n // ensure we order listeners by priority from\n // 0 (high) to n > 0 (low)\n while (listener) {\n\n if (listener.priority < newListener.priority) {\n\n newListener.next = listener;\n\n if (previousListener) {\n previousListener.next = newListener;\n } else {\n this._setListeners(event, newListener);\n }\n\n return;\n }\n\n previousListener = listener;\n listener = listener.next;\n }\n\n // add new listener to back\n previousListener.next = newListener;\n};\n\n\n/**\n * @param {string} name\n *\n * @return {EventBusListener}\n */\nEventBus.prototype._getListeners = function(name) {\n return this._listeners[name];\n};\n\n/**\n * @param {string} name\n * @param {EventBusListener} listener\n */\nEventBus.prototype._setListeners = function(name, listener) {\n this._listeners[name] = listener;\n};\n\nEventBus.prototype._removeListener = function(event, callback) {\n\n var listener = this._getListeners(event),\n nextListener,\n previousListener,\n listenerCallback;\n\n if (!callback) {\n\n // clear listeners\n this._setListeners(event, null);\n\n return;\n }\n\n while (listener) {\n\n nextListener = listener.next;\n\n listenerCallback = listener.callback;\n\n if (listenerCallback === callback || listenerCallback[FN_REF] === callback) {\n if (previousListener) {\n previousListener.next = nextListener;\n } else {\n\n // new first listener\n this._setListeners(event, nextListener);\n }\n }\n\n previousListener = listener;\n listener = nextListener;\n }\n};\n\n/**\n * A event that is emitted via the event bus.\n */\nfunction InternalEvent() { }\n\nInternalEvent.prototype.stopPropagation = function() {\n this.cancelBubble = true;\n};\n\nInternalEvent.prototype.preventDefault = function() {\n this.defaultPrevented = true;\n};\n\nInternalEvent.prototype.init = function(data) {\n assign(this, data || {});\n};\n\n\n/**\n * Invoke function. Be fast...\n *\n * @param {Function} fn\n * @param {any[]} args\n *\n * @return {any}\n */\nfunction invokeFunction(fn, args) {\n return fn.apply(null, args);\n}\n","import { isNil, get, set } from 'min-dash';\nimport { countDecimals } from '../render/components/util/numberFieldUtil';\nimport { runExpressionEvaluation } from '../util/expressions';\nimport Big from 'big.js';\n\nconst EMAIL_PATTERN =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nconst PHONE_PATTERN =\n /(\\+|00)(297|93|244|1264|358|355|376|971|54|374|1684|1268|61|43|994|257|32|229|226|880|359|973|1242|387|590|375|501|1441|591|55|1246|673|975|267|236|1|61|41|56|86|225|237|243|242|682|57|269|238|506|53|5999|61|1345|357|420|49|253|1767|45|1809|1829|1849|213|593|20|291|212|34|372|251|358|679|500|33|298|691|241|44|995|44|233|350|224|590|220|245|240|30|1473|299|502|594|1671|592|852|504|385|509|36|62|44|91|246|353|98|964|354|972|39|1876|44|962|81|76|77|254|996|855|686|1869|82|383|965|856|961|231|218|1758|423|94|266|370|352|371|853|590|212|377|373|261|960|52|692|389|223|356|95|382|976|1670|258|222|1664|596|230|265|60|262|264|687|227|672|234|505|683|31|47|977|674|64|968|92|507|64|51|63|680|675|48|1787|1939|850|351|595|970|689|974|262|40|7|250|966|249|221|65|500|4779|677|232|503|378|252|508|381|211|239|597|421|386|46|268|1721|248|963|1649|235|228|66|992|690|993|670|676|1868|216|90|688|886|255|256|380|598|1|998|3906698|379|1784|58|1284|1340|84|678|681|685|967|27|260|263)(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{4,20}$/;\n\nconst VALIDATE_FEEL_PROPERTIES = ['min', 'max', 'minLength', 'maxLength'];\n\nexport class Validator {\n constructor(expressionLanguage, conditionChecker, form, formFieldRegistry) {\n this._expressionLanguage = expressionLanguage;\n this._conditionChecker = conditionChecker;\n this._form = form;\n this._formFieldRegistry = formFieldRegistry;\n }\n\n /**\n * Validate against a field definition, does not support proper expression evaluation.\n *\n * @deprecated use validateFieldInstance instead\n */\n validateField(field, value) {\n const { type, validate } = field;\n\n let errors = [];\n\n if (type === 'number') {\n errors = [...errors, ...runNumberValidation(field, value)];\n }\n\n if (!validate) {\n return errors;\n }\n\n const evaluatedValidation = oldEvaluateFEELValues(\n validate,\n this._expressionLanguage,\n this._conditionChecker,\n this._form,\n );\n\n errors = [...errors, ...runPresetValidation(field, evaluatedValidation, value)];\n\n return errors;\n }\n\n /**\n * Validate a field instance.\n *\n * @param {Object} fieldInstance\n * @param {string} value\n *\n * @returns {Array<string>}\n */\n validateFieldInstance(fieldInstance, value) {\n const { id, expressionContextInfo } = fieldInstance;\n\n const field = this._formFieldRegistry.get(id);\n\n if (!field) {\n return [];\n }\n\n const { type, validate } = field;\n\n let errors = [];\n\n if (type === 'number') {\n errors = [...errors, ...runNumberValidation(field, value)];\n }\n\n if (!validate) {\n return errors;\n }\n\n const evaluatedValidation = evaluateFEELValues(validate, this._expressionLanguage, expressionContextInfo);\n\n errors = [...errors, ...runPresetValidation(field, evaluatedValidation, value)];\n\n return errors;\n }\n}\n\nValidator.$inject = ['expressionLanguage', 'conditionChecker', 'form', 'formFieldRegistry'];\n\n// helpers //////////\n\nfunction runNumberValidation(field, value) {\n const { decimalDigits, increment } = field;\n const errors = [];\n\n if (value === 'NaN') {\n errors.push('Value is not a number.');\n } else if (value) {\n if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\n errors.push(\n 'Value is expected to ' +\n (decimalDigits === 0\n ? 'be an integer'\n : `have at most ${decimalDigits} decimal digit${decimalDigits > 1 ? 's' : ''}`) +\n '.',\n );\n }\n\n if (increment) {\n const bigValue = Big(value);\n const bigIncrement = Big(increment);\n\n const offset = bigValue.mod(bigIncrement);\n\n if (offset.cmp(0) !== 0) {\n const previousValue = bigValue.minus(offset);\n const nextValue = previousValue.plus(bigIncrement);\n\n errors.push(`Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`);\n }\n }\n }\n\n return errors;\n}\n\nfunction runPresetValidation(field, validation, value) {\n const errors = [];\n\n if (validation.pattern && value && !new RegExp(validation.pattern).test(value)) {\n errors.push(`Field must match pattern ${validation.pattern}.`);\n }\n\n if (validation.required) {\n const isUncheckedCheckbox = field.type === 'checkbox' && value === false;\n const isUnsetValue = isNil(value) || value === '';\n const isEmptyMultiselect = Array.isArray(value) && value.length === 0;\n\n if (isUncheckedCheckbox || isUnsetValue || isEmptyMultiselect) {\n errors.push('Field is required.');\n }\n }\n\n if ('min' in validation && (value || value === 0) && value < validation.min) {\n errors.push(`Field must have minimum value of ${validation.min}.`);\n }\n\n if ('max' in validation && (value || value === 0) && value > validation.max) {\n errors.push(`Field must have maximum value of ${validation.max}.`);\n }\n\n if ('minLength' in validation && value && value.trim().length < validation.minLength) {\n errors.push(`Field must have minimum length of ${validation.minLength}.`);\n }\n\n if ('maxLength' in validation && value && value.trim().length > validation.maxLength) {\n errors.push(`Field must have maximum length of ${validation.maxLength}.`);\n }\n\n if ('validationType' in validation && value && validation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\n errors.push('Field must be a valid international phone number. (e.g. +4930664040900)');\n }\n\n if ('validationType' in validation && value && validation.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\n errors.push('Field must be a valid email.');\n }\n\n return errors;\n}\n\nfunction evaluateFEELValues(validate, expressionLanguage, expressionContextInfo) {\n const evaluatedValidate = { ...validate };\n\n VALIDATE_FEEL_PROPERTIES.forEach((property) => {\n const path = property.split('.');\n const value = get(evaluatedValidate, path);\n const evaluatedValue = runExpressionEvaluation(expressionLanguage, value, expressionContextInfo);\n set(evaluatedValidate, path, evaluatedValue === null ? undefined : evaluatedValue);\n });\n\n return evaluatedValidate;\n}\n\nfunction oldEvaluateFEELValues(validate, expressionLanguage, conditionChecker, form) {\n const evaluatedValidate = { ...validate };\n\n VALIDATE_FEEL_PROPERTIES.forEach((property) => {\n const path = property.split('.');\n\n const value = get(evaluatedValidate, path);\n\n // mirroring FEEL evaluation of our hooks\n if (!expressionLanguage || !expressionLanguage.isExpression(value)) {\n return value;\n }\n\n const { initialData, data } = form._getState();\n\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\n const filteredData = { ...initialData, ...newData };\n\n const evaluatedValue = expressionLanguage.evaluate(value, filteredData);\n\n // replace validate property with evaluated value\n if (evaluatedValue) {\n set(evaluatedValidate, path, evaluatedValue);\n }\n });\n\n return evaluatedValidate;\n}\n","import { clone } from '../util';\n\nexport class Importer {\n /**\n * @constructor\n * @param { import('./FormFieldRegistry').FormFieldRegistry } formFieldRegistry\n * @param { import('./PathRegistry').PathRegistry } pathRegistry\n * @param { import('./FieldFactory').FieldFactory } fieldFactory\n * @param { import('./FormLayouter').FormLayouter } formLayouter\n */\n constructor(formFieldRegistry, pathRegistry, fieldFactory, formLayouter) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._fieldFactory = fieldFactory;\n this._formLayouter = formLayouter;\n }\n\n /**\n * Import schema creating rows, fields, attaching additional\n * information to each field and adding fields to the\n * field registry.\n *\n * Additional information attached:\n *\n * * `id` (unless present)\n * * `_parent`\n * * `_path`\n *\n * @param {any} schema\n *\n * @typedef {{ warnings: Error[], schema: any }} ImportResult\n * @returns {ImportResult}\n */\n importSchema(schema) {\n // TODO: Add warnings\n const warnings = [];\n\n try {\n this._cleanup();\n const importedSchema = this.importFormField(clone(schema));\n this._formLayouter.calculateLayout(clone(importedSchema));\n\n return {\n schema: importedSchema,\n warnings,\n };\n } catch (err) {\n this._cleanup();\n err.warnings = warnings;\n throw err;\n }\n }\n\n _cleanup() {\n this._formLayouter.clear();\n this._formFieldRegistry.clear();\n this._pathRegistry.clear();\n }\n\n /**\n * @param {{[x: string]: any}} fieldAttrs\n * @param {String} [parentId]\n * @param {number} [index]\n *\n * @return {any} field\n */\n importFormField(fieldAttrs, parentId, index) {\n const { components } = fieldAttrs;\n\n let parent, path;\n\n if (parentId) {\n parent = this._formFieldRegistry.get(parentId);\n }\n\n // set form field path\n path = parent ? [...parent._path, 'components', index] : [];\n\n const field = this._fieldFactory.create(\n {\n ...fieldAttrs,\n _path: path,\n _parent: parentId,\n },\n false,\n );\n\n this._formFieldRegistry.add(field);\n\n if (components) {\n field.components = this.importFormFields(components, field.id);\n }\n\n return field;\n }\n\n /**\n * @param {Array<any>} components\n * @param {string} parentId\n *\n * @return {Array<any>} imported components\n */\n importFormFields(components, parentId) {\n return components.map((component, index) => {\n return this.importFormField(component, parentId, index);\n });\n }\n}\n\nImporter.$inject = ['formFieldRegistry', 'pathRegistry', 'fieldFactory', 'formLayouter'];\n","import { getAncestryList } from '../util';\n\nexport class FieldFactory {\n /**\n * @constructor\n *\n * @param formFieldRegistry\n * @param formFields\n */\n constructor(formFieldRegistry, pathRegistry, formFields) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._formFields = formFields;\n }\n\n create(attrs, applyDefaults = true) {\n const { id, type, key, path, _parent } = attrs;\n\n const fieldDefinition = this._formFields.get(type);\n\n if (!fieldDefinition) {\n throw new Error(`form field of type <${type}> not supported`);\n }\n\n const { config } = fieldDefinition;\n\n if (!config) {\n throw new Error(`form field of type <${type}> has no config`);\n }\n\n if (id && this._formFieldRegistry._ids.assigned(id)) {\n throw new Error(`form field with id <${id}> already exists`);\n }\n\n // ensure that we can claim the path\n\n const parent = _parent && this._formFieldRegistry.get(_parent);\n const parentPath = (parent && this._pathRegistry.getValuePath(parent)) || [];\n const knownAncestorIds = getAncestryList(_parent, this._formFieldRegistry);\n\n if (\n config.keyed &&\n key &&\n !this._pathRegistry.canClaimPath([...parentPath, ...key.split('.')], {\n isClosed: true,\n knownAncestorIds,\n })\n ) {\n throw new Error(`binding path '${[...parentPath, key].join('.')}' is already claimed`);\n }\n\n if (\n config.pathed &&\n path &&\n !this._pathRegistry.canClaimPath([...parentPath, ...path.split('.')], {\n isRepeatable: config.repeatable,\n knownAncestorIds,\n })\n ) {\n throw new Error(`binding path '${[...parentPath, ...path.split('.')].join('.')}' is already claimed`);\n }\n\n const labelAttrs =\n applyDefaults && config.label\n ? {\n label: config.label,\n }\n : {};\n\n const field = config.create({\n ...labelAttrs,\n ...attrs,\n });\n\n this._ensureId(field);\n\n if (config.keyed) {\n this._ensureKey(field);\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), {\n isClosed: true,\n claimerId: field.id,\n knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry),\n });\n }\n\n if (config.pathed) {\n if (config.repeatable) {\n this._enforceDefaultPath(field);\n }\n\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), {\n isRepeatable: config.repeatable,\n claimerId: field.id,\n knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry),\n });\n }\n\n return field;\n }\n\n _ensureId(field) {\n if (field.id) {\n this._formFieldRegistry._ids.claim(field.id, field);\n\n return;\n }\n\n let prefix = 'Field';\n\n if (field.type === 'default') {\n prefix = 'Form';\n }\n\n field.id = this._formFieldRegistry._ids.nextPrefixed(`${prefix}_`, field);\n }\n\n _ensureKey(field) {\n if (!field.key) {\n field.key = this._getUniqueKeyPath(field);\n }\n }\n\n _enforceDefaultPath(field) {\n if (!field.path) {\n field.path = this._getUniqueKeyPath(field);\n }\n }\n\n _getUniqueKeyPath(field) {\n let random;\n const parent = this._formFieldRegistry.get(field._parent);\n\n // ensure key uniqueness at level\n do {\n random = Math.random().toString(36).substring(7);\n } while (parent && parent.components.some((child) => child.key === random));\n\n return `${field.type}_${random}`;\n }\n}\n\nFieldFactory.$inject = ['formFieldRegistry', 'pathRegistry', 'formFields'];\n","import { isArray } from 'min-dash';\nimport { clone, getAncestryList } from '../util';\n\n/**\n * The PathRegistry class manages a hierarchical structure of paths associated with form fields.\n * It enables claiming, unclaiming, and validating paths within this structure.\n *\n * Example Tree Structure:\n *\n * [\n * {\n * segment: 'root',\n * claimCount: 1,\n * children: [\n * {\n * segment: 'child1',\n * claimCount: 2,\n * children: null // A leaf node (closed path)\n * },\n * {\n * segment: 'child2',\n * claimCount: 1,\n * children: [\n * {\n * segment: 'subChild1',\n * claimCount: 1,\n * children: [] // An open node (open path)\n * }\n * ]\n * }\n * ]\n * }\n * ]\n */\nexport class PathRegistry {\n constructor(formFieldRegistry, formFields, injector) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n this._injector = injector;\n this._dataPaths = [];\n }\n\n canClaimPath(path, options = {}) {\n const {\n isClosed = false,\n isRepeatable = false,\n skipAncestryCheck = false,\n claimerId = null,\n knownAncestorIds = [],\n } = options;\n\n let node = { children: this._dataPaths };\n\n // (1) if we reach a leaf node, we cannot claim it, if we reach an open node, we can\n // if we reach a repeatable node, we need to ensure that the claimer is (or will be) an ancestor of the repeater\n for (const segment of path) {\n node = _getNextSegment(node, segment);\n\n if (!node) {\n return true;\n }\n\n if (node.isRepeatable && !skipAncestryCheck) {\n if (!(claimerId || knownAncestorIds.length)) {\n throw new Error(\n 'cannot claim a path that contains a repeater without specifying a claimerId or knownAncestorIds',\n );\n }\n\n const isValidRepeatClaim =\n knownAncestorIds.includes(node.repeaterId) ||\n (claimerId && getAncestryList(claimerId, this._formFieldRegistry).includes(node.repeaterId));\n\n if (!isValidRepeatClaim) {\n return false;\n }\n }\n\n if (node.children === null) {\n return false;\n }\n }\n\n // (2) if the path lands in the middle of the tree, we can only claim an open, non-repeatable path\n return !(isClosed || isRepeatable);\n }\n\n claimPath(path, options = {}) {\n const { isClosed = false, isRepeatable = false, claimerId = null, knownAncestorIds = [] } = options;\n\n if (!this.canClaimPath(path, { isClosed, isRepeatable, claimerId, knownAncestorIds })) {\n throw new Error(`cannot claim path '${path.join('.')}'`);\n }\n\n let node = { children: this._dataPaths };\n\n for (const segment of path) {\n let child = _getNextSegment(node, segment);\n\n if (!child) {\n child = { segment, claimCount: 1, children: [] };\n node.children.push(child);\n } else {\n child.claimCount++;\n }\n\n node = child;\n }\n\n if (isClosed) {\n node.children = null;\n }\n\n // add some additional info when we make a repeatable path claim\n if (isRepeatable) {\n node.isRepeatable = true;\n node.repeaterId = claimerId;\n }\n }\n\n unclaimPath(path) {\n // verification Pass\n let node = { children: this._dataPaths };\n for (const segment of path) {\n const child = _getNextSegment(node, segment);\n if (!child) {\n throw new Error(`no open path found for '${path.join('.')}'`);\n }\n node = child;\n }\n\n // mutation Pass\n node = { children: this._dataPaths };\n for (const segment of path) {\n const child = _getNextSegment(node, segment);\n\n child.claimCount--;\n\n if (child.claimCount === 0) {\n node.children.splice(node.children.indexOf(child), 1);\n break; // Abort early if claimCount reaches zero\n }\n\n node = child;\n }\n }\n\n /**\n * Applies a function (fn) recursively on a given field and its children.\n *\n * - `field`: Starting field object.\n * - `fn`: Function to apply.\n * - `context`: Optional object for passing data between calls.\n *\n * Stops early if `fn` returns `false`. Useful for traversing the form field tree.\n *\n * @returns {boolean} Success status based on function execution.\n */\n executeRecursivelyOnFields(field, fn, context = {}) {\n let result = true;\n\n const formFieldConfig = this._formFields.get(field.type).config;\n\n if (formFieldConfig.keyed) {\n const callResult = fn({ field, isClosed: true, isRepeatable: false, context });\n return result && callResult;\n } else if (formFieldConfig.pathed) {\n const callResult = fn({ field, isClosed: false, isRepeatable: formFieldConfig.repeatable, context });\n result = result && callResult;\n }\n\n // stop executing if false is specifically returned or if preventing recursion\n if (result === false || context.preventRecursion) {\n return result;\n }\n\n if (Array.isArray(field.components)) {\n for (const child of field.components) {\n const callResult = this.executeRecursivelyOnFields(child, fn, clone(context));\n result = result && callResult;\n\n // stop executing if false is specifically returned\n if (result === false) {\n return result;\n }\n }\n }\n\n return result;\n }\n\n /**\n * Generates an array representing the binding path to an underlying data object for a form field.\n *\n * @param {Object} field - The field object with properties: `key`, `path`, `id`, and optionally `_parent`.\n * @param {Object} [options={}] - Configuration options.\n * @param {Object} [options.replacements={}] - A map of field IDs to alternative path arrays.\n * @param {Object} [options.indexes=null] - A map of parent IDs to the index of the field within said parent, leave null to get an unindexed path.\n * @param {Object} [options.cutoffNode] - The ID of the parent field at which to stop generating the path.\n *\n * @returns {(Array<string>|undefined)} An array of strings representing the binding path, or undefined if not determinable.\n */\n getValuePath(field, options = {}) {\n const { replacements = {}, indexes = null, cutoffNode = null } = options;\n\n let localValuePath = [];\n\n const hasReplacement = Object.prototype.hasOwnProperty.call(replacements, field.id);\n const formFieldConfig = this._formFields.get(field.type).config;\n\n // uses path overrides instead of true path to calculate a potential value path\n if (hasReplacement) {\n const replacement = replacements[field.id];\n\n if (replacement === null || replacement === undefined || replacement === '') {\n localValuePath = [];\n } else if (typeof replacement === 'string') {\n localValuePath = replacement.split('.');\n } else if (Array.isArray(replacement)) {\n localValuePath = replacement;\n } else {\n throw new Error(`replacements for field ${field.id} must be a string, array or null/undefined`);\n }\n } else if (formFieldConfig.keyed) {\n localValuePath = field.key.split('.');\n } else if (formFieldConfig.pathed && field.path) {\n localValuePath = field.path.split('.');\n }\n\n // add potential indexes of repeated fields\n if (indexes) {\n localValuePath = this._addIndexes(localValuePath, field, indexes);\n }\n\n // if parent exists and isn't cutoff node, add parent's value path\n if (field._parent && field._parent !== cutoffNode) {\n const parent = this._formFieldRegistry.get(field._parent);\n return [...(this.getValuePath(parent, options) || []), ...localValuePath];\n }\n\n return localValuePath;\n }\n\n clear() {\n this._dataPaths = [];\n }\n\n _addIndexes(localValuePath, field, indexes) {\n const repeatRenderManager = this._injector.get('repeatRenderManager', false);\n\n if (repeatRenderManager && repeatRenderManager.isFieldRepeating(field._parent)) {\n return [indexes[field._parent], ...localValuePath];\n }\n\n return localValuePath;\n }\n}\n\nconst _getNextSegment = (node, segment) => {\n if (isArray(node.children)) {\n return node.children.find((node) => node.segment === segment) || null;\n }\n return null;\n};\n\nPathRegistry.$inject = ['formFieldRegistry', 'formFields', 'injector'];\n","import Ids from 'ids';\n\nimport { groupBy } from 'min-dash';\n\n/**\n * @typedef { { id: String, components: Array<String> } } FormRow\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\n */\n\n/**\n * Maintains the Form layout in a given structure, for example\n *\n * [\n * {\n * formFieldId: 'FormField_1',\n * rows: [\n * { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ] }\n * ]\n * }\n * ]\n *\n */\nexport class FormLayouter {\n constructor(eventBus) {\n /** @type Array<FormRows> */\n this._rows = [];\n this._ids = new Ids([32, 36, 1]);\n\n this._eventBus = eventBus;\n }\n\n /**\n * @param {FormRow} row\n */\n addRow(formFieldId, row) {\n let rowsPerComponent = this._rows.find((r) => r.formFieldId === formFieldId);\n\n if (!rowsPerComponent) {\n rowsPerComponent = {\n formFieldId,\n rows: [],\n };\n\n this._rows.push(rowsPerComponent);\n }\n\n rowsPerComponent.rows.push(row);\n }\n\n /**\n * @param {String} id\n * @returns {FormRow}\n */\n getRow(id) {\n const rows = allRows(this._rows);\n return rows.find((r) => r.id === id);\n }\n\n /**\n * @param {any} formField\n * @returns {FormRow}\n */\n getRowForField(formField) {\n return allRows(this._rows).find((r) => {\n const { components } = r;\n\n return components.includes(formField.id);\n });\n }\n\n /**\n * @param {String} formFieldId\n * @returns { Array<FormRow> }\n */\n getRows(formFieldId) {\n const rowsForField = this._rows.find((r) => formFieldId === r.formFieldId);\n\n if (!rowsForField) {\n return [];\n }\n\n return rowsForField.rows;\n }\n\n /**\n * @returns {string}\n */\n nextRowId() {\n return this._ids.nextPrefixed('Row_');\n }\n\n /**\n * @param {any} formField\n */\n calculateLayout(formField) {\n const { type, components } = formField;\n\n if (!['default', 'group', 'dynamiclist'].includes(type) || !components) {\n return;\n }\n\n // (1) calculate rows order (by component order)\n const rowsInOrder = groupByRow(components, this._ids);\n\n Object.entries(rowsInOrder).forEach(([id, components]) => {\n // (2) add fields to rows\n this.addRow(formField.id, {\n id: id,\n components: components.map((c) => c.id),\n });\n });\n\n // (3) traverse through nested components\n components.forEach((field) => this.calculateLayout(field));\n\n // (4) fire event to notify interested parties\n this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\n }\n\n clear() {\n this._rows = [];\n this._ids.clear();\n\n // fire event to notify interested parties\n this._eventBus.fire('form.layoutCleared');\n }\n}\n\nFormLayouter.$inject = ['eventBus'];\n\n// helpers //////\n\nfunction groupByRow(components, ids) {\n return groupBy(components, (c) => {\n // mitigate missing row by creating new (handle legacy)\n const { layout } = c;\n\n if (!layout || !layout.row) {\n return ids.nextPrefixed('Row_');\n }\n\n return layout.row;\n });\n}\n\n/**\n * @param {Array<FormRows>} formRows\n * @returns {Array<FormRow>}\n */\nfunction allRows(formRows) {\n return formRows.map((r) => r.rows).flat();\n}\n","import Ids from 'ids';\n\nexport class FormFieldRegistry {\n constructor(eventBus) {\n this._eventBus = eventBus;\n\n this._formFields = {};\n\n eventBus.on('form.clear', () => this.clear());\n\n this._ids = new Ids([32, 36, 1]);\n }\n\n add(formField) {\n const { id } = formField;\n\n if (this._formFields[id]) {\n throw new Error(`form field with ID ${id} already exists`);\n }\n\n this._eventBus.fire('formField.add', { formField });\n\n this._formFields[id] = formField;\n }\n\n remove(formField) {\n const { id } = formField;\n\n if (!this._formFields[id]) {\n return;\n }\n\n this._eventBus.fire('formField.remove', { formField });\n\n delete this._formFields[id];\n }\n\n get(id) {\n return this._formFields[id];\n }\n\n getAll() {\n return Object.values(this._formFields);\n }\n\n getForm() {\n return this.getAll().find((formField) => formField.type === 'default');\n }\n\n forEach(callback) {\n this.getAll().forEach((formField) => callback(formField));\n }\n\n clear() {\n this._formFields = {};\n\n this._ids.clear();\n }\n}\n\nFormFieldRegistry.$inject = ['eventBus'];\n","export class FormFieldInstanceRegistry {\n constructor(eventBus, formFieldRegistry, formFields) {\n this._eventBus = eventBus;\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n\n this._formFieldInstances = {};\n\n eventBus.on('form.clear', () => this.clear());\n }\n\n syncInstance(instanceId, formFieldInfo) {\n const { hidden, ...restInfo } = formFieldInfo;\n\n const isInstanceExpected = !hidden;\n const doesInstanceExist = this._formFieldInstances[instanceId];\n\n if (isInstanceExpected && !doesInstanceExist) {\n this._formFieldInstances[instanceId] = {\n instanceId,\n ...restInfo,\n };\n\n this._eventBus.fire('formFieldInstance.added', { instanceId });\n } else if (!isInstanceExpected && doesInstanceExist) {\n delete this._formFieldInstances[instanceId];\n\n this._eventBus.fire('formFieldInstance.removed', { instanceId });\n } else if (isInstanceExpected && doesInstanceExist) {\n const wasInstanceChaged = Object.keys(restInfo).some((key) => {\n return this._formFieldInstances[instanceId][key] !== restInfo[key];\n });\n\n if (wasInstanceChaged) {\n this._formFieldInstances[instanceId] = {\n instanceId,\n ...restInfo,\n };\n\n this._eventBus.fire('formFieldInstance.changed', { instanceId });\n }\n }\n\n return instanceId;\n }\n\n cleanupInstance(instanceId) {\n if (this._formFieldInstances[instanceId]) {\n delete this._formFieldInstances[instanceId];\n this._eventBus.fire('formFieldInstance.removed', { instanceId });\n }\n }\n\n get(instanceId) {\n return this._formFieldInstances[instanceId];\n }\n\n getAll() {\n return Object.values(this._formFieldInstances);\n }\n\n getAllKeyed() {\n return this.getAll().filter(({ id }) => {\n const formFieldDefinition = this._formFieldRegistry.get(id);\n\n if (!formFieldDefinition) {\n return false;\n }\n\n const { type } = formFieldDefinition;\n const { config } = this._formFields.get(type);\n\n return config.keyed;\n });\n }\n\n clear() {\n this._formFieldInstances = {};\n }\n}\n\nFormFieldInstanceRegistry.$inject = ['eventBus', 'formFieldRegistry', 'formFields'];\n","import { render } from 'preact';\nimport { useCallback, useState } from 'preact/hooks';\n\nimport { FormComponent } from './components/FormComponent';\nimport { FormContext } from './context';\n\n/**\n * @typedef { { container } } Config\n * @typedef { import('didi').Injector } Injector\n * @typedef { import('../core/EventBus').EventBus } EventBus\n * @typedef { import('../Form').Form } Form\n */\n\n/**\n * @param {Config} config\n * @param {EventBus} eventBus\n * @param {Form} form\n * @param {Injector} injector\n */\nexport function Renderer(config, eventBus, form, injector) {\n const App = () => {\n const [state, setState] = useState(form._getState());\n\n const formContext = {\n getService(type, strict = true) {\n return injector.get(type, strict);\n },\n formId: form._id,\n };\n\n eventBus.on('changed', (newState) => {\n setState(newState);\n });\n\n const onChange = useCallback((update) => form._update(update), []);\n\n const { properties } = state;\n\n const { readOnly } = properties;\n\n const onSubmit = useCallback(() => {\n if (!readOnly) {\n form.submit();\n }\n }, [readOnly]);\n\n const onReset = useCallback(() => form.reset(), []);\n\n const { schema } = state;\n\n if (!schema) {\n return null;\n }\n\n return (\n <FormContext.Provider value={formContext}>\n <FormComponent onChange={onChange} onSubmit={onSubmit} onReset={onReset} />\n </FormContext.Provider>\n );\n };\n\n const { container } = config;\n\n eventBus.on('form.init', () => {\n render(<App />, container);\n });\n\n eventBus.on('form.destroy', () => {\n render(null, container);\n });\n}\n\nRenderer.$inject = ['config.renderer', 'eventBus', 'form', 'injector'];\n","import { FILE_PICKER_FILE_KEY_PREFIX } from './constants/FilePickerConstants';\n\n/**\n * @typedef {Record<PropertyKey, unknown>} RemovedData\n * @param {RemovedData} removedData\n * @returns {string[]}\n */\nconst extractFileReferencesFromRemovedData = (removedData) => {\n /** @type {string[]} */\n const fileReferences = [];\n\n if (removedData === null) {\n return fileReferences;\n }\n\n Object.values(removedData).forEach((value) => {\n if (value === null) {\n return;\n }\n\n if (typeof value === 'object') {\n fileReferences.push(...extractFileReferencesFromRemovedData(/** @type {RemovedData} */ (value)));\n } else if (Array.isArray(value)) {\n fileReferences.push(...value.map(extractFileReferencesFromRemovedData).flat());\n } else if (typeof value === 'string' && value.startsWith(FILE_PICKER_FILE_KEY_PREFIX)) {\n fileReferences.push(value);\n }\n });\n\n return fileReferences;\n};\n\nexport { extractFileReferencesFromRemovedData };\n","import { extractFileReferencesFromRemovedData } from '../util/extractFileReferencesFromRemovedData';\n\nconst fileRegistry = Symbol('fileRegistry');\nconst eventBusSymbol = Symbol('eventBus');\nconst formFieldRegistrySymbol = Symbol('formFieldRegistry');\nconst formFieldInstanceRegistrySymbol = Symbol('formFieldInstanceRegistry');\nconst EMPTY_ARRAY = [];\n\nclass FileRegistry {\n /**\n * @param {import('../core/EventBus').EventBus} eventBus\n * @param {import('../core/FormFieldRegistry').FormFieldRegistry} formFieldRegistry\n * @param {import('../core/FormFieldInstanceRegistry').FormFieldInstanceRegistry} formFieldInstanceRegistry\n */\n constructor(eventBus, formFieldRegistry, formFieldInstanceRegistry) {\n /** @type {Map<string, File[]>} */\n this[fileRegistry] = new Map();\n /** @type {import('../core/EventBus').EventBus} */\n this[eventBusSymbol] = eventBus;\n /** @type {import('../core/FormFieldRegistry').FormFieldRegistry} */\n this[formFieldRegistrySymbol] = formFieldRegistry;\n /** @type {import('../core/FormFieldInstanceRegistry').FormFieldInstanceRegistry} */\n this[formFieldInstanceRegistrySymbol] = formFieldInstanceRegistry;\n\n const removeFileHandler = ({ item }) => {\n const fileReferences = extractFileReferencesFromRemovedData(item);\n\n // Remove all file references from the registry\n fileReferences.forEach((fileReference) => {\n this.deleteFiles(fileReference);\n });\n };\n\n eventBus.on('form.clear', () => this.clear());\n eventBus.on('conditionChecker.remove', removeFileHandler);\n eventBus.on('repeatRenderManager.remove', removeFileHandler);\n }\n\n /**\n * @param {string} id\n * @param {File[]} files\n */\n setFiles(id, files) {\n this[fileRegistry].set(id, files);\n }\n\n /**\n * @param {string} id\n * @returns {File[]}\n */\n getFiles(id) {\n return this[fileRegistry].get(id) || EMPTY_ARRAY;\n }\n\n /**\n * @returns {string[]}\n */\n getKeys() {\n return Array.from(this[fileRegistry].keys());\n }\n\n /**\n * @param {string} id\n * @returns {boolean}\n */\n hasKey(id) {\n return this[fileRegistry].has(id);\n }\n\n /**\n * @param {string} id\n */\n deleteFiles(id) {\n this[fileRegistry].delete(id);\n }\n\n /**\n * @returns {Map<string, File[]>}\n */\n getAllFiles() {\n return new Map(this[fileRegistry]);\n }\n\n clear() {\n this[fileRegistry].clear();\n }\n}\n\nFileRegistry.$inject = ['eventBus', 'formFieldRegistry', 'formFieldInstanceRegistry'];\n\nexport { FileRegistry };\n","import { FormFields } from './FormFields';\nimport { Renderer } from './Renderer';\nimport { FileRegistry } from './FileRegistry';\n\nexport { FormFields };\n\nexport * from './components';\nexport * from './context';\nexport { useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation } from './hooks';\n\nexport const RenderModule = {\n __init__: ['formFields', 'renderer'],\n formFields: ['type', FormFields],\n renderer: ['type', Renderer],\n fileRegistry: ['type', FileRegistry],\n};\n","import { EventBus } from './EventBus';\nimport { Validator } from './Validator';\nimport { Importer } from './Importer';\nimport { FieldFactory } from './FieldFactory';\nimport { PathRegistry } from './PathRegistry';\nimport { FormLayouter } from './FormLayouter';\nimport { FormFieldRegistry } from './FormFieldRegistry';\nimport { FormFieldInstanceRegistry } from './FormFieldInstanceRegistry';\n\nimport { RenderModule } from '../render';\n\nexport { Importer, FieldFactory, FormFieldRegistry, PathRegistry, FormLayouter };\n\nexport const CoreModule = {\n __depends__: [RenderModule],\n eventBus: ['type', EventBus],\n importer: ['type', Importer],\n fieldFactory: ['type', FieldFactory],\n formFieldRegistry: ['type', FormFieldRegistry],\n formFieldInstanceRegistry: ['type', FormFieldInstanceRegistry],\n pathRegistry: ['type', PathRegistry],\n formLayouter: ['type', FormLayouter],\n validator: ['type', Validator],\n};\n","import Ids from 'ids';\nimport { get, isObject, isString, isUndefined, set } from 'min-dash';\n\nimport {\n ExpressionLanguageModule,\n ExpressionFieldModule,\n MarkdownRendererModule,\n ViewerCommandsModule,\n RepeatRenderModule,\n} from './features';\n\nimport { CoreModule } from './core';\n\nimport { clone, createFormContainer, createInjector } from './util';\n\n/**\n * @typedef { import('./types').Injector } Injector\n * @typedef { import('./types').Data } Data\n * @typedef { import('./types').Errors } Errors\n * @typedef { import('./types').Schema } Schema\n * @typedef { import('./types').FormProperties } FormProperties\n * @typedef { import('./types').FormProperty } FormProperty\n * @typedef { import('./types').FormEvent } FormEvent\n * @typedef { import('./types').FormOptions } FormOptions\n *\n * @typedef { {\n * data: Data,\n * initialData: Data,\n * errors: Errors,\n * properties: FormProperties,\n * schema: Schema\n * } } State\n *\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\n */\n\nconst ids = new Ids([32, 36, 1]);\n\n/**\n * The form.\n */\nexport class Form {\n /**\n * @constructor\n * @param {FormOptions} options\n */\n constructor(options = {}) {\n /**\n * @public\n * @type {OnEventType}\n */\n this.on = this._onEvent;\n\n /**\n * @public\n * @type {String}\n */\n this._id = ids.next();\n\n /**\n * @private\n * @type {Element}\n */\n this._container = createFormContainer();\n\n const { container, injector = this._createInjector(options, this._container), properties = {} } = options;\n\n /**\n * @private\n * @type {State}\n */\n this._state = {\n initialData: null,\n data: null,\n properties,\n errors: {},\n schema: null,\n };\n\n this.get = injector.get;\n\n this.invoke = injector.invoke;\n\n this.get('eventBus').fire('form.init');\n\n if (container) {\n this.attachTo(container);\n }\n }\n\n clear() {\n // clear diagram services (e.g. EventBus)\n this._emit('diagram.clear');\n\n // clear form services\n this._emit('form.clear');\n }\n\n /**\n * Destroy the form, removing it from DOM,\n * if attached.\n */\n destroy() {\n // destroy form services\n this.get('eventBus').fire('form.destroy');\n\n // destroy diagram services (e.g. EventBus)\n this.get('eventBus').fire('diagram.destroy');\n\n this._detach(false);\n }\n\n /**\n * Open a form schema with the given initial data.\n *\n * @param {Schema} schema\n * @param {Data} [data]\n *\n * @return Promise<{ warnings: Array<any> }>\n */\n importSchema(schema, data = {}) {\n return new Promise((resolve, reject) => {\n try {\n this.clear();\n\n const { schema: importedSchema, warnings } = this.get('importer').importSchema(schema);\n\n const initializedData = this._getInitializedFieldData(clone(data));\n\n this._setState({\n data: initializedData,\n errors: {},\n schema: importedSchema,\n initialData: clone(initializedData),\n });\n\n this._emit('import.done', { warnings });\n\n return resolve({ warnings });\n } catch (error) {\n this._emit('import.done', {\n error,\n warnings: error.warnings || [],\n });\n\n return reject(error);\n }\n });\n }\n\n /**\n * Submit the form, triggering all field validations.\n *\n * @returns { { data: Data, errors: Errors, files: Map<string, File[]> } }\n */\n submit() {\n const { properties } = this._getState();\n\n if (properties.readOnly || properties.disabled) {\n throw new Error('form is read-only');\n }\n\n this._emit('presubmit');\n\n const data = this._getSubmitData();\n\n const errors = this.validate();\n\n const files = this.get('fileRegistry').getAllFiles();\n\n const result = {\n data,\n errors,\n files,\n };\n\n this._emit('submit', result);\n\n return result;\n }\n\n reset() {\n this._emit('reset');\n\n this._setState({\n data: clone(this._state.initialData),\n errors: {},\n });\n }\n\n /**\n * @returns {Errors}\n */\n validate() {\n const formFieldRegistry = this.get('formFieldRegistry'),\n formFieldInstanceRegistry = this.get('formFieldInstanceRegistry'),\n validator = this.get('validator');\n\n const { data } = this._getState();\n const errors = {};\n\n const getErrorPath = (id, indexes) => [id, ...Object.values(indexes || {})];\n\n formFieldInstanceRegistry.getAllKeyed().forEach((fieldInstance) => {\n const { id, valuePath, indexes } = fieldInstance;\n\n const field = formFieldRegistry.get(id);\n\n // (1) Skip disabled fields\n if (field.disabled) {\n return;\n }\n\n // (2) Validate the field instance\n const value = get(data, valuePath);\n const fieldErrors = validator.validateFieldInstance(fieldInstance, value);\n\n if (fieldErrors.length) {\n set(errors, getErrorPath(field.id, indexes), fieldErrors);\n }\n });\n\n this._setState({ errors });\n\n // @ts-ignore\n return errors;\n }\n\n /**\n * @param {Element|string} parentNode\n */\n attachTo(parentNode) {\n if (!parentNode) {\n throw new Error('parentNode required');\n }\n\n this.detach();\n\n if (isString(parentNode)) {\n parentNode = document.querySelector(parentNode);\n }\n\n const container = this._container;\n\n parentNode.appendChild(container);\n\n this._emit('attach');\n }\n\n detach() {\n this._detach();\n }\n\n /**\n * @private\n *\n * @param {boolean} [emit]\n */\n _detach(emit = true) {\n const container = this._container,\n parentNode = container.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n if (emit) {\n this._emit('detach');\n }\n\n parentNode.removeChild(container);\n }\n\n /**\n * @param {FormProperty} property\n * @param {any} value\n */\n setProperty(property, value) {\n const properties = set(this._getState().properties, [property], value);\n\n this._setState({ properties });\n }\n\n /**\n * @param {FormEvent} type\n * @param {Function} handler\n */\n off(type, handler) {\n this.get('eventBus').off(type, handler);\n }\n\n /**\n * @private\n *\n * @param {FormOptions} options\n * @param {Element} container\n *\n * @returns {Injector}\n */\n _createInjector(options, container) {\n const { modules = this._getModules(), additionalModules = [], ...config } = options;\n\n const enrichedConfig = {\n ...config,\n renderer: {\n container,\n },\n };\n\n return createInjector([\n { config: ['value', enrichedConfig] },\n { form: ['value', this] },\n CoreModule,\n ...modules,\n ...additionalModules,\n ]);\n }\n\n /**\n * @private\n */\n _emit(type, data) {\n this.get('eventBus').fire(type, data);\n }\n\n /**\n * @internal\n *\n * @param { { fieldInstance: any, value: any } } update\n */\n _update(update) {\n const { fieldInstance, value } = update;\n\n const { id, valuePath, indexes } = fieldInstance;\n\n const { data, errors } = this._getState();\n\n const validator = this.get('validator');\n\n const fieldErrors = validator.validateFieldInstance(fieldInstance, value);\n\n set(data, valuePath, value);\n\n set(errors, [id, ...Object.values(indexes || {})], fieldErrors.length ? fieldErrors : undefined);\n\n this._emit('field.updated', update);\n\n this._setState({\n data: clone(data),\n errors: clone(errors),\n });\n }\n\n /**\n * @internal\n */\n _getState() {\n return this._state;\n }\n\n /**\n * @internal\n */\n _setState(state) {\n this._state = {\n ...this._state,\n ...state,\n };\n\n this._emit('changed', this._getState());\n }\n\n /**\n * @internal\n */\n _getModules() {\n return [\n ExpressionLanguageModule,\n ExpressionFieldModule,\n MarkdownRendererModule,\n ViewerCommandsModule,\n RepeatRenderModule,\n ];\n }\n\n /**\n * @internal\n */\n _onEvent(type, priority, handler) {\n this.get('eventBus').on(type, priority, handler);\n }\n\n /**\n * @internal\n */\n _getSubmitData() {\n const formFieldRegistry = this.get('formFieldRegistry');\n const formFieldInstanceRegistry = this.get('formFieldInstanceRegistry');\n const formData = this._getState().data;\n\n const submitData = {};\n\n formFieldInstanceRegistry.getAllKeyed().forEach((formFieldInstance) => {\n const { id, valuePath } = formFieldInstance;\n const { disabled } = formFieldRegistry.get(id);\n\n if (disabled) {\n return;\n }\n\n const value = get(formData, valuePath);\n set(submitData, valuePath, value);\n });\n\n return submitData;\n }\n\n /**\n * @internal\n */\n _getInitializedFieldData(data, options = {}) {\n const formFieldRegistry = this.get('formFieldRegistry');\n const formFields = this.get('formFields');\n const pathRegistry = this.get('pathRegistry');\n\n function initializeFieldDataRecursively(initializedData, formField, indexes) {\n const { defaultValue, type, isRepeating } = formField;\n const { config: fieldConfig } = formFields.get(type);\n\n const valuePath = pathRegistry.getValuePath(formField, { indexes });\n let valueData = get(data, valuePath);\n\n // (1) Process keyed fields\n if (fieldConfig.keyed) {\n // (a) Retrieve and sanitize data from input\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\n }\n\n // (b) Initialize field value in output data\n const initializedFieldValue = !isUndefined(valueData)\n ? valueData\n : !isUndefined(defaultValue)\n ? defaultValue\n : fieldConfig.emptyValue;\n set(initializedData, valuePath, initializedFieldValue);\n }\n\n // (2) Process parents\n if (!Array.isArray(formField.components)) {\n return;\n }\n\n if (fieldConfig.repeatable && isRepeating) {\n // (a) Sanitize repeatable parents data if it is not an array\n if (!valueData || !Array.isArray(valueData)) {\n valueData =\n new Array(isUndefined(formField.defaultRepetitions) ? 1 : formField.defaultRepetitions)\n .fill()\n .map((_) => ({})) || [];\n }\n\n // (b) Ensure all elements of the array are objects\n valueData = valueData.map((val) => (isObject(val) ? val : {}));\n\n // (c) Initialize field value in output data\n set(initializedData, valuePath, valueData);\n\n // (d) If indexed ahead of time, recurse repeatable simply across the children\n if (!isUndefined(indexes[formField.id])) {\n formField.components.forEach((component) =>\n initializeFieldDataRecursively(initializedData, component, { ...indexes }),\n );\n\n return;\n }\n\n // (e1) Recurse repeatable parents both across the indexes of repetition and the children\n valueData.forEach((_, index) => {\n formField.components.forEach((component) =>\n initializeFieldDataRecursively(initializedData, component, { ...indexes, [formField.id]: index }),\n );\n });\n\n return;\n }\n\n // (e2) Recurse non-repeatable parents only across the children\n formField.components.forEach((component) => initializeFieldDataRecursively(initializedData, component, indexes));\n }\n\n // allows definition of a specific subfield to generate the data for\n const container = options.container || formFieldRegistry.getForm();\n const indexes = options.indexes || {};\n const basePath = pathRegistry.getValuePath(container, { indexes }) || [];\n\n // if indexing ahead of time, we must add this index to the data path at the end\n const path = !isUndefined(indexes[container.id]) ? [...basePath, indexes[container.id]] : basePath;\n\n const workingData = clone(data);\n initializeFieldDataRecursively(workingData, container, indexes);\n return get(workingData, path, {});\n }\n}\n","import { Form } from './Form';\n\nexport { FormFieldRegistry, FormLayouter, Importer, FieldFactory, PathRegistry } from './core';\nexport * from './render';\nexport * from './util';\nexport * from './features';\n\nconst schemaVersion = 16;\n\nexport { Form, schemaVersion };\n\n/**\n * @typedef { import('./types').CreateFormOptions } CreateFormOptions\n */\n\n/**\n * Create a form.\n *\n * @param {CreateFormOptions} options\n *\n * @return {Promise<Form>}\n */\nexport function createForm(options) {\n const { data, schema, ...formOptions } = options;\n\n const form = new Form(formOptions);\n\n return form.importSchema(schema, data).then(function () {\n return form;\n });\n}\n"],"names":["getFlavouredFeelVariableNames","feelString","feelFlavour","options","depth","specialDepthAccessors","includes","tree","parseExpression","parseUnaryTests","simpleExpressionTree","_buildSimpleFeelStructureTree","variables","_unfoldVariables","node","name","pathRoot","_linearizePathExpression","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","variableName","children","reduce","acc","child","concat","filter","Set","root","index","nodes","initialDepth","accessorDepthInfos","previous","current","extractedVariables","pathNodes","i","currentAccessor","depthOffsets","accumulator","offset","map","depthInfo","some","add","parts","push","reverse","parseTree","stack","iterate","enter","nodeRepresentation","type","slice","to","leave","result","pop","parent","_extractFilterExpressions","flattenedExpressionTree","x","filterTarget","filterExpression","taggedFilterExpression","FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","Error","evaluate","data","error","fire","$inject","FeelersTemplating","isTemplate","test","template","expressions","_extractExpressionsWithDepth","_parent_","this","_this_","context","debug","strict","buildDebugString","err","sanitizer","evaluateFeelers","feelersParser","parse","buildSimpleTree","_traverse","n","content","loopExpression","childResults","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","OPTIONS_SOURCES","STATIC","INPUT","EXPRESSION","OPTIONS_SOURCE_DEFAULT","OPTIONS_SOURCES_LABELS","OPTIONS_SOURCES_PATHS","OPTIONS_SOURCES_DEFAULTS","label","getOptionsSource","field","source","values","get","undefined","SANDBOX_ATTRIBUTE","ALLOW_ATTRIBUTE","SECURITY_ATTRIBUTES_DEFINITIONS","attribute","directive","property","createInjector","bootstrapModules","injector","Injector","init","createFormContainer","prefix","container","document","createElement","classList","formFieldClasses","errors","disabled","readonly","classNames","gridColumnClasses","formField","layout","columns","prefixId","id","formId","indexes","forEach","FormRenderContext","createContext","Empty","props","Hidden","Children","_jsx","class","style","Element","Row","Column","hoverInfo","cleanup","LocalExpressionContext","getService","FormContext","useService","useContext","isRequired","required","pathParse","path","split","key","isNaN","parseInt","pathsEqual","a","b","every","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","stringify","runRecursively","fn","components","component","_","wrapObjectKeysWithUnderscores","obj","newObj","entries","buildExpressionContext","specialContextKeys","runExpressionEvaluation","expressionLanguage","expressionContextInfo","useCondition","condition","conditionChecker","useMemo","check","getSimpleOptionsData","formData","valuesExpression","optionsExpression","valuesKey","optionsKey","staticOptions","normalizeOptionsData","optionsData","_isAllowedValue","_normalizeOption","o","isNil","createEmptyOptions","defaults","option","_isAllowedPrimitive","isObject","isValidLabel","_isValidLabel","isAllowedPrimitiveType","isValid","useExpressionEvaluation","useDeepCompareMemoize","ref","useRef","isEqual","LOAD_STATES","LOADING","LOADED","ERROR","useOptionsAsync","initialData","_getState","expressionEvaluation","evaluatedOptions","optionsGetter","keyedOptions","isArray","buildErrorState","buildLoadedState","loadState","useDangerousHTMLWrapper","html","transform","sanitize","sanitizeStyleTags","sanitizedHtml","DOMPurify","getDOMPurifyConfig","transformedHtml","__html","FORCE_BODY","FORBID_TAGS","useSecurityAttributesMap","security","securityMemoized","sandbox","join","allow","useGetLabelCorrelation","labelMap","assign","_getValueHash","useCallback","wrapCSSStyles","rootNode","styleTags","querySelectorAll","styleTag","topLevelRules","extractTopLevelRules","textContent","scopedCss","rule","selector","styles","splitRule","scopedSelector","scopeSelector","cssString","cursor","start","level","substring","trim","firstBracket","indexOf","sel","getScrollContainer","el","body","documentElement","_isElementScrollable","parentElement","window","getComputedStyle","overflowY","overflow","scrollHeight","clientHeight","EMPTY_OBJECT","EMPTY_ARRAY","useScrollIntoView","scrolledElementRef","deps","scrollOptions","flagRefs","_scrollOptions","_flagRefs","useEffect","itemToBeScrolled","scrollContainer","itemRect","getBoundingClientRect","containerRect","align","behavior","scrollIfVisible","shouldScroll","top","bottom","topOffset","_getTopOffset","scroll","item","scrollTop","height","useBooleanExpressionEvaluation","evaluationResult","useFilteredFormData","newData","applyConditions","useKeyDownAction","targetKey","action","listenerElement","downHandler","addEventListener","removeEventListener","useReadonly","properties","readOnly","usePrevious","defaultValue","useFlushDebounce","func","timeoutRef","lastArgsRef","config","debounce","shouldDebounce","delay","debounceFunc","args","clearTimeout","setTimeout","flushFunc","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isNumber","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","replace","offsetString","inboundOffset","serializeDate","date","LuxonDateTime","fromJSDate","toISODate","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","getFullYear","getMonth","getDate","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","getNullDateTime","isValidDate","isValidTime","toString","padStart","ALLOWED_IMAGE_SRC_PATTERN","ALLOWED_IFRAME_SRC_PATTERN","sanitizeDateTimePickerValue","subtype","hasEqualValue","array","element","sanitizeSingleSelectValue","validValues","v","sanitizeMultiSelectValue","sanitizeImageSource","src","valid","sanitizeIFrameSource","escapeHTML","escapeMap","useCleanupSingleSelectValue","onChange","optionValues","hasValueNotInOptions","useCleanupMultiSelectValue","memoizedValues","hasValuesNotInOptions","Button","onFocus","onBlur","evaluatedLabel","keyed","group","create","Description","description","evaluatedDescription","Errors","Label","htmlFor","collapseOnEmpty","_jsxs","for","Checkbox","domId","validate","target","checked","descriptionId","errorMessageId","emptyValue","sanitizeValue","Checklist","outerDivRef","toggleCheckbox","toggledValue","newValues","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","itemDomId","isChecked","onClick","noop","ids","Ids","FormField","instanceIdRef","next","_onChange","formFields","viewerCommands","formFieldInstanceRegistry","pathRegistry","form","initialValidationTrigger","setInitialValidationTrigger","useState","FormFieldComponent","fieldConfig","localExpressionContext","valuePath","getValuePath","initialValue","hidden","conditional","hide","instanceId","syncInstance","fieldInstance","cleanupInstance","resetValidation","on","off","hasInitialValue","updateFieldInstanceValidation","update","fieldErrors","formFieldElement","escapeGridRender","ChildrenRenderer","repeatRenderManager","isRepeating","isFieldRepeating","Repeater","RepeatFooter","RepeatChildrenRenderer","ChildrenRoot","SimpleChildrenRenderer","isEmpty","RowsRenderer","restProps","useSharedState","isCollapsed","_Fragment","parentId","verticalAlignment","formLayouter","formFieldRegistry","rows","getRows","row","alignItems","childId","childField","_createElement","Default","fullProps","_path","_extends","React","getLocaleDateFormat","locale","Intl","DateTimeFormat","formatToParts","UTC","part","len","repeat","getLocaleReadableDateFormat","format","getLocaleDateFlatpickrConfig","flatpickerizeDateFormat","dateFormat","useLeadingZero","day","month","year","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","Datepicker","collapseLabelOnEmpty","onDateTimeBlur","onDateTimeFocus","disallowPassedDates","dateObject","setDate","dateInputRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","allowInput","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","close","onCalendarMouseDown","onOpen","onClose","onInputKeyDown","dispatchEvent","preventDefault","onInputFocus","onInputBlur","isFalseBlur","CalendarIcon","width","placeholder","autoComplete","onKeyDown","onMouseDown","onInput","_path2","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","min","max","individualEntries","focusedEntry","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","event","valueIndex","userMovedCursor","screenX","y","screenY","tabIndex","maxHeight","scrollBehavior","focused","onMouseMove","onMouseEnter","Timepicker","timeInterval","setTime","safeTimeInterval","allowedIntervals","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","intervalIndex","cacheTime","flooredCacheTime","onDropdownValueSelected","ClockIcon","Datetime","dateLabel","timeLabel","dateTimeGroupRef","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","useDatePicker","useTimePicker","fromISO","toJSDate","NaN","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","set","Group","showOutline","className","role","pathed","DEFAULT_HEIGHT","IFrame","url","evaluatedUrl","safeUrl","iframeRefresh","setIframeRefresh","count","IFramePlaceholder","text","title","allowScripts","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","GroupIcon","iframe","IFrameIcon","image","ImageIcon","number","NumberIcon","ExpressionFieldIcon","radio","RadioIcon","select","SelectIcon","separator","SeparatorIcon","spacer","SpacerIcon","dynamiclist","DynamicListIcon","taglist","TaglistIcon","TextIcon","HTMLIcon","textfield","TextfieldIcon","textarea","TextareaIcon","table","TableIcon","filepicker","FilePickerIcon","default","FormIcon","Image","alt","Icon","evaluatedImageSource","safeSource","altText","viewBox","TemplatedInputAdorner","evaluatedPre","evaluatedPost","countDecimals","num","Big","toFixed","isValidNumber","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","isFirstDot","isFirstMinus","keypressIsNumeric","dotIndex","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","Numberfield","appearance","increment","incrementValue","prefixAdorner","suffixAdorner","cachedValue","setCachedValue","displayValue","setDisplayValue","debouncedOnChange","flushOnChange","previousCachedValue","setValue","stringValue","replaceAll","outerValueChanged","outerValueEqualsCache","incrementAmount","base","stepFlooredValue","minus","mod","plus","decrement","cmp","onKeyPress","selectionStart","selectionEnd","onPaste","step","AngelUpIcon","AngelDownIcon","serializeToString","Radio","onRadioBlur","onRadioFocus","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","isFilterActive","setIsFilterActive","isEscapeClosed","setIsEscapeClose","searchbarRef","getLabelCorrelation","filteredOptions","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","XMarkIcon","SimpleSelect","selectRef","valueLabel","input","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","DynamicList","repeatable","allowAddRemove","defaultRepetitions","SkipLink","onSkip","href","Taglist","hasOptionsLeft","isValidFilteredOption","filterMatches","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","doc","DOMParser","parseFromString","normalize","firstChild","sanitizeNode","innerHTML","nodeType","remove","lcTag","tagName","attributes","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Text","textLinkTarget","disableLinks","markdownRenderer","markdown","render","sanitizeAndTransformLinks","unsafeHtml","tempDiv","links","link","dangerouslySetInnerHTML","Html","styleScope","ExpressionField","computeOn","evaluation","evaluationMemo","expressionLoopPreventer","sendValue","shouldNotRecompute","registerExpressionExecution","Textfield","String","Textarea","textareaRef","autoSizeTextarea","useLayoutEffect","computed","heightFromLines","lineHeight","getPropertyValue","lines","calculatedHeight","minHeight","displayHeight","Table","columnsExpression","dataSource","rowCount","sortBy","setSortBy","evaluatedColumns","useEvaluatedColumns","columnKeys","evaluatedDataSource","sortedData","sortByColumn","direction","chunkedData","chunk","currentPage","setCurrentPage","currentChunk","toggleSortBy","displayLabel","getHeaderAriaLabel","ArrowUpIcon","ArrowDownIcon","colSpan","page","CaretLeftIcon","CaretRightIcon","remainingOptions","isDefined","isColumn","generateInitialDemoData","demoData","demoDataKeys","fallbackColumns","column","size","chunks","sort","FILE_PICKER_FILE_KEY_PREFIX","FilePicker","fileInputRef","fileRegistry","filesKey","multiple","accept","evaluatedAccept","evaluatedMultiple","selectedFiles","getFiles","hasKey","DataTransfer","file","items","files","onFileChange","deleteFiles","updatedFilesKey","nextPrefixed","setFiles","isInputDisabled","click","getSelectedFilesLabel","Logo","xmlns","fill","d","Lightbox","onBackdropClick","rel","Link","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","FormComponent","schema","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","filteredFormData","noValidate","Provider","FormFields","_formFields","register","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","getSchemaVariables","inputs","outputs","getAllComponents","prop","expressionVariables","templateVariables","variable","getBindingVariables","bindingVariable","getAncestryList","formFieldId","currentFormField","_parent","ConditionChecker","_formFieldRegistry","_pathRegistry","contextData","workingData","getFilterPath","_applyConditionsWithinScope","rootField","scopeContext","startHidden","expressionIndexes","scopeData","parentScopeData","executeRecursivelyOnFields","isClosed","isRepeatable","isHidden","_checkHideCondition","preventRecursion","repeaterValuePath","repeaterValue","newScopeContext","_cleanlyClearDataAtPath","getForm","unaryTest","workingValuePath","recurse","parentObject","_isEmptyObject","_isEmptyArray","ExpressionLanguageModule","__init__","ExpressionLoopPreventer","_computedExpressions","reset","bind","expressionField","ExpressionFieldModule","MarkdownRenderer","marked","gfm","breaks","MarkdownRendererModule","CommandStack","_handlerMap","_stack","_stackIdx","_currentExecution","actions","dirty","trigger","_injector","_uid","clear","prototype","execute","command","_pushAction","_internalExecute","_popAction","canExecute","handler","_getHandler","_fire","emit","undo","_getUndoAction","_internalUndo","redo","_getRedoAction","_setHandler","registerHandler","handlerCls","instantiate","canUndo","canRedo","_atomicDo","revert","_markDirty","_revertedAction","qualifier","arguments","names","createEvent","cancelBubble","_createId","execution","atomic","preExecute","_executedAction","postExecute","baseAction","elements","uniqueBy","stackIdx","splice","commandStack","UpdateFieldValidationHandler","validator","_form","_validator","oldErrors","validateField","updatedErrors","_setState","UpdateFieldInstanceValidationHandler","validateFieldInstance","ViewerCommands","_commandStack","registerHandlers","getHandlers","updateFieldValidation","ViewerCommandsModule","__depends__","commandModule","RepeatRenderManager","formFieldDefinition","sharedRepeatState","repeaterField","dataPath","nonCollapsedItems","_getNonCollapsedItems","collapseEnabled","disableCollapse","hasChildren","showRemove","onDeleteItem","updatedValues","removedItem","parentExpressionContextInfo","itemValue","itemIndex","RepetitionScaffold","addButtonRef","setSharedRepeatState","showAdd","toggle","state","onAddItem","newItem","_getInitializedFieldData","AddSvg","ExpandSvg","CollapseSvg","DEFAULT_NON_COLLAPSED_ITEMS","elementProps","localExpressionContextInfo","DeleteSvg","RepeatRenderModule","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","actualCallback","self","_addListener","once","wrappedCallback","__isTomb","apply","_removeListener","InternalEvent","firstListener","returnValue","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","EMAIL_PATTERN","PHONE_PATTERN","VALIDATE_FEEL_PROPERTIES","Validator","_expressionLanguage","_conditionChecker","runNumberValidation","evaluatedValidation","oldEvaluateFEELValues","runPresetValidation","evaluateFEELValues","bigValue","bigIncrement","nextValue","validation","pattern","RegExp","isUncheckedCheckbox","isUnsetValue","isEmptyMultiselect","minLength","maxLength","validationType","evaluatedValidate","evaluatedValue","filteredData","Importer","fieldFactory","_fieldFactory","_formLayouter","importSchema","warnings","_cleanup","importedSchema","importFormField","calculateLayout","fieldAttrs","importFormFields","FieldFactory","attrs","applyDefaults","fieldDefinition","_ids","assigned","parentPath","knownAncestorIds","canClaimPath","labelAttrs","_ensureId","_ensureKey","claimPath","claimerId","_enforceDefaultPath","claim","_getUniqueKeyPath","random","PathRegistry","_dataPaths","skipAncestryCheck","segment","_getNextSegment","isValidRepeatClaim","repeaterId","claimCount","unclaimPath","formFieldConfig","callResult","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","_addIndexes","find","FormLayouter","_rows","addRow","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","c","groupBy","formRows","flat","FormFieldRegistry","getAll","FormFieldInstanceRegistry","_formFieldInstances","formFieldInfo","restInfo","isInstanceExpected","doesInstanceExist","wasInstanceChaged","getAllKeyed","Renderer","App","setState","formContext","_id","newState","_update","submit","extractFileReferencesFromRemovedData","removedData","fileReferences","Symbol","eventBusSymbol","formFieldRegistrySymbol","formFieldInstanceRegistrySymbol","FileRegistry","Map","removeFileHandler","fileReference","getKeys","has","delete","getAllFiles","RenderModule","renderer","CoreModule","importer","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","initializedData","_getSubmitData","getErrorPath","parentNode","detach","appendChild","removeChild","setProperty","modules","_getModules","additionalModules","enrichedConfig","submitData","formFieldInstance","initializeFieldDataRecursively","valueData","isUndefined","initializedFieldValue","val","basePath","schemaVersion","createForm","formOptions","then"],"mappings":"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","x_google_ignoreList":[120,121,132]}
1
+ {"version":3,"file":"index.cjs","sources":["../src/features/expressionLanguage/variableExtractionHelpers.js","../src/features/expressionLanguage/FeelExpressionLanguage.js","../src/features/expressionLanguage/FeelersTemplating.js","../src/util/constants/DatetimeConstants.js","../src/util/constants/OptionsSourceConstants.js","../src/util/constants/IFrameConstants.js","../src/util/injector.js","../src/util/form.js","../src/render/components/Util.js","../src/render/context/FormRenderContext.js","../src/render/context/LocalExpressionContext.js","../src/render/context/FormContext.js","../src/render/hooks/useService.js","../src/util/simple.js","../src/util/expressions.js","../src/render/hooks/useCondition.js","../src/render/components/util/optionsUtil.js","../src/render/hooks/useExpressionEvaluation.js","../src/render/hooks/useDeepCompareMemoize.js","../src/render/hooks/useOptionsAsync.js","../src/render/hooks/useDangerousHTMLWrapper.js","../src/render/hooks/useSecurityAttributesMap.js","../src/render/hooks/useGetLabelCorrelation.js","../src/render/components/util/domUtil.js","../src/render/hooks/useScrollIntoView.js","../src/render/hooks/useFilteredFormData.js","../src/render/hooks/useKeyDownAction.js","../src/render/hooks/useReadonly.js","../src/render/hooks/usePrevious.js","../src/render/hooks/useFlushDebounce.js","../src/render/hooks/useTemplateEvaluation.js","../src/render/hooks/useSingleLineTemplateEvaluation.js","../src/render/components/util/dateTimeUtil.js","../src/render/components/util/sanitizerUtil.js","../src/render/hooks/useCleanupSingleSelectValue.js","../src/render/hooks/useCleanupMultiSelectValue.js","../src/render/components/form-fields/Button.js","../src/render/components/Description.js","../src/render/components/Errors.js","../src/render/components/Label.js","../src/render/components/form-fields/Checkbox.js","../src/render/components/form-fields/Checklist.js","../src/render/components/FormField.js","../src/render/components/form-fields/parts/ChildrenRenderer.js","../src/render/components/form-fields/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/util/localisationUtil.js","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/form-fields/Group.js","../src/render/components/form-fields/IFrame.js","../src/render/components/icons/Button.svg","../src/render/components/icons/Checkbox.svg","../src/render/components/icons/Checklist.svg","../src/render/components/icons/Datetime.svg","../src/render/components/icons/Taglist.svg","../src/render/components/icons/Form.svg","../src/render/components/icons/Group.svg","../src/render/components/icons/Number.svg","../src/render/components/icons/Radio.svg","../src/render/components/icons/Select.svg","../src/render/components/icons/Separator.svg","../src/render/components/icons/Spacer.svg","../src/render/components/icons/DynamicList.svg","../src/render/components/icons/Text.svg","../src/render/components/icons/HTML.svg","../src/render/components/icons/ExpressionField.svg","../src/render/components/icons/Textfield.svg","../src/render/components/icons/Textarea.svg","../src/render/components/icons/IFrame.svg","../src/render/components/icons/Image.svg","../src/render/components/icons/Table.svg","../src/render/components/icons/FilePicker.svg","../src/render/components/icons/index.js","../src/render/components/form-fields/Image.js","../src/render/components/form-fields/parts/TemplatedInputAdorner.js","../src/render/components/form-fields/icons/AngelDown.svg","../src/render/components/form-fields/icons/AngelUp.svg","../src/render/components/util/numberFieldUtil.js","../src/render/components/form-fields/Number.js","../src/render/components/form-fields/Radio.js","../src/render/components/form-fields/icons/XMark.svg","../src/render/components/form-fields/parts/SearchableSelect.js","../src/render/components/form-fields/parts/SimpleSelect.js","../src/render/components/form-fields/Select.js","../src/render/components/form-fields/Separator.js","../src/render/components/form-fields/Spacer.js","../src/render/components/form-fields/DynamicList.js","../src/render/components/form-fields/parts/SkipLink.js","../src/render/components/form-fields/Taglist.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/Text.js","../src/render/components/form-fields/Html.js","../src/render/components/form-fields/ExpressionField.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.js","../src/render/components/form-fields/icons/ArrowDown.svg","../src/render/components/form-fields/icons/ArrowUp.svg","../src/render/components/form-fields/icons/CaretLeft.svg","../src/render/components/form-fields/icons/CaretRight.svg","../src/render/components/form-fields/Table.js","../src/render/components/form-fields/FilePicker.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/index.js","../src/render/FormFields.js","../src/util/getSchemaVariables.js","../src/util/structure.js","../src/features/expressionLanguage/ConditionChecker.js","../src/features/expressionLanguage/index.js","../src/features/expressionField/ExpressionLoopPreventer.js","../src/features/expressionField/index.js","../src/features/markdown/MarkdownRenderer.js","../src/features/markdown/index.js","../../../node_modules/diagram-js/lib/command/CommandStack.js","../../../node_modules/diagram-js/lib/command/index.js","../src/features/viewerCommands/cmd/UpdateFieldValidationHandler.js","../src/features/viewerCommands/cmd/UpdateFieldInstanceValidationHandler.js","../src/features/viewerCommands/ViewerCommands.js","../src/features/viewerCommands/index.js","../src/render/components/form-fields/icons/Expand.svg","../src/render/components/form-fields/icons/Collapse.svg","../src/render/components/form-fields/icons/Add.svg","../src/render/components/form-fields/icons/Delete.svg","../src/features/repeatRender/RepeatRenderManager.js","../src/features/repeatRender/index.js","../../../node_modules/diagram-js/lib/core/EventBus.js","../src/core/Validator.js","../src/core/Importer.js","../src/core/FieldFactory.js","../src/core/PathRegistry.js","../src/core/FormLayouter.js","../src/core/FormFieldRegistry.js","../src/core/FormFieldInstanceRegistry.js","../src/render/Renderer.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { parseExpression, parseUnaryTests } from 'feelin';\n\nexport const getFlavouredFeelVariableNames = (feelString, feelFlavour = 'expression', options = {}) => {\n const { depth = 0, specialDepthAccessors = {} } = options;\n\n if (!['expression', 'unaryTest'].includes(feelFlavour)) return [];\n\n const tree = feelFlavour === 'expression' ? parseExpression(feelString) : parseUnaryTests(feelString);\n\n const simpleExpressionTree = _buildSimpleFeelStructureTree(tree, feelString);\n\n const variables = (function _unfoldVariables(node) {\n if (node.name === 'PathExpression') {\n // if the path is built on top of a context, we process that context and\n // ignore the rest of the path expression, as it is not relevant for variable extraction\n const pathRoot = _linearizePathExpression(node)[0];\n if (pathRoot.name === 'Context') {\n return _unfoldVariables(pathRoot);\n }\n\n if (Object.keys(specialDepthAccessors).length === 0) {\n return depth === 0 ? [_getVariableNameAtPathIndex(node, 0)] : [];\n }\n\n // if using special depth accessors, use a more complex extraction\n return Array.from(_smartExtractVariableNames(node, depth, specialDepthAccessors));\n }\n\n if (depth === 0 && node.name === 'VariableName') return [node.variableName];\n\n // for any other kind of node, traverse its children and flatten the result\n if (node.children) {\n const variables = node.children.reduce((acc, child) => {\n return acc.concat(_unfoldVariables(child));\n }, []);\n\n // if we are within a filter context, we need to remove the item variable as it is used for iteration there\n return node.name === 'FilterContext' ? variables.filter((name) => name !== 'item') : variables;\n }\n\n return [];\n })(simpleExpressionTree);\n\n return [...new Set(variables)];\n};\n\n/**\n * Get the variable name at the specified index in a given path expression.\n *\n * @param {Object} root - The root node of the path expression tree.\n * @param {number} index - The index of the variable name to retrieve.\n * @returns {string|null} The variable name at the specified index or null if index is out of bounds.\n */\nconst _getVariableNameAtPathIndex = (root, index) => {\n const nodes = _linearizePathExpression(root);\n return nodes[index].variableName || null;\n};\n\n/**\n * Extracts the variables which are required of the external context for a given path expression.\n * This is done by traversing the path expression tree and keeping track of the current depth relative to the external context.\n *\n * @param {Object} node - The root node of the path expression tree.\n * @param {number} initialDepth - The depth at which the root node is located in the outer context.\n * @param {Object} specialDepthAccessors - Definitions of special keywords which represent more complex accesses of the outer context.\n * @returns {Set} - A set containing the extracted variable names.\n */\nconst _smartExtractVariableNames = (node, initialDepth, specialDepthAccessors) => {\n // depth info represents the previous (initialised as null) and current depth of the current accessor in the path expression\n // we track multiple of these to account for the fact that a path expression may be ambiguous due to special keywords\n let accessorDepthInfos = [{ previous: null, current: initialDepth - 1 }];\n const extractedVariables = new Set();\n const pathNodes = _linearizePathExpression(node);\n\n for (let i = 0; i < pathNodes.length; i++) {\n const currentAccessor = pathNodes[i].variableName;\n\n if (currentAccessor in specialDepthAccessors) {\n const depthOffsets = specialDepthAccessors[currentAccessor];\n\n // if the current accessor is a special keyword, we need to expand the current depth info set\n // this is done to account for the ambiguity of keywords like parent, which may be used to access\n // the parent of the current node, or a child variable of the same name\n accessorDepthInfos = depthOffsets\n .reduce((accumulator, offset) => {\n return [\n ...accumulator,\n ...accessorDepthInfos.map((depthInfo) => ({\n previous: depthInfo.current,\n current: depthInfo.current + offset,\n })),\n ];\n }, [])\n .filter((depthInfo) => depthInfo.current >= -1); // discard all depth infos which are out of bounds\n } else {\n // if the current accessor is not a special keyword, we know it's simply accessing a child\n // hence we are now one level deeper in the tree and simply increment\n accessorDepthInfos = accessorDepthInfos.map((depthInfo) => ({\n previous: depthInfo.current,\n current: depthInfo.current + 1,\n }));\n }\n\n // finally, we check if for the current accessor, there is a scenario where:\n // previous it was at depth -1 (i.e. the root context), and is now at depth 0 (i.e. a variable)\n // these are the variables we need to request, so we add them to the set\n if (accessorDepthInfos.some((depthInfo) => depthInfo.previous === -1 && depthInfo.current === 0)) {\n extractedVariables.add(currentAccessor);\n }\n }\n\n // we return a set to avoid duplicates\n return new Set(extractedVariables);\n};\n\n/**\n * Deconstructs a path expression tree into an array of components.\n *\n * @param {Object} root - The root node of the path expression tree.\n * @returns {Array<object>} An array of components in the path expression, in the correct order.\n */\nconst _linearizePathExpression = (root) => {\n let node = root;\n let parts = [];\n\n // Traverse the tree and collect path components\n while (node.name === 'PathExpression') {\n parts.push(node.children[1]);\n node = node.children[0];\n }\n\n // Add the last component to the array\n parts.push(node);\n\n // Reverse and return the array to get the correct order\n return parts.reverse();\n};\n\n/**\n * Builds a simplified feel structure tree from the given parse tree and feel string.\n * The nodes follow this structure: `{ name: string, children: Array, variableName?: string }`\n *\n * @param {Object} parseTree - The parse tree generated by a parser.\n * @param {string} feelString - The feel string used for parsing.\n * @returns {Object} The simplified feel structure tree.\n */\nconst _buildSimpleFeelStructureTree = (parseTree, feelString) => {\n const stack = [{ children: [] }];\n parseTree.iterate({\n enter: (node) => {\n const nodeRepresentation = {\n name: node.type.name,\n children: [],\n };\n\n if (node.type.name === 'VariableName') {\n nodeRepresentation.variableName = feelString.slice(node.from, node.to);\n }\n\n stack.push(nodeRepresentation);\n },\n leave: () => {\n const result = stack.pop();\n const parent = stack[stack.length - 1];\n parent.children.push(result);\n },\n });\n\n return _extractFilterExpressions(stack[0].children[0]);\n};\n\n/**\n * Restructure the tree in such a way to bring filters (which create new contexts) to the root of the tree.\n * This is done to simplify the extraction of variables and match the context hierarchy.\n */\nconst _extractFilterExpressions = (tree) => {\n const flattenedExpressionTree = {\n name: 'Root',\n children: [tree],\n };\n\n const iterate = (node) => {\n if (node.children) {\n for (let x = 0; x < node.children.length; x++) {\n if (node.children[x].name === 'FilterExpression') {\n const filterTarget = node.children[x].children[0];\n const filterExpression = node.children[x].children[2];\n\n // bypass the filter expression\n node.children[x] = filterTarget;\n\n const taggedFilterExpression = {\n name: 'FilterContext',\n children: [filterExpression],\n };\n\n // append the filter expression to the root\n flattenedExpressionTree.children.push(taggedFilterExpression);\n\n // recursively iterate the expression\n iterate(filterExpression);\n } else {\n iterate(node.children[x]);\n }\n }\n }\n };\n\n iterate(tree);\n\n return flattenedExpressionTree;\n};\n","import { evaluate } from 'feelin';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport class FeelExpressionLanguage {\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Determines if the given value is a FEEL expression.\n *\n * @param {any} value\n * @returns {boolean}\n *\n */\n isExpression(value) {\n return isString(value) && value.startsWith('=');\n }\n\n /**\n * Retrieve variable names from a given FEEL expression.\n *\n * @param {string} expression\n * @param {object} [options]\n * @param {string} [options.type]\n *\n * @returns {string[]}\n */\n getVariableNames(expression, options = {}) {\n const { type = 'expression' } = options;\n\n if (!this.isExpression(expression)) {\n return [];\n }\n\n if (!['unaryTest', 'expression'].includes(type)) {\n throw new Error('Unknown expression type: ' + type);\n }\n\n return getFlavouredFeelVariableNames(expression, type);\n }\n\n /**\n * Evaluate an expression.\n *\n * @param {string} expression\n * @param {import('../../types').Data} [data]\n *\n * @returns {any}\n */\n evaluate(expression, data = {}) {\n if (!expression) {\n return null;\n }\n\n if (!isString(expression) || !expression.startsWith('=')) {\n return null;\n }\n\n try {\n const result = evaluate(expression.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n}\n\nFeelExpressionLanguage.$inject = ['eventBus'];\n","import { parser as feelersParser, buildSimpleTree, evaluate as evaluateFeelers } from 'feelers';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport class FeelersTemplating {\n constructor() {}\n\n /**\n * Determines if the given value is a feelers template.\n *\n * @param {any} value\n * @returns {boolean}\n *\n */\n isTemplate(value) {\n return isString(value) && (value.startsWith('=') || /{{.*?}}/.test(value));\n }\n\n /**\n * Retrieve variable names from a given feelers template.\n *\n * @param {string} template\n *\n * @returns {string[]}\n */\n getVariableNames(template) {\n if (!this.isTemplate(template)) {\n return [];\n }\n\n const expressions = this._extractExpressionsWithDepth(template);\n\n // defines special accessors, and the change(s) in depth they could imply (e.g. parent can be used to access the parent context (depth - 1) or a child variable named parent (depth + 1)\n const specialDepthAccessors = {\n parent: [-1, 1],\n _parent_: [-1],\n this: [0, 1],\n _this_: [0],\n };\n\n return expressions.reduce((variables, { expression, depth }) => {\n return variables.concat(\n getFlavouredFeelVariableNames(expression, 'expression', { depth, specialDepthAccessors }),\n );\n }, []);\n }\n\n /**\n * Evaluate a template.\n *\n * @param {string} template\n * @param {Object<string, any>} context\n * @param {Object} options\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.buildDebugString]\n * @param {Function} [options.sanitizer]\n *\n * @returns\n */\n evaluate(template, context = {}, options = {}) {\n const {\n debug = false,\n strict = false,\n buildDebugString = (err) => ' {{⚠}} ',\n sanitizer = (value) => value,\n } = options;\n\n return evaluateFeelers(template, context, { debug, strict, buildDebugString, sanitizer });\n }\n\n /**\n * @typedef {Object} ExpressionWithDepth\n * @property {number} depth - The depth of the expression in the syntax tree.\n * @property {string} expression - The extracted expression\n */\n\n /**\n * Extracts all feel expressions in the template along with their depth in the syntax tree.\n * The depth is incremented for child expressions of loops to account for context drilling.\n\n * @name extractExpressionsWithDepth\n * @param {string} template - A feelers template string.\n * @returns {Array<ExpressionWithDepth>} An array of objects, each containing the depth and the extracted expression.\n *\n * @example\n * const template = \"Hello {{user}}, you have:{{#loop items}}\\n- {{amount}} {{name}}{{/loop}}.\";\n * const extractedExpressions = _extractExpressionsWithDepth(template);\n */\n _extractExpressionsWithDepth(template) {\n // build simplified feelers syntax tree\n const parseTree = feelersParser.parse(template);\n const tree = buildSimpleTree(parseTree, template);\n\n return (function _traverse(n, depth = 0) {\n if (['Feel', 'FeelBlock'].includes(n.name)) {\n return [{ depth, expression: n.content }];\n }\n\n if (n.name === 'LoopSpanner') {\n const loopExpression = n.children[0].content;\n const childResults = n.children.slice(1).reduce((acc, child) => {\n return acc.concat(_traverse(child, depth + 1));\n }, []);\n return [{ depth, expression: loopExpression }, ...childResults];\n }\n\n return n.children.reduce((acc, child) => {\n return acc.concat(_traverse(child, depth));\n }, []);\n })(tree);\n }\n}\n\nFeelersTemplating.$inject = [];\n","// config ///////////////////\n\nexport const MINUTES_IN_DAY = 60 * 24;\n\nexport const DATETIME_SUBTYPES = {\n DATE: 'date',\n TIME: 'time',\n DATETIME: 'datetime',\n};\n\nexport const TIME_SERIALISING_FORMATS = {\n UTC_OFFSET: 'utc_offset',\n UTC_NORMALIZED: 'utc_normalized',\n NO_TIMEZONE: 'no_timezone',\n};\n\nexport const DATETIME_SUBTYPES_LABELS = {\n [DATETIME_SUBTYPES.DATE]: 'Date',\n [DATETIME_SUBTYPES.TIME]: 'Time',\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time',\n};\n\nexport const TIME_SERIALISINGFORMAT_LABELS = {\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone',\n};\n\nexport const DATETIME_SUBTYPE_PATH = ['subtype'];\nexport const DATE_LABEL_PATH = ['dateLabel'];\nexport const DATE_DISALLOW_PAST_PATH = ['disallowPassedDates'];\nexport const TIME_LABEL_PATH = ['timeLabel'];\nexport const TIME_USE24H_PATH = ['use24h'];\nexport const TIME_INTERVAL_PATH = ['timeInterval'];\nexport const TIME_SERIALISING_FORMAT_PATH = ['timeSerializingFormat'];\n","import { get } from 'min-dash';\n\n// config ///////////////////\n\nexport const OPTIONS_SOURCES = {\n STATIC: 'static',\n INPUT: 'input',\n EXPRESSION: 'expression',\n};\n\nexport const OPTIONS_SOURCE_DEFAULT = OPTIONS_SOURCES.STATIC;\n\nexport const OPTIONS_SOURCES_LABELS = {\n [OPTIONS_SOURCES.STATIC]: 'Static',\n [OPTIONS_SOURCES.INPUT]: 'Input data',\n [OPTIONS_SOURCES.EXPRESSION]: 'Expression',\n};\n\nexport const OPTIONS_SOURCES_PATHS = {\n [OPTIONS_SOURCES.STATIC]: ['values'],\n [OPTIONS_SOURCES.INPUT]: ['valuesKey'],\n [OPTIONS_SOURCES.EXPRESSION]: ['valuesExpression'],\n};\n\nexport const OPTIONS_SOURCES_DEFAULTS = {\n [OPTIONS_SOURCES.STATIC]: [\n {\n label: 'Value',\n value: 'value',\n },\n ],\n [OPTIONS_SOURCES.INPUT]: '',\n [OPTIONS_SOURCES.EXPRESSION]: '=',\n};\n\n// helpers ///////////////////\n\nexport function getOptionsSource(field) {\n for (const source of Object.values(OPTIONS_SOURCES)) {\n if (get(field, OPTIONS_SOURCES_PATHS[source]) !== undefined) {\n return source;\n }\n }\n\n return OPTIONS_SOURCE_DEFAULT;\n}\n","export const SANDBOX_ATTRIBUTE = 'sandbox';\nexport const ALLOW_ATTRIBUTE = 'allow';\n\n// Cf. https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy#iframe_syntax\nexport const SECURITY_ATTRIBUTES_DEFINITIONS = [\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-scripts',\n property: 'allowScripts',\n label: 'Script execution',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-same-origin',\n property: 'allowSameOrigin',\n label: 'Allow same origin',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'fullscreen',\n property: 'fullscreen',\n label: 'Open in fullscreen',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'geolocation',\n property: 'geolocation',\n label: 'Geolocation',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'camera',\n property: 'camera',\n label: 'Camera access',\n },\n {\n attribute: ALLOW_ATTRIBUTE,\n directive: 'microphone',\n property: 'microphone',\n label: 'Microphone access',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-forms',\n property: 'allowForms',\n label: 'Forms submission',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-modals',\n property: 'allowModals',\n label: 'Open modal windows',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-popups',\n property: 'allowPopups',\n label: 'Open popups',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-top-navigation',\n property: 'allowTopNavigation',\n label: 'Top level navigation',\n },\n {\n attribute: SANDBOX_ATTRIBUTE,\n directive: 'allow-storage-access-by-user-activation',\n property: 'allowStorageAccessByUserActivation',\n label: 'Storage access by user',\n },\n];\n","import { Injector } from 'didi';\n\nexport function createInjector(bootstrapModules) {\n const injector = new Injector(bootstrapModules);\n\n injector.init();\n\n return injector;\n}\n","/**\n * @param {string?} prefix\n *\n * @returns Element\n */\nexport function createFormContainer(prefix = 'fjs') {\n const container = document.createElement('div');\n\n container.classList.add(`${prefix}-container`);\n\n return container;\n}\n","import classNames from 'classnames';\n\nexport function formFieldClasses(type, { errors = [], disabled = false, readonly = false } = {}) {\n if (!type) {\n throw new Error('type required');\n }\n\n return classNames('fjs-form-field', `fjs-form-field-${type}`, {\n 'fjs-has-errors': errors.length > 0,\n 'fjs-disabled': disabled,\n 'fjs-readonly': readonly,\n });\n}\n\nexport function gridColumnClasses(formField) {\n const { layout = {} } = formField;\n\n const { columns } = layout;\n\n return classNames(\n 'fjs-layout-column',\n `cds--col${columns ? '-lg-' + columns : ''}`,\n\n // always fall back to top-down on smallest screens\n 'cds--col-sm-16',\n 'cds--col-md-16',\n );\n}\n\nexport function textToLabel(text) {\n if (typeof text != 'string') return null;\n\n for (const line of text.split('\\n')) {\n const displayLine = line.trim();\n\n // we use the first non-whitespace line in the text as label\n if (displayLine !== '') {\n return displayLine;\n }\n }\n\n return null;\n}\n\nexport function prefixId(id, formId, indexes) {\n let result = 'fjs-form';\n\n if (formId) {\n result += `-${formId}`;\n }\n\n result += `-${id}`;\n\n Object.values(indexes || {}).forEach((index) => {\n result += `_${index}`;\n });\n\n return result;\n}\n","import { createContext } from 'preact';\n\nexport const FormRenderContext = createContext({\n Empty: (props) => {\n return null;\n },\n Hidden: (props) => {\n return null;\n },\n Children: (props) => {\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n Element: (props) => {\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n Row: (props) => {\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n Column: (props) => {\n if (props.field.type === 'default') {\n return props.children;\n }\n\n return (\n <div class={props.class} style={props.style}>\n {props.children}\n </div>\n );\n },\n hoverInfo: {\n cleanup: () => {},\n },\n});\n","import { createContext } from 'preact';\n\nexport const LocalExpressionContext = createContext({\n data: null,\n this: null,\n parent: null,\n i: null,\n});\n","import { createContext } from 'preact';\n\n/**\n * @param {string} type\n * @param {boolean} [strict]\n *\n * @returns {any}\n */\nfunction getService(type, strict) {}\n\nexport const FormContext = createContext({\n getService,\n formId: null,\n});\n","import { useContext } from 'preact/hooks';\n\nimport { FormContext } from '../context';\n\nexport function useService(type, strict) {\n const { getService } = useContext(FormContext);\n\n return getService(type, strict);\n}\n","export function isRequired(field) {\n return field.required;\n}\n\nexport function pathParse(path) {\n if (!path) {\n return [];\n }\n\n return path.split('.').map((key) => {\n return isNaN(parseInt(key)) ? key : parseInt(key);\n });\n}\n\nexport function pathsEqual(a, b) {\n return a && b && a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\nconst indices = {};\n\nexport function generateIndexForType(type) {\n if (type in indices) {\n indices[type]++;\n } else {\n indices[type] = 1;\n }\n\n return indices[type];\n}\n\nexport function generateIdForType(type) {\n return `${type}${generateIndexForType(type)}`;\n}\n\n/**\n * @template T\n * @param {T} data\n * @param {(this: any, key: string, value: any) => any} [replacer]\n * @return {T}\n */\nexport function clone(data, replacer) {\n return JSON.parse(JSON.stringify(data, replacer));\n}\n\nexport function runRecursively(formField, fn) {\n const components = formField.components || [];\n\n components.forEach((component, _) => {\n runRecursively(component, fn);\n });\n\n fn(formField);\n}\n\nexport function wrapObjectKeysWithUnderscores(obj) {\n const newObj = {};\n for (const [key, value] of Object.entries(obj)) {\n newObj[`_${key}_`] = value;\n }\n return newObj;\n}\n","import { wrapObjectKeysWithUnderscores } from './simple';\n\n/**\n * Transform a LocalExpressionContext object into a usable FEEL context.\n *\n * @param {Object} context - The LocalExpressionContext object.\n * @returns {Object} The usable FEEL context.\n */\n\nexport function buildExpressionContext(context) {\n const { data, ...specialContextKeys } = context;\n\n return {\n ...specialContextKeys,\n ...data,\n ...wrapObjectKeysWithUnderscores(specialContextKeys),\n };\n}\n\n/**\n * Evaluate a string based on the expressionLanguage and context information.\n * If the string is not an expression, it is returned as is.\n *\n * @param {any} expressionLanguage - The expression language to use.\n * @param {string} value - The string to evaluate.\n * @param {Object} expressionContextInfo - The context information to use.\n * @returns {any} - Evaluated value or the original value if not an expression.\n */\nexport function runExpressionEvaluation(expressionLanguage, value, expressionContextInfo) {\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\n return expressionLanguage.evaluate(value, buildExpressionContext(expressionContextInfo));\n }\n return value;\n}\n","import { useService } from './useService.js';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext.js';\nimport { buildExpressionContext } from '../../util/expressions.js';\n\n/**\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\n *\n * @param {string | undefined} condition\n *\n * @returns {boolean} true if condition is met or no condition or condition checker exists\n */\nexport function useCondition(condition) {\n const conditionChecker = useService('conditionChecker', false);\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n return useMemo(() => {\n return conditionChecker ? conditionChecker.check(condition, buildExpressionContext(expressionContextInfo)) : null;\n }, [conditionChecker, condition, expressionContextInfo]);\n}\n","import { get, isObject, isString, isNil } from 'min-dash';\n\n/**\n * Returns the options data for the provided if they can be simply determined, ignoring expression defined options.\n *\n * @param {object} formField\n * @param {object} formData\n */\nfunction getSimpleOptionsData(formField, formData) {\n const { valuesExpression: optionsExpression, valuesKey: optionsKey, values: staticOptions } = formField;\n\n if (optionsExpression) {\n return null;\n }\n\n return optionsKey ? get(formData, [optionsKey]) : staticOptions;\n}\n\n/**\n * Normalizes the provided options data to a format that can be used by the select components.\n * If the options data is not valid, it is filtered out.\n *\n * @param {any[]} optionsData\n *\n * @returns {object[]}\n */\nfunction normalizeOptionsData(optionsData) {\n return optionsData\n .filter(_isAllowedValue)\n .map(_normalizeOption)\n .filter((o) => !isNil(o));\n}\n\n/**\n * Creates an options object with default values if no options are provided.\n *\n * @param {object} options\n *\n * @returns {object}\n */\nfunction createEmptyOptions(options = {}) {\n const defaults = {};\n\n // provide default options if valuesKey and valuesExpression are not set\n if (!options.valuesKey && !options.valuesExpression) {\n defaults.values = [\n {\n label: 'Value',\n value: 'value',\n },\n ];\n }\n\n return {\n ...defaults,\n ...options,\n };\n}\n\n/**\n * Converts the provided option to a normalized format.\n * If the option is not valid, null is returned.\n *\n * @param {object} option\n * @param {string} option.label\n * @param {*} option.value\n *\n * @returns\n */\nfunction _normalizeOption(option) {\n // (1) simple primitive case, use it as both label and value\n if (_isAllowedPrimitive(option)) {\n return { value: option, label: `${option}` };\n }\n\n if (isObject(option)) {\n const isValidLabel = _isValidLabel(option.label);\n\n // (2) no label provided, but value is a simple primitive, use it as label and value\n if (!isValidLabel && _isAllowedPrimitive(option.value)) {\n return { value: option.value, label: `${option.value}` };\n }\n\n // (3) both label and value are provided, use them as is\n if (isValidLabel && _isAllowedValue(option.value)) {\n return option;\n }\n }\n\n return null;\n}\n\nfunction _isAllowedPrimitive(value) {\n const isAllowedPrimitiveType = ['number', 'string', 'boolean'].includes(typeof value);\n const isValid = value || value === 0 || value === false;\n\n return isAllowedPrimitiveType && isValid;\n}\n\nfunction _isValidLabel(label) {\n return label && isString(label);\n}\n\nfunction _isAllowedValue(value) {\n if (isObject(value)) {\n return Object.keys(value).length > 0;\n }\n\n return _isAllowedPrimitive(value);\n}\n\nexport { getSimpleOptionsData, normalizeOptionsData, createEmptyOptions };\n","import { useService } from './useService';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { runExpressionEvaluation } from '../../util/expressions';\n\n/**\n * Evaluate a string reactively based on the expressionLanguage and form data.\n * If the string is not an expression, it is returned as is.\n * The function is memoized to minimize re-renders.\n *\n * @param {string} value - The string to evaluate.\n * @returns {any} - Evaluated value or the original value if not an expression.\n */\nexport function useExpressionEvaluation(value) {\n const expressionLanguage = useService('expressionLanguage');\n const expressionContextInfo = useContext(LocalExpressionContext);\n return useMemo(\n () => runExpressionEvaluation(expressionLanguage, value, expressionContextInfo),\n [expressionLanguage, expressionContextInfo, value],\n );\n}\n","import { useRef } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\n\n/**\n * A custom hook to manage state changes with deep comparison.\n *\n * @template T\n * @param {T} value - The current value to manage.\n * @returns {T} - Returns the current state.\n */\nexport function useDeepCompareMemoize(value) {\n /** @type {import(\"preact\").RefObject<T>} */\n const ref = useRef();\n\n if (!isEqual(value, ref.current)) {\n ref.current = value;\n }\n\n return ref.current;\n}\n","import { useMemo } from 'preact/hooks';\nimport { normalizeOptionsData } from '../components/util/optionsUtil';\nimport { useExpressionEvaluation } from './useExpressionEvaluation';\nimport { useDeepCompareMemoize } from './useDeepCompareMemoize';\nimport { useService } from './useService';\n\n/**\n * @enum { String }\n */\nexport const LOAD_STATES = {\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error',\n};\n\n/**\n * @typedef {Object} OptionsGetter\n * @property {Object[]} options - The options data\n * @property {(LOAD_STATES)} loadState - The options data's loading state, to use for conditional rendering\n */\n\n/**\n * A hook to load options for single and multiselect components.\n *\n * @param {Object} field - The form field to handle options for\n * @return {OptionsGetter} optionsGetter - A options getter object providing loading state and options\n */\nexport function useOptionsAsync(field) {\n const { valuesExpression: optionsExpression, valuesKey: optionsKey, values: staticOptions } = field;\n\n const initialData = useService('form')._getState().initialData;\n const expressionEvaluation = useExpressionEvaluation(optionsExpression);\n const evaluatedOptions = useDeepCompareMemoize(expressionEvaluation || []);\n\n const optionsGetter = useMemo(() => {\n let options = [];\n\n // dynamic options\n if (optionsKey !== undefined) {\n const keyedOptions = (initialData || {})[optionsKey];\n if (keyedOptions && Array.isArray(keyedOptions)) {\n options = keyedOptions;\n }\n\n // static options\n } else if (staticOptions !== undefined) {\n options = Array.isArray(staticOptions) ? staticOptions : [];\n\n // expression\n } else if (optionsExpression && evaluatedOptions && Array.isArray(evaluatedOptions)) {\n options = evaluatedOptions;\n\n // error case\n } else {\n return buildErrorState('No options source defined in the form definition');\n }\n\n // normalize data to support primitives and partially defined objects\n return buildLoadedState(normalizeOptionsData(options));\n }, [optionsKey, staticOptions, initialData, optionsExpression, evaluatedOptions]);\n\n return optionsGetter;\n}\n\nconst buildErrorState = (error) => ({ options: [], error, loadState: LOAD_STATES.ERROR });\n\nconst buildLoadedState = (options) => ({ options, error: undefined, loadState: LOAD_STATES.LOADED });\n","import { useMemo } from 'preact/hooks';\nimport DOMPurify from 'dompurify';\n\n/**\n * Wrap HTML content in a configuration object for dangerouslySetInnerHTML\n * @param {Object} props\n * @param {string} props.html\n * @param {Function} [props.transform]\n * @param {boolean} [props.sanitize = true]\n * @param {boolean} [props.sanitizeStyleTags = true]\n */\nconst useDangerousHTMLWrapper = (props) => {\n const { html, transform = (html) => html, sanitize = true, sanitizeStyleTags = true } = props;\n\n const sanitizedHtml = useMemo(\n () => (sanitize ? DOMPurify.sanitize(html, getDOMPurifyConfig(sanitizeStyleTags)) : html),\n [html, sanitize, sanitizeStyleTags],\n );\n const transformedHtml = useMemo(() => transform(sanitizedHtml), [sanitizedHtml, transform]);\n\n // Return the configuration object for dangerouslySetInnerHTML\n return { __html: transformedHtml };\n};\n\nconst getDOMPurifyConfig = (sanitizeStyleTags) => {\n return {\n FORCE_BODY: true,\n FORBID_TAGS: sanitizeStyleTags ? ['style'] : [],\n };\n};\n\nexport { useDangerousHTMLWrapper };\n","import { get } from 'min-dash';\nimport { SECURITY_ATTRIBUTES_DEFINITIONS, SANDBOX_ATTRIBUTE } from '../../util/constants';\nimport { useMemo } from 'preact/hooks';\nimport { useDeepCompareMemoize } from './useDeepCompareMemoize';\n\n/**\n * A custom hook to build up security attributes from form configuration.\n *\n * @param {Object} security - The security configuration.\n * @returns {Array} - Returns a tuple with sandbox and allow attributes.\n */\nexport function useSecurityAttributesMap(security) {\n const securityMemoized = useDeepCompareMemoize(security);\n\n const sandbox = useMemo(\n () =>\n SECURITY_ATTRIBUTES_DEFINITIONS.filter(({ attribute }) => attribute === SANDBOX_ATTRIBUTE)\n .filter(({ property }) => get(securityMemoized, [property], false))\n .map(({ directive }) => directive)\n .join(' '),\n [securityMemoized],\n );\n\n const allow = useMemo(\n () =>\n SECURITY_ATTRIBUTES_DEFINITIONS.filter(({ attribute }) => attribute !== SANDBOX_ATTRIBUTE)\n .filter(({ property }) => get(securityMemoized, [property], false))\n .map(({ directive }) => directive)\n .join('; '),\n [securityMemoized],\n );\n\n return [sandbox, allow];\n}\n","import { useCallback, useMemo } from 'preact/hooks';\nimport { isObject } from 'min-dash';\n\n/**\n * This hook allows us to retrieve the label from a value in linear time by caching it in a map\n * @param {Array} options\n */\nexport function useGetLabelCorrelation(options) {\n // This allows us to retrieve the label from a value in linear time\n const labelMap = useMemo(\n () => Object.assign({}, ...options.map((o) => ({ [_getValueHash(o.value)]: o.label }))),\n [options],\n );\n return useCallback((value) => labelMap[_getValueHash(value)], [labelMap]);\n}\n\nconst _getValueHash = (value) => {\n return isObject(value) ? JSON.stringify(value) : value;\n};\n","/**\n * Wrap CSS styles with a given prefix.\n *\n * @param {HTMLElement} rootNode\n * @param {string} prefix\n *\n * @returns {HTMLElement}\n */\nfunction wrapCSSStyles(rootNode, prefix) {\n const styleTags = rootNode.querySelectorAll('style');\n styleTags.forEach((styleTag) => {\n const topLevelRules = extractTopLevelRules(styleTag.textContent);\n const scopedCss = topLevelRules\n .map((rule) => {\n const { selector, styles } = splitRule(rule);\n const scopedSelector = scopeSelector(selector, prefix);\n return `${scopedSelector} ${styles}`;\n })\n .join(' ');\n styleTag.textContent = scopedCss;\n });\n\n return rootNode;\n}\n\nfunction extractTopLevelRules(cssString) {\n let cursor = 0;\n let start = 0;\n let level = 0;\n const topLevelRules = [];\n\n while (cursor < cssString.length) {\n if (cssString[cursor] === '{') {\n level++;\n }\n\n if (cssString[cursor] === '}') {\n level--;\n if (level === 0) {\n topLevelRules.push(cssString.substring(start, cursor + 1));\n start = cursor + 1;\n }\n }\n\n cursor++;\n }\n\n return topLevelRules.map((rule) => rule.trim());\n}\n\nfunction splitRule(rule) {\n const firstBracket = rule.indexOf('{');\n const selector = rule.substring(0, firstBracket);\n const styles = rule.substring(firstBracket);\n return { selector, styles };\n}\n\nfunction scopeSelector(selector, prefix) {\n return selector\n .split(',')\n .map((sel) => `${prefix} ${sel.trim()}`)\n .join(', ');\n}\n\nfunction getScrollContainer(el) {\n while (el && el !== document.body && el !== document.documentElement) {\n if (_isElementScrollable(el)) {\n return el;\n }\n el = el.parentElement;\n }\n\n if (_isElementScrollable(document.body)) {\n return document.body;\n } else if (_isElementScrollable(document.documentElement)) {\n return document.documentElement;\n }\n\n return null;\n}\n\nfunction _isElementScrollable(el) {\n const style = window.getComputedStyle(el);\n const overflowY = style.overflowY || style.overflow;\n\n return (overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight;\n}\n\nexport { wrapCSSStyles, getScrollContainer };\n","import { some } from 'min-dash';\nimport { useEffect } from 'preact/hooks';\nimport { getScrollContainer } from '../components/util/domUtil';\n\nconst EMPTY_OBJECT = {};\nconst EMPTY_ARRAY = [];\n\n/**\n * Custom hook to scroll an element within a scrollable container.\n *\n * @param {Object} scrolledElementRef - A ref pointing to the DOM element to scroll into view.\n * @param {Array} deps - An array of dependencies that trigger the effect.\n * @param {Object} [scrollOptions={}] - Options defining the behavior of the scrolling.\n * @param {String} [scrollOptions.align='center'] - The alignment of the element within the viewport.\n * @param {String} [scrollOptions.behavior='auto'] - The scrolling behavior.\n * @param {Number} [scrollOptions.offset=0] - An offset that is added to the scroll position.\n * @param {Boolean} [scrollOptions.scrollIfVisible=false] - Whether to scroll even if the element is visible.\n * @param {Array} [flagRefs] - An array of refs that are used as flags to control when to scroll.\n */\nexport function useScrollIntoView(scrolledElementRef, deps, scrollOptions, flagRefs) {\n const _scrollOptions = scrollOptions || EMPTY_OBJECT;\n const _flagRefs = flagRefs || EMPTY_ARRAY;\n\n useEffect(() => {\n // return early if flags are not raised, or component is not mounted\n if (some(_flagRefs, (ref) => !ref.current) || !scrolledElementRef.current) {\n return;\n }\n\n for (let i = 0; i < _flagRefs.length; i++) {\n _flagRefs[i].current = false;\n }\n\n const itemToBeScrolled = scrolledElementRef.current;\n const scrollContainer = getScrollContainer(itemToBeScrolled);\n\n if (!scrollContainer) {\n return;\n }\n\n const itemRect = itemToBeScrolled.getBoundingClientRect();\n const containerRect = scrollContainer.getBoundingClientRect();\n\n const { align = 'center', offset = 0, behavior = 'auto', scrollIfVisible = false } = _scrollOptions;\n\n const shouldScroll =\n scrollIfVisible || !(itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom);\n\n if (!shouldScroll) {\n return;\n }\n\n const topOffset = _getTopOffset(itemToBeScrolled, scrollContainer, { align, offset });\n scrollContainer.scroll({ top: topOffset, behavior });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n// helper //////////////////////\n\nfunction _getTopOffset(item, scrollContainer, options) {\n const itemRect = item.getBoundingClientRect();\n const containerRect = scrollContainer.getBoundingClientRect();\n\n if (options.align === 'top') {\n return itemRect.top - containerRect.top + scrollContainer.scrollTop - options.offset;\n } else if (options.align === 'bottom') {\n return (\n itemRect.bottom - containerRect.top - scrollContainer.clientHeight + scrollContainer.scrollTop + options.offset\n );\n } else if (options.align === 'center') {\n return (\n itemRect.top -\n containerRect.top -\n scrollContainer.clientHeight / 2 +\n scrollContainer.scrollTop +\n itemRect.height / 2 +\n options.offset\n );\n }\n\n return 0;\n}\n","import { useService } from './useService.js';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Returns the conditionally filtered data of a form reactively.\n * Memoised to minimize re-renders\n *\n * Warning: costly operation, use with care\n */\nexport function useFilteredFormData() {\n const { initialData, data } = useService('form')._getState();\n const conditionChecker = useService('conditionChecker', false);\n\n return useMemo(() => {\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\n return { ...initialData, ...newData };\n }, [conditionChecker, data, initialData]);\n}\n","import { useEffect } from 'preact/hooks';\n\nexport function useKeyDownAction(targetKey, action, listenerElement = window) {\n function downHandler({ key }) {\n if (key === targetKey) {\n action();\n }\n }\n\n useEffect(() => {\n listenerElement.addEventListener('keydown', downHandler);\n\n return () => {\n listenerElement.removeEventListener('keydown', downHandler);\n };\n });\n}\n","import { buildExpressionContext } from '../../util/expressions.js';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext.js';\nimport { useService } from './useService.js';\nimport { useContext } from 'preact/hooks';\n\n/**\n * Retrieve readonly value of a form field, given it can be an\n * expression optionally or configured globally.\n *\n * @typedef { import('../../types').FormProperties } FormProperties\n *\n * @param {any} formField\n * @param {FormProperties} properties\n *\n * @returns {boolean}\n */\nexport function useReadonly(formField, properties = {}) {\n const expressionLanguage = useService('expressionLanguage');\n const conditionChecker = useService('conditionChecker', false);\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n const { readonly } = formField;\n\n if (properties.readOnly) {\n return true;\n }\n\n if (expressionLanguage && expressionLanguage.isExpression(readonly)) {\n return conditionChecker ? conditionChecker.check(readonly, buildExpressionContext(expressionContextInfo)) : false;\n }\n\n return readonly || false;\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nexport function usePrevious(value, defaultValue = null) {\n const ref = useRef(defaultValue);\n\n useEffect(() => (ref.current = value), [value]);\n\n return ref.current;\n}\n","import { useCallback, useRef } from 'preact/hooks';\nimport { useService } from './useService';\n\nexport function useFlushDebounce(func) {\n const timeoutRef = useRef(null);\n const lastArgsRef = useRef(null);\n\n const config = useService('config', false);\n const debounce = config && config.debounce;\n const shouldDebounce = debounce !== false && debounce !== 0;\n const delay = typeof debounce === 'number' ? debounce : 300;\n\n const debounceFunc = useCallback(\n (...args) => {\n if (!shouldDebounce) {\n func(...args);\n return;\n }\n\n lastArgsRef.current = args;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n func(...lastArgsRef.current);\n lastArgsRef.current = null;\n }, delay);\n },\n [func, delay, shouldDebounce],\n );\n\n const flushFunc = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n if (lastArgsRef.current !== null) {\n func(...lastArgsRef.current);\n lastArgsRef.current = null;\n }\n timeoutRef.current = null;\n }\n }, [func]);\n\n return [debounceFunc, flushFunc];\n}\n","import { useService } from './useService';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\nimport { buildExpressionContext } from '../../util/expressions';\n\n/**\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\n * Memoised to minimize re-renders\n *\n * @param {string} value\n * @param {Object} options\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.sanitizer]\n * @param {Function} [options.buildDebugString]\n *\n */\nexport function useTemplateEvaluation(value, options = {}) {\n const templating = useService('templating');\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n return useMemo(() => {\n if (templating && templating.isTemplate(value)) {\n return templating.evaluate(value, buildExpressionContext(expressionContextInfo), options);\n }\n return value;\n }, [templating, value, expressionContextInfo, options]);\n}\n","import { useTemplateEvaluation } from './useTemplateEvaluation';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\n * If the string contains multiple lines, only the first line is returned.\n * Memoised to minimize re-renders\n *\n * @param {string} value\n * @param {Object} [options]\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.buildDebugString]\n *\n */\nexport function useSingleLineTemplateEvaluation(value, options = {}) {\n const evaluatedTemplate = useTemplateEvaluation(value, options);\n return useMemo(() => evaluatedTemplate && evaluatedTemplate.split('\\n')[0], [evaluatedTemplate]);\n}\n","import { isNumber } from 'min-dash';\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\nimport { DateTime as LuxonDateTime } from 'luxon';\n\nexport const ENTER_KEYDOWN_EVENT = new KeyboardEvent('keydown', {\n code: 'Enter',\n key: 'Enter',\n charCode: 13,\n keyCode: 13,\n bubbles: true,\n});\n\nexport function focusRelevantFlatpickerDay(flatpickrInstance) {\n if (!flatpickrInstance) return;\n\n !flatpickrInstance.isOpen && flatpickrInstance.open();\n\n const container = flatpickrInstance.calendarContainer;\n const dayToFocus =\n container.querySelector('.flatpickr-day.selected') ||\n container.querySelector('.flatpickr-day.today') ||\n container.querySelector('.flatpickr-day');\n\n dayToFocus && dayToFocus.focus();\n}\n\nexport function formatTime(use24h, minutes) {\n if (minutes === null) return null;\n\n const wrappedMinutes = minutes % (24 * 60);\n\n const minute = minutes % 60;\n let hour = Math.floor(wrappedMinutes / 60);\n\n if (use24h) {\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute);\n }\n\n hour = hour % 12 || 12;\n\n const isPM = wrappedMinutes >= 12 * 60;\n\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute) + ' ' + (isPM ? 'PM' : 'AM');\n}\n\nexport function parseInputTime(stringTime) {\n let workingString = stringTime.toLowerCase();\n const is12h = workingString.includes('am') || workingString.includes('pm');\n\n if (is12h) {\n const isPM = workingString.includes('pm');\n const digits = workingString.match(/\\d+/g);\n const displayHour = parseInt(digits && digits[0]);\n const minute = parseInt(digits && digits[1]) || 0;\n\n const isValidDisplayHour = isNumber(displayHour) && displayHour >= 1 && displayHour <= 12;\n const isValidMinute = minute >= 0 && minute <= 59;\n\n if (!isValidDisplayHour || !isValidMinute) return null;\n\n const hour = (displayHour % 12) + (isPM ? 12 : 0);\n\n return hour * 60 + minute;\n } else {\n const digits = workingString.match(/\\d+/g);\n const hour = parseInt(digits && digits[0]);\n const minute = parseInt(digits && digits[1]);\n\n const isValidHour = isNumber(hour) && hour >= 0 && hour <= 23;\n const isValidMinute = isNumber(minute) && minute >= 0 && minute <= 59;\n\n if (!isValidHour || !isValidMinute) return null;\n\n return hour * 60 + minute;\n }\n}\n\nexport function serializeTime(minutes, offset, timeSerializingFormat) {\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n return (\n _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) +\n ':' +\n _getZeroPaddedString(normalizedMinutes % 60) +\n 'Z'\n );\n }\n\n const baseTime = _getZeroPaddedString(Math.floor(minutes / 60)) + ':' + _getZeroPaddedString(minutes % 60);\n const addUTCOffset = timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_OFFSET;\n\n return baseTime + (addUTCOffset ? formatTimezoneOffset(offset) : '');\n}\n\nexport function parseIsoTime(isoTimeString) {\n if (!isoTimeString) return null;\n\n const parseBasicMinutes = (timeString) => {\n const timeSegments = timeString.split(':');\n const hour = parseInt(timeSegments[0]);\n const minute = timeSegments.length > 1 ? parseInt(timeSegments[1]) : 0;\n if (isNaN(hour) || hour < 0 || hour > 24 || isNaN(minute) || minute < 0 || minute > 60) return null;\n return hour * 60 + minute;\n };\n\n const localOffset = new Date().getTimezoneOffset();\n\n // Parse normalized time\n if (isoTimeString.includes('Z')) {\n isoTimeString = isoTimeString.replace('Z', '');\n const minutes = parseBasicMinutes(isoTimeString);\n if (minutes === null) return null;\n return (minutes - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Parse offset positive time\n else if (isoTimeString.includes('+')) {\n const [timeString, offsetString] = isoTimeString.split('+');\n\n const minutes = parseBasicMinutes(timeString);\n let inboundOffset = parseBasicMinutes(offsetString);\n\n if (minutes === null || inboundOffset === null) return null;\n\n // The offset is flipped for consistency with javascript\n inboundOffset = -inboundOffset;\n\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Parse offset negative time\n else if (isoTimeString.includes('-')) {\n const [timeString, offsetString] = isoTimeString.split('-');\n\n const minutes = parseBasicMinutes(timeString);\n let inboundOffset = parseBasicMinutes(offsetString);\n\n if (minutes === null || inboundOffset === null) return null;\n\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Default to local parsing\n else {\n return parseBasicMinutes(isoTimeString);\n }\n}\n\n/**\n * Returns the date object as a simple 'YYYY-MM-DD' formatted date in the local timezone.\n *\n * @param {*} date The date object to serialize.\n * @returns {string} The serialized date.\n */\nexport function serializeDate(date) {\n return LuxonDateTime.fromJSDate(date).toISODate();\n}\n// this method is used to make the `new Date(value)` parsing behavior stricter\nexport function isDateTimeInputInformationSufficient(value) {\n if (!value || typeof value !== 'string') return false;\n\n const segments = value.split('T');\n if (segments.length != 2) return false;\n\n const dateNumbers = segments[0].split('-');\n if (dateNumbers.length != 3) return false;\n\n return true;\n}\n\n// this method checks if the date isn't a datetime, or a partial date\nexport function isDateInputInformationMatching(value) {\n if (!value || typeof value !== 'string') return false;\n\n if (value.includes('T')) return false;\n\n const dateNumbers = value.split('-');\n if (dateNumbers.length != 3) return false;\n\n return true;\n}\n\nexport function serializeDateTime(date, time, timeSerializingFormat) {\n const workingDate = new Date();\n workingDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n workingDate.setHours(Math.floor(time / 60), time % 60, 0, 0);\n\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n const timezoneOffsetMinutes = workingDate.getTimezoneOffset();\n const dayOffset = time + timezoneOffsetMinutes < 0 ? -1 : time + timezoneOffsetMinutes > MINUTES_IN_DAY ? 1 : 0;\n\n // Apply the date rollover pre-emptively\n workingDate.setHours(workingDate.getHours() + dayOffset * 24);\n }\n\n return serializeDate(workingDate) + 'T' + serializeTime(time, workingDate.getTimezoneOffset(), timeSerializingFormat);\n}\n\nexport function formatTimezoneOffset(minutes) {\n return _getSignedPaddedHours(minutes) + ':' + _getZeroPaddedString(Math.abs(minutes % 60));\n}\n\nexport function isInvalidDateString(value) {\n return isNaN(new Date(Date.parse(value)).getTime());\n}\n\nexport function getNullDateTime() {\n return {\n date: new Date(Date.parse(null)),\n time: null,\n };\n}\n\nexport function isValidDate(date) {\n return date && !isNaN(date.getTime());\n}\n\nexport function isValidTime(time) {\n return !isNaN(parseInt(time));\n}\n\nfunction _getSignedPaddedHours(minutes) {\n if (minutes > 0) {\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\n } else {\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\n }\n}\n\nfunction _getZeroPaddedString(time) {\n return time.toString().padStart(2, '0');\n}\n","import isEqual from 'lodash/isEqual';\nimport { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport {\n isDateInputInformationMatching,\n isDateTimeInputInformationSufficient,\n isInvalidDateString,\n parseIsoTime,\n} from './dateTimeUtil';\nimport { getSimpleOptionsData, normalizeOptionsData } from './optionsUtil';\n\nconst ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape\nconst ALLOWED_IFRAME_SRC_PATTERN = /^(https):\\/\\/*/i; // eslint-disable-line no-useless-escape\n\nexport function sanitizeDateTimePickerValue(options) {\n const { formField, value } = options;\n\n const { subtype } = formField;\n\n if (typeof value !== 'string') return null;\n\n if (subtype === DATETIME_SUBTYPES.DATE && (isInvalidDateString(value) || !isDateInputInformationMatching(value)))\n return null;\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\n if (\n subtype === DATETIME_SUBTYPES.DATETIME &&\n (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))\n )\n return null;\n\n return value;\n}\n\nexport function hasEqualValue(value, array) {\n if (!Array.isArray(array)) {\n return false;\n }\n\n return array.some((element) => isEqual(value, element));\n}\n\nexport function sanitizeSingleSelectValue(options) {\n const { formField, data, value } = options;\n\n const { valuesExpression: optionsExpression } = formField;\n\n try {\n // if options are expression evaluated, we don't need to sanitize the value against the options\n // and defer to the field's internal validation\n if (optionsExpression) {\n return value;\n }\n\n const validValues = normalizeOptionsData(getSimpleOptionsData(formField, data)).map((v) => v.value);\n return hasEqualValue(value, validValues) ? value : null;\n } catch (error) {\n // use default value in case of formatting error\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\n return null;\n }\n}\n\nexport function sanitizeMultiSelectValue(options) {\n const { formField, data, value } = options;\n\n const { valuesExpression: optionsExpression } = formField;\n\n try {\n // if options are expression evaluated, we don't need to sanitize the values against the options\n // and defer to the field's internal validation\n if (optionsExpression) {\n return value;\n }\n\n const validValues = normalizeOptionsData(getSimpleOptionsData(formField, data)).map((v) => v.value);\n return value.filter((v) => hasEqualValue(v, validValues));\n } catch (error) {\n // use default value in case of formatting error\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\n return [];\n }\n}\n\n/**\n * Sanitizes an image source to ensure we only allow for data URI and links\n * that start with http(s).\n *\n * Note: Most browsers anyway do not support script execution in <img> elements.\n *\n * @param {string} src\n * @returns {string}\n */\nexport function sanitizeImageSource(src) {\n const valid = ALLOWED_IMAGE_SRC_PATTERN.test(src);\n\n return valid ? src : '';\n}\n\n/**\n * Sanitizes an iframe source to ensure we only allow for links\n * that start with http(s).\n *\n * @param {string} src\n * @returns {string}\n */\nexport function sanitizeIFrameSource(src) {\n const valid = ALLOWED_IFRAME_SRC_PATTERN.test(src);\n\n return valid ? src : '';\n}\n\n/**\n * Escapes HTML and returns pure text.\n * @param {string} html\n * @returns {string}\n */\nexport function escapeHTML(html) {\n const escapeMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#039;',\n '{': '&#123;',\n '}': '&#125;',\n ':': '&#58;',\n ';': '&#59;',\n };\n\n return html.replace(/[&<>\"'{};:]/g, (match) => escapeMap[match]);\n}\n","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\n\nexport function useCleanupSingleSelectValue(props) {\n const { field, options, loadState, onChange, value } = props;\n\n // Ensures that the value is always one of the possible options\n useEffect(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return;\n }\n\n const optionValues = options.map((o) => o.value);\n const hasValueNotInOptions = value && !hasEqualValue(value, optionValues);\n\n if (hasValueNotInOptions) {\n onChange({\n field,\n value: null,\n });\n }\n }, [field, options, onChange, value, loadState]);\n}\n","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\nimport { useDeepCompareMemoize } from './useDeepCompareMemoize';\n\nexport function useCleanupMultiSelectValue(props) {\n const { field, options, loadState, onChange, values } = props;\n\n const memoizedValues = useDeepCompareMemoize(values || []);\n\n // ensures that the values are always a subset of the possible options\n useEffect(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return;\n }\n\n const optionValues = options.map((o) => o.value);\n const hasValuesNotInOptions = memoizedValues.some((v) => !hasEqualValue(v, optionValues));\n\n if (hasValuesNotInOptions) {\n onChange({\n field,\n value: memoizedValues.filter((v) => hasEqualValue(v, optionValues)),\n });\n }\n }, [field, options, onChange, memoizedValues, loadState]);\n}\n","import { formFieldClasses } from '../Util';\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\n\nconst type = 'button';\n\nexport function Button(props) {\n const { disabled, onFocus, onBlur, field } = props;\n\n const { action = 'submit' } = field;\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(field.label || '', { debug: true });\n\n return (\n <div class={formFieldClasses(type)}>\n <button\n class=\"fjs-button\"\n type={action}\n disabled={disabled}\n onFocus={() => onFocus && onFocus()}\n onBlur={() => onBlur && onBlur()}>\n {evaluatedLabel}\n </button>\n </div>\n );\n}\n\nButton.config = {\n type,\n keyed: false,\n name: 'Button',\n group: 'action',\n create: (options = {}) => ({\n label: 'Button',\n action: 'submit',\n ...options,\n }),\n};\n","import { useSingleLineTemplateEvaluation } from '../hooks';\n\nexport function Description(props) {\n const { description, id } = props;\n\n const evaluatedDescription = useSingleLineTemplateEvaluation(description || '', { debug: true });\n\n if (!evaluatedDescription) {\n return null;\n }\n\n return (\n <div id={id} class=\"fjs-form-field-description\">\n {evaluatedDescription}\n </div>\n );\n}\n","export function Errors(props) {\n const { errors, id } = props;\n\n if (!errors.length) {\n return null;\n }\n\n return (\n <div class=\"fjs-form-field-error\" aria-live=\"polite\" id={id}>\n <ul>\n {errors.map((error) => {\n return <li>{error}</li>;\n })}\n </ul>\n </div>\n );\n}\n","import classNames from 'classnames';\n\nimport { useSingleLineTemplateEvaluation } from '../hooks';\n\n/**\n * @typedef Props\n * @property {string|undefined} [id]\n * @property {string|undefined} [htmlFor]\n * @property {string|undefined} label\n * @property {string} [class]\n * @property {boolean} [collapseOnEmpty]\n * @property {boolean} [required]\n * @property {import(\"preact\").VNode} [children]\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function Label(props) {\n const { id, htmlFor, label, collapseOnEmpty = true, required = false } = props;\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(label || '', { debug: true });\n\n return (\n <label\n id={id}\n for={htmlFor}\n class={classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class'])}>\n {props.children}\n {evaluatedLabel}\n {required && (\n <span class=\"fjs-asterix\" aria-hidden>\n *\n </span>\n )}\n </label>\n );\n}\n","import { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { formFieldClasses } from '../Util';\n\nimport classNames from 'classnames';\n\nconst type = 'checkbox';\n\nexport function Checkbox(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = false } = props;\n\n const { description, label, validate = {} } = field;\n\n const { required } = validate;\n\n const onChange = ({ target }) => {\n props.onChange({\n value: target.checked,\n });\n };\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value })}>\n <div class=\"fjs-inline-label\">\n <input\n checked={value}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={domId}\n type=\"checkbox\"\n onChange={onChange}\n onBlur={() => onBlur && onBlur()}\n onFocus={() => onFocus && onFocus()}\n required={required}\n aria-invalid={errors.length > 0}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n />\n <Label htmlFor={domId} label={label} required={required} />\n </div>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nCheckbox.config = {\n type,\n keyed: true,\n name: 'Checkbox',\n group: 'selection',\n emptyValue: false,\n sanitizeValue: ({ value }) => value === true,\n create: (options = {}) => ({\n label: 'Checkbox',\n ...options,\n }),\n};\n","import { useRef } from 'preact/hooks';\nimport { useOptionsAsync, LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport { useCleanupMultiSelectValue } from '../../hooks/useCleanupMultiSelectValue';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'checklist';\n\nexport function Checklist(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value: values = [] } = props;\n\n const { description, label, validate = {} } = field;\n\n /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const toggleCheckbox = (toggledValue) => {\n const newValues = hasEqualValue(toggledValue, values)\n ? values.filter((value) => !isEqual(value, toggledValue))\n : [...values, toggledValue];\n\n props.onChange({\n value: newValues,\n });\n };\n\n const onCheckboxBlur = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n };\n\n const onCheckboxFocus = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n };\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupMultiSelectValue({\n field,\n loadState,\n options,\n values,\n onChange: props.onChange,\n });\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={classNames(formFieldClasses(type, { errors, disabled, readonly }))} ref={outerDivRef}>\n <Label label={label} required={required} />\n {loadState == LOAD_STATES.LOADED &&\n options.map((option, index) => {\n const itemDomId = `${domId}-${index}`;\n const isChecked = hasEqualValue(option.value, values);\n\n return (\n <div\n className={classNames('fjs-inline-label', {\n 'fjs-checked': isChecked,\n })}\n key={option.value}>\n <input\n checked={isChecked}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={itemDomId}\n type=\"checkbox\"\n onClick={() => toggleCheckbox(option.value)}\n onBlur={onCheckboxBlur}\n onFocus={onCheckboxFocus}\n required={required}\n aria-invalid={errors.length > 0}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n />\n <Label htmlFor={itemDomId} label={option.label} required={false} />\n </div>\n );\n })}\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nChecklist.config = {\n type,\n keyed: true,\n name: 'Checkbox group',\n group: 'selection',\n emptyValue: [],\n sanitizeValue: sanitizeMultiSelectValue,\n create: (options = {}) => ({\n label: 'Checkbox group',\n ...createEmptyOptions(options),\n }),\n};\n","import { useCallback, useContext, useEffect, useMemo, useState } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\n\nimport { get } from 'min-dash';\n\nimport { FormContext, FormRenderContext, LocalExpressionContext } from '../context';\n\nimport { useCondition, useReadonly, useService } from '../hooks';\n\nimport { gridColumnClasses, prefixId } from './Util';\n\nconst noop = () => false;\n\nexport function FormField(props) {\n const { field, indexes, onChange: _onChange } = props;\n\n const formFields = useService('formFields'),\n viewerCommands = useService('viewerCommands', false),\n formFieldInstanceRegistry = useService('formFieldInstanceRegistry', false),\n pathRegistry = useService('pathRegistry'),\n eventBus = useService('eventBus'),\n form = useService('form');\n\n const { initialData, data, errors, properties } = form._getState();\n\n const { Element, Hidden, Column } = useContext(FormRenderContext);\n\n const { formId } = useContext(FormContext);\n\n // track whether we should trigger initial validation on certain actions, e.g. field blur\n // disabled straight away, if viewerCommands are not available\n const [initialValidationTrigger, setInitialValidationTrigger] = useState(!!viewerCommands);\n\n const FormFieldComponent = formFields.get(field.type);\n\n if (!FormFieldComponent) {\n throw new Error(`cannot render field <${field.type}>`);\n }\n\n const fieldConfig = FormFieldComponent.config;\n\n const localExpressionContext = useContext(LocalExpressionContext);\n const valuePath = useMemo(() => pathRegistry.getValuePath(field, { indexes }), [field, indexes, pathRegistry]);\n\n const initialValue = useMemo(() => get(initialData, valuePath), [initialData, valuePath]);\n\n const readonly = useReadonly(field, properties);\n\n const value = get(data, valuePath);\n\n // add precedence: global readonly > form field disabled\n const disabled = !properties.readOnly && (properties.disabled || field.disabled || false);\n\n const hidden = useCondition((field.conditional && field.conditional.hide) || null);\n\n const fieldInstance = useMemo(\n () => ({\n id: field.id,\n expressionContextInfo: localExpressionContext,\n valuePath,\n indexes,\n }),\n [field.id, valuePath, localExpressionContext, indexes],\n );\n\n // register form field instance\n useEffect(() => {\n if (formFieldInstanceRegistry && !hidden) {\n const instanceId = formFieldInstanceRegistry.add(fieldInstance);\n\n return () => {\n formFieldInstanceRegistry.remove(instanceId);\n };\n }\n }, [fieldInstance, formFieldInstanceRegistry, hidden]);\n\n // ensures the initial validation behavior can be re-triggered upon form reset\n useEffect(() => {\n if (!viewerCommands) {\n return;\n }\n\n const resetValidation = () => {\n setInitialValidationTrigger(true);\n };\n\n eventBus.on('import.done', resetValidation);\n eventBus.on('reset', resetValidation);\n\n return () => {\n eventBus.off('import.done', resetValidation);\n eventBus.off('reset', resetValidation);\n };\n }, [eventBus, viewerCommands]);\n\n useEffect(() => {\n const hasInitialValue = initialValue && !isEqual(initialValue, []);\n\n if (initialValidationTrigger && hasInitialValue) {\n setInitialValidationTrigger(false);\n viewerCommands.updateFieldInstanceValidation(fieldInstance, initialValue);\n }\n }, [fieldInstance, initialValidationTrigger, initialValue, viewerCommands]);\n\n const onBlur = useCallback(() => {\n const value = get(data, valuePath);\n\n if (initialValidationTrigger) {\n setInitialValidationTrigger(false);\n viewerCommands.updateFieldInstanceValidation(fieldInstance, value);\n }\n\n eventBus.fire('formField.blur', { formField: field });\n }, [data, eventBus, field, fieldInstance, initialValidationTrigger, valuePath, viewerCommands]);\n\n const onFocus = useCallback(() => {\n eventBus.fire('formField.focus', { formField: field });\n }, [eventBus, field]);\n\n const onChange = useCallback(\n (update) => {\n setInitialValidationTrigger(false);\n _onChange({ field, indexes, fieldInstance, ...update });\n },\n [_onChange, field, fieldInstance, indexes],\n );\n\n if (hidden) {\n return <Hidden field={field} />;\n }\n\n const domId = `${prefixId(field.id, formId, indexes)}`;\n const fieldErrors = get(errors, [field.id, ...Object.values(indexes || {})]) || [];\n\n const formFieldElement = (\n <FormFieldComponent\n {...props}\n disabled={disabled}\n errors={fieldErrors}\n domId={domId}\n onChange={disabled || readonly ? noop : onChange}\n onBlur={disabled || readonly ? noop : onBlur}\n onFocus={disabled || readonly ? noop : onFocus}\n readonly={readonly}\n value={value}\n fieldInstance={fieldInstance}\n />\n );\n\n if (fieldConfig.escapeGridRender) {\n return formFieldElement;\n }\n\n return (\n <Column field={field} class={gridColumnClasses(field)}>\n <Element class=\"fjs-element\" field={field}>\n {formFieldElement}\n </Element>\n </Column>\n );\n}\n","import { useContext, useState } from 'preact/hooks';\n\nimport { useService } from '../../../hooks/useService';\n\nimport { FormField } from '../../FormField';\n\nimport { FormRenderContext } from '../../../context';\n\nexport function ChildrenRenderer(props) {\n const { Children } = useContext(FormRenderContext);\n\n const { field, Empty } = props;\n\n const { id } = field;\n\n const repeatRenderManager = useService('repeatRenderManager', false);\n\n const isRepeating = repeatRenderManager && repeatRenderManager.isFieldRepeating(id);\n\n const Repeater = repeatRenderManager.Repeater;\n const RepeatFooter = repeatRenderManager.RepeatFooter;\n\n return isRepeating ? (\n <RepeatChildrenRenderer\n {...props}\n {...{ ChildrenRoot: Children, Empty, Repeater, RepeatFooter, repeatRenderManager }}\n />\n ) : (\n <SimpleChildrenRenderer {...props} {...{ ChildrenRoot: Children, Empty }} />\n );\n}\n\nfunction SimpleChildrenRenderer(props) {\n const { ChildrenRoot, Empty, field } = props;\n\n const { components = [] } = field;\n\n const isEmpty = !components.length;\n\n return (\n <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={field}>\n <RowsRenderer {...props} />\n {isEmpty ? <Empty field={field} /> : null}\n </ChildrenRoot>\n );\n}\n\nfunction RepeatChildrenRenderer(props) {\n const { ChildrenRoot, repeatRenderManager, Empty, field, ...restProps } = props;\n\n const { components = [] } = field;\n\n const useSharedState = useState({ isCollapsed: true });\n\n const Repeater = repeatRenderManager.Repeater;\n const RepeatFooter = repeatRenderManager.RepeatFooter;\n\n return (\n <>\n <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={field}>\n {Repeater ? (\n <Repeater {...{ ...restProps, useSharedState, field, RowsRenderer }} />\n ) : (\n <RowsRenderer {...{ ...restProps, field }} />\n )}\n {!components.length ? <Empty field={field} /> : null}\n </ChildrenRoot>\n {RepeatFooter ? <RepeatFooter {...{ ...restProps, useSharedState, field }} /> : null}\n </>\n );\n}\n\nfunction RowsRenderer(props) {\n const { field, indexes } = props;\n const { id: parentId, verticalAlignment = 'start' } = field;\n\n const formLayouter = useService('formLayouter');\n const formFieldRegistry = useService('formFieldRegistry');\n const rows = formLayouter.getRows(parentId);\n\n const { Row } = useContext(FormRenderContext);\n\n return (\n <>\n {' '}\n {rows.map((row) => {\n const { components = [] } = row;\n\n if (!components.length) {\n return null;\n }\n\n return (\n <Row row={row} class=\"fjs-layout-row cds--row\" style={{ alignItems: verticalAlignment }}>\n {components.map((childId) => {\n const childField = formFieldRegistry.get(childId);\n\n if (!childField) {\n return null;\n }\n\n return <FormField {...props} key={childId} field={childField} indexes={indexes} />;\n })}\n </Row>\n );\n })}{' '}\n </>\n );\n}\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function Default(props) {\n const { Empty } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return <ChildrenRenderer {...fullProps} />;\n}\n\nDefault.config = {\n type: 'default',\n keyed: false,\n label: null,\n group: null,\n create: (options = {}) => ({\n components: [],\n ...options,\n }),\n getSubheading: (field) => field.id,\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"15\" fill=\"none\" viewBox=\"0 0 28 30\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M19 2H9V0H7v2H2a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5V0h-2v2ZM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7Zm-5 4v17h24V11H2Z\" clip-rule=\"evenodd\"/></svg>","/**\n * Returns date format for the provided locale.\n * If the locale is not provided, uses the browser's locale.\n *\n * @param {string} [locale] - The locale to get date format for.\n * @returns {string} The date format for the locale.\n */\nexport function getLocaleDateFormat(locale = 'default') {\n const parts = new Intl.DateTimeFormat(locale).formatToParts(new Date(Date.UTC(2020, 5, 5)));\n return parts\n .map((part) => {\n const len = part.value.length;\n switch (part.type) {\n case 'day':\n return 'd'.repeat(len);\n case 'month':\n return 'M'.repeat(len);\n case 'year':\n return 'y'.repeat(len);\n default:\n return part.value;\n }\n })\n .join('');\n}\n\n/**\n * Returns readable date format for the provided locale.\n * If the locale is not provided, uses the browser's locale.\n *\n * @param {string} [locale] - The locale to get readable date format for.\n * @returns {string} The readable date format for the locale.\n */\nexport function getLocaleReadableDateFormat(locale) {\n let format = getLocaleDateFormat(locale).toLowerCase();\n\n // Ensure month is in 'mm' format\n if (!format.includes('mm')) {\n format = format.replace('m', 'mm');\n }\n\n // Ensure day is in 'dd' format\n if (!format.includes('dd')) {\n format = format.replace('d', 'dd');\n }\n\n return format;\n}\n\n/**\n * Returns flatpickr config for the provided locale.\n * If the locale is not provided, uses the browser's locale.\n *\n * @param {string} [locale] - The locale to get flatpickr config for.\n * @returns {object} The flatpickr config for the locale.\n */\nexport function getLocaleDateFlatpickrConfig(locale) {\n return flatpickerizeDateFormat(getLocaleDateFormat(locale));\n}\n\nfunction flatpickerizeDateFormat(dateFormat) {\n const useLeadingZero = {\n day: dateFormat.includes('dd'),\n month: dateFormat.includes('MM'),\n year: dateFormat.includes('yyyy'),\n };\n\n dateFormat = useLeadingZero.day ? dateFormat.replace('dd', 'd') : dateFormat.replace('d', 'j');\n dateFormat = useLeadingZero.month ? dateFormat.replace('MM', 'm') : dateFormat.replace('M', 'n');\n dateFormat = useLeadingZero.year ? dateFormat.replace('yyyy', 'Y') : dateFormat.replace('yy', 'y');\n\n return dateFormat;\n}\n","import classNames from 'classnames';\nimport { isString } from 'min-dash';\n\nexport function InputAdorner(props) {\n const { pre, post, rootRef, inputRef, children, disabled, readonly, hasErrors } = props;\n\n const onAdornmentClick = () => inputRef && inputRef.current && inputRef.current.focus();\n\n return (\n <div\n class={classNames(\n 'fjs-input-group',\n { 'fjs-disabled': disabled, 'fjs-readonly': readonly },\n { hasErrors: hasErrors },\n )}\n ref={rootRef}>\n {pre && (\n <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={onAdornmentClick}>\n {' '}\n {isString(pre) ? <span class=\"fjs-input-adornment-text\">{pre}</span> : pre}{' '}\n </span>\n )}\n {children}\n {post && (\n <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={onAdornmentClick}>\n {' '}\n {isString(post) ? <span class=\"fjs-input-adornment-text\">{post}</span> : post}{' '}\n </span>\n )}\n </div>\n );\n}\n","import flatpickr from 'flatpickr';\nimport CalendarIcon from '../icons/Calendar.svg';\n\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\nimport { getLocaleReadableDateFormat, getLocaleDateFlatpickrConfig } from '../../util/localisationUtil';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { useDeepCompareMemoize } from '../../../hooks';\n\nimport { InputAdorner } from './InputAdorner';\nimport { Label } from '../../Label';\n\nexport function Datepicker(props) {\n const {\n label,\n domId,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n required,\n disabled,\n disallowPassedDates,\n date: dateObject,\n readonly,\n setDate,\n } = props;\n\n /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n const dateInputRef = useRef();\n\n /** @type {import(\"preact\").RefObject<HTMLElement>} */\n const focusScopeRef = useRef();\n\n const [flatpickrInstance, setFlatpickrInstance] = useState(null);\n const [isInputDirty, setIsInputDirty] = useState(false);\n const [forceFocusCalendar, setForceFocusCalendar] = useState(false);\n\n // ensures we render based on date value instead of reference\n const date = useDeepCompareMemoize(dateObject);\n\n // shorts the date value back to the source\n useEffect(() => {\n if (!flatpickrInstance || !flatpickrInstance.config) return;\n\n flatpickrInstance.setDate(date, true);\n setIsInputDirty(false);\n }, [flatpickrInstance, date]);\n\n useEffect(() => {\n if (!forceFocusCalendar) return;\n\n focusRelevantFlatpickerDay(flatpickrInstance);\n setForceFocusCalendar(false);\n }, [flatpickrInstance, forceFocusCalendar]);\n\n // setup flatpickr instance\n useEffect(() => {\n let config = {\n allowInput: true,\n dateFormat: getLocaleDateFlatpickrConfig(),\n static: true,\n clickOpens: false,\n\n // TODO: support dates prior to 1900 (https://github.com/bpmn-io/form-js/issues/533)\n minDate: disallowPassedDates ? 'today' : '01/01/1900',\n errorHandler: () => {\n /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */\n },\n };\n\n const instance = flatpickr(dateInputRef.current, config);\n\n setFlatpickrInstance(instance);\n\n const onCalendarFocusOut = (e) => {\n if (!instance.calendarContainer.contains(e.relatedTarget) && e.relatedTarget != dateInputRef.current) {\n instance.close();\n }\n };\n\n // remove dirty tag to have mouse day selection prioritize input blur\n const onCalendarMouseDown = (e) => {\n if (e.target.classList.contains('flatpickr-day')) {\n setIsInputDirty(false);\n }\n };\n\n // when the dropdown of the datepickr opens, we register a few event handlers to re-implement some of the\n // flatpicker logic that was lost when setting allowInput to true\n instance.config.onOpen = [\n () => instance.calendarContainer.addEventListener('focusout', onCalendarFocusOut),\n () => instance.calendarContainer.addEventListener('mousedown', onCalendarMouseDown),\n ];\n\n instance.config.onClose = [\n () => instance.calendarContainer.removeEventListener('focusout', onCalendarFocusOut),\n () => instance.calendarContainer.removeEventListener('mousedown', onCalendarMouseDown),\n ];\n }, [disallowPassedDates]);\n\n // onChange is updated dynamically, so not to re-render the flatpicker every time it changes\n useEffect(() => {\n if (!flatpickrInstance || !flatpickrInstance.config) return;\n\n flatpickrInstance.config.onChange = [(date) => setDate(new Date(date)), () => setIsInputDirty(false)];\n }, [flatpickrInstance, setDate]);\n\n const onInputKeyDown = useCallback(\n (e) => {\n if (!flatpickrInstance) return;\n\n if (e.code === 'Escape') {\n flatpickrInstance.close();\n }\n\n if (e.code === 'ArrowDown') {\n if (isInputDirty) {\n // trigger an enter keypress to submit the new input, then focus calendar day on the next render cycle\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\n setIsInputDirty(false);\n setForceFocusCalendar(true);\n } else {\n // focus calendar day immediately\n focusRelevantFlatpickerDay(flatpickrInstance);\n }\n\n e.preventDefault();\n }\n\n if (e.code === 'Enter') {\n setIsInputDirty(false);\n }\n },\n [flatpickrInstance, isInputDirty],\n );\n\n const onInputFocus = useCallback(\n (e) => {\n if (!flatpickrInstance || focusScopeRef.current.contains(e.relatedTarget) || readonly) return;\n flatpickrInstance.open();\n onDateTimeFocus(e);\n },\n [flatpickrInstance, readonly, onDateTimeFocus],\n );\n\n // simulate an enter press on blur to make sure the date value is submitted in all scenarios\n const onInputBlur = useCallback(\n (e) => {\n const isFalseBlur = e.relatedTarget && e.relatedTarget.classList.contains('flatpickr-day');\n if (isFalseBlur) return;\n if (isInputDirty) {\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\n setIsInputDirty(false);\n }\n\n onDateTimeBlur(e);\n },\n [isInputDirty, onDateTimeBlur],\n );\n\n return (\n <div class=\"fjs-datetime-subsection\">\n <Label htmlFor={domId} label={label} collapseOnEmpty={collapseLabelOnEmpty} required={required} />\n <InputAdorner\n pre={<CalendarIcon />}\n disabled={disabled}\n readonly={readonly}\n rootRef={focusScopeRef}\n inputRef={dateInputRef}>\n <div class=\"fjs-datepicker\" style={{ width: '100%' }}>\n <input\n ref={dateInputRef}\n type=\"text\"\n id={domId}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n placeholder={getLocaleReadableDateFormat()}\n autoComplete=\"off\"\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n onKeyDown={onInputKeyDown}\n onMouseDown={() => !flatpickrInstance.isOpen && !readonly && flatpickrInstance.open()}\n onInput={() => setIsInputDirty(true)}\n data-input\n aria-describedby={props['aria-describedby']}\n />\n </div>\n </InputAdorner>\n </div>\n );\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 28 29\"><path fill=\"currentColor\" d=\"M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2v9.41Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.222 25.64A14 14 0 1 0 21.778 2.36 14 14 0 0 0 6.222 25.64ZM7.333 4.023a12 12 0 1 1 13.334 19.955A12 12 0 0 1 7.333 4.022Z\" clip-rule=\"evenodd\"/></svg>","import classNames from 'classnames';\nimport { useState, useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\nimport { useKeyDownAction } from '../../../hooks/useKeyDownAction';\n\nconst DEFAULT_LABEL_GETTER = (value) => value;\nconst NOOP = () => {};\n\nexport function DropdownList(props) {\n const {\n listenerElement = window,\n values = [],\n getLabel = DEFAULT_LABEL_GETTER,\n onValueSelected = NOOP,\n height = 235,\n emptyListMessage = 'No results',\n initialFocusIndex = 0,\n } = props;\n\n const [mouseControl, setMouseControl] = useState(false);\n const [focusedValueIndex, setFocusedValueIndex] = useState(initialFocusIndex);\n const [smoothScrolling, setSmoothScrolling] = useState(false);\n\n /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n const dropdownContainer = useRef();\n\n /** @type {import(\"preact\").RefObject<{ x: number, y: number }>} */\n const mouseScreenPos = useRef();\n\n const focusedItem = useMemo(() => (values.length ? values[focusedValueIndex] : null), [focusedValueIndex, values]);\n\n const changeFocusedValueIndex = useCallback(\n (delta) => {\n setFocusedValueIndex((x) => Math.min(Math.max(0, x + delta), values.length - 1));\n },\n [values.length],\n );\n\n useEffect(() => {\n if (focusedValueIndex === 0) return;\n\n if (!focusedValueIndex || !values.length) {\n setFocusedValueIndex(0);\n } else if (focusedValueIndex >= values.length) {\n setFocusedValueIndex(values.length - 1);\n }\n }, [focusedValueIndex, values.length]);\n\n useKeyDownAction(\n 'ArrowUp',\n () => {\n if (values.length) {\n changeFocusedValueIndex(-1);\n setMouseControl(false);\n }\n },\n listenerElement,\n );\n\n useKeyDownAction(\n 'ArrowDown',\n () => {\n if (values.length) {\n changeFocusedValueIndex(1);\n setMouseControl(false);\n }\n },\n listenerElement,\n );\n\n useKeyDownAction(\n 'Enter',\n () => {\n if (focusedItem) {\n onValueSelected(focusedItem);\n }\n },\n listenerElement,\n );\n\n useEffect(() => {\n const individualEntries = dropdownContainer.current.children;\n if (individualEntries.length && !mouseControl) {\n const focusedEntry = individualEntries[focusedValueIndex];\n focusedEntry && focusedEntry.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }, [focusedValueIndex, mouseControl]);\n\n useEffect(() => {\n setSmoothScrolling(true);\n }, []);\n\n const onMouseMovedInKeyboardMode = (event, valueIndex) => {\n const userMovedCursor =\n !mouseScreenPos.current ||\n (mouseScreenPos.current.x !== event.screenX && mouseScreenPos.current.y !== event.screenY);\n\n if (userMovedCursor) {\n mouseScreenPos.current = { x: event.screenX, y: event.screenY };\n setMouseControl(true);\n setFocusedValueIndex(valueIndex);\n }\n };\n\n return (\n <div\n ref={dropdownContainer}\n tabIndex={-1}\n class=\"fjs-dropdownlist\"\n onMouseDown={(e) => e.preventDefault()}\n style={{ maxHeight: height, scrollBehavior: smoothScrolling ? 'smooth' : 'auto' }}>\n {values.length > 0 &&\n values.map((v, i) => {\n return (\n <div\n class={classNames('fjs-dropdownlist-item', { focused: focusedValueIndex === i })}\n onMouseMove={mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, i)}\n onMouseEnter={mouseControl ? () => setFocusedValueIndex(i) : undefined}\n onMouseDown={(e) => onValueSelected(v)}>\n {getLabel(v)}\n </div>\n );\n })}\n {!values.length && <div class=\"fjs-dropdownlist-empty\">{emptyListMessage}</div>}\n </div>\n );\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\nimport { isNumber } from 'min-dash';\n\nimport ClockIcon from '../icons/Clock.svg';\nimport { DropdownList } from './DropdownList';\nimport { InputAdorner } from './InputAdorner';\nimport { Label } from '../../Label';\n\nexport function Timepicker(props) {\n const {\n label,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n domId,\n required,\n disabled,\n readonly,\n use24h = false,\n timeInterval,\n time,\n setTime,\n } = props;\n\n const safeTimeInterval = useMemo(() => {\n const allowedIntervals = [1, 5, 10, 15, 30, 60];\n\n if (allowedIntervals.includes(timeInterval)) {\n return timeInterval;\n }\n\n return 15;\n }, [timeInterval]);\n\n const timeInputRef = useRef();\n const [dropdownIsOpen, setDropdownIsOpen] = useState(false);\n const useDropdown = useMemo(() => safeTimeInterval !== 1, [safeTimeInterval]);\n\n const [rawValue, setRawValue] = useState('');\n\n // populates values from source\n useEffect(() => {\n if (time === null) {\n setRawValue('');\n return;\n }\n\n const intervalAdjustedTime = time - (time % safeTimeInterval);\n setRawValue(formatTime(use24h, intervalAdjustedTime));\n\n if (intervalAdjustedTime != time) {\n setTime(intervalAdjustedTime);\n }\n }, [time, setTime, use24h, safeTimeInterval]);\n\n const propagateRawToMinute = useCallback(\n (newRawValue) => {\n const localRawValue = newRawValue || rawValue;\n\n // If no raw value exists, set the minute to null\n if (!localRawValue) {\n setTime(null);\n return;\n }\n\n const minutes = parseInputTime(localRawValue);\n\n // If raw string couldn't be parsed, clean everything up\n if (!isNumber(minutes)) {\n setRawValue('');\n setTime(null);\n return;\n }\n\n // Enforce the minutes to match the timeInterval\n const correctedMinutes = minutes - (minutes % safeTimeInterval);\n\n // Enforce the raw text to be formatted properly\n setRawValue(formatTime(use24h, correctedMinutes));\n setTime(correctedMinutes);\n },\n [rawValue, safeTimeInterval, use24h, setTime],\n );\n\n const timeOptions = useMemo(() => {\n const minutesInDay = 24 * 60;\n const intervalCount = Math.floor(minutesInDay / safeTimeInterval);\n return [...Array(intervalCount).keys()].map((intervalIndex) =>\n formatTime(use24h, intervalIndex * safeTimeInterval),\n );\n }, [safeTimeInterval, use24h]);\n\n const initialFocusIndex = useMemo(() => {\n // if there are no options, there will not be any focusing\n if (!timeOptions || !safeTimeInterval) return null;\n\n // if there is a set minute value, we focus it in the dropdown\n if (time) return time / safeTimeInterval;\n\n const cacheTime = parseInputTime(rawValue);\n\n // if there is a valid value in the input cache, we try and focus close to it\n if (cacheTime) {\n const flooredCacheTime = cacheTime - (cacheTime % safeTimeInterval);\n return flooredCacheTime / safeTimeInterval;\n }\n\n // If there is no set value, simply focus the middle of the dropdown (12:00)\n return Math.floor(timeOptions.length / 2);\n }, [rawValue, time, safeTimeInterval, timeOptions]);\n\n const onInputKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n break;\n case 'ArrowDown':\n useDropdown && setDropdownIsOpen(true);\n e.preventDefault();\n break;\n case 'Escape':\n useDropdown && setDropdownIsOpen(false);\n break;\n case 'Enter':\n !dropdownIsOpen && propagateRawToMinute();\n break;\n }\n };\n\n const onInputBlur = (e) => {\n setDropdownIsOpen(false);\n propagateRawToMinute();\n onDateTimeBlur(e);\n };\n\n const onInputFocus = (e) => {\n onDateTimeFocus(e);\n !readonly && useDropdown && setDropdownIsOpen(true);\n };\n\n const onDropdownValueSelected = (value) => {\n setDropdownIsOpen(false);\n propagateRawToMinute(value);\n };\n\n return (\n <div class=\"fjs-datetime-subsection\">\n <Label htmlFor={domId} label={label} collapseOnEmpty={collapseLabelOnEmpty} required={required} />\n <InputAdorner pre={<ClockIcon />} inputRef={timeInputRef} disabled={disabled} readonly={readonly}>\n <div class=\"fjs-timepicker fjs-timepicker-anchor\">\n <input\n ref={timeInputRef}\n type=\"text\"\n id={domId}\n class=\"fjs-input\"\n value={rawValue}\n disabled={disabled}\n readOnly={readonly}\n placeholder={use24h ? 'hh:mm' : 'hh:mm --'}\n autoComplete=\"off\"\n onInput={(e) => {\n // @ts-expect-error\n setRawValue(e.target.value);\n useDropdown && setDropdownIsOpen(false);\n }}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n onClick={() => !readonly && useDropdown && setDropdownIsOpen(true)}\n onKeyDown={onInputKeyDown}\n data-input\n aria-describedby={props['aria-describedby']}\n />\n\n {dropdownIsOpen && (\n <DropdownList\n values={timeOptions}\n height={150}\n onValueSelected={onDropdownValueSelected}\n listenerElement={timeInputRef.current}\n initialFocusIndex={initialFocusIndex}\n />\n )}\n </div>\n </InputAdorner>\n </div>\n );\n}\n","import { useCallback, useContext, useMemo, useState, useEffect, useRef } from 'preact/hooks';\nimport { DateTime as LuxonDateTime } from 'luxon';\n\nimport classNames from 'classnames';\n\nimport { set } from 'min-dash';\n\nimport { FormContext } from '../../context';\n\nimport { DATETIME_SUBTYPES, DATETIME_SUBTYPE_PATH, DATE_LABEL_PATH } from '../../../util/constants/DatetimeConstants';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Datepicker } from './parts/Datepicker';\nimport { Timepicker } from './parts/Timepicker';\n\nimport { formFieldClasses, prefixId } from '../Util';\nimport { sanitizeDateTimePickerValue } from '../util/sanitizerUtil';\nimport {\n parseIsoTime,\n serializeDate,\n serializeDateTime,\n serializeTime,\n getNullDateTime,\n isValidDate,\n isValidTime,\n} from '../util/dateTimeUtil';\n\nconst type = 'datetime';\n\nexport function Datetime(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, onChange, readonly, value = '' } = props;\n\n const {\n description,\n id,\n dateLabel,\n timeLabel,\n validate = {},\n subtype,\n use24h,\n disallowPassedDates,\n timeInterval,\n timeSerializingFormat,\n } = field;\n\n const { required } = validate;\n const { formId } = useContext(FormContext);\n\n /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n const dateTimeGroupRef = useRef();\n\n const [dateTime, setDateTime] = useState(getNullDateTime());\n const [dateTimeUpdateRequest, setDateTimeUpdateRequest] = useState(null);\n\n const useDatePicker = useMemo(\n () => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME,\n [subtype],\n );\n const useTimePicker = useMemo(\n () => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME,\n [subtype],\n );\n\n const onDateTimeBlur = useCallback(\n (e) => {\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n },\n [onBlur],\n );\n\n const onDateTimeFocus = useCallback(\n (e) => {\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n },\n [onFocus],\n );\n\n useEffect(() => {\n let { date, time } = getNullDateTime();\n\n switch (subtype) {\n case DATETIME_SUBTYPES.DATE: {\n date = typeof value === 'string' ? LuxonDateTime.fromISO(value).toJSDate() : new Date(NaN);\n break;\n }\n case DATETIME_SUBTYPES.TIME: {\n time = parseIsoTime(value);\n break;\n }\n case DATETIME_SUBTYPES.DATETIME: {\n date = new Date(Date.parse(value));\n time = isValidDate(date) ? 60 * date.getHours() + date.getMinutes() : null;\n break;\n }\n }\n\n setDateTime({ date, time });\n }, [subtype, value]);\n\n const computeAndSetState = useCallback(\n ({ date, time }) => {\n let newDateTimeValue = null;\n\n if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\n newDateTimeValue = serializeDate(date);\n } else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\n newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\n } else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\n newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\n }\n\n if (value === newDateTimeValue) {\n return;\n }\n\n onChange({ value: newDateTimeValue, field });\n },\n [value, field, onChange, subtype, timeSerializingFormat],\n );\n\n useEffect(() => {\n if (dateTimeUpdateRequest) {\n if (dateTimeUpdateRequest.refreshOnly) {\n computeAndSetState(dateTime);\n } else {\n const newDateTime = { ...dateTime, ...dateTimeUpdateRequest };\n setDateTime(newDateTime);\n computeAndSetState(newDateTime);\n }\n setDateTimeUpdateRequest(null);\n }\n }, [computeAndSetState, dateTime, dateTimeUpdateRequest]);\n\n useEffect(() => {\n setDateTimeUpdateRequest({ refreshOnly: true });\n }, [timeSerializingFormat]);\n\n const allErrors = useMemo(() => {\n if (required || subtype !== DATETIME_SUBTYPES.DATETIME) return errors;\n const isOnlyOneFieldSet =\n (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) ||\n (!isValidDate(dateTime.date) && isValidTime(dateTime.time));\n return isOnlyOneFieldSet ? ['Date and time must both be entered.', ...errors] : errors;\n }, [required, subtype, dateTime, errors]);\n\n const setDate = useCallback((date) => {\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, date } : { date }));\n }, []);\n\n const setTime = useCallback((time) => {\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, time } : { time }));\n }, []);\n\n const errorMessageId = allErrors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n const descriptionId = `${prefixId(id, formId)}-description`;\n\n const datePickerProps = {\n label: dateLabel,\n collapseLabelOnEmpty: !timeLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n domId: `${domId}-date`,\n required,\n disabled,\n disallowPassedDates,\n date: dateTime.date,\n readonly,\n setDate,\n 'aria-describedby': [descriptionId, errorMessageId].join(' '),\n };\n\n const timePickerProps = {\n label: timeLabel,\n collapseLabelOnEmpty: !dateLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n domId: `${domId}-time`,\n required,\n disabled,\n readonly,\n use24h,\n timeInterval,\n time: dateTime.time,\n setTime,\n 'aria-describedby': [descriptionId, errorMessageId].join(' '),\n };\n\n return (\n <div class={formFieldClasses(type, { errors: allErrors, disabled, readonly })}>\n <div class={classNames('fjs-vertical-group')} ref={dateTimeGroupRef}>\n {useDatePicker && <Datepicker {...datePickerProps} />}\n {useTimePicker && useDatePicker && <div class=\"fjs-datetime-separator\" />}\n {useTimePicker && <Timepicker {...timePickerProps} />}\n </div>\n <Description id={descriptionId} description={description} />\n <Errors errors={allErrors} id={errorMessageId} />\n </div>\n );\n}\n\nDatetime.config = {\n type,\n keyed: true,\n name: 'Date time',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: sanitizeDateTimePickerValue,\n create: (options = {}, isNewField) => {\n const defaults = {};\n set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\n\n if (isNewField) {\n set(defaults, DATE_LABEL_PATH, 'Date');\n }\n\n return { ...defaults, ...options };\n },\n getSubheading: (field) => {\n return field.dateLabel || field.timeLabel;\n },\n};\n","import classNames from 'classnames';\nimport { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport { Label } from '../Label';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function Group(props) {\n const { field, domId } = props;\n const { label, type, showOutline } = field;\n const { Empty } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div\n className={classNames(formFieldClasses(type), 'fjs-form-field-grouplike', { 'fjs-outlined': showOutline })}\n role=\"group\"\n aria-labelledby={domId}>\n <Label id={domId} label={label} />\n <ChildrenRenderer {...fullProps} />\n </div>\n );\n}\n\nGroup.config = {\n type: 'group',\n pathed: true,\n name: 'Group',\n group: 'container',\n create: (options = {}) => ({\n label: 'Group',\n components: [],\n showOutline: true,\n ...options,\n }),\n};\n","import { useEffect, useMemo, useState } from 'preact/hooks';\n\nimport { useSingleLineTemplateEvaluation, useSecurityAttributesMap } from '../../hooks';\nimport { sanitizeIFrameSource } from '../util/sanitizerUtil';\n\nimport { Label } from '../Label';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'iframe';\n\nconst DEFAULT_HEIGHT = 300;\n\nexport function IFrame(props) {\n const { field, disabled, readonly, domId } = props;\n\n const { height = DEFAULT_HEIGHT, label, url, security = {} } = field;\n\n const evaluatedUrl = useSingleLineTemplateEvaluation(url, { debug: true });\n\n const safeUrl = useMemo(() => sanitizeIFrameSource(evaluatedUrl), [evaluatedUrl]);\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(label, { debug: true });\n\n const [sandbox, allow] = useSecurityAttributesMap(security);\n const [iframeRefresh, setIframeRefresh] = useState(0);\n\n // forces re-render of iframe when sandbox or allow attributes change, as browsers do not do it automatically\n useEffect(() => {\n setIframeRefresh((count) => count + 1);\n }, [sandbox, allow]);\n\n return (\n <div class={formFieldClasses(type, { disabled, readonly })}>\n <Label htmlFor={domId} label={evaluatedLabel} />\n {!evaluatedUrl && <IFramePlaceholder text=\"No content to show.\" />}\n {evaluatedUrl && safeUrl && (\n <iframe\n src={safeUrl}\n title={evaluatedLabel}\n height={height}\n class=\"fjs-iframe\"\n id={domId}\n sandbox={sandbox}\n key={'iframe-' + iframeRefresh}\n /* @Note: JSX HTML attributes do not include <allow> */\n {...{ allow }}\n />\n )}\n {evaluatedUrl && !safeUrl && <IFramePlaceholder text=\"External content couldn't be loaded.\" />}\n </div>\n );\n}\n\nfunction IFramePlaceholder(props) {\n const { text = 'iFrame' } = props;\n\n return (\n <div class=\"fjs-iframe-placeholder\">\n <p class=\"fjs-iframe-placeholder-text\">{text}</p>\n </div>\n );\n}\n\nIFrame.config = {\n type,\n keyed: false,\n name: 'iFrame',\n group: 'container',\n create: (options = {}) => ({\n label: 'iFrame',\n security: {\n allowScripts: true,\n },\n ...options,\n }),\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 17a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h36zm-9 8.889H18v2.222h18v-2.222z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M34 18H20a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V20a2 2 0 0 0-2-2zm-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23l-9 9z\"/></svg>","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.35 24.75H19V29.4H14.35V24.75ZM12.9358 23.3358C13.3109 22.9607 13.8196 22.75 14.35 22.75H19C19.5304 22.75 20.0391 22.9607 20.4142 23.3358C20.7893 23.7109 21 24.2196 21 24.75V29.4C21 29.9304 20.7893 30.4391 20.4142 30.8142C20.0391 31.1893 19.5304 31.4 19 31.4H14.35C13.8196 31.4 13.3109 31.1893 12.9358 30.8142C12.5607 30.4391 12.35 29.9304 12.35 29.4V24.75C12.35 24.2196 12.5607 23.7109 12.9358 23.3358ZM14.35 37.05H19V41.7H14.35V37.05ZM12.9358 35.6358C13.3109 35.2607 13.8196 35.05 14.35 35.05H19C19.5304 35.05 20.0391 35.2607 20.4142 35.6358C20.7893 36.0109 21 36.5196 21 37.05V41.7C21 42.2304 20.7893 42.7391 20.4142 43.1142C20.0391 43.4893 19.5304 43.7 19 43.7H14.35C13.8196 43.7 13.3109 43.4893 12.9358 43.1142C12.5607 42.7391 12.35 42.2304 12.35 41.7V37.05C12.35 36.5196 12.5607 36.0109 12.9358 35.6358ZM14.35 12.45H19V17.1H14.35V12.45ZM12.9358 11.0358C13.3109 10.6607 13.8196 10.45 14.35 10.45H19C19.5304 10.45 20.0391 10.6607 20.4142 11.0358C20.7893 11.4109 21 11.9196 21 12.45V17.1C21 17.6304 20.7893 18.1391 20.4142 18.5142C20.0391 18.8893 19.5304 19.1 19 19.1H14.35C13.8196 19.1 13.3109 18.8893 12.9358 18.5142C12.5607 18.1391 12.35 17.6304 12.35 17.1V12.45C12.35 11.9196 12.5607 11.4109 12.9358 11.0358ZM24.9429 26.0128C24.7554 26.2004 24.65 26.4547 24.65 26.7199V27.3699C24.65 27.6352 24.7554 27.8895 24.9429 28.077C25.1304 28.2646 25.3848 28.3699 25.65 28.3699H40.65C40.9152 28.3699 41.1696 28.2646 41.3571 28.077C41.5446 27.8895 41.65 27.6352 41.65 27.3699V26.7199C41.65 26.4547 41.5446 26.2004 41.3571 26.0128C41.1696 25.8253 40.9152 25.7199 40.65 25.7199H25.65C25.3848 25.7199 25.1304 25.8253 24.9429 26.0128ZM24.9429 38.3128C24.7554 38.5004 24.65 38.7547 24.65 39.0199V39.6699C24.65 39.9352 24.7554 40.1895 24.9429 40.377C25.1304 40.5646 25.3848 40.6699 25.65 40.6699H40.65C40.9152 40.6699 41.1696 40.5646 41.3571 40.377C41.5446 40.1895 41.65 39.9352 41.65 39.6699V39.0199C41.65 38.7547 41.5446 38.5004 41.3571 38.3128C41.1696 38.1253 40.9152 38.0199 40.65 38.0199H25.65C25.3848 38.0199 25.1304 38.1253 24.9429 38.3128ZM24.9429 13.7128C24.7554 13.9004 24.65 14.1547 24.65 14.4199V15.0699C24.65 15.3352 24.7554 15.5895 24.9429 15.777C25.1304 15.9646 25.3848 16.0699 25.65 16.0699H40.65C40.9152 16.0699 41.1696 15.9646 41.3571 15.777C41.5446 15.5895 41.65 15.3352 41.65 15.0699V14.4199C41.65 14.1547 41.5446 13.9004 41.3571 13.7128C41.1696 13.5253 40.9152 13.4199 40.65 13.4199H25.65C25.3848 13.4199 25.1304 13.5253 24.9429 13.7128Z\" fill=\"currentColor\"/>\n</svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 0 0-2.06 2.06v23.549a2.07 2.07 0 0 0 2.06 2.06h6.77v-1.766h-6.358a.707.707 0 0 1-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 0 1 .707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z\"/><path d=\"m35.13 37.603 1.237-1.237-3.468-3.475v-5.926h-1.754v6.654l3.984 3.984Z\"/><path fill-rule=\"evenodd\" d=\"M23.08 36.962a9.678 9.678 0 1 0 17.883-7.408 9.678 9.678 0 0 0-17.882 7.408Zm4.54-10.292a7.924 7.924 0 1 1 8.805 13.177A7.924 7.924 0 0 1 27.62 26.67Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36Zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1Z\"/><path d=\"M11 22a1 1 0 0 1 1-1h19a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H12a1 1 0 0 1-1-1V22Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\"><rect width=\"24\" height=\"4\" x=\"15\" y=\"17\" rx=\"1\"/><rect width=\"24\" height=\"4\" x=\"15\" y=\"25\" rx=\"1\"/><rect width=\"13\" height=\"4\" x=\"15\" y=\"33\" rx=\"1\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M4.05 42.132v1.164c0 .693.604 1.254 1.35 1.254h1.35v-2.507h-2.7v.09Zm0-2.328h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7V32.82h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656v.09h2.7V9.45H5.4c-.746 0-1.35.561-1.35 1.254v1.164Zm5.4-2.418v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V10.704c0-.693-.604-1.254-1.35-1.254h-1.35Zm2.7 4.746h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7V32.82Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656v-.09h-2.7v2.508h1.35c.746 0 1.35-.561 1.35-1.254v-1.164Zm-5.4 2.418v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-12 7h9l-4.5 6-4.5-6z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" d=\"M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM9 26h36v2H9v-2ZM22.293 33.707l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" d=\"M9 15v2h36v-2H9ZM9 37v2h36v-2H9ZM26.293 19.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM22.293 30.707l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795c.049.14.075.29.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096H2.7Zm2.7-2.507v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014V13.21H2.7v2.507h2.7Zm-2.7-5.014h1.852a1.346 1.346 0 0 1-.502.096h1.275v-.096H5.4V9.45c0 .156-.026.306-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45v1.254Zm5.175.096h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1-2.7v1.795a1.348 1.348 0 0 1-.075-.445v1.254h.075v.096h1.275c-.177 0-.347-.034-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35h-1.275Zm-.075 5.11v2.508h2.7V13.21h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7V23.24h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm2.7 5.014h-1.852c.155-.062.325-.096.502-.096h-1.275v.096H48.6v1.254c0-.156.026-.305.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35v-1.254Zm-5.175-.096h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7ZM16.2 17.55a4.05 4.05 0 0 1 4.05 4.05v1.35A4.05 4.05 0 0 1 16.2 27h-1.35a4.05 4.05 0 0 1-4.05-4.05V21.6a4.05 4.05 0 0 1 4.05-4.05h1.35Zm0 2.7h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35c0 .746.604 1.35 1.35 1.35h1.35a1.35 1.35 0 0 0 1.35-1.35V21.6a1.35 1.35 0 0 0-1.35-1.35Zm27 1.35a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35A4.05 4.05 0 0 0 29.7 27h9.45a4.05 4.05 0 0 0 4.05-4.05V21.6Zm-13.5-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35a1.35 1.35 0 0 1-1.35 1.35H29.7a1.35 1.35 0 0 1-1.35-1.35V21.6c0-.746.604-1.35 1.35-1.35ZM43.2 37.8a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35h2.7V37.8c0-.746.604-1.35 1.35-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35h2.7V37.8Zm-27-4.05a4.05 4.05 0 0 1 4.05 4.05v1.35h-2.7V37.8a1.35 1.35 0 0 0-1.35-1.35h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35h-2.7V37.8a4.05 4.05 0 0 1 4.05-4.05h1.35Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 0 1 2.4.14 3.42 3.42 0 0 1 1.41.55 3.47 3.47 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.63 3.63 0 0 1-1.09 1.4 3.89 3.89 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 0 0 1.1-.49 1.41 1.41 0 0 0 .41-1 1.49 1.49 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.69 1.69 0 0 0-.86-.62 9.28 9.28 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.09 7.09 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.31 5.31 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21z\"/></svg>","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M47.0082 12.15C48.6329 12.15 49.95 13.5106 49.95 15.189V38.811C49.95 40.4894 48.6329 41.85 47.0082 41.85H6.99194C5.36718 41.85 4.05005 40.4894 4.05005 38.811V15.189C4.05005 13.5106 5.36718 12.15 6.99194 12.15H47.0082ZM47.0082 14.176H6.99194C6.45035 14.176 6.01131 14.6295 6.01131 15.189V16.2H6.00755V18.9H6.01131V38.811C6.01131 39.3705 6.45035 39.824 6.99194 39.824H47.0082C47.5498 39.824 47.9888 39.3705 47.9888 38.811V18.9H47.9925V16.2H47.9888V15.189C47.9888 14.6295 47.5498 14.176 47.0082 14.176ZM14.9344 26.055V22.275H17.1282V31.725H14.9344V27.945H11.6438V31.725H9.45005V22.275H11.6438V26.055H14.9344ZM19.3219 24.165H21.5157V31.725H23.7094V24.165H25.9032V22.275H19.3219V24.165ZM33.5813 22.275H35.775V31.725H33.5813V25.11L31.936 28.89L30.2907 25.11V31.725H28.0969V22.275H30.2907L31.936 26.055L33.5813 22.275ZM37.9688 22.275H40.1625V29.835H44.55V31.725H37.9688V22.275Z\" fill=\"currentColor\"/>\n</svg>\n","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.78 16.2V22.95C12.78 24.5689 12.1447 26.0086 11.1621 27C12.1447 27.9914 12.78 29.4311 12.78 31.05V37.8H16.29V40.5H12.78C11.4912 40.5 10.44 39.2871 10.44 37.8V31.05C10.44 29.5629 9.38883 28.35 8.10001 28.35V25.65C9.38883 25.65 10.44 24.4371 10.44 22.95V16.2C10.44 14.7129 11.4912 13.5 12.78 13.5H16.29V16.2H12.78ZM43.56 16.2V22.95C43.56 24.4371 44.6112 25.65 45.9 25.65V28.35C44.6112 28.35 43.56 29.5629 43.56 31.05V37.8C43.56 39.2871 42.5088 40.5 41.22 40.5H37.71V37.8H41.22V31.05C41.22 29.4311 41.8553 27.9914 42.8379 27C41.8553 26.0086 41.22 24.5689 41.22 22.95V16.2H37.71V13.5H41.22C42.5088 13.5 43.56 14.7129 43.56 16.2ZM21.8005 34.5313C22.2674 34.1521 22.5869 33.5662 22.7589 32.7734L24.5467 24.4321H26.1317L26.5187 22.6053H24.9337L25.3392 20.7268H26.9242L27.3113 18.9H25.6894C24.8416 18.9 24.1842 19.0896 23.7173 19.4687C23.2627 19.8479 22.9494 20.4338 22.7774 21.2266L22.4825 22.6053H21.3398L20.9527 24.4321H22.0954L20.1971 33.2732H18.612L18.225 35.1H19.8469C20.6947 35.1 21.3459 34.9104 21.8005 34.5313ZM29.0479 26.8449L25.2512 31.6532H27.8499L29.9694 28.6372H30.1906L31.0752 31.6532H33.6739L31.9967 27.293L35.775 22.6053H33.1763L31.0568 25.5523H30.8356L29.951 22.6053H27.3523L29.0479 26.8449Z\" fill=\"currentcolor\"/>\r\n</svg>\r\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-32 4v10h-2V22h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1zm-1.136 15.5.849.849-6.364 6.364-.849-.849 6.364-6.364zm.264 3.5.849.849-2.828 2.828-.849-.849L44.128 34zM13 19v10h-2V19h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039h37.316Zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.768 8.768 0 0 1 39.825 27a8.768 8.768 0 0 1 8.775 8.775 8.768 8.768 0 0 1-8.775 8.775 8.768 8.768 0 0 1-8.775-8.775Zm12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161h-2.994Zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678h3.097Zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0c-.103 1.755-.413 3.303-.929 4.645 1.858-.826 3.304-2.58 3.923-4.645h-2.994Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z\" clip-rule=\"evenodd\"/><path fill-rule=\"evenodd\" d=\"M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2H15Zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73V15ZM15 39v-8.754c.06-.038.116-.083.168-.135l5.893-5.893 6.684 6.685a1.911 1.911 0 0 0 2.41.238l2.657-1.77 6.02 6.02c.052.051.108.097.168.135V39H15Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 54 54\"><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M42.545479 12.272741C43.901087 12.272741 45 13.371687 45 14.727295v24.545443c0 1.355609-1.098913 2.454521-2.454521 2.454521H11.454554C10.098946 41.727259 9 40.628347 9 39.272738V14.727295c0-1.355608 1.098946-2.454554 2.454554-2.454554zM27.818242 40.090875h14.727237c.451869 0 .818137-.366267.818137-.818137v-4.909042H27.818242Zm-1.636385-5.727179v5.727179H11.454554c-.451869 0-.818192-.366267-.818192-.818137v-4.909042zm1.636385-1.636385h15.545374v-5.727289H27.818242Zm-1.636385-5.727289v5.727289H10.636362v-5.727289zm1.636385-1.636384h15.545374v-5.72729H27.818242Zm-1.636385-5.72729v5.72729H10.636362v-5.72729z\" clip-rule=\"evenodd\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M17.55 41.175H27v2.362h-9.45a2.37 2.37 0 0 1-2.363-2.362v-28.35a2.37 2.37 0 0 1 2.363-2.363h11.813a1.074 1.074 0 0 1 .826.355l8.27 8.269a1.074 1.074 0 0 1 .353.826v5.907H36.45v-3.544h-7.088A2.37 2.37 0 0 1 27 19.912v-7.087h-9.45v28.35Zm18.427-21.263-6.614-6.615v6.615h6.614Zm4.253 18.664 3.308 3.308-1.654 1.653-3.308-3.307a6.35 6.35 0 0 1-3.307.945c-3.308 0-5.906-2.599-5.906-5.906 0-3.308 2.598-5.907 5.906-5.907 3.307 0 5.906 2.6 5.906 5.907a6.35 6.35 0 0 1-.945 3.307Zm-4.961-6.851c-2.008 0-3.544 1.536-3.544 3.544s1.536 3.543 3.544 3.543 3.544-1.535 3.544-3.543-1.536-3.544-3.544-3.544Z\" clip-rule=\"evenodd\"/></svg>","import ButtonIcon from './Button.svg';\nimport CheckboxIcon from './Checkbox.svg';\nimport ChecklistIcon from './Checklist.svg';\nimport DatetimeIcon from './Datetime.svg';\nimport TaglistIcon from './Taglist.svg';\nimport FormIcon from './Form.svg';\nimport ColumnsIcon from './Group.svg';\nimport NumberIcon from './Number.svg';\nimport RadioIcon from './Radio.svg';\nimport SelectIcon from './Select.svg';\nimport SeparatorIcon from './Separator.svg';\nimport SpacerIcon from './Spacer.svg';\nimport DynamicListIcon from './DynamicList.svg';\nimport TextIcon from './Text.svg';\nimport HTMLIcon from './HTML.svg';\nimport ExpressionFieldIcon from './ExpressionField.svg';\nimport TextfieldIcon from './Textfield.svg';\nimport TextareaIcon from './Textarea.svg';\nimport IFrameIcon from './IFrame.svg';\nimport ImageIcon from './Image.svg';\nimport GroupIcon from './Group.svg';\nimport TableIcon from './Table.svg';\nimport FilePickerIcon from './FilePicker.svg';\n\nexport const iconsByType = (type) => {\n return {\n button: ButtonIcon,\n checkbox: CheckboxIcon,\n checklist: ChecklistIcon,\n columns: ColumnsIcon,\n datetime: DatetimeIcon,\n group: GroupIcon,\n iframe: IFrameIcon,\n image: ImageIcon,\n number: NumberIcon,\n expression: ExpressionFieldIcon,\n radio: RadioIcon,\n select: SelectIcon,\n separator: SeparatorIcon,\n spacer: SpacerIcon,\n dynamiclist: DynamicListIcon,\n taglist: TaglistIcon,\n text: TextIcon,\n html: HTMLIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n table: TableIcon,\n filepicker: FilePickerIcon,\n default: FormIcon,\n }[type];\n};\n","import { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { iconsByType } from '../icons';\n\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\nimport { sanitizeImageSource } from '../util/sanitizerUtil';\n\nimport { formFieldClasses, prefixId } from '../Util';\n\nconst type = 'image';\n\nexport function Image(props) {\n const { field } = props;\n\n const { alt, id, source } = field;\n\n const Icon = iconsByType(field.type);\n\n const evaluatedImageSource = useSingleLineTemplateEvaluation(source, { debug: true });\n\n const safeSource = useMemo(() => sanitizeImageSource(evaluatedImageSource), [evaluatedImageSource]);\n\n const altText = useSingleLineTemplateEvaluation(alt, { debug: true });\n\n const { formId } = useContext(FormContext);\n\n return (\n <div class={formFieldClasses(type)}>\n {safeSource && (\n <div class=\"fjs-image-container\">\n <img alt={altText} src={safeSource} class=\"fjs-image\" id={prefixId(id, formId)} />\n </div>\n )}\n {!safeSource && (\n <div class=\"fjs-image-placeholder\">\n <span class=\"fjs-image-placeholder-inner\">\n <Icon alt=\"This is an image placeholder\" width=\"32\" height=\"32\" viewBox=\"0 0 56 56\" />\n </span>\n </div>\n )}\n </div>\n );\n}\n\nImage.config = {\n type,\n keyed: false,\n name: 'Image view',\n group: 'presentation',\n create: (options = {}) => options,\n getSubheading: (field) => field.alt,\n};\n","import { InputAdorner } from './InputAdorner';\n\nimport { useSingleLineTemplateEvaluation } from '../../../hooks';\n\nexport function TemplatedInputAdorner(props) {\n const { pre, post } = props;\n\n const evaluatedPre = useSingleLineTemplateEvaluation(pre, { debug: true });\n const evaluatedPost = useSingleLineTemplateEvaluation(post, { debug: true });\n\n return <InputAdorner {...props} pre={evaluatedPre} post={evaluatedPost} />;\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M7.75 1.336 4 6.125.258 1.335 0 1.54l4 5.125L8 1.54Zm0 0\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M7.75 6.664 4 1.875.258 6.665 0 6.46l4-5.125L8 6.46Zm0 0\" clip-rule=\"evenodd\"/></svg>","import Big from 'big.js';\n\nexport function countDecimals(number) {\n const num = Big(number);\n if (num.toString() === num.toFixed(0)) return 0;\n return num.toFixed().split('.')[1].length || 0;\n}\n\nexport function isValidNumber(value) {\n return (typeof value === 'number' || typeof value === 'string') && value !== '' && !isNaN(Number(value));\n}\n\nexport function willKeyProduceValidNumber(key, previousValue, caretIndex, selectionWidth, decimalDigits) {\n if (previousValue === 'NaN') {\n return false;\n }\n\n // Dot and comma are both treated as dot\n previousValue = previousValue.replace(',', '.');\n const isFirstDot = !previousValue.includes('.') && (key === '.' || key === ',');\n const isFirstMinus = !previousValue.includes('-') && key === '-' && caretIndex === 0;\n\n const keypressIsNumeric = /^[0-9]$/i.test(key);\n const dotIndex = previousValue === undefined ? -1 : previousValue.indexOf('.');\n\n // If the caret is positioned after a dot, and the current decimal digits count is equal or greater to the maximum, disallow the key press\n const overflowsDecimalSpace =\n typeof decimalDigits === 'number' &&\n selectionWidth === 0 &&\n dotIndex !== -1 &&\n previousValue.includes('.') &&\n previousValue.split('.')[1].length >= decimalDigits &&\n caretIndex > dotIndex;\n\n const keypressIsAllowedChar = keypressIsNumeric || (decimalDigits !== 0 && isFirstDot) || isFirstMinus;\n\n return keypressIsAllowedChar && !overflowsDecimalSpace;\n}\n\nexport function isNullEquivalentValue(value) {\n return value === undefined || value === null || value === '';\n}\n","import Big from 'big.js';\nimport classNames from 'classnames';\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport { useFlushDebounce, usePrevious } from '../../hooks';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { TemplatedInputAdorner } from './parts/TemplatedInputAdorner';\n\nimport AngelDownIcon from './icons/AngelDown.svg';\nimport AngelUpIcon from './icons/AngelUp.svg';\n\nimport { formFieldClasses } from '../Util';\n\nimport { isNullEquivalentValue, isValidNumber, willKeyProduceValidNumber } from '../util/numberFieldUtil';\n\nconst type = 'number';\n\nexport function Numberfield(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, value, readonly } = props;\n\n const { description, label, appearance = {}, validate = {}, decimalDigits, increment: incrementValue } = field;\n\n const { prefixAdorner, suffixAdorner } = appearance;\n\n const { required } = validate;\n\n /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n const inputRef = useRef();\n\n const [cachedValue, setCachedValue] = useState(value);\n const [displayValue, setDisplayValue] = useState(value);\n\n const sanitize = useCallback((value) => Numberfield.config.sanitizeValue({ value, formField: field }), [field]);\n\n const [debouncedOnChange, flushOnChange] = useFlushDebounce(props.onChange);\n\n const previousCachedValue = usePrevious(value);\n\n if (previousCachedValue !== cachedValue) {\n debouncedOnChange({ field, value: cachedValue });\n }\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n // all value changes must go through this function\n const setValue = useCallback(\n (stringValue) => {\n if (isNullEquivalentValue(stringValue)) {\n setDisplayValue('');\n setCachedValue(null);\n return;\n }\n\n // converts automatically for countries where the comma is used as a decimal separator\n stringValue = stringValue.replaceAll(',', '.');\n\n if (stringValue === '-') {\n setDisplayValue('-');\n return;\n }\n\n // provides feedback for invalid numbers entered via pasting as opposed to just ignoring the paste\n if (isNaN(Number(stringValue))) {\n setDisplayValue('NaN');\n setCachedValue(null);\n return;\n }\n\n setDisplayValue(stringValue);\n setCachedValue(sanitize(stringValue));\n },\n [sanitize],\n );\n\n // when external changes occur independently of the input, we update the display and cache values of the component\n const previousValue = usePrevious(value);\n const outerValueChanged = previousValue != value;\n const outerValueEqualsCache = sanitize(value) === sanitize(cachedValue);\n\n if (outerValueChanged && !outerValueEqualsCache) {\n setValue((value && value.toString()) || '');\n }\n\n // caches the value an increment/decrement operation will be based on\n const incrementAmount = useMemo(() => {\n if (incrementValue) return Big(incrementValue);\n if (decimalDigits) return Big(`1e-${decimalDigits}`);\n return Big('1');\n }, [decimalDigits, incrementValue]);\n\n const increment = () => {\n if (readonly) {\n return;\n }\n\n const base = isValidNumber(cachedValue) ? Big(cachedValue) : Big(0);\n const stepFlooredValue = base.minus(base.mod(incrementAmount));\n\n // note: toFixed() behaves differently in big.js\n setValue(stepFlooredValue.plus(incrementAmount).toFixed());\n };\n\n const decrement = () => {\n if (readonly) {\n return;\n }\n\n const base = isValidNumber(cachedValue) ? Big(cachedValue) : Big(0);\n const offset = base.mod(incrementAmount);\n\n if (offset.cmp(0) === 0) {\n // if we're already on a valid step, decrement\n setValue(base.minus(incrementAmount).toFixed());\n } else {\n // otherwise floor to the step\n const stepFlooredValue = base.minus(base.mod(incrementAmount));\n setValue(stepFlooredValue.toFixed());\n }\n };\n\n const onKeyDown = (e) => {\n // delete the NaN state all at once on backspace or delete\n if (displayValue === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\n setValue('');\n e.preventDefault();\n return;\n }\n\n if (e.code === 'ArrowUp') {\n increment();\n e.preventDefault();\n return;\n }\n\n if (e.code === 'ArrowDown') {\n decrement();\n e.preventDefault();\n return;\n }\n };\n\n // intercept key presses which would lead to an invalid number\n const onKeyPress = (e) => {\n const caretIndex = inputRef.current.selectionStart;\n const selectionWidth = inputRef.current.selectionStart - inputRef.current.selectionEnd;\n const previousValue = inputRef.current.value;\n\n if (!willKeyProduceValidNumber(e.key, previousValue, caretIndex, selectionWidth, decimalDigits)) {\n e.preventDefault();\n }\n };\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <TemplatedInputAdorner disabled={disabled} readonly={readonly} pre={prefixAdorner} post={suffixAdorner}>\n <div\n class={classNames(\n 'fjs-vertical-group',\n { 'fjs-disabled': disabled, 'fjs-readonly': readonly },\n { hasErrors: errors.length },\n )}>\n <input\n ref={inputRef}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={domId}\n onKeyDown={onKeyDown}\n onKeyPress={onKeyPress}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n // @ts-ignore\n onInput={(e) => setValue(e.target.value, true)}\n onPaste={(e) => displayValue === 'NaN' && e.preventDefault()}\n type=\"text\"\n autoComplete=\"off\"\n step={incrementAmount}\n value={displayValue}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n <div class={classNames('fjs-number-arrow-container', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}>\n {/* we're disabling tab navigation on both buttons to imitate the native browser behavior of input[type='number'] increment arrows */}\n <button\n type=\"button\"\n class=\"fjs-number-arrow-up\"\n aria-label=\"Increment\"\n onClick={() => increment()}\n tabIndex={-1}>\n <AngelUpIcon />\n </button>\n <div class=\"fjs-number-arrow-separator\" />\n <button\n type=\"button\"\n class=\"fjs-number-arrow-down\"\n aria-label=\"Decrement\"\n onClick={() => decrement()}\n tabIndex={-1}>\n <AngelDownIcon />\n </button>\n </div>\n </div>\n </TemplatedInputAdorner>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nNumberfield.config = {\n type,\n keyed: true,\n name: 'Number',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: ({ value, formField }) => {\n // invalid value types are sanitized to null\n if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;\n\n // otherwise, we return a string or a number depending on the form field configuration\n return formField.serializeToString ? value.toString() : Number(value);\n },\n create: (options = {}) => ({\n label: 'Number',\n ...options,\n }),\n};\n","import { useRef } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\nimport { useOptionsAsync, LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport { useCleanupSingleSelectValue } from '../../hooks/useCleanupSingleSelectValue';\nimport classNames from 'classnames';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'radio';\n\nexport function Radio(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value } = props;\n\n const { description, label, validate = {} } = field;\n\n /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const onChange = (v) => {\n props.onChange({\n value: v,\n });\n };\n\n const onRadioBlur = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n };\n\n const onRadioFocus = (e) => {\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n };\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange,\n });\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })} ref={outerDivRef}>\n <Label label={label} required={required} />\n {loadState == LOAD_STATES.LOADED &&\n options.map((option, index) => {\n const itemDomId = `${domId}-${index}`;\n const isChecked = isEqual(option.value, value);\n\n return (\n <div\n className={classNames('fjs-inline-label', {\n 'fjs-checked': isChecked,\n })}\n key={option.value}>\n <input\n checked={isChecked}\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n name={domId}\n id={itemDomId}\n type=\"radio\"\n onClick={() => onChange(option.value)}\n onBlur={onRadioBlur}\n onFocus={onRadioFocus}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n <Label\n htmlFor={itemDomId}\n label={option.label}\n class={classNames({ 'fjs-checked': isChecked })}\n required={false}\n />\n </div>\n );\n })}\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nRadio.config = {\n type,\n keyed: true,\n name: 'Radio group',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: (options = {}) => ({\n label: 'Radio group',\n ...createEmptyOptions(options),\n }),\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M4 3.766 7.43.336l.234.234L4.234 4l3.43 3.43-.234.234L4 4.234.57 7.664.336 7.43 3.766 4 .336.57.57.336Zm0 0\" clip-rule=\"evenodd\"/></svg>","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useOptionsAsync, LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\nimport { useService, useCleanupSingleSelectValue } from '../../../hooks';\n\nimport classNames from 'classnames';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\nimport { DropdownList } from './DropdownList';\n\nexport function SearchableSelect(props) {\n const { domId, disabled, errors, onBlur, onFocus, field, readonly, value } = props;\n\n const [filter, setFilter] = useState('');\n const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n const [isFilterActive, setIsFilterActive] = useState(true);\n const [isEscapeClosed, setIsEscapeClose] = useState(false);\n\n /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n const searchbarRef = useRef();\n const eventBus = useService('eventBus');\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange,\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const label = useMemo(() => value && getLabelCorrelation(value), [value, getLabelCorrelation]);\n\n // whenever we change the underlying value, set the label to it\n useEffect(() => {\n setFilter(label || '');\n }, [label]);\n\n const filteredOptions = useMemo(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return [];\n }\n\n if (!filter || !isFilterActive) {\n return options;\n }\n\n return options.filter(\n (option) => option.label && option.value && option.label.toLowerCase().includes(filter.toLowerCase()),\n );\n }, [filter, loadState, options, isFilterActive]);\n\n const pickOption = useCallback(\n (option) => {\n setFilter((option && option.label) || '');\n props.onChange({ value: (option && option.value) || null });\n },\n [props],\n );\n\n const displayState = useMemo(() => {\n const ds = {};\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded && !isEscapeClosed;\n return ds;\n }, [disabled, isDropdownExpanded, isEscapeClosed, loadState, readonly, value]);\n\n const onAngelMouseDown = useCallback(\n (e) => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(!isDropdownExpanded);\n\n const searchbar = searchbarRef.current;\n isDropdownExpanded ? searchbar.blur() : searchbar.focus();\n\n e.preventDefault();\n },\n [isDropdownExpanded],\n );\n\n const onInputChange = ({ target }) => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n setIsFilterActive(true);\n setFilter(target.value || '');\n eventBus.fire('formField.search', { formField: field, value: target.value || '' });\n };\n\n const onInputKeyDown = useCallback(\n (keyDownEvent) => {\n switch (keyDownEvent.key) {\n case 'ArrowUp':\n keyDownEvent.preventDefault();\n break;\n case 'ArrowDown': {\n if (!isDropdownExpanded) {\n setIsDropdownExpanded(true);\n setIsFilterActive(false);\n }\n\n keyDownEvent.preventDefault();\n break;\n }\n case 'Escape':\n setIsEscapeClose(true);\n break;\n case 'Enter':\n if (isEscapeClosed) {\n setIsEscapeClose(false);\n }\n break;\n }\n },\n [isDropdownExpanded, isEscapeClosed],\n );\n\n const onInputMouseDown = useCallback(() => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n setIsFilterActive(false);\n }, []);\n\n const onInputFocus = useCallback(() => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n onFocus && onFocus();\n }, [onFocus]);\n\n const onInputBlur = useCallback(() => {\n setIsDropdownExpanded(false);\n setFilter(label || '');\n onBlur && onBlur();\n }, [onBlur, label]);\n\n return (\n <>\n <div\n class={classNames('fjs-input-group', { disabled: disabled, readonly: readonly }, { hasErrors: errors.length })}>\n <input\n disabled={disabled}\n readOnly={readonly}\n class=\"fjs-input\"\n ref={searchbarRef}\n id={domId}\n onChange={onInputChange}\n type=\"text\"\n value={filter}\n placeholder={'Search'}\n autoComplete=\"off\"\n onKeyDown={onInputKeyDown}\n onMouseDown={onInputMouseDown}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n aria-describedby={props['aria-describedby']}\n />\n {displayState.displayCross && (\n <span\n class=\"fjs-select-cross\"\n onMouseDown={(e) => {\n pickOption(null);\n e.preventDefault();\n }}>\n <XMarkIcon />{' '}\n </span>\n )}\n <span class=\"fjs-select-arrow\" onMouseDown={(e) => onAngelMouseDown(e)}>\n {displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon />}\n </span>\n </div>\n <div class=\"fjs-select-anchor\">\n {displayState.displayDropdown && (\n <DropdownList\n values={filteredOptions}\n getLabel={(option) => option.label}\n onValueSelected={(option) => {\n pickOption(option);\n setIsDropdownExpanded(false);\n }}\n listenerElement={searchbarRef.current}\n />\n )}\n </div>\n </>\n );\n}\n","import { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { findIndex } from 'min-dash';\nimport { useOptionsAsync, LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useCleanupSingleSelectValue } from '../../../hooks/useCleanupSingleSelectValue';\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\nimport { DropdownList } from './DropdownList';\n\nexport function SimpleSelect(props) {\n const { domId, disabled, errors, onBlur, onFocus, field, readonly, value } = props;\n\n const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n const selectRef = useRef();\n\n /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n const inputRef = useRef();\n\n const { loadState, options } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange,\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const valueLabel = useMemo(() => value && getLabelCorrelation(value), [value, getLabelCorrelation]);\n\n const pickOption = useCallback(\n (option) => {\n props.onChange({ value: (option && option.value) || null });\n },\n [props],\n );\n\n const displayState = useMemo(() => {\n const ds = {};\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded;\n return ds;\n }, [disabled, isDropdownExpanded, loadState, readonly, value]);\n\n const onMouseDown = useCallback(\n (e) => {\n const input = inputRef.current;\n\n if (disabled || !input) {\n return;\n }\n\n setIsDropdownExpanded(!isDropdownExpanded);\n\n if (isDropdownExpanded) {\n input.blur();\n } else {\n input.focus();\n }\n\n e.preventDefault();\n },\n [disabled, isDropdownExpanded],\n );\n\n const initialFocusIndex = useMemo(\n () => (value && findIndex(options, (option) => option.value === value)) || 0,\n [options, value],\n );\n\n const onInputFocus = useCallback(() => {\n if (!readonly) {\n setIsDropdownExpanded(true);\n onFocus && onFocus();\n }\n }, [onFocus, readonly]);\n\n const onInputBlur = useCallback(() => {\n if (!readonly) {\n setIsDropdownExpanded(false);\n onBlur && onBlur();\n }\n }, [onBlur, readonly]);\n\n return (\n <>\n <div\n ref={selectRef}\n class={classNames('fjs-input-group', { disabled, readonly }, { hasErrors: errors.length })}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n onMouseDown={onMouseDown}>\n <div class={classNames('fjs-select-display', { 'fjs-select-placeholder': !value })} id={`${domId}-display`}>\n {valueLabel || 'Select'}\n </div>\n {!disabled && (\n <input\n ref={inputRef}\n id={domId}\n class=\"fjs-select-hidden-input\"\n value={valueLabel}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n aria-describedby={props['aria-describedby']}\n />\n )}\n {displayState.displayCross && (\n <span\n class=\"fjs-select-cross\"\n onMouseDown={(e) => {\n pickOption(null);\n e.stopPropagation();\n }}>\n <XMarkIcon />\n </span>\n )}\n <span class=\"fjs-select-arrow\">{displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon />}</span>\n </div>\n <div class=\"fjs-select-anchor\">\n {displayState.displayDropdown && (\n <DropdownList\n values={options}\n getLabel={(option) => option.label}\n initialFocusIndex={initialFocusIndex}\n onValueSelected={(option) => {\n pickOption(option);\n setIsDropdownExpanded(false);\n }}\n listenerElement={selectRef.current}\n />\n )}\n </div>\n </>\n );\n}\n","import { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { SearchableSelect } from './parts/SearchableSelect';\nimport { SimpleSelect } from './parts/SimpleSelect';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/optionsUtil';\nimport { formFieldClasses } from '../Util';\n\nconst type = 'select';\n\nexport function Select(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, onChange, readonly, value } = props;\n\n const { description, label, searchable = false, validate = {} } = field;\n\n const { required } = validate;\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n const selectProps = {\n domId,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n value,\n onChange,\n readonly,\n required,\n 'aria-invalid': errors.length > 0,\n 'aria-describedby': [descriptionId, errorMessageId].join(' '),\n };\n\n return (\n <div\n class={formFieldClasses(type, { errors, disabled, readonly })}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n }\n }}>\n <Label htmlFor={domId} label={label} required={required} />\n {searchable ? <SearchableSelect {...selectProps} /> : <SimpleSelect {...selectProps} />}\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nSelect.config = {\n type,\n keyed: true,\n name: 'Select',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: (options = {}) => ({\n label: 'Select',\n ...createEmptyOptions(options),\n }),\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'separator';\n\nexport function Separator() {\n return (\n <div class={formFieldClasses(type)}>\n <hr />\n </div>\n );\n}\n\nSeparator.config = {\n type,\n keyed: false,\n name: 'Separator',\n group: 'presentation',\n create: (options = {}) => ({\n ...options,\n }),\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'spacer';\n\nexport function Spacer(props) {\n const { field } = props;\n const { height = 60 } = field;\n\n return <div class={formFieldClasses(type)} style={{ height: height }} />;\n}\n\nSpacer.config = {\n type,\n keyed: false,\n name: 'Spacer',\n group: 'presentation',\n create: (options = {}) => ({\n height: 60,\n ...options,\n }),\n};\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport classNames from 'classnames';\n\nimport { Label } from '../Label';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function DynamicList(props) {\n const { field, domId, readonly } = props;\n const { label, type, showOutline } = field;\n\n const { Empty } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div\n className={classNames(formFieldClasses(type, { readonly }), 'fjs-form-field-grouplike', {\n 'fjs-outlined': showOutline,\n })}\n role=\"group\"\n aria-labelledby={domId}>\n <Label id={domId} label={label} />\n <ChildrenRenderer {...fullProps} />\n </div>\n );\n}\n\nDynamicList.config = {\n type: 'dynamiclist',\n pathed: true,\n repeatable: true,\n name: 'Dynamic list',\n group: 'container',\n create: (options = {}) => ({\n label: 'Dynamic list',\n components: [],\n showOutline: true,\n isRepeating: true,\n allowAddRemove: true,\n defaultRepetitions: 1,\n ...options,\n }),\n};\n","import classNames from 'classnames';\n\nimport { useCallback } from 'preact/hooks';\n\nexport function SkipLink(props) {\n const { className, label, onSkip } = props;\n\n const onKeyDown = useCallback(\n (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n onSkip();\n }\n },\n [onSkip],\n );\n\n return (\n <a href=\"#\" class={classNames('fjs-skip-link', className)} onKeyDown={onKeyDown}>\n {label}\n </a>\n );\n}\n","import { useMemo, useRef, useState } from 'preact/hooks';\n\nimport {\n useDeepCompareMemoize,\n useService,\n useOptionsAsync,\n useCleanupMultiSelectValue,\n useGetLabelCorrelation,\n LOAD_STATES,\n} from '../../hooks';\n\nimport XMarkIcon from './icons/XMark.svg';\nimport { DropdownList } from './parts/DropdownList';\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { SkipLink } from './parts/SkipLink';\n\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/optionsUtil';\nimport { formFieldClasses } from '../Util';\n\nconst type = 'taglist';\n\nexport function Taglist(props) {\n const { disabled, errors = [], onFocus, domId, onBlur, field, readonly, value } = props;\n\n const { description, label, validate = {} } = field;\n\n const { required } = validate;\n\n const [filter, setFilter] = useState('');\n const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n const [isEscapeClosed, setIsEscapeClose] = useState(false);\n\n /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n const focusScopeRef = useRef();\n\n /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n const inputRef = useRef();\n const eventBus = useService('eventBus');\n\n const { loadState, options } = useOptionsAsync(field);\n\n // ensures we render based on array content instead of reference\n const values = useDeepCompareMemoize(value || []);\n\n useCleanupMultiSelectValue({\n field,\n loadState,\n options,\n values,\n onChange: props.onChange,\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const hasOptionsLeft = useMemo(() => options.length > values.length, [options.length, values.length]);\n\n const filteredOptions = useMemo(() => {\n if (loadState !== LOAD_STATES.LOADED) {\n return [];\n }\n\n const isValidFilteredOption = (option) => {\n const filterMatches = option.label.toLowerCase().includes(filter.toLowerCase());\n return filterMatches && !hasEqualValue(option.value, values);\n };\n\n return options.filter(isValidFilteredOption);\n }, [filter, options, values, loadState]);\n\n const selectValue = (value) => {\n setFilter('');\n\n // Ensure values cannot be double selected due to latency\n if (values.at(-1) === value) {\n return;\n }\n\n props.onChange({ value: [...values, value] });\n };\n\n const deselectValue = (value) => {\n const newValues = values.filter((v) => !isEqual(v, value));\n props.onChange({ value: newValues });\n };\n\n const onInputChange = ({ target }) => {\n setIsEscapeClose(false);\n setFilter(target.value || '');\n eventBus.fire('formField.search', { formField: field, value: target.value || '' });\n };\n\n const onInputKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n // We do not want the cursor to seek in the search field when we press up and down\n e.preventDefault();\n break;\n case 'Backspace':\n if (!filter && values.length) {\n deselectValue(values[values.length - 1]);\n }\n break;\n case 'Escape':\n setIsEscapeClose(true);\n break;\n case 'Enter':\n if (isEscapeClosed) {\n setIsEscapeClose(false);\n }\n break;\n }\n };\n\n const onElementBlur = (e) => {\n if (focusScopeRef.current.contains(e.relatedTarget)) return;\n onBlur && onBlur();\n };\n\n const onElementFocus = (e) => {\n if (focusScopeRef.current.contains(e.relatedTarget)) return;\n onFocus && onFocus();\n };\n\n const onInputBlur = (e) => {\n if (!readonly) {\n setIsDropdownExpanded(false);\n setFilter('');\n }\n onElementBlur(e);\n };\n\n const onInputFocus = (e) => {\n if (!readonly) {\n setIsDropdownExpanded(true);\n }\n onElementFocus(e);\n };\n\n const onTagRemoveClick = (event, value) => {\n const { target } = event;\n\n deselectValue(value);\n\n // restore focus if there is no next sibling to focus\n const nextTag = target.closest('.fjs-taglist-tag').nextSibling;\n if (!nextTag) {\n inputRef.current.focus();\n }\n };\n\n const onSkipToSearch = () => {\n inputRef.current.focus();\n };\n\n const shouldDisplayDropdown = useMemo(\n () => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed,\n [disabled, isDropdownExpanded, isEscapeClosed, loadState],\n );\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div\n ref={focusScopeRef}\n class={formFieldClasses(type, { errors, disabled, readonly })}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.stopPropagation();\n event.preventDefault();\n }\n }}>\n <Label label={label} required={required} htmlFor={domId} />\n {!disabled && !readonly && !!values.length && (\n <SkipLink className=\"fjs-taglist-skip-link\" label=\"Skip to search\" onSkip={onSkipToSearch} />\n )}\n <div class={classNames('fjs-taglist', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}>\n {loadState === LOAD_STATES.LOADED && (\n <div class=\"fjs-taglist-tags\">\n {values.map((v) => {\n return (\n <div\n class={classNames('fjs-taglist-tag', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}\n onMouseDown={(e) => e.preventDefault()}>\n <span class=\"fjs-taglist-tag-label\">{getLabelCorrelation(v)}</span>\n {!disabled && !readonly && (\n <button\n type=\"button\"\n title=\"Remove tag\"\n class=\"fjs-taglist-tag-remove\"\n onFocus={onElementFocus}\n onBlur={onElementBlur}\n onClick={(event) => onTagRemoveClick(event, v)}>\n <XMarkIcon />\n </button>\n )}\n </div>\n );\n })}\n </div>\n )}\n <input\n disabled={disabled}\n readOnly={readonly}\n class=\"fjs-taglist-input\"\n ref={inputRef}\n id={domId}\n onChange={onInputChange}\n type=\"text\"\n value={filter}\n placeholder={disabled || readonly ? undefined : 'Search'}\n autoComplete=\"off\"\n onKeyDown={onInputKeyDown}\n onMouseDown={() => setIsEscapeClose(false)}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n </div>\n <div class=\"fjs-taglist-anchor\">\n {shouldDisplayDropdown && (\n <DropdownList\n values={filteredOptions}\n getLabel={(option) => option.label}\n onValueSelected={(option) => selectValue(option.value)}\n emptyListMessage={hasOptionsLeft ? 'No results' : 'All values selected'}\n listenerElement={inputRef.current}\n />\n )}\n </div>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nTaglist.config = {\n type,\n keyed: true,\n name: 'Tag list',\n group: 'selection',\n emptyValue: [],\n sanitizeValue: sanitizeMultiSelectValue,\n create: (options = {}) => ({\n label: 'Tag list',\n ...createEmptyOptions(options),\n }),\n};\n","const NODE_TYPE_TEXT = 3,\n NODE_TYPE_ELEMENT = 1;\n\nconst ALLOWED_NODES = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'span',\n 'em',\n 'a',\n 'p',\n 'div',\n 'ul',\n 'ol',\n 'li',\n 'hr',\n 'blockquote',\n 'img',\n 'pre',\n 'code',\n 'br',\n 'strong',\n 'table',\n 'thead',\n 'tbody',\n 'tr',\n 'th',\n 'td',\n];\n\nconst ALLOWED_ATTRIBUTES = ['align', 'alt', 'class', 'href', 'id', 'name', 'rel', 'target', 'src'];\n\nconst ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\nconst ATTR_WHITESPACE_PATTERN = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g; // eslint-disable-line no-control-regex\n\nconst FORM_ELEMENT = document.createElement('form');\n\n/**\n * Sanitize a HTML string and return the cleaned, safe version.\n *\n * @param {string} html\n * @return {string}\n */\n\n// see https://github.com/developit/snarkdown/issues/70\nexport function sanitizeHTML(html) {\n const doc = new DOMParser().parseFromString(`<!DOCTYPE html>\\n<html><body><div>${html}`, 'text/html');\n\n doc.normalize();\n\n const element = doc.body.firstChild;\n\n if (element) {\n sanitizeNode(/** @type Element */ (element));\n return /** @type Element */ (element).innerHTML;\n } else {\n // handle the case that document parsing\n // does not work at all, due to HTML gibberish\n return '';\n }\n}\n\n/**\n * Recursively sanitize a HTML node, potentially\n * removing it, its children or attributes.\n *\n * Inspired by https://github.com/developit/snarkdown/issues/70\n * and https://github.com/cure53/DOMPurify. Simplified\n * for our use-case.\n *\n * @param {Element} node\n */\nfunction sanitizeNode(node) {\n // allow text nodes\n if (node.nodeType === NODE_TYPE_TEXT) {\n return;\n }\n\n // disallow all other nodes but Element\n if (node.nodeType !== NODE_TYPE_ELEMENT) {\n return node.remove();\n }\n\n const lcTag = node.tagName.toLowerCase();\n\n // disallow non-whitelisted tags\n if (!ALLOWED_NODES.includes(lcTag)) {\n return node.remove();\n }\n\n const attributes = node.attributes;\n\n // clean attributes\n for (let i = attributes.length; i--; ) {\n const attribute = attributes[i];\n\n const name = attribute.name;\n const lcName = name.toLowerCase();\n\n // normalize node value\n const value = attribute.value.trim();\n\n node.removeAttribute(name);\n\n const valid = isValidAttribute(lcTag, lcName, value);\n\n if (valid) {\n node.setAttribute(name, value);\n }\n }\n\n // force noopener on target=\"_blank\" links\n if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\n node.setAttribute('rel', 'noopener');\n }\n\n for (let i = node.childNodes.length; i--; ) {\n sanitizeNode(/** @type Element */ (node.childNodes[i]));\n }\n}\n\n/**\n * Validates attributes for validity.\n *\n * @param {string} lcTag\n * @param {string} lcName\n * @param {string} value\n * @return {boolean}\n */\nfunction isValidAttribute(lcTag, lcName, value) {\n // disallow most attributes based on whitelist\n if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\n return false;\n }\n\n // disallow \"DOM clobbering\" / polution of document and wrapping form elements\n if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\n return false;\n }\n\n if (lcName === 'target' && value !== '_blank') {\n return false;\n }\n\n // allow valid url links only\n if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\n return false;\n }\n\n return true;\n}\n","import { useCallback, useMemo } from 'preact/hooks';\nimport { useDangerousHTMLWrapper, useService, useTemplateEvaluation } from '../../hooks';\nimport { sanitizeHTML } from '../Sanitizer';\n\nimport { formFieldClasses, textToLabel } from '../Util';\n\nconst type = 'text';\n\nexport function Text(props) {\n const form = useService('form');\n const { textLinkTarget } = form._getState().properties;\n\n const { field, disableLinks } = props;\n\n const { text = '', strict = false } = field;\n\n const markdownRenderer = useService('markdownRenderer');\n\n // feelers => pure markdown\n const markdown = useTemplateEvaluation(text, { debug: true, strict });\n\n // markdown => html\n const html = useMemo(() => markdownRenderer.render(markdown), [markdownRenderer, markdown]);\n\n const sanitizeAndTransformLinks = useCallback(\n (unsafeHtml) => {\n const html = sanitizeHTML(unsafeHtml);\n\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n\n const links = tempDiv.querySelectorAll('a');\n\n links.forEach((link) => {\n if (disableLinks) {\n link.setAttribute('class', 'fjs-disabled-link');\n link.setAttribute('tabIndex', '-1');\n }\n\n if (textLinkTarget) {\n link.setAttribute('target', textLinkTarget);\n }\n });\n\n return tempDiv.innerHTML;\n },\n [disableLinks, textLinkTarget],\n );\n\n const dangerouslySetInnerHTML = useDangerousHTMLWrapper({\n html,\n transform: sanitizeAndTransformLinks,\n sanitize: false,\n sanitizeStyleTags: false,\n });\n\n return <div class={formFieldClasses(type)} dangerouslySetInnerHTML={dangerouslySetInnerHTML}></div>;\n}\n\nText.config = {\n type,\n keyed: false,\n name: 'Text view',\n group: 'presentation',\n create: (options = {}) => ({\n text: '# Text',\n ...options,\n }),\n getSubheading: (field) => {\n textToLabel(field.text);\n },\n};\n","import { useCallback } from 'preact/hooks';\nimport { useService, useTemplateEvaluation, useDangerousHTMLWrapper } from '../../hooks';\nimport { escapeHTML } from '../util/sanitizerUtil';\nimport { wrapCSSStyles } from '../util/domUtil';\n\nimport { formFieldClasses } from '../Util';\nimport classNames from 'classnames';\n\nconst type = 'html';\n\nexport function Html(props) {\n const form = useService('form');\n const { textLinkTarget } = form._getState().properties;\n\n const { field, disableLinks, domId } = props;\n\n const { content = '', strict = false } = field;\n\n const styleScope = `${domId}-style-scope`;\n\n // we escape HTML within the template evaluation to prevent clickjacking attacks\n const html = useTemplateEvaluation(content, { debug: true, strict, sanitizer: escapeHTML });\n\n const transform = useCallback(\n (html) => {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n\n // (1) apply modifications to links\n\n const links = tempDiv.querySelectorAll('a');\n\n links.forEach((link) => {\n if (disableLinks) {\n link.setAttribute('class', 'fjs-disabled-link');\n link.setAttribute('tabIndex', '-1');\n }\n\n if (textLinkTarget) {\n link.setAttribute('target', textLinkTarget);\n }\n });\n\n // (2) scope styles to the root div\n wrapCSSStyles(tempDiv, `.${styleScope}`);\n\n return tempDiv.innerHTML;\n },\n [disableLinks, styleScope, textLinkTarget],\n );\n\n const dangerouslySetInnerHTML = useDangerousHTMLWrapper({\n html,\n transform,\n sanitize: true,\n sanitizeStyleTags: false,\n });\n\n return (\n <div class={classNames(formFieldClasses(type), styleScope)} dangerouslySetInnerHTML={dangerouslySetInnerHTML}></div>\n );\n}\n\nHtml.config = {\n type,\n keyed: false,\n name: 'HTML view',\n group: 'presentation',\n create: (options = {}) => ({\n content: '',\n ...options,\n }),\n};\n","import { useCallback, useEffect } from 'preact/hooks';\nimport { useExpressionEvaluation, useDeepCompareMemoize, useService } from '../../hooks';\n\nimport { isEqual } from 'lodash';\n\nconst type = 'expression';\n\nexport function ExpressionField(props) {\n const { field, onChange, value } = props;\n\n const { computeOn, expression } = field;\n\n const evaluation = useExpressionEvaluation(expression);\n const evaluationMemo = useDeepCompareMemoize(evaluation);\n const eventBus = useService('eventBus');\n const expressionLoopPreventer = useService('expressionLoopPreventer');\n\n const sendValue = useCallback(() => {\n onChange && onChange({ field, value: evaluationMemo, shouldNotRecompute: true });\n }, [field, evaluationMemo, onChange]);\n\n useEffect(() => {\n if (\n computeOn !== 'change' ||\n isEqual(evaluationMemo, value) ||\n !expressionLoopPreventer.registerExpressionExecution(this)\n ) {\n return;\n }\n sendValue();\n });\n\n useEffect(() => {\n if (computeOn === 'presubmit') {\n eventBus.on('presubmit', sendValue);\n return () => eventBus.off('presubmit', sendValue);\n }\n }, [computeOn, sendValue, eventBus]);\n\n return null;\n}\n\nExpressionField.config = {\n type,\n name: 'Expression',\n group: 'basic-input',\n keyed: true,\n emptyValue: null,\n escapeGridRender: true,\n create: (options = {}) => ({\n computeOn: 'change',\n ...options,\n }),\n};\n","import { isArray, isObject, isNil } from 'min-dash';\nimport { formFieldClasses } from '../Util';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { TemplatedInputAdorner } from './parts/TemplatedInputAdorner';\n\nimport { useFlushDebounce } from '../../hooks/useFlushDebounce';\n\nconst type = 'textfield';\n\nexport function Textfield(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = '' } = props;\n\n const { description, label, appearance = {}, validate = {} } = field;\n\n const { prefixAdorner, suffixAdorner } = appearance;\n\n const { required } = validate;\n\n const [onInputChange, flushOnChange] = useFlushDebounce(({ target }) => {\n props.onChange({\n value: target.value,\n });\n });\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <TemplatedInputAdorner disabled={disabled} readonly={readonly} pre={prefixAdorner} post={suffixAdorner}>\n <input\n class=\"fjs-input\"\n disabled={disabled}\n readOnly={readonly}\n id={domId}\n onInput={onInputChange}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n type=\"text\"\n value={value}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n </TemplatedInputAdorner>\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nTextfield.config = {\n type,\n keyed: true,\n name: 'Text field',\n group: 'basic-input',\n emptyValue: '',\n sanitizeValue: ({ value }) => {\n if (isArray(value) || isObject(value) || isNil(value)) {\n return '';\n }\n\n // sanitize newlines to spaces\n if (typeof value === 'string') {\n return value.replace(/[\\r\\n\\t]/g, ' ');\n }\n\n return String(value);\n },\n create: (options = {}) => ({ label: 'Text field', ...options }),\n};\n","import { isArray, isObject, isNil } from 'min-dash';\n\nimport { useEffect, useLayoutEffect, useRef } from 'preact/hooks';\nimport { useFlushDebounce } from '../../hooks/useFlushDebounce';\n\nimport { formFieldClasses } from '../Util';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nconst type = 'textarea';\n\nexport function Textarea(props) {\n const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = '' } = props;\n\n const { description, label, validate = {} } = field;\n\n const { required } = validate;\n const textareaRef = useRef();\n\n const [onChange, flushOnChange] = useFlushDebounce(({ target }) => {\n props.onChange({\n value: target.value,\n });\n });\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n const onInputChange = (event) => {\n onChange({ target: event.target });\n autoSizeTextarea(textareaRef.current);\n };\n\n useLayoutEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [value]);\n\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, []);\n\n const descriptionId = `${domId}-description`;\n const errorMessageId = `${domId}-error-message`;\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <textarea\n class=\"fjs-textarea\"\n disabled={disabled}\n readonly={readonly}\n id={domId}\n onInput={onInputChange}\n onBlur={onInputBlur}\n onFocus={onInputFocus}\n value={value}\n ref={textareaRef}\n aria-describedby={[descriptionId, errorMessageId].join(' ')}\n required={required}\n aria-invalid={errors.length > 0}\n />\n <Description id={descriptionId} description={description} />\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nTextarea.config = {\n type,\n keyed: true,\n name: 'Text area',\n group: 'basic-input',\n emptyValue: '',\n sanitizeValue: ({ value }) => (isArray(value) || isObject(value) || isNil(value) ? '' : String(value)),\n create: (options = {}) => ({ label: 'Text area', ...options }),\n};\n\nconst autoSizeTextarea = (textarea) => {\n // Ensures the textarea shrinks back, and improves resizing behavior consistency\n textarea.style.height = '0px';\n\n const computed = window.getComputedStyle(textarea);\n\n const heightFromLines = () => {\n const lineHeight = parseInt(computed.getPropertyValue('line-height').replace('px', '')) || 0;\n const lines = textarea.value ? textarea.value.toString().split('\\n').length : 0;\n return lines * lineHeight;\n };\n\n const calculatedHeight =\n parseInt(computed.getPropertyValue('border-top-width')) +\n parseInt(computed.getPropertyValue('padding-top')) +\n (textarea.scrollHeight || heightFromLines()) +\n parseInt(computed.getPropertyValue('padding-bottom')) +\n parseInt(computed.getPropertyValue('border-bottom-width'));\n\n const minHeight = 75;\n const maxHeight = 350;\n const displayHeight = Math.max(Math.min(calculatedHeight || 0, maxHeight), minHeight);\n\n textarea.style.height = `${displayHeight}px`;\n\n // Overflow is hidden by default to hide scrollbar flickering\n textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M24.59 16.59 17 24.17V4h-2v20.17l-7.59-7.58L6 18l10 10 10-10-1.41-1.41z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m20 24-10-8 10-8z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m12 8 10 8-10 8z\"/></svg>","import { isDefined, isNumber, isObject, isString } from 'min-dash';\nimport { useExpressionEvaluation } from '../../hooks';\nimport { useEffect, useState } from 'preact/hooks';\nimport { formFieldClasses, prefixId } from '../Util';\nimport classNames from 'classnames';\n\nimport { Label } from '../Label';\nimport ArrowDownIcon from './icons/ArrowDown.svg';\nimport ArrowUpIcon from './icons/ArrowUp.svg';\nimport CaretLeftIcon from './icons/CaretLeft.svg';\nimport CaretRightIcon from './icons/CaretRight.svg';\n\nconst type = 'table';\n\n/**\n * @typedef {('asc'|'desc')} Direction\n *\n * @typedef Sorting\n * @property {string} key\n * @property {Direction} direction\n *\n * @typedef Column\n * @property {string} label\n * @property {string} key\n *\n * @typedef Field\n * @property {string} id\n * @property {Array<Column>} [columns]\n * @property {string} [columnsExpression]\n * @property {string} [label]\n * @property {number} [rowCount]\n * @property {string} [dataSource]\n *\n * @typedef Props\n * @property {Field} field\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function Table(props) {\n const { field } = props;\n const { columns = [], columnsExpression, dataSource = '', rowCount, id, label } = field;\n\n const [sortBy, setSortBy] = useState(/** @type {Sorting | null} */ null);\n const evaluatedColumns = useEvaluatedColumns(columnsExpression || '', columns);\n const columnKeys = evaluatedColumns.map(({ key }) => key);\n const evaluatedDataSource = useExpressionEvaluation(dataSource);\n const data = Array.isArray(evaluatedDataSource) ? evaluatedDataSource.filter((i) => i !== undefined) : [];\n const sortedData = sortBy === null ? data : sortByColumn(data, sortBy.key, sortBy.direction);\n\n /** @type {unknown[][]} */\n const chunkedData = isNumber(rowCount) ? chunk(sortedData, rowCount) : [sortedData];\n const [currentPage, setCurrentPage] = useState(0);\n const currentChunk = chunkedData[currentPage] || [];\n\n useEffect(() => {\n setCurrentPage(0);\n }, [rowCount, sortBy]);\n\n const serializeCellData = (cellData) => {\n if (cellData !== null && typeof cellData === 'object') {\n return JSON.stringify(cellData);\n }\n\n return cellData;\n };\n\n /** @param {string} key */\n function toggleSortBy(key) {\n setSortBy((current) => {\n if (current === null || current.key !== key) {\n return {\n key,\n direction: 'asc',\n };\n }\n\n if (current.direction === 'desc') {\n return null;\n }\n\n return {\n key,\n direction: 'desc',\n };\n });\n }\n\n return (\n <div class={formFieldClasses(type)}>\n <Label htmlFor={prefixId(id)} label={label} />\n <div\n class={classNames('fjs-table-middle-container', {\n 'fjs-table-empty': evaluatedColumns.length === 0,\n })}>\n {evaluatedColumns.length === 0 ? (\n 'Nothing to show.'\n ) : (\n <div class=\"fjs-table-inner-container\">\n <table class=\"fjs-table\" id={prefixId(id)}>\n <thead class=\"fjs-table-head\">\n <tr class=\"fjs-table-tr\">\n {evaluatedColumns.map(({ key, label }) => {\n const displayLabel = label || key;\n\n return (\n <th\n key={key}\n tabIndex={0}\n class=\"fjs-table-th\"\n onClick={() => {\n toggleSortBy(key);\n }}\n onKeyDown={(event) => {\n if (['Enter', 'Space'].includes(event.code)) {\n toggleSortBy(key);\n }\n }}\n aria-label={getHeaderAriaLabel(sortBy, key, displayLabel)}>\n <span class=\"fjs-table-th-label\">\n {displayLabel}\n {sortBy !== null && sortBy.key === key ? (\n <>\n {sortBy.direction === 'asc' ? (\n <ArrowUpIcon class=\"fjs-table-sort-icon-asc\" />\n ) : (\n <ArrowDownIcon class=\"fjs-table-sort-icon-desc\" />\n )}\n </>\n ) : null}\n </span>\n </th>\n );\n })}\n </tr>\n </thead>\n {currentChunk.length === 0 ? (\n <tbody class=\"fjs-table-body\">\n <tr class=\"fjs-table-tr\">\n <td class=\"fjs-table-td\" colSpan={evaluatedColumns.length}>\n Nothing to show.\n </td>\n </tr>\n </tbody>\n ) : (\n <tbody class=\"fjs-table-body\">\n {currentChunk.map((row, index) => (\n <tr key={index} class=\"fjs-table-tr\">\n {columnKeys.map((key) => (\n <td key={key} class=\"fjs-table-td\">\n {serializeCellData(row[key])}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n </div>\n )}\n\n {isNumber(rowCount) && chunkedData.length > 1 && evaluatedColumns.length > 0 ? (\n <nav class=\"fjs-table-nav\">\n <span class=\"fjs-table-nav-label\">\n {currentPage + 1} of {chunkedData.length}\n </span>\n <button\n type=\"button\"\n class=\"fjs-table-nav-button\"\n onClick={() => {\n setCurrentPage((page) => Math.max(page - 1, 0));\n }}\n disabled={currentPage === 0}\n aria-label=\"Previous page\">\n <CaretLeftIcon />\n </button>\n <button\n type=\"button\"\n class=\"fjs-table-nav-button\"\n onClick={() => {\n setCurrentPage((page) => Math.min(page + 1, chunkedData.length - 1));\n }}\n disabled={currentPage >= chunkedData.length - 1}\n aria-label=\"Next page\">\n <CaretRightIcon />\n </button>\n </nav>\n ) : null}\n </div>\n </div>\n );\n}\n\nTable.config = {\n type,\n keyed: false,\n name: 'Table',\n group: 'presentation',\n create: (options = {}) => {\n const { id, columnsExpression, columns, rowCount, ...remainingOptions } = options;\n\n if (isDefined(id) && isNumber(rowCount)) {\n remainingOptions['rowCount'] = rowCount;\n }\n\n if (isString(columnsExpression)) {\n return {\n ...remainingOptions,\n id,\n columnsExpression,\n };\n }\n\n if (Array.isArray(columns) && columns.every(isColumn)) {\n return {\n ...remainingOptions,\n id,\n columns,\n };\n }\n\n return {\n ...remainingOptions,\n label: 'Table',\n rowCount: 10,\n columns: [\n {\n label: 'ID',\n key: 'id',\n },\n {\n label: 'Name',\n key: 'name',\n },\n {\n label: 'Date',\n key: 'date',\n },\n ],\n };\n },\n\n /**\n * @experimental\n *\n * A function that generates demo data for a new field on the form playground.\n * @param {Field} field\n */\n generateInitialDemoData: (field) => {\n const demoData = [\n { id: 1, name: 'John Doe', date: '31.01.2023' },\n { id: 2, name: 'Erika Muller', date: '20.02.2023' },\n { id: 3, name: 'Dominic Leaf', date: '11.03.2023' },\n ];\n const demoDataKeys = Object.keys(demoData[0]);\n const { columns, id, dataSource } = field;\n\n if (!Array.isArray(columns) || columns.length === 0 || dataSource !== `=${id}`) {\n return;\n }\n\n if (!columns.map(({ key }) => key).every((key) => demoDataKeys.includes(key))) {\n return;\n }\n\n return demoData;\n },\n};\n\n// helpers /////////////////////////////\n\n/**\n * @param {string|void} columnsExpression\n * @param {Column[]} fallbackColumns\n * @returns {Column[]}\n */\nfunction useEvaluatedColumns(columnsExpression, fallbackColumns) {\n /** @type {Column[]|null} */\n const evaluation = useExpressionEvaluation(columnsExpression || '');\n\n return Array.isArray(evaluation) && evaluation.every(isColumn) ? evaluation : fallbackColumns;\n}\n\n/**\n * @param {any} column\n * @returns {column is Column}\n */\nfunction isColumn(column) {\n return isObject(column) && isString(column['label']) && isString(column['key']);\n}\n\n/**\n * @param {Array} array\n * @param {number} size\n * @returns {Array}\n */\nfunction chunk(array, size) {\n return array.reduce((chunks, item, index) => {\n if (index % size === 0) {\n chunks.push([item]);\n } else {\n chunks[chunks.length - 1].push(item);\n }\n\n return chunks;\n }, []);\n}\n\n/**\n * @param {unknown[]} array\n * @param {string} key\n * @param {Direction} direction\n * @returns {unknown[]}\n */\nfunction sortByColumn(array, key, direction) {\n return [...array].sort((a, b) => {\n if (!isObject(a) || !isObject(b)) {\n return 0;\n }\n\n if (direction === 'asc') {\n return a[key] > b[key] ? 1 : -1;\n }\n\n return a[key] < b[key] ? 1 : -1;\n });\n}\n\n/**\n * @param {null|Sorting} sortBy\n * @param {string} key\n * @param {string} label\n */\nfunction getHeaderAriaLabel(sortBy, key, label) {\n if (sortBy === null || sortBy.key !== key) {\n return `Click to sort by ${label} descending`;\n }\n\n if (sortBy.direction === 'asc') {\n return 'Click to remove sorting';\n }\n\n return `Click to sort by ${label} ascending`;\n}\n","import { formFieldClasses } from '../Util';\nimport { Label } from '../Label';\nimport { Errors } from '../Errors';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useService, useSingleLineTemplateEvaluation } from '../../hooks';\n\nconst type = 'filepicker';\n\n/**\n * @typedef Props\n * @property {(props: { value: string }) => void} onChange\n * @property {string} domId\n * @property {string[]} errors\n * @property {boolean} disabled\n * @property {boolean} readonly\n * @property {boolean} required\n * @property {Object} field\n * @property {string} field.id\n * @property {string} [field.label]\n * @property {string} [field.accept]\n * @property {boolean} [field.multiple]\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function FilePicker(props) {\n /** @type {import(\"preact/hooks\").Ref<HTMLInputElement>} */\n const fileInputRef = useRef(null);\n /** @type {[File[],import(\"preact/hooks\").StateUpdater<File[]>]} */\n const [selectedFiles, setSelectedFiles] = useState([]);\n const eventBus = useService('eventBus');\n const { field, onChange, domId, errors = [], disabled, readonly, required } = props;\n const { label, multiple = '', accept = '', id } = field;\n const evaluatedAccept = useSingleLineTemplateEvaluation(accept);\n const evaluatedMultiple =\n useSingleLineTemplateEvaluation(typeof multiple === 'string' ? multiple : multiple.toString()) === 'true';\n const errorMessageId = `${domId}-error-message`;\n\n useEffect(() => {\n const reset = () => {\n setSelectedFiles([]);\n onChange({\n value: null,\n });\n };\n\n eventBus.on('import.done', reset);\n eventBus.on('reset', reset);\n\n return () => {\n eventBus.off('import.done', reset);\n eventBus.off('reset', reset);\n };\n }, [eventBus, onChange]);\n\n return (\n <div class={formFieldClasses(type, { errors, disabled, readonly })}>\n <Label htmlFor={domId} label={label} required={required} />\n <input\n type=\"file\"\n className=\"fjs-hidden\"\n ref={fileInputRef}\n id={domId}\n name={domId}\n multiple={evaluatedMultiple === false ? undefined : evaluatedMultiple}\n accept={evaluatedAccept === '' ? undefined : evaluatedAccept}\n onChange={(event) => {\n const input = /** @type {HTMLInputElement} */ (event.target);\n\n if (input.files === null || input.files.length === 0) {\n onChange({\n value: null,\n });\n return;\n }\n\n const files = Array.from(input.files);\n\n onChange({\n value: `${id}_value_key`,\n });\n\n setSelectedFiles(files);\n }}\n />\n <div className=\"fjs-filepicker-container\">\n <button\n type=\"button\"\n disabled={disabled}\n readonly={readonly}\n class=\"fjs-button\"\n onClick={() => {\n fileInputRef.current.click();\n }}>\n Browse\n </button>\n <span className=\"fjs-form-field-label\">{getSelectedFilesLabel(selectedFiles)}</span>\n </div>\n <Errors id={errorMessageId} errors={errors} />\n </div>\n );\n}\n\nFilePicker.config = {\n type: 'filepicker',\n keyed: true,\n label: 'File picker',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: ({ value }) => {\n return value;\n },\n create: (options = {}) => ({ ...options }),\n};\n\n// helper //////////\n\n/**\n * @param {File[]} files\n * @returns {string}\n */\nfunction getSelectedFilesLabel(files) {\n if (files.length === 0) {\n return 'No files selected';\n }\n\n if (files.length === 1) {\n return files[0].name;\n }\n\n return `${files.length} files selected`;\n}\n","/**\n * This file must not be changed or exchanged.\n *\n * @see http://bpmn.io/license for more information.\n */\nimport { Fragment } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { createPortal } from 'preact/compat';\n\nfunction Logo() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 14.02 5.57\"\n width=\"53\"\n height=\"21\"\n style=\"vertical-align:middle\">\n <path\n fill=\"currentColor\"\n d=\"M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z\"\n />\n <path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\" />\n </svg>\n );\n}\n\nfunction Lightbox(props) {\n const { open } = props;\n\n if (!open) {\n return null;\n }\n\n return (\n <div class=\"fjs-powered-by-lightbox\" style=\"z-index: 100; position: fixed; top: 0; left: 0;right: 0; bottom: 0\">\n <div\n class=\"backdrop\"\n style=\"width: 100%; height: 100%; background: rgba(40 40 40 / 20%)\"\n onClick={props.onBackdropClick}></div>\n <div\n class=\"notice\"\n style=\"position: absolute; left: 50%; top: 40%; transform: translate(-50%); width: 260px; padding: 10px; background: white; box-shadow: 0 1px 4px rgba(0 0 0 / 30%); font-family: Helvetica, Arial, sans-serif; font-size: 14px; display: flex; line-height: 1.3\">\n <a\n href=\"https://bpmn.io\"\n target=\"_blank\"\n rel=\"noopener\"\n style=\"margin: 15px 20px 15px 10px; align-self: center; color: var(--cds-icon-primary, #404040)\">\n <Logo />\n </a>\n <span>\n Web-based tooling for BPMN, DMN, and forms powered by{' '}\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">\n bpmn.io\n </a>\n .\n </span>\n </div>\n </div>\n );\n}\n\nfunction Link(props) {\n return (\n <div class=\"fjs-powered-by fjs-form-field\" style=\"text-align: right\">\n <a\n href=\"https://bpmn.io\"\n target=\"_blank\"\n rel=\"noopener\"\n class=\"fjs-powered-by-link\"\n title=\"Powered by bpmn.io\"\n style=\"color: var(--cds-text-primary, #404040)\"\n onClick={props.onClick}>\n <Logo />\n </a>\n </div>\n );\n}\n\nexport function PoweredBy(props) {\n const [open, setOpen] = useState(false);\n\n function toggleOpen(open) {\n return (event) => {\n event.preventDefault();\n\n setOpen(open);\n };\n }\n\n return (\n <Fragment>\n {createPortal(<Lightbox open={open} onBackdropClick={toggleOpen(false)} />, document.body)}\n <Link onClick={toggleOpen(true)} />\n </Fragment>\n );\n}\n","import { FormField } from './FormField';\nimport { PoweredBy } from './PoweredBy';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\n\nimport { useMemo } from 'preact/hooks';\nimport { useFilteredFormData, useService } from '../hooks';\n\nconst noop = () => {};\n\nexport function FormComponent(props) {\n const form = useService('form');\n\n const { schema, properties } = form._getState();\n\n const { ariaLabel } = properties;\n\n const { onSubmit = noop, onReset = noop, onChange = noop } = props;\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n onSubmit();\n };\n\n const handleReset = (event) => {\n event.preventDefault();\n\n onReset();\n };\n\n const filteredFormData = useFilteredFormData();\n\n const localExpressionContext = useMemo(\n () => ({\n data: filteredFormData,\n parent: null,\n this: filteredFormData,\n i: [],\n }),\n [filteredFormData],\n );\n\n return (\n <form class=\"fjs-form\" onSubmit={handleSubmit} onReset={handleReset} aria-label={ariaLabel} noValidate>\n <LocalExpressionContext.Provider value={localExpressionContext}>\n <FormField field={schema} onChange={onChange} />\n </LocalExpressionContext.Provider>\n <PoweredBy />\n </form>\n );\n}\n","import { Button } from './form-fields/Button';\nimport { Checkbox } from './form-fields/Checkbox';\nimport { Checklist } from './form-fields/Checklist';\nimport { Default } from './form-fields/Default';\nimport { Datetime } from './form-fields/Datetime';\nimport { Group } from './form-fields/Group';\nimport { IFrame } from './form-fields/IFrame';\nimport { Image } from './form-fields/Image';\nimport { Numberfield } from './form-fields/Number';\nimport { Radio } from './form-fields/Radio';\nimport { Select } from './form-fields/Select';\nimport { Separator } from './form-fields/Separator';\nimport { Spacer } from './form-fields/Spacer';\nimport { DynamicList } from './form-fields/DynamicList';\nimport { Taglist } from './form-fields/Taglist';\nimport { Text } from './form-fields/Text';\nimport { Html } from './form-fields/Html';\nimport { ExpressionField } from './form-fields/ExpressionField';\nimport { Textfield } from './form-fields/Textfield';\nimport { Textarea } from './form-fields/Textarea';\nimport { Table } from './form-fields/Table';\nimport { FilePicker } from './form-fields/FilePicker';\n\nimport { Label } from './Label';\nimport { Description } from './Description';\nimport { Errors } from './Errors';\nimport { FormComponent } from './FormComponent';\nimport { FormField } from './FormField';\n\nexport { Label, Description, Errors };\n\nexport {\n Button,\n Checkbox,\n Checklist,\n Default,\n Datetime,\n FormComponent,\n FormField,\n Group,\n IFrame,\n DynamicList,\n Image,\n Numberfield,\n ExpressionField,\n Radio,\n Select,\n Separator,\n Spacer,\n Taglist,\n Text,\n Html,\n Textfield,\n Textarea,\n Table,\n FilePicker,\n};\n\nexport const formFields = [\n /* Input */\n Textfield,\n Textarea,\n Numberfield,\n Datetime,\n ExpressionField,\n FilePicker,\n\n /* Selection */\n Checkbox,\n Checklist,\n Radio,\n Select,\n Taglist,\n\n /* Presentation */\n Text,\n Image,\n Table,\n Html,\n Spacer,\n Separator,\n\n /* Containers */\n Group,\n DynamicList,\n IFrame,\n\n /* Other */\n Button,\n Default,\n];\n\nexport * from './icons';\nexport * from './Sanitizer';\nexport * from './util/domUtil';\nexport * from './util/sanitizerUtil';\n","import { formFields } from './components';\n\nexport class FormFields {\n constructor() {\n this._formFields = {};\n\n formFields.forEach((formField) => {\n this.register(formField.config.type, formField);\n });\n }\n\n register(type, formField) {\n this._formFields[type] = formField;\n }\n\n get(type) {\n return this._formFields[type];\n }\n}\n","import { FeelExpressionLanguage } from '../features/expressionLanguage/FeelExpressionLanguage.js';\nimport { FeelersTemplating } from '../features/expressionLanguage/FeelersTemplating.js';\nimport { FormFields } from '../render/FormFields.js';\n\nimport { get } from 'min-dash';\n\nconst EXPRESSION_PROPERTIES = [\n 'alt',\n 'appearance.prefixAdorner',\n 'appearance.suffixAdorner',\n 'conditional.hide',\n 'description',\n 'label',\n 'source',\n 'readonly',\n 'text',\n 'validate.min',\n 'validate.max',\n 'validate.minLength',\n 'validate.maxLength',\n 'valuesExpression',\n 'url',\n 'dataSource',\n 'columnsExpression',\n 'expression',\n];\n\nconst TEMPLATE_PROPERTIES = [\n 'alt',\n 'appearance.prefixAdorner',\n 'appearance.suffixAdorner',\n 'description',\n 'label',\n 'source',\n 'text',\n 'content',\n 'url',\n];\n\n/**\n * @typedef { import('../types').Schema } Schema\n */\n\n/**\n * Parse the schema for variables a form might make use of.\n *\n * @example\n *\n * // retrieve variables from schema\n * const variables = getSchemaVariables(schema);\n *\n * @example\n *\n * // retrieve input variables from schema\n * const inputVariables = getSchemaVariables(schema, { outputs: false });\n *\n * @example\n *\n * // retrieve output variables from schema\n * const outputVariables = getSchemaVariables(schema, { inputs: false });\n *\n * @param {Schema} schema\n * @param {object} [options]\n * @param {any} [options.expressionLanguage]\n * @param {any} [options.templating]\n * @param {any} [options.formFields]\n * @param {boolean} [options.inputs=true]\n * @param {boolean} [options.outputs=true]\n *\n * @return {string[]}\n */\nexport function getSchemaVariables(schema, options = {}) {\n const {\n formFields = new FormFields(),\n expressionLanguage = new FeelExpressionLanguage(null),\n templating = new FeelersTemplating(),\n inputs = true,\n outputs = true,\n } = options;\n\n if (!schema.components) {\n return [];\n }\n\n const getAllComponents = (node) => {\n const components = [];\n\n if (node.components) {\n node.components.forEach((component) => {\n components.push(component);\n components.push(...getAllComponents(component));\n });\n }\n\n return components;\n };\n\n const variables = getAllComponents(schema).reduce((variables, component) => {\n const { valuesKey } = component;\n\n // collect input-only variables\n if (inputs) {\n if (valuesKey) {\n variables = [...variables, valuesKey];\n }\n\n EXPRESSION_PROPERTIES.forEach((prop) => {\n const property = get(component, prop.split('.'));\n\n if (property && expressionLanguage.isExpression(property)) {\n const expressionVariables = expressionLanguage.getVariableNames(property, { type: 'expression' });\n\n variables = [...variables, ...expressionVariables];\n }\n });\n\n TEMPLATE_PROPERTIES.forEach((prop) => {\n const property = get(component, prop.split('.'));\n\n if (property && !expressionLanguage.isExpression(property) && templating.isTemplate(property)) {\n const templateVariables = templating.getVariableNames(property);\n variables = [...variables, ...templateVariables];\n }\n });\n }\n\n return variables.filter((variable) => typeof variable === 'string');\n }, []);\n\n const getBindingVariables = (node) => {\n const bindingVariable = [];\n const formField = formFields.get(node.type);\n\n if (formField && formField.config.keyed && node.key) {\n return [node.key.split('.')[0]];\n } else if (formField && formField.config.pathed && node.path) {\n return [node.path.split('.')[0]];\n } else if (node.components) {\n node.components.forEach((component) => {\n bindingVariable.push(...getBindingVariables(component));\n });\n }\n\n return bindingVariable;\n };\n\n // collect binding variables\n if (inputs || outputs) {\n variables.push(...getBindingVariables(schema));\n }\n\n // remove duplicates\n return Array.from(new Set(variables));\n}\n","/**\n * Get the ancestry list of a form field.\n *\n * @param {string} formFieldId\n * @param {import('../core/FormFieldRegistry').FormFieldRegistry} formFieldRegistry\n *\n * @return {Array<string>} ancestry list\n */\nexport const getAncestryList = (formFieldId, formFieldRegistry) => {\n const ids = [];\n\n let currentFormField = formFieldRegistry.get(formFieldId);\n\n while (currentFormField) {\n ids.push(currentFormField.id);\n\n currentFormField = formFieldRegistry.get(currentFormField._parent);\n }\n\n return ids;\n};\n","import { unaryTest } from 'feelin';\nimport { get, isString, set, values, isObject } from 'min-dash';\nimport { buildExpressionContext, clone } from '../../util';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport class ConditionChecker {\n constructor(formFieldRegistry, pathRegistry, eventBus) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._eventBus = eventBus;\n }\n\n /**\n * For given data, remove properties based on condition.\n *\n * @param {Object<string, any>} data\n * @param {Object<string, any>} contextData\n * @param {Object} [options]\n * @param {Function} [options.getFilterPath]\n * @param {boolean} [options.leafNodeDeletionOnly]\n */\n applyConditions(data, contextData = {}, options = {}) {\n const workingData = clone(data);\n\n const { getFilterPath = (field, indexes) => this._pathRegistry.getValuePath(field, { indexes }) } = options;\n\n const _applyConditionsWithinScope = (rootField, scopeContext, startHidden = false) => {\n const { indexes = {}, expressionIndexes = [], scopeData = contextData, parentScopeData = null } = scopeContext;\n\n this._pathRegistry.executeRecursivelyOnFields(rootField, ({ field, isClosed, isRepeatable, context }) => {\n const { conditional, components, id } = field;\n\n // build the expression context in the right format\n const localExpressionContext = buildExpressionContext({\n this: scopeData,\n data: contextData,\n i: expressionIndexes,\n parent: parentScopeData,\n });\n\n context.isHidden =\n startHidden ||\n context.isHidden ||\n (conditional && this._checkHideCondition(conditional, localExpressionContext));\n\n // if a field is repeatable and visible, we need to implement custom recursion on its children\n if (isRepeatable && !context.isHidden) {\n // prevent the regular recursion behavior of executeRecursivelyOnFields\n context.preventRecursion = true;\n\n const repeaterValuePath = this._pathRegistry.getValuePath(field, { indexes });\n const repeaterValue = get(contextData, repeaterValuePath);\n\n // quit early if there are no children or data associated with the repeater\n if (\n !Array.isArray(repeaterValue) ||\n !repeaterValue.length ||\n !Array.isArray(components) ||\n !components.length\n ) {\n return;\n }\n\n for (let i = 0; i < repeaterValue.length; i++) {\n // create a new scope context for each index\n const newScopeContext = {\n indexes: { ...indexes, [id]: i },\n expressionIndexes: [...expressionIndexes, i + 1],\n scopeData: repeaterValue[i],\n parentScopeData: scopeData,\n };\n\n // for each child component, apply conditions within the new repetition scope\n components.forEach((component) => {\n _applyConditionsWithinScope(component, newScopeContext, context.isHidden);\n });\n }\n }\n\n // if we have a hidden repeatable field, and the data structure allows, we clear it directly at the root and stop recursion\n if (context.isHidden && isRepeatable) {\n context.preventRecursion = true;\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\n }\n\n // for simple leaf fields, we always clear\n if (context.isHidden && isClosed) {\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\n }\n });\n };\n\n // apply conditions starting with the root of the form\n const form = this._formFieldRegistry.getForm();\n\n if (!form) {\n throw new Error('form field registry has no form');\n }\n\n _applyConditionsWithinScope(form, {\n scopeData: contextData,\n });\n\n return workingData;\n }\n\n /**\n * Check if given condition is met. Returns null for invalid/missing conditions.\n *\n * @param {string} condition\n * @param {import('../../types').Data} [data]\n *\n * @returns {boolean|null}\n */\n check(condition, data = {}) {\n if (!condition) {\n return null;\n }\n\n if (!isString(condition) || !condition.startsWith('=')) {\n return null;\n }\n\n try {\n // cut off initial '='\n const result = unaryTest(condition.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n\n /**\n * Check if hide condition is met.\n *\n * @param {Condition} condition\n * @param {Object<string, any>} data\n * @returns {boolean}\n */\n _checkHideCondition(condition, data) {\n if (!condition.hide) {\n return false;\n }\n\n const result = this.check(condition.hide, data);\n\n return result === true;\n }\n\n _cleanlyClearDataAtPath(valuePath, obj) {\n const workingValuePath = [...valuePath];\n let recurse = false;\n\n do {\n set(obj, workingValuePath, undefined);\n workingValuePath.pop();\n const parentObject = get(obj, workingValuePath);\n recurse = !!workingValuePath.length && (this._isEmptyObject(parentObject) || this._isEmptyArray(parentObject));\n } while (recurse);\n }\n\n _isEmptyObject(parentObject) {\n return isObject(parentObject) && !values(parentObject).length;\n }\n\n _isEmptyArray(parentObject) {\n return Array.isArray(parentObject) && (!parentObject.length || parentObject.every((item) => item === undefined));\n }\n}\n\nConditionChecker.$inject = ['formFieldRegistry', 'pathRegistry', 'eventBus'];\n","import { FeelExpressionLanguage } from './FeelExpressionLanguage';\nimport { FeelersTemplating } from './FeelersTemplating';\nimport { ConditionChecker } from './ConditionChecker';\n\nexport const ExpressionLanguageModule = {\n __init__: ['expressionLanguage', 'templating', 'conditionChecker'],\n expressionLanguage: ['type', FeelExpressionLanguage],\n templating: ['type', FeelersTemplating],\n conditionChecker: ['type', ConditionChecker],\n};\n\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };\n","export class ExpressionLoopPreventer {\n constructor(eventBus) {\n this._computedExpressions = [];\n\n eventBus.on('field.updated', ({ shouldNotRecompute }) => {\n if (shouldNotRecompute) {\n return;\n }\n\n this.reset();\n });\n\n eventBus.on('import.done', this.reset.bind(this));\n eventBus.on('reset', this.reset.bind(this));\n }\n\n /**\n * Checks if the expression field has already been computed, and registers it if not.\n *\n * @param {any} expressionField\n * @returns {boolean} - whether the expression field has already been computed within the current cycle\n */\n registerExpressionExecution(expressionField) {\n if (this._computedExpressions.includes(expressionField)) {\n return false;\n }\n\n this._computedExpressions.push(expressionField);\n\n return true;\n }\n\n /**\n * Resets the list of computed expressions.\n */\n reset() {\n this._computedExpressions = [];\n }\n}\n\nExpressionLoopPreventer.$inject = ['eventBus'];\n","import { ExpressionLoopPreventer } from './ExpressionLoopPreventer';\n\nexport const ExpressionFieldModule = {\n __init__: ['expressionLoopPreventer'],\n expressionLoopPreventer: ['type', ExpressionLoopPreventer],\n};\n\nexport { ExpressionLoopPreventer };\n","import { marked } from 'marked';\n\nexport class MarkdownRenderer {\n /**\n * Render markdown to HTML.\n *\n * @param {string} markdown - The markdown to render\n *\n * @returns {string} HTML\n */\n render(markdown) {\n // @ts-expect-error\n return marked.parse(markdown, {\n gfm: true,\n breaks: true,\n });\n }\n}\n\nMarkdownRenderer.$inject = [];\n","import { MarkdownRenderer } from './MarkdownRenderer';\n\nexport const MarkdownRendererModule = {\n __init__: ['markdownRenderer'],\n markdownRenderer: ['type', MarkdownRenderer],\n};\n\nexport { MarkdownRenderer };\n","import {\n uniqueBy,\n isArray\n} from 'min-dash';\n\n/**\n * @typedef {import('didi').Injector} Injector\n *\n * @typedef {import('../core/Types').ElementLike} ElementLike\n *\n * @typedef {import('../core/EventBus').default} EventBus\n * @typedef {import('./CommandHandler').default} CommandHandler\n *\n * @typedef { any } CommandContext\n * @typedef { {\n * new (...args: any[]) : CommandHandler\n * } } CommandHandlerConstructor\n * @typedef { {\n * [key: string]: CommandHandler;\n * } } CommandHandlerMap\n * @typedef { {\n * command: string;\n * context: any;\n * id?: any;\n * } } CommandStackAction\n * @typedef { {\n * actions: CommandStackAction[];\n * dirty: ElementLike[];\n * trigger: 'execute' | 'undo' | 'redo' | 'clear' | null;\n * atomic?: boolean;\n * } } CurrentExecution\n */\n\n/**\n * A service that offers un- and redoable execution of commands.\n *\n * The command stack is responsible for executing modeling actions\n * in a un- and redoable manner. To do this it delegates the actual\n * command execution to {@link CommandHandler}s.\n *\n * Command handlers provide {@link CommandHandler#execute(ctx)} and\n * {@link CommandHandler#revert(ctx)} methods to un- and redo a command\n * identified by a command context.\n *\n *\n * ## Life-Cycle events\n *\n * In the process the command stack fires a number of life-cycle events\n * that other components to participate in the command execution.\n *\n * * preExecute\n * * preExecuted\n * * execute\n * * executed\n * * postExecute\n * * postExecuted\n * * revert\n * * reverted\n *\n * A special event is used for validating, whether a command can be\n * performed prior to its execution.\n *\n * * canExecute\n *\n * Each of the events is fired as `commandStack.{eventName}` and\n * `commandStack.{commandName}.{eventName}`, respectively. This gives\n * components fine grained control on where to hook into.\n *\n * The event object fired transports `command`, the name of the\n * command and `context`, the command context.\n *\n *\n * ## Creating Command Handlers\n *\n * Command handlers should provide the {@link CommandHandler#execute(ctx)}\n * and {@link CommandHandler#revert(ctx)} methods to implement\n * redoing and undoing of a command.\n *\n * A command handler _must_ ensure undo is performed properly in order\n * not to break the undo chain. It must also return the shapes that\n * got changed during the `execute` and `revert` operations.\n *\n * Command handlers may execute other modeling operations (and thus\n * commands) in their `preExecute(d)` and `postExecute(d)` phases. The command\n * stack will properly group all commands together into a logical unit\n * that may be re- and undone atomically.\n *\n * Command handlers must not execute other commands from within their\n * core implementation (`execute`, `revert`).\n *\n *\n * ## Change Tracking\n *\n * During the execution of the CommandStack it will keep track of all\n * elements that have been touched during the command's execution.\n *\n * At the end of the CommandStack execution it will notify interested\n * components via an 'elements.changed' event with all the dirty\n * elements.\n *\n * The event can be picked up by components that are interested in the fact\n * that elements have been changed. One use case for this is updating\n * their graphical representation after moving / resizing or deletion.\n *\n * @see CommandHandler\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nexport default function CommandStack(eventBus, injector) {\n\n /**\n * A map of all registered command handlers.\n *\n * @type {CommandHandlerMap}\n */\n this._handlerMap = {};\n\n /**\n * A stack containing all re/undoable actions on the diagram\n *\n * @type {CommandStackAction[]}\n */\n this._stack = [];\n\n /**\n * The current index on the stack\n *\n * @type {number}\n */\n this._stackIdx = -1;\n\n /**\n * Current active commandStack execution\n *\n * @type {CurrentExecution}\n */\n this._currentExecution = {\n actions: [],\n dirty: [],\n trigger: null\n };\n\n /**\n * @type {Injector}\n */\n this._injector = injector;\n\n /**\n * @type EventBus\n */\n this._eventBus = eventBus;\n\n /**\n * @type { number }\n */\n this._uid = 1;\n\n eventBus.on([\n 'diagram.destroy',\n 'diagram.clear'\n ], function() {\n this.clear(false);\n }, this);\n}\n\nCommandStack.$inject = [ 'eventBus', 'injector' ];\n\n\n/**\n * Execute a command.\n *\n * @param {string} command The command to execute.\n * @param {CommandContext} context The context with which to execute the command.\n */\nCommandStack.prototype.execute = function(command, context) {\n if (!command) {\n throw new Error('command required');\n }\n\n this._currentExecution.trigger = 'execute';\n\n const action = { command: command, context: context };\n\n this._pushAction(action);\n this._internalExecute(action);\n this._popAction();\n};\n\n\n/**\n * Check whether a command can be executed.\n *\n * Implementors may hook into the mechanism on two ways:\n *\n * * in event listeners:\n *\n * Users may prevent the execution via an event listener.\n * It must prevent the default action for `commandStack.(<command>.)canExecute` events.\n *\n * * in command handlers:\n *\n * If the method {@link CommandHandler#canExecute} is implemented in a handler\n * it will be called to figure out whether the execution is allowed.\n *\n * @param {string} command The command to execute.\n * @param {CommandContext} context The context with which to execute the command.\n *\n * @return {boolean} Whether the command can be executed with the given context.\n */\nCommandStack.prototype.canExecute = function(command, context) {\n\n const action = { command: command, context: context };\n\n const handler = this._getHandler(command);\n\n let result = this._fire(command, 'canExecute', action);\n\n // handler#canExecute will only be called if no listener\n // decided on a result already\n if (result === undefined) {\n if (!handler) {\n return false;\n }\n\n if (handler.canExecute) {\n result = handler.canExecute(context);\n }\n }\n\n return result;\n};\n\n\n/**\n * Clear the command stack, erasing all undo / redo history.\n *\n * @param {boolean} [emit=true] Whether to fire an event. Defaults to `true`.\n */\nCommandStack.prototype.clear = function(emit) {\n this._stack.length = 0;\n this._stackIdx = -1;\n\n if (emit !== false) {\n this._fire('changed', { trigger: 'clear' });\n }\n};\n\n\n/**\n * Undo last command(s)\n */\nCommandStack.prototype.undo = function() {\n let action = this._getUndoAction(),\n next;\n\n if (action) {\n this._currentExecution.trigger = 'undo';\n\n this._pushAction(action);\n\n while (action) {\n this._internalUndo(action);\n next = this._getUndoAction();\n\n if (!next || next.id !== action.id) {\n break;\n }\n\n action = next;\n }\n\n this._popAction();\n }\n};\n\n\n/**\n * Redo last command(s)\n */\nCommandStack.prototype.redo = function() {\n let action = this._getRedoAction(),\n next;\n\n if (action) {\n this._currentExecution.trigger = 'redo';\n\n this._pushAction(action);\n\n while (action) {\n this._internalExecute(action, true);\n next = this._getRedoAction();\n\n if (!next || next.id !== action.id) {\n break;\n }\n\n action = next;\n }\n\n this._popAction();\n }\n};\n\n\n/**\n * Register a handler instance with the command stack.\n *\n * @param {string} command Command to be executed.\n * @param {CommandHandler} handler Handler to execute the command.\n */\nCommandStack.prototype.register = function(command, handler) {\n this._setHandler(command, handler);\n};\n\n\n/**\n * Register a handler type with the command stack by instantiating it and\n * injecting its dependencies.\n *\n * @param {string} command Command to be executed.\n * @param {CommandHandlerConstructor} handlerCls Constructor to instantiate a {@link CommandHandler}.\n */\nCommandStack.prototype.registerHandler = function(command, handlerCls) {\n\n if (!command || !handlerCls) {\n throw new Error('command and handlerCls must be defined');\n }\n\n const handler = this._injector.instantiate(handlerCls);\n this.register(command, handler);\n};\n\n/**\n * @return {boolean}\n */\nCommandStack.prototype.canUndo = function() {\n return !!this._getUndoAction();\n};\n\n/**\n * @return {boolean}\n */\nCommandStack.prototype.canRedo = function() {\n return !!this._getRedoAction();\n};\n\n// stack access //////////////////////\n\nCommandStack.prototype._getRedoAction = function() {\n return this._stack[this._stackIdx + 1];\n};\n\n\nCommandStack.prototype._getUndoAction = function() {\n return this._stack[this._stackIdx];\n};\n\n\n// internal functionality //////////////////////\n\nCommandStack.prototype._internalUndo = function(action) {\n const command = action.command,\n context = action.context;\n\n const handler = this._getHandler(command);\n\n // guard against illegal nested command stack invocations\n this._atomicDo(() => {\n this._fire(command, 'revert', action);\n\n if (handler.revert) {\n this._markDirty(handler.revert(context));\n }\n\n this._revertedAction(action);\n\n this._fire(command, 'reverted', action);\n });\n};\n\n\nCommandStack.prototype._fire = function(command, qualifier, event) {\n if (arguments.length < 3) {\n event = qualifier;\n qualifier = null;\n }\n\n const names = qualifier ? [ command + '.' + qualifier, qualifier ] : [ command ];\n let result;\n\n event = this._eventBus.createEvent(event);\n\n for (const name of names) {\n result = this._eventBus.fire('commandStack.' + name, event);\n\n if (event.cancelBubble) {\n break;\n }\n }\n\n return result;\n};\n\nCommandStack.prototype._createId = function() {\n return this._uid++;\n};\n\nCommandStack.prototype._atomicDo = function(fn) {\n\n const execution = this._currentExecution;\n\n execution.atomic = true;\n\n try {\n fn();\n } finally {\n execution.atomic = false;\n }\n};\n\nCommandStack.prototype._internalExecute = function(action, redo) {\n const command = action.command,\n context = action.context;\n\n const handler = this._getHandler(command);\n\n if (!handler) {\n throw new Error('no command handler registered for <' + command + '>');\n }\n\n this._pushAction(action);\n\n if (!redo) {\n this._fire(command, 'preExecute', action);\n\n if (handler.preExecute) {\n handler.preExecute(context);\n }\n\n this._fire(command, 'preExecuted', action);\n }\n\n // guard against illegal nested command stack invocations\n this._atomicDo(() => {\n\n this._fire(command, 'execute', action);\n\n if (handler.execute) {\n\n // actual execute + mark return results as dirty\n this._markDirty(handler.execute(context));\n }\n\n // log to stack\n this._executedAction(action, redo);\n\n this._fire(command, 'executed', action);\n });\n\n if (!redo) {\n this._fire(command, 'postExecute', action);\n\n if (handler.postExecute) {\n handler.postExecute(context);\n }\n\n this._fire(command, 'postExecuted', action);\n }\n\n this._popAction();\n};\n\n\nCommandStack.prototype._pushAction = function(action) {\n\n const execution = this._currentExecution,\n actions = execution.actions;\n\n const baseAction = actions[0];\n\n if (execution.atomic) {\n throw new Error('illegal invocation in <execute> or <revert> phase (action: ' + action.command + ')');\n }\n\n if (!action.id) {\n action.id = (baseAction && baseAction.id) || this._createId();\n }\n\n actions.push(action);\n};\n\n\nCommandStack.prototype._popAction = function() {\n const execution = this._currentExecution,\n trigger = execution.trigger,\n actions = execution.actions,\n dirty = execution.dirty;\n\n actions.pop();\n\n if (!actions.length) {\n this._eventBus.fire('elements.changed', { elements: uniqueBy('id', dirty.reverse()) });\n\n dirty.length = 0;\n\n this._fire('changed', { trigger: trigger });\n\n execution.trigger = null;\n }\n};\n\n\nCommandStack.prototype._markDirty = function(elements) {\n const execution = this._currentExecution;\n\n if (!elements) {\n return;\n }\n\n elements = isArray(elements) ? elements : [ elements ];\n\n execution.dirty = execution.dirty.concat(elements);\n};\n\n\nCommandStack.prototype._executedAction = function(action, redo) {\n const stackIdx = ++this._stackIdx;\n\n if (!redo) {\n this._stack.splice(stackIdx, this._stack.length, action);\n }\n};\n\n\nCommandStack.prototype._revertedAction = function(action) {\n this._stackIdx--;\n};\n\n\nCommandStack.prototype._getHandler = function(command) {\n return this._handlerMap[command];\n};\n\nCommandStack.prototype._setHandler = function(command, handler) {\n if (!command || !handler) {\n throw new Error('command and handler required');\n }\n\n if (this._handlerMap[command]) {\n throw new Error('overriding handler for command <' + command + '>');\n }\n\n this._handlerMap[command] = handler;\n};\n","import CommandStack from './CommandStack';\n\n/**\n * @type { import('didi').ModuleDeclaration }\n */\nexport default {\n commandStack: [ 'type', CommandStack ]\n};\n","import { set } from 'min-dash';\nimport { clone } from '../../../util';\n\n/**\n * @deprecated\n */\nexport class UpdateFieldValidationHandler {\n constructor(form, validator) {\n this._form = form;\n this._validator = validator;\n }\n\n execute(context) {\n const { field, value, indexes } = context;\n const { errors } = this._form._getState();\n\n context.oldErrors = clone(errors);\n\n const fieldErrors = this._validator.validateField(field, value);\n const updatedErrors = set(\n errors,\n [field.id, ...Object.values(indexes || {})],\n fieldErrors.length ? fieldErrors : undefined,\n );\n this._form._setState({ errors: updatedErrors });\n }\n\n revert(context) {\n this._form._setState({ errors: context.oldErrors });\n }\n}\n\nUpdateFieldValidationHandler.$inject = ['form', 'validator'];\n","import { set } from 'min-dash';\nimport { clone } from '../../../util';\n\nexport class UpdateFieldInstanceValidationHandler {\n constructor(form, validator) {\n this._form = form;\n this._validator = validator;\n }\n\n execute(context) {\n const { fieldInstance, value } = context;\n const { id, indexes } = fieldInstance;\n const { errors } = this._form._getState();\n\n context.oldErrors = clone(errors);\n\n const fieldErrors = this._validator.validateFieldInstance(fieldInstance, value);\n const updatedErrors = set(\n errors,\n [id, ...Object.values(indexes || {})],\n fieldErrors.length ? fieldErrors : undefined,\n );\n this._form._setState({ errors: updatedErrors });\n }\n\n revert(context) {\n this._form._setState({ errors: context.oldErrors });\n }\n}\n\nUpdateFieldInstanceValidationHandler.$inject = ['form', 'validator'];\n","import { UpdateFieldValidationHandler } from './cmd/UpdateFieldValidationHandler';\nimport { UpdateFieldInstanceValidationHandler } from './cmd/UpdateFieldInstanceValidationHandler';\n\nexport class ViewerCommands {\n constructor(commandStack, eventBus) {\n this._commandStack = commandStack;\n\n eventBus.on('form.init', () => {\n this.registerHandlers();\n });\n }\n\n registerHandlers() {\n Object.entries(this.getHandlers()).forEach(([id, handler]) => {\n this._commandStack.registerHandler(id, handler);\n });\n }\n\n getHandlers() {\n return {\n 'formField.validation.update': UpdateFieldValidationHandler,\n 'formFieldInstance.validation.update': UpdateFieldInstanceValidationHandler,\n };\n }\n\n /**\n * @deprecated\n */\n updateFieldValidation(field, value, indexes) {\n const context = {\n field,\n value,\n indexes,\n };\n\n this._commandStack.execute('formField.validation.update', context);\n }\n\n updateFieldInstanceValidation(fieldInstance, value) {\n const context = {\n fieldInstance,\n value,\n };\n\n this._commandStack.execute('formFieldInstance.validation.update', context);\n }\n}\n\nViewerCommands.$inject = ['commandStack', 'eventBus'];\n","import commandModule from 'diagram-js/lib/command';\n\nimport { ViewerCommands } from './ViewerCommands';\n\nexport const ViewerCommandsModule = {\n __depends__: [commandModule],\n __init__: ['viewerCommands'],\n viewerCommands: ['type', ViewerCommands],\n};\n\nexport { ViewerCommands };\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M2 9h5.5v3.086l-1.293-1.293-.707.707L8 14l2.5-2.5-.707-.707L8.5 12.086V9H14V8H2v1ZM13 2H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Zm0 3H3V3h10v2Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M13 10H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1Zm0 3H3v-2h10v2ZM8.5 3.914l1.293 1.293.707-.707L8 2 5.5 4.5l.707.707L7.5 3.914V7H2v1h12V7H8.5V3.914Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6Zm0-1C4.15 1 1 4.15 1 8s3.15 7 7 7 7-3.15 7-7-3.15-7-7-7Z\"/><path fill=\"currentColor\" d=\"M12 7.5H8.5V4h-1v3.5H4v1h3.5V12h1V8.5H12v-1Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"m12 4.7-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8 12 4.7Z\"/></svg>","// disable react hook rules as the linter is confusing the functional components within a class as class components\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport { get } from 'min-dash';\nimport { useContext, useMemo, useRef } from 'preact/hooks';\nimport { LocalExpressionContext } from '../../render/context/LocalExpressionContext';\n\nimport ExpandSvg from '../../render/components/form-fields/icons/Expand.svg';\nimport CollapseSvg from '../../render/components/form-fields/icons/Collapse.svg';\nimport AddSvg from '../../render/components/form-fields/icons/Add.svg';\nimport DeleteSvg from '../../render/components/form-fields/icons/Delete.svg';\n\nimport { buildExpressionContext } from '../../util';\nimport { useScrollIntoView } from '../../render/hooks';\nimport classNames from 'classnames';\n\nexport class RepeatRenderManager {\n constructor(form, formFields, formFieldRegistry, pathRegistry) {\n this._form = form;\n this._formFields = formFields;\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this.Repeater = this.Repeater.bind(this);\n this.RepeatFooter = this.RepeatFooter.bind(this);\n }\n\n /**\n * Checks whether a field is currently repeating its children.\n *\n * @param {string} id - The id of the field to check\n * @returns {boolean} - True if repeatable, false otherwise\n */\n isFieldRepeating(id) {\n if (!id) {\n return false;\n }\n\n const formField = this._formFieldRegistry.get(id);\n const formFieldDefinition = this._formFields.get(formField.type);\n return formFieldDefinition.config.repeatable && formField.isRepeating;\n }\n\n Repeater(props) {\n const { RowsRenderer, indexes, useSharedState, ...restProps } = props;\n\n const [sharedRepeatState] = useSharedState;\n\n const { data } = this._form._getState();\n\n const repeaterField = props.field;\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && values.length > nonCollapsedItems;\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showRemove = repeaterField.allowAddRemove && hasChildren;\n\n const displayValues = isCollapsed ? values.slice(0, nonCollapsedItems) : values;\n const hiddenValues = isCollapsed ? values.slice(nonCollapsedItems) : [];\n\n const onDeleteItem = (index) => {\n const updatedValues = values.slice();\n updatedValues.splice(index, 1);\n\n props.onChange({\n field: repeaterField,\n value: updatedValues,\n indexes,\n });\n };\n\n const parentExpressionContextInfo = useContext(LocalExpressionContext);\n\n return (\n <>\n {displayValues.map((itemValue, itemIndex) => (\n <RepetitionScaffold\n key={itemIndex}\n itemIndex={itemIndex}\n itemValue={itemValue}\n parentExpressionContextInfo={parentExpressionContextInfo}\n repeaterField={repeaterField}\n RowsRenderer={RowsRenderer}\n indexes={indexes}\n onDeleteItem={onDeleteItem}\n showRemove={showRemove}\n {...restProps}\n />\n ))}\n {hiddenValues.length > 0 ? (\n <div className=\"fjs-repeat-row-collapsed\">\n {hiddenValues.map((itemValue, itemIndex) => (\n <RepetitionScaffold\n key={itemIndex}\n itemIndex={itemIndex + nonCollapsedItems}\n itemValue={itemValue}\n parentExpressionContextInfo={parentExpressionContextInfo}\n repeaterField={repeaterField}\n RowsRenderer={RowsRenderer}\n indexes={indexes}\n onDeleteItem={onDeleteItem}\n showRemove={showRemove}\n {...restProps}\n />\n ))}\n </div>\n ) : null}\n </>\n );\n }\n\n RepeatFooter(props) {\n const addButtonRef = useRef(null);\n const { useSharedState, indexes, field: repeaterField, readonly, disabled } = props;\n const [sharedRepeatState, setSharedRepeatState] = useSharedState;\n\n const { data } = this._form._getState();\n\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && values.length > nonCollapsedItems;\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showAdd = repeaterField.allowAddRemove && hasChildren;\n\n const toggle = () => {\n setSharedRepeatState((state) => ({ ...state, isCollapsed: !isCollapsed }));\n };\n\n const shouldScroll = useRef(false);\n\n const onAddItem = () => {\n const updatedValues = values.slice();\n const newItem = this._form._getInitializedFieldData(this._form._getState().data, {\n container: repeaterField,\n indexes: { ...indexes, [repeaterField.id]: updatedValues.length },\n });\n\n updatedValues.push(newItem);\n\n shouldScroll.current = true;\n\n props.onChange({\n value: updatedValues,\n });\n\n setSharedRepeatState((state) => ({ ...state, isCollapsed: false }));\n };\n\n useScrollIntoView(\n addButtonRef,\n [values.length],\n {\n align: 'bottom',\n behavior: 'auto',\n offset: 20,\n },\n [shouldScroll],\n );\n\n return (\n <div\n className={classNames('fjs-repeat-render-footer', {\n 'fjs-remove-allowed': repeaterField.allowAddRemove,\n })}>\n {showAdd ? (\n <button\n type=\"button\"\n readOnly={readonly}\n disabled={disabled || readonly}\n class=\"fjs-repeat-render-add\"\n ref={addButtonRef}\n onClick={onAddItem}>\n <>\n <AddSvg /> {'Add new'}\n </>\n </button>\n ) : null}\n {collapseEnabled ? (\n <button type=\"button\" class=\"fjs-repeat-render-collapse\" onClick={toggle}>\n {isCollapsed ? (\n <>\n <ExpandSvg /> {`Expand all (${values.length})`}\n </>\n ) : (\n <>\n <CollapseSvg /> {'Collapse'}\n </>\n )}\n </button>\n ) : null}\n </div>\n );\n }\n\n _getNonCollapsedItems(field) {\n const DEFAULT_NON_COLLAPSED_ITEMS = 5;\n\n const { nonCollapsedItems } = field;\n\n return nonCollapsedItems ? nonCollapsedItems : DEFAULT_NON_COLLAPSED_ITEMS;\n }\n}\n\n/**\n * Individual repetition of a repeated field and context scaffolding.\n *\n * @param {Object} props\n * @param {number} props.itemIndex\n * @param {Object} props.itemValue\n * @param {Object} props.parentExpressionContextInfo\n * @param {Object} props.repeaterField\n * @param {import('preact').FunctionComponent} props.RowsRenderer\n * @param {Object} props.indexes\n * @param {Function} props.onDeleteItem\n * @param {boolean} props.showRemove\n */\n\nconst RepetitionScaffold = (props) => {\n const {\n itemIndex,\n itemValue,\n parentExpressionContextInfo,\n repeaterField,\n RowsRenderer,\n indexes,\n onDeleteItem,\n showRemove,\n ...restProps\n } = props;\n\n const elementProps = useMemo(\n () => ({\n ...restProps,\n indexes: { ...(indexes || {}), [repeaterField.id]: itemIndex },\n }),\n [itemIndex, indexes, repeaterField.id, restProps],\n );\n\n const localExpressionContextInfo = useMemo(\n () => ({\n data: parentExpressionContextInfo.data,\n this: itemValue,\n parent: buildExpressionContext({ ...parentExpressionContextInfo, data: parentExpressionContextInfo.this }),\n i: [...parentExpressionContextInfo.i, itemIndex + 1],\n }),\n [itemIndex, parentExpressionContextInfo, itemValue],\n );\n\n return !showRemove ? (\n <LocalExpressionContext.Provider value={localExpressionContextInfo}>\n <RowsRenderer {...elementProps} />\n </LocalExpressionContext.Provider>\n ) : (\n <div class=\"fjs-repeat-row-container\">\n <div class=\"fjs-repeat-row-rows\">\n <LocalExpressionContext.Provider value={localExpressionContextInfo}>\n <RowsRenderer {...elementProps} />\n </LocalExpressionContext.Provider>\n </div>\n <button\n type=\"button\"\n class=\"fjs-repeat-row-remove\"\n aria-label={`Remove list item ${itemIndex + 1}`}\n onClick={() => onDeleteItem(itemIndex)}>\n <div class=\"fjs-repeat-row-remove-icon-container\">\n <DeleteSvg />\n </div>\n </button>\n </div>\n );\n};\n\nRepeatRenderManager.$inject = ['form', 'formFields', 'formFieldRegistry', 'pathRegistry'];\n","import { RepeatRenderManager } from './RepeatRenderManager';\n\nexport const RepeatRenderModule = {\n __init__: ['repeatRenderManager'],\n repeatRenderManager: ['type', RepeatRenderManager],\n};\n\nexport { RepeatRenderManager };\n","import {\n isFunction,\n isArray,\n isNumber,\n bind,\n assign\n} from 'min-dash';\n\nvar FN_REF = '__fn';\n\nvar DEFAULT_PRIORITY = 1000;\n\nvar slice = Array.prototype.slice;\n\n/**\n * @typedef { {\n * stopPropagation(): void;\n * preventDefault(): void;\n * cancelBubble: boolean;\n * defaultPrevented: boolean;\n * returnValue: any;\n * } } Event\n */\n\n/**\n * @template E\n *\n * @typedef { (event: E & Event, ...any) => any } EventBusEventCallback\n */\n\n/**\n * @typedef { {\n * priority: number;\n * next: EventBusListener | null;\n * callback: EventBusEventCallback<any>;\n * } } EventBusListener\n */\n\n/**\n * A general purpose event bus.\n *\n * This component is used to communicate across a diagram instance.\n * Other parts of a diagram can use it to listen to and broadcast events.\n *\n *\n * ## Registering for Events\n *\n * The event bus provides the {@link EventBus#on} and {@link EventBus#once}\n * methods to register for events. {@link EventBus#off} can be used to\n * remove event registrations. Listeners receive an instance of {@link Event}\n * as the first argument. It allows them to hook into the event execution.\n *\n * ```javascript\n *\n * // listen for event\n * eventBus.on('foo', function(event) {\n *\n * // access event type\n * event.type; // 'foo'\n *\n * // stop propagation to other listeners\n * event.stopPropagation();\n *\n * // prevent event default\n * event.preventDefault();\n * });\n *\n * // listen for event with custom payload\n * eventBus.on('bar', function(event, payload) {\n * console.log(payload);\n * });\n *\n * // listen for event returning value\n * eventBus.on('foobar', function(event) {\n *\n * // stop event propagation + prevent default\n * return false;\n *\n * // stop event propagation + return custom result\n * return {\n * complex: 'listening result'\n * };\n * });\n *\n *\n * // listen with custom priority (default=1000, higher is better)\n * eventBus.on('priorityfoo', 1500, function(event) {\n * console.log('invoked first!');\n * });\n *\n *\n * // listen for event and pass the context (`this`)\n * eventBus.on('foobar', function(event) {\n * this.foo();\n * }, this);\n * ```\n *\n *\n * ## Emitting Events\n *\n * Events can be emitted via the event bus using {@link EventBus#fire}.\n *\n * ```javascript\n *\n * // false indicates that the default action\n * // was prevented by listeners\n * if (eventBus.fire('foo') === false) {\n * console.log('default has been prevented!');\n * };\n *\n *\n * // custom args + return value listener\n * eventBus.on('sum', function(event, a, b) {\n * return a + b;\n * });\n *\n * // you can pass custom arguments + retrieve result values.\n * var sum = eventBus.fire('sum', 1, 2);\n * console.log(sum); // 3\n * ```\n *\n * @template [EventMap=null]\n */\nexport default function EventBus() {\n\n /**\n * @type { Record<string, EventBusListener> }\n */\n this._listeners = {};\n\n // cleanup on destroy on lowest priority to allow\n // message passing until the bitter end\n this.on('diagram.destroy', 1, this._destroy, this);\n}\n\n/**\n * @overlord\n *\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\n/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template {keyof EventMap} EventName\n *\n * @param {EventName} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<EventMap[EventName]>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n events = isArray(events) ? events : [ events ];\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n var actualCallback = callback;\n\n if (that) {\n actualCallback = bind(callback, that);\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n actualCallback[FN_REF] = callback[FN_REF] || callback;\n }\n\n var self = this;\n\n events.forEach(function(e) {\n self._addListener(e, {\n priority: priority,\n callback: actualCallback,\n next: null\n });\n });\n};\n\n/**\n * @overlord\n *\n * Register an event listener that is called only once.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] the listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\n/**\n * Register an event listener that is called only once.\n *\n * @template {keyof EventMap} EventName\n *\n * @param {EventName} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<EventMap[EventName]>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.once = function(events, priority, callback, that) {\n var self = this;\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n function wrappedCallback() {\n wrappedCallback.__isTomb = true;\n\n var result = callback.apply(that, arguments);\n\n self.off(events, wrappedCallback);\n\n return result;\n }\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n wrappedCallback[FN_REF] = callback;\n\n this.on(events, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|string[]} events\n * @param {EventBusEventCallback} [callback]\n */\nEventBus.prototype.off = function(events, callback) {\n\n events = isArray(events) ? events : [ events ];\n\n var self = this;\n\n events.forEach(function(event) {\n self._removeListener(event, callback);\n });\n\n};\n\n\n/**\n * Create an event recognized be the event bus.\n *\n * @param {Object} data Event data.\n *\n * @return {Event} An event that will be recognized by the event bus.\n */\nEventBus.prototype.createEvent = function(data) {\n var event = new InternalEvent();\n\n event.init(data);\n\n return event;\n};\n\n\n/**\n * Fires an event.\n *\n * @example\n *\n * ```javascript\n * // fire event by name\n * events.fire('foo');\n *\n * // fire event object with nested type\n * var event = { type: 'foo' };\n * events.fire(event);\n *\n * // fire event with explicit type\n * var event = { x: 10, y: 20 };\n * events.fire('element.moved', event);\n *\n * // pass additional arguments to the event\n * events.on('foo', function(event, bar) {\n * alert(bar);\n * });\n *\n * events.fire({ type: 'foo' }, 'I am bar!');\n * ```\n *\n * @param {string} [type] event type\n * @param {Object} [data] event or event data\n * @param {...any} [args] additional arguments the callback will be called with.\n *\n * @return {any} The return value. Will be set to `false` if the default was prevented.\n */\nEventBus.prototype.fire = function(type, data) {\n var event,\n firstListener,\n returnValue,\n args;\n\n args = slice.call(arguments);\n\n if (typeof type === 'object') {\n data = type;\n type = data.type;\n }\n\n if (!type) {\n throw new Error('no event type specified');\n }\n\n firstListener = this._listeners[type];\n\n if (!firstListener) {\n return;\n }\n\n // we make sure we fire instances of our home made\n // events here. We wrap them only once, though\n if (data instanceof InternalEvent) {\n\n // we are fine, we alread have an event\n event = data;\n } else {\n event = this.createEvent(data);\n }\n\n // ensure we pass the event as the first parameter\n args[0] = event;\n\n // original event type (in case we delegate)\n var originalType = event.type;\n\n // update event type before delegation\n if (type !== originalType) {\n event.type = type;\n }\n\n try {\n returnValue = this._invokeListeners(event, args, firstListener);\n } finally {\n\n // reset event type after delegation\n if (type !== originalType) {\n event.type = originalType;\n }\n }\n\n // set the return value to false if the event default\n // got prevented and no other return value exists\n if (returnValue === undefined && event.defaultPrevented) {\n returnValue = false;\n }\n\n return returnValue;\n};\n\n/**\n * Handle an error by firing an event.\n *\n * @param {Error} error The error to be handled.\n *\n * @return {boolean} Whether the error was handled.\n */\nEventBus.prototype.handleError = function(error) {\n return this.fire('error', { error: error }) === false;\n};\n\n\nEventBus.prototype._destroy = function() {\n this._listeners = {};\n};\n\n/**\n * @param {Event} event\n * @param {any[]} args\n * @param {EventBusListener} listener\n *\n * @return {any}\n */\nEventBus.prototype._invokeListeners = function(event, args, listener) {\n\n var returnValue;\n\n while (listener) {\n\n // handle stopped propagation\n if (event.cancelBubble) {\n break;\n }\n\n returnValue = this._invokeListener(event, args, listener);\n\n listener = listener.next;\n }\n\n return returnValue;\n};\n\n/**\n * @param {Event} event\n * @param {any[]} args\n * @param {EventBusListener} listener\n *\n * @return {any}\n */\nEventBus.prototype._invokeListener = function(event, args, listener) {\n\n var returnValue;\n\n if (listener.callback.__isTomb) {\n return returnValue;\n }\n\n try {\n\n // returning false prevents the default action\n returnValue = invokeFunction(listener.callback, args);\n\n // stop propagation on return value\n if (returnValue !== undefined) {\n event.returnValue = returnValue;\n event.stopPropagation();\n }\n\n // prevent default on return false\n if (returnValue === false) {\n event.preventDefault();\n }\n } catch (error) {\n if (!this.handleError(error)) {\n console.error('unhandled error in event listener', error);\n\n throw error;\n }\n }\n\n return returnValue;\n};\n\n/**\n * Add new listener with a certain priority to the list\n * of listeners (for the given event).\n *\n * The semantics of listener registration / listener execution are\n * first register, first serve: New listeners will always be inserted\n * after existing listeners with the same priority.\n *\n * Example: Inserting two listeners with priority 1000 and 1300\n *\n * * before: [ 1500, 1500, 1000, 1000 ]\n * * after: [ 1500, 1500, (new=1300), 1000, 1000, (new=1000) ]\n *\n * @param {string} event\n * @param {EventBusListener} newListener\n */\nEventBus.prototype._addListener = function(event, newListener) {\n\n var listener = this._getListeners(event),\n previousListener;\n\n // no prior listeners\n if (!listener) {\n this._setListeners(event, newListener);\n\n return;\n }\n\n // ensure we order listeners by priority from\n // 0 (high) to n > 0 (low)\n while (listener) {\n\n if (listener.priority < newListener.priority) {\n\n newListener.next = listener;\n\n if (previousListener) {\n previousListener.next = newListener;\n } else {\n this._setListeners(event, newListener);\n }\n\n return;\n }\n\n previousListener = listener;\n listener = listener.next;\n }\n\n // add new listener to back\n previousListener.next = newListener;\n};\n\n\n/**\n * @param {string} name\n *\n * @return {EventBusListener}\n */\nEventBus.prototype._getListeners = function(name) {\n return this._listeners[name];\n};\n\n/**\n * @param {string} name\n * @param {EventBusListener} listener\n */\nEventBus.prototype._setListeners = function(name, listener) {\n this._listeners[name] = listener;\n};\n\nEventBus.prototype._removeListener = function(event, callback) {\n\n var listener = this._getListeners(event),\n nextListener,\n previousListener,\n listenerCallback;\n\n if (!callback) {\n\n // clear listeners\n this._setListeners(event, null);\n\n return;\n }\n\n while (listener) {\n\n nextListener = listener.next;\n\n listenerCallback = listener.callback;\n\n if (listenerCallback === callback || listenerCallback[FN_REF] === callback) {\n if (previousListener) {\n previousListener.next = nextListener;\n } else {\n\n // new first listener\n this._setListeners(event, nextListener);\n }\n }\n\n previousListener = listener;\n listener = nextListener;\n }\n};\n\n/**\n * A event that is emitted via the event bus.\n */\nfunction InternalEvent() { }\n\nInternalEvent.prototype.stopPropagation = function() {\n this.cancelBubble = true;\n};\n\nInternalEvent.prototype.preventDefault = function() {\n this.defaultPrevented = true;\n};\n\nInternalEvent.prototype.init = function(data) {\n assign(this, data || {});\n};\n\n\n/**\n * Invoke function. Be fast...\n *\n * @param {Function} fn\n * @param {any[]} args\n *\n * @return {any}\n */\nfunction invokeFunction(fn, args) {\n return fn.apply(null, args);\n}\n","import { isNil, get, set } from 'min-dash';\nimport { countDecimals } from '../render/components/util/numberFieldUtil';\nimport { runExpressionEvaluation } from '../util/expressions';\nimport Big from 'big.js';\n\nconst EMAIL_PATTERN =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nconst PHONE_PATTERN =\n /(\\+|00)(297|93|244|1264|358|355|376|971|54|374|1684|1268|61|43|994|257|32|229|226|880|359|973|1242|387|590|375|501|1441|591|55|1246|673|975|267|236|1|61|41|56|86|225|237|243|242|682|57|269|238|506|53|5999|61|1345|357|420|49|253|1767|45|1809|1829|1849|213|593|20|291|212|34|372|251|358|679|500|33|298|691|241|44|995|44|233|350|224|590|220|245|240|30|1473|299|502|594|1671|592|852|504|385|509|36|62|44|91|246|353|98|964|354|972|39|1876|44|962|81|76|77|254|996|855|686|1869|82|383|965|856|961|231|218|1758|423|94|266|370|352|371|853|590|212|377|373|261|960|52|692|389|223|356|95|382|976|1670|258|222|1664|596|230|265|60|262|264|687|227|672|234|505|683|31|47|977|674|64|968|92|507|64|51|63|680|675|48|1787|1939|850|351|595|970|689|974|262|40|7|250|966|249|221|65|500|4779|677|232|503|378|252|508|381|211|239|597|421|386|46|268|1721|248|963|1649|235|228|66|992|690|993|670|676|1868|216|90|688|886|255|256|380|598|1|998|3906698|379|1784|58|1284|1340|84|678|681|685|967|27|260|263)(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{4,20}$/;\n\nconst VALIDATE_FEEL_PROPERTIES = ['min', 'max', 'minLength', 'maxLength'];\n\nexport class Validator {\n constructor(expressionLanguage, conditionChecker, form, formFieldRegistry) {\n this._expressionLanguage = expressionLanguage;\n this._conditionChecker = conditionChecker;\n this._form = form;\n this._formFieldRegistry = formFieldRegistry;\n }\n\n /**\n * Validate against a field definition, does not support proper expression evaluation.\n *\n * @deprecated use validateFieldInstance instead\n */\n validateField(field, value) {\n const { type, validate } = field;\n\n let errors = [];\n\n if (type === 'number') {\n errors = [...errors, ...runNumberValidation(field, value)];\n }\n\n if (!validate) {\n return errors;\n }\n\n const evaluatedValidation = oldEvaluateFEELValues(\n validate,\n this._expressionLanguage,\n this._conditionChecker,\n this._form,\n );\n\n errors = [...errors, ...runPresetValidation(field, evaluatedValidation, value)];\n\n return errors;\n }\n\n /**\n * Validate a field instance.\n *\n * @param {Object} fieldInstance\n * @param {string} value\n *\n * @returns {Array<string>}\n */\n validateFieldInstance(fieldInstance, value) {\n const { id, expressionContextInfo } = fieldInstance;\n\n const field = this._formFieldRegistry.get(id);\n\n if (!field) {\n return [];\n }\n\n const { type, validate } = field;\n\n let errors = [];\n\n if (type === 'number') {\n errors = [...errors, ...runNumberValidation(field, value)];\n }\n\n if (!validate) {\n return errors;\n }\n\n const evaluatedValidation = evaluateFEELValues(validate, this._expressionLanguage, expressionContextInfo);\n\n errors = [...errors, ...runPresetValidation(field, evaluatedValidation, value)];\n\n return errors;\n }\n}\n\nValidator.$inject = ['expressionLanguage', 'conditionChecker', 'form', 'formFieldRegistry'];\n\n// helpers //////////\n\nfunction runNumberValidation(field, value) {\n const { decimalDigits, increment } = field;\n const errors = [];\n\n if (value === 'NaN') {\n errors.push('Value is not a number.');\n } else if (value) {\n if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\n errors.push(\n 'Value is expected to ' +\n (decimalDigits === 0\n ? 'be an integer'\n : `have at most ${decimalDigits} decimal digit${decimalDigits > 1 ? 's' : ''}`) +\n '.',\n );\n }\n\n if (increment) {\n const bigValue = Big(value);\n const bigIncrement = Big(increment);\n\n const offset = bigValue.mod(bigIncrement);\n\n if (offset.cmp(0) !== 0) {\n const previousValue = bigValue.minus(offset);\n const nextValue = previousValue.plus(bigIncrement);\n\n errors.push(`Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`);\n }\n }\n }\n\n return errors;\n}\n\nfunction runPresetValidation(field, validation, value) {\n const errors = [];\n\n if (validation.pattern && value && !new RegExp(validation.pattern).test(value)) {\n errors.push(`Field must match pattern ${validation.pattern}.`);\n }\n\n if (validation.required) {\n const isUncheckedCheckbox = field.type === 'checkbox' && value === false;\n const isUnsetValue = isNil(value) || value === '';\n const isEmptyMultiselect = Array.isArray(value) && value.length === 0;\n\n if (isUncheckedCheckbox || isUnsetValue || isEmptyMultiselect) {\n errors.push('Field is required.');\n }\n }\n\n if ('min' in validation && (value || value === 0) && value < validation.min) {\n errors.push(`Field must have minimum value of ${validation.min}.`);\n }\n\n if ('max' in validation && (value || value === 0) && value > validation.max) {\n errors.push(`Field must have maximum value of ${validation.max}.`);\n }\n\n if ('minLength' in validation && value && value.trim().length < validation.minLength) {\n errors.push(`Field must have minimum length of ${validation.minLength}.`);\n }\n\n if ('maxLength' in validation && value && value.trim().length > validation.maxLength) {\n errors.push(`Field must have maximum length of ${validation.maxLength}.`);\n }\n\n if ('validationType' in validation && value && validation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\n errors.push('Field must be a valid international phone number. (e.g. +4930664040900)');\n }\n\n if ('validationType' in validation && value && validation.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\n errors.push('Field must be a valid email.');\n }\n\n return errors;\n}\n\nfunction evaluateFEELValues(validate, expressionLanguage, expressionContextInfo) {\n const evaluatedValidate = { ...validate };\n\n VALIDATE_FEEL_PROPERTIES.forEach((property) => {\n const path = property.split('.');\n const value = get(evaluatedValidate, path);\n const evaluatedValue = runExpressionEvaluation(expressionLanguage, value, expressionContextInfo);\n set(evaluatedValidate, path, evaluatedValue === null ? undefined : evaluatedValue);\n });\n\n return evaluatedValidate;\n}\n\nfunction oldEvaluateFEELValues(validate, expressionLanguage, conditionChecker, form) {\n const evaluatedValidate = { ...validate };\n\n VALIDATE_FEEL_PROPERTIES.forEach((property) => {\n const path = property.split('.');\n\n const value = get(evaluatedValidate, path);\n\n // mirroring FEEL evaluation of our hooks\n if (!expressionLanguage || !expressionLanguage.isExpression(value)) {\n return value;\n }\n\n const { initialData, data } = form._getState();\n\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\n const filteredData = { ...initialData, ...newData };\n\n const evaluatedValue = expressionLanguage.evaluate(value, filteredData);\n\n // replace validate property with evaluated value\n if (evaluatedValue) {\n set(evaluatedValidate, path, evaluatedValue);\n }\n });\n\n return evaluatedValidate;\n}\n","import { clone } from '../util';\n\nexport class Importer {\n /**\n * @constructor\n * @param { import('./FormFieldRegistry').FormFieldRegistry } formFieldRegistry\n * @param { import('./PathRegistry').PathRegistry } pathRegistry\n * @param { import('./FieldFactory').FieldFactory } fieldFactory\n * @param { import('./FormLayouter').FormLayouter } formLayouter\n */\n constructor(formFieldRegistry, pathRegistry, fieldFactory, formLayouter) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._fieldFactory = fieldFactory;\n this._formLayouter = formLayouter;\n }\n\n /**\n * Import schema creating rows, fields, attaching additional\n * information to each field and adding fields to the\n * field registry.\n *\n * Additional information attached:\n *\n * * `id` (unless present)\n * * `_parent`\n * * `_path`\n *\n * @param {any} schema\n *\n * @typedef {{ warnings: Error[], schema: any }} ImportResult\n * @returns {ImportResult}\n */\n importSchema(schema) {\n // TODO: Add warnings\n const warnings = [];\n\n try {\n this._cleanup();\n const importedSchema = this.importFormField(clone(schema));\n this._formLayouter.calculateLayout(clone(importedSchema));\n\n return {\n schema: importedSchema,\n warnings,\n };\n } catch (err) {\n this._cleanup();\n err.warnings = warnings;\n throw err;\n }\n }\n\n _cleanup() {\n this._formLayouter.clear();\n this._formFieldRegistry.clear();\n this._pathRegistry.clear();\n }\n\n /**\n * @param {{[x: string]: any}} fieldAttrs\n * @param {String} [parentId]\n * @param {number} [index]\n *\n * @return {any} field\n */\n importFormField(fieldAttrs, parentId, index) {\n const { components } = fieldAttrs;\n\n let parent, path;\n\n if (parentId) {\n parent = this._formFieldRegistry.get(parentId);\n }\n\n // set form field path\n path = parent ? [...parent._path, 'components', index] : [];\n\n const field = this._fieldFactory.create(\n {\n ...fieldAttrs,\n _path: path,\n _parent: parentId,\n },\n false,\n );\n\n this._formFieldRegistry.add(field);\n\n if (components) {\n field.components = this.importFormFields(components, field.id);\n }\n\n return field;\n }\n\n /**\n * @param {Array<any>} components\n * @param {string} parentId\n *\n * @return {Array<any>} imported components\n */\n importFormFields(components, parentId) {\n return components.map((component, index) => {\n return this.importFormField(component, parentId, index);\n });\n }\n}\n\nImporter.$inject = ['formFieldRegistry', 'pathRegistry', 'fieldFactory', 'formLayouter'];\n","import { getAncestryList } from '../util';\n\nexport class FieldFactory {\n /**\n * @constructor\n *\n * @param formFieldRegistry\n * @param formFields\n */\n constructor(formFieldRegistry, pathRegistry, formFields) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._formFields = formFields;\n }\n\n create(attrs, isNewField = true) {\n const { id, type, key, path, _parent } = attrs;\n\n const fieldDefinition = this._formFields.get(type);\n\n if (!fieldDefinition) {\n throw new Error(`form field of type <${type}> not supported`);\n }\n\n const { config } = fieldDefinition;\n\n if (!config) {\n throw new Error(`form field of type <${type}> has no config`);\n }\n\n if (id && this._formFieldRegistry._ids.assigned(id)) {\n throw new Error(`form field with id <${id}> already exists`);\n }\n\n // ensure that we can claim the path\n\n const parent = _parent && this._formFieldRegistry.get(_parent);\n const parentPath = (parent && this._pathRegistry.getValuePath(parent)) || [];\n const knownAncestorIds = getAncestryList(_parent, this._formFieldRegistry);\n\n if (\n config.keyed &&\n key &&\n !this._pathRegistry.canClaimPath([...parentPath, ...key.split('.')], {\n isClosed: true,\n knownAncestorIds,\n })\n ) {\n throw new Error(`binding path '${[...parentPath, key].join('.')}' is already claimed`);\n }\n\n if (\n config.pathed &&\n path &&\n !this._pathRegistry.canClaimPath([...parentPath, ...path.split('.')], {\n isRepeatable: config.repeatable,\n knownAncestorIds,\n })\n ) {\n throw new Error(`binding path '${[...parentPath, ...path.split('.')].join('.')}' is already claimed`);\n }\n\n const field = config.create(\n {\n ...(config.label ? { label: config.label } : {}),\n ...attrs,\n },\n isNewField,\n );\n\n this._ensureId(field);\n\n if (config.keyed) {\n this._ensureKey(field);\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), {\n isClosed: true,\n claimerId: field.id,\n knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry),\n });\n }\n\n if (config.pathed) {\n if (config.repeatable) {\n this._enforceDefaultPath(field);\n }\n\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), {\n isRepeatable: config.repeatable,\n claimerId: field.id,\n knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry),\n });\n }\n\n return field;\n }\n\n _ensureId(field) {\n if (field.id) {\n this._formFieldRegistry._ids.claim(field.id, field);\n\n return;\n }\n\n let prefix = 'Field';\n\n if (field.type === 'default') {\n prefix = 'Form';\n }\n\n field.id = this._formFieldRegistry._ids.nextPrefixed(`${prefix}_`, field);\n }\n\n _ensureKey(field) {\n if (!field.key) {\n field.key = this._getUniqueKeyPath(field);\n }\n }\n\n _enforceDefaultPath(field) {\n if (!field.path) {\n field.path = this._getUniqueKeyPath(field);\n }\n }\n\n _getUniqueKeyPath(field) {\n let random;\n const parent = this._formFieldRegistry.get(field._parent);\n\n // ensure key uniqueness at level\n do {\n random = Math.random().toString(36).substring(7);\n } while (parent && parent.components.some((child) => child.key === random));\n\n return `${field.type}_${random}`;\n }\n}\n\nFieldFactory.$inject = ['formFieldRegistry', 'pathRegistry', 'formFields'];\n","import { isArray } from 'min-dash';\nimport { clone, getAncestryList } from '../util';\n\n/**\n * The PathRegistry class manages a hierarchical structure of paths associated with form fields.\n * It enables claiming, unclaiming, and validating paths within this structure.\n *\n * Example Tree Structure:\n *\n * [\n * {\n * segment: 'root',\n * claimCount: 1,\n * children: [\n * {\n * segment: 'child1',\n * claimCount: 2,\n * children: null // A leaf node (closed path)\n * },\n * {\n * segment: 'child2',\n * claimCount: 1,\n * children: [\n * {\n * segment: 'subChild1',\n * claimCount: 1,\n * children: [] // An open node (open path)\n * }\n * ]\n * }\n * ]\n * }\n * ]\n */\nexport class PathRegistry {\n constructor(formFieldRegistry, formFields, injector) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n this._injector = injector;\n this._dataPaths = [];\n }\n\n canClaimPath(path, options = {}) {\n const {\n isClosed = false,\n isRepeatable = false,\n skipAncestryCheck = false,\n claimerId = null,\n knownAncestorIds = [],\n } = options;\n\n let node = { children: this._dataPaths };\n\n // (1) if we reach a leaf node, we cannot claim it, if we reach an open node, we can\n // if we reach a repeatable node, we need to ensure that the claimer is (or will be) an ancestor of the repeater\n for (const segment of path) {\n node = _getNextSegment(node, segment);\n\n if (!node) {\n return true;\n }\n\n if (node.isRepeatable && !skipAncestryCheck) {\n if (!(claimerId || knownAncestorIds.length)) {\n throw new Error(\n 'cannot claim a path that contains a repeater without specifying a claimerId or knownAncestorIds',\n );\n }\n\n const isValidRepeatClaim =\n knownAncestorIds.includes(node.repeaterId) ||\n (claimerId && getAncestryList(claimerId, this._formFieldRegistry).includes(node.repeaterId));\n\n if (!isValidRepeatClaim) {\n return false;\n }\n }\n\n if (node.children === null) {\n return false;\n }\n }\n\n // (2) if the path lands in the middle of the tree, we can only claim an open, non-repeatable path\n return !(isClosed || isRepeatable);\n }\n\n claimPath(path, options = {}) {\n const { isClosed = false, isRepeatable = false, claimerId = null, knownAncestorIds = [] } = options;\n\n if (!this.canClaimPath(path, { isClosed, isRepeatable, claimerId, knownAncestorIds })) {\n throw new Error(`cannot claim path '${path.join('.')}'`);\n }\n\n let node = { children: this._dataPaths };\n\n for (const segment of path) {\n let child = _getNextSegment(node, segment);\n\n if (!child) {\n child = { segment, claimCount: 1, children: [] };\n node.children.push(child);\n } else {\n child.claimCount++;\n }\n\n node = child;\n }\n\n if (isClosed) {\n node.children = null;\n }\n\n // add some additional info when we make a repeatable path claim\n if (isRepeatable) {\n node.isRepeatable = true;\n node.repeaterId = claimerId;\n }\n }\n\n unclaimPath(path) {\n // verification Pass\n let node = { children: this._dataPaths };\n for (const segment of path) {\n const child = _getNextSegment(node, segment);\n if (!child) {\n throw new Error(`no open path found for '${path.join('.')}'`);\n }\n node = child;\n }\n\n // mutation Pass\n node = { children: this._dataPaths };\n for (const segment of path) {\n const child = _getNextSegment(node, segment);\n\n child.claimCount--;\n\n if (child.claimCount === 0) {\n node.children.splice(node.children.indexOf(child), 1);\n break; // Abort early if claimCount reaches zero\n }\n\n node = child;\n }\n }\n\n /**\n * Applies a function (fn) recursively on a given field and its children.\n *\n * - `field`: Starting field object.\n * - `fn`: Function to apply.\n * - `context`: Optional object for passing data between calls.\n *\n * Stops early if `fn` returns `false`. Useful for traversing the form field tree.\n *\n * @returns {boolean} Success status based on function execution.\n */\n executeRecursivelyOnFields(field, fn, context = {}) {\n let result = true;\n\n const formFieldConfig = this._formFields.get(field.type).config;\n\n if (formFieldConfig.keyed) {\n const callResult = fn({ field, isClosed: true, isRepeatable: false, context });\n return result && callResult;\n } else if (formFieldConfig.pathed) {\n const callResult = fn({ field, isClosed: false, isRepeatable: formFieldConfig.repeatable, context });\n result = result && callResult;\n }\n\n // stop executing if false is specifically returned or if preventing recursion\n if (result === false || context.preventRecursion) {\n return result;\n }\n\n if (Array.isArray(field.components)) {\n for (const child of field.components) {\n const callResult = this.executeRecursivelyOnFields(child, fn, clone(context));\n result = result && callResult;\n\n // stop executing if false is specifically returned\n if (result === false) {\n return result;\n }\n }\n }\n\n return result;\n }\n\n /**\n * Generates an array representing the binding path to an underlying data object for a form field.\n *\n * @param {Object} field - The field object with properties: `key`, `path`, `id`, and optionally `_parent`.\n * @param {Object} [options={}] - Configuration options.\n * @param {Object} [options.replacements={}] - A map of field IDs to alternative path arrays.\n * @param {Object} [options.indexes=null] - A map of parent IDs to the index of the field within said parent, leave null to get an unindexed path.\n * @param {Object} [options.cutoffNode] - The ID of the parent field at which to stop generating the path.\n *\n * @returns {(Array<string>|undefined)} An array of strings representing the binding path, or undefined if not determinable.\n */\n getValuePath(field, options = {}) {\n const { replacements = {}, indexes = null, cutoffNode = null } = options;\n\n let localValuePath = [];\n\n const hasReplacement = Object.prototype.hasOwnProperty.call(replacements, field.id);\n const formFieldConfig = this._formFields.get(field.type).config;\n\n // uses path overrides instead of true path to calculate a potential value path\n if (hasReplacement) {\n const replacement = replacements[field.id];\n\n if (replacement === null || replacement === undefined || replacement === '') {\n localValuePath = [];\n } else if (typeof replacement === 'string') {\n localValuePath = replacement.split('.');\n } else if (Array.isArray(replacement)) {\n localValuePath = replacement;\n } else {\n throw new Error(`replacements for field ${field.id} must be a string, array or null/undefined`);\n }\n } else if (formFieldConfig.keyed) {\n localValuePath = field.key.split('.');\n } else if (formFieldConfig.pathed && field.path) {\n localValuePath = field.path.split('.');\n }\n\n // add potential indexes of repeated fields\n if (indexes) {\n localValuePath = this._addIndexes(localValuePath, field, indexes);\n }\n\n // if parent exists and isn't cutoff node, add parent's value path\n if (field._parent && field._parent !== cutoffNode) {\n const parent = this._formFieldRegistry.get(field._parent);\n return [...(this.getValuePath(parent, options) || []), ...localValuePath];\n }\n\n return localValuePath;\n }\n\n clear() {\n this._dataPaths = [];\n }\n\n _addIndexes(localValuePath, field, indexes) {\n const repeatRenderManager = this._injector.get('repeatRenderManager', false);\n\n if (repeatRenderManager && repeatRenderManager.isFieldRepeating(field._parent)) {\n return [indexes[field._parent], ...localValuePath];\n }\n\n return localValuePath;\n }\n}\n\nconst _getNextSegment = (node, segment) => {\n if (isArray(node.children)) {\n return node.children.find((node) => node.segment === segment) || null;\n }\n return null;\n};\n\nPathRegistry.$inject = ['formFieldRegistry', 'formFields', 'injector'];\n","import Ids from 'ids';\n\nimport { groupBy } from 'min-dash';\n\n/**\n * @typedef { { id: String, components: Array<String> } } FormRow\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\n */\n\n/**\n * Maintains the Form layout in a given structure, for example\n *\n * [\n * {\n * formFieldId: 'FormField_1',\n * rows: [\n * { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ] }\n * ]\n * }\n * ]\n *\n */\nexport class FormLayouter {\n constructor(eventBus) {\n /** @type Array<FormRows> */\n this._rows = [];\n this._ids = new Ids([32, 36, 1]);\n\n this._eventBus = eventBus;\n }\n\n /**\n * @param {FormRow} row\n */\n addRow(formFieldId, row) {\n let rowsPerComponent = this._rows.find((r) => r.formFieldId === formFieldId);\n\n if (!rowsPerComponent) {\n rowsPerComponent = {\n formFieldId,\n rows: [],\n };\n\n this._rows.push(rowsPerComponent);\n }\n\n rowsPerComponent.rows.push(row);\n }\n\n /**\n * @param {String} id\n * @returns {FormRow}\n */\n getRow(id) {\n const rows = allRows(this._rows);\n return rows.find((r) => r.id === id);\n }\n\n /**\n * @param {any} formField\n * @returns {FormRow}\n */\n getRowForField(formField) {\n return allRows(this._rows).find((r) => {\n const { components } = r;\n\n return components.includes(formField.id);\n });\n }\n\n /**\n * @param {String} formFieldId\n * @returns { Array<FormRow> }\n */\n getRows(formFieldId) {\n const rowsForField = this._rows.find((r) => formFieldId === r.formFieldId);\n\n if (!rowsForField) {\n return [];\n }\n\n return rowsForField.rows;\n }\n\n /**\n * @returns {string}\n */\n nextRowId() {\n return this._ids.nextPrefixed('Row_');\n }\n\n /**\n * @param {any} formField\n */\n calculateLayout(formField) {\n const { type, components } = formField;\n\n if (!['default', 'group', 'dynamiclist'].includes(type) || !components) {\n return;\n }\n\n // (1) calculate rows order (by component order)\n const rowsInOrder = groupByRow(components, this._ids);\n\n Object.entries(rowsInOrder).forEach(([id, components]) => {\n // (2) add fields to rows\n this.addRow(formField.id, {\n id: id,\n components: components.map((c) => c.id),\n });\n });\n\n // (3) traverse through nested components\n components.forEach((field) => this.calculateLayout(field));\n\n // (4) fire event to notify interested parties\n this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\n }\n\n clear() {\n this._rows = [];\n this._ids.clear();\n\n // fire event to notify interested parties\n this._eventBus.fire('form.layoutCleared');\n }\n}\n\nFormLayouter.$inject = ['eventBus'];\n\n// helpers //////\n\nfunction groupByRow(components, ids) {\n return groupBy(components, (c) => {\n // mitigate missing row by creating new (handle legacy)\n const { layout } = c;\n\n if (!layout || !layout.row) {\n return ids.nextPrefixed('Row_');\n }\n\n return layout.row;\n });\n}\n\n/**\n * @param {Array<FormRows>} formRows\n * @returns {Array<FormRow>}\n */\nfunction allRows(formRows) {\n return formRows.map((r) => r.rows).flat();\n}\n","import Ids from 'ids';\n\nexport class FormFieldRegistry {\n constructor(eventBus) {\n this._eventBus = eventBus;\n\n this._formFields = {};\n\n eventBus.on('form.clear', () => this.clear());\n\n this._ids = new Ids([32, 36, 1]);\n }\n\n add(formField) {\n const { id } = formField;\n\n if (this._formFields[id]) {\n throw new Error(`form field with ID ${id} already exists`);\n }\n\n this._eventBus.fire('formField.add', { formField });\n\n this._formFields[id] = formField;\n }\n\n remove(formField) {\n const { id } = formField;\n\n if (!this._formFields[id]) {\n return;\n }\n\n this._eventBus.fire('formField.remove', { formField });\n\n delete this._formFields[id];\n }\n\n get(id) {\n return this._formFields[id];\n }\n\n getAll() {\n return Object.values(this._formFields);\n }\n\n getForm() {\n return this.getAll().find((formField) => formField.type === 'default');\n }\n\n forEach(callback) {\n this.getAll().forEach((formField) => callback(formField));\n }\n\n clear() {\n this._formFields = {};\n\n this._ids.clear();\n }\n}\n\nFormFieldRegistry.$inject = ['eventBus'];\n","export class FormFieldInstanceRegistry {\n constructor(eventBus, formFieldRegistry, formFields) {\n this._eventBus = eventBus;\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n\n this._formFieldInstances = {};\n\n eventBus.on('form.clear', () => this.clear());\n }\n\n add(instance) {\n const { id, expressionContextInfo, valuePath, indexes } = instance;\n\n const instanceId = [id, ...Object.values(indexes || {})].join('_');\n\n if (this._formFieldInstances[instanceId]) {\n throw new Error('this form field instance is already registered');\n }\n\n this._formFieldInstances[instanceId] = {\n id,\n instanceId,\n expressionContextInfo,\n valuePath,\n indexes,\n };\n\n this._eventBus.fire('formFieldInstanceRegistry.changed', { instanceId, action: 'added' });\n\n return instanceId;\n }\n\n remove(instanceId) {\n if (!this._formFieldInstances[instanceId]) {\n return;\n }\n\n delete this._formFieldInstances[instanceId];\n\n this._eventBus.fire('formFieldInstanceRegistry.changed', { instanceId, action: 'removed' });\n }\n\n getAll() {\n return Object.values(this._formFieldInstances);\n }\n\n getAllKeyed() {\n return this.getAll().filter(({ id }) => {\n const formFieldDefinition = this._formFieldRegistry.get(id);\n\n if (!formFieldDefinition) {\n return false;\n }\n\n const { type } = formFieldDefinition;\n const { config } = this._formFields.get(type);\n\n return config.keyed;\n });\n }\n\n clear() {\n this._formFieldInstances = {};\n }\n}\n\nFormFieldInstanceRegistry.$inject = ['eventBus', 'formFieldRegistry', 'formFields'];\n","import { render } from 'preact';\nimport { useCallback, useState } from 'preact/hooks';\n\nimport { FormComponent } from './components/FormComponent';\nimport { FormContext } from './context';\n\n/**\n * @typedef { { container } } Config\n * @typedef { import('didi').Injector } Injector\n * @typedef { import('../core/EventBus').EventBus } EventBus\n * @typedef { import('../Form').Form } Form\n */\n\n/**\n * @param {Config} config\n * @param {EventBus} eventBus\n * @param {Form} form\n * @param {Injector} injector\n */\nexport function Renderer(config, eventBus, form, injector) {\n const App = () => {\n const [state, setState] = useState(form._getState());\n\n const formContext = {\n getService(type, strict = true) {\n return injector.get(type, strict);\n },\n formId: form._id,\n };\n\n eventBus.on('changed', (newState) => {\n setState(newState);\n });\n\n const onChange = useCallback((update) => form._update(update), []);\n\n const { properties } = state;\n\n const { readOnly } = properties;\n\n const onSubmit = useCallback(() => {\n if (!readOnly) {\n form.submit();\n }\n }, [readOnly]);\n\n const onReset = useCallback(() => form.reset(), []);\n\n const { schema } = state;\n\n if (!schema) {\n return null;\n }\n\n return (\n <FormContext.Provider value={formContext}>\n <FormComponent onChange={onChange} onSubmit={onSubmit} onReset={onReset} />\n </FormContext.Provider>\n );\n };\n\n const { container } = config;\n\n eventBus.on('form.init', () => {\n render(<App />, container);\n });\n\n eventBus.on('form.destroy', () => {\n render(null, container);\n });\n}\n\nRenderer.$inject = ['config.renderer', 'eventBus', 'form', 'injector'];\n","import { FormFields } from './FormFields';\nimport { Renderer } from './Renderer';\n\nexport { FormFields };\n\nexport * from './components';\nexport * from './context';\nexport { useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation } from './hooks';\n\nexport const RenderModule = {\n __init__: ['formFields', 'renderer'],\n formFields: ['type', FormFields],\n renderer: ['type', Renderer],\n};\n","import { EventBus } from './EventBus';\nimport { Validator } from './Validator';\nimport { Importer } from './Importer';\nimport { FieldFactory } from './FieldFactory';\nimport { PathRegistry } from './PathRegistry';\nimport { FormLayouter } from './FormLayouter';\nimport { FormFieldRegistry } from './FormFieldRegistry';\nimport { FormFieldInstanceRegistry } from './FormFieldInstanceRegistry';\n\nimport { RenderModule } from '../render';\n\nexport { Importer, FieldFactory, FormFieldRegistry, PathRegistry, FormLayouter };\n\nexport const CoreModule = {\n __depends__: [RenderModule],\n eventBus: ['type', EventBus],\n importer: ['type', Importer],\n fieldFactory: ['type', FieldFactory],\n formFieldRegistry: ['type', FormFieldRegistry],\n formFieldInstanceRegistry: ['type', FormFieldInstanceRegistry],\n pathRegistry: ['type', PathRegistry],\n formLayouter: ['type', FormLayouter],\n validator: ['type', Validator],\n};\n","import Ids from 'ids';\nimport { get, isObject, isString, isUndefined, set } from 'min-dash';\n\nimport {\n ExpressionLanguageModule,\n ExpressionFieldModule,\n MarkdownRendererModule,\n ViewerCommandsModule,\n RepeatRenderModule,\n} from './features';\n\nimport { CoreModule } from './core';\n\nimport { clone, createFormContainer, createInjector } from './util';\n\n/**\n * @typedef { import('./types').Injector } Injector\n * @typedef { import('./types').Data } Data\n * @typedef { import('./types').Errors } Errors\n * @typedef { import('./types').Schema } Schema\n * @typedef { import('./types').FormProperties } FormProperties\n * @typedef { import('./types').FormProperty } FormProperty\n * @typedef { import('./types').FormEvent } FormEvent\n * @typedef { import('./types').FormOptions } FormOptions\n *\n * @typedef { {\n * data: Data,\n * initialData: Data,\n * errors: Errors,\n * properties: FormProperties,\n * schema: Schema\n * } } State\n *\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\n */\n\nconst ids = new Ids([32, 36, 1]);\n\n/**\n * The form.\n */\nexport class Form {\n /**\n * @constructor\n * @param {FormOptions} options\n */\n constructor(options = {}) {\n /**\n * @public\n * @type {OnEventType}\n */\n this.on = this._onEvent;\n\n /**\n * @public\n * @type {String}\n */\n this._id = ids.next();\n\n /**\n * @private\n * @type {Element}\n */\n this._container = createFormContainer();\n\n const { container, injector = this._createInjector(options, this._container), properties = {} } = options;\n\n /**\n * @private\n * @type {State}\n */\n this._state = {\n initialData: null,\n data: null,\n properties,\n errors: {},\n schema: null,\n };\n\n this.get = injector.get;\n\n this.invoke = injector.invoke;\n\n this.get('eventBus').fire('form.init');\n\n if (container) {\n this.attachTo(container);\n }\n }\n\n clear() {\n // clear diagram services (e.g. EventBus)\n this._emit('diagram.clear');\n\n // clear form services\n this._emit('form.clear');\n }\n\n /**\n * Destroy the form, removing it from DOM,\n * if attached.\n */\n destroy() {\n // destroy form services\n this.get('eventBus').fire('form.destroy');\n\n // destroy diagram services (e.g. EventBus)\n this.get('eventBus').fire('diagram.destroy');\n\n this._detach(false);\n }\n\n /**\n * Open a form schema with the given initial data.\n *\n * @param {Schema} schema\n * @param {Data} [data]\n *\n * @return Promise<{ warnings: Array<any> }>\n */\n importSchema(schema, data = {}) {\n return new Promise((resolve, reject) => {\n try {\n this.clear();\n\n const { schema: importedSchema, warnings } = this.get('importer').importSchema(schema);\n\n const initializedData = this._getInitializedFieldData(clone(data));\n\n this._setState({\n data: initializedData,\n errors: {},\n schema: importedSchema,\n initialData: clone(initializedData),\n });\n\n this._emit('import.done', { warnings });\n\n return resolve({ warnings });\n } catch (error) {\n this._emit('import.done', {\n error,\n warnings: error.warnings || [],\n });\n\n return reject(error);\n }\n });\n }\n\n /**\n * Submit the form, triggering all field validations.\n *\n * @returns { { data: Data, errors: Errors } }\n */\n submit() {\n const { properties } = this._getState();\n\n if (properties.readOnly || properties.disabled) {\n throw new Error('form is read-only');\n }\n\n this._emit('presubmit');\n\n const data = this._getSubmitData();\n\n const errors = this.validate();\n\n const result = {\n data,\n errors,\n };\n\n this._emit('submit', result);\n\n return result;\n }\n\n reset() {\n this._emit('reset');\n\n this._setState({\n data: clone(this._state.initialData),\n errors: {},\n });\n }\n\n /**\n * @returns {Errors}\n */\n validate() {\n const formFieldRegistry = this.get('formFieldRegistry'),\n formFieldInstanceRegistry = this.get('formFieldInstanceRegistry'),\n validator = this.get('validator');\n\n const { data } = this._getState();\n const errors = {};\n\n const getErrorPath = (id, indexes) => [id, ...Object.values(indexes || {})];\n\n formFieldInstanceRegistry.getAllKeyed().forEach((fieldInstance) => {\n const { id, valuePath, indexes } = fieldInstance;\n\n const field = formFieldRegistry.get(id);\n\n // (1) Skip disabled fields\n if (field.disabled) {\n return;\n }\n\n // (2) Validate the field instance\n const value = get(data, valuePath);\n const fieldErrors = validator.validateFieldInstance(fieldInstance, value);\n\n if (fieldErrors.length) {\n set(errors, getErrorPath(field.id, indexes), fieldErrors);\n }\n });\n\n this._setState({ errors });\n\n // @ts-ignore\n return errors;\n }\n\n /**\n * @param {Element|string} parentNode\n */\n attachTo(parentNode) {\n if (!parentNode) {\n throw new Error('parentNode required');\n }\n\n this.detach();\n\n if (isString(parentNode)) {\n parentNode = document.querySelector(parentNode);\n }\n\n const container = this._container;\n\n parentNode.appendChild(container);\n\n this._emit('attach');\n }\n\n detach() {\n this._detach();\n }\n\n /**\n * @private\n *\n * @param {boolean} [emit]\n */\n _detach(emit = true) {\n const container = this._container,\n parentNode = container.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n if (emit) {\n this._emit('detach');\n }\n\n parentNode.removeChild(container);\n }\n\n /**\n * @param {FormProperty} property\n * @param {any} value\n */\n setProperty(property, value) {\n const properties = set(this._getState().properties, [property], value);\n\n this._setState({ properties });\n }\n\n /**\n * @param {FormEvent} type\n * @param {Function} handler\n */\n off(type, handler) {\n this.get('eventBus').off(type, handler);\n }\n\n /**\n * @private\n *\n * @param {FormOptions} options\n * @param {Element} container\n *\n * @returns {Injector}\n */\n _createInjector(options, container) {\n const { modules = this._getModules(), additionalModules = [], ...config } = options;\n\n const enrichedConfig = {\n ...config,\n renderer: {\n container,\n },\n };\n\n return createInjector([\n { config: ['value', enrichedConfig] },\n { form: ['value', this] },\n CoreModule,\n ...modules,\n ...additionalModules,\n ]);\n }\n\n /**\n * @private\n */\n _emit(type, data) {\n this.get('eventBus').fire(type, data);\n }\n\n /**\n * @internal\n *\n * @param { { fieldInstance: any, value: any } } update\n */\n _update(update) {\n const { fieldInstance, value } = update;\n\n const { id, valuePath, indexes } = fieldInstance;\n\n const { data, errors } = this._getState();\n\n const validator = this.get('validator');\n\n const fieldErrors = validator.validateFieldInstance(fieldInstance, value);\n\n set(data, valuePath, value);\n\n set(errors, [id, ...Object.values(indexes || {})], fieldErrors.length ? fieldErrors : undefined);\n\n this._emit('field.updated', update);\n\n this._setState({\n data: clone(data),\n errors: clone(errors),\n });\n }\n\n /**\n * @internal\n */\n _getState() {\n return this._state;\n }\n\n /**\n * @internal\n */\n _setState(state) {\n this._state = {\n ...this._state,\n ...state,\n };\n\n this._emit('changed', this._getState());\n }\n\n /**\n * @internal\n */\n _getModules() {\n return [\n ExpressionLanguageModule,\n ExpressionFieldModule,\n MarkdownRendererModule,\n ViewerCommandsModule,\n RepeatRenderModule,\n ];\n }\n\n /**\n * @internal\n */\n _onEvent(type, priority, handler) {\n this.get('eventBus').on(type, priority, handler);\n }\n\n /**\n * @internal\n */\n _getSubmitData() {\n const formFieldRegistry = this.get('formFieldRegistry');\n const formFieldInstanceRegistry = this.get('formFieldInstanceRegistry');\n const formData = this._getState().data;\n\n const submitData = {};\n\n formFieldInstanceRegistry.getAllKeyed().forEach((formFieldInstance) => {\n const { id, valuePath } = formFieldInstance;\n const { disabled } = formFieldRegistry.get(id);\n\n if (disabled) {\n return;\n }\n\n const value = get(formData, valuePath);\n set(submitData, valuePath, value);\n });\n\n return submitData;\n }\n\n /**\n * @internal\n */\n _getInitializedFieldData(data, options = {}) {\n const formFieldRegistry = this.get('formFieldRegistry');\n const formFields = this.get('formFields');\n const pathRegistry = this.get('pathRegistry');\n\n function initializeFieldDataRecursively(initializedData, formField, indexes) {\n const { defaultValue, type, isRepeating } = formField;\n const { config: fieldConfig } = formFields.get(type);\n\n const valuePath = pathRegistry.getValuePath(formField, { indexes });\n let valueData = get(data, valuePath);\n\n // (1) Process keyed fields\n if (fieldConfig.keyed) {\n // (a) Retrieve and sanitize data from input\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\n }\n\n // (b) Initialize field value in output data\n const initializedFieldValue = !isUndefined(valueData)\n ? valueData\n : !isUndefined(defaultValue)\n ? defaultValue\n : fieldConfig.emptyValue;\n set(initializedData, valuePath, initializedFieldValue);\n }\n\n // (2) Process parents\n if (!Array.isArray(formField.components)) {\n return;\n }\n\n if (fieldConfig.repeatable && isRepeating) {\n // (a) Sanitize repeatable parents data if it is not an array\n if (!valueData || !Array.isArray(valueData)) {\n valueData =\n new Array(isUndefined(formField.defaultRepetitions) ? 1 : formField.defaultRepetitions)\n .fill()\n .map((_) => ({})) || [];\n }\n\n // (b) Ensure all elements of the array are objects\n valueData = valueData.map((val) => (isObject(val) ? val : {}));\n\n // (c) Initialize field value in output data\n set(initializedData, valuePath, valueData);\n\n // (d) If indexed ahead of time, recurse repeatable simply across the children\n if (!isUndefined(indexes[formField.id])) {\n formField.components.forEach((component) =>\n initializeFieldDataRecursively(initializedData, component, { ...indexes }),\n );\n\n return;\n }\n\n // (e1) Recurse repeatable parents both across the indexes of repetition and the children\n valueData.forEach((_, index) => {\n formField.components.forEach((component) =>\n initializeFieldDataRecursively(initializedData, component, { ...indexes, [formField.id]: index }),\n );\n });\n\n return;\n }\n\n // (e2) Recurse non-repeatable parents only across the children\n formField.components.forEach((component) => initializeFieldDataRecursively(initializedData, component, indexes));\n }\n\n // allows definition of a specific subfield to generate the data for\n const container = options.container || formFieldRegistry.getForm();\n const indexes = options.indexes || {};\n const basePath = pathRegistry.getValuePath(container, { indexes }) || [];\n\n // if indexing ahead of time, we must add this index to the data path at the end\n const path = !isUndefined(indexes[container.id]) ? [...basePath, indexes[container.id]] : basePath;\n\n const workingData = clone(data);\n initializeFieldDataRecursively(workingData, container, indexes);\n return get(workingData, path, {});\n }\n}\n","import { Form } from './Form';\n\nexport { FormFieldRegistry, FormLayouter, Importer, FieldFactory, PathRegistry } from './core';\nexport * from './render';\nexport * from './util';\nexport * from './features';\n\nconst schemaVersion = 17;\n\nexport { Form, schemaVersion };\n\n/**\n * @typedef { import('./types').CreateFormOptions } CreateFormOptions\n */\n\n/**\n * Create a form.\n *\n * @param {CreateFormOptions} options\n *\n * @return {Promise<Form>}\n */\nexport function createForm(options) {\n const { data, schema, ...formOptions } = options;\n\n const form = new Form(formOptions);\n\n return form.importSchema(schema, data).then(function () {\n return form;\n });\n}\n"],"names":["getFlavouredFeelVariableNames","feelString","feelFlavour","options","depth","specialDepthAccessors","includes","tree","parseExpression","parseUnaryTests","simpleExpressionTree","_buildSimpleFeelStructureTree","variables","_unfoldVariables","node","name","pathRoot","_linearizePathExpression","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","variableName","children","reduce","acc","child","concat","filter","Set","root","index","nodes","initialDepth","accessorDepthInfos","previous","current","extractedVariables","pathNodes","i","currentAccessor","depthOffsets","accumulator","offset","map","depthInfo","some","add","parts","push","reverse","parseTree","stack","iterate","enter","nodeRepresentation","type","slice","to","leave","result","pop","parent","_extractFilterExpressions","flattenedExpressionTree","x","filterTarget","filterExpression","taggedFilterExpression","FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","Error","evaluate","data","error","fire","$inject","FeelersTemplating","isTemplate","test","template","expressions","_extractExpressionsWithDepth","_parent_","this","_this_","context","debug","strict","buildDebugString","err","sanitizer","evaluateFeelers","feelersParser","parse","buildSimpleTree","_traverse","n","content","loopExpression","childResults","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","OPTIONS_SOURCES","STATIC","INPUT","EXPRESSION","OPTIONS_SOURCE_DEFAULT","OPTIONS_SOURCES_LABELS","OPTIONS_SOURCES_PATHS","OPTIONS_SOURCES_DEFAULTS","label","getOptionsSource","field","source","values","get","undefined","SANDBOX_ATTRIBUTE","ALLOW_ATTRIBUTE","SECURITY_ATTRIBUTES_DEFINITIONS","attribute","directive","property","createInjector","bootstrapModules","injector","Injector","init","createFormContainer","prefix","container","document","createElement","classList","formFieldClasses","errors","disabled","readonly","classNames","gridColumnClasses","formField","layout","columns","textToLabel","text","line","split","displayLine","trim","prefixId","id","formId","indexes","forEach","FormRenderContext","createContext","Empty","props","Hidden","Children","_jsx","class","style","Element","Row","Column","hoverInfo","cleanup","LocalExpressionContext","getService","FormContext","useService","useContext","isRequired","required","pathParse","path","key","isNaN","parseInt","pathsEqual","a","b","every","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","stringify","runRecursively","fn","components","component","_","wrapObjectKeysWithUnderscores","obj","newObj","entries","buildExpressionContext","specialContextKeys","runExpressionEvaluation","expressionLanguage","expressionContextInfo","useCondition","condition","conditionChecker","useMemo","check","getSimpleOptionsData","formData","valuesExpression","optionsExpression","valuesKey","optionsKey","staticOptions","normalizeOptionsData","optionsData","_isAllowedValue","_normalizeOption","o","isNil","createEmptyOptions","defaults","option","_isAllowedPrimitive","isObject","isValidLabel","_isValidLabel","isAllowedPrimitiveType","isValid","useExpressionEvaluation","useDeepCompareMemoize","ref","useRef","isEqual","LOAD_STATES","LOADING","LOADED","ERROR","useOptionsAsync","initialData","_getState","expressionEvaluation","evaluatedOptions","optionsGetter","keyedOptions","isArray","buildErrorState","buildLoadedState","loadState","useDangerousHTMLWrapper","html","transform","sanitize","sanitizeStyleTags","sanitizedHtml","DOMPurify","getDOMPurifyConfig","transformedHtml","__html","FORCE_BODY","FORBID_TAGS","useSecurityAttributesMap","security","securityMemoized","sandbox","join","allow","useGetLabelCorrelation","labelMap","assign","_getValueHash","useCallback","wrapCSSStyles","rootNode","styleTags","querySelectorAll","styleTag","topLevelRules","extractTopLevelRules","textContent","scopedCss","rule","selector","styles","splitRule","scopedSelector","scopeSelector","cssString","cursor","start","level","substring","firstBracket","indexOf","sel","getScrollContainer","el","body","documentElement","_isElementScrollable","parentElement","window","getComputedStyle","overflowY","overflow","scrollHeight","clientHeight","EMPTY_OBJECT","EMPTY_ARRAY","useScrollIntoView","scrolledElementRef","deps","scrollOptions","flagRefs","_scrollOptions","_flagRefs","useEffect","itemToBeScrolled","scrollContainer","itemRect","getBoundingClientRect","containerRect","align","behavior","scrollIfVisible","shouldScroll","top","bottom","topOffset","_getTopOffset","scroll","item","scrollTop","height","useFilteredFormData","newData","applyConditions","useKeyDownAction","targetKey","action","listenerElement","downHandler","addEventListener","removeEventListener","useReadonly","properties","readOnly","usePrevious","defaultValue","useFlushDebounce","func","timeoutRef","lastArgsRef","config","debounce","shouldDebounce","delay","debounceFunc","args","clearTimeout","setTimeout","flushFunc","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isNumber","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","replace","offsetString","inboundOffset","serializeDate","date","LuxonDateTime","fromJSDate","toISODate","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","getFullYear","getMonth","getDate","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","getNullDateTime","isValidDate","isValidTime","toString","padStart","ALLOWED_IMAGE_SRC_PATTERN","ALLOWED_IFRAME_SRC_PATTERN","sanitizeDateTimePickerValue","subtype","hasEqualValue","array","element","sanitizeSingleSelectValue","validValues","v","sanitizeMultiSelectValue","sanitizeImageSource","src","valid","sanitizeIFrameSource","escapeHTML","escapeMap","useCleanupSingleSelectValue","onChange","optionValues","hasValueNotInOptions","useCleanupMultiSelectValue","memoizedValues","hasValuesNotInOptions","Button","onFocus","onBlur","evaluatedLabel","keyed","group","create","Description","description","evaluatedDescription","Errors","Label","htmlFor","collapseOnEmpty","_jsxs","for","Checkbox","domId","validate","target","checked","descriptionId","errorMessageId","emptyValue","sanitizeValue","Checklist","outerDivRef","toggleCheckbox","toggledValue","newValues","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","itemDomId","isChecked","className","onClick","noop","FormField","_onChange","formFields","viewerCommands","formFieldInstanceRegistry","pathRegistry","form","initialValidationTrigger","setInitialValidationTrigger","useState","FormFieldComponent","fieldConfig","localExpressionContext","valuePath","getValuePath","initialValue","hidden","conditional","hide","fieldInstance","instanceId","remove","resetValidation","on","off","hasInitialValue","updateFieldInstanceValidation","update","fieldErrors","formFieldElement","escapeGridRender","ChildrenRenderer","repeatRenderManager","isRepeating","isFieldRepeating","Repeater","RepeatFooter","RepeatChildrenRenderer","ChildrenRoot","SimpleChildrenRenderer","isEmpty","RowsRenderer","restProps","useSharedState","isCollapsed","_Fragment","parentId","verticalAlignment","formLayouter","formFieldRegistry","rows","getRows","row","alignItems","childId","childField","_createElement","Default","fullProps","getSubheading","_path","_extends","React","getLocaleDateFormat","locale","Intl","DateTimeFormat","formatToParts","UTC","part","len","repeat","getLocaleReadableDateFormat","format","getLocaleDateFlatpickrConfig","flatpickerizeDateFormat","dateFormat","useLeadingZero","day","month","year","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","Datepicker","collapseLabelOnEmpty","onDateTimeBlur","onDateTimeFocus","disallowPassedDates","dateObject","setDate","dateInputRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","allowInput","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","close","onCalendarMouseDown","onOpen","onClose","onInputKeyDown","dispatchEvent","preventDefault","onInputFocus","onInputBlur","isFalseBlur","CalendarIcon","width","placeholder","autoComplete","onKeyDown","onMouseDown","onInput","_path2","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","min","max","individualEntries","focusedEntry","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","event","valueIndex","userMovedCursor","screenX","y","screenY","tabIndex","maxHeight","scrollBehavior","focused","onMouseMove","onMouseEnter","Timepicker","timeInterval","setTime","safeTimeInterval","allowedIntervals","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","intervalIndex","cacheTime","flooredCacheTime","onDropdownValueSelected","ClockIcon","Datetime","dateLabel","timeLabel","dateTimeGroupRef","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","useDatePicker","useTimePicker","fromISO","toJSDate","NaN","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","isNewField","set","Group","showOutline","role","pathed","DEFAULT_HEIGHT","IFrame","url","evaluatedUrl","safeUrl","iframeRefresh","setIframeRefresh","count","IFramePlaceholder","title","allowScripts","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","GroupIcon","iframe","IFrameIcon","image","ImageIcon","number","NumberIcon","ExpressionFieldIcon","radio","RadioIcon","select","SelectIcon","separator","SeparatorIcon","spacer","SpacerIcon","dynamiclist","DynamicListIcon","taglist","TaglistIcon","TextIcon","HTMLIcon","textfield","TextfieldIcon","textarea","TextareaIcon","table","TableIcon","filepicker","FilePickerIcon","default","FormIcon","Image","alt","Icon","evaluatedImageSource","safeSource","altText","viewBox","TemplatedInputAdorner","evaluatedPre","evaluatedPost","countDecimals","num","Big","toFixed","isValidNumber","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","isFirstDot","isFirstMinus","keypressIsNumeric","dotIndex","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","Numberfield","appearance","increment","incrementValue","prefixAdorner","suffixAdorner","cachedValue","setCachedValue","displayValue","setDisplayValue","debouncedOnChange","flushOnChange","previousCachedValue","setValue","stringValue","replaceAll","outerValueChanged","outerValueEqualsCache","incrementAmount","base","stepFlooredValue","minus","mod","plus","decrement","cmp","onKeyPress","selectionStart","selectionEnd","onPaste","step","AngelUpIcon","AngelDownIcon","serializeToString","Radio","onRadioBlur","onRadioFocus","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","isFilterActive","setIsFilterActive","isEscapeClosed","setIsEscapeClose","searchbarRef","getLabelCorrelation","filteredOptions","pickOption","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","XMarkIcon","SimpleSelect","selectRef","valueLabel","input","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","DynamicList","repeatable","allowAddRemove","defaultRepetitions","SkipLink","onSkip","href","Taglist","hasOptionsLeft","isValidFilteredOption","filterMatches","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","doc","DOMParser","parseFromString","normalize","firstChild","sanitizeNode","innerHTML","nodeType","lcTag","tagName","attributes","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Text","textLinkTarget","disableLinks","markdownRenderer","markdown","render","sanitizeAndTransformLinks","unsafeHtml","tempDiv","links","link","dangerouslySetInnerHTML","Html","styleScope","ExpressionField","computeOn","evaluation","evaluationMemo","expressionLoopPreventer","sendValue","shouldNotRecompute","registerExpressionExecution","Textfield","String","Textarea","textareaRef","autoSizeTextarea","useLayoutEffect","computed","heightFromLines","lineHeight","getPropertyValue","lines","calculatedHeight","minHeight","displayHeight","Table","columnsExpression","dataSource","rowCount","sortBy","setSortBy","evaluatedColumns","useEvaluatedColumns","columnKeys","evaluatedDataSource","sortedData","sortByColumn","direction","chunkedData","chunk","currentPage","setCurrentPage","currentChunk","serializeCellData","cellData","toggleSortBy","displayLabel","getHeaderAriaLabel","ArrowUpIcon","ArrowDownIcon","colSpan","page","CaretLeftIcon","CaretRightIcon","remainingOptions","isDefined","isColumn","generateInitialDemoData","demoData","demoDataKeys","fallbackColumns","column","size","chunks","sort","FilePicker","fileInputRef","selectedFiles","setSelectedFiles","multiple","accept","evaluatedAccept","evaluatedMultiple","reset","files","click","getSelectedFilesLabel","Logo","xmlns","fill","d","Lightbox","onBackdropClick","rel","Link","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","FormComponent","schema","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","filteredFormData","noValidate","Provider","FormFields","_formFields","register","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","getSchemaVariables","inputs","outputs","getAllComponents","prop","expressionVariables","templateVariables","variable","getBindingVariables","bindingVariable","getAncestryList","formFieldId","ids","currentFormField","_parent","ConditionChecker","_formFieldRegistry","_pathRegistry","contextData","workingData","getFilterPath","_applyConditionsWithinScope","rootField","scopeContext","startHidden","expressionIndexes","scopeData","parentScopeData","executeRecursivelyOnFields","isClosed","isRepeatable","isHidden","_checkHideCondition","preventRecursion","repeaterValuePath","repeaterValue","newScopeContext","_cleanlyClearDataAtPath","getForm","unaryTest","workingValuePath","recurse","parentObject","_isEmptyObject","_isEmptyArray","ExpressionLanguageModule","__init__","ExpressionLoopPreventer","_computedExpressions","bind","expressionField","ExpressionFieldModule","MarkdownRenderer","marked","gfm","breaks","MarkdownRendererModule","CommandStack","_handlerMap","_stack","_stackIdx","_currentExecution","actions","dirty","trigger","_injector","_uid","clear","prototype","execute","command","_pushAction","_internalExecute","_popAction","canExecute","handler","_getHandler","_fire","emit","undo","_getUndoAction","next","_internalUndo","redo","_getRedoAction","_setHandler","registerHandler","handlerCls","instantiate","canUndo","canRedo","_atomicDo","revert","_markDirty","_revertedAction","qualifier","arguments","names","createEvent","cancelBubble","_createId","execution","atomic","preExecute","_executedAction","postExecute","baseAction","elements","uniqueBy","stackIdx","splice","commandStack","UpdateFieldValidationHandler","validator","_form","_validator","oldErrors","validateField","updatedErrors","_setState","UpdateFieldInstanceValidationHandler","validateFieldInstance","ViewerCommands","_commandStack","registerHandlers","getHandlers","updateFieldValidation","ViewerCommandsModule","__depends__","commandModule","RepeatRenderManager","formFieldDefinition","sharedRepeatState","repeaterField","dataPath","nonCollapsedItems","_getNonCollapsedItems","collapseEnabled","disableCollapse","hasChildren","showRemove","displayValues","hiddenValues","onDeleteItem","updatedValues","parentExpressionContextInfo","itemValue","itemIndex","RepetitionScaffold","addButtonRef","setSharedRepeatState","showAdd","toggle","state","onAddItem","newItem","_getInitializedFieldData","AddSvg","ExpandSvg","CollapseSvg","DEFAULT_NON_COLLAPSED_ITEMS","elementProps","localExpressionContextInfo","DeleteSvg","RepeatRenderModule","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","actualCallback","self","_addListener","once","wrappedCallback","__isTomb","apply","_removeListener","InternalEvent","firstListener","returnValue","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","EMAIL_PATTERN","PHONE_PATTERN","VALIDATE_FEEL_PROPERTIES","Validator","_expressionLanguage","_conditionChecker","runNumberValidation","evaluatedValidation","oldEvaluateFEELValues","runPresetValidation","evaluateFEELValues","bigValue","bigIncrement","nextValue","validation","pattern","RegExp","isUncheckedCheckbox","isUnsetValue","isEmptyMultiselect","minLength","maxLength","validationType","evaluatedValidate","evaluatedValue","filteredData","Importer","fieldFactory","_fieldFactory","_formLayouter","importSchema","warnings","_cleanup","importedSchema","importFormField","calculateLayout","fieldAttrs","importFormFields","FieldFactory","attrs","fieldDefinition","_ids","assigned","parentPath","knownAncestorIds","canClaimPath","_ensureId","_ensureKey","claimPath","claimerId","_enforceDefaultPath","claim","nextPrefixed","_getUniqueKeyPath","random","PathRegistry","_dataPaths","skipAncestryCheck","segment","_getNextSegment","isValidRepeatClaim","repeaterId","claimCount","unclaimPath","formFieldConfig","callResult","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","_addIndexes","find","FormLayouter","_rows","Ids","addRow","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","c","groupBy","formRows","flat","FormFieldRegistry","getAll","FormFieldInstanceRegistry","_formFieldInstances","getAllKeyed","Renderer","App","setState","formContext","_id","newState","_update","submit","RenderModule","renderer","CoreModule","importer","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","initializedData","_getSubmitData","getErrorPath","parentNode","detach","appendChild","removeChild","setProperty","modules","_getModules","additionalModules","enrichedConfig","submitData","formFieldInstance","initializeFieldDataRecursively","valueData","isUndefined","initializedFieldValue","val","basePath","schemaVersion","createForm","formOptions","then"],"mappings":"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,QAAQ,EAAE;AAC5BsK,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,MAAM,EAAE,IAAA;AACV,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAA;AAEAH,gBAAgB,CAACnhC,OAAO,GAAG,EAAE;;ACjBtB,MAAMuhC,sBAAsB,GAAG;EACpCV,QAAQ,EAAE,CAAC,kBAAkB,CAAC;AAC9B/J,EAAAA,gBAAgB,EAAE,CAAC,MAAM,EAAEqK,gBAAgB,CAAA;AAC7C;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASK,YAAYA,CAACriC,QAAQ,EAAE+E,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACu9B,WAAW,GAAG,EAAE,CAAA;;AAErB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,MAAM,GAAG,EAAE,CAAA;;AAEhB;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC,CAAA;;AAEnB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,iBAAiB,GAAG;AACvBC,IAAAA,OAAO,EAAE,EAAE;AACXC,IAAAA,KAAK,EAAE,EAAE;AACTC,IAAAA,OAAO,EAAE,IAAA;GACV,CAAA;;AAED;AACF;AACA;EA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,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,CAAC;;ACrRlF,MAAMmoC,kBAAkB,GAAG;EAChCtH,QAAQ,EAAE,CAAC,qBAAqB,CAAC;AACjCriB,EAAAA,mBAAmB,EAAE,CAAC,MAAM,EAAEynB,mBAAmB,CAAA;AACnD;;ACGA,IAAImC,MAAM,GAAG,MAAM,CAAA;AAEnB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAE3B,IAAIhqC,KAAK,GAAGtC,KAAK,CAAComC,SAAS,CAAC9jC,KAAK,CAAA;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASiqC,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE,CAAA;;AAEpB;AACA;AACA,EAAA,IAAI,CAACxqB,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAACyqB,QAAQ,EAAE,IAAI,CAAC,CAAA;AACpD,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","x_google_ignoreList":[118,119,130]}