{"version":3,"file":"index.cjs","sources":["../../../node_modules/diagram-js/lib/i18n/translate/translate.js","../../../node_modules/diagram-js/lib/i18n/translate/index.js","../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/constants/TextConstants.js","../src/util/injector.js","../src/util/form.js","../src/render/components/Util.js","../src/render/components/util/optionsUtil.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/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/useUnaryTestEvaluation.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/DocumentPreview.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/form-fields/icons/Download.svg","../src/render/components/form-fields/DocumentPreview.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":["/**\n * @typedef { {\n *   [key: string]: string;\n * } } TranslateReplacements\n */\n\n/**\n * A simple translation stub to be used for multi-language support\n * in diagrams. Can be easily replaced with a more sophisticated\n * solution.\n *\n * @example\n *\n * ```javascript\n * // use it inside any diagram component by injecting `translate`.\n *\n * function MyService(translate) {\n *   alert(translate('HELLO {you}', { you: 'You!' }));\n * }\n * ```\n *\n * @param {string} template to interpolate\n * @param {TranslateReplacements} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nexport default function translate(template, replacements) {\n\n  replacements = replacements || {};\n\n  return template.replace(/{([^}]+)}/g, function(_, key) {\n    return replacements[key] || '{' + key + '}';\n  });\n}","import translate from './translate.js';\n\n\n/**\n * @type { import('didi').ModuleDeclaration }\n */\nexport default {\n  translate: [ 'value', translate ]\n};","import { parseExpression, parseUnaryTests } from '@bpmn-io/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 =\n    feelFlavour === 'expression'\n      ? parseExpression(feelString, {}, undefined)\n      : parseUnaryTests(feelString, {}, undefined);\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 [_cleanupVariableName(node.variableName)];\n\n    // skip function names - the function name is the only direct VariableName child of a\n    // FunctionInvocation (arguments are nested under Positional/NamedParameters), so drop it\n    if (node.name === 'FunctionInvocation') {\n      const args = node.children.filter((child) => child.name !== 'VariableName');\n      return args.reduce((acc, child) => acc.concat(_unfoldVariables(child)), []);\n    }\n\n    // skip type names in instance of expressions\n    if (node.name === 'Type') {\n      return [];\n    }\n\n    // handle quantified (some...satisfies) and for expressions - exclude bound iteration variables\n    if (node.name === 'QuantifiedExpression' || node.name === 'ForExpression') {\n      const boundNames = _collectBoundVariableNames(node);\n      const variables = node.children.reduce((acc, child) => acc.concat(_unfoldVariables(child)), []);\n      return variables.filter((name) => !boundNames.includes(name));\n    }\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      if (node.type.name === 'Name') {\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\n/**\n * FEEL keywords that may be incorrectly absorbed into variable names by the parser.\n * For example, `variable1 not in (...)` parses as VariableName \"variable1 not\".\n */\nconst FEEL_TRAILING_KEYWORDS = ['not'];\n\n/**\n * Cleans up a variable name by stripping trailing FEEL keywords that the parser\n * may have incorrectly included as part of the variable name.\n *\n * @param {string} variableName - The raw variable name from the parse tree.\n * @returns {string} The cleaned variable name.\n */\nconst _cleanupVariableName = (variableName) => {\n  for (const keyword of FEEL_TRAILING_KEYWORDS) {\n    if (variableName.endsWith(' ' + keyword)) {\n      return variableName.slice(0, -(keyword.length + 1));\n    }\n  }\n  return variableName;\n};\n\n/**\n * Collects the names of variables bound by iteration constructs (e.g. `for x in ...`, `some x in ...`).\n * These are locally scoped and should be excluded from the extracted variable set.\n *\n * @param {Object} node - A QuantifiedExpression or ForExpression node.\n * @returns {string[]} The bound variable names.\n */\nconst _collectBoundVariableNames = (node) => {\n  const boundNames = [];\n\n  const collect = (n) => {\n    if (n.name === 'InExpression') {\n      // The Name node inside an InExpression is the bound iteration variable\n      const nameNode = n.children.find((child) => child.name === 'Name');\n      if (nameNode && nameNode.variableName) {\n        boundNames.push(nameNode.variableName);\n      }\n    }\n\n    if (n.children) {\n      n.children.forEach(collect);\n    }\n  };\n\n  collect(node);\n  return boundNames;\n};\n","import { evaluate, unaryTest } from '@bpmn-io/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 (!this.isExpression(expression)) {\n      return null;\n    }\n\n    try {\n      const { value: 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  /**\n   * Evaluate a unary test expression. Returns null for invalid/missing expressions.\n   *\n   * @param {string} expression\n   * @param {import('../../types').Data} [data]\n   *\n   * @returns {boolean|null}\n   */\n  evaluateUnaryTest(expression, data = {}) {\n    if (!this.isExpression(expression)) {\n      return null;\n    }\n\n    try {\n      const { value: result } = unaryTest(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 { evaluate as evaluateFeelers, parseToSimpleTree } from 'feelers';\n\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 {(error: Error) => string} [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 tree = parseToSimpleTree(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","export const TEXT_VIEW_DEFAULT_TEXT = '# Text';\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`, 'bio-theme-parent');\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 { 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 { 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  applyVisibilityConditions: true,\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\n/**\n * Returns a copy of `target` with the value at `path` removed, pruning any\n * ancestor that becomes empty. Pure: the input is not mutated and untouched\n * sibling branches keep their original references (path-cloning).\n *\n * Pruning rules:\n *  - An object ancestor is removed when it has no own keys left.\n *  - An array ancestor is removed when every entry is nullish. Arrays are\n *    never compacted; `delete` leaves a sparse hole so sibling indexes stay\n *    stable.\n *\n * @template T\n * @param {T} target\n * @param {Array<string|number>} path\n * @returns {T}\n */\nexport function pruneAt(target, path) {\n  if (!path.length) {\n    return target;\n  }\n\n  const cloneContainer = (c) => (Array.isArray(c) ? c.slice() : { ...c });\n\n  const clones = [cloneContainer(target)];\n  for (let i = 0; i < path.length - 1; i++) {\n    const next = clones[i][path[i]];\n    if (next == null || typeof next !== 'object') {\n      return target;\n    }\n    const cloned = cloneContainer(next);\n    clones[i][path[i]] = cloned;\n    clones.push(cloned);\n  }\n\n  delete clones[clones.length - 1][path[path.length - 1]];\n\n  for (let i = clones.length - 1; i > 0; i--) {\n    if (Object.values(clones[i]).every((v) => v == null)) {\n      delete clones[i - 1][path[i - 1]];\n    } else {\n      break;\n    }\n  }\n\n  return clones[0];\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 {import('../types').ExpressionLanguage} 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.isExpression(value)) {\n    return expressionLanguage.evaluate(value, buildExpressionContext(expressionContextInfo));\n  }\n  return value;\n}\n\n/**\n * Evaluate a value as a unary test expression. Returns null for invalid/missing expressions or\n * if the expression language is not available.\n *\n * @param {import('../types').ExpressionLanguage} expressionLanguage - The expression language to use.\n * @param {string} value - The unary test expression to evaluate.\n * @param {Object} expressionContextInfo - The context information to use.\n * @returns {boolean | null} - Evaluated result, or null if expression is invalid/missing.\n */\nexport function runUnaryTestEvaluation(expressionLanguage, value, expressionContextInfo) {\n  return expressionLanguage.evaluateUnaryTest(value, buildExpressionContext(expressionContextInfo));\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, 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  /** @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';\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';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { runUnaryTestEvaluation } from '../../util/expressions';\n\n/**\n * Evaluate a unary test expression reactively. Returns null for invalid/missing expressions.\n * The function is memoized to minimize re-renders.\n *\n * @param {string | undefined} value - A unary test expression to evaluate.\n * @returns {boolean | null} - Evaluated result, or null if expression is invalid/missing.\n */\nexport function useUnaryTestEvaluation(value) {\n  const expressionLanguage = useService('expressionLanguage');\n  const expressionContextInfo = useContext(LocalExpressionContext);\n  return useMemo(\n    () => runUnaryTestEvaluation(expressionLanguage, value, expressionContextInfo),\n    [expressionLanguage, expressionContextInfo, value],\n  );\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 { useService } from './useService.js';\nimport { useUnaryTestEvaluation } from './useUnaryTestEvaluation.js';\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\n  const { readonly } = formField;\n\n  const isExpression = expressionLanguage && expressionLanguage.isExpression(readonly);\n\n  const evaluatedReadonly = useUnaryTestEvaluation(isExpression ? readonly : undefined);\n\n  if (properties.readOnly) {\n    return true;\n  }\n\n  if (isExpression) {\n    return evaluatedReadonly === true;\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;\nconst ALLOWED_IFRAME_SRC_PATTERN = /^(https):\\/\\/*/i;\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","/**\n * @typedef Props\n * @property {string} id\n * @property {string[]} errors\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport 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, index) => {\n          return <li key={index}>{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      htmlFor={htmlFor}\n      class={classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class'])}>\n      {props.children}\n      <span class=\"fjs-label-content\">\n        {evaluatedLabel}\n        {required && (\n          <span class=\"fjs-asterix\" aria-hidden>\n            *\n          </span>\n        )}\n      </span>\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 { 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 { useReadonly, useService, useUnaryTestEvaluation } 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, applyVisibilityConditions } = 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 conditionResult = useUnaryTestEvaluation((field.conditional && field.conditional.hide) || null);\n  const hidden = applyVisibilityConditions ? conditionResult : 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 && fieldInstance) {\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 key={row.id} 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\n    return () => {\n      instance.destroy();\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((entry, index) => {\n          return (\n            <div\n              key={entry.value}\n              class={classNames('fjs-dropdownlist-item', { focused: focusedValueIndex === index })}\n              onMouseMove={mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, index)}\n              onMouseEnter={mouseControl ? () => setFocusedValueIndex(index) : undefined}\n              onMouseDown={(e) => onValueSelected(entry)}>\n              {getLabel(entry)}\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 { useService } from '../../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  const translate = useService('translate');\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 ? [translate('Date and time must both be entered.'), ...errors] : errors;\n  }, [required, subtype, dateTime, errors, translate]);\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, useService } 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 translate = useService('translate');\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={translate('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={translate(\"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>","<svg width=\"54\" height=\"54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" fill=\"currentcolor\" clip-rule=\"evenodd\" d=\"M17.55 41.175h6.75v2.363h-6.75a2.369 2.369 0 0 1-2.363-2.363v-28.35a2.369 2.369 0 0 1 2.363-2.362h11.813a1.073 1.073 0 0 1 .826.354l8.27 8.269a1.073 1.073 0 0 1 .353.827v7.256H36.45v-4.894h-7.088A2.369 2.369 0 0 1 27 19.913v-7.088h-9.45v28.35Zm18.427-21.262-6.614-6.616v6.616h6.614Zm-2.212 10.564-.015-.001h-.015a8.856 8.856 0 0 0-7.926 5.656l-.003.008a.912.912 0 0 0 0 .62l.003.008a8.854 8.854 0 0 0 7.926 5.655l.015.001h.015a8.856 8.856 0 0 0 7.926-5.656l.003-.008a.911.911 0 0 0 0-.62l-.003-.008a8.854 8.854 0 0 0-7.926-5.655ZM33.75 40.6c-2.456 0-5.088-1.802-6.107-4.151 1.019-2.349 3.651-4.151 6.107-4.151 2.456 0 5.088 1.802 6.107 4.151-1.019 2.349-3.65 4.151-6.107 4.151Zm0-7.593a3.443 3.443 0 1 0 0 6.885 3.443 3.443 0 0 0 0-6.886Zm-.316 1.853a1.62 1.62 0 1 1 .632 3.178 1.62 1.62 0 0 1-.632-3.178Z\" /></svg>\n","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';\nimport DocumentPreviewIcon from './DocumentPreview.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    documentPreview: DocumentPreviewIcon,\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\nexport function serializeToInputString(value) {\n  if (value === undefined || value === null) return '';\n  if (typeof value !== 'string' && typeof value !== 'number') return '';\n  return value.toString();\n}\n","import Big from 'big.js';\nimport classNames from 'classnames';\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport { useFlushDebounce, usePrevious, useService } 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 {\n  isNullEquivalentValue,\n  isValidNumber,\n  serializeToInputString,\n  willKeyProduceValidNumber,\n} 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 translate = useService('translate');\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(serializeToInputString(value));\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    if (e.code === 'Enter') {\n      flushOnChange && flushOnChange();\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={translate('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={translate('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 { isDefined } from 'min-dash';\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(\n    () => (isDefined(value) ? getLabelCorrelation(value) : undefined),\n    [value, getLabelCorrelation],\n  );\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?.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, isDefined } 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(\n    () => (isDefined(value) ? getLabelCorrelation(value) : undefined),\n    [value, getLabelCorrelation],\n  );\n\n  const pickOption = useCallback(\n    (option) => {\n      props.onChange({ value: 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  const translate = useService('translate');\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={translate('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((entry) => {\n              return (\n                <div\n                  key={entry}\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(entry)}</span>\n                  {!disabled && !readonly && (\n                    <button\n                      type=\"button\"\n                      title={translate('Remove tag')}\n                      class=\"fjs-taglist-tag-remove\"\n                      onFocus={onElementFocus}\n                      onBlur={onElementBlur}\n                      onClick={(event) => onTagRemoveClick(event, entry)}>\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 : translate('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 ? translate('No results') : translate('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';\nimport { TEXT_VIEW_DEFAULT_TEXT } from '../../../util/constants/TextConstants';\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_VIEW_DEFAULT_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/isEqual';\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 [onChange, flushOnChange] = useFlushDebounce(({ target }) => {\n    props.onChange({\n      value: target.value,\n    });\n  });\n\n  /**\n   * @param {import('preact').JSX.TargetedEvent<HTMLInputElement, Event>} event\n   */\n  const onInputChange = (event) => {\n    onChange({ target: event.target });\n  };\n\n  const onInputBlur = () => {\n    flushOnChange && flushOnChange();\n    onBlur && onBlur();\n  };\n\n  const onInputFocus = () => {\n    onFocus && onFocus();\n  };\n\n  const onKeyDown = (e) => {\n    if (e.code === 'Enter') {\n      flushOnChange && flushOnChange();\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        <input\n          class=\"fjs-input\"\n          disabled={disabled}\n          readOnly={readonly}\n          id={domId}\n          onInput={onInputChange}\n          onBlur={onInputBlur}\n          onFocus={onInputFocus}\n          onKeyDown={onKeyDown}\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, isNil, isNumber, isObject, isString } from 'min-dash';\nimport { useExpressionEvaluation, useService } 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 { import('diagram-js/lib/i18n/translate/translate').default } Translate\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)\n    ? evaluatedDataSource.filter((entry) => !isNil(entry) || typeof entry !== 'object')\n    : [];\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  const translate = useService('translate');\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          translate('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, translate)}>\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                      {translate('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              {translate('{page} of {total}', {\n                // stringify: see Validator.js\n                page: (currentPage + 1).toString(),\n                total: chunkedData.length.toString(),\n              })}\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={translate('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={translate('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 * @param {Translate} translate\n */\nfunction getHeaderAriaLabel(sortBy, key, label, translate) {\n  if (sortBy === null || sortBy.key !== key) {\n    return translate('Click to sort by {value} descending', { value: label });\n  }\n\n  if (sortBy.direction === 'asc') {\n    return translate('Click to remove sorting');\n  }\n\n  return translate('Click to sort by {value} ascending', { value: label });\n}\n\n/**\n * @param {unknown} cellData\n * @returns string\n */\nfunction serializeCellData(cellData) {\n  if (cellData !== null && typeof cellData === 'object') {\n    return JSON.stringify(cellData);\n  }\n\n  if (cellData === null || cellData === undefined) {\n    return '';\n  }\n\n  return `${cellData}`;\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\n/**\n * @typedef { import('diagram-js/lib/i18n/translate/translate').default } Translate\n */\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 {Object} [field.validate]\n * @property {boolean} [field.validate.required]\n * @property {string} [value]\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function FilePicker(props) {\n  /** @type {import(\"preact\").RefObject<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, value: filesKey = '' } = props;\n  const { label, multiple = false, accept = '', validate = {} } = field;\n  /** @type {string} */\n  const evaluatedAccept = useSingleLineTemplateEvaluation(accept, { debug: true });\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  const translate = useService('translate');\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={validate.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        required={validate.required}\n      />\n      <div className=\"fjs-filepicker-container\">\n        <button\n          type=\"button\"\n          disabled={isInputDisabled}\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, translate)}</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 * @param {Translate} translate\n * @returns {string}\n */\nfunction getSelectedFilesLabel(files, translate) {\n  if (files.length === 0) {\n    return translate('No files selected');\n  }\n\n  if (files.length === 1) {\n    return files[0].name;\n  }\n\n  return translate('{value} files selected', { value: files.length.toString() });\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"><path fill=\"currentColor\" d=\"M13 12v2H3v-2H2v2c0 .553.448 1 1 1h10c.552 0 1-.447 1-1v-2h-1Zm0-5-.705-.705-3.795 3.79V1h-1v9.085l-3.795-3.79L3 7l5 5 5-5Z\"/><path style=\"fill:none\" d=\"M0 0h16v16H0V0Z\"/></svg>","import classNames from 'classnames';\nimport { useExpressionEvaluation, useSingleLineTemplateEvaluation, useService } from '../../hooks';\nimport { Errors } from '../Errors';\nimport { formFieldClasses } from '../Util';\nimport { isString } from 'min-dash';\nimport DownloadIcon from './icons/Download.svg';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { Label } from '../Label';\n\nconst type = 'documentPreview';\n\n/**\n * @typedef { import('diagram-js/lib/i18n/translate/translate').default } Translate\n */\n\n/**\n * @typedef DocumentEndpointBuilder\n * @property {(document: DocumentMetadata) => string} [buildUrl]\n * @property {(document: DocumentMetadata) => RequestInit|undefined} [buildRequestInit]\n */\n\n/**\n * @typedef DocumentMetadata\n * @property {string} documentId\n * @property {string} endpoint\n * @property {Object} metadata\n * @property {string|undefined} [metadata.contentType]\n * @property {string} metadata.fileName\n *\n * @typedef Field\n * @property {string} id\n * @property {string} [title]\n * @property {string} [dataSource]\n * @property {number} [maxHeight]\n * @property {string} [label]\n *\n * @typedef Props\n * @property {Field} field\n * @property {string} domId\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function DocumentPreview(props) {\n  /** @type {DocumentEndpointBuilder | null} */\n  const documentEndpointBuilder = useService('documentEndpointBuilder', false);\n  const { field, domId } = props;\n  const { dataSource, maxHeight, label } = field;\n  const errorMessageId = `${domId}-error-message`;\n  const data = useValidDocumentData(dataSource || '');\n  const evaluatedLabel = useSingleLineTemplateEvaluation(label, { debug: true });\n\n  const translate = useService('translate');\n\n  return (\n    <div class={formFieldClasses(type)}>\n      <Label htmlFor={domId} label={evaluatedLabel} />\n      <div class={`fjs-${type}-document-container`} id={domId}>\n        {data.map((document, index) => {\n          const finalEndpoint = tryCatch(() => documentEndpointBuilder?.buildUrl?.(document)) ?? document.endpoint;\n\n          if (!isValidDocumentEndpoint(finalEndpoint)) {\n            return null;\n          }\n\n          return (\n            <DocumentRenderer\n              key={document.documentId}\n              documentMetadata={document}\n              documentEndpointBuilder={documentEndpointBuilder}\n              endpoint={finalEndpoint}\n              maxHeight={maxHeight}\n              domId={`${domId}-${index}`}\n            />\n          );\n        })}\n      </div>\n\n      <Errors\n        id={errorMessageId}\n        errors={getErrors(\n          {\n            dataSource,\n          },\n          translate,\n        )}\n      />\n    </div>\n  );\n}\n\nDocumentPreview.config = {\n  type,\n  keyed: false,\n  group: 'presentation',\n  name: 'Document preview',\n  create: (options = {}) => ({\n    label: 'Document preview',\n    ...options,\n  }),\n};\n\n// helpers /////////////////////////////\n\n/**\n * @typedef GetErrorOptions\n * @property {string|undefined} dataSource\n *\n * @param {GetErrorOptions} options\n * @param {Translate} translate\n * @returns {string[]}\n */\nfunction getErrors(options, translate) {\n  const { dataSource } = options;\n  let errors = [];\n\n  if (!isString(dataSource) || dataSource.length < 1) {\n    errors.push(translate('Document reference is not defined.'));\n  }\n\n  return errors;\n}\n\n/**\n *\n * @param {unknown} endpoint\n * @returns boolean\n */\nfunction isValidDocumentEndpoint(endpoint) {\n  return typeof endpoint === 'string' && URL.canParse(endpoint);\n}\n\n/**\n * @param {unknown} document\n * @returns {metadata is DocumentMetadata}\n */\nfunction isValidDocument(document) {\n  return (\n    typeof document === 'object' &&\n    document !== null &&\n    'documentId' in document &&\n    'metadata' in document &&\n    typeof document.metadata === 'object' &&\n    'fileName' in document.metadata\n  );\n}\n\n/**\n * @param {string} dataSource\n * @returns {DocumentMetadata[]}\n */\nfunction useValidDocumentData(dataSource) {\n  const data = useExpressionEvaluation(dataSource);\n\n  if (!Array.isArray(data)) {\n    return [];\n  }\n\n  return data.filter(isValidDocument);\n}\n\n/**\n * @param {Object} props\n * @param {string} props.url\n * @param {string} props.fileName\n * @param {Function} props.onError\n * @param {string} props.errorMessageId\n * @param {RequestInit|undefined} props.requestInit\n * @returns {import(\"preact\").JSX.Element}\n */\nfunction PdfRenderer(props) {\n  const { url, onError, errorMessageId, requestInit } = props;\n  /** @type {ReturnType<typeof import(\"preact/hooks\").useState<null | string>>} */\n  const [pdfObjectUrl, setPdfObjectUrl] = useState(null);\n  const [hasError, setHasError] = useState(false);\n\n  const translate = useService('translate');\n\n  useEffect(() => {\n    /** @type {null | string} */\n    let objectUrl = null;\n\n    const fetchPdf = async () => {\n      try {\n        const response = await fetch(url, requestInit);\n\n        if (!response.ok) {\n          setHasError(true);\n          onError();\n          return;\n        }\n\n        // Re-type the response instead of trusting its content type. An object URL\n        // inherits the form's origin and <embed> renders it by the blob's own type,\n        // so a response served as HTML would execute script in that origin.\n        const blob = new Blob([await response.arrayBuffer()], { type: 'application/pdf' });\n\n        objectUrl = URL.createObjectURL(blob);\n        setPdfObjectUrl(objectUrl);\n      } catch {\n        setHasError(true);\n        onError();\n      }\n    };\n\n    fetchPdf();\n\n    return () => {\n      if (objectUrl) {\n        URL.revokeObjectURL(objectUrl);\n      }\n    };\n  }, [url, onError, requestInit]);\n\n  return (\n    <>\n      {pdfObjectUrl !== null ? (\n        <embed src={pdfObjectUrl} type=\"application/pdf\" class={`fjs-${type}-pdf-viewer`} />\n      ) : null}\n      {hasError ? <Errors id={errorMessageId} errors={[translate('Unable to download document')]} /> : null}\n    </>\n  );\n}\n\n/**\n * @param {Object} props\n * @param {string} props.url\n * @param {string} props.alt\n * @param {Function} props.onError\n * @param {RequestInit|undefined} props.requestInit\n * @returns {import(\"preact\").JSX.Element}\n */\nfunction ImageRenderer(props) {\n  const { url, alt, onError, requestInit } = props;\n  /** @type {ReturnType<typeof import(\"preact/hooks\").useState<null | string>>} */\n  const [imageObjectUrl, setImageObjectUrl] = useState(null);\n\n  useEffect(() => {\n    /** @type {null | string} */\n    let objectUrl = null;\n\n    const fetchImage = async () => {\n      try {\n        const response = await fetch(url, requestInit);\n\n        if (!response.ok) {\n          onError();\n          return;\n        }\n\n        const blob = await response.blob();\n        objectUrl = URL.createObjectURL(blob);\n        setImageObjectUrl(objectUrl);\n      } catch {\n        onError();\n      }\n    };\n\n    fetchImage();\n\n    return () => {\n      if (objectUrl) {\n        URL.revokeObjectURL(objectUrl);\n      }\n    };\n  }, [url, onError, requestInit]);\n\n  return imageObjectUrl !== null ? <img src={imageObjectUrl} alt={alt} class={`fjs-${type}-image`} /> : null;\n}\n\n/**\n *\n * @param {Object} props\n * @param {DocumentMetadata} props.documentMetadata\n * @param {DocumentEndpointBuilder | null} props.documentEndpointBuilder\n * @param {string} props.endpoint\n * @param {string} props.domId\n * @param {number|undefined} props.maxHeight\n *\n * @returns {import(\"preact\").JSX.Element}\n */\nfunction DocumentRenderer(props) {\n  const { documentMetadata, documentEndpointBuilder, endpoint, maxHeight, domId } = props;\n  const { metadata } = documentMetadata;\n  const [hasError, setHasError] = useState(false);\n  const ref = useRef(null);\n  const isInViewport = useInViewport(ref);\n  const onError = useCallback(() => setHasError(true), []);\n  const requestInit = useMemo(\n    () => getDocumentRequestInit(documentEndpointBuilder, documentMetadata),\n    [documentEndpointBuilder, documentMetadata],\n  );\n\n  const translate = useService('translate');\n\n  const singleDocumentContainerClassName = `fjs-${type}-single-document-container`;\n  const errorMessageId = `${domId}-error-message`;\n  const errorMessage = translate('Unable to download document');\n  const isContentTypePresent = typeof metadata.contentType === 'string';\n\n  if (isContentTypePresent && metadata.contentType.toLowerCase().startsWith('image/') && isInViewport) {\n    return (\n      <div\n        class={singleDocumentContainerClassName}\n        style={{ maxHeight }}\n        aria-describedby={hasError ? errorMessageId : undefined}>\n        <ImageRenderer\n          url={endpoint}\n          alt={metadata.fileName}\n          requestInit={requestInit}\n          onError={onError}\n        />\n        <DownloadButton\n          endpoint={endpoint}\n          fileName={metadata.fileName}\n          requestInit={requestInit}\n          onDownloadError={onError}\n        />\n        {hasError ? <Errors id={errorMessageId} errors={[errorMessage]} /> : null}\n      </div>\n    );\n  }\n\n  if (isContentTypePresent && metadata.contentType.toLowerCase() === 'application/pdf' && isInViewport) {\n    return (\n      <div\n        class={singleDocumentContainerClassName}\n        style={{ maxHeight }}\n        aria-describedby={hasError ? errorMessageId : undefined}>\n        <PdfRenderer\n          url={endpoint}\n          fileName={metadata.fileName}\n          requestInit={requestInit}\n          onError={onError}\n          errorMessageId={errorMessageId}\n        />\n      </div>\n    );\n  }\n\n  return (\n    <div\n      class={classNames(`fjs-${type}-non-preview-item`, `fjs-${type}-single-document-container`)}\n      ref={ref}\n      aria-describedby={hasError ? errorMessageId : undefined}>\n      <div>\n        <div class=\"fjs-document-preview-title\">{metadata.fileName}</div>\n        {hasError ? <Errors id={errorMessageId} errors={[errorMessage]} /> : null}\n      </div>\n      <DownloadButton\n        endpoint={endpoint}\n        fileName={metadata.fileName}\n        requestInit={requestInit}\n        onDownloadError={onError}\n      />\n    </div>\n  );\n}\n\n/**\n * @param {Object} props\n * @param {string} props.endpoint\n * @param {string} props.fileName\n * @param {Function} props.onDownloadError\n * @param {RequestInit|undefined} props.requestInit\n *\n * @returns {import(\"preact\").JSX.Element}\n */\nfunction DownloadButton(props) {\n  const { endpoint, fileName, onDownloadError, requestInit } = props;\n\n  const translate = useService('translate');\n\n  const handleDownload = async () => {\n    try {\n      const response = await fetch(endpoint, requestInit);\n\n      if (!response.ok) {\n        onDownloadError();\n        return;\n      }\n\n      const blob = await response.blob();\n      const url = window.URL.createObjectURL(blob);\n      const link = document.createElement('a');\n      link.href = url;\n      link.download = fileName;\n      link.click();\n      window.URL.revokeObjectURL(url);\n    } catch {\n      onDownloadError();\n    }\n  };\n\n  return (\n    <button\n      type=\"button\"\n      onClick={handleDownload}\n      class={classNames(`fjs-${type}-download-button`)}\n      aria-label={translate('Download {fileName}', { fileName })}>\n      <DownloadIcon />\n    </button>\n  );\n}\n\n/**\n *\n * @param {import(\"preact\").RefObject<HTMLElement|null>} ref\n * @returns boolean\n */\nfunction useInViewport(ref) {\n  const [isInViewport, setIsInViewport] = useState(false);\n\n  useEffect(() => {\n    const container = ref.current;\n\n    if (!container) {\n      return;\n    }\n\n    const observer = new IntersectionObserver(\n      ([entry]) => {\n        if (entry.isIntersecting) {\n          setIsInViewport(true);\n        }\n      },\n      {\n        threshold: 0,\n      },\n    );\n\n    observer.observe(container);\n\n    return () => {\n      if (container) {\n        observer.unobserve(container);\n      }\n    };\n  }, [ref]);\n\n  return isInViewport;\n}\n\n/**\n * @param {DocumentEndpointBuilder | null} documentEndpointBuilder\n * @param {DocumentMetadata} document\n * @returns {RequestInit|undefined}\n */\nfunction getDocumentRequestInit(documentEndpointBuilder, document) {\n  const requestInit = tryCatch(() => documentEndpointBuilder?.buildRequestInit?.(document));\n\n  return requestInit !== null && typeof requestInit === 'object' ? requestInit : undefined;\n}\n\n/**\n * @template T\n * @param {() => T} fn - Function to execute\n * @returns {T | null}\n */\nconst tryCatch = (fn) => {\n  try {\n    return fn();\n  } catch (error) {\n    console.error(error);\n    return null;\n  }\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 noreferrer\"\n          style=\"margin: 15px 20px 15px 10px; align-self: center; color: #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 noreferrer\">\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 noreferrer\"\n        class=\"fjs-powered-by-link\"\n        title=\"Powered by bpmn.io\"\n        style=\"color: #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';\nimport { DocumentPreview } from './form-fields/DocumentPreview';\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  DocumentPreview,\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  DocumentPreview,\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  'multiple',\n  'accept',\n  'title',\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  'title',\n];\n\n/**\n * @typedef { import('../types').Schema } Schema\n * @typedef { import('../types').ExpressionLanguage } ExpressionLanguage\n * @typedef { import('../types').Templating } Templating\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 {ExpressionLanguage} [options.expressionLanguage]\n * @param {Templating} [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 { get, set, values, isObject } from 'min-dash';\nimport { buildExpressionContext, clone } from '../../util';\n\n/**\n * @typedef { import('../../types').ExpressionLanguage } ExpressionLanguage\n */\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport class ConditionChecker {\n  /**\n   * @param {Object} formFieldRegistry\n   * @param {Object} pathRegistry\n   * @param {ExpressionLanguage} expressionLanguage\n   * @param {Object} eventBus\n   */\n  constructor(formFieldRegistry, pathRegistry, expressionLanguage, eventBus) {\n    this._formFieldRegistry = formFieldRegistry;\n    this._pathRegistry = pathRegistry;\n    this._expressionLanguage = expressionLanguage;\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    return this._expressionLanguage.evaluateUnaryTest(condition, data);\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', 'expressionLanguage', '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.js').ElementLike} ElementLike\n *\n * @typedef {import('../core/EventBus.js').default} EventBus\n * @typedef {import('./CommandHandler.js').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.js';\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, pruneAt } 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 errorPath = [id, ...Object.values(indexes || {})];\n\n    let nextErrors;\n    if (fieldErrors.length) {\n      set(errors, errorPath, fieldErrors);\n      nextErrors = errors;\n    } else {\n      nextErrors = pruneAt(errors, errorPath);\n    }\n\n    this._form._setState({ errors: nextErrors });\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 { useService } from '../../render/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            key={itemIndex}\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 translate = useService('translate');\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            disabled={disabled || readonly}\n            class=\"fjs-repeat-render-add\"\n            ref={addButtonRef}\n            onClick={onAddItem}>\n            <>\n              <AddSvg /> {translate('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 /> {translate('Expand all ({value})', { value: values.length - 1 })}\n              </>\n            ) : (\n              <>\n                <CollapseSvg /> {translate('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', '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 {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 */\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 */\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 {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 */\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 */\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<unknown>} [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\n/**\n * @typedef { import('../types').ExpressionLanguage } ExpressionLanguage\n */\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, translate) {\n    this._expressionLanguage = expressionLanguage;\n    this._conditionChecker = conditionChecker;\n    this._form = form;\n    this._formFieldRegistry = formFieldRegistry;\n    this._translate = translate;\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, this._translate)];\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, this._translate)];\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, this._translate)];\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, this._translate)];\n\n    return errors;\n  }\n}\n\nValidator.$inject = ['expressionLanguage', 'conditionChecker', 'form', 'formFieldRegistry', 'translate'];\n\n// helpers //////////\n\nfunction runNumberValidation(field, value, translate) {\n  const { decimalDigits, increment } = field;\n  const errors = [];\n\n  if (value === 'NaN') {\n    errors.push(translate('Value is not a number.'));\n  } else if (value) {\n    if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\n      if (decimalDigits === 0) {\n        errors.push(translate('Value is expected to be an integer.'));\n      } else if (decimalDigits === 1) {\n        errors.push(translate('Value is expected to have at most 1 decimal digit.'));\n      } else {\n        errors.push(\n          translate('Value is expected to have at most {value} decimal digits.', { value: decimalDigits.toString() }),\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(\n          translate('Please select a valid value, the two nearest valid values are {previousValue} and {nextValue}.', {\n            previousValue: previousValue,\n            nextValue: nextValue,\n          }),\n        );\n      }\n    }\n  }\n\n  return errors;\n}\n\nfunction runPresetValidation(field, validation, value, translate) {\n  const errors = [];\n  if (validation.pattern && value && !new RegExp(validation.pattern).test(value)) {\n    errors.push(\n      validation.patternErrorMessage || translate('Field must match pattern {value}.', { value: validation.pattern }),\n    );\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(translate('Field is required.'));\n    }\n  }\n\n  // stringify: `translate` falls back to the raw placeholder for a falsy replacement, so 0 must not be passed as a number\n  if ('min' in validation && (value || value === 0)) {\n    try {\n      if (Big(value).lt(Big(validation.min))) {\n        errors.push(translate('Field must have minimum value of {value}.', { value: validation.min.toString() }));\n      }\n    } catch {\n      errors.push(translate('Min validation value is not a valid number.'));\n    }\n  }\n\n  if ('max' in validation && (value || value === 0)) {\n    try {\n      if (Big(value).gt(Big(validation.max))) {\n        errors.push(translate('Field must have maximum value of {value}.', { value: validation.max.toString() }));\n      }\n    } catch {\n      errors.push(translate('Max validation value is not a valid number.'));\n    }\n  }\n\n  if ('minLength' in validation && value && value.trim().length < validation.minLength) {\n    errors.push(translate('Field must have minimum length of {value}.', { value: validation.minLength.toString() }));\n  }\n\n  if ('maxLength' in validation && value && value.trim().length > validation.maxLength) {\n    errors.push(translate('Field must have maximum length of {value}.', { value: validation.maxLength.toString() }));\n  }\n\n  if ('validationType' in validation && value && validation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\n    errors.push(translate('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(translate('Field must be a valid email.'));\n  }\n\n  return errors;\n}\n\n/**\n * @param {Object} validate\n * @param {ExpressionLanguage} expressionLanguage\n * @param {Object} expressionContextInfo\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\n/**\n * @param {Object} validate\n * @param {ExpressionLanguage} expressionLanguage\n * @param {Object} conditionChecker\n * @param {Object} form\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\n/**\n * @typedef { import('diagram-js/lib/i18n/translate/translate').default } Translate\n */\n\nexport class FieldFactory {\n  /**\n   * @constructor\n   *\n   * @param formFieldRegistry\n   * @param pathRegistry\n   * @param formFields\n   * @param {Translate} translate\n   */\n  constructor(formFieldRegistry, pathRegistry, formFields, translate) {\n    this._formFieldRegistry = formFieldRegistry;\n    this._pathRegistry = pathRegistry;\n    this._formFields = formFields;\n    this._translate = translate;\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(\n        this._translate(\"binding path '{value}' is already claimed\", { value: [...parentPath, key].join('.') }),\n      );\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(\n        this._translate(\"binding path '{value}' is already claimed\", {\n          value: [...parentPath, ...path.split('.')].join('.'),\n        }),\n      );\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', 'translate'];\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 wasInstanceChanged = Object.keys(restInfo).some((key) => {\n        return this._formFieldInstances[instanceId][key] !== restInfo[key];\n      });\n\n      if (wasInstanceChanged) {\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';\nimport TranslateModule from 'diagram-js/lib/i18n/translate';\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, pruneAt } 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      TranslateModule,\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    const errorPath = [id, ...Object.values(indexes || {})];\n\n    let nextErrors;\n    if (fieldErrors.length) {\n      set(errors, errorPath, fieldErrors);\n      nextErrors = errors;\n    } else {\n      nextErrors = pruneAt(errors, errorPath);\n    }\n\n    this._emit('field.updated', update);\n\n    this._setState({\n      data: clone(data),\n      errors: clone(nextErrors),\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 = 19;\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":["translate","template","replacements","replace","_","key","getFlavouredFeelVariableNames","feelString","feelFlavour","options","depth","specialDepthAccessors","includes","tree","parseExpression","undefined","parseUnaryTests","simpleExpressionTree","_buildSimpleFeelStructureTree","variables","_unfoldVariables","node","name","pathRoot","_linearizePathExpression","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","_cleanupVariableName","variableName","args","children","filter","child","reduce","acc","concat","boundNames","_collectBoundVariableNames","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","FEEL_TRAILING_KEYWORDS","keyword","endsWith","collect","n","nameNode","find","forEach","FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","Error","evaluate","data","error","fire","evaluateUnaryTest","unaryTest","$inject","FeelersTemplating","isTemplate","test","expressions","_extractExpressionsWithDepth","_parent_","this","_this_","context","debug","strict","buildDebugString","err","sanitizer","evaluateFeelers","parseToSimpleTree","_traverse","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","SANDBOX_ATTRIBUTE","ALLOW_ATTRIBUTE","SECURITY_ATTRIBUTES_DEFINITIONS","attribute","directive","property","TEXT_VIEW_DEFAULT_TEXT","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","getSimpleOptionsData","formData","valuesExpression","optionsExpression","valuesKey","optionsKey","staticOptions","normalizeOptionsData","optionsData","_isAllowedValue","_normalizeOption","o","isNil","createEmptyOptions","defaults","option","_isAllowedPrimitive","isObject","isValidLabel","_isValidLabel","isAllowedPrimitiveType","isValid","FormRenderContext","createContext","Empty","props","Hidden","Children","_jsx","class","style","Element","Row","Column","hoverInfo","cleanup","applyVisibilityConditions","LocalExpressionContext","getService","FormContext","useService","useContext","isRequired","required","pathParse","path","isNaN","parseInt","pathsEqual","a","b","every","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","parse","stringify","runRecursively","fn","components","component","pruneAt","target","cloneContainer","c","isArray","clones","next","cloned","v","wrapObjectKeysWithUnderscores","obj","newObj","entries","buildExpressionContext","specialContextKeys","runExpressionEvaluation","expressionLanguage","expressionContextInfo","runUnaryTestEvaluation","useExpressionEvaluation","useMemo","useDeepCompareMemoize","ref","useRef","isEqual","LOAD_STATES","LOADING","LOADED","ERROR","useOptionsAsync","initialData","_getState","expressionEvaluation","evaluatedOptions","optionsGetter","keyedOptions","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","useBooleanExpressionEvaluation","evaluationResult","useUnaryTestEvaluation","useFilteredFormData","conditionChecker","newData","applyConditions","useKeyDownAction","targetKey","action","listenerElement","downHandler","addEventListener","removeEventListener","useReadonly","properties","evaluatedReadonly","readOnly","usePrevious","defaultValue","useFlushDebounce","func","timeoutRef","lastArgsRef","config","debounce","shouldDebounce","delay","debounceFunc","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","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","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","Checkbox","domId","validate","checked","descriptionId","errorMessageId","emptyValue","sanitizeValue","Checklist","outerDivRef","toggleCheckbox","toggledValue","newValues","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","itemDomId","isChecked","className","onClick","noop","ids","Ids","FormField","instanceIdRef","_onChange","formFields","viewerCommands","formFieldInstanceRegistry","pathRegistry","form","initialValidationTrigger","setInitialValidationTrigger","useState","FormFieldComponent","fieldConfig","localExpressionContext","valuePath","getValuePath","initialValue","conditionResult","conditional","hide","hidden","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","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","destroy","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","entry","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","documentPreview","DocumentPreviewIcon","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","serializeToInputString","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","isDefined","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","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","serializeCellData","page","total","CaretLeftIcon","CaretRightIcon","remainingOptions","isColumn","generateInitialDemoData","demoData","demoDataKeys","fallbackColumns","column","size","chunks","sort","cellData","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","DocumentPreview","documentEndpointBuilder","useValidDocumentData","finalEndpoint","tryCatch","buildUrl","endpoint","isValidDocumentEndpoint","DocumentRenderer","documentMetadata","documentId","getErrors","URL","canParse","isValidDocument","metadata","PdfRenderer","onError","requestInit","pdfObjectUrl","setPdfObjectUrl","hasError","setHasError","objectUrl","fetchPdf","response","fetch","ok","blob","Blob","arrayBuffer","createObjectURL","revokeObjectURL","ImageRenderer","imageObjectUrl","setImageObjectUrl","fetchImage","isInViewport","useInViewport","getDocumentRequestInit","singleDocumentContainerClassName","errorMessage","isContentTypePresent","contentType","fileName","DownloadButton","onDownloadError","handleDownload","download","DownloadIcon","setIsInViewport","observer","IntersectionObserver","isIntersecting","threshold","observe","unobserve","buildRequestInit","console","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","_expressionLanguage","contextData","workingData","getFilterPath","_applyConditionsWithinScope","rootField","scopeContext","startHidden","expressionIndexes","scopeData","parentScopeData","executeRecursivelyOnFields","isClosed","isRepeatable","isHidden","_checkHideCondition","preventRecursion","repeaterValuePath","repeaterValue","newScopeContext","_cleanlyClearDataAtPath","getForm","check","condition","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","errorPath","nextErrors","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","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","EMAIL_PATTERN","PHONE_PATTERN","VALIDATE_FEEL_PROPERTIES","Validator","_conditionChecker","_translate","runNumberValidation","evaluatedValidation","oldEvaluateFEELValues","runPresetValidation","evaluateFEELValues","bigValue","bigIncrement","nextValue","validation","pattern","RegExp","patternErrorMessage","isUncheckedCheckbox","isUnsetValue","isEmptyMultiselect","lt","gt","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","_getUniqueKeyPath","random","PathRegistry","_dataPaths","skipAncestryCheck","segment","_getNextSegment","isValidRepeatClaim","repeaterId","claimCount","unclaimPath","formFieldConfig","callResult","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","_addIndexes","FormLayouter","_rows","addRow","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","groupBy","formRows","flat","FormFieldRegistry","getAll","FormFieldInstanceRegistry","_formFieldInstances","formFieldInfo","restInfo","isInstanceExpected","doesInstanceExist","wasInstanceChanged","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","_detach","Promise","resolve","reject","initializedData","_getSubmitData","getErrorPath","parentNode","detach","appendChild","removeChild","setProperty","modules","_getModules","additionalModules","enrichedConfig","TranslateModule","submitData","formFieldInstance","initializeFieldDataRecursively","valueData","isUndefined","initializedFieldValue","val","basePath","schemaVersion","createForm","formOptions","then"],"mappings":"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,EAAA;;AAEA;AACF;AACA;AACEF,EAAAA,KAAKA,GAAG;IACN,IAAI,CAACD,oBAAoB,GAAG,EAAE;AAChC,EAAA;AACF;AAEAD,uBAAuB,CAAClmC,OAAO,GAAG,CAAC,UAAU,CAAC;;ACtCvC,MAAMumC,qBAAqB,GAAG;EACnCN,QAAQ,EAAE,CAAC,yBAAyB,CAAC;AACrCxN,EAAAA,uBAAuB,EAAE,CAAC,MAAM,EAAEyN,uBAAuB;AAC3D;;ACHO,MAAMM,gBAAgB,CAAC;AAC5B;AACF;AACA;AACA;AACA;AACA;AACA;EACE5O,MAAMA,CAACD,QAAQ,EAAE;AACf;AACA,IAAA,OAAO8O,aAAM,CAACr9B,KAAK,CAACuuB,QAAQ,EAAE;AAC5B+O,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,MAAM,EAAE;AACV,KAAC,CAAC;AACJ,EAAA;AACF;AAEAH,gBAAgB,CAACxmC,OAAO,GAAG,EAAE;;ACjBtB,MAAM4mC,sBAAsB,GAAG;EACpCX,QAAQ,EAAE,CAAC,kBAAkB,CAAC;AAC9BvO,EAAAA,gBAAgB,EAAE,CAAC,MAAM,EAAE8O,gBAAgB;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,CAAC5nC,QAAQ,EAAE6E,QAAQ,E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CAACK,SAAS,CAAE;AAAAhxC,MAAAA,QAAA,EACvC+L,cAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAC,sCAAsC;AAAAhM,QAAAA,QAAA,EAC/C+L,cAAA,CAACimC,SAAS,EAAA,EAAE;OACT;AAAC,KACA,CAAC;AAAA,GACN,CACN;AACH,CAAC;AAEDhC,mBAAmB,CAACvrC,OAAO,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC;;ACnR9F,MAAMwtC,kBAAkB,GAAG;EAChCvH,QAAQ,EAAE,CAAC,qBAAqB,CAAC;AACjCpnB,EAAAA,mBAAmB,EAAE,CAAC,MAAM,EAAE0sB,mBAAmB;AACnD;;ACGA,IAAIkC,MAAM,GAAG,MAAM;AAEnB,IAAIC,gBAAgB,GAAG,IAAI;AAE3B,IAAI/vC,KAAK,GAAG1C,KAAK,CAACusC,SAAS,CAAC7pC,KAAK;;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,SAASgwC,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE;;AAEpB;AACA;AACA,EAAA,IAAI,CAACxvB,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CA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","x_google_ignoreList":[0,1,126,127,138]}