@bpmn-io/form-js-viewer 1.21.1 → 1.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","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\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 } from '../../../util';\n\nexport class UpdateFieldInstanceValidationHandler {\n constructor(form, validator) {\n this._form = form;\n this._validator = validator;\n }\n\n execute(context) {\n const { fieldInstance, value } = context;\n const { id, indexes } = fieldInstance;\n const { errors } = this._form._getState();\n\n context.oldErrors = clone(errors);\n\n const fieldErrors = this._validator.validateFieldInstance(fieldInstance, value);\n const updatedErrors = set(\n errors,\n [id, ...Object.values(indexes || {})],\n fieldErrors.length ? fieldErrors : undefined,\n );\n this._form._setState({ errors: updatedErrors });\n }\n\n revert(context) {\n this._form._setState({ errors: context.oldErrors });\n }\n}\n\nUpdateFieldInstanceValidationHandler.$inject = ['form', 'validator'];\n","import { UpdateFieldValidationHandler } from './cmd/UpdateFieldValidationHandler';\nimport { UpdateFieldInstanceValidationHandler } from './cmd/UpdateFieldInstanceValidationHandler';\n\nexport class ViewerCommands {\n constructor(commandStack, eventBus) {\n this._commandStack = commandStack;\n\n eventBus.on('form.init', () => {\n this.registerHandlers();\n });\n }\n\n registerHandlers() {\n Object.entries(this.getHandlers()).forEach(([id, handler]) => {\n this._commandStack.registerHandler(id, handler);\n });\n }\n\n getHandlers() {\n return {\n 'formField.validation.update': UpdateFieldValidationHandler,\n 'formFieldInstance.validation.update': UpdateFieldInstanceValidationHandler,\n };\n }\n\n /**\n * @deprecated\n */\n updateFieldValidation(field, value, indexes) {\n const context = {\n field,\n value,\n indexes,\n };\n\n this._commandStack.execute('formField.validation.update', context);\n }\n\n updateFieldInstanceValidation(fieldInstance, value) {\n const context = {\n fieldInstance,\n value,\n };\n\n this._commandStack.execute('formFieldInstance.validation.update', context);\n }\n}\n\nViewerCommands.$inject = ['commandStack', 'eventBus'];\n","import commandModule from 'diagram-js/lib/command';\n\nimport { ViewerCommands } from './ViewerCommands';\n\nexport const ViewerCommandsModule = {\n __depends__: [commandModule],\n __init__: ['viewerCommands'],\n viewerCommands: ['type', ViewerCommands],\n};\n\nexport { ViewerCommands };\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M2 9h5.5v3.086l-1.293-1.293-.707.707L8 14l2.5-2.5-.707-.707L8.5 12.086V9H14V8H2v1ZM13 2H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Zm0 3H3V3h10v2Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M13 10H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1Zm0 3H3v-2h10v2ZM8.5 3.914l1.293 1.293.707-.707L8 2 5.5 4.5l.707.707L7.5 3.914V7H2v1h12V7H8.5V3.914Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"M8 2c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6Zm0-1C4.15 1 1 4.15 1 8s3.15 7 7 7 7-3.15 7-7-3.15-7-7-7Z\"/><path fill=\"currentColor\" d=\"M12 7.5H8.5V4h-1v3.5H4v1h3.5V12h1V8.5H12v-1Z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><path fill=\"currentColor\" d=\"m12 4.7-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8 12 4.7Z\"/></svg>","// disable react hook rules as the linter is confusing the functional components within a class as class components\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport { get } from 'min-dash';\nimport { useContext, useMemo, useRef } from 'preact/hooks';\nimport { LocalExpressionContext } from '../../render/context/LocalExpressionContext';\n\nimport ExpandSvg from '../../render/components/form-fields/icons/Expand.svg';\nimport CollapseSvg from '../../render/components/form-fields/icons/Collapse.svg';\nimport AddSvg from '../../render/components/form-fields/icons/Add.svg';\nimport DeleteSvg from '../../render/components/form-fields/icons/Delete.svg';\n\nimport { buildExpressionContext } from '../../util';\nimport { useScrollIntoView } from '../../render/hooks';\nimport classNames from 'classnames';\n\nexport class RepeatRenderManager {\n constructor(form, formFields, formFieldRegistry, pathRegistry, eventBus) {\n this._form = form;\n /** @type {import('../../render/FormFields').FormFields} */\n this._formFields = formFields;\n /** @type {import('../../core/FormFieldRegistry').FormFieldRegistry} */\n this._formFieldRegistry = formFieldRegistry;\n /** @type {import('../../core/PathRegistry').PathRegistry} */\n this._pathRegistry = pathRegistry;\n /** @type {import('../../core/EventBus').EventBus} */\n this._eventBus = eventBus;\n this.Repeater = this.Repeater.bind(this);\n this.RepeatFooter = this.RepeatFooter.bind(this);\n }\n\n /**\n * Checks whether a field is currently repeating its children.\n *\n * @param {string} id - The id of the field to check\n * @returns {boolean} - True if repeatable, false otherwise\n */\n isFieldRepeating(id) {\n if (!id) {\n return false;\n }\n\n const formField = this._formFieldRegistry.get(id);\n const formFieldDefinition = this._formFields.get(formField.type);\n return formFieldDefinition.config.repeatable && formField.isRepeating;\n }\n\n Repeater(props) {\n const { RowsRenderer, indexes, useSharedState, ...restProps } = props;\n\n const [sharedRepeatState] = useSharedState;\n\n const { data } = this._form._getState();\n\n const repeaterField = props.field;\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && values.length > nonCollapsedItems;\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showRemove = repeaterField.allowAddRemove && hasChildren;\n\n /**\n * @param {number} index\n */\n const onDeleteItem = (index) => {\n const updatedValues = values.slice();\n const removedItem = updatedValues.splice(index, 1)[0];\n\n this._eventBus.fire('repeatRenderManager.remove', { dataPath, index, item: removedItem });\n\n props.onChange({\n field: repeaterField,\n value: updatedValues,\n indexes,\n });\n };\n\n const parentExpressionContextInfo = useContext(LocalExpressionContext);\n\n return (\n <>\n {values.map((itemValue, itemIndex) => (\n <div\n 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) && value < validation.min) {\n errors.push(`Field must have minimum value of ${validation.min}.`);\n }\n\n if ('max' in validation && (value || value === 0) && value > validation.max) {\n errors.push(`Field must have maximum value of ${validation.max}.`);\n }\n\n if ('minLength' in validation && value && value.trim().length < validation.minLength) {\n errors.push(`Field must have minimum length of ${validation.minLength}.`);\n }\n\n if ('maxLength' in validation && value && value.trim().length > validation.maxLength) {\n errors.push(`Field must have maximum length of ${validation.maxLength}.`);\n }\n\n if ('validationType' in validation && value && validation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\n errors.push('Field must be a valid international phone number. (e.g. +4930664040900)');\n }\n\n if ('validationType' in validation && value && validation.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\n errors.push('Field must be a valid email.');\n }\n\n return errors;\n}\n\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 } from './util';\n\n/**\n * @typedef { import('./types').Injector } Injector\n * @typedef { import('./types').Data } Data\n * @typedef { import('./types').Errors } Errors\n * @typedef { import('./types').Schema } Schema\n * @typedef { import('./types').FormProperties } FormProperties\n * @typedef { import('./types').FormProperty } FormProperty\n * @typedef { import('./types').FormEvent } FormEvent\n * @typedef { import('./types').FormOptions } FormOptions\n *\n * @typedef { {\n * data: Data,\n * initialData: Data,\n * errors: Errors,\n * properties: FormProperties,\n * schema: Schema\n * } } State\n *\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\n */\n\nconst ids = new Ids([32, 36, 1]);\n\n/**\n * The form.\n */\nexport class Form {\n /**\n * @constructor\n * @param {FormOptions} options\n */\n constructor(options = {}) {\n /**\n * @public\n * @type {OnEventType}\n */\n this.on = this._onEvent;\n\n /**\n * @public\n * @type {String}\n */\n this._id = ids.next();\n\n /**\n * @private\n * @type {Element}\n */\n this._container = createFormContainer();\n\n const { container, injector = this._createInjector(options, this._container), properties = {} } = options;\n\n /**\n * @private\n * @type {State}\n */\n this._state = {\n initialData: null,\n data: null,\n properties,\n errors: {},\n schema: null,\n };\n\n this.get = injector.get;\n\n this.invoke = injector.invoke;\n\n this.get('eventBus').fire('form.init');\n\n if (container) {\n this.attachTo(container);\n }\n }\n\n clear() {\n // clear diagram services (e.g. EventBus)\n this._emit('diagram.clear');\n\n // clear form services\n this._emit('form.clear');\n }\n\n /**\n * Destroy the form, removing it from DOM,\n * if attached.\n */\n destroy() {\n // destroy form services\n this.get('eventBus').fire('form.destroy');\n\n // destroy diagram services (e.g. EventBus)\n this.get('eventBus').fire('diagram.destroy');\n\n this._detach(false);\n }\n\n /**\n * Open a form schema with the given initial data.\n *\n * @param {Schema} schema\n * @param {Data} [data]\n *\n * @return Promise<{ warnings: Array<any> }>\n */\n importSchema(schema, data = {}) {\n return new Promise((resolve, reject) => {\n try {\n this.clear();\n\n const { schema: importedSchema, warnings } = this.get('importer').importSchema(schema);\n\n const initializedData = this._getInitializedFieldData(clone(data));\n\n this._setState({\n data: initializedData,\n errors: {},\n schema: importedSchema,\n initialData: clone(initializedData),\n });\n\n this._emit('import.done', { warnings });\n\n return resolve({ warnings });\n } catch (error) {\n this._emit('import.done', {\n error,\n warnings: error.warnings || [],\n });\n\n return reject(error);\n }\n });\n }\n\n /**\n * Submit the form, triggering all field validations.\n *\n * @returns { { data: Data, errors: Errors, files: Map<string, File[]> } }\n */\n submit() {\n const { properties } = this._getState();\n\n if (properties.readOnly || properties.disabled) {\n throw new Error('form is read-only');\n }\n\n this._emit('presubmit');\n\n const data = this._getSubmitData();\n\n const errors = this.validate();\n\n const files = this.get('fileRegistry').getAllFiles();\n\n const result = {\n data,\n errors,\n files,\n };\n\n this._emit('submit', result);\n\n return result;\n }\n\n reset() {\n this._emit('reset');\n\n this._setState({\n data: clone(this._state.initialData),\n errors: {},\n });\n }\n\n /**\n * @returns {Errors}\n */\n validate() {\n const formFieldRegistry = this.get('formFieldRegistry'),\n formFieldInstanceRegistry = this.get('formFieldInstanceRegistry'),\n validator = this.get('validator');\n\n const { data } = this._getState();\n const errors = {};\n\n const getErrorPath = (id, indexes) => [id, ...Object.values(indexes || {})];\n\n formFieldInstanceRegistry.getAllKeyed().forEach((fieldInstance) => {\n const { id, valuePath, indexes } = fieldInstance;\n\n const field = formFieldRegistry.get(id);\n\n // (1) Skip disabled fields\n if (field.disabled) {\n return;\n }\n\n // (2) Validate the field instance\n const value = get(data, valuePath);\n const fieldErrors = validator.validateFieldInstance(fieldInstance, value);\n\n if (fieldErrors.length) {\n set(errors, getErrorPath(field.id, indexes), fieldErrors);\n }\n });\n\n this._setState({ errors });\n\n // @ts-ignore\n return errors;\n }\n\n /**\n * @param {Element|string} parentNode\n */\n attachTo(parentNode) {\n if (!parentNode) {\n throw new Error('parentNode required');\n }\n\n this.detach();\n\n if (isString(parentNode)) {\n parentNode = document.querySelector(parentNode);\n }\n\n const container = this._container;\n\n parentNode.appendChild(container);\n\n this._emit('attach');\n }\n\n detach() {\n this._detach();\n }\n\n /**\n * @private\n *\n * @param {boolean} [emit]\n */\n _detach(emit = true) {\n const container = this._container,\n parentNode = container.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n if (emit) {\n this._emit('detach');\n }\n\n parentNode.removeChild(container);\n }\n\n /**\n * @param {FormProperty} property\n * @param {any} value\n */\n setProperty(property, value) {\n const properties = set(this._getState().properties, [property], value);\n\n this._setState({ properties });\n }\n\n /**\n * @param {FormEvent} type\n * @param {Function} handler\n */\n off(type, handler) {\n this.get('eventBus').off(type, handler);\n }\n\n /**\n * @private\n *\n * @param {FormOptions} options\n * @param {Element} container\n *\n * @returns {Injector}\n */\n _createInjector(options, container) {\n const { modules = this._getModules(), additionalModules = [], ...config } = options;\n\n const enrichedConfig = {\n ...config,\n renderer: {\n container,\n },\n };\n\n return createInjector([\n { config: ['value', enrichedConfig] },\n { form: ['value', this] },\n CoreModule,\n ...modules,\n ...additionalModules,\n ]);\n }\n\n /**\n * @private\n */\n _emit(type, data) {\n this.get('eventBus').fire(type, data);\n }\n\n /**\n * @internal\n *\n * @param { { fieldInstance: any, value: any } } update\n */\n _update(update) {\n const { fieldInstance, value } = update;\n\n const { id, valuePath, indexes } = fieldInstance;\n\n const { data, errors } = this._getState();\n\n const validator = this.get('validator');\n\n const fieldErrors = validator.validateFieldInstance(fieldInstance, value);\n\n set(data, valuePath, value);\n\n set(errors, [id, ...Object.values(indexes || {})], fieldErrors.length ? fieldErrors : undefined);\n\n this._emit('field.updated', update);\n\n this._setState({\n data: clone(data),\n errors: clone(errors),\n });\n }\n\n /**\n * @internal\n */\n _getState() {\n return this._state;\n }\n\n /**\n * @internal\n */\n _setState(state) {\n this._state = {\n ...this._state,\n ...state,\n };\n\n this._emit('changed', this._getState());\n }\n\n /**\n * @internal\n */\n _getModules() {\n return [\n ExpressionLanguageModule,\n ExpressionFieldModule,\n MarkdownRendererModule,\n ViewerCommandsModule,\n RepeatRenderModule,\n ];\n }\n\n /**\n * @internal\n */\n _onEvent(type, priority, handler) {\n this.get('eventBus').on(type, priority, handler);\n }\n\n /**\n * @internal\n */\n _getSubmitData() {\n const formFieldRegistry = this.get('formFieldRegistry');\n const formFieldInstanceRegistry = this.get('formFieldInstanceRegistry');\n const formData = this._getState().data;\n\n const submitData = {};\n\n formFieldInstanceRegistry.getAllKeyed().forEach((formFieldInstance) => {\n const { id, valuePath } = formFieldInstance;\n const { disabled } = formFieldRegistry.get(id);\n\n if (disabled) {\n return;\n }\n\n const value = get(formData, valuePath);\n set(submitData, valuePath, value);\n });\n\n return submitData;\n }\n\n /**\n * @internal\n */\n _getInitializedFieldData(data, options = {}) {\n const formFieldRegistry = this.get('formFieldRegistry');\n const formFields = this.get('formFields');\n const pathRegistry = this.get('pathRegistry');\n\n function initializeFieldDataRecursively(initializedData, formField, indexes) {\n const { defaultValue, type, isRepeating } = formField;\n const { config: fieldConfig } = formFields.get(type);\n\n const valuePath = pathRegistry.getValuePath(formField, { indexes });\n let valueData = get(data, valuePath);\n\n // (1) Process keyed fields\n if (fieldConfig.keyed) {\n // (a) Retrieve and sanitize data from input\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\n }\n\n // (b) Initialize field value in output data\n const initializedFieldValue = !isUndefined(valueData)\n ? valueData\n : !isUndefined(defaultValue)\n ? defaultValue\n : fieldConfig.emptyValue;\n set(initializedData, valuePath, initializedFieldValue);\n }\n\n // (2) Process parents\n if (!Array.isArray(formField.components)) {\n return;\n }\n\n if (fieldConfig.repeatable && isRepeating) {\n // (a) Sanitize repeatable parents data if it is not an array\n if (!valueData || !Array.isArray(valueData)) {\n valueData =\n new Array(isUndefined(formField.defaultRepetitions) ? 1 : formField.defaultRepetitions)\n .fill()\n .map((_) => ({})) || [];\n }\n\n // (b) Ensure all elements of the array are objects\n valueData = valueData.map((val) => (isObject(val) ? val : {}));\n\n // (c) Initialize field value in output data\n set(initializedData, valuePath, valueData);\n\n // (d) If indexed ahead of time, recurse repeatable simply across the children\n if (!isUndefined(indexes[formField.id])) {\n formField.components.forEach((component) =>\n initializeFieldDataRecursively(initializedData, component, { ...indexes }),\n );\n\n return;\n }\n\n // (e1) Recurse repeatable parents both across the indexes of repetition and the children\n valueData.forEach((_, index) => {\n formField.components.forEach((component) =>\n initializeFieldDataRecursively(initializedData, component, { ...indexes, [formField.id]: index }),\n );\n });\n\n return;\n }\n\n // (e2) Recurse non-repeatable parents only across the children\n formField.components.forEach((component) => initializeFieldDataRecursively(initializedData, component, indexes));\n }\n\n // allows definition of a specific subfield to generate the data for\n const container = options.container || formFieldRegistry.getForm();\n const indexes = options.indexes || {};\n const basePath = pathRegistry.getValuePath(container, { indexes }) || [];\n\n // if indexing ahead of time, we must add this index to the data path at the end\n const path = !isUndefined(indexes[container.id]) ? [...basePath, indexes[container.id]] : basePath;\n\n const workingData = clone(data);\n initializeFieldDataRecursively(workingData, container, indexes);\n return get(workingData, path, {});\n }\n}\n","import { Form } from './Form';\n\nexport { FormFieldRegistry, FormLayouter, Importer, FieldFactory, PathRegistry } from './core';\nexport * from './render';\nexport * from './util';\nexport * from './features';\n\nconst schemaVersion = 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","_","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","isArray","buildErrorState","buildLoadedState","loadState","useDangerousHTMLWrapper","html","transform","sanitize","sanitizeStyleTags","sanitizedHtml","DOMPurify","getDOMPurifyConfig","transformedHtml","__html","FORCE_BODY","FORBID_TAGS","useSecurityAttributesMap","security","securityMemoized","sandbox","join","allow","useGetLabelCorrelation","labelMap","assign","_getValueHash","useCallback","wrapCSSStyles","rootNode","styleTags","querySelectorAll","styleTag","topLevelRules","extractTopLevelRules","textContent","scopedCss","rule","selector","styles","splitRule","scopedSelector","scopeSelector","cssString","cursor","start","level","substring","firstBracket","indexOf","sel","getScrollContainer","el","body","documentElement","_isElementScrollable","parentElement","window","getComputedStyle","overflowY","overflow","scrollHeight","clientHeight","EMPTY_OBJECT","EMPTY_ARRAY","useScrollIntoView","scrolledElementRef","deps","scrollOptions","flagRefs","_scrollOptions","_flagRefs","useEffect","itemToBeScrolled","scrollContainer","itemRect","getBoundingClientRect","containerRect","align","behavior","scrollIfVisible","shouldScroll","top","bottom","topOffset","_getTopOffset","scroll","item","scrollTop","height","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","v","sanitizeMultiSelectValue","sanitizeImageSource","src","valid","sanitizeIFrameSource","escapeHTML","escapeMap","useCleanupSingleSelectValue","onChange","optionValues","hasValueNotInOptions","useCleanupMultiSelectValue","memoizedValues","hasValuesNotInOptions","Button","onFocus","onBlur","evaluatedLabel","keyed","group","create","Description","description","evaluatedDescription","Errors","Label","htmlFor","collapseOnEmpty","_jsxs","Checkbox","domId","validate","target","checked","descriptionId","errorMessageId","emptyValue","sanitizeValue","Checklist","outerDivRef","toggleCheckbox","toggledValue","newValues","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","itemDomId","isChecked","className","onClick","noop","ids","Ids","FormField","instanceIdRef","next","_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","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","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","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","c","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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,OAAO,EAAEA,MAAMsvB,YAAY,CAACK,SAAS,CAAE;AAAAlwC,MAAAA,QAAA,EACvC0L,GAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAC,sCAAsC;AAAA3L,QAAAA,QAAA,EAC/C0L,GAAA,CAACwlC,SAAS,EAAA,EAAE;OACT;AAAC,KACA,CAAC;AAAA,GACN,CACN;AACH,CAAC;AAEDhC,mBAAmB,CAACnrC,OAAO,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC;;ACjR9F,MAAMotC,kBAAkB,GAAG;EAChCrH,QAAQ,EAAE,CAAC,qBAAqB,CAAC;AACjC/mB,EAAAA,mBAAmB,EAAE,CAAC,MAAM,EAAEmsB,mBAAmB;AACnD;;ACGA,IAAIkC,MAAM,GAAG,MAAM;AAEnB,IAAIC,gBAAgB,GAAG,IAAI;AAE3B,IAAInvC,KAAK,GAAGtC,KAAK,CAACyrC,SAAS,CAACnpC,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,SAASovC,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE;;AAEpB;AACA;AACA,EAAA,IAAI,CAACjvB,EAAE,CAAC,iBAA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","x_google_ignoreList":[124,125,136]}
1
+ {"version":3,"file":"index.es.js","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","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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CA;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,CAAC/nC,QAAQ,EAAEiF,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAAC+iC,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,GAAGtjC,QAAQ;;AAEzB;AACF;AACA;EACE,IAAI,CAAChF,SAAS,GAAGD,QAAQ;;AAEzB;AACF;AACA;EACE,IAAI,CAACwoC,IAAI,GAAG,CAAC;EAEbxoC,QAAQ,CAAC2f,EAAE,CAAC,CACV,iBAAiB,EACjB,eAAe,CAChB,EAAE,YAAW;AACZ,IAAA,IAAI,CAAC8oB,KAAK,CAAC,KAAK,CAAC;EACnB,CAAC,EAAE,IAAI,CAAC;AACV;AAEAV,YAAY,CAAChnC,OAAO,GAAG,CAAE,UAAU,EAAE,UAAU,CAAE;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","x_google_ignoreList":[124,125,136]}