{"version":3,"file":"index.cjs","sources":["../src/features/expressionLanguage/variableExtractionHelpers.js","../src/features/expressionLanguage/FeelExpressionLanguage.js","../src/features/expressionLanguage/FeelersTemplating.js","../src/util/constants/DatetimeConstants.js","../src/util/constants/OptionsSourceConstants.js","../src/util/constants/IFrameConstants.js","../src/util/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":["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 [node.variableName];\n\n    // for any other kind of node, traverse its children and flatten the result\n    if (node.children) {\n      const variables = node.children.reduce((acc, child) => {\n        return acc.concat(_unfoldVariables(child));\n      }, []);\n\n      // if we are within a filter context, we need to remove the item variable as it is used for iteration there\n      return node.name === 'FilterContext' ? variables.filter((name) => name !== 'item') : variables;\n    }\n\n    return [];\n  })(simpleExpressionTree);\n\n  return [...new Set(variables)];\n};\n\n/**\n * Get the variable name at the specified index in a given path expression.\n *\n * @param {Object} root - The root node of the path expression tree.\n * @param {number} index - The index of the variable name to retrieve.\n * @returns {string|null} The variable name at the specified index or null if index is out of bounds.\n */\nconst _getVariableNameAtPathIndex = (root, index) => {\n  const nodes = _linearizePathExpression(root);\n  return nodes[index].variableName || null;\n};\n\n/**\n * Extracts the variables which are required of the external context for a given path expression.\n * This is done by traversing the path expression tree and keeping track of the current depth relative to the external context.\n *\n * @param {Object} node - The root node of the path expression tree.\n * @param {number} initialDepth - The depth at which the root node is located in the outer context.\n * @param {Object} specialDepthAccessors - Definitions of special keywords which represent more complex accesses of the outer context.\n * @returns {Set} - A set containing the extracted variable names.\n */\nconst _smartExtractVariableNames = (node, initialDepth, specialDepthAccessors) => {\n  // depth info represents the previous (initialised as null) and current depth of the current accessor in the path expression\n  // we track multiple of these to account for the fact that a path expression may be ambiguous due to special keywords\n  let accessorDepthInfos = [{ previous: null, current: initialDepth - 1 }];\n  const extractedVariables = new Set();\n  const pathNodes = _linearizePathExpression(node);\n\n  for (let i = 0; i < pathNodes.length; i++) {\n    const currentAccessor = pathNodes[i].variableName;\n\n    if (currentAccessor in specialDepthAccessors) {\n      const depthOffsets = specialDepthAccessors[currentAccessor];\n\n      // if the current accessor is a special keyword, we need to expand the current depth info set\n      // this is done to account for the ambiguity of keywords like parent, which may be used to access\n      // the parent of the current node, or a child variable of the same name\n      accessorDepthInfos = depthOffsets\n        .reduce((accumulator, offset) => {\n          return [\n            ...accumulator,\n            ...accessorDepthInfos.map((depthInfo) => ({\n              previous: depthInfo.current,\n              current: depthInfo.current + offset,\n            })),\n          ];\n        }, [])\n        .filter((depthInfo) => depthInfo.current >= -1); // discard all depth infos which are out of bounds\n    } else {\n      // if the current accessor is not a special keyword, we know it's simply accessing a child\n      // hence we are now one level deeper in the tree and simply increment\n      accessorDepthInfos = accessorDepthInfos.map((depthInfo) => ({\n        previous: depthInfo.current,\n        current: depthInfo.current + 1,\n      }));\n    }\n\n    // finally, we check if for the current accessor, there is a scenario where:\n    // previous it was at depth -1 (i.e. the root context), and is now at depth 0 (i.e. a variable)\n    // these are the variables we need to request, so we add them to the set\n    if (accessorDepthInfos.some((depthInfo) => depthInfo.previous === -1 && depthInfo.current === 0)) {\n      extractedVariables.add(currentAccessor);\n    }\n  }\n\n  // we return a set to avoid duplicates\n  return new Set(extractedVariables);\n};\n\n/**\n * Deconstructs a path expression tree into an array of components.\n *\n * @param {Object} root - The root node of the path expression tree.\n * @returns {Array<object>} An array of components in the path expression, in the correct order.\n */\nconst _linearizePathExpression = (root) => {\n  let node = root;\n  let parts = [];\n\n  // Traverse the tree and collect path components\n  while (node.name === 'PathExpression') {\n    parts.push(node.children[1]);\n    node = node.children[0];\n  }\n\n  // Add the last component to the array\n  parts.push(node);\n\n  // Reverse and return the array to get the correct order\n  return parts.reverse();\n};\n\n/**\n * Builds a simplified feel structure tree from the given parse tree and feel string.\n * The nodes follow this structure: `{ name: string, children: Array, variableName?: string }`\n *\n * @param {Object} parseTree - The parse tree generated by a parser.\n * @param {string} feelString - The feel string used for parsing.\n * @returns {Object} The simplified feel structure tree.\n */\nconst _buildSimpleFeelStructureTree = (parseTree, feelString) => {\n  const stack = [{ children: [] }];\n  parseTree.iterate({\n    enter: (node) => {\n      const nodeRepresentation = {\n        name: node.type.name,\n        children: [],\n      };\n\n      if (node.type.name === 'VariableName') {\n        nodeRepresentation.variableName = feelString.slice(node.from, node.to);\n      }\n\n      stack.push(nodeRepresentation);\n    },\n    leave: () => {\n      const result = stack.pop();\n      const parent = stack[stack.length - 1];\n      parent.children.push(result);\n    },\n  });\n\n  return _extractFilterExpressions(stack[0].children[0]);\n};\n\n/**\n * Restructure the tree in such a way to bring filters (which create new contexts) to the root of the tree.\n * This is done to simplify the extraction of variables and match the context hierarchy.\n */\nconst _extractFilterExpressions = (tree) => {\n  const flattenedExpressionTree = {\n    name: 'Root',\n    children: [tree],\n  };\n\n  const iterate = (node) => {\n    if (node.children) {\n      for (let x = 0; x < node.children.length; x++) {\n        if (node.children[x].name === 'FilterExpression') {\n          const filterTarget = node.children[x].children[0];\n          const filterExpression = node.children[x].children[2];\n\n          // bypass the filter expression\n          node.children[x] = filterTarget;\n\n          const taggedFilterExpression = {\n            name: 'FilterContext',\n            children: [filterExpression],\n          };\n\n          // append the filter expression to the root\n          flattenedExpressionTree.children.push(taggedFilterExpression);\n\n          // recursively iterate the expression\n          iterate(filterExpression);\n        } else {\n          iterate(node.children[x]);\n        }\n      }\n    }\n  };\n\n  iterate(tree);\n\n  return flattenedExpressionTree;\n};\n","import { evaluate, 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 { parser as feelersParser, buildSimpleTree, evaluate as evaluateFeelers } from 'feelers';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport class FeelersTemplating {\n  constructor() {}\n\n  /**\n   * Determines if the given value is a feelers template.\n   *\n   * @param {any} value\n   * @returns {boolean}\n   *\n   */\n  isTemplate(value) {\n    return isString(value) && (value.startsWith('=') || /{{.*?}}/.test(value));\n  }\n\n  /**\n   * Retrieve variable names from a given feelers template.\n   *\n   * @param {string} template\n   *\n   * @returns {string[]}\n   */\n  getVariableNames(template) {\n    if (!this.isTemplate(template)) {\n      return [];\n    }\n\n    const expressions = this._extractExpressionsWithDepth(template);\n\n    // defines special accessors, and the change(s) in depth they could imply (e.g. parent can be used to access the parent context (depth - 1) or a child variable named parent (depth + 1)\n    const specialDepthAccessors = {\n      parent: [-1, 1],\n      _parent_: [-1],\n      this: [0, 1],\n      _this_: [0],\n    };\n\n    return expressions.reduce((variables, { expression, depth }) => {\n      return variables.concat(\n        getFlavouredFeelVariableNames(expression, 'expression', { depth, specialDepthAccessors }),\n      );\n    }, []);\n  }\n\n  /**\n   * Evaluate a template.\n   *\n   * @param {string} template\n   * @param {Object<string, any>} context\n   * @param {Object} options\n   * @param {boolean} [options.debug = false]\n   * @param {boolean} [options.strict = false]\n   * @param {Function} [options.buildDebugString]\n   * @param {Function} [options.sanitizer]\n   *\n   * @returns\n   */\n  evaluate(template, context = {}, options = {}) {\n    const {\n      debug = false,\n      strict = false,\n      buildDebugString = (err) => ' {{⚠}} ',\n      sanitizer = (value) => value,\n    } = options;\n\n    return evaluateFeelers(template, context, { debug, strict, buildDebugString, sanitizer });\n  }\n\n  /**\n   * @typedef {Object} ExpressionWithDepth\n   * @property {number} depth - The depth of the expression in the syntax tree.\n   * @property {string} expression - The extracted expression\n   */\n\n  /**\n * Extracts all feel expressions in the template along with their depth in the syntax tree.\n * The depth is incremented for child expressions of loops to account for context drilling.\n\n * @name extractExpressionsWithDepth\n * @param {string} template - A feelers template string.\n * @returns {Array<ExpressionWithDepth>} An array of objects, each containing the depth and the extracted expression.\n *\n * @example\n * const template = \"Hello {{user}}, you have:{{#loop items}}\\n- {{amount}} {{name}}{{/loop}}.\";\n * const extractedExpressions = _extractExpressionsWithDepth(template);\n */\n  _extractExpressionsWithDepth(template) {\n    // build simplified feelers syntax tree\n    const parseTree = feelersParser.parse(template);\n    const tree = buildSimpleTree(parseTree, template);\n\n    return (function _traverse(n, depth = 0) {\n      if (['Feel', 'FeelBlock'].includes(n.name)) {\n        return [{ depth, expression: n.content }];\n      }\n\n      if (n.name === 'LoopSpanner') {\n        const loopExpression = n.children[0].content;\n        const childResults = n.children.slice(1).reduce((acc, child) => {\n          return acc.concat(_traverse(child, depth + 1));\n        }, []);\n        return [{ depth, expression: loopExpression }, ...childResults];\n      }\n\n      return n.children.reduce((acc, child) => {\n        return acc.concat(_traverse(child, depth));\n      }, []);\n    })(tree);\n  }\n}\n\nFeelersTemplating.$inject = [];\n","// config  ///////////////////\n\nexport const MINUTES_IN_DAY = 60 * 24;\n\nexport const DATETIME_SUBTYPES = {\n  DATE: 'date',\n  TIME: 'time',\n  DATETIME: 'datetime',\n};\n\nexport const TIME_SERIALISING_FORMATS = {\n  UTC_OFFSET: 'utc_offset',\n  UTC_NORMALIZED: 'utc_normalized',\n  NO_TIMEZONE: 'no_timezone',\n};\n\nexport const DATETIME_SUBTYPES_LABELS = {\n  [DATETIME_SUBTYPES.DATE]: 'Date',\n  [DATETIME_SUBTYPES.TIME]: 'Time',\n  [DATETIME_SUBTYPES.DATETIME]: 'Date & Time',\n};\n\nexport const TIME_SERIALISINGFORMAT_LABELS = {\n  [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\n  [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\n  [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone',\n};\n\nexport const DATETIME_SUBTYPE_PATH = ['subtype'];\nexport const DATE_LABEL_PATH = ['dateLabel'];\nexport const DATE_DISALLOW_PAST_PATH = ['disallowPassedDates'];\nexport const TIME_LABEL_PATH = ['timeLabel'];\nexport const TIME_USE24H_PATH = ['use24h'];\nexport const TIME_INTERVAL_PATH = ['timeInterval'];\nexport const TIME_SERIALISING_FORMAT_PATH = ['timeSerializingFormat'];\n","import { get } from 'min-dash';\n\n// config  ///////////////////\n\nexport const OPTIONS_SOURCES = {\n  STATIC: 'static',\n  INPUT: 'input',\n  EXPRESSION: 'expression',\n};\n\nexport const OPTIONS_SOURCE_DEFAULT = OPTIONS_SOURCES.STATIC;\n\nexport const OPTIONS_SOURCES_LABELS = {\n  [OPTIONS_SOURCES.STATIC]: 'Static',\n  [OPTIONS_SOURCES.INPUT]: 'Input data',\n  [OPTIONS_SOURCES.EXPRESSION]: 'Expression',\n};\n\nexport const OPTIONS_SOURCES_PATHS = {\n  [OPTIONS_SOURCES.STATIC]: ['values'],\n  [OPTIONS_SOURCES.INPUT]: ['valuesKey'],\n  [OPTIONS_SOURCES.EXPRESSION]: ['valuesExpression'],\n};\n\nexport const OPTIONS_SOURCES_DEFAULTS = {\n  [OPTIONS_SOURCES.STATIC]: [\n    {\n      label: 'Value',\n      value: 'value',\n    },\n  ],\n  [OPTIONS_SOURCES.INPUT]: '',\n  [OPTIONS_SOURCES.EXPRESSION]: '=',\n};\n\n// helpers ///////////////////\n\nexport function getOptionsSource(field) {\n  for (const source of Object.values(OPTIONS_SOURCES)) {\n    if (get(field, OPTIONS_SOURCES_PATHS[source]) !== undefined) {\n      return source;\n    }\n  }\n\n  return OPTIONS_SOURCE_DEFAULT;\n}\n","export const SANDBOX_ATTRIBUTE = 'sandbox';\nexport const ALLOW_ATTRIBUTE = 'allow';\n\n// Cf. https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy#iframe_syntax\nexport const SECURITY_ATTRIBUTES_DEFINITIONS = [\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-scripts',\n    property: 'allowScripts',\n    label: 'Script execution',\n  },\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-same-origin',\n    property: 'allowSameOrigin',\n    label: 'Allow same origin',\n  },\n  {\n    attribute: ALLOW_ATTRIBUTE,\n    directive: 'fullscreen',\n    property: 'fullscreen',\n    label: 'Open in fullscreen',\n  },\n  {\n    attribute: ALLOW_ATTRIBUTE,\n    directive: 'geolocation',\n    property: 'geolocation',\n    label: 'Geolocation',\n  },\n  {\n    attribute: ALLOW_ATTRIBUTE,\n    directive: 'camera',\n    property: 'camera',\n    label: 'Camera access',\n  },\n  {\n    attribute: ALLOW_ATTRIBUTE,\n    directive: 'microphone',\n    property: 'microphone',\n    label: 'Microphone access',\n  },\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-forms',\n    property: 'allowForms',\n    label: 'Forms submission',\n  },\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-modals',\n    property: 'allowModals',\n    label: 'Open modal windows',\n  },\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-popups',\n    property: 'allowPopups',\n    label: 'Open popups',\n  },\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-top-navigation',\n    property: 'allowTopNavigation',\n    label: 'Top level navigation',\n  },\n  {\n    attribute: SANDBOX_ATTRIBUTE,\n    directive: 'allow-storage-access-by-user-activation',\n    property: 'allowStorageAccessByUserActivation',\n    label: 'Storage access by user',\n  },\n];\n","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`);\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\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      {evaluatedLabel}\n      {required && (\n        <span class=\"fjs-asterix\" aria-hidden>\n          *\n        </span>\n      )}\n    </label>\n  );\n}\n","import { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { formFieldClasses } from '../Util';\n\nimport classNames from 'classnames';\n\nconst type = 'checkbox';\n\nexport function Checkbox(props) {\n  const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value = false } = props;\n\n  const { description, label, validate = {} } = field;\n\n  const { required } = validate;\n\n  const onChange = ({ target }) => {\n    props.onChange({\n      value: target.checked,\n    });\n  };\n\n  const descriptionId = `${domId}-description`;\n  const errorMessageId = `${domId}-error-message`;\n\n  return (\n    <div class={classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value })}>\n      <div class=\"fjs-inline-label\">\n        <input\n          checked={value}\n          class=\"fjs-input\"\n          disabled={disabled}\n          readOnly={readonly}\n          id={domId}\n          type=\"checkbox\"\n          onChange={onChange}\n          onBlur={() => onBlur && onBlur()}\n          onFocus={() => onFocus && onFocus()}\n          required={required}\n          aria-invalid={errors.length > 0}\n          aria-describedby={[descriptionId, errorMessageId].join(' ')}\n        />\n        <Label htmlFor={domId} label={label} required={required} />\n      </div>\n      <Description id={descriptionId} description={description} />\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nCheckbox.config = {\n  type,\n  keyed: true,\n  name: 'Checkbox',\n  group: 'selection',\n  emptyValue: false,\n  sanitizeValue: ({ value }) => value === true,\n  create: (options = {}) => ({\n    label: 'Checkbox',\n    ...options,\n  }),\n};\n","import { useRef } from 'preact/hooks';\nimport { useOptionsAsync, LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport { useCleanupMultiSelectValue } from '../../hooks/useCleanupMultiSelectValue';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'checklist';\n\nexport function Checklist(props) {\n  const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value: values = [] } = props;\n\n  const { description, label, validate = {} } = field;\n\n  /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n  const outerDivRef = useRef();\n\n  const { required } = validate;\n\n  const toggleCheckbox = (toggledValue) => {\n    const newValues = hasEqualValue(toggledValue, values)\n      ? values.filter((value) => !isEqual(value, toggledValue))\n      : [...values, toggledValue];\n\n    props.onChange({\n      value: newValues,\n    });\n  };\n\n  const onCheckboxBlur = (e) => {\n    if (outerDivRef.current.contains(e.relatedTarget)) {\n      return;\n    }\n\n    onBlur && onBlur();\n  };\n\n  const onCheckboxFocus = (e) => {\n    if (outerDivRef.current.contains(e.relatedTarget)) {\n      return;\n    }\n\n    onFocus && onFocus();\n  };\n\n  const { loadState, options } = useOptionsAsync(field);\n\n  useCleanupMultiSelectValue({\n    field,\n    loadState,\n    options,\n    values,\n    onChange: props.onChange,\n  });\n\n  const descriptionId = `${domId}-description`;\n  const errorMessageId = `${domId}-error-message`;\n\n  return (\n    <div class={classNames(formFieldClasses(type, { errors, disabled, readonly }))} ref={outerDivRef}>\n      <Label label={label} required={required} />\n      {loadState == LOAD_STATES.LOADED &&\n        options.map((option, index) => {\n          const itemDomId = `${domId}-${index}`;\n          const isChecked = hasEqualValue(option.value, values);\n\n          return (\n            <div\n              className={classNames('fjs-inline-label', {\n                'fjs-checked': isChecked,\n              })}\n              key={option.value}>\n              <input\n                checked={isChecked}\n                class=\"fjs-input\"\n                disabled={disabled}\n                readOnly={readonly}\n                id={itemDomId}\n                type=\"checkbox\"\n                onClick={() => toggleCheckbox(option.value)}\n                onBlur={onCheckboxBlur}\n                onFocus={onCheckboxFocus}\n                required={required}\n                aria-invalid={errors.length > 0}\n                aria-describedby={[descriptionId, errorMessageId].join(' ')}\n              />\n              <Label htmlFor={itemDomId} label={option.label} required={false} />\n            </div>\n          );\n        })}\n      <Description id={descriptionId} description={description} />\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nChecklist.config = {\n  type,\n  keyed: true,\n  name: 'Checkbox group',\n  group: 'selection',\n  emptyValue: [],\n  sanitizeValue: sanitizeMultiSelectValue,\n  create: (options = {}) => ({\n    label: 'Checkbox group',\n    ...createEmptyOptions(options),\n  }),\n};\n","import { 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 { DateTime as LuxonDateTime } from 'luxon';\n\nimport classNames from 'classnames';\n\nimport { set } from 'min-dash';\n\nimport { FormContext } from '../../context';\n\nimport { DATETIME_SUBTYPES, DATETIME_SUBTYPE_PATH, DATE_LABEL_PATH } from '../../../util/constants/DatetimeConstants';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Datepicker } from './parts/Datepicker';\nimport { Timepicker } from './parts/Timepicker';\n\nimport { formFieldClasses, prefixId } from '../Util';\nimport { sanitizeDateTimePickerValue } from '../util/sanitizerUtil';\nimport {\n  parseIsoTime,\n  serializeDate,\n  serializeDateTime,\n  serializeTime,\n  getNullDateTime,\n  isValidDate,\n  isValidTime,\n} from '../util/dateTimeUtil';\n\nconst type = 'datetime';\n\nexport function Datetime(props) {\n  const { disabled, errors = [], domId, onBlur, onFocus, field, onChange, readonly, value = '' } = props;\n\n  const {\n    description,\n    id,\n    dateLabel,\n    timeLabel,\n    validate = {},\n    subtype,\n    use24h,\n    disallowPassedDates,\n    timeInterval,\n    timeSerializingFormat,\n  } = field;\n\n  const { required } = validate;\n  const { formId } = useContext(FormContext);\n\n  /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n  const dateTimeGroupRef = useRef();\n\n  const [dateTime, setDateTime] = useState(getNullDateTime());\n  const [dateTimeUpdateRequest, setDateTimeUpdateRequest] = useState(null);\n\n  const useDatePicker = useMemo(\n    () => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME,\n    [subtype],\n  );\n  const useTimePicker = useMemo(\n    () => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME,\n    [subtype],\n  );\n\n  const onDateTimeBlur = useCallback(\n    (e) => {\n      if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n        return;\n      }\n\n      onBlur && onBlur();\n    },\n    [onBlur],\n  );\n\n  const onDateTimeFocus = useCallback(\n    (e) => {\n      if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n        return;\n      }\n\n      onFocus && onFocus();\n    },\n    [onFocus],\n  );\n\n  useEffect(() => {\n    let { date, time } = getNullDateTime();\n\n    switch (subtype) {\n      case DATETIME_SUBTYPES.DATE: {\n        date = typeof value === 'string' ? LuxonDateTime.fromISO(value).toJSDate() : new Date(NaN);\n        break;\n      }\n      case DATETIME_SUBTYPES.TIME: {\n        time = parseIsoTime(value);\n        break;\n      }\n      case DATETIME_SUBTYPES.DATETIME: {\n        date = new Date(Date.parse(value));\n        time = isValidDate(date) ? 60 * date.getHours() + date.getMinutes() : null;\n        break;\n      }\n    }\n\n    setDateTime({ date, time });\n  }, [subtype, value]);\n\n  const computeAndSetState = useCallback(\n    ({ date, time }) => {\n      let newDateTimeValue = null;\n\n      if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\n        newDateTimeValue = serializeDate(date);\n      } else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\n        newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\n      } else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\n        newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\n      }\n\n      if (value === newDateTimeValue) {\n        return;\n      }\n\n      onChange({ value: newDateTimeValue, field });\n    },\n    [value, field, onChange, subtype, timeSerializingFormat],\n  );\n\n  useEffect(() => {\n    if (dateTimeUpdateRequest) {\n      if (dateTimeUpdateRequest.refreshOnly) {\n        computeAndSetState(dateTime);\n      } else {\n        const newDateTime = { ...dateTime, ...dateTimeUpdateRequest };\n        setDateTime(newDateTime);\n        computeAndSetState(newDateTime);\n      }\n      setDateTimeUpdateRequest(null);\n    }\n  }, [computeAndSetState, dateTime, dateTimeUpdateRequest]);\n\n  useEffect(() => {\n    setDateTimeUpdateRequest({ refreshOnly: true });\n  }, [timeSerializingFormat]);\n\n  const allErrors = useMemo(() => {\n    if (required || subtype !== DATETIME_SUBTYPES.DATETIME) return errors;\n    const isOnlyOneFieldSet =\n      (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) ||\n      (!isValidDate(dateTime.date) && isValidTime(dateTime.time));\n    return isOnlyOneFieldSet ? ['Date and time must both be entered.', ...errors] : errors;\n  }, [required, subtype, dateTime, errors]);\n\n  const setDate = useCallback((date) => {\n    setDateTimeUpdateRequest((prev) => (prev ? { ...prev, date } : { date }));\n  }, []);\n\n  const setTime = useCallback((time) => {\n    setDateTimeUpdateRequest((prev) => (prev ? { ...prev, time } : { time }));\n  }, []);\n\n  const errorMessageId = allErrors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n  const descriptionId = `${prefixId(id, formId)}-description`;\n\n  const datePickerProps = {\n    label: dateLabel,\n    collapseLabelOnEmpty: !timeLabel,\n    onDateTimeBlur,\n    onDateTimeFocus,\n    domId: `${domId}-date`,\n    required,\n    disabled,\n    disallowPassedDates,\n    date: dateTime.date,\n    readonly,\n    setDate,\n    'aria-describedby': [descriptionId, errorMessageId].join(' '),\n  };\n\n  const timePickerProps = {\n    label: timeLabel,\n    collapseLabelOnEmpty: !dateLabel,\n    onDateTimeBlur,\n    onDateTimeFocus,\n    domId: `${domId}-time`,\n    required,\n    disabled,\n    readonly,\n    use24h,\n    timeInterval,\n    time: dateTime.time,\n    setTime,\n    'aria-describedby': [descriptionId, errorMessageId].join(' '),\n  };\n\n  return (\n    <div class={formFieldClasses(type, { errors: allErrors, disabled, readonly })}>\n      <div class={classNames('fjs-vertical-group')} ref={dateTimeGroupRef}>\n        {useDatePicker && <Datepicker {...datePickerProps} />}\n        {useTimePicker && useDatePicker && <div class=\"fjs-datetime-separator\" />}\n        {useTimePicker && <Timepicker {...timePickerProps} />}\n      </div>\n      <Description id={descriptionId} description={description} />\n      <Errors errors={allErrors} id={errorMessageId} />\n    </div>\n  );\n}\n\nDatetime.config = {\n  type,\n  keyed: true,\n  name: 'Date time',\n  group: 'basic-input',\n  emptyValue: null,\n  sanitizeValue: sanitizeDateTimePickerValue,\n  create: (options = {}, isNewField) => {\n    const defaults = {};\n    set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\n\n    if (isNewField) {\n      set(defaults, DATE_LABEL_PATH, 'Date');\n    }\n\n    return { ...defaults, ...options };\n  },\n  getSubheading: (field) => {\n    return field.dateLabel || field.timeLabel;\n  },\n};\n","import classNames from 'classnames';\nimport { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport { Label } from '../Label';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function Group(props) {\n  const { field, domId } = props;\n  const { label, type, showOutline } = field;\n  const { Empty } = useContext(FormRenderContext);\n\n  const fullProps = { ...props, Empty };\n\n  return (\n    <div\n      className={classNames(formFieldClasses(type), 'fjs-form-field-grouplike', { 'fjs-outlined': showOutline })}\n      role=\"group\"\n      aria-labelledby={domId}>\n      <Label id={domId} label={label} />\n      <ChildrenRenderer {...fullProps} />\n    </div>\n  );\n}\n\nGroup.config = {\n  type: 'group',\n  pathed: true,\n  name: 'Group',\n  group: 'container',\n  create: (options = {}) => ({\n    label: 'Group',\n    components: [],\n    showOutline: true,\n    ...options,\n  }),\n};\n","import { useEffect, useMemo, useState } from 'preact/hooks';\n\nimport { useSingleLineTemplateEvaluation, useSecurityAttributesMap } from '../../hooks';\nimport { sanitizeIFrameSource } from '../util/sanitizerUtil';\n\nimport { Label } from '../Label';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'iframe';\n\nconst DEFAULT_HEIGHT = 300;\n\nexport function IFrame(props) {\n  const { field, disabled, readonly, domId } = props;\n\n  const { height = DEFAULT_HEIGHT, label, url, security = {} } = field;\n\n  const evaluatedUrl = useSingleLineTemplateEvaluation(url, { debug: true });\n\n  const safeUrl = useMemo(() => sanitizeIFrameSource(evaluatedUrl), [evaluatedUrl]);\n\n  const evaluatedLabel = useSingleLineTemplateEvaluation(label, { debug: true });\n\n  const [sandbox, allow] = useSecurityAttributesMap(security);\n  const [iframeRefresh, setIframeRefresh] = useState(0);\n\n  // forces re-render of iframe when sandbox or allow attributes change, as browsers do not do it automatically\n  useEffect(() => {\n    setIframeRefresh((count) => count + 1);\n  }, [sandbox, allow]);\n\n  return (\n    <div class={formFieldClasses(type, { disabled, readonly })}>\n      <Label htmlFor={domId} label={evaluatedLabel} />\n      {!evaluatedUrl && <IFramePlaceholder text=\"No content to show.\" />}\n      {evaluatedUrl && safeUrl && (\n        <iframe\n          src={safeUrl}\n          title={evaluatedLabel}\n          height={height}\n          class=\"fjs-iframe\"\n          id={domId}\n          sandbox={sandbox}\n          key={'iframe-' + iframeRefresh}\n          /* @Note: JSX HTML attributes do not include <allow> */\n          {...{ allow }}\n        />\n      )}\n      {evaluatedUrl && !safeUrl && <IFramePlaceholder text=\"External content couldn't be loaded.\" />}\n    </div>\n  );\n}\n\nfunction IFramePlaceholder(props) {\n  const { text = 'iFrame' } = props;\n\n  return (\n    <div class=\"fjs-iframe-placeholder\">\n      <p class=\"fjs-iframe-placeholder-text\">{text}</p>\n    </div>\n  );\n}\n\nIFrame.config = {\n  type,\n  keyed: false,\n  name: 'iFrame',\n  group: 'container',\n  create: (options = {}) => ({\n    label: 'iFrame',\n    security: {\n      allowScripts: true,\n    },\n    ...options,\n  }),\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 17a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h36zm-9 8.889H18v2.222h18v-2.222z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M34 18H20a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V20a2 2 0 0 0-2-2zm-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23l-9 9z\"/></svg>","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.35 24.75H19V29.4H14.35V24.75ZM12.9358 23.3358C13.3109 22.9607 13.8196 22.75 14.35 22.75H19C19.5304 22.75 20.0391 22.9607 20.4142 23.3358C20.7893 23.7109 21 24.2196 21 24.75V29.4C21 29.9304 20.7893 30.4391 20.4142 30.8142C20.0391 31.1893 19.5304 31.4 19 31.4H14.35C13.8196 31.4 13.3109 31.1893 12.9358 30.8142C12.5607 30.4391 12.35 29.9304 12.35 29.4V24.75C12.35 24.2196 12.5607 23.7109 12.9358 23.3358ZM14.35 37.05H19V41.7H14.35V37.05ZM12.9358 35.6358C13.3109 35.2607 13.8196 35.05 14.35 35.05H19C19.5304 35.05 20.0391 35.2607 20.4142 35.6358C20.7893 36.0109 21 36.5196 21 37.05V41.7C21 42.2304 20.7893 42.7391 20.4142 43.1142C20.0391 43.4893 19.5304 43.7 19 43.7H14.35C13.8196 43.7 13.3109 43.4893 12.9358 43.1142C12.5607 42.7391 12.35 42.2304 12.35 41.7V37.05C12.35 36.5196 12.5607 36.0109 12.9358 35.6358ZM14.35 12.45H19V17.1H14.35V12.45ZM12.9358 11.0358C13.3109 10.6607 13.8196 10.45 14.35 10.45H19C19.5304 10.45 20.0391 10.6607 20.4142 11.0358C20.7893 11.4109 21 11.9196 21 12.45V17.1C21 17.6304 20.7893 18.1391 20.4142 18.5142C20.0391 18.8893 19.5304 19.1 19 19.1H14.35C13.8196 19.1 13.3109 18.8893 12.9358 18.5142C12.5607 18.1391 12.35 17.6304 12.35 17.1V12.45C12.35 11.9196 12.5607 11.4109 12.9358 11.0358ZM24.9429 26.0128C24.7554 26.2004 24.65 26.4547 24.65 26.7199V27.3699C24.65 27.6352 24.7554 27.8895 24.9429 28.077C25.1304 28.2646 25.3848 28.3699 25.65 28.3699H40.65C40.9152 28.3699 41.1696 28.2646 41.3571 28.077C41.5446 27.8895 41.65 27.6352 41.65 27.3699V26.7199C41.65 26.4547 41.5446 26.2004 41.3571 26.0128C41.1696 25.8253 40.9152 25.7199 40.65 25.7199H25.65C25.3848 25.7199 25.1304 25.8253 24.9429 26.0128ZM24.9429 38.3128C24.7554 38.5004 24.65 38.7547 24.65 39.0199V39.6699C24.65 39.9352 24.7554 40.1895 24.9429 40.377C25.1304 40.5646 25.3848 40.6699 25.65 40.6699H40.65C40.9152 40.6699 41.1696 40.5646 41.3571 40.377C41.5446 40.1895 41.65 39.9352 41.65 39.6699V39.0199C41.65 38.7547 41.5446 38.5004 41.3571 38.3128C41.1696 38.1253 40.9152 38.0199 40.65 38.0199H25.65C25.3848 38.0199 25.1304 38.1253 24.9429 38.3128ZM24.9429 13.7128C24.7554 13.9004 24.65 14.1547 24.65 14.4199V15.0699C24.65 15.3352 24.7554 15.5895 24.9429 15.777C25.1304 15.9646 25.3848 16.0699 25.65 16.0699H40.65C40.9152 16.0699 41.1696 15.9646 41.3571 15.777C41.5446 15.5895 41.65 15.3352 41.65 15.0699V14.4199C41.65 14.1547 41.5446 13.9004 41.3571 13.7128C41.1696 13.5253 40.9152 13.4199 40.65 13.4199H25.65C25.3848 13.4199 25.1304 13.5253 24.9429 13.7128Z\" fill=\"currentColor\"/>\n</svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 0 0-2.06 2.06v23.549a2.07 2.07 0 0 0 2.06 2.06h6.77v-1.766h-6.358a.707.707 0 0 1-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 0 1 .707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z\"/><path d=\"m35.13 37.603 1.237-1.237-3.468-3.475v-5.926h-1.754v6.654l3.984 3.984Z\"/><path fill-rule=\"evenodd\" d=\"M23.08 36.962a9.678 9.678 0 1 0 17.883-7.408 9.678 9.678 0 0 0-17.882 7.408Zm4.54-10.292a7.924 7.924 0 1 1 8.805 13.177A7.924 7.924 0 0 1 27.62 26.67Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36Zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1Z\"/><path d=\"M11 22a1 1 0 0 1 1-1h19a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H12a1 1 0 0 1-1-1V22Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\"><rect width=\"24\" height=\"4\" x=\"15\" y=\"17\" rx=\"1\"/><rect width=\"24\" height=\"4\" x=\"15\" y=\"25\" rx=\"1\"/><rect width=\"13\" height=\"4\" x=\"15\" y=\"33\" rx=\"1\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M4.05 42.132v1.164c0 .693.604 1.254 1.35 1.254h1.35v-2.507h-2.7v.09Zm0-2.328h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7V32.82h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656h2.7v-2.328h-2.7v2.328Zm0-4.656v.09h2.7V9.45H5.4c-.746 0-1.35.561-1.35 1.254v1.164Zm5.4-2.418v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V9.45h-2.7Zm5.4 0v2.507h2.7V10.704c0-.693-.604-1.254-1.35-1.254h-1.35Zm2.7 4.746h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656h-2.7v2.328h2.7V32.82Zm0 4.656h-2.7v2.328h2.7v-2.328Zm0 4.656v-.09h-2.7v2.508h1.35c.746 0 1.35-.561 1.35-1.254v-1.164Zm-5.4 2.418v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Zm-5.4 0v-2.507h-2.7v2.507h2.7Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-12 7h9l-4.5 6-4.5-6z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" d=\"M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM9 26h36v2H9v-2ZM22.293 33.707l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" d=\"M9 15v2h36v-2H9ZM9 37v2h36v-2H9ZM26.293 19.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM22.293 30.707l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795c.049.14.075.29.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096H2.7Zm2.7-2.507v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014V13.21H2.7v2.507h2.7Zm-2.7-5.014h1.852a1.346 1.346 0 0 1-.502.096h1.275v-.096H5.4V9.45c0 .156-.026.306-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45v1.254Zm5.175.096h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1-2.7v1.795a1.348 1.348 0 0 1-.075-.445v1.254h.075v.096h1.275c-.177 0-.347-.034-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35h-1.275Zm-.075 5.11v2.508h2.7V13.21h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7V23.24h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm2.7 5.014h-1.852c.155-.062.325-.096.502-.096h-1.275v.096H48.6v1.254c0-.156.026-.305.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35v-1.254Zm-5.175-.096h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7ZM16.2 17.55a4.05 4.05 0 0 1 4.05 4.05v1.35A4.05 4.05 0 0 1 16.2 27h-1.35a4.05 4.05 0 0 1-4.05-4.05V21.6a4.05 4.05 0 0 1 4.05-4.05h1.35Zm0 2.7h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35c0 .746.604 1.35 1.35 1.35h1.35a1.35 1.35 0 0 0 1.35-1.35V21.6a1.35 1.35 0 0 0-1.35-1.35Zm27 1.35a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35A4.05 4.05 0 0 0 29.7 27h9.45a4.05 4.05 0 0 0 4.05-4.05V21.6Zm-13.5-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35a1.35 1.35 0 0 1-1.35 1.35H29.7a1.35 1.35 0 0 1-1.35-1.35V21.6c0-.746.604-1.35 1.35-1.35ZM43.2 37.8a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35h2.7V37.8c0-.746.604-1.35 1.35-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35h2.7V37.8Zm-27-4.05a4.05 4.05 0 0 1 4.05 4.05v1.35h-2.7V37.8a1.35 1.35 0 0 0-1.35-1.35h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35h-2.7V37.8a4.05 4.05 0 0 1 4.05-4.05h1.35Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 0 1 2.4.14 3.42 3.42 0 0 1 1.41.55 3.47 3.47 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.63 3.63 0 0 1-1.09 1.4 3.89 3.89 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 0 0 1.1-.49 1.41 1.41 0 0 0 .41-1 1.49 1.49 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.69 1.69 0 0 0-.86-.62 9.28 9.28 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.09 7.09 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.31 5.31 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21z\"/></svg>","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M47.0082 12.15C48.6329 12.15 49.95 13.5106 49.95 15.189V38.811C49.95 40.4894 48.6329 41.85 47.0082 41.85H6.99194C5.36718 41.85 4.05005 40.4894 4.05005 38.811V15.189C4.05005 13.5106 5.36718 12.15 6.99194 12.15H47.0082ZM47.0082 14.176H6.99194C6.45035 14.176 6.01131 14.6295 6.01131 15.189V16.2H6.00755V18.9H6.01131V38.811C6.01131 39.3705 6.45035 39.824 6.99194 39.824H47.0082C47.5498 39.824 47.9888 39.3705 47.9888 38.811V18.9H47.9925V16.2H47.9888V15.189C47.9888 14.6295 47.5498 14.176 47.0082 14.176ZM14.9344 26.055V22.275H17.1282V31.725H14.9344V27.945H11.6438V31.725H9.45005V22.275H11.6438V26.055H14.9344ZM19.3219 24.165H21.5157V31.725H23.7094V24.165H25.9032V22.275H19.3219V24.165ZM33.5813 22.275H35.775V31.725H33.5813V25.11L31.936 28.89L30.2907 25.11V31.725H28.0969V22.275H30.2907L31.936 26.055L33.5813 22.275ZM37.9688 22.275H40.1625V29.835H44.55V31.725H37.9688V22.275Z\" fill=\"currentColor\"/>\n</svg>\n","<svg width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.78 16.2V22.95C12.78 24.5689 12.1447 26.0086 11.1621 27C12.1447 27.9914 12.78 29.4311 12.78 31.05V37.8H16.29V40.5H12.78C11.4912 40.5 10.44 39.2871 10.44 37.8V31.05C10.44 29.5629 9.38883 28.35 8.10001 28.35V25.65C9.38883 25.65 10.44 24.4371 10.44 22.95V16.2C10.44 14.7129 11.4912 13.5 12.78 13.5H16.29V16.2H12.78ZM43.56 16.2V22.95C43.56 24.4371 44.6112 25.65 45.9 25.65V28.35C44.6112 28.35 43.56 29.5629 43.56 31.05V37.8C43.56 39.2871 42.5088 40.5 41.22 40.5H37.71V37.8H41.22V31.05C41.22 29.4311 41.8553 27.9914 42.8379 27C41.8553 26.0086 41.22 24.5689 41.22 22.95V16.2H37.71V13.5H41.22C42.5088 13.5 43.56 14.7129 43.56 16.2ZM21.8005 34.5313C22.2674 34.1521 22.5869 33.5662 22.7589 32.7734L24.5467 24.4321H26.1317L26.5187 22.6053H24.9337L25.3392 20.7268H26.9242L27.3113 18.9H25.6894C24.8416 18.9 24.1842 19.0896 23.7173 19.4687C23.2627 19.8479 22.9494 20.4338 22.7774 21.2266L22.4825 22.6053H21.3398L20.9527 24.4321H22.0954L20.1971 33.2732H18.612L18.225 35.1H19.8469C20.6947 35.1 21.3459 34.9104 21.8005 34.5313ZM29.0479 26.8449L25.2512 31.6532H27.8499L29.9694 28.6372H30.1906L31.0752 31.6532H33.6739L31.9967 27.293L35.775 22.6053H33.1763L31.0568 25.5523H30.8356L29.951 22.6053H27.3523L29.0479 26.8449Z\" fill=\"currentcolor\"/>\r\n</svg>\r\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-32 4v10h-2V22h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1zm-1.136 15.5.849.849-6.364 6.364-.849-.849 6.364-6.364zm.264 3.5.849.849-2.828 2.828-.849-.849L44.128 34zM13 19v10h-2V19h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039h37.316Zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.768 8.768 0 0 1 39.825 27a8.768 8.768 0 0 1 8.775 8.775 8.768 8.768 0 0 1-8.775 8.775 8.768 8.768 0 0 1-8.775-8.775Zm12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161h-2.994Zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678h3.097Zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0c-.103 1.755-.413 3.303-.929 4.645 1.858-.826 3.304-2.58 3.923-4.645h-2.994Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z\" clip-rule=\"evenodd\"/><path fill-rule=\"evenodd\" d=\"M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2H15Zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73V15ZM15 39v-8.754c.06-.038.116-.083.168-.135l5.893-5.893 6.684 6.685a1.911 1.911 0 0 0 2.41.238l2.657-1.77 6.02 6.02c.052.051.108.097.168.135V39H15Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 54 54\"><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M42.545479 12.272741C43.901087 12.272741 45 13.371687 45 14.727295v24.545443c0 1.355609-1.098913 2.454521-2.454521 2.454521H11.454554C10.098946 41.727259 9 40.628347 9 39.272738V14.727295c0-1.355608 1.098946-2.454554 2.454554-2.454554zM27.818242 40.090875h14.727237c.451869 0 .818137-.366267.818137-.818137v-4.909042H27.818242Zm-1.636385-5.727179v5.727179H11.454554c-.451869 0-.818192-.366267-.818192-.818137v-4.909042zm1.636385-1.636385h15.545374v-5.727289H27.818242Zm-1.636385-5.727289v5.727289H10.636362v-5.727289zm1.636385-1.636384h15.545374v-5.72729H27.818242Zm-1.636385-5.72729v5.72729H10.636362v-5.72729z\" clip-rule=\"evenodd\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"none\"><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M17.55 41.175H27v2.362h-9.45a2.37 2.37 0 0 1-2.363-2.362v-28.35a2.37 2.37 0 0 1 2.363-2.363h11.813a1.074 1.074 0 0 1 .826.355l8.27 8.269a1.074 1.074 0 0 1 .353.826v5.907H36.45v-3.544h-7.088A2.37 2.37 0 0 1 27 19.912v-7.087h-9.45v28.35Zm18.427-21.263-6.614-6.615v6.615h6.614Zm4.253 18.664 3.308 3.308-1.654 1.653-3.308-3.307a6.35 6.35 0 0 1-3.307.945c-3.308 0-5.906-2.599-5.906-5.906 0-3.308 2.598-5.907 5.906-5.907 3.307 0 5.906 2.6 5.906 5.907a6.35 6.35 0 0 1-.945 3.307Zm-4.961-6.851c-2.008 0-3.544 1.536-3.544 3.544s1.536 3.543 3.544 3.543 3.544-1.535 3.544-3.543-1.536-3.544-3.544-3.544Z\" clip-rule=\"evenodd\"/></svg>","<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","import Big from 'big.js';\nimport classNames from 'classnames';\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport { useFlushDebounce, usePrevious } from '../../hooks';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { TemplatedInputAdorner } from './parts/TemplatedInputAdorner';\n\nimport AngelDownIcon from './icons/AngelDown.svg';\nimport AngelUpIcon from './icons/AngelUp.svg';\n\nimport { formFieldClasses } from '../Util';\n\nimport { isNullEquivalentValue, isValidNumber, willKeyProduceValidNumber } from '../util/numberFieldUtil';\n\nconst type = 'number';\n\nexport function Numberfield(props) {\n  const { disabled, errors = [], domId, onBlur, onFocus, field, value, readonly } = props;\n\n  const { description, label, appearance = {}, validate = {}, decimalDigits, increment: incrementValue } = field;\n\n  const { prefixAdorner, suffixAdorner } = appearance;\n\n  const { required } = validate;\n\n  /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n  const inputRef = useRef();\n\n  const [cachedValue, setCachedValue] = useState(value);\n  const [displayValue, setDisplayValue] = useState(value);\n\n  const sanitize = useCallback((value) => Numberfield.config.sanitizeValue({ value, formField: field }), [field]);\n\n  const [debouncedOnChange, flushOnChange] = useFlushDebounce(props.onChange);\n\n  const previousCachedValue = usePrevious(value);\n\n  if (previousCachedValue !== cachedValue) {\n    debouncedOnChange({ field, value: cachedValue });\n  }\n\n  const onInputBlur = () => {\n    flushOnChange && flushOnChange();\n    onBlur && onBlur();\n  };\n\n  const onInputFocus = () => {\n    onFocus && onFocus();\n  };\n\n  // all value changes must go through this function\n  const setValue = useCallback(\n    (stringValue) => {\n      if (isNullEquivalentValue(stringValue)) {\n        setDisplayValue('');\n        setCachedValue(null);\n        return;\n      }\n\n      // converts automatically for countries where the comma is used as a decimal separator\n      stringValue = stringValue.replaceAll(',', '.');\n\n      if (stringValue === '-') {\n        setDisplayValue('-');\n        return;\n      }\n\n      // provides feedback for invalid numbers entered via pasting as opposed to just ignoring the paste\n      if (isNaN(Number(stringValue))) {\n        setDisplayValue('NaN');\n        setCachedValue(null);\n        return;\n      }\n\n      setDisplayValue(stringValue);\n      setCachedValue(sanitize(stringValue));\n    },\n    [sanitize],\n  );\n\n  // when external changes occur independently of the input, we update the display and cache values of the component\n  const previousValue = usePrevious(value);\n  const outerValueChanged = previousValue != value;\n  const outerValueEqualsCache = sanitize(value) === sanitize(cachedValue);\n\n  if (outerValueChanged && !outerValueEqualsCache) {\n    setValue((value && value.toString()) || '');\n  }\n\n  // caches the value an increment/decrement operation will be based on\n  const incrementAmount = useMemo(() => {\n    if (incrementValue) return Big(incrementValue);\n    if (decimalDigits) return Big(`1e-${decimalDigits}`);\n    return Big('1');\n  }, [decimalDigits, incrementValue]);\n\n  const increment = () => {\n    if (readonly) {\n      return;\n    }\n\n    const base = isValidNumber(cachedValue) ? Big(cachedValue) : Big(0);\n    const stepFlooredValue = base.minus(base.mod(incrementAmount));\n\n    // note: toFixed() behaves differently in big.js\n    setValue(stepFlooredValue.plus(incrementAmount).toFixed());\n  };\n\n  const decrement = () => {\n    if (readonly) {\n      return;\n    }\n\n    const base = isValidNumber(cachedValue) ? Big(cachedValue) : Big(0);\n    const offset = base.mod(incrementAmount);\n\n    if (offset.cmp(0) === 0) {\n      // if we're already on a valid step, decrement\n      setValue(base.minus(incrementAmount).toFixed());\n    } else {\n      // otherwise floor to the step\n      const stepFlooredValue = base.minus(base.mod(incrementAmount));\n      setValue(stepFlooredValue.toFixed());\n    }\n  };\n\n  const onKeyDown = (e) => {\n    // delete the NaN state all at once on backspace or delete\n    if (displayValue === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\n      setValue('');\n      e.preventDefault();\n      return;\n    }\n\n    if (e.code === 'ArrowUp') {\n      increment();\n      e.preventDefault();\n      return;\n    }\n\n    if (e.code === 'ArrowDown') {\n      decrement();\n      e.preventDefault();\n      return;\n    }\n\n    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=\"Increment\"\n              onClick={() => increment()}\n              tabIndex={-1}>\n              <AngelUpIcon />\n            </button>\n            <div class=\"fjs-number-arrow-separator\" />\n            <button\n              type=\"button\"\n              class=\"fjs-number-arrow-down\"\n              aria-label=\"Decrement\"\n              onClick={() => decrement()}\n              tabIndex={-1}>\n              <AngelDownIcon />\n            </button>\n          </div>\n        </div>\n      </TemplatedInputAdorner>\n      <Description id={descriptionId} description={description} />\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nNumberfield.config = {\n  type,\n  keyed: true,\n  name: 'Number',\n  group: 'basic-input',\n  emptyValue: null,\n  sanitizeValue: ({ value, formField }) => {\n    // invalid value types are sanitized to null\n    if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;\n\n    // otherwise, we return a string or a number depending on the form field configuration\n    return formField.serializeToString ? value.toString() : Number(value);\n  },\n  create: (options = {}) => ({\n    label: 'Number',\n    ...options,\n  }),\n};\n","import { useRef } from 'preact/hooks';\nimport isEqual from 'lodash/isEqual';\nimport { useOptionsAsync, LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport { useCleanupSingleSelectValue } from '../../hooks/useCleanupSingleSelectValue';\nimport classNames from 'classnames';\n\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport { formFieldClasses } from '../Util';\n\nconst type = 'radio';\n\nexport function Radio(props) {\n  const { disabled, errors = [], domId, onBlur, onFocus, field, readonly, value } = props;\n\n  const { description, label, validate = {} } = field;\n\n  /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n  const outerDivRef = useRef();\n\n  const { required } = validate;\n\n  const onChange = (v) => {\n    props.onChange({\n      value: v,\n    });\n  };\n\n  const onRadioBlur = (e) => {\n    if (outerDivRef.current.contains(e.relatedTarget)) {\n      return;\n    }\n\n    onBlur && onBlur();\n  };\n\n  const onRadioFocus = (e) => {\n    if (outerDivRef.current.contains(e.relatedTarget)) {\n      return;\n    }\n\n    onFocus && onFocus();\n  };\n\n  const { loadState, options } = useOptionsAsync(field);\n\n  useCleanupSingleSelectValue({\n    field,\n    loadState,\n    options,\n    value,\n    onChange: props.onChange,\n  });\n\n  const descriptionId = `${domId}-description`;\n  const errorMessageId = `${domId}-error-message`;\n\n  return (\n    <div class={formFieldClasses(type, { errors, disabled, readonly })} ref={outerDivRef}>\n      <Label label={label} required={required} />\n      {loadState == LOAD_STATES.LOADED &&\n        options.map((option, index) => {\n          const itemDomId = `${domId}-${index}`;\n          const isChecked = isEqual(option.value, value);\n\n          return (\n            <div\n              className={classNames('fjs-inline-label', {\n                'fjs-checked': isChecked,\n              })}\n              key={option.value}>\n              <input\n                checked={isChecked}\n                class=\"fjs-input\"\n                disabled={disabled}\n                readOnly={readonly}\n                name={domId}\n                id={itemDomId}\n                type=\"radio\"\n                onClick={() => onChange(option.value)}\n                onBlur={onRadioBlur}\n                onFocus={onRadioFocus}\n                aria-describedby={[descriptionId, errorMessageId].join(' ')}\n                required={required}\n                aria-invalid={errors.length > 0}\n              />\n              <Label\n                htmlFor={itemDomId}\n                label={option.label}\n                class={classNames({ 'fjs-checked': isChecked })}\n                required={false}\n              />\n            </div>\n          );\n        })}\n      <Description id={descriptionId} description={description} />\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nRadio.config = {\n  type,\n  keyed: true,\n  name: 'Radio group',\n  group: 'selection',\n  emptyValue: null,\n  sanitizeValue: sanitizeSingleSelectValue,\n  create: (options = {}) => ({\n    label: 'Radio group',\n    ...createEmptyOptions(options),\n  }),\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\"><path fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"currentColor\" stroke-width=\".5\" d=\"M4 3.766 7.43.336l.234.234L4.234 4l3.43 3.43-.234.234L4 4.234.57 7.664.336 7.43 3.766 4 .336.57.57.336Zm0 0\" clip-rule=\"evenodd\"/></svg>","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useOptionsAsync, LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\nimport { useService, useCleanupSingleSelectValue } from '../../../hooks';\n\nimport classNames from 'classnames';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\nimport { DropdownList } from './DropdownList';\n\nexport function SearchableSelect(props) {\n  const { domId, disabled, errors, onBlur, onFocus, field, readonly, value } = props;\n\n  const [filter, setFilter] = useState('');\n  const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n  const [isFilterActive, setIsFilterActive] = useState(true);\n  const [isEscapeClosed, setIsEscapeClose] = useState(false);\n\n  /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n  const searchbarRef = useRef();\n  const eventBus = useService('eventBus');\n\n  const { loadState, options } = useOptionsAsync(field);\n\n  useCleanupSingleSelectValue({\n    field,\n    loadState,\n    options,\n    value,\n    onChange: props.onChange,\n  });\n\n  const getLabelCorrelation = useGetLabelCorrelation(options);\n\n  const label = useMemo(() => value && getLabelCorrelation(value), [value, getLabelCorrelation]);\n\n  // whenever we change the underlying value, set the label to it\n  useEffect(() => {\n    setFilter(label || '');\n  }, [label]);\n\n  const filteredOptions = useMemo(() => {\n    if (loadState !== LOAD_STATES.LOADED) {\n      return [];\n    }\n\n    if (!filter || !isFilterActive) {\n      return options;\n    }\n\n    return options.filter(\n      (option) => option.label && option.value && option.label.toLowerCase().includes(filter.toLowerCase()),\n    );\n  }, [filter, loadState, options, isFilterActive]);\n\n  const pickOption = useCallback(\n    (option) => {\n      setFilter((option && option.label) || '');\n      props.onChange({ value: (option && option.value) || null });\n    },\n    [props],\n  );\n\n  const displayState = useMemo(() => {\n    const ds = {};\n    ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\n    ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n    ds.displayDropdown = !disabled && !readonly && isDropdownExpanded && !isEscapeClosed;\n    return ds;\n  }, [disabled, isDropdownExpanded, isEscapeClosed, loadState, readonly, value]);\n\n  const onAngelMouseDown = useCallback(\n    (e) => {\n      setIsEscapeClose(false);\n      setIsDropdownExpanded(!isDropdownExpanded);\n\n      const searchbar = searchbarRef.current;\n      isDropdownExpanded ? searchbar.blur() : searchbar.focus();\n\n      e.preventDefault();\n    },\n    [isDropdownExpanded],\n  );\n\n  const onInputChange = ({ target }) => {\n    setIsEscapeClose(false);\n    setIsDropdownExpanded(true);\n    setIsFilterActive(true);\n    setFilter(target.value || '');\n    eventBus.fire('formField.search', { formField: field, value: target.value || '' });\n  };\n\n  const onInputKeyDown = useCallback(\n    (keyDownEvent) => {\n      switch (keyDownEvent.key) {\n        case 'ArrowUp':\n          keyDownEvent.preventDefault();\n          break;\n        case 'ArrowDown': {\n          if (!isDropdownExpanded) {\n            setIsDropdownExpanded(true);\n            setIsFilterActive(false);\n          }\n\n          keyDownEvent.preventDefault();\n          break;\n        }\n        case 'Escape':\n          setIsEscapeClose(true);\n          break;\n        case 'Enter':\n          if (isEscapeClosed) {\n            setIsEscapeClose(false);\n          }\n          break;\n      }\n    },\n    [isDropdownExpanded, isEscapeClosed],\n  );\n\n  const onInputMouseDown = useCallback(() => {\n    setIsEscapeClose(false);\n    setIsDropdownExpanded(true);\n    setIsFilterActive(false);\n  }, []);\n\n  const onInputFocus = useCallback(() => {\n    setIsEscapeClose(false);\n    setIsDropdownExpanded(true);\n    onFocus && onFocus();\n  }, [onFocus]);\n\n  const onInputBlur = useCallback(() => {\n    setIsDropdownExpanded(false);\n    setFilter(label || '');\n    onBlur && onBlur();\n  }, [onBlur, label]);\n\n  return (\n    <>\n      <div\n        class={classNames('fjs-input-group', { disabled: disabled, readonly: readonly }, { hasErrors: errors.length })}>\n        <input\n          disabled={disabled}\n          readOnly={readonly}\n          class=\"fjs-input\"\n          ref={searchbarRef}\n          id={domId}\n          onChange={onInputChange}\n          type=\"text\"\n          value={filter}\n          placeholder={'Search'}\n          autoComplete=\"off\"\n          onKeyDown={onInputKeyDown}\n          onMouseDown={onInputMouseDown}\n          onFocus={onInputFocus}\n          onBlur={onInputBlur}\n          aria-describedby={props['aria-describedby']}\n        />\n        {displayState.displayCross && (\n          <span\n            class=\"fjs-select-cross\"\n            onMouseDown={(e) => {\n              pickOption(null);\n              e.preventDefault();\n            }}>\n            <XMarkIcon />{' '}\n          </span>\n        )}\n        <span class=\"fjs-select-arrow\" onMouseDown={(e) => onAngelMouseDown(e)}>\n          {displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon />}\n        </span>\n      </div>\n      <div class=\"fjs-select-anchor\">\n        {displayState.displayDropdown && (\n          <DropdownList\n            values={filteredOptions}\n            getLabel={(option) => option.label}\n            onValueSelected={(option) => {\n              pickOption(option);\n              setIsDropdownExpanded(false);\n            }}\n            listenerElement={searchbarRef.current}\n          />\n        )}\n      </div>\n    </>\n  );\n}\n","import { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { findIndex } from 'min-dash';\nimport { useOptionsAsync, LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useCleanupSingleSelectValue } from '../../../hooks/useCleanupSingleSelectValue';\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\nimport { DropdownList } from './DropdownList';\n\nexport function SimpleSelect(props) {\n  const { domId, disabled, errors, onBlur, onFocus, field, readonly, value } = props;\n\n  const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n  const selectRef = useRef();\n\n  /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n  const inputRef = useRef();\n\n  const { loadState, options } = useOptionsAsync(field);\n\n  useCleanupSingleSelectValue({\n    field,\n    loadState,\n    options,\n    value,\n    onChange: props.onChange,\n  });\n\n  const getLabelCorrelation = useGetLabelCorrelation(options);\n\n  const valueLabel = useMemo(() => value && getLabelCorrelation(value), [value, getLabelCorrelation]);\n\n  const pickOption = useCallback(\n    (option) => {\n      props.onChange({ value: (option && option.value) || null });\n    },\n    [props],\n  );\n\n  const displayState = useMemo(() => {\n    const ds = {};\n    ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\n    ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n    ds.displayDropdown = !disabled && !readonly && isDropdownExpanded;\n    return ds;\n  }, [disabled, isDropdownExpanded, loadState, readonly, value]);\n\n  const onMouseDown = useCallback(\n    (e) => {\n      const input = inputRef.current;\n\n      if (disabled || !input) {\n        return;\n      }\n\n      setIsDropdownExpanded(!isDropdownExpanded);\n\n      if (isDropdownExpanded) {\n        input.blur();\n      } else {\n        input.focus();\n      }\n\n      e.preventDefault();\n    },\n    [disabled, isDropdownExpanded],\n  );\n\n  const initialFocusIndex = useMemo(\n    () => (value && findIndex(options, (option) => option.value === value)) || 0,\n    [options, value],\n  );\n\n  const onInputFocus = useCallback(() => {\n    if (!readonly) {\n      setIsDropdownExpanded(true);\n      onFocus && onFocus();\n    }\n  }, [onFocus, readonly]);\n\n  const onInputBlur = useCallback(() => {\n    if (!readonly) {\n      setIsDropdownExpanded(false);\n      onBlur && onBlur();\n    }\n  }, [onBlur, readonly]);\n\n  return (\n    <>\n      <div\n        ref={selectRef}\n        class={classNames('fjs-input-group', { disabled, readonly }, { hasErrors: errors.length })}\n        onFocus={onInputFocus}\n        onBlur={onInputBlur}\n        onMouseDown={onMouseDown}>\n        <div class={classNames('fjs-select-display', { 'fjs-select-placeholder': !value })} id={`${domId}-display`}>\n          {valueLabel || 'Select'}\n        </div>\n        {!disabled && (\n          <input\n            ref={inputRef}\n            id={domId}\n            class=\"fjs-select-hidden-input\"\n            value={valueLabel}\n            onFocus={onInputFocus}\n            onBlur={onInputBlur}\n            aria-describedby={props['aria-describedby']}\n          />\n        )}\n        {displayState.displayCross && (\n          <span\n            class=\"fjs-select-cross\"\n            onMouseDown={(e) => {\n              pickOption(null);\n              e.stopPropagation();\n            }}>\n            <XMarkIcon />\n          </span>\n        )}\n        <span class=\"fjs-select-arrow\">{displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon />}</span>\n      </div>\n      <div class=\"fjs-select-anchor\">\n        {displayState.displayDropdown && (\n          <DropdownList\n            values={options}\n            getLabel={(option) => option.label}\n            initialFocusIndex={initialFocusIndex}\n            onValueSelected={(option) => {\n              pickOption(option);\n              setIsDropdownExpanded(false);\n            }}\n            listenerElement={selectRef.current}\n          />\n        )}\n      </div>\n    </>\n  );\n}\n","import { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { SearchableSelect } from './parts/SearchableSelect';\nimport { SimpleSelect } from './parts/SimpleSelect';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/optionsUtil';\nimport { formFieldClasses } from '../Util';\n\nconst type = 'select';\n\nexport function Select(props) {\n  const { disabled, errors = [], domId, onBlur, onFocus, field, onChange, readonly, value } = props;\n\n  const { description, label, searchable = false, validate = {} } = field;\n\n  const { required } = validate;\n\n  const descriptionId = `${domId}-description`;\n  const errorMessageId = `${domId}-error-message`;\n\n  const selectProps = {\n    domId,\n    disabled,\n    errors,\n    onBlur,\n    onFocus,\n    field,\n    value,\n    onChange,\n    readonly,\n    required,\n    'aria-invalid': errors.length > 0,\n    'aria-describedby': [descriptionId, errorMessageId].join(' '),\n  };\n\n  return (\n    <div\n      class={formFieldClasses(type, { errors, disabled, readonly })}\n      onKeyDown={(event) => {\n        if (event.key === 'Enter') {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n      }}>\n      <Label htmlFor={domId} label={label} required={required} />\n      {searchable ? <SearchableSelect {...selectProps} /> : <SimpleSelect {...selectProps} />}\n      <Description id={descriptionId} description={description} />\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nSelect.config = {\n  type,\n  keyed: true,\n  name: 'Select',\n  group: 'selection',\n  emptyValue: null,\n  sanitizeValue: sanitizeSingleSelectValue,\n  create: (options = {}) => ({\n    label: 'Select',\n    ...createEmptyOptions(options),\n  }),\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'separator';\n\nexport function Separator() {\n  return (\n    <div class={formFieldClasses(type)}>\n      <hr />\n    </div>\n  );\n}\n\nSeparator.config = {\n  type,\n  keyed: false,\n  name: 'Separator',\n  group: 'presentation',\n  create: (options = {}) => ({\n    ...options,\n  }),\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'spacer';\n\nexport function Spacer(props) {\n  const { field } = props;\n  const { height = 60 } = field;\n\n  return <div class={formFieldClasses(type)} style={{ height: height }} />;\n}\n\nSpacer.config = {\n  type,\n  keyed: false,\n  name: 'Spacer',\n  group: 'presentation',\n  create: (options = {}) => ({\n    height: 60,\n    ...options,\n  }),\n};\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport classNames from 'classnames';\n\nimport { Label } from '../Label';\nimport { ChildrenRenderer } from './parts/ChildrenRenderer';\n\nexport function DynamicList(props) {\n  const { field, domId, readonly } = props;\n  const { label, type, showOutline } = field;\n\n  const { Empty } = useContext(FormRenderContext);\n\n  const fullProps = { ...props, Empty };\n\n  return (\n    <div\n      className={classNames(formFieldClasses(type, { readonly }), 'fjs-form-field-grouplike', {\n        'fjs-outlined': showOutline,\n      })}\n      role=\"group\"\n      aria-labelledby={domId}>\n      <Label id={domId} label={label} />\n      <ChildrenRenderer {...fullProps} />\n    </div>\n  );\n}\n\nDynamicList.config = {\n  type: 'dynamiclist',\n  pathed: true,\n  repeatable: true,\n  name: 'Dynamic list',\n  group: 'container',\n  create: (options = {}) => ({\n    label: 'Dynamic list',\n    components: [],\n    showOutline: true,\n    isRepeating: true,\n    allowAddRemove: true,\n    defaultRepetitions: 1,\n    ...options,\n  }),\n};\n","import classNames from 'classnames';\n\nimport { useCallback } from 'preact/hooks';\n\nexport function SkipLink(props) {\n  const { className, label, onSkip } = props;\n\n  const onKeyDown = useCallback(\n    (event) => {\n      if (event.key === 'Enter') {\n        event.preventDefault();\n        event.stopPropagation();\n        onSkip();\n      }\n    },\n    [onSkip],\n  );\n\n  return (\n    <a href=\"#\" class={classNames('fjs-skip-link', className)} onKeyDown={onKeyDown}>\n      {label}\n    </a>\n  );\n}\n","import { useMemo, useRef, useState } from 'preact/hooks';\n\nimport {\n  useDeepCompareMemoize,\n  useService,\n  useOptionsAsync,\n  useCleanupMultiSelectValue,\n  useGetLabelCorrelation,\n  LOAD_STATES,\n} from '../../hooks';\n\nimport XMarkIcon from './icons/XMark.svg';\nimport { DropdownList } from './parts/DropdownList';\nimport { Description } from '../Description';\nimport { Errors } from '../Errors';\nimport { Label } from '../Label';\nimport { SkipLink } from './parts/SkipLink';\n\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/optionsUtil';\nimport { formFieldClasses } from '../Util';\n\nconst type = 'taglist';\n\nexport function Taglist(props) {\n  const { disabled, errors = [], onFocus, domId, onBlur, field, readonly, value } = props;\n\n  const { description, label, validate = {} } = field;\n\n  const { required } = validate;\n\n  const [filter, setFilter] = useState('');\n  const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);\n  const [isEscapeClosed, setIsEscapeClose] = useState(false);\n\n  /** @type {import(\"preact\").RefObject<HTMLDivElement>} */\n  const focusScopeRef = useRef();\n\n  /** @type {import(\"preact\").RefObject<HTMLInputElement>} */\n  const inputRef = useRef();\n  const eventBus = useService('eventBus');\n\n  const { loadState, options } = useOptionsAsync(field);\n\n  // ensures we render based on array content instead of reference\n  const values = useDeepCompareMemoize(value || []);\n\n  useCleanupMultiSelectValue({\n    field,\n    loadState,\n    options,\n    values,\n    onChange: props.onChange,\n  });\n\n  const getLabelCorrelation = useGetLabelCorrelation(options);\n\n  const hasOptionsLeft = useMemo(() => options.length > values.length, [options.length, values.length]);\n\n  const filteredOptions = useMemo(() => {\n    if (loadState !== LOAD_STATES.LOADED) {\n      return [];\n    }\n\n    const isValidFilteredOption = (option) => {\n      const filterMatches = option.label.toLowerCase().includes(filter.toLowerCase());\n      return filterMatches && !hasEqualValue(option.value, values);\n    };\n\n    return options.filter(isValidFilteredOption);\n  }, [filter, options, values, loadState]);\n\n  const selectValue = (value) => {\n    setFilter('');\n\n    // Ensure values cannot be double selected due to latency\n    if (values.at(-1) === value) {\n      return;\n    }\n\n    props.onChange({ value: [...values, value] });\n  };\n\n  const deselectValue = (value) => {\n    const newValues = values.filter((v) => !isEqual(v, value));\n    props.onChange({ value: newValues });\n  };\n\n  const onInputChange = ({ target }) => {\n    setIsEscapeClose(false);\n    setFilter(target.value || '');\n    eventBus.fire('formField.search', { formField: field, value: target.value || '' });\n  };\n\n  const onInputKeyDown = (e) => {\n    switch (e.key) {\n      case 'ArrowUp':\n      case 'ArrowDown':\n        // We do not want the cursor to seek in the search field when we press up and down\n        e.preventDefault();\n        break;\n      case 'Backspace':\n        if (!filter && values.length) {\n          deselectValue(values[values.length - 1]);\n        }\n        break;\n      case 'Escape':\n        setIsEscapeClose(true);\n        break;\n      case 'Enter':\n        if (isEscapeClosed) {\n          setIsEscapeClose(false);\n        }\n        break;\n    }\n  };\n\n  const onElementBlur = (e) => {\n    if (focusScopeRef.current.contains(e.relatedTarget)) return;\n    onBlur && onBlur();\n  };\n\n  const onElementFocus = (e) => {\n    if (focusScopeRef.current.contains(e.relatedTarget)) return;\n    onFocus && onFocus();\n  };\n\n  const onInputBlur = (e) => {\n    if (!readonly) {\n      setIsDropdownExpanded(false);\n      setFilter('');\n    }\n    onElementBlur(e);\n  };\n\n  const onInputFocus = (e) => {\n    if (!readonly) {\n      setIsDropdownExpanded(true);\n    }\n    onElementFocus(e);\n  };\n\n  const onTagRemoveClick = (event, value) => {\n    const { target } = event;\n\n    deselectValue(value);\n\n    // restore focus if there is no next sibling to focus\n    const nextTag = target.closest('.fjs-taglist-tag').nextSibling;\n    if (!nextTag) {\n      inputRef.current.focus();\n    }\n  };\n\n  const onSkipToSearch = () => {\n    inputRef.current.focus();\n  };\n\n  const shouldDisplayDropdown = useMemo(\n    () => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed,\n    [disabled, isDropdownExpanded, isEscapeClosed, loadState],\n  );\n\n  const descriptionId = `${domId}-description`;\n  const errorMessageId = `${domId}-error-message`;\n\n  return (\n    <div\n      ref={focusScopeRef}\n      class={formFieldClasses(type, { errors, disabled, readonly })}\n      onKeyDown={(event) => {\n        if (event.key === 'Enter') {\n          event.stopPropagation();\n          event.preventDefault();\n        }\n      }}>\n      <Label label={label} required={required} htmlFor={domId} />\n      {!disabled && !readonly && !!values.length && (\n        <SkipLink className=\"fjs-taglist-skip-link\" label=\"Skip to search\" onSkip={onSkipToSearch} />\n      )}\n      <div class={classNames('fjs-taglist', { 'fjs-disabled': disabled, 'fjs-readonly': readonly })}>\n        {loadState === LOAD_STATES.LOADED && (\n          <div class=\"fjs-taglist-tags\">\n            {values.map((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=\"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 : 'Search'}\n          autoComplete=\"off\"\n          onKeyDown={onInputKeyDown}\n          onMouseDown={() => setIsEscapeClose(false)}\n          onFocus={onInputFocus}\n          onBlur={onInputBlur}\n          aria-describedby={[descriptionId, errorMessageId].join(' ')}\n          required={required}\n          aria-invalid={errors.length > 0}\n        />\n      </div>\n      <div class=\"fjs-taglist-anchor\">\n        {shouldDisplayDropdown && (\n          <DropdownList\n            values={filteredOptions}\n            getLabel={(option) => option.label}\n            onValueSelected={(option) => selectValue(option.value)}\n            emptyListMessage={hasOptionsLeft ? 'No results' : 'All values selected'}\n            listenerElement={inputRef.current}\n          />\n        )}\n      </div>\n      <Description id={descriptionId} description={description} />\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nTaglist.config = {\n  type,\n  keyed: true,\n  name: 'Tag list',\n  group: 'selection',\n  emptyValue: [],\n  sanitizeValue: sanitizeMultiSelectValue,\n  create: (options = {}) => ({\n    label: 'Tag list',\n    ...createEmptyOptions(options),\n  }),\n};\n","const NODE_TYPE_TEXT = 3,\n  NODE_TYPE_ELEMENT = 1;\n\nconst ALLOWED_NODES = [\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'span',\n  'em',\n  'a',\n  'p',\n  'div',\n  'ul',\n  'ol',\n  'li',\n  'hr',\n  'blockquote',\n  'img',\n  'pre',\n  'code',\n  'br',\n  'strong',\n  'table',\n  'thead',\n  'tbody',\n  'tr',\n  'th',\n  'td',\n];\n\nconst ALLOWED_ATTRIBUTES = ['align', 'alt', 'class', 'href', 'id', 'name', 'rel', 'target', 'src'];\n\nconst ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\nconst ATTR_WHITESPACE_PATTERN = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g; // eslint-disable-line no-control-regex\n\nconst FORM_ELEMENT = document.createElement('form');\n\n/**\n * Sanitize a HTML string and return the cleaned, safe version.\n *\n * @param {string} html\n * @return {string}\n */\n\n// see https://github.com/developit/snarkdown/issues/70\nexport function sanitizeHTML(html) {\n  const doc = new DOMParser().parseFromString(`<!DOCTYPE html>\\n<html><body><div>${html}`, 'text/html');\n\n  doc.normalize();\n\n  const element = doc.body.firstChild;\n\n  if (element) {\n    sanitizeNode(/** @type Element */ (element));\n    return /** @type Element */ (element).innerHTML;\n  } else {\n    // handle the case that document parsing\n    // does not work at all, due to HTML gibberish\n    return '';\n  }\n}\n\n/**\n * Recursively sanitize a HTML node, potentially\n * removing it, its children or attributes.\n *\n * Inspired by https://github.com/developit/snarkdown/issues/70\n * and https://github.com/cure53/DOMPurify. Simplified\n * for our use-case.\n *\n * @param {Element} node\n */\nfunction sanitizeNode(node) {\n  // allow text nodes\n  if (node.nodeType === NODE_TYPE_TEXT) {\n    return;\n  }\n\n  // disallow all other nodes but Element\n  if (node.nodeType !== NODE_TYPE_ELEMENT) {\n    return node.remove();\n  }\n\n  const lcTag = node.tagName.toLowerCase();\n\n  // disallow non-whitelisted tags\n  if (!ALLOWED_NODES.includes(lcTag)) {\n    return node.remove();\n  }\n\n  const attributes = node.attributes;\n\n  // clean attributes\n  for (let i = attributes.length; i--; ) {\n    const attribute = attributes[i];\n\n    const name = attribute.name;\n    const lcName = name.toLowerCase();\n\n    // normalize node value\n    const value = attribute.value.trim();\n\n    node.removeAttribute(name);\n\n    const valid = isValidAttribute(lcTag, lcName, value);\n\n    if (valid) {\n      node.setAttribute(name, value);\n    }\n  }\n\n  // force noopener on target=\"_blank\" links\n  if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\n    node.setAttribute('rel', 'noopener');\n  }\n\n  for (let i = node.childNodes.length; i--; ) {\n    sanitizeNode(/** @type Element */ (node.childNodes[i]));\n  }\n}\n\n/**\n * Validates attributes for validity.\n *\n * @param {string} lcTag\n * @param {string} lcName\n * @param {string} value\n * @return {boolean}\n */\nfunction isValidAttribute(lcTag, lcName, value) {\n  // disallow most attributes based on whitelist\n  if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\n    return false;\n  }\n\n  // disallow \"DOM clobbering\" / polution of document and wrapping form elements\n  if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\n    return false;\n  }\n\n  if (lcName === 'target' && value !== '_blank') {\n    return false;\n  }\n\n  // allow valid url links only\n  if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\n    return false;\n  }\n\n  return true;\n}\n","import { useCallback, useMemo } from 'preact/hooks';\nimport { useDangerousHTMLWrapper, useService, useTemplateEvaluation } from '../../hooks';\nimport { sanitizeHTML } from '../Sanitizer';\n\nimport { formFieldClasses, textToLabel } from '../Util';\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 } from '../../hooks';\nimport { useEffect, useState } from 'preact/hooks';\nimport { formFieldClasses, prefixId } from '../Util';\nimport classNames from 'classnames';\n\nimport { Label } from '../Label';\nimport ArrowDownIcon from './icons/ArrowDown.svg';\nimport ArrowUpIcon from './icons/ArrowUp.svg';\nimport CaretLeftIcon from './icons/CaretLeft.svg';\nimport CaretRightIcon from './icons/CaretRight.svg';\n\nconst type = 'table';\n\n/**\n * @typedef {('asc'|'desc')} Direction\n *\n * @typedef Sorting\n * @property {string} key\n * @property {Direction} direction\n *\n * @typedef Column\n * @property {string} label\n * @property {string} key\n *\n * @typedef Field\n * @property {string} id\n * @property {Array<Column>} [columns]\n * @property {string} [columnsExpression]\n * @property {string} [label]\n * @property {number} [rowCount]\n * @property {string} [dataSource]\n *\n * @typedef Props\n * @property {Field} field\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport function Table(props) {\n  const { field } = props;\n  const { columns = [], columnsExpression, dataSource = '', rowCount, id, label } = field;\n\n  const [sortBy, setSortBy] = useState(/** @type {Sorting | null} */ null);\n  const evaluatedColumns = useEvaluatedColumns(columnsExpression || '', columns);\n  const columnKeys = evaluatedColumns.map(({ key }) => key);\n  const evaluatedDataSource = useExpressionEvaluation(dataSource);\n  const data = Array.isArray(evaluatedDataSource)\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  useEffect(() => {\n    setCurrentPage(0);\n  }, [rowCount, sortBy]);\n\n  /** @param {string} key */\n  function toggleSortBy(key) {\n    setSortBy((current) => {\n      if (current === null || current.key !== key) {\n        return {\n          key,\n          direction: 'asc',\n        };\n      }\n\n      if (current.direction === 'desc') {\n        return null;\n      }\n\n      return {\n        key,\n        direction: 'desc',\n      };\n    });\n  }\n\n  return (\n    <div class={formFieldClasses(type)}>\n      <Label htmlFor={prefixId(id)} label={label} />\n      <div\n        class={classNames('fjs-table-middle-container', {\n          'fjs-table-empty': evaluatedColumns.length === 0,\n        })}>\n        {evaluatedColumns.length === 0 ? (\n          'Nothing to show.'\n        ) : (\n          <div class=\"fjs-table-inner-container\">\n            <table class=\"fjs-table\" id={prefixId(id)}>\n              <thead class=\"fjs-table-head\">\n                <tr class=\"fjs-table-tr\">\n                  {evaluatedColumns.map(({ key, label }) => {\n                    const displayLabel = label || key;\n\n                    return (\n                      <th\n                        key={key}\n                        tabIndex={0}\n                        class=\"fjs-table-th\"\n                        onClick={() => {\n                          toggleSortBy(key);\n                        }}\n                        onKeyDown={(event) => {\n                          if (['Enter', 'Space'].includes(event.code)) {\n                            toggleSortBy(key);\n                          }\n                        }}\n                        aria-label={getHeaderAriaLabel(sortBy, key, displayLabel)}>\n                        <span class=\"fjs-table-th-label\">\n                          {displayLabel}\n                          {sortBy !== null && sortBy.key === key ? (\n                            <>\n                              {sortBy.direction === 'asc' ? (\n                                <ArrowUpIcon class=\"fjs-table-sort-icon-asc\" />\n                              ) : (\n                                <ArrowDownIcon class=\"fjs-table-sort-icon-desc\" />\n                              )}\n                            </>\n                          ) : null}\n                        </span>\n                      </th>\n                    );\n                  })}\n                </tr>\n              </thead>\n              {currentChunk.length === 0 ? (\n                <tbody class=\"fjs-table-body\">\n                  <tr class=\"fjs-table-tr\">\n                    <td class=\"fjs-table-td\" colSpan={evaluatedColumns.length}>\n                      Nothing to show.\n                    </td>\n                  </tr>\n                </tbody>\n              ) : (\n                <tbody class=\"fjs-table-body\">\n                  {currentChunk.map((row, index) => (\n                    <tr key={index} class=\"fjs-table-tr\">\n                      {columnKeys.map((key) => (\n                        <td key={key} class=\"fjs-table-td\">\n                          {serializeCellData(row[key])}\n                        </td>\n                      ))}\n                    </tr>\n                  ))}\n                </tbody>\n              )}\n            </table>\n          </div>\n        )}\n\n        {isNumber(rowCount) && chunkedData.length > 1 && evaluatedColumns.length > 0 ? (\n          <nav class=\"fjs-table-nav\">\n            <span class=\"fjs-table-nav-label\">\n              {currentPage + 1} of {chunkedData.length}\n            </span>\n            <button\n              type=\"button\"\n              class=\"fjs-table-nav-button\"\n              onClick={() => {\n                setCurrentPage((page) => Math.max(page - 1, 0));\n              }}\n              disabled={currentPage === 0}\n              aria-label=\"Previous page\">\n              <CaretLeftIcon />\n            </button>\n            <button\n              type=\"button\"\n              class=\"fjs-table-nav-button\"\n              onClick={() => {\n                setCurrentPage((page) => Math.min(page + 1, chunkedData.length - 1));\n              }}\n              disabled={currentPage >= chunkedData.length - 1}\n              aria-label=\"Next page\">\n              <CaretRightIcon />\n            </button>\n          </nav>\n        ) : null}\n      </div>\n    </div>\n  );\n}\n\nTable.config = {\n  type,\n  keyed: false,\n  name: 'Table',\n  group: 'presentation',\n  create: (options = {}) => {\n    const { id, columnsExpression, columns, rowCount, ...remainingOptions } = options;\n\n    if (isDefined(id) && isNumber(rowCount)) {\n      remainingOptions['rowCount'] = rowCount;\n    }\n\n    if (isString(columnsExpression)) {\n      return {\n        ...remainingOptions,\n        id,\n        columnsExpression,\n      };\n    }\n\n    if (Array.isArray(columns) && columns.every(isColumn)) {\n      return {\n        ...remainingOptions,\n        id,\n        columns,\n      };\n    }\n\n    return {\n      ...remainingOptions,\n      label: 'Table',\n      rowCount: 10,\n      columns: [\n        {\n          label: 'ID',\n          key: 'id',\n        },\n        {\n          label: 'Name',\n          key: 'name',\n        },\n        {\n          label: 'Date',\n          key: 'date',\n        },\n      ],\n    };\n  },\n\n  /**\n   * @experimental\n   *\n   * A function that generates demo data for a new field on the form playground.\n   * @param {Field} field\n   */\n  generateInitialDemoData: (field) => {\n    const demoData = [\n      { id: 1, name: 'John Doe', date: '31.01.2023' },\n      { id: 2, name: 'Erika Muller', date: '20.02.2023' },\n      { id: 3, name: 'Dominic Leaf', date: '11.03.2023' },\n    ];\n    const demoDataKeys = Object.keys(demoData[0]);\n    const { columns, id, dataSource } = field;\n\n    if (!Array.isArray(columns) || columns.length === 0 || dataSource !== `=${id}`) {\n      return;\n    }\n\n    if (!columns.map(({ key }) => key).every((key) => demoDataKeys.includes(key))) {\n      return;\n    }\n\n    return demoData;\n  },\n};\n\n// helpers /////////////////////////////\n\n/**\n * @param {string|void} columnsExpression\n * @param {Column[]} fallbackColumns\n * @returns {Column[]}\n */\nfunction useEvaluatedColumns(columnsExpression, fallbackColumns) {\n  /** @type {Column[]|null} */\n  const evaluation = useExpressionEvaluation(columnsExpression || '');\n\n  return Array.isArray(evaluation) && evaluation.every(isColumn) ? evaluation : fallbackColumns;\n}\n\n/**\n * @param {any} column\n * @returns {column is Column}\n */\nfunction isColumn(column) {\n  return isObject(column) && isString(column['label']) && isString(column['key']);\n}\n\n/**\n * @param {Array} array\n * @param {number} size\n * @returns {Array}\n */\nfunction chunk(array, size) {\n  return array.reduce((chunks, item, index) => {\n    if (index % size === 0) {\n      chunks.push([item]);\n    } else {\n      chunks[chunks.length - 1].push(item);\n    }\n\n    return chunks;\n  }, []);\n}\n\n/**\n * @param {unknown[]} array\n * @param {string} key\n * @param {Direction} direction\n * @returns {unknown[]}\n */\nfunction sortByColumn(array, key, direction) {\n  return [...array].sort((a, b) => {\n    if (!isObject(a) || !isObject(b)) {\n      return 0;\n    }\n\n    if (direction === 'asc') {\n      return a[key] > b[key] ? 1 : -1;\n    }\n\n    return a[key] < b[key] ? 1 : -1;\n  });\n}\n\n/**\n * @param {null|Sorting} sortBy\n * @param {string} key\n * @param {string} label\n */\nfunction getHeaderAriaLabel(sortBy, key, label) {\n  if (sortBy === null || sortBy.key !== key) {\n    return `Click to sort by ${label} descending`;\n  }\n\n  if (sortBy.direction === 'asc') {\n    return 'Click to remove sorting';\n  }\n\n  return `Click to sort by ${label} ascending`;\n}\n\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\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/hooks\").Ref<HTMLInputElement>} */\n  const fileInputRef = useRef(null);\n  /** @type {import('../../FileRegistry').FileRegistry} */\n  const fileRegistry = useService('fileRegistry', false);\n  const { field, onChange, domId, errors = [], disabled, readonly, 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  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          readOnly={readonly}\n          className=\"fjs-button fjs-filepicker-button\"\n          onClick={() => {\n            fileInputRef.current.click();\n          }}>\n          Browse\n        </button>\n        <span className=\"fjs-form-field-label\">{getSelectedFilesLabel(selectedFiles)}</span>\n      </div>\n      <Errors id={errorMessageId} errors={errors} />\n    </div>\n  );\n}\n\nFilePicker.config = {\n  type: 'filepicker',\n  keyed: true,\n  label: 'File picker',\n  group: 'basic-input',\n  emptyValue: null,\n  create: (options = {}) => ({ ...options }),\n};\n\n// helper //////////\n\n/**\n * @param {File[]} files\n * @returns {string}\n */\nfunction getSelectedFilesLabel(files) {\n  if (files.length === 0) {\n    return 'No files selected';\n  }\n\n  if (files.length === 1) {\n    return files[0].name;\n  }\n\n  return `${files.length} files selected`;\n}\n","<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 { useEffect, useRef, useState } from 'preact/hooks';\nimport { Label } from '../Label';\n\nconst type = 'documentPreview';\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  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          const requestInit = getDocumentRequestInit(documentEndpointBuilder, document);\n\n          return (\n            <DocumentRenderer\n              key={document.documentId}\n              documentMetadata={document}\n              endpoint={finalEndpoint}\n              requestInit={requestInit}\n              maxHeight={maxHeight}\n              domId={`${domId}-${index}`}\n            />\n          );\n        })}\n      </div>\n\n      <Errors\n        id={errorMessageId}\n        errors={getErrors({\n          dataSource,\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 * @returns {string[]}\n */\nfunction getErrors(options) {\n  const { dataSource } = options;\n  let errors = [];\n\n  if (!isString(dataSource) || dataSource.length < 1) {\n    errors.push('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  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        const blob = await response.blob();\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={['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 {string} props.endpoint\n * @param {string} props.domId\n * @param {RequestInit|undefined} props.requestInit\n * @param {number|undefined} props.maxHeight\n *\n * @returns {import(\"preact\").JSX.Element}\n */\nfunction DocumentRenderer(props) {\n  const { documentMetadata, endpoint, maxHeight, domId, requestInit } = props;\n  const { metadata } = documentMetadata;\n  const [hasError, setHasError] = useState(false);\n  const ref = useRef(null);\n  const isInViewport = useInViewport(ref);\n  const singleDocumentContainerClassName = `fjs-${type}-single-document-container`;\n  const errorMessageId = `${domId}-error-message`;\n  const errorMessage = '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={() => setHasError(true)}\n        />\n        <DownloadButton\n          endpoint={endpoint}\n          fileName={metadata.fileName}\n          requestInit={requestInit}\n          onDownloadError={() => {\n            setHasError(true);\n          }}\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={() => setHasError(true)}\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={() => {\n          setHasError(true);\n        }}\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 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={`Download ${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: var(--cds-icon-primary, #404040)\">\n          <Logo />\n        </a>\n        <span>\n          Web-based tooling for BPMN, DMN, and forms powered by{' '}\n          <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener 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: var(--cds-text-primary, #404040)\"\n        onClick={props.onClick}>\n        <Logo />\n      </a>\n    </div>\n  );\n}\n\nexport function PoweredBy(props) {\n  const [open, setOpen] = useState(false);\n\n  function toggleOpen(open) {\n    return (event) => {\n      event.preventDefault();\n\n      setOpen(open);\n    };\n  }\n\n  return (\n    <Fragment>\n      {createPortal(<Lightbox open={open} onBackdropClick={toggleOpen(false)} />, document.body)}\n      <Link onClick={toggleOpen(true)} />\n    </Fragment>\n  );\n}\n","import { FormField } from './FormField';\nimport { PoweredBy } from './PoweredBy';\nimport { LocalExpressionContext } from '../context/LocalExpressionContext';\n\nimport { useMemo } from 'preact/hooks';\nimport { useFilteredFormData, useService } from '../hooks';\n\nconst noop = () => {};\n\nexport function FormComponent(props) {\n  const form = useService('form');\n\n  const { schema, properties } = form._getState();\n\n  const { ariaLabel } = properties;\n\n  const { onSubmit = noop, onReset = noop, onChange = noop } = props;\n\n  const handleSubmit = (event) => {\n    event.preventDefault();\n\n    onSubmit();\n  };\n\n  const handleReset = (event) => {\n    event.preventDefault();\n\n    onReset();\n  };\n\n  const filteredFormData = useFilteredFormData();\n\n  const localExpressionContext = useMemo(\n    () => ({\n      data: filteredFormData,\n      parent: null,\n      this: filteredFormData,\n      i: [],\n    }),\n    [filteredFormData],\n  );\n\n  return (\n    <form class=\"fjs-form\" onSubmit={handleSubmit} onReset={handleReset} aria-label={ariaLabel} noValidate>\n      <LocalExpressionContext.Provider value={localExpressionContext}>\n        <FormField field={schema} onChange={onChange} />\n      </LocalExpressionContext.Provider>\n      <PoweredBy />\n    </form>\n  );\n}\n","import { Button } from './form-fields/Button';\nimport { Checkbox } from './form-fields/Checkbox';\nimport { Checklist } from './form-fields/Checklist';\nimport { Default } from './form-fields/Default';\nimport { Datetime } from './form-fields/Datetime';\nimport { Group } from './form-fields/Group';\nimport { IFrame } from './form-fields/IFrame';\nimport { Image } from './form-fields/Image';\nimport { Numberfield } from './form-fields/Number';\nimport { Radio } from './form-fields/Radio';\nimport { Select } from './form-fields/Select';\nimport { Separator } from './form-fields/Separator';\nimport { Spacer } from './form-fields/Spacer';\nimport { DynamicList } from './form-fields/DynamicList';\nimport { Taglist } from './form-fields/Taglist';\nimport { Text } from './form-fields/Text';\nimport { Html } from './form-fields/Html';\nimport { ExpressionField } from './form-fields/ExpressionField';\nimport { Textfield } from './form-fields/Textfield';\nimport { Textarea } from './form-fields/Textarea';\nimport { Table } from './form-fields/Table';\nimport { FilePicker } from './form-fields/FilePicker';\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').ElementLike} ElementLike\n *\n * @typedef {import('../core/EventBus').default} EventBus\n * @typedef {import('./CommandHandler').default} CommandHandler\n *\n * @typedef { any } CommandContext\n * @typedef { {\n *   new (...args: any[]) : CommandHandler\n * } } CommandHandlerConstructor\n * @typedef { {\n *   [key: string]: CommandHandler;\n * } } CommandHandlerMap\n * @typedef { {\n *   command: string;\n *   context: any;\n *   id?: any;\n * } } CommandStackAction\n * @typedef { {\n *   actions: CommandStackAction[];\n *   dirty: ElementLike[];\n *   trigger: 'execute' | 'undo' | 'redo' | 'clear' | null;\n *   atomic?: boolean;\n * } } CurrentExecution\n */\n\n/**\n * A service that offers un- and redoable execution of commands.\n *\n * The command stack is responsible for executing modeling actions\n * in a un- and redoable manner. To do this it delegates the actual\n * command execution to {@link CommandHandler}s.\n *\n * Command handlers provide {@link CommandHandler#execute(ctx)} and\n * {@link CommandHandler#revert(ctx)} methods to un- and redo a command\n * identified by a command context.\n *\n *\n * ## Life-Cycle events\n *\n * In the process the command stack fires a number of life-cycle events\n * that other components to participate in the command execution.\n *\n *    * preExecute\n *    * preExecuted\n *    * execute\n *    * executed\n *    * postExecute\n *    * postExecuted\n *    * revert\n *    * reverted\n *\n * A special event is used for validating, whether a command can be\n * performed prior to its execution.\n *\n *    * canExecute\n *\n * Each of the events is fired as `commandStack.{eventName}` and\n * `commandStack.{commandName}.{eventName}`, respectively. This gives\n * components fine grained control on where to hook into.\n *\n * The event object fired transports `command`, the name of the\n * command and `context`, the command context.\n *\n *\n * ## Creating Command Handlers\n *\n * Command handlers should provide the {@link CommandHandler#execute(ctx)}\n * and {@link CommandHandler#revert(ctx)} methods to implement\n * redoing and undoing of a command.\n *\n * A command handler _must_ ensure undo is performed properly in order\n * not to break the undo chain. It must also return the shapes that\n * got changed during the `execute` and `revert` operations.\n *\n * Command handlers may execute other modeling operations (and thus\n * commands) in their `preExecute(d)` and `postExecute(d)` phases. The command\n * stack will properly group all commands together into a logical unit\n * that may be re- and undone atomically.\n *\n * Command handlers must not execute other commands from within their\n * core implementation (`execute`, `revert`).\n *\n *\n * ## Change Tracking\n *\n * During the execution of the CommandStack it will keep track of all\n * elements that have been touched during the command's execution.\n *\n * At the end of the CommandStack execution it will notify interested\n * components via an 'elements.changed' event with all the dirty\n * elements.\n *\n * The event can be picked up by components that are interested in the fact\n * that elements have been changed. One use case for this is updating\n * their graphical representation after moving / resizing or deletion.\n *\n * @see CommandHandler\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nexport default function CommandStack(eventBus, injector) {\n\n  /**\n   * A map of all registered command handlers.\n   *\n   * @type {CommandHandlerMap}\n   */\n  this._handlerMap = {};\n\n  /**\n   * A stack containing all re/undoable actions on the diagram\n   *\n   * @type {CommandStackAction[]}\n   */\n  this._stack = [];\n\n  /**\n   * The current index on the stack\n   *\n   * @type {number}\n   */\n  this._stackIdx = -1;\n\n  /**\n   * Current active commandStack execution\n   *\n   * @type {CurrentExecution}\n   */\n  this._currentExecution = {\n    actions: [],\n    dirty: [],\n    trigger: null\n  };\n\n  /**\n   * @type {Injector}\n   */\n  this._injector = injector;\n\n  /**\n   * @type EventBus\n   */\n  this._eventBus = eventBus;\n\n  /**\n   * @type { number }\n   */\n  this._uid = 1;\n\n  eventBus.on([\n    'diagram.destroy',\n    'diagram.clear'\n  ], function() {\n    this.clear(false);\n  }, this);\n}\n\nCommandStack.$inject = [ 'eventBus', 'injector' ];\n\n\n/**\n * Execute a command.\n *\n * @param {string} command The command to execute.\n * @param {CommandContext} context The context with which to execute the command.\n */\nCommandStack.prototype.execute = function(command, context) {\n  if (!command) {\n    throw new Error('command required');\n  }\n\n  this._currentExecution.trigger = 'execute';\n\n  const action = { command: command, context: context };\n\n  this._pushAction(action);\n  this._internalExecute(action);\n  this._popAction();\n};\n\n\n/**\n * Check whether a command can be executed.\n *\n * Implementors may hook into the mechanism on two ways:\n *\n *   * in event listeners:\n *\n *     Users may prevent the execution via an event listener.\n *     It must prevent the default action for `commandStack.(<command>.)canExecute` events.\n *\n *   * in command handlers:\n *\n *     If the method {@link CommandHandler#canExecute} is implemented in a handler\n *     it will be called to figure out whether the execution is allowed.\n *\n * @param {string} command The command to execute.\n * @param {CommandContext} context The context with which to execute the command.\n *\n * @return {boolean} Whether the command can be executed with the given context.\n */\nCommandStack.prototype.canExecute = function(command, context) {\n\n  const action = { command: command, context: context };\n\n  const handler = this._getHandler(command);\n\n  let result = this._fire(command, 'canExecute', action);\n\n  // handler#canExecute will only be called if no listener\n  // decided on a result already\n  if (result === undefined) {\n    if (!handler) {\n      return false;\n    }\n\n    if (handler.canExecute) {\n      result = handler.canExecute(context);\n    }\n  }\n\n  return result;\n};\n\n\n/**\n * Clear the command stack, erasing all undo / redo history.\n *\n * @param {boolean} [emit=true] Whether to fire an event. Defaults to `true`.\n */\nCommandStack.prototype.clear = function(emit) {\n  this._stack.length = 0;\n  this._stackIdx = -1;\n\n  if (emit !== false) {\n    this._fire('changed', { trigger: 'clear' });\n  }\n};\n\n\n/**\n * Undo last command(s)\n */\nCommandStack.prototype.undo = function() {\n  let action = this._getUndoAction(),\n      next;\n\n  if (action) {\n    this._currentExecution.trigger = 'undo';\n\n    this._pushAction(action);\n\n    while (action) {\n      this._internalUndo(action);\n      next = this._getUndoAction();\n\n      if (!next || next.id !== action.id) {\n        break;\n      }\n\n      action = next;\n    }\n\n    this._popAction();\n  }\n};\n\n\n/**\n * Redo last command(s)\n */\nCommandStack.prototype.redo = function() {\n  let action = this._getRedoAction(),\n      next;\n\n  if (action) {\n    this._currentExecution.trigger = 'redo';\n\n    this._pushAction(action);\n\n    while (action) {\n      this._internalExecute(action, true);\n      next = this._getRedoAction();\n\n      if (!next || next.id !== action.id) {\n        break;\n      }\n\n      action = next;\n    }\n\n    this._popAction();\n  }\n};\n\n\n/**\n * Register a handler instance with the command stack.\n *\n * @param {string} command Command to be executed.\n * @param {CommandHandler} handler Handler to execute the command.\n */\nCommandStack.prototype.register = function(command, handler) {\n  this._setHandler(command, handler);\n};\n\n\n/**\n * Register a handler type with the command stack  by instantiating it and\n * injecting its dependencies.\n *\n * @param {string} command Command to be executed.\n * @param {CommandHandlerConstructor} handlerCls Constructor to instantiate a {@link CommandHandler}.\n */\nCommandStack.prototype.registerHandler = function(command, handlerCls) {\n\n  if (!command || !handlerCls) {\n    throw new Error('command and handlerCls must be defined');\n  }\n\n  const handler = this._injector.instantiate(handlerCls);\n  this.register(command, handler);\n};\n\n/**\n * @return {boolean}\n */\nCommandStack.prototype.canUndo = function() {\n  return !!this._getUndoAction();\n};\n\n/**\n * @return {boolean}\n */\nCommandStack.prototype.canRedo = function() {\n  return !!this._getRedoAction();\n};\n\n// stack access  //////////////////////\n\nCommandStack.prototype._getRedoAction = function() {\n  return this._stack[this._stackIdx + 1];\n};\n\n\nCommandStack.prototype._getUndoAction = function() {\n  return this._stack[this._stackIdx];\n};\n\n\n// internal functionality //////////////////////\n\nCommandStack.prototype._internalUndo = function(action) {\n  const command = action.command,\n        context = action.context;\n\n  const handler = this._getHandler(command);\n\n  // guard against illegal nested command stack invocations\n  this._atomicDo(() => {\n    this._fire(command, 'revert', action);\n\n    if (handler.revert) {\n      this._markDirty(handler.revert(context));\n    }\n\n    this._revertedAction(action);\n\n    this._fire(command, 'reverted', action);\n  });\n};\n\n\nCommandStack.prototype._fire = function(command, qualifier, event) {\n  if (arguments.length < 3) {\n    event = qualifier;\n    qualifier = null;\n  }\n\n  const names = qualifier ? [ command + '.' + qualifier, qualifier ] : [ command ];\n  let result;\n\n  event = this._eventBus.createEvent(event);\n\n  for (const name of names) {\n    result = this._eventBus.fire('commandStack.' + name, event);\n\n    if (event.cancelBubble) {\n      break;\n    }\n  }\n\n  return result;\n};\n\nCommandStack.prototype._createId = function() {\n  return this._uid++;\n};\n\nCommandStack.prototype._atomicDo = function(fn) {\n\n  const execution = this._currentExecution;\n\n  execution.atomic = true;\n\n  try {\n    fn();\n  } finally {\n    execution.atomic = false;\n  }\n};\n\nCommandStack.prototype._internalExecute = function(action, redo) {\n  const command = action.command,\n        context = action.context;\n\n  const handler = this._getHandler(command);\n\n  if (!handler) {\n    throw new Error('no command handler registered for <' + command + '>');\n  }\n\n  this._pushAction(action);\n\n  if (!redo) {\n    this._fire(command, 'preExecute', action);\n\n    if (handler.preExecute) {\n      handler.preExecute(context);\n    }\n\n    this._fire(command, 'preExecuted', action);\n  }\n\n  // guard against illegal nested command stack invocations\n  this._atomicDo(() => {\n\n    this._fire(command, 'execute', action);\n\n    if (handler.execute) {\n\n      // actual execute + mark return results as dirty\n      this._markDirty(handler.execute(context));\n    }\n\n    // log to stack\n    this._executedAction(action, redo);\n\n    this._fire(command, 'executed', action);\n  });\n\n  if (!redo) {\n    this._fire(command, 'postExecute', action);\n\n    if (handler.postExecute) {\n      handler.postExecute(context);\n    }\n\n    this._fire(command, 'postExecuted', action);\n  }\n\n  this._popAction();\n};\n\n\nCommandStack.prototype._pushAction = function(action) {\n\n  const execution = this._currentExecution,\n        actions = execution.actions;\n\n  const baseAction = actions[0];\n\n  if (execution.atomic) {\n    throw new Error('illegal invocation in <execute> or <revert> phase (action: ' + action.command + ')');\n  }\n\n  if (!action.id) {\n    action.id = (baseAction && baseAction.id) || this._createId();\n  }\n\n  actions.push(action);\n};\n\n\nCommandStack.prototype._popAction = function() {\n  const execution = this._currentExecution,\n        trigger = execution.trigger,\n        actions = execution.actions,\n        dirty = execution.dirty;\n\n  actions.pop();\n\n  if (!actions.length) {\n    this._eventBus.fire('elements.changed', { elements: uniqueBy('id', dirty.reverse()) });\n\n    dirty.length = 0;\n\n    this._fire('changed', { trigger: trigger });\n\n    execution.trigger = null;\n  }\n};\n\n\nCommandStack.prototype._markDirty = function(elements) {\n  const execution = this._currentExecution;\n\n  if (!elements) {\n    return;\n  }\n\n  elements = isArray(elements) ? elements : [ elements ];\n\n  execution.dirty = execution.dirty.concat(elements);\n};\n\n\nCommandStack.prototype._executedAction = function(action, redo) {\n  const stackIdx = ++this._stackIdx;\n\n  if (!redo) {\n    this._stack.splice(stackIdx, this._stack.length, action);\n  }\n};\n\n\nCommandStack.prototype._revertedAction = function(action) {\n  this._stackIdx--;\n};\n\n\nCommandStack.prototype._getHandler = function(command) {\n  return this._handlerMap[command];\n};\n\nCommandStack.prototype._setHandler = function(command, handler) {\n  if (!command || !handler) {\n    throw new Error('command and handler required');\n  }\n\n  if (this._handlerMap[command]) {\n    throw new Error('overriding handler for command <' + command + '>');\n  }\n\n  this._handlerMap[command] = handler;\n};\n","import CommandStack from './CommandStack';\n\n/**\n * @type { import('didi').ModuleDeclaration }\n */\nexport default {\n  commandStack: [ 'type', CommandStack ]\n};\n","import { set } from 'min-dash';\nimport { clone } from '../../../util';\n\n/**\n * @deprecated\n */\nexport class UpdateFieldValidationHandler {\n  constructor(form, validator) {\n    this._form = form;\n    this._validator = validator;\n  }\n\n  execute(context) {\n    const { field, value, indexes } = context;\n    const { errors } = this._form._getState();\n\n    context.oldErrors = clone(errors);\n\n    const fieldErrors = this._validator.validateField(field, value);\n    const updatedErrors = set(\n      errors,\n      [field.id, ...Object.values(indexes || {})],\n      fieldErrors.length ? fieldErrors : undefined,\n    );\n    this._form._setState({ errors: updatedErrors });\n  }\n\n  revert(context) {\n    this._form._setState({ errors: context.oldErrors });\n  }\n}\n\nUpdateFieldValidationHandler.$inject = ['form', 'validator'];\n","import { set } from 'min-dash';\nimport { clone, 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 { 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 dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n    const values = get(data, dataPath) || [];\n\n    const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n    const collapseEnabled = !repeaterField.disableCollapse && values.length > nonCollapsedItems;\n    const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n    const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n    const showAdd = repeaterField.allowAddRemove && hasChildren;\n\n    const toggle = () => {\n      setSharedRepeatState((state) => ({ ...state, isCollapsed: !isCollapsed }));\n    };\n\n    const shouldScroll = useRef(false);\n\n    const onAddItem = () => {\n      const updatedValues = values.slice();\n      const newItem = this._form._getInitializedFieldData(this._form._getState().data, {\n        container: repeaterField,\n        indexes: { ...indexes, [repeaterField.id]: updatedValues.length },\n      });\n\n      updatedValues.push(newItem);\n\n      shouldScroll.current = true;\n\n      this._eventBus.fire('repeatRenderManager.add', { dataPath, index: updatedValues.length - 1, item: newItem });\n\n      props.onChange({\n        value: updatedValues,\n      });\n\n      setSharedRepeatState((state) => ({ ...state, isCollapsed: false }));\n    };\n\n    useScrollIntoView(\n      addButtonRef,\n      [values.length],\n      {\n        align: 'bottom',\n        behavior: 'auto',\n        offset: 20,\n      },\n      [shouldScroll],\n    );\n\n    return (\n      <div\n        className={classNames('fjs-repeat-render-footer', {\n          'fjs-remove-allowed': repeaterField.allowAddRemove,\n        })}>\n        {showAdd ? (\n          <button\n            type=\"button\"\n            readOnly={readonly}\n            disabled={disabled || readonly}\n            class=\"fjs-repeat-render-add\"\n            ref={addButtonRef}\n            onClick={onAddItem}>\n            <>\n              <AddSvg /> {'Add new'}\n            </>\n          </button>\n        ) : null}\n        {collapseEnabled ? (\n          <button type=\"button\" class=\"fjs-repeat-render-collapse\" onClick={toggle}>\n            {isCollapsed ? (\n              <>\n                <ExpandSvg /> {`Expand all (${values.length - 1})`}\n              </>\n            ) : (\n              <>\n                <CollapseSvg /> {'Collapse'}\n              </>\n            )}\n          </button>\n        ) : null}\n      </div>\n    );\n  }\n\n  _getNonCollapsedItems(field) {\n    const DEFAULT_NON_COLLAPSED_ITEMS = 5;\n\n    const { nonCollapsedItems } = field;\n\n    return nonCollapsedItems ? nonCollapsedItems : DEFAULT_NON_COLLAPSED_ITEMS;\n  }\n}\n\n/**\n * Individual repetition of a repeated field and context scaffolding.\n *\n * @param {Object} props\n * @param {number} props.itemIndex\n * @param {Object} props.itemValue\n * @param {Object} props.parentExpressionContextInfo\n * @param {Object} props.repeaterField\n * @param {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 T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\n/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template {keyof EventMap} EventName\n *\n * @param {EventName} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<EventMap[EventName]>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n  events = isArray(events) ? events : [ events ];\n\n  if (isFunction(priority)) {\n    that = callback;\n    callback = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  if (!isNumber(priority)) {\n    throw new Error('priority must be a number');\n  }\n\n  var actualCallback = callback;\n\n  if (that) {\n    actualCallback = bind(callback, that);\n\n    // make sure we remember and are able to remove\n    // bound callbacks via {@link #off} using the original\n    // callback\n    actualCallback[FN_REF] = callback[FN_REF] || callback;\n  }\n\n  var self = this;\n\n  events.forEach(function(e) {\n    self._addListener(e, {\n      priority: priority,\n      callback: actualCallback,\n      next: null\n    });\n  });\n};\n\n/**\n * @overlord\n *\n * Register an event listener that is called only once.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] the listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\n/**\n * Register an event listener that is called only once.\n *\n * @template {keyof EventMap} EventName\n *\n * @param {EventName} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<EventMap[EventName]>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.once = function(events, priority, callback, that) {\n  var self = this;\n\n  if (isFunction(priority)) {\n    that = callback;\n    callback = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  if (!isNumber(priority)) {\n    throw new Error('priority must be a number');\n  }\n\n  function wrappedCallback() {\n    wrappedCallback.__isTomb = true;\n\n    var result = callback.apply(that, arguments);\n\n    self.off(events, wrappedCallback);\n\n    return result;\n  }\n\n  // make sure we remember and are able to remove\n  // bound callbacks via {@link #off} using the original\n  // callback\n  wrappedCallback[FN_REF] = callback;\n\n  this.on(events, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|string[]} events\n * @param {EventBusEventCallback<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) {\n    this._expressionLanguage = expressionLanguage;\n    this._conditionChecker = conditionChecker;\n    this._form = form;\n    this._formFieldRegistry = formFieldRegistry;\n  }\n\n  /**\n   * Validate against a field definition, does not support proper expression evaluation.\n   *\n   * @deprecated use validateFieldInstance instead\n   */\n  validateField(field, value) {\n    const { type, validate } = field;\n\n    let errors = [];\n\n    if (type === 'number') {\n      errors = [...errors, ...runNumberValidation(field, value)];\n    }\n\n    if (!validate) {\n      return errors;\n    }\n\n    const evaluatedValidation = oldEvaluateFEELValues(\n      validate,\n      this._expressionLanguage,\n      this._conditionChecker,\n      this._form,\n    );\n\n    errors = [...errors, ...runPresetValidation(field, evaluatedValidation, value)];\n\n    return errors;\n  }\n\n  /**\n   * Validate a field instance.\n   *\n   * @param {Object} fieldInstance\n   * @param {string} value\n   *\n   * @returns {Array<string>}\n   */\n  validateFieldInstance(fieldInstance, value) {\n    const { id, expressionContextInfo } = fieldInstance;\n\n    const field = this._formFieldRegistry.get(id);\n\n    if (!field) {\n      return [];\n    }\n\n    const { type, validate } = field;\n\n    let errors = [];\n\n    if (type === 'number') {\n      errors = [...errors, ...runNumberValidation(field, value)];\n    }\n\n    if (!validate) {\n      return errors;\n    }\n\n    const evaluatedValidation = evaluateFEELValues(validate, this._expressionLanguage, expressionContextInfo);\n\n    errors = [...errors, ...runPresetValidation(field, evaluatedValidation, value)];\n\n    return errors;\n  }\n}\n\nValidator.$inject = ['expressionLanguage', 'conditionChecker', 'form', 'formFieldRegistry'];\n\n// helpers //////////\n\nfunction runNumberValidation(field, value) {\n  const { decimalDigits, increment } = field;\n  const errors = [];\n\n  if (value === 'NaN') {\n    errors.push('Value is not a number.');\n  } else if (value) {\n    if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\n      errors.push(\n        'Value is expected to ' +\n          (decimalDigits === 0\n            ? 'be an integer'\n            : `have at most ${decimalDigits} decimal digit${decimalDigits > 1 ? 's' : ''}`) +\n          '.',\n      );\n    }\n\n    if (increment) {\n      const bigValue = Big(value);\n      const bigIncrement = Big(increment);\n\n      const offset = bigValue.mod(bigIncrement);\n\n      if (offset.cmp(0) !== 0) {\n        const previousValue = bigValue.minus(offset);\n        const nextValue = previousValue.plus(bigIncrement);\n\n        errors.push(`Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`);\n      }\n    }\n  }\n\n  return errors;\n}\n\nfunction runPresetValidation(field, validation, value) {\n  const errors = [];\n\n  if (validation.pattern && value && !new RegExp(validation.pattern).test(value)) {\n    errors.push(validation.patternErrorMessage || `Field must match pattern ${validation.pattern}.`);\n  }\n\n  if (validation.required) {\n    const isUncheckedCheckbox = field.type === 'checkbox' && value === false;\n    const isUnsetValue = isNil(value) || value === '';\n    const isEmptyMultiselect = Array.isArray(value) && value.length === 0;\n\n    if (isUncheckedCheckbox || isUnsetValue || isEmptyMultiselect) {\n      errors.push('Field is required.');\n    }\n  }\n\n  if ('min' in validation && (value || value === 0)) {\n    try {\n      if (Big(value).lt(Big(validation.min))) {\n        errors.push(`Field must have minimum value of ${validation.min}.`);\n      }\n    } catch {\n      errors.push('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(`Field must have maximum value of ${validation.max}.`);\n      }\n    } catch {\n      errors.push('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(`Field must have minimum length of ${validation.minLength}.`);\n  }\n\n  if ('maxLength' in validation && value && value.trim().length > validation.maxLength) {\n    errors.push(`Field must have maximum length of ${validation.maxLength}.`);\n  }\n\n  if ('validationType' in validation && value && validation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\n    errors.push('Field must be a valid  international phone number. (e.g. +4930664040900)');\n  }\n\n  if ('validationType' in validation && value && validation.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\n    errors.push('Field must be a valid email.');\n  }\n\n  return errors;\n}\n\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\nexport class FieldFactory {\n  /**\n   * @constructor\n   *\n   * @param  formFieldRegistry\n   * @param  formFields\n   */\n  constructor(formFieldRegistry, pathRegistry, formFields) {\n    this._formFieldRegistry = formFieldRegistry;\n    this._pathRegistry = pathRegistry;\n    this._formFields = formFields;\n  }\n\n  create(attrs, isNewField = true) {\n    const { id, type, key, path, _parent } = attrs;\n\n    const fieldDefinition = this._formFields.get(type);\n\n    if (!fieldDefinition) {\n      throw new Error(`form field of type <${type}> not supported`);\n    }\n\n    const { config } = fieldDefinition;\n\n    if (!config) {\n      throw new Error(`form field of type <${type}> has no config`);\n    }\n\n    if (id && this._formFieldRegistry._ids.assigned(id)) {\n      throw new Error(`form field with id <${id}> already exists`);\n    }\n\n    // ensure that we can claim the path\n\n    const parent = _parent && this._formFieldRegistry.get(_parent);\n    const parentPath = (parent && this._pathRegistry.getValuePath(parent)) || [];\n    const knownAncestorIds = getAncestryList(_parent, this._formFieldRegistry);\n\n    if (\n      config.keyed &&\n      key &&\n      !this._pathRegistry.canClaimPath([...parentPath, ...key.split('.')], {\n        isClosed: true,\n        knownAncestorIds,\n      })\n    ) {\n      throw new Error(`binding path '${[...parentPath, key].join('.')}' is already claimed`);\n    }\n\n    if (\n      config.pathed &&\n      path &&\n      !this._pathRegistry.canClaimPath([...parentPath, ...path.split('.')], {\n        isRepeatable: config.repeatable,\n        knownAncestorIds,\n      })\n    ) {\n      throw new Error(`binding path '${[...parentPath, ...path.split('.')].join('.')}' is already claimed`);\n    }\n\n    const field = config.create(\n      {\n        ...(config.label ? { label: config.label } : {}),\n        ...attrs,\n      },\n      isNewField,\n    );\n\n    this._ensureId(field);\n\n    if (config.keyed) {\n      this._ensureKey(field);\n      this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), {\n        isClosed: true,\n        claimerId: field.id,\n        knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry),\n      });\n    }\n\n    if (config.pathed) {\n      if (config.repeatable) {\n        this._enforceDefaultPath(field);\n      }\n\n      this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), {\n        isRepeatable: config.repeatable,\n        claimerId: field.id,\n        knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry),\n      });\n    }\n\n    return field;\n  }\n\n  _ensureId(field) {\n    if (field.id) {\n      this._formFieldRegistry._ids.claim(field.id, field);\n\n      return;\n    }\n\n    let prefix = 'Field';\n\n    if (field.type === 'default') {\n      prefix = 'Form';\n    }\n\n    field.id = this._formFieldRegistry._ids.nextPrefixed(`${prefix}_`, field);\n  }\n\n  _ensureKey(field) {\n    if (!field.key) {\n      field.key = this._getUniqueKeyPath(field);\n    }\n  }\n\n  _enforceDefaultPath(field) {\n    if (!field.path) {\n      field.path = this._getUniqueKeyPath(field);\n    }\n  }\n\n  _getUniqueKeyPath(field) {\n    let random;\n    const parent = this._formFieldRegistry.get(field._parent);\n\n    // ensure key uniqueness at level\n    do {\n      random = Math.random().toString(36).substring(7);\n    } while (parent && parent.components.some((child) => child.key === random));\n\n    return `${field.type}_${random}`;\n  }\n}\n\nFieldFactory.$inject = ['formFieldRegistry', 'pathRegistry', 'formFields'];\n","import { isArray } from 'min-dash';\nimport { clone, getAncestryList } from '../util';\n\n/**\n * The PathRegistry class manages a hierarchical structure of paths associated with form fields.\n * It enables claiming, unclaiming, and validating paths within this structure.\n *\n * Example Tree Structure:\n *\n *   [\n *     {\n *       segment: 'root',\n *       claimCount: 1,\n *       children: [\n *         {\n *           segment: 'child1',\n *           claimCount: 2,\n *           children: null  // A leaf node (closed path)\n *         },\n *         {\n *           segment: 'child2',\n *           claimCount: 1,\n *           children: [\n *             {\n *               segment: 'subChild1',\n *               claimCount: 1,\n *               children: []  // An open node (open path)\n *             }\n *           ]\n *         }\n *       ]\n *     }\n *   ]\n */\nexport class PathRegistry {\n  constructor(formFieldRegistry, formFields, injector) {\n    this._formFieldRegistry = formFieldRegistry;\n    this._formFields = formFields;\n    this._injector = injector;\n    this._dataPaths = [];\n  }\n\n  canClaimPath(path, options = {}) {\n    const {\n      isClosed = false,\n      isRepeatable = false,\n      skipAncestryCheck = false,\n      claimerId = null,\n      knownAncestorIds = [],\n    } = options;\n\n    let node = { children: this._dataPaths };\n\n    // (1) if we reach a leaf node, we cannot claim it, if we reach an open node, we can\n    // if we reach a repeatable node, we need to ensure that the claimer is (or will be) an ancestor of the repeater\n    for (const segment of path) {\n      node = _getNextSegment(node, segment);\n\n      if (!node) {\n        return true;\n      }\n\n      if (node.isRepeatable && !skipAncestryCheck) {\n        if (!(claimerId || knownAncestorIds.length)) {\n          throw new Error(\n            'cannot claim a path that contains a repeater without specifying a claimerId or knownAncestorIds',\n          );\n        }\n\n        const isValidRepeatClaim =\n          knownAncestorIds.includes(node.repeaterId) ||\n          (claimerId && getAncestryList(claimerId, this._formFieldRegistry).includes(node.repeaterId));\n\n        if (!isValidRepeatClaim) {\n          return false;\n        }\n      }\n\n      if (node.children === null) {\n        return false;\n      }\n    }\n\n    // (2) if the path lands in the middle of the tree, we can only claim an open, non-repeatable path\n    return !(isClosed || isRepeatable);\n  }\n\n  claimPath(path, options = {}) {\n    const { isClosed = false, isRepeatable = false, claimerId = null, knownAncestorIds = [] } = options;\n\n    if (!this.canClaimPath(path, { isClosed, isRepeatable, claimerId, knownAncestorIds })) {\n      throw new Error(`cannot claim path '${path.join('.')}'`);\n    }\n\n    let node = { children: this._dataPaths };\n\n    for (const segment of path) {\n      let child = _getNextSegment(node, segment);\n\n      if (!child) {\n        child = { segment, claimCount: 1, children: [] };\n        node.children.push(child);\n      } else {\n        child.claimCount++;\n      }\n\n      node = child;\n    }\n\n    if (isClosed) {\n      node.children = null;\n    }\n\n    // add some additional info when we make a repeatable path claim\n    if (isRepeatable) {\n      node.isRepeatable = true;\n      node.repeaterId = claimerId;\n    }\n  }\n\n  unclaimPath(path) {\n    // verification Pass\n    let node = { children: this._dataPaths };\n    for (const segment of path) {\n      const child = _getNextSegment(node, segment);\n      if (!child) {\n        throw new Error(`no open path found for '${path.join('.')}'`);\n      }\n      node = child;\n    }\n\n    // mutation Pass\n    node = { children: this._dataPaths };\n    for (const segment of path) {\n      const child = _getNextSegment(node, segment);\n\n      child.claimCount--;\n\n      if (child.claimCount === 0) {\n        node.children.splice(node.children.indexOf(child), 1);\n        break; // Abort early if claimCount reaches zero\n      }\n\n      node = child;\n    }\n  }\n\n  /**\n   * Applies a function (fn) recursively on a given field and its children.\n   *\n   * - `field`: Starting field object.\n   * - `fn`: Function to apply.\n   * - `context`: Optional object for passing data between calls.\n   *\n   * Stops early if `fn` returns `false`. Useful for traversing the form field tree.\n   *\n   * @returns {boolean} Success status based on function execution.\n   */\n  executeRecursivelyOnFields(field, fn, context = {}) {\n    let result = true;\n\n    const formFieldConfig = this._formFields.get(field.type).config;\n\n    if (formFieldConfig.keyed) {\n      const callResult = fn({ field, isClosed: true, isRepeatable: false, context });\n      return result && callResult;\n    } else if (formFieldConfig.pathed) {\n      const callResult = fn({ field, isClosed: false, isRepeatable: formFieldConfig.repeatable, context });\n      result = result && callResult;\n    }\n\n    // stop executing if false is specifically returned or if preventing recursion\n    if (result === false || context.preventRecursion) {\n      return result;\n    }\n\n    if (Array.isArray(field.components)) {\n      for (const child of field.components) {\n        const callResult = this.executeRecursivelyOnFields(child, fn, clone(context));\n        result = result && callResult;\n\n        // stop executing if false is specifically returned\n        if (result === false) {\n          return result;\n        }\n      }\n    }\n\n    return result;\n  }\n\n  /**\n   * Generates an array representing the binding path to an underlying data object for a form field.\n   *\n   * @param {Object} field - The field object with properties: `key`, `path`, `id`, and optionally `_parent`.\n   * @param {Object} [options={}] - Configuration options.\n   * @param {Object} [options.replacements={}] - A map of field IDs to alternative path arrays.\n   * @param {Object} [options.indexes=null] - A map of parent IDs to the index of the field within said parent, leave null to get an unindexed path.\n   * @param {Object} [options.cutoffNode] - The ID of the parent field at which to stop generating the path.\n   *\n   * @returns {(Array<string>|undefined)} An array of strings representing the binding path, or undefined if not determinable.\n   */\n  getValuePath(field, options = {}) {\n    const { replacements = {}, indexes = null, cutoffNode = null } = options;\n\n    let localValuePath = [];\n\n    const hasReplacement = Object.prototype.hasOwnProperty.call(replacements, field.id);\n    const formFieldConfig = this._formFields.get(field.type).config;\n\n    // uses path overrides instead of true path to calculate a potential value path\n    if (hasReplacement) {\n      const replacement = replacements[field.id];\n\n      if (replacement === null || replacement === undefined || replacement === '') {\n        localValuePath = [];\n      } else if (typeof replacement === 'string') {\n        localValuePath = replacement.split('.');\n      } else if (Array.isArray(replacement)) {\n        localValuePath = replacement;\n      } else {\n        throw new Error(`replacements for field ${field.id} must be a string, array or null/undefined`);\n      }\n    } else if (formFieldConfig.keyed) {\n      localValuePath = field.key.split('.');\n    } else if (formFieldConfig.pathed && field.path) {\n      localValuePath = field.path.split('.');\n    }\n\n    // add potential indexes of repeated fields\n    if (indexes) {\n      localValuePath = this._addIndexes(localValuePath, field, indexes);\n    }\n\n    // if parent exists and isn't cutoff node, add parent's value path\n    if (field._parent && field._parent !== cutoffNode) {\n      const parent = this._formFieldRegistry.get(field._parent);\n      return [...(this.getValuePath(parent, options) || []), ...localValuePath];\n    }\n\n    return localValuePath;\n  }\n\n  clear() {\n    this._dataPaths = [];\n  }\n\n  _addIndexes(localValuePath, field, indexes) {\n    const repeatRenderManager = this._injector.get('repeatRenderManager', false);\n\n    if (repeatRenderManager && repeatRenderManager.isFieldRepeating(field._parent)) {\n      return [indexes[field._parent], ...localValuePath];\n    }\n\n    return localValuePath;\n  }\n}\n\nconst _getNextSegment = (node, segment) => {\n  if (isArray(node.children)) {\n    return node.children.find((node) => node.segment === segment) || null;\n  }\n  return null;\n};\n\nPathRegistry.$inject = ['formFieldRegistry', 'formFields', 'injector'];\n","import { Ids } from 'ids';\n\nimport { groupBy } from 'min-dash';\n\n/**\n * @typedef { { id: String, components: Array<String> } } FormRow\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\n */\n\n/**\n * Maintains the Form layout in a given structure, for example\n *\n *  [\n *    {\n *      formFieldId: 'FormField_1',\n *      rows: [\n *        { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ]  }\n *      ]\n *    }\n *  ]\n *\n */\nexport class FormLayouter {\n  constructor(eventBus) {\n    /** @type Array<FormRows>  */\n    this._rows = [];\n    this._ids = new Ids([32, 36, 1]);\n\n    this._eventBus = eventBus;\n  }\n\n  /**\n   * @param {FormRow} row\n   */\n  addRow(formFieldId, row) {\n    let rowsPerComponent = this._rows.find((r) => r.formFieldId === formFieldId);\n\n    if (!rowsPerComponent) {\n      rowsPerComponent = {\n        formFieldId,\n        rows: [],\n      };\n\n      this._rows.push(rowsPerComponent);\n    }\n\n    rowsPerComponent.rows.push(row);\n  }\n\n  /**\n   * @param {String} id\n   * @returns {FormRow}\n   */\n  getRow(id) {\n    const rows = allRows(this._rows);\n    return rows.find((r) => r.id === id);\n  }\n\n  /**\n   * @param {any} formField\n   * @returns {FormRow}\n   */\n  getRowForField(formField) {\n    return allRows(this._rows).find((r) => {\n      const { components } = r;\n\n      return components.includes(formField.id);\n    });\n  }\n\n  /**\n   * @param {String} formFieldId\n   * @returns { Array<FormRow> }\n   */\n  getRows(formFieldId) {\n    const rowsForField = this._rows.find((r) => formFieldId === r.formFieldId);\n\n    if (!rowsForField) {\n      return [];\n    }\n\n    return rowsForField.rows;\n  }\n\n  /**\n   * @returns {string}\n   */\n  nextRowId() {\n    return this._ids.nextPrefixed('Row_');\n  }\n\n  /**\n   * @param {any} formField\n   */\n  calculateLayout(formField) {\n    const { type, components } = formField;\n\n    if (!['default', 'group', 'dynamiclist'].includes(type) || !components) {\n      return;\n    }\n\n    // (1) calculate rows order (by component order)\n    const rowsInOrder = groupByRow(components, this._ids);\n\n    Object.entries(rowsInOrder).forEach(([id, components]) => {\n      // (2) add fields to rows\n      this.addRow(formField.id, {\n        id: id,\n        components: components.map((c) => c.id),\n      });\n    });\n\n    // (3) traverse through nested components\n    components.forEach((field) => this.calculateLayout(field));\n\n    // (4) fire event to notify interested parties\n    this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\n  }\n\n  clear() {\n    this._rows = [];\n    this._ids.clear();\n\n    // fire event to notify interested parties\n    this._eventBus.fire('form.layoutCleared');\n  }\n}\n\nFormLayouter.$inject = ['eventBus'];\n\n// helpers //////\n\nfunction groupByRow(components, ids) {\n  return groupBy(components, (c) => {\n    // mitigate missing row by creating new (handle legacy)\n    const { layout } = c;\n\n    if (!layout || !layout.row) {\n      return ids.nextPrefixed('Row_');\n    }\n\n    return layout.row;\n  });\n}\n\n/**\n * @param {Array<FormRows>} formRows\n * @returns {Array<FormRow>}\n */\nfunction allRows(formRows) {\n  return formRows.map((r) => r.rows).flat();\n}\n","import { Ids } from 'ids';\n\nexport class FormFieldRegistry {\n  constructor(eventBus) {\n    this._eventBus = eventBus;\n\n    this._formFields = {};\n\n    eventBus.on('form.clear', () => this.clear());\n\n    this._ids = new Ids([32, 36, 1]);\n  }\n\n  add(formField) {\n    const { id } = formField;\n\n    if (this._formFields[id]) {\n      throw new Error(`form field with ID ${id} already exists`);\n    }\n\n    this._eventBus.fire('formField.add', { formField });\n\n    this._formFields[id] = formField;\n  }\n\n  remove(formField) {\n    const { id } = formField;\n\n    if (!this._formFields[id]) {\n      return;\n    }\n\n    this._eventBus.fire('formField.remove', { formField });\n\n    delete this._formFields[id];\n  }\n\n  get(id) {\n    return this._formFields[id];\n  }\n\n  getAll() {\n    return Object.values(this._formFields);\n  }\n\n  getForm() {\n    return this.getAll().find((formField) => formField.type === 'default');\n  }\n\n  forEach(callback) {\n    this.getAll().forEach((formField) => callback(formField));\n  }\n\n  clear() {\n    this._formFields = {};\n\n    this._ids.clear();\n  }\n}\n\nFormFieldRegistry.$inject = ['eventBus'];\n","export class FormFieldInstanceRegistry {\n  constructor(eventBus, formFieldRegistry, formFields) {\n    this._eventBus = eventBus;\n    this._formFieldRegistry = formFieldRegistry;\n    this._formFields = formFields;\n\n    this._formFieldInstances = {};\n\n    eventBus.on('form.clear', () => this.clear());\n  }\n\n  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';\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      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\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":["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","variableName","children","reduce","acc","child","concat","filter","Set","root","index","nodes","initialDepth","accessorDepthInfos","previous","current","extractedVariables","pathNodes","i","currentAccessor","depthOffsets","accumulator","offset","map","depthInfo","some","add","parts","push","reverse","parseTree","stack","iterate","enter","nodeRepresentation","type","slice","to","leave","result","pop","parent","_extractFilterExpressions","flattenedExpressionTree","x","filterTarget","filterExpression","taggedFilterExpression","FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","Error","evaluate","data","error","fire","evaluateUnaryTest","unaryTest","$inject","FeelersTemplating","isTemplate","test","template","expressions","_extractExpressionsWithDepth","_parent_","this","_this_","context","debug","strict","buildDebugString","err","sanitizer","evaluateFeelers","feelersParser","parse","buildSimpleTree","_traverse","n","content","loopExpression","childResults","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","OPTIONS_SOURCES","STATIC","INPUT","EXPRESSION","OPTIONS_SOURCE_DEFAULT","OPTIONS_SOURCES_LABELS","OPTIONS_SOURCES_PATHS","OPTIONS_SOURCES_DEFAULTS","label","getOptionsSource","field","source","values","get","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","forEach","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","key","isNaN","parseInt","pathsEqual","a","b","every","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","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","args","clearTimeout","setTimeout","flushFunc","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isNumber","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","replace","offsetString","inboundOffset","serializeDate","date","LuxonDateTime","fromJSDate","toISODate","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","getFullYear","getMonth","getDate","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","getNullDateTime","isValidDate","isValidTime","toString","padStart","ALLOWED_IMAGE_SRC_PATTERN","ALLOWED_IFRAME_SRC_PATTERN","sanitizeDateTimePickerValue","subtype","hasEqualValue","array","element","sanitizeSingleSelectValue","validValues","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","Numberfield","appearance","increment","incrementValue","prefixAdorner","suffixAdorner","cachedValue","setCachedValue","displayValue","setDisplayValue","debouncedOnChange","flushOnChange","previousCachedValue","setValue","stringValue","replaceAll","outerValueChanged","outerValueEqualsCache","incrementAmount","base","stepFlooredValue","minus","mod","plus","decrement","cmp","onKeyPress","selectionStart","selectionEnd","onPaste","step","AngelUpIcon","AngelDownIcon","serializeToString","Radio","onRadioBlur","onRadioFocus","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","isFilterActive","setIsFilterActive","isEscapeClosed","setIsEscapeClose","searchbarRef","getLabelCorrelation","filteredOptions","pickOption","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","XMarkIcon","SimpleSelect","selectRef","valueLabel","input","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","DynamicList","repeatable","allowAddRemove","defaultRepetitions","SkipLink","onSkip","href","Taglist","hasOptionsLeft","isValidFilteredOption","filterMatches","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","doc","DOMParser","parseFromString","normalize","firstChild","sanitizeNode","innerHTML","nodeType","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","CaretLeftIcon","CaretRightIcon","remainingOptions","isDefined","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","requestInit","getDocumentRequestInit","DocumentRenderer","documentMetadata","documentId","getErrors","URL","canParse","isValidDocument","metadata","PdfRenderer","onError","pdfObjectUrl","setPdfObjectUrl","hasError","setHasError","objectUrl","fetchPdf","response","fetch","ok","blob","createObjectURL","revokeObjectURL","ImageRenderer","imageObjectUrl","setImageObjectUrl","fetchImage","isInViewport","useInViewport","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","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","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","_addIndexes","find","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","submitData","formFieldInstance","initializeFieldDataRecursively","valueData","isUndefined","initializedFieldValue","val","basePath","schemaVersion","createForm","formOptions","then"],"mappings":"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,MAAAA,GAAG,EAAE,IAAI;AACTC,MAAAA,MAAM,EAAE;AACV,KAAC,CAAC;AACJ,EAAA;AACF;AAEAH,gBAAgB,CAAC5mC,OAAO,GAAG,EAAE;;ACjBtB,MAAMgnC,sBAAsB,GAAG;EACpCX,QAAQ,EAAE,CAAC,kBAAkB,CAAC;AAC9BrO,EAAAA,gBAAgB,EAAE,CAAC,MAAM,EAAE4O,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,CAAChoC,QAAQ,EAAEiF,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACgjC,WAAW,GAAG,EAAE;;AAErB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,MAAM,GAAG,EAAE;;AAEhB;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACC,SAAS,GAAG,EAAE;;AAEnB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,iBAAiB,GAAG;AACvBC,IAAAA,OAAO,EAAE,EAAE;AACXC,IAAAA,KAAK,EAAE,EAAE;AACTC,IAAAA,OAAO,EAAE;GACV;;AAED;AACF;AACA;EACE,IAAI,CAACC,SAAS,GAAGvjC,QAAQ;;AAEzB;AACF;AACA;EACE,IAAI,CAAChF,SA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pC,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,SAAS4vC,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE;;AAEpB;AACA;AACA,EAAA,IAAI,CAACpvB,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAACqvB,QAAQ,EAAE,IAAI,CAAC;AACpD;;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;AACAF,QAAQ,CAACnG,SAAS,CAAChpB,EAAE,GAAG,UAASsvB,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAEjEH,MAAM,GAAG9jC,eAAO,CAAC8jC,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE;AAE9C,EAAA,IAAII,kBAAU,CAACH,QAAQ,CAAC,EAAE;AACxBE,IAAAA,IAAI,GAAGD,QAAQ;AACfA,IAAAA,QAAQ,GAAGD,QAAQ;AACnBA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","x_google_ignoreList":[124,125,136]}