@bpmn-io/form-js-viewer 1.6.3 → 1.6.4
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.
- package/LICENSE +22 -22
- package/README.md +189 -189
- package/dist/assets/form-js-base.css +1244 -1244
- package/dist/index.cjs +580 -580
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +580 -580
- package/dist/index.es.js.map +1 -1
- package/dist/types/types.d.ts +35 -35
- package/package.json +3 -3
package/dist/index.es.js.map
CHANGED
|
@@ -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/injector.js","../src/util/form.js","../src/render/components/Util.js","../src/render/components/form-fields/Button.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/render/hooks/useCondition.js","../src/render/hooks/useScrollIntoView.js","../src/render/hooks/useExpressionEvaluation.js","../src/render/hooks/useFilteredFormData.js","../src/render/hooks/useKeyDownAction.js","../src/render/hooks/useReadonly.js","../src/render/hooks/usePrevious.js","../src/render/hooks/useDeepCompareState.js","../src/render/hooks/useTemplateEvaluation.js","../src/render/hooks/useSingleLineTemplateEvaluation.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/util/optionsUtil.js","../src/render/hooks/useOptionsAsync.js","../src/render/components/util/dateTimeUtil.js","../src/render/components/util/sanitizerUtil.js","../src/render/hooks/useCleanupMultiSelectValues.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/util/localisationUtil.js","../src/render/components/form-fields/icons/Calendar.svg","../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/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/form-fields/Group.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/IFrame.js","../src/render/components/form-fields/icons/ImagePlaceholder.svg","../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/hooks/useCleanupSingleSelectValue.js","../src/render/components/form-fields/Radio.js","../src/render/hooks/useGetLabelCorrelation.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/form-fields/Text.js","../src/render/hooks/useFlushDebounce.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.js","../src/render/components/form-fields/icons/ArrowDown.svg","../src/render/components/form-fields/icons/ArrowUp.svg","../src/render/components/form-fields/icons/CaretLeft.svg","../src/render/components/form-fields/icons/CaretRight.svg","../src/render/components/form-fields/Table.js","../src/render/components/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/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/index.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/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/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/render/Renderer.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { parseExpression, parseUnaryTests } from 'feelin';\r\n\r\nexport const getFlavouredFeelVariableNames = (feelString, feelFlavour = 'expression', options = {}) => {\r\n\r\n const {\r\n depth = 0,\r\n specialDepthAccessors = {}\r\n } = options;\r\n\r\n if (![ 'expression', 'unaryTest' ].includes(feelFlavour)) return [];\r\n\r\n const tree = feelFlavour === 'expression' ? parseExpression(feelString) : parseUnaryTests(feelString);\r\n\r\n const simpleExpressionTree = _buildSimpleFeelStructureTree(tree, feelString);\r\n\r\n const variables = (function _unfoldVariables(node) {\r\n\r\n if (node.name === 'PathExpression') {\r\n\r\n // if the path is built on top of a context, we process that context and\r\n // ignore the rest of the path expression, as it is not relevant for variable extraction\r\n const pathRoot = _linearizePathExpression(node)[0];\r\n if (pathRoot.name === 'Context') {\r\n return _unfoldVariables(pathRoot);\r\n }\r\n\r\n if (Object.keys(specialDepthAccessors).length === 0) {\r\n return depth === 0 ? [ _getVariableNameAtPathIndex(node, 0) ] : [ ];\r\n }\r\n\r\n // if using special depth accessors, use a more complex extraction\r\n return Array.from(_smartExtractVariableNames(node, depth, specialDepthAccessors));\r\n }\r\n\r\n if (depth === 0 && node.name === 'VariableName') return [ node.variableName ];\r\n\r\n // for any other kind of node, traverse its children and flatten the result\r\n if (node.children) {\r\n const variables = node.children.reduce((acc, child) => {\r\n return acc.concat(_unfoldVariables(child));\r\n }, []);\r\n\r\n // if we are within a filter context, we need to remove the item variable as it is used for iteration there\r\n return node.name === 'FilterContext' ? variables.filter((name) => name !== 'item') : variables;\r\n }\r\n\r\n return [];\r\n })(simpleExpressionTree);\r\n\r\n return [ ...new Set(variables) ];\r\n\r\n};\r\n\r\n\r\n/**\r\n * Get the variable name at the specified index in a given path expression.\r\n *\r\n * @param {Object} root - The root node of the path expression tree.\r\n * @param {number} index - The index of the variable name to retrieve.\r\n * @returns {string|null} The variable name at the specified index or null if index is out of bounds.\r\n */\r\nconst _getVariableNameAtPathIndex = (root, index) => {\r\n const nodes = _linearizePathExpression(root);\r\n return nodes[index].variableName || null;\r\n};\r\n\r\n\r\n/**\r\n * Extracts the variables which are required of the external context for a given path expression.\r\n * This is done by traversing the path expression tree and keeping track of the current depth relative to the external context.\r\n *\r\n * @param {Object} node - The root node of the path expression tree.\r\n * @param {number} initialDepth - The depth at which the root node is located in the outer context.\r\n * @param {Object} specialDepthAccessors - Definitions of special keywords which represent more complex accesses of the outer context.\r\n * @returns {Set} - A set containing the extracted variable names.\r\n */\r\nconst _smartExtractVariableNames = (node, initialDepth, specialDepthAccessors) => {\r\n\r\n // depth info represents the previous (initialised as null) and current depth of the current accessor in the path expression\r\n // we track multiple of these to account for the fact that a path expression may be ambiguous due to special keywords\r\n let accessorDepthInfos = [ { previous: null, current: initialDepth - 1 } ];\r\n const extractedVariables = new Set();\r\n const pathNodes = _linearizePathExpression(node);\r\n\r\n for (let i = 0; i < pathNodes.length; i++) {\r\n const currentAccessor = pathNodes[i].variableName;\r\n\r\n if (currentAccessor in specialDepthAccessors) {\r\n const depthOffsets = specialDepthAccessors[currentAccessor];\r\n\r\n // if the current accessor is a special keyword, we need to expand the current depth info set\r\n // this is done to account for the ambiguity of keywords like parent, which may be used to access\r\n // the parent of the current node, or a child variable of the same name\r\n accessorDepthInfos = depthOffsets.reduce((accumulator, offset) => {\r\n return [\r\n ...accumulator,\r\n ...accessorDepthInfos.map(depthInfo => ({ previous: depthInfo.current, current: depthInfo.current + offset })),\r\n ];\r\n }, []).filter(depthInfo => depthInfo.current >= -1); // discard all depth infos which are out of bounds\r\n\r\n } else {\r\n\r\n // if the current accessor is not a special keyword, we know it's simply accessing a child\r\n // hence we are now one level deeper in the tree and simply increment\r\n accessorDepthInfos = accessorDepthInfos.map(depthInfo => ({ previous: depthInfo.current, current: depthInfo.current + 1 }));\r\n }\r\n\r\n // finally, we check if for the current accessor, there is a scenario where:\r\n // previous it was at depth -1 (i.e. the root context), and is now at depth 0 (i.e. a variable)\r\n // these are the variables we need to request, so we add them to the set\r\n if (accessorDepthInfos.some(depthInfo => depthInfo.previous === -1 && depthInfo.current === 0)) {\r\n extractedVariables.add(currentAccessor);\r\n }\r\n }\r\n\r\n // we return a set to avoid duplicates\r\n return new Set(extractedVariables);\r\n};\r\n\r\n\r\n/**\r\n * Deconstructs a path expression tree into an array of components.\r\n *\r\n * @param {Object} root - The root node of the path expression tree.\r\n * @returns {Array<object>} An array of components in the path expression, in the correct order.\r\n */\r\nconst _linearizePathExpression = (root) => {\r\n\r\n let node = root;\r\n let parts = [];\r\n\r\n // Traverse the tree and collect path components\r\n while (node.name === 'PathExpression') {\r\n parts.push(node.children[1]);\r\n node = node.children[0];\r\n }\r\n\r\n // Add the last component to the array\r\n parts.push(node);\r\n\r\n // Reverse and return the array to get the correct order\r\n return parts.reverse();\r\n};\r\n\r\n\r\n/**\r\n * Builds a simplified feel structure tree from the given parse tree and feel string.\r\n * The nodes follow this structure: `{ name: string, children: Array, variableName?: string }`\r\n *\r\n * @param {Object} parseTree - The parse tree generated by a parser.\r\n * @param {string} feelString - The feel string used for parsing.\r\n * @returns {Object} The simplified feel structure tree.\r\n */\r\nconst _buildSimpleFeelStructureTree = (parseTree, feelString) => {\r\n\r\n const stack = [ { children: [] } ];\r\n parseTree.iterate({\r\n enter: (node) => {\r\n\r\n const nodeRepresentation = {\r\n name: node.type.name,\r\n children: [],\r\n };\r\n\r\n if (node.type.name === 'VariableName') {\r\n nodeRepresentation.variableName = feelString.slice(node.from, node.to);\r\n }\r\n\r\n stack.push(nodeRepresentation);\r\n },\r\n leave: () => {\r\n const result = stack.pop();\r\n const parent = stack[stack.length - 1];\r\n parent.children.push(result);\r\n }\r\n });\r\n\r\n return _extractFilterExpressions(stack[0].children[0]);\r\n};\r\n\r\n/**\r\n * Restructure the tree in such a way to bring filters (which create new contexts) to the root of the tree.\r\n * This is done to simplify the extraction of variables and match the context hierarchy.\r\n */\r\nconst _extractFilterExpressions = (tree) => {\r\n\r\n const flattenedExpressionTree = {\r\n name: 'Root',\r\n children: [ tree ]\r\n };\r\n\r\n const iterate = (node) => {\r\n\r\n if (node.children) {\r\n for (let x = 0; x < node.children.length; x++) {\r\n\r\n if (node.children[x].name === 'FilterExpression') {\r\n\r\n const filterTarget = node.children[x].children[0];\r\n const filterExpression = node.children[x].children[2];\r\n\r\n // bypass the filter expression\r\n node.children[x] = filterTarget;\r\n\r\n const taggedFilterExpression = {\r\n name: 'FilterContext',\r\n children: [ filterExpression ]\r\n };\r\n\r\n // append the filter expression to the root\r\n flattenedExpressionTree.children.push(taggedFilterExpression);\r\n\r\n // recursively iterate the expression\r\n iterate(filterExpression);\r\n\r\n } else {\r\n iterate(node.children[x]);\r\n }\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n iterate(tree);\r\n\r\n return flattenedExpressionTree;\r\n};\r\n","import { evaluate } from 'feelin';\r\nimport { isString } from 'min-dash';\r\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\r\n\r\nexport default class FeelExpressionLanguage {\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * Determines if the given value is a FEEL expression.\r\n *\r\n * @param {any} value\r\n * @returns {boolean}\r\n *\r\n */\r\n isExpression(value) { return isString(value) && value.startsWith('='); }\r\n\r\n /**\r\n * Retrieve variable names from a given FEEL expression.\r\n *\r\n * @param {string} expression\r\n * @param {object} [options]\r\n * @param {string} [options.type]\r\n *\r\n * @returns {string[]}\r\n */\r\n getVariableNames(expression, options = {}) {\r\n\r\n const {\r\n type = 'expression'\r\n } = options;\r\n\r\n if (!this.isExpression(expression)) {\r\n return [];\r\n }\r\n\r\n if (![ 'unaryTest', 'expression' ].includes(type)) {\r\n throw new Error('Unknown expression type: ' + type);\r\n }\r\n\r\n return getFlavouredFeelVariableNames(expression, type);\r\n }\r\n\r\n /**\r\n * Evaluate an expression.\r\n *\r\n * @param {string} expression\r\n * @param {import('../../types').Data} [data]\r\n *\r\n * @returns {any}\r\n */\r\n evaluate(expression, data = {}) {\r\n if (!expression) {\r\n return null;\r\n }\r\n\r\n if (!isString(expression) || !expression.startsWith('=')) {\r\n return null;\r\n }\r\n\r\n try {\r\n const result = evaluate(expression.slice(1), data);\r\n\r\n return result;\r\n } catch (error) {\r\n this._eventBus.fire('error', { error });\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nFeelExpressionLanguage.$inject = [\r\n 'eventBus'\r\n];","import { parser as feelersParser, buildSimpleTree, evaluate as evaluateFeelers } from 'feelers';\r\nimport { isString } from 'min-dash';\r\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\r\n\r\nexport default class FeelersTemplating {\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Determines if the given value is a feelers template.\r\n *\r\n * @param {any} value\r\n * @returns {boolean}\r\n *\r\n */\r\n isTemplate(value) { return isString(value) && (value.startsWith('=') || /{{.*?}}/.test(value)); }\r\n\r\n\r\n /**\r\n * Retrieve variable names from a given feelers template.\r\n *\r\n * @param {string} template\r\n *\r\n * @returns {string[]}\r\n */\r\n getVariableNames(template) {\r\n\r\n if (!this.isTemplate(template)) {\r\n return [];\r\n }\r\n\r\n const expressions = this._extractExpressionsWithDepth(template);\r\n\r\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)\r\n const specialDepthAccessors = {\r\n parent: [ -1, 1 ],\r\n _parent_: [ -1 ],\r\n this: [ 0, 1 ],\r\n _this_: [ 0 ],\r\n };\r\n\r\n return expressions.reduce((variables, { expression, depth }) => {\r\n return variables.concat(getFlavouredFeelVariableNames(expression, 'expression', { depth, specialDepthAccessors }));\r\n }, []);\r\n }\r\n\r\n\r\n /**\r\n * Evaluate a template.\r\n *\r\n * @param {string} template\r\n * @param {Object<string, any>} context\r\n * @param {Object} options\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n * @returns\r\n */\r\n evaluate(template, context = {}, options = {}) {\r\n\r\n const {\r\n debug = false,\r\n strict = false,\r\n buildDebugString = (err) => ' {{⚠}} '\r\n } = options;\r\n\r\n return evaluateFeelers(template, context, { debug, strict, buildDebugString });\r\n }\r\n\r\n\r\n /**\r\n * @typedef {Object} ExpressionWithDepth\r\n * @property {number} depth - The depth of the expression in the syntax tree.\r\n * @property {string} expression - The extracted expression\r\n */\r\n\r\n /**\r\n * Extracts all feel expressions in the template along with their depth in the syntax tree.\r\n * The depth is incremented for child expressions of loops to account for context drilling.\r\n\r\n * @name extractExpressionsWithDepth\r\n * @param {string} template - A feelers template string.\r\n * @returns {Array<ExpressionWithDepth>} An array of objects, each containing the depth and the extracted expression.\r\n *\r\n * @example\r\n * const template = \"Hello {{user}}, you have:{{#loop items}}\\n- {{amount}} {{name}}{{/loop}}.\";\r\n * const extractedExpressions = _extractExpressionsWithDepth(template);\r\n */\r\n _extractExpressionsWithDepth(template) {\r\n\r\n // build simplified feelers syntax tree\r\n const parseTree = feelersParser.parse(template);\r\n const tree = buildSimpleTree(parseTree, template);\r\n\r\n return (function _traverse(n, depth = 0) {\r\n\r\n if ([ 'Feel', 'FeelBlock' ].includes(n.name)) {\r\n return [ { depth, expression: n.content } ];\r\n }\r\n\r\n if (n.name === 'LoopSpanner') {\r\n const loopExpression = n.children[0].content;\r\n const childResults = n.children.slice(1).reduce((acc, child) => {\r\n return acc.concat(_traverse(child, depth + 1));\r\n }, []);\r\n return [ { depth, expression: loopExpression }, ...childResults ];\r\n }\r\n\r\n return n.children.reduce((acc, child) => {\r\n return acc.concat(_traverse(child, depth));\r\n }, []);\r\n\r\n })(tree);\r\n\r\n }\r\n}\r\n\r\nFeelersTemplating.$inject = [];","// config ///////////////////\r\n\r\nexport const MINUTES_IN_DAY = 60 * 24;\r\n\r\nexport const DATETIME_SUBTYPES = {\r\n DATE: 'date',\r\n TIME: 'time',\r\n DATETIME: 'datetime'\r\n};\r\n\r\nexport const TIME_SERIALISING_FORMATS = {\r\n UTC_OFFSET: 'utc_offset',\r\n UTC_NORMALIZED: 'utc_normalized',\r\n NO_TIMEZONE: 'no_timezone'\r\n};\r\n\r\nexport const DATETIME_SUBTYPES_LABELS = {\r\n [DATETIME_SUBTYPES.DATE]: 'Date',\r\n [DATETIME_SUBTYPES.TIME]: 'Time',\r\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time'\r\n};\r\n\r\nexport const TIME_SERIALISINGFORMAT_LABELS = {\r\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\r\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\r\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone'\r\n};\r\n\r\nexport const DATETIME_SUBTYPE_PATH = [ 'subtype' ];\r\nexport const DATE_LABEL_PATH = [ 'dateLabel' ];\r\nexport const DATE_DISALLOW_PAST_PATH = [ 'disallowPassedDates' ];\r\nexport const TIME_LABEL_PATH = [ 'timeLabel' ];\r\nexport const TIME_USE24H_PATH = [ 'use24h' ];\r\nexport const TIME_INTERVAL_PATH = [ 'timeInterval' ];\r\nexport const TIME_SERIALISING_FORMAT_PATH = [ 'timeSerializingFormat' ];\r\n","import { get } from 'min-dash';\r\n\r\n// config ///////////////////\r\n\r\nexport const OPTIONS_SOURCES = {\r\n STATIC: 'static',\r\n INPUT: 'input',\r\n EXPRESSION: 'expression',\r\n};\r\n\r\nexport const OPTIONS_SOURCE_DEFAULT = OPTIONS_SOURCES.STATIC;\r\n\r\nexport const OPTIONS_SOURCES_LABELS = {\r\n [OPTIONS_SOURCES.STATIC]: 'Static',\r\n [OPTIONS_SOURCES.INPUT]: 'Input data',\r\n [OPTIONS_SOURCES.EXPRESSION]: 'Expression',\r\n};\r\n\r\nexport const OPTIONS_SOURCES_PATHS = {\r\n [OPTIONS_SOURCES.STATIC]: [ 'values' ],\r\n [OPTIONS_SOURCES.INPUT]: [ 'valuesKey' ],\r\n [OPTIONS_SOURCES.EXPRESSION]: [ 'valuesExpression' ],\r\n};\r\n\r\nexport const OPTIONS_SOURCES_DEFAULTS = {\r\n [OPTIONS_SOURCES.STATIC]: [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ],\r\n [OPTIONS_SOURCES.INPUT]: '',\r\n [OPTIONS_SOURCES.EXPRESSION]: '='\r\n};\r\n\r\n// helpers ///////////////////\r\n\r\nexport function getOptionsSource(field) {\r\n\r\n for (const source of Object.values(OPTIONS_SOURCES)) {\r\n if (get(field, OPTIONS_SOURCES_PATHS[source]) !== undefined) {\r\n return source;\r\n }\r\n }\r\n\r\n return OPTIONS_SOURCE_DEFAULT;\r\n}\r\n","import { Injector } from 'didi';\r\n\r\nexport function createInjector(bootstrapModules) {\r\n\r\n const injector = new Injector(bootstrapModules);\r\n\r\n injector.init();\r\n\r\n return injector;\r\n}","/**\r\n * @param {string?} prefix\r\n *\r\n * @returns Element\r\n */\r\nexport function createFormContainer(prefix = 'fjs') {\r\n const container = document.createElement('div');\r\n\r\n container.classList.add(`${ prefix }-container`);\r\n\r\n return container;\r\n}","import classNames from 'classnames';\r\n\r\nexport function formFieldClasses(type, { errors = [], disabled = false, readonly = false } = {}) {\r\n if (!type) {\r\n throw new Error('type required');\r\n }\r\n\r\n return classNames('fjs-form-field', `fjs-form-field-${type}`, {\r\n 'fjs-has-errors': errors.length > 0,\r\n 'fjs-disabled': disabled,\r\n 'fjs-readonly': readonly\r\n });\r\n}\r\n\r\nexport function gridColumnClasses(formField) {\r\n const {\r\n layout = {}\r\n } = formField;\r\n\r\n const {\r\n columns\r\n } = layout;\r\n\r\n return classNames(\r\n 'fjs-layout-column',\r\n `cds--col${columns ? '-lg-' + columns : ''}`,\r\n\r\n // always fall back to top-down on smallest screens\r\n 'cds--col-sm-16',\r\n 'cds--col-md-16'\r\n );\r\n}\r\n\r\nexport function prefixId(id, formId, indexes) {\r\n let result = 'fjs-form';\r\n\r\n if (formId) {\r\n result += `-${formId}`;\r\n }\r\n\r\n result += `-${id}`;\r\n\r\n Object.values(indexes || {}).forEach((index) => {\r\n result += `_${index}`;\r\n });\r\n\r\n return result;\r\n}\r\n","import { formFieldClasses } from '../Util';\r\n\r\nconst type = 'button';\r\n\r\nexport default function Button(props) {\r\n const {\r\n disabled,\r\n onFocus,\r\n onBlur,\r\n field\r\n } = props;\r\n\r\n const { action = 'submit' } = field;\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <button\r\n class=\"fjs-button\"\r\n type={ action }\r\n disabled={ disabled }\r\n onFocus={ () => onFocus && onFocus() }\r\n onBlur={ () => onBlur && onBlur() }>\r\n { field.label }\r\n </button>\r\n </div>;\r\n}\r\n\r\nButton.config = {\r\n type,\r\n keyed: false,\r\n label: 'Button',\r\n group: 'action',\r\n create: (options = {}) => ({\r\n action: 'submit',\r\n ...options\r\n })\r\n};\r\n","import { createContext } from 'preact';\r\n\r\nconst FormRenderContext = createContext({\r\n Empty: (props) => {\r\n return null;\r\n },\r\n Hidden: (props) => {\r\n return null;\r\n },\r\n Children: (props) => {\r\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\r\n },\r\n Element: (props) => {\r\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\r\n },\r\n Row: (props) => {\r\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\r\n },\r\n Column: (props) => {\r\n if (props.field.type === 'default') {\r\n return props.children;\r\n }\r\n\r\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\r\n },\r\n hoverInfo: {\r\n cleanup: () => {}\r\n },\r\n});\r\n\r\nexport default FormRenderContext;","import { createContext } from 'preact';\r\n\r\nconst LocalExpressionContext = createContext({\r\n data: null,\r\n this: null,\r\n parent: null,\r\n i: null\r\n});\r\n\r\nexport default LocalExpressionContext;","import { createContext } from 'preact';\r\n\r\n/**\r\n * @param {string} type\r\n * @param {boolean} [strict]\r\n *\r\n * @returns {any}\r\n */\r\nfunction getService(type, strict) {}\r\n\r\nconst FormContext = createContext({\r\n getService,\r\n formId: null\r\n});\r\n\r\nexport default FormContext;","import {\r\n useContext\r\n} from 'preact/hooks';\r\n\r\nimport { FormContext } from '../context';\r\n\r\nexport default function useService(type, strict) {\r\n const {\r\n getService\r\n } = useContext(FormContext);\r\n\r\n return getService(type, strict);\r\n}","export function isRequired(field) {\r\n return field.required;\r\n}\r\n\r\nexport function pathParse(path) {\r\n if (!path) {\r\n return [];\r\n }\r\n\r\n return path.split('.').map(key => {\r\n return isNaN(parseInt(key)) ? key : parseInt(key);\r\n });\r\n}\r\n\r\nexport function pathsEqual(a, b) {\r\n return (\r\n a &&\r\n b &&\r\n a.length === b.length &&\r\n a.every((value, index) => value === b[ index ])\r\n );\r\n}\r\n\r\nconst indices = {};\r\n\r\nexport function generateIndexForType(type) {\r\n if (type in indices) {\r\n indices[ type ]++;\r\n } else {\r\n indices[ type ] = 1;\r\n }\r\n\r\n return indices[ type ];\r\n}\r\n\r\nexport function generateIdForType(type) {\r\n return `${ type }${ generateIndexForType(type) }`;\r\n}\r\n\r\n/**\r\n * @template T\r\n * @param {T} data\r\n * @param {(this: any, key: string, value: any) => any} [replacer]\r\n * @return {T}\r\n */\r\nexport function clone(data, replacer) {\r\n return JSON.parse(JSON.stringify(data, replacer));\r\n}\r\n\r\n/**\r\n * Transform a LocalExpressionContext object into a usable FEEL context.\r\n *\r\n * @param {Object} context - The LocalExpressionContext object.\r\n * @returns {Object} The usable FEEL context.\r\n */\r\n\r\nexport function buildExpressionContext(context) {\r\n const {\r\n data,\r\n ...specialContextKeys\r\n } = context;\r\n\r\n return {\r\n ...specialContextKeys,\r\n ...data,\r\n ..._wrapObjectKeysWithUnderscores(specialContextKeys)\r\n };\r\n}\r\n\r\nexport function runRecursively(formField, fn) {\r\n const components = formField.components || [];\r\n\r\n components.forEach((component, index) => {\r\n runRecursively(component, fn);\r\n });\r\n\r\n fn(formField);\r\n}\r\n\r\n// helpers //////////////////////\r\n\r\nfunction _wrapObjectKeysWithUnderscores(obj) {\r\n const newObj = {};\r\n for (const [ key, value ] of Object.entries(obj)) {\r\n newObj[`_${key}_`] = value;\r\n }\r\n return newObj;\r\n}","import useService from './useService.js';\r\nimport { useContext, useMemo } from 'preact/hooks';\r\nimport LocalExpressionContext from '../context/LocalExpressionContext.js';\r\nimport { buildExpressionContext } from '../../util/simple';\r\n\r\n/**\r\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\r\n *\r\n * @param {string | undefined} condition\r\n *\r\n * @returns {boolean} true if condition is met or no condition or condition checker exists\r\n */\r\nexport default function useCondition(condition) {\r\n const conditionChecker = useService('conditionChecker', false);\r\n const expressionContextInfo = useContext(LocalExpressionContext);\r\n\r\n return useMemo(() => {\r\n return conditionChecker ? conditionChecker.check(condition, buildExpressionContext(expressionContextInfo)) : null;\r\n }, [ conditionChecker, condition, expressionContextInfo ]);\r\n}\r\n","import { some } from 'min-dash';\r\nimport { useEffect } from 'preact/hooks';\r\n\r\n/**\r\n * Custom hook to scroll an element into view only when it is not visible within the viewport.\r\n *\r\n * @param {Object} targetRef - A ref pointing to the DOM element to scroll into view.\r\n * @param {Array} deps - An array of dependencies that trigger the effect.\r\n * @param {Array} flagRefs - An array of refs that are used as flags to control when to scroll.\r\n * @param {Object} [scrollOptions={}] - Options defining the behavior of the scrolling.\r\n * @param {String} [scrollOptions.align='center'] - The alignment of the element within the viewport.\r\n * @param {String} [scrollOptions.behavior='auto'] - The scrolling behavior.\r\n * @param {Number} [scrollOptions.offset=0] - An offset that is added to the scroll position.\r\n * @param {Boolean} [scrollOptions.scrollIfVisible=false] - Whether to scroll even if the element is visible.\r\n */\r\nexport default function useScrollIntoView(targetRef, deps, scrollOptions = null, flagRefs = []) {\r\n useEffect(() => {\r\n\r\n // return early if flags are not raised, or component is not mounted\r\n if (some(flagRefs, ref => !ref.current) || !targetRef.current) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < flagRefs.length; i++) {\r\n flagRefs[i].current = false;\r\n }\r\n\r\n const itemToBeScrolled = targetRef.current;\r\n const scrollContainer = _getNearestScrollableAncestor(itemToBeScrolled);\r\n\r\n if (!scrollContainer) {\r\n return;\r\n }\r\n\r\n const itemRect = itemToBeScrolled.getBoundingClientRect();\r\n const containerRect = scrollContainer.getBoundingClientRect();\r\n\r\n // should scroll if visible or scrollIfVisible option is set\r\n const shouldScroll = scrollOptions.scrollIfVisible || !(itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom);\r\n\r\n if (!shouldScroll) {\r\n return;\r\n }\r\n\r\n const {\r\n align = 'center',\r\n offset = 0,\r\n behavior = 'auto'\r\n } = scrollOptions;\r\n\r\n const topOffset = _getTopOffset(itemToBeScrolled, scrollContainer, { align, offset });\r\n scrollContainer.scroll({\r\n top: topOffset,\r\n behavior,\r\n });\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, deps);\r\n}\r\n\r\n\r\n// helper //////////////////////\r\n\r\nfunction _getNearestScrollableAncestor(el) {\r\n while (el) {\r\n if (el.scrollHeight > el.clientHeight) {\r\n return el;\r\n }\r\n el = el.parentElement;\r\n }\r\n}\r\n\r\nfunction _getTopOffset(item, scrollContainer, options) {\r\n\r\n const itemRect = item.getBoundingClientRect();\r\n const containerRect = scrollContainer.getBoundingClientRect();\r\n\r\n if (options.align === 'top') {\r\n return itemRect.top - containerRect.top + scrollContainer.scrollTop - options.offset;\r\n }\r\n else if (options.align === 'bottom') {\r\n return itemRect.bottom - containerRect.top - scrollContainer.clientHeight + scrollContainer.scrollTop + options.offset;\r\n }\r\n else if (options.align === 'center') {\r\n return itemRect.top - containerRect.top - scrollContainer.clientHeight / 2 + scrollContainer.scrollTop + itemRect.height / 2 + options.offset;\r\n }\r\n\r\n return 0;\r\n}","import useService from './useService';\r\nimport LocalExpressionContext from '../context/LocalExpressionContext';\r\nimport { useContext, useMemo } from 'preact/hooks';\r\nimport { buildExpressionContext } from '../../util/simple';\r\n\r\n/**\r\n * Evaluate a string reactively based on the expressionLanguage and form data.\r\n * If the string is not an expression, it is returned as is.\r\n * The function is memoized to minimize re-renders.\r\n *\r\n * @param {string} value - The string to evaluate.\r\n * @returns {any} - Evaluated value or the original value if not an expression.\r\n */\r\nexport default function useExpressionEvaluation(value) {\r\n const expressionLanguage = useService('expressionLanguage');\r\n const expressionContextInfo = useContext(LocalExpressionContext);\r\n\r\n return useMemo(() => {\r\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\r\n return expressionLanguage.evaluate(value, buildExpressionContext(expressionContextInfo));\r\n }\r\n return value;\r\n }, [ expressionLanguage, expressionContextInfo, value ]);\r\n}\r\n","import useService from './useService.js';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Returns the conditionally filtered data of a form reactively.\r\n * Memoised to minimize re-renders\r\n *\r\n * Warning: costly operation, use with care\r\n */\r\nexport default function useFilteredFormData() {\r\n const { initialData, data } = useService('form')._getState();\r\n const conditionChecker = useService('conditionChecker', false);\r\n\r\n return useMemo(() => {\r\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\r\n return { ...initialData, ...newData };\r\n }, [ conditionChecker, data, initialData ]);\r\n\r\n}\r\n","import { useEffect } from 'preact/hooks';\r\n\r\nexport default function useKeyDownAction(targetKey, action, listenerElement = window) {\r\n\r\n function downHandler({ key }) {\r\n if (key === targetKey) {\r\n action();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n listenerElement.addEventListener('keydown', downHandler);\r\n\r\n return () => {\r\n listenerElement.removeEventListener('keydown', downHandler);\r\n };\r\n });\r\n}","import useService from './useService.js';\r\nimport LocalExpressionContext from '../context/LocalExpressionContext.js';\r\nimport { buildExpressionContext } from '../../util/simple';\r\nimport { useContext } from 'preact/hooks';\r\n\r\n/**\r\n * Retrieve readonly value of a form field, given it can be an\r\n * expression optionally or configured globally.\r\n *\r\n * @typedef { import('../../types').FormProperties } FormProperties\r\n *\r\n * @param {any} formField\r\n * @param {FormProperties} properties\r\n *\r\n * @returns {boolean}\r\n */\r\nexport default function useReadonly(formField, properties = {}) {\r\n const expressionLanguage = useService('expressionLanguage');\r\n const conditionChecker = useService('conditionChecker', false);\r\n const expressionContextInfo = useContext(LocalExpressionContext);\r\n\r\n const { readonly } = formField;\r\n\r\n if (properties.readOnly) {\r\n return true;\r\n }\r\n\r\n if (expressionLanguage && expressionLanguage.isExpression(readonly)) {\r\n return conditionChecker ? conditionChecker.check(readonly, buildExpressionContext(expressionContextInfo)) : false;\r\n }\r\n\r\n return readonly || false;\r\n}\r\n","import {\r\n useEffect,\r\n useRef\r\n} from 'preact/hooks';\r\n\r\n\r\nexport default function usePrevious(value, defaultValue, dependencies) {\r\n const ref = useRef(defaultValue);\r\n\r\n useEffect(() => ref.current = value, dependencies);\r\n\r\n return ref.current;\r\n}","import {\r\n useEffect,\r\n useState\r\n} from 'preact/hooks';\r\n\r\nimport usePrevious from './usePrevious';\r\n\r\n/**\r\n * A custom hook to manage state changes with deep comparison.\r\n *\r\n * @param {any} value - The current value to manage.\r\n * @param {any} defaultValue - The initial default value for the state.\r\n * @returns {any} - Returns the current state.\r\n */\r\nexport default function useDeepCompareState(value, defaultValue) {\r\n\r\n const [ state, setState ] = useState(defaultValue);\r\n\r\n const previous = usePrevious(value, defaultValue, [ value ]);\r\n\r\n const changed = !compare(previous, value);\r\n\r\n useEffect(() => {\r\n if (changed) {\r\n setState(value);\r\n }\r\n }, [ changed, value ]);\r\n\r\n return state;\r\n\r\n}\r\n\r\n// helpers //////////////////////////\r\n\r\nfunction compare(a, b) {\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n}\r\n","import useService from './useService';\r\nimport { useContext, useMemo } from 'preact/hooks';\r\nimport LocalExpressionContext from '../context/LocalExpressionContext';\r\nimport { buildExpressionContext } from '../../util/simple';\r\n\r\n/**\r\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\r\n * Memoised to minimize re-renders\r\n *\r\n * @param {string} value\r\n * @param {Object} options\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n */\r\nexport default function useTemplateEvaluation(value, options = {}) {\r\n const templating = useService('templating');\r\n const expressionContextInfo = useContext(LocalExpressionContext);\r\n\r\n return useMemo(() => {\r\n if (templating && templating.isTemplate(value)) {\r\n return templating.evaluate(value, buildExpressionContext(expressionContextInfo), options);\r\n }\r\n return value;\r\n }, [ templating, value, expressionContextInfo, options ]);\r\n}\r\n","import useTemplateEvaluation from './useTemplateEvaluation';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\r\n * If the string contains multiple lines, only the first line is returned.\r\n * Memoised to minimize re-renders\r\n *\r\n * @param {string} value\r\n * @param {Object} [options]\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n */\r\nexport default function useSingleLineTemplateEvaluation(value, options = {}) {\r\n const evaluatedTemplate = useTemplateEvaluation(value, options);\r\n return useMemo(() => evaluatedTemplate && evaluatedTemplate.split('\\n')[0], [ evaluatedTemplate ]);\r\n}","import { useSingleLineTemplateEvaluation } from '../hooks';\r\n\r\n\r\nexport default function Description(props) {\r\n const { description } = props;\r\n\r\n const evaluatedDescription = useSingleLineTemplateEvaluation(description || '', { debug: true });\r\n\r\n if (!evaluatedDescription) {\r\n return null;\r\n }\r\n\r\n return <div class=\"fjs-form-field-description\">{ evaluatedDescription }</div>;\r\n}","export default function Errors(props) {\r\n const { errors, id } = props;\r\n\r\n if (!errors.length) {\r\n return null;\r\n }\r\n\r\n return <div class=\"fjs-form-field-error\" aria-live=\"polite\" id={ id }>\r\n <ul>\r\n {\r\n errors.map(error => {\r\n return <li>{ error }</li>;\r\n })\r\n }\r\n </ul>\r\n </div>;\r\n}","import classNames from 'classnames';\r\n\r\nimport { useSingleLineTemplateEvaluation } from '../hooks';\r\n\r\n\r\n/**\r\n * @typedef Props\r\n * @property {string} [id]\r\n * @property {string|undefined} label\r\n * @property {string} [class]\r\n * @property {boolean} [collapseOnEmpty]\r\n * @property {boolean} [required]\r\n * @property {import(\"preact\").VNode} [children]\r\n *\r\n * @param {Props} props\r\n * @returns {import(\"preact\").JSX.Element}\r\n */\r\nexport default function Label(props) {\r\n const {\r\n id,\r\n label,\r\n collapseOnEmpty = true,\r\n required = false\r\n } = props;\r\n\r\n const evaluatedLabel = useSingleLineTemplateEvaluation(label || '', { debug: true });\r\n\r\n return (\r\n <label for={ id } class={ classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class']) }>\r\n { props.children }\r\n { evaluatedLabel }\r\n {\r\n required && <span class=\"fjs-asterix\">*</span>\r\n }\r\n </label>\r\n );\r\n}","import Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nimport classNames from 'classnames';\r\n\r\nconst type = 'checkbox';\r\n\r\nexport default function Checkbox(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value = false\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.checked\r\n });\r\n };\r\n\r\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value }) }>\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n required={ required }>\r\n <input\r\n checked={ value }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ domId }\r\n type=\"checkbox\"\r\n onChange={ onChange }\r\n onBlur={ () => onBlur && onBlur() }\r\n onFocus={ () => onFocus && onFocus() }\r\n aria-describedby={ errorMessageId } />\r\n </Label>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nCheckbox.config = {\r\n type,\r\n keyed: true,\r\n label: 'Checkbox',\r\n group: 'selection',\r\n emptyValue: false,\r\n sanitizeValue: ({ value }) => value === true,\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","import { get, isObject, isString, isNil } from 'min-dash';\r\n\r\n// parses the options data from the provided form field and form data\r\nexport function getOptionsData(formField, formData) {\r\n const { valuesKey: optionsKey, values: staticOptions } = formField;\r\n return optionsKey ? get(formData, [ optionsKey ]) : staticOptions;\r\n}\r\n\r\n// transforms the provided options into a normalized format, trimming invalid options\r\nexport function normalizeOptionsData(optionsData) {\r\n return optionsData.filter(_isAllowedValue).map(_normalizeOption).filter(o => !isNil(o));\r\n}\r\n\r\n/**\r\n * Converts the provided option to a normalized format.\r\n * If the option is not valid, null is returned.\r\n *\r\n * @param {object} option\r\n * @param {string} option.label\r\n * @param {*} option.value\r\n *\r\n * @returns\r\n */\r\nfunction _normalizeOption(option) {\r\n\r\n // (1) simple primitive case, use it as both label and value\r\n if (_isAllowedPrimitive(option)) {\r\n return { value: option, label: `${ option }` };\r\n }\r\n\r\n if (isObject(option)) {\r\n\r\n const isValidLabel = _isValidLabel(option.label);\r\n\r\n // (2) no label provided, but value is a simple primitive, use it as label and value\r\n if (!isValidLabel && _isAllowedPrimitive(option.value)) {\r\n return { value: option.value, label: `${ option.value }` };\r\n }\r\n\r\n // (3) both label and value are provided, use them as is\r\n if (isValidLabel && _isAllowedValue(option.value)) {\r\n return option;\r\n }\r\n }\r\n\r\n\r\n return null;\r\n}\r\n\r\nfunction _isAllowedPrimitive(value) {\r\n const isAllowedPrimitiveType = [ 'number', 'string', 'boolean' ].includes(typeof(value));\r\n const isValid = value || value === 0 || value === false;\r\n\r\n return isAllowedPrimitiveType && isValid;\r\n}\r\n\r\nfunction _isValidLabel(label) {\r\n return label && isString(label);\r\n}\r\n\r\nfunction _isAllowedValue(value) {\r\n if (isObject(value)) {\r\n return Object.keys(value).length > 0;\r\n }\r\n\r\n return _isAllowedPrimitive(value);\r\n}\r\n\r\nexport function createEmptyOptions(options = {}) {\r\n\r\n const defaults = {};\r\n\r\n // provide default options if valuesKey and valuesExpression are not set\r\n if (!options.valuesKey && !options.valuesExpression) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n}","import { useEffect, useState } from 'preact/hooks';\r\nimport { normalizeOptionsData } from '../components/util/optionsUtil';\r\nimport { useExpressionEvaluation, useDeepCompareState, useService } from './index';\r\n\r\n/**\r\n * @enum { String }\r\n */\r\nexport const LOAD_STATES = {\r\n LOADING: 'loading',\r\n LOADED: 'loaded',\r\n ERROR: 'error'\r\n};\r\n\r\n/**\r\n * @typedef {Object} OptionsGetter\r\n * @property {Object[]} options - The options data\r\n * @property {(LOAD_STATES)} loadState - The options data's loading state, to use for conditional rendering\r\n */\r\n\r\n/**\r\n * A hook to load options for single and multiselect components.\r\n *\r\n * @param {Object} field - The form field to handle options for\r\n * @return {OptionsGetter} optionsGetter - A options getter object providing loading state and options\r\n */\r\nexport default function(field) {\r\n const {\r\n valuesExpression: optionsExpression,\r\n valuesKey: optionsKey,\r\n values: staticOptions\r\n } = field;\r\n\r\n const [ optionsGetter, setOptionsGetter ] = useState({ options: [], error: undefined, loadState: LOAD_STATES.LOADING });\r\n const initialData = useService('form')._getState().initialData;\r\n\r\n const expressionEvaluation = useExpressionEvaluation(optionsExpression);\r\n const evaluatedOptions = useDeepCompareState(expressionEvaluation || [], []);\r\n\r\n useEffect(() => {\r\n\r\n let options = [];\r\n\r\n // dynamic options\r\n if (optionsKey !== undefined) {\r\n const keyedOptions = (initialData || {})[ optionsKey ];\r\n\r\n if (keyedOptions && Array.isArray(keyedOptions)) {\r\n options = keyedOptions;\r\n }\r\n\r\n // static options\r\n } else if (staticOptions !== undefined) {\r\n options = Array.isArray(staticOptions) ? staticOptions : [];\r\n\r\n // expression\r\n } else if (optionsExpression) {\r\n\r\n if (evaluatedOptions && Array.isArray(evaluatedOptions)) {\r\n options = evaluatedOptions;\r\n }\r\n } else {\r\n setOptionsGetter(buildErrorState('No options source defined in the form definition'));\r\n return;\r\n }\r\n\r\n // normalize data to support primitives and partially defined objects\r\n options = normalizeOptionsData(options);\r\n\r\n setOptionsGetter(buildLoadedState(options));\r\n\r\n }, [ optionsKey, staticOptions, initialData, optionsExpression, evaluatedOptions ]);\r\n\r\n return optionsGetter;\r\n}\r\n\r\nconst buildErrorState = (error) => ({ options: [], error, loadState: LOAD_STATES.ERROR });\r\n\r\nconst buildLoadedState = (options) => ({ options, error: undefined, loadState: LOAD_STATES.LOADED });\r\n","import { isNumber } from 'min-dash';\r\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\r\n\r\nexport const ENTER_KEYDOWN_EVENT = new KeyboardEvent('keydown', {\r\n code: 'Enter',\r\n key: 'Enter',\r\n charCode: 13,\r\n keyCode: 13,\r\n bubbles: true\r\n});\r\n\r\nexport function focusRelevantFlatpickerDay(flatpickrInstance) {\r\n\r\n if (!flatpickrInstance) return;\r\n\r\n !flatpickrInstance.isOpen && flatpickrInstance.open();\r\n\r\n const container = flatpickrInstance.calendarContainer;\r\n const dayToFocus =\r\n container.querySelector('.flatpickr-day.selected') ||\r\n container.querySelector('.flatpickr-day.today') ||\r\n container.querySelector('.flatpickr-day');\r\n\r\n dayToFocus && dayToFocus.focus();\r\n}\r\n\r\nexport function formatTime(use24h, minutes) {\r\n\r\n if (minutes === null) return null;\r\n\r\n const wrappedMinutes = minutes % (24 * 60);\r\n\r\n const minute = minutes % 60;\r\n let hour = Math.floor(wrappedMinutes / 60);\r\n\r\n if (use24h) {\r\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute);\r\n }\r\n\r\n hour = (hour % 12 || 12);\r\n\r\n const isPM = (wrappedMinutes >= 12 * 60);\r\n\r\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute) + ' ' + (isPM ? 'PM' : 'AM');\r\n}\r\n\r\nexport function parseInputTime(stringTime) {\r\n\r\n let workingString = stringTime.toLowerCase();\r\n const is12h = workingString.includes('am') || workingString.includes('pm');\r\n\r\n if (is12h) {\r\n const isPM = workingString.includes('pm');\r\n const digits = workingString.match(/\\d+/g);\r\n const displayHour = parseInt(digits && digits[0]);\r\n const minute = parseInt(digits && digits[1]) || 0;\r\n\r\n const isValidDisplayHour = isNumber(displayHour) && (displayHour >= 1) && (displayHour <= 12);\r\n const isValidMinute = (minute >= 0) && (minute <= 59);\r\n\r\n if (!isValidDisplayHour || !isValidMinute) return null;\r\n\r\n const hour = (displayHour % 12) + (isPM ? 12 : 0);\r\n\r\n return hour * 60 + minute;\r\n }\r\n else {\r\n const digits = workingString.match(/\\d+/g);\r\n const hour = parseInt(digits && digits[0]);\r\n const minute = parseInt(digits && digits[1]);\r\n\r\n const isValidHour = isNumber(hour) && (hour >= 0) && (hour <= 23);\r\n const isValidMinute = isNumber(minute) && (minute >= 0) && (minute <= 59);\r\n\r\n if (!isValidHour || !isValidMinute) return null;\r\n\r\n return hour * 60 + minute;\r\n }\r\n}\r\n\r\nexport function serializeTime(minutes, offset, timeSerializingFormat) {\r\n\r\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\r\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n return _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) + ':' + _getZeroPaddedString(normalizedMinutes % 60) + 'Z';\r\n }\r\n\r\n const baseTime = _getZeroPaddedString(Math.floor(minutes / 60)) + ':' + _getZeroPaddedString(minutes % 60);\r\n const addUTCOffset = timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_OFFSET;\r\n\r\n return baseTime + (addUTCOffset ? formatTimezoneOffset(offset) : '');\r\n}\r\n\r\nexport function parseIsoTime(isoTimeString) {\r\n\r\n if (!isoTimeString) return null;\r\n\r\n const parseBasicMinutes = (timeString) => {\r\n const timeSegments = timeString.split(':');\r\n const hour = parseInt(timeSegments[0]);\r\n const minute = timeSegments.length > 1 ? parseInt(timeSegments[1]) : 0;\r\n if (isNaN(hour) || hour < 0 || hour > 24 || isNaN(minute) || minute < 0 || minute > 60) return null;\r\n return hour * 60 + minute;\r\n };\r\n\r\n const localOffset = new Date().getTimezoneOffset();\r\n\r\n // Parse normalized time\r\n if (isoTimeString.includes('Z')) {\r\n isoTimeString = isoTimeString.replace('Z', '');\r\n const minutes = parseBasicMinutes(isoTimeString);\r\n if (minutes === null) return null;\r\n return (minutes - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Parse offset positive time\r\n else if (isoTimeString.includes('+')) {\r\n const [ timeString, offsetString ] = isoTimeString.split('+');\r\n\r\n const minutes = parseBasicMinutes(timeString);\r\n let inboundOffset = parseBasicMinutes(offsetString);\r\n\r\n if (minutes === null || inboundOffset === null) return null;\r\n\r\n // The offset is flipped for consistency with javascript\r\n inboundOffset = -inboundOffset;\r\n\r\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Parse offset negative time\r\n else if (isoTimeString.includes('-')) {\r\n const [ timeString, offsetString ] = isoTimeString.split('-');\r\n\r\n const minutes = parseBasicMinutes(timeString);\r\n let inboundOffset = parseBasicMinutes(offsetString);\r\n\r\n if (minutes === null || inboundOffset === null) return null;\r\n\r\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Default to local parsing\r\n else {\r\n return parseBasicMinutes(isoTimeString);\r\n }\r\n}\r\n\r\nexport function serializeDate(date) {\r\n var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n if (day.length < 2)\r\n day = '0' + day;\r\n\r\n return [ year, month, day ].join('-');\r\n}\r\n\r\n// this method is used to make the `new Date(value)` parsing behavior stricter\r\nexport function isDateTimeInputInformationSufficient(value) {\r\n\r\n if (!value || typeof value !== 'string') return false;\r\n\r\n const segments = value.split('T');\r\n if (segments.length != 2) return false;\r\n\r\n const dateNumbers = segments[0].split('-');\r\n if (dateNumbers.length != 3) return false;\r\n\r\n return true;\r\n\r\n}\r\n\r\n// this method checks if the date isn't a datetime, or a partial date\r\nexport function isDateInputInformationMatching(value) {\r\n\r\n if (!value || typeof value !== 'string') return false;\r\n\r\n if (value.includes('T')) return false;\r\n\r\n const dateNumbers = value.split('-');\r\n if (dateNumbers.length != 3) return false;\r\n\r\n return true;\r\n}\r\n\r\nexport function serializeDateTime(date, time, timeSerializingFormat) {\r\n\r\n const workingDate = new Date();\r\n workingDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\r\n workingDate.setHours(Math.floor(time / 60), time % 60, 0, 0);\r\n\r\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\r\n\r\n const timezoneOffsetMinutes = workingDate.getTimezoneOffset();\r\n const dayOffset = (time + timezoneOffsetMinutes < 0) ? -1 : (((time + timezoneOffsetMinutes) > MINUTES_IN_DAY) ? 1 : 0);\r\n\r\n // Apply the date rollover pre-emptively\r\n workingDate.setHours(workingDate.getHours() + dayOffset * 24);\r\n }\r\n\r\n return serializeDate(workingDate) + 'T' + serializeTime(time, workingDate.getTimezoneOffset(), timeSerializingFormat);\r\n\r\n}\r\n\r\nexport function formatTimezoneOffset(minutes) {\r\n return _getSignedPaddedHours(minutes) + ':' + _getZeroPaddedString(Math.abs(minutes % 60));\r\n}\r\n\r\nexport function isInvalidDateString(value) {\r\n return isNaN(new Date(Date.parse(value)).getTime());\r\n}\r\n\r\nfunction _getSignedPaddedHours(minutes) {\r\n if (minutes > 0) {\r\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\r\n }\r\n else {\r\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\r\n }\r\n}\r\n\r\nfunction _getZeroPaddedString(time) {\r\n return time.toString().padStart(2, '0');\r\n}","import isEqual from 'lodash/isEqual';\r\nimport { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\r\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\r\nimport { getOptionsData, normalizeOptionsData } from './optionsUtil';\r\n\r\nexport function sanitizeDateTimePickerValue(options) {\r\n const {\r\n formField,\r\n value\r\n } = options;\r\n\r\n const { subtype } = formField;\r\n\r\n if (typeof value !== 'string') return null;\r\n\r\n if (subtype === DATETIME_SUBTYPES.DATE && (isInvalidDateString(value) || !isDateInputInformationMatching(value))) return null;\r\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\r\n if (subtype === DATETIME_SUBTYPES.DATETIME && (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))) return null;\r\n\r\n return value;\r\n}\r\n\r\nexport function hasEqualValue(value, array) {\r\n\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n return array.some(element => isEqual(value, element));\r\n}\r\n\r\nexport function sanitizeSingleSelectValue(options) {\r\n const {\r\n formField,\r\n data,\r\n value\r\n } = options;\r\n\r\n try {\r\n const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);\r\n return hasEqualValue(value, validValues) ? value : null;\r\n } catch (error) {\r\n\r\n // use default value in case of formatting error\r\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\r\n return null;\r\n }\r\n}\r\n\r\nexport function sanitizeMultiSelectValue(options) {\r\n const {\r\n formField,\r\n data,\r\n value\r\n } = options;\r\n\r\n try {\r\n const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);\r\n return value.filter(v => hasEqualValue(v, validValues));\r\n } catch (error) {\r\n\r\n // use default value in case of formatting error\r\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\r\n return [];\r\n }\r\n}\r\n\r\n\r\n","import { useEffect } from 'preact/hooks';\r\nimport { LOAD_STATES } from './useOptionsAsync';\r\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\r\n\r\nexport default function(props) {\r\n\r\n const {\r\n field,\r\n options,\r\n loadState,\r\n onChange,\r\n values\r\n } = props;\r\n\r\n // Ensures that the values are always a subset of the possible options\r\n useEffect(() => {\r\n\r\n if (loadState !== LOAD_STATES.LOADED) {\r\n return;\r\n }\r\n\r\n const optionValues = options.map(o => o.value);\r\n const hasValuesNotInOptions = values.some(v => !hasEqualValue(v, optionValues));\r\n\r\n if (hasValuesNotInOptions) {\r\n onChange({\r\n field,\r\n value: values.filter(v => hasEqualValue(v, optionValues))\r\n });\r\n }\r\n\r\n }, [ field, options, onChange, JSON.stringify(values), loadState ]);\r\n\r\n}","import { useRef } from 'preact/hooks';\r\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\r\nimport useCleanupMultiSelectValues from '../../hooks/useCleanupMultiSelectValues';\r\nimport classNames from 'classnames';\r\nimport isEqual from 'lodash/isEqual';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\r\n\r\nimport { createEmptyOptions } from '../util/optionsUtil';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nconst type = 'checklist';\r\n\r\n\r\nexport default function Checklist(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value: values = [],\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const outerDivRef = useRef();\r\n\r\n const { required } = validate;\r\n\r\n const toggleCheckbox = (toggledValue) => {\r\n\r\n const newValues = hasEqualValue(toggledValue, values)\r\n ? values.filter(value => !isEqual(value, toggledValue))\r\n : [ ...values, toggledValue ];\r\n\r\n props.onChange({\r\n field,\r\n value: newValues,\r\n });\r\n };\r\n\r\n const onCheckboxBlur = (e) => {\r\n\r\n if (outerDivRef.current.contains(e.relatedTarget)) {\r\n return;\r\n }\r\n\r\n onBlur && onBlur();\r\n };\r\n\r\n const onCheckboxFocus = (e) => {\r\n\r\n if (outerDivRef.current.contains(e.relatedTarget)) {\r\n return;\r\n }\r\n\r\n onFocus && onFocus();\r\n };\r\n\r\n const {\r\n loadState,\r\n options\r\n } = useOptionsAsync(field);\r\n\r\n useCleanupMultiSelectValues({\r\n field,\r\n loadState,\r\n options,\r\n values,\r\n onChange: props.onChange\r\n });\r\n\r\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly })) } ref={ outerDivRef }>\r\n <Label\r\n label={ label }\r\n required={ required } />\r\n {\r\n loadState == LOAD_STATES.LOADED && options.map((o, index) => {\r\n\r\n const itemDomId = `${domId}-${index}`;\r\n const isChecked = hasEqualValue(o.value, values);\r\n\r\n return (\r\n <Label\r\n id={ itemDomId }\r\n label={ o.label }\r\n class={ classNames({\r\n 'fjs-checked': isChecked\r\n }) }\r\n required={ false }>\r\n <input\r\n checked={ isChecked }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ itemDomId }\r\n type=\"checkbox\"\r\n onClick={ () => toggleCheckbox(o.value) }\r\n onBlur={ onCheckboxBlur }\r\n onFocus={ onCheckboxFocus }\r\n aria-describedby={ errorMessageId } />\r\n </Label>\r\n );\r\n })\r\n }\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nChecklist.config = {\r\n type,\r\n keyed: true,\r\n label: 'Checkbox group',\r\n group: 'selection',\r\n emptyValue: [],\r\n sanitizeValue: sanitizeMultiSelectValue,\r\n create: createEmptyOptions\r\n};\r\n","import { useCallback, useContext, useEffect, useMemo } from 'preact/hooks';\r\n\r\nimport { get } from 'min-dash';\r\n\r\nimport { FormContext, FormRenderContext } from '../context';\r\n\r\nimport {\r\n useCondition,\r\n useReadonly,\r\n useService\r\n} from '../hooks';\r\n\r\nimport { gridColumnClasses, prefixId } from './Util';\r\n\r\nconst noop = () => false;\r\n\r\n\r\nexport default function FormField(props) {\r\n const {\r\n field,\r\n indexes,\r\n onChange\r\n } = props;\r\n\r\n const formFields = useService('formFields'),\r\n viewerCommands = useService('viewerCommands', false),\r\n pathRegistry = useService('pathRegistry'),\r\n eventBus = useService('eventBus'),\r\n form = useService('form');\r\n\r\n const {\r\n initialData,\r\n data,\r\n errors,\r\n properties\r\n } = form._getState();\r\n\r\n const {\r\n Element,\r\n Hidden,\r\n Column\r\n } = useContext(FormRenderContext);\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n const FormFieldComponent = formFields.get(field.type);\r\n\r\n if (!FormFieldComponent) {\r\n throw new Error(`cannot render field <${field.type}>`);\r\n }\r\n\r\n const valuePath = useMemo(() => pathRegistry.getValuePath(field, { indexes }), [ field, indexes, pathRegistry ]);\r\n\r\n const initialValue = useMemo(() => get(initialData, valuePath), [ initialData, valuePath ]);\r\n\r\n const readonly = useReadonly(field, properties);\r\n\r\n const value = get(data, valuePath);\r\n\r\n // add precedence: global readonly > form field disabled\r\n const disabled = !properties.readOnly && (\r\n properties.disabled || field.disabled || false\r\n );\r\n\r\n const onBlur = useCallback(() => {\r\n if (viewerCommands) {\r\n viewerCommands.updateFieldValidation(field, value, indexes);\r\n }\r\n eventBus.fire('formField.blur', { formField: field });\r\n }, [ eventBus, viewerCommands, field, value, indexes ]);\r\n\r\n const onFocus = useCallback(() => {\r\n eventBus.fire('formField.focus', { formField: field });\r\n }, [ eventBus, field ]);\r\n\r\n useEffect(() => {\r\n if (viewerCommands && initialValue) {\r\n viewerCommands.updateFieldValidation(field, initialValue, indexes);\r\n }\r\n }, [ viewerCommands, field, initialValue, JSON.stringify(indexes) ]);\r\n\r\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\r\n\r\n const onChangeIndexed = useCallback((update) => {\r\n\r\n // add indexes of the keyed field to the update, if any\r\n onChange(FormFieldComponent.config.keyed ? { ...update, indexes } : update);\r\n }, [ onChange, FormFieldComponent.config.keyed, indexes ]);\r\n\r\n if (hidden) {\r\n return <Hidden field={ field } />;\r\n }\r\n\r\n const domId = `${prefixId(field.id, formId, indexes)}`;\r\n const fieldErrors = get(errors, [ field.id, ...Object.values(indexes || {}) ]) || [];\r\n const errorMessageId = errors.length === 0 ? undefined : `${domId}-error-message`;\r\n\r\n return (\r\n <Column field={ field } class={ gridColumnClasses(field) }>\r\n <Element class=\"fjs-element\" field={ field }>\r\n <FormFieldComponent\r\n { ...props }\r\n disabled={ disabled }\r\n errors={ fieldErrors }\r\n errorMessageId={ errorMessageId }\r\n domId={ domId }\r\n onChange={ disabled || readonly ? noop : onChangeIndexed }\r\n onBlur={ disabled || readonly ? noop : onBlur }\r\n onFocus={ disabled || readonly ? noop : onFocus }\r\n readonly={ readonly }\r\n value={ value } />\r\n </Element>\r\n </Column>\r\n );\r\n}\r\n","import { useContext, useState } from 'preact/hooks';\r\n\r\nimport useService from '../../../hooks/useService';\r\n\r\nimport FormField from '../../FormField';\r\n\r\nimport { FormRenderContext } from '../../../context';\r\n\r\nexport default function ChildrenRenderer(props) {\r\n\r\n const {\r\n Children\r\n } = useContext(FormRenderContext);\r\n\r\n const { field, Empty } = props;\r\n\r\n const { id } = field;\r\n\r\n const repeatRenderManager = useService('repeatRenderManager', false);\r\n\r\n const isRepeating = repeatRenderManager && repeatRenderManager.isFieldRepeating(id);\r\n\r\n const Repeater = repeatRenderManager.Repeater;\r\n const RepeatFooter = repeatRenderManager.RepeatFooter;\r\n\r\n return (\r\n isRepeating\r\n ? <RepeatChildrenRenderer { ...props } { ...{ ChildrenRoot: Children, Empty, Repeater, RepeatFooter, repeatRenderManager } } />\r\n : <SimpleChildrenRenderer { ...props } { ...{ ChildrenRoot: Children, Empty } } />\r\n );\r\n}\r\n\r\nfunction SimpleChildrenRenderer(props) {\r\n\r\n const {\r\n ChildrenRoot,\r\n Empty,\r\n field\r\n } = props;\r\n\r\n const { components = [] } = field;\r\n\r\n const isEmpty = !components.length;\r\n\r\n return (\r\n <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\r\n <RowsRenderer { ...props } />\r\n { isEmpty ? <Empty field={ field } /> : null }\r\n </ChildrenRoot>\r\n );\r\n}\r\n\r\nfunction RepeatChildrenRenderer(props) {\r\n\r\n const {\r\n ChildrenRoot,\r\n repeatRenderManager,\r\n Empty,\r\n field,\r\n ...restProps\r\n } = props;\r\n\r\n const { components = [] } = field;\r\n\r\n const useSharedState = useState({ isCollapsed: true });\r\n\r\n const Repeater = repeatRenderManager.Repeater;\r\n const RepeatFooter = repeatRenderManager.RepeatFooter;\r\n\r\n return <>\r\n <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\r\n { Repeater ? <Repeater { ...{ ...restProps, useSharedState, field, RowsRenderer } } /> : <RowsRenderer { ...{ ...restProps, field } } /> }\r\n { !components.length ? <Empty field={ field } /> : null }\r\n </ChildrenRoot>\r\n { RepeatFooter ? <RepeatFooter { ...{ ...restProps, useSharedState, field } } /> : null }\r\n </>;\r\n}\r\n\r\nfunction RowsRenderer(props) {\r\n\r\n const { field, indexes } = props;\r\n const { id: parentId, verticalAlignment = 'start' } = field;\r\n\r\n const formLayouter = useService('formLayouter');\r\n const formFieldRegistry = useService('formFieldRegistry');\r\n const rows = formLayouter.getRows(parentId);\r\n\r\n const {\r\n Row\r\n } = useContext(FormRenderContext);\r\n\r\n return <> {\r\n rows.map(row => {\r\n const {\r\n components = []\r\n } = row;\r\n\r\n if (!components.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Row row={ row } class=\"fjs-layout-row cds--row\" style={ { alignItems: verticalAlignment } }>\r\n {\r\n components.map(childId => {\r\n\r\n const childField = formFieldRegistry.get(childId);\r\n\r\n if (!childField) {\r\n return null;\r\n }\r\n\r\n return (\r\n <FormField\r\n { ...props }\r\n key={ childId }\r\n field={ childField }\r\n indexes={ indexes } />\r\n );\r\n })\r\n }\r\n </Row>\r\n );\r\n })\r\n } </>;\r\n}\r\n","import { useContext } from 'preact/hooks';\r\nimport { FormRenderContext } from '../../context';\r\nimport ChildrenRenderer from './parts/ChildrenRenderer';\r\n\r\nexport default function FormComponent(props) {\r\n\r\n const {\r\n Empty,\r\n } = useContext(FormRenderContext);\r\n\r\n const fullProps = { ...props, Empty };\r\n\r\n return <ChildrenRenderer { ...fullProps } />;\r\n}\r\n\r\nFormComponent.config = {\r\n type: 'default',\r\n keyed: false,\r\n label: null,\r\n group: null,\r\n create: (options = {}) => ({\r\n components: [],\r\n ...options\r\n })\r\n};\r\n","/**\r\n * Returns date format for the provided locale.\r\n * If the locale is not provided, uses the browser's locale.\r\n *\r\n * @param {string} [locale] - The locale to get date format for.\r\n * @returns {string} The date format for the locale.\r\n */\r\nexport function getLocaleDateFormat(locale = 'default') {\r\n const parts = new Intl.DateTimeFormat(locale).formatToParts(new Date(Date.UTC(2020, 5, 5)));\r\n return parts.map(part => {\r\n const len = part.value.length;\r\n switch (part.type) {\r\n case 'day': return 'd'.repeat(len);\r\n case 'month': return 'M'.repeat(len);\r\n case 'year': return 'y'.repeat(len);\r\n default: return part.value;\r\n }\r\n }).join('');\r\n}\r\n\r\n/**\r\n * Returns readable date format for the provided locale.\r\n * If the locale is not provided, uses the browser's locale.\r\n *\r\n * @param {string} [locale] - The locale to get readable date format for.\r\n * @returns {string} The readable date format for the locale.\r\n */\r\nexport function getLocaleReadableDateFormat(locale) {\r\n let format = getLocaleDateFormat(locale).toLowerCase();\r\n\r\n // Ensure month is in 'mm' format\r\n if (!format.includes('mm')) {\r\n format = format.replace('m', 'mm');\r\n }\r\n\r\n // Ensure day is in 'dd' format\r\n if (!format.includes('dd')) {\r\n format = format.replace('d', 'dd');\r\n }\r\n\r\n return format;\r\n}\r\n\r\n/**\r\n * Returns flatpickr config for the provided locale.\r\n * If the locale is not provided, uses the browser's locale.\r\n *\r\n * @param {string} [locale] - The locale to get flatpickr config for.\r\n * @returns {object} The flatpickr config for the locale.\r\n */\r\nexport function getLocaleDateFlatpickrConfig(locale) {\r\n return flatpickerizeDateFormat(getLocaleDateFormat(locale));\r\n}\r\n\r\nfunction flatpickerizeDateFormat(dateFormat) {\r\n\r\n const useLeadingZero = {\r\n day: dateFormat.includes('dd'),\r\n month: dateFormat.includes('MM'),\r\n year: dateFormat.includes('yyyy')\r\n };\r\n\r\n dateFormat = useLeadingZero.day ? dateFormat.replace('dd', 'd') : dateFormat.replace('d', 'j');\r\n dateFormat = useLeadingZero.month ? dateFormat.replace('MM', 'm') : dateFormat.replace('M', 'n');\r\n dateFormat = useLeadingZero.year ? dateFormat.replace('yyyy', 'Y') : dateFormat.replace('yy', 'y');\r\n\r\n return dateFormat;\r\n}\r\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>","import classNames from 'classnames';\r\nimport { isString } from 'min-dash';\r\n\r\nexport default function InputAdorner(props) {\r\n\r\n const {\r\n pre,\r\n post,\r\n rootRef,\r\n inputRef,\r\n children,\r\n disabled,\r\n readonly,\r\n hasErrors\r\n } = props;\r\n\r\n const onAdornmentClick = () => inputRef && inputRef.current && inputRef.current.focus();\r\n\r\n return <div class={ classNames('fjs-input-group', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }, { 'hasErrors': hasErrors }) } ref={ rootRef }>\r\n { pre && <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={ onAdornmentClick }> { isString(pre) ? <span class=\"fjs-input-adornment-text\">{ pre }</span> : pre } </span> }\r\n { children }\r\n { post && <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={ onAdornmentClick }> { isString(post) ? <span class=\"fjs-input-adornment-text\">{ post }</span> : post } </span> }\r\n </div>;\r\n\r\n}","import flatpickr from 'flatpickr';\r\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\r\nimport { getLocaleReadableDateFormat, getLocaleDateFlatpickrConfig } from '../../util/localisationUtil';\r\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\r\n\r\nimport CalendarIcon from '../icons/Calendar.svg';\r\nimport InputAdorner from './InputAdorner';\r\nimport Label from '../../Label';\r\n\r\nexport default function Datepicker(props) {\r\n\r\n const {\r\n label,\r\n domId,\r\n collapseLabelOnEmpty,\r\n onDateTimeBlur,\r\n onDateTimeFocus,\r\n required,\r\n disabled,\r\n disallowPassedDates,\r\n date,\r\n readonly,\r\n setDate\r\n } = props;\r\n\r\n const dateInputRef = useRef();\r\n const focusScopeRef = useRef();\r\n\r\n const [ flatpickrInstance, setFlatpickrInstance ] = useState(null);\r\n const [ isInputDirty, setIsInputDirty ] = useState(false);\r\n const [ forceFocusCalendar, setForceFocusCalendar ] = useState(false);\r\n\r\n // shorts the date value back to the source\r\n useEffect(() => {\r\n\r\n if (!flatpickrInstance || !flatpickrInstance.config) return;\r\n\r\n flatpickrInstance.setDate(date, true);\r\n setIsInputDirty(false);\r\n\r\n }, [ flatpickrInstance, date.toString() ]);\r\n\r\n useEffect(() => {\r\n\r\n if (!forceFocusCalendar) return;\r\n\r\n focusRelevantFlatpickerDay(flatpickrInstance);\r\n setForceFocusCalendar(false);\r\n\r\n }, [ flatpickrInstance, forceFocusCalendar ]);\r\n\r\n // setup flatpickr instance\r\n useEffect(() => {\r\n\r\n let config = {\r\n allowInput: true,\r\n dateFormat: getLocaleDateFlatpickrConfig(),\r\n static: true,\r\n clickOpens: false,\r\n\r\n // TODO: support dates prior to 1900 (https://github.com/bpmn-io/form-js/issues/533)\r\n minDate: disallowPassedDates ? 'today' : '01/01/1900',\r\n errorHandler: () => { /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */ }\r\n };\r\n\r\n const instance = flatpickr(dateInputRef.current, config);\r\n\r\n setFlatpickrInstance(instance);\r\n\r\n const onCalendarFocusOut = (e) => {\r\n if (!instance.calendarContainer.contains(e.relatedTarget) && e.relatedTarget != dateInputRef.current) {\r\n instance.close();\r\n }\r\n };\r\n\r\n // remove dirty tag to have mouse day selection prioritize input blur\r\n const onCalendarMouseDown = (e) => {\r\n if (e.target.classList.contains('flatpickr-day')) {\r\n setIsInputDirty(false);\r\n }\r\n };\r\n\r\n // when the dropdown of the datepickr opens, we register a few event handlers to re-implement some of the\r\n // flatpicker logic that was lost when setting allowInput to true\r\n instance.config.onOpen = [\r\n () => instance.calendarContainer.addEventListener('focusout', onCalendarFocusOut),\r\n () => instance.calendarContainer.addEventListener('mousedown', onCalendarMouseDown),\r\n ];\r\n\r\n instance.config.onClose = [\r\n () => instance.calendarContainer.removeEventListener('focusout', onCalendarFocusOut),\r\n () => instance.calendarContainer.removeEventListener('mousedown', onCalendarMouseDown),\r\n ];\r\n\r\n }, [ disallowPassedDates ]);\r\n\r\n // onChange is updated dynamically, so not to re-render the flatpicker every time it changes\r\n useEffect(() => {\r\n\r\n if (!flatpickrInstance || !flatpickrInstance.config) return;\r\n\r\n flatpickrInstance.config.onChange = [ (date) => setDate(new Date(date)), () => setIsInputDirty(false) ];\r\n\r\n }, [ flatpickrInstance, setDate ]);\r\n\r\n const onInputKeyDown = useCallback(\r\n (e) => {\r\n\r\n if (!flatpickrInstance) return;\r\n\r\n if (e.code === 'Escape') {\r\n flatpickrInstance.close();\r\n }\r\n\r\n if (e.code === 'ArrowDown') {\r\n\r\n if (isInputDirty) {\r\n\r\n // trigger an enter keypress to submit the new input, then focus calendar day on the next render cycle\r\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\r\n setIsInputDirty(false);\r\n setForceFocusCalendar(true);\r\n }\r\n else {\r\n\r\n // focus calendar day immediately\r\n focusRelevantFlatpickerDay(flatpickrInstance);\r\n }\r\n\r\n e.preventDefault();\r\n }\r\n\r\n if (e.code === 'Enter') {\r\n setIsInputDirty(false);\r\n }\r\n },\r\n [ flatpickrInstance, isInputDirty ],\r\n );\r\n\r\n const onInputFocus = useCallback(\r\n (e) => {\r\n\r\n if (!flatpickrInstance || focusScopeRef.current.contains(e.relatedTarget) || readonly) return;\r\n flatpickrInstance.open();\r\n onDateTimeFocus(e);\r\n\r\n }, [ flatpickrInstance, readonly, onDateTimeFocus ]\r\n );\r\n\r\n // simulate an enter press on blur to make sure the date value is submitted in all scenarios\r\n const onInputBlur = useCallback(\r\n (e) => {\r\n\r\n const isFalseBlur = e.relatedTarget && e.relatedTarget.classList.contains('flatpickr-day');\r\n if (isFalseBlur) return;\r\n if (isInputDirty) {\r\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\r\n setIsInputDirty(false);\r\n }\r\n\r\n onDateTimeBlur(e);\r\n\r\n }, [ isInputDirty, onDateTimeBlur ]\r\n );\r\n\r\n return <div class=\"fjs-datetime-subsection\">\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n collapseOnEmpty={ collapseLabelOnEmpty }\r\n required={ required } />\r\n <InputAdorner\r\n pre={ <CalendarIcon /> }\r\n disabled={ disabled }\r\n readonly={ readonly }\r\n rootRef={ focusScopeRef }\r\n inputRef={ dateInputRef }>\r\n <div class=\"fjs-datepicker\" style={ { width: '100%' } }>\r\n <input ref={ dateInputRef }\r\n type=\"text\"\r\n id={ domId }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n placeholder={ getLocaleReadableDateFormat() }\r\n autoComplete=\"off\"\r\n onFocus={ onInputFocus }\r\n onBlur={ onInputBlur }\r\n onKeyDown={ onInputKeyDown }\r\n onMouseDown={ () => !flatpickrInstance.isOpen && !readonly && flatpickrInstance.open() }\r\n onInput={ () => setIsInputDirty(true) }\r\n data-input\r\n aria-describedby={ props['aria-describedby'] } />\r\n </div>\r\n </InputAdorner>\r\n </div>\r\n ;\r\n}\r\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';\r\nimport { useState, useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\r\nimport useKeyDownAction from '../../../hooks/useKeyDownAction';\r\n\r\nconst DEFAULT_LABEL_GETTER = (value) => value;\r\nconst NOOP = () => {};\r\n\r\nexport default function DropdownList(props) {\r\n\r\n const {\r\n listenerElement = window,\r\n values = [],\r\n getLabel = DEFAULT_LABEL_GETTER,\r\n onValueSelected = NOOP,\r\n height = 235,\r\n emptyListMessage = 'No results',\r\n initialFocusIndex = 0\r\n } = props;\r\n\r\n const [ mouseControl, setMouseControl ] = useState(false);\r\n const [ focusedValueIndex, setFocusedValueIndex ] = useState(initialFocusIndex);\r\n const [ smoothScrolling, setSmoothScrolling ] = useState(false);\r\n const dropdownContainer = useRef();\r\n const mouseScreenPos = useRef();\r\n\r\n const focusedItem = useMemo(() => values.length ? values[focusedValueIndex] : null, [ focusedValueIndex, values ]);\r\n\r\n const changeFocusedValueIndex = useCallback((delta) => {\r\n setFocusedValueIndex(x => Math.min(Math.max(0, x + delta), values.length - 1));\r\n }, [ values.length ]);\r\n\r\n useEffect(() => {\r\n if (focusedValueIndex === 0) return;\r\n\r\n if (!focusedValueIndex || !values.length) {\r\n setFocusedValueIndex(0);\r\n }\r\n else if (focusedValueIndex >= values.length) {\r\n setFocusedValueIndex(values.length - 1);\r\n }\r\n }, [ focusedValueIndex, values.length ]);\r\n\r\n useKeyDownAction('ArrowUp', () => {\r\n if (values.length) {\r\n changeFocusedValueIndex(-1);\r\n setMouseControl(false);\r\n }\r\n }, listenerElement);\r\n\r\n useKeyDownAction('ArrowDown', () => {\r\n if (values.length) {\r\n changeFocusedValueIndex(1);\r\n setMouseControl(false);\r\n }\r\n }, listenerElement);\r\n\r\n useKeyDownAction('Enter', () => {\r\n if (focusedItem) {\r\n onValueSelected(focusedItem);\r\n }\r\n }, listenerElement);\r\n\r\n useEffect(() => {\r\n const individualEntries = dropdownContainer.current.children;\r\n if (individualEntries.length && !mouseControl) {\r\n const focusedEntry = individualEntries[focusedValueIndex];\r\n focusedEntry && focusedEntry.scrollIntoView({ block: 'nearest', inline: 'nearest' });\r\n }\r\n }, [ focusedValueIndex, mouseControl ]);\r\n\r\n useEffect(() => {\r\n setSmoothScrolling(true);\r\n }, []);\r\n\r\n const onMouseMovedInKeyboardMode = (event, valueIndex) => {\r\n\r\n const userMovedCursor = !mouseScreenPos.current || mouseScreenPos.current.x !== event.screenX && mouseScreenPos.current.y !== event.screenY;\r\n\r\n if (userMovedCursor) {\r\n mouseScreenPos.current = { x: event.screenX, y: event.screenY };\r\n setMouseControl(true);\r\n setFocusedValueIndex(valueIndex);\r\n }\r\n\r\n };\r\n\r\n return <div\r\n ref={ dropdownContainer }\r\n tabIndex={ -1 }\r\n class=\"fjs-dropdownlist\"\r\n onMouseDown={ (e) => e.preventDefault() }\r\n style={ { maxHeight: height, scrollBehavior: smoothScrolling ? 'smooth' : 'auto' } }>\r\n {\r\n values.length > 0 && values.map((v, i) => {\r\n return (\r\n <div\r\n class={ classNames('fjs-dropdownlist-item', { 'focused': focusedValueIndex === i }) }\r\n onMouseMove={ mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, i) }\r\n onMouseEnter={ mouseControl ? () => setFocusedValueIndex(i) : undefined }\r\n onMouseDown={ (e) => onValueSelected(v) }>\r\n {getLabel(v)}\r\n </div>\r\n );\r\n })\r\n }\r\n {\r\n !values.length && <div class=\"fjs-dropdownlist-empty\">{ emptyListMessage }</div>\r\n }\r\n </div>;\r\n}","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\r\nimport { isNumber } from 'min-dash';\r\n\r\nimport ClockIcon from '../icons/Clock.svg';\r\nimport DropdownList from './DropdownList';\r\nimport InputAdorner from './InputAdorner';\r\nimport Label from '../../Label';\r\n\r\nexport default function Timepicker(props) {\r\n\r\n const {\r\n label,\r\n collapseLabelOnEmpty,\r\n onDateTimeBlur,\r\n onDateTimeFocus,\r\n domId,\r\n required,\r\n disabled,\r\n readonly,\r\n use24h = false,\r\n timeInterval,\r\n time,\r\n setTime\r\n } = props;\r\n\r\n const safeTimeInterval = useMemo(() => {\r\n\r\n const allowedIntervals = [ 1, 5, 10, 15, 30, 60 ];\r\n\r\n if (allowedIntervals.includes(timeInterval)) {\r\n return timeInterval;\r\n }\r\n\r\n return 15;\r\n\r\n }, [ timeInterval ]);\r\n\r\n const timeInputRef = useRef();\r\n const [ dropdownIsOpen, setDropdownIsOpen ] = useState(false);\r\n const useDropdown = useMemo(() => safeTimeInterval !== 1, [ safeTimeInterval ]);\r\n\r\n const [ rawValue, setRawValue ] = useState('');\r\n\r\n // populates values from source\r\n useEffect(() => {\r\n if (time === null) {\r\n setRawValue('');\r\n return;\r\n }\r\n\r\n const intervalAdjustedTime = time - (time % safeTimeInterval);\r\n setRawValue(formatTime(use24h, intervalAdjustedTime));\r\n\r\n if (intervalAdjustedTime != time) {\r\n setTime(intervalAdjustedTime);\r\n }\r\n\r\n }, [ time, setTime, use24h, safeTimeInterval ]);\r\n\r\n const propagateRawToMinute = useCallback((newRawValue) => {\r\n\r\n const localRawValue = newRawValue || rawValue;\r\n\r\n // If no raw value exists, set the minute to null\r\n if (!localRawValue) {\r\n setTime(null);\r\n return;\r\n }\r\n\r\n const minutes = parseInputTime(localRawValue);\r\n\r\n // If raw string couldn't be parsed, clean everything up\r\n if (!isNumber(minutes)) {\r\n setRawValue('');\r\n setTime(null);\r\n return;\r\n }\r\n\r\n // Enforce the minutes to match the timeInterval\r\n const correctedMinutes = minutes - (minutes % safeTimeInterval);\r\n\r\n // Enforce the raw text to be formatted properly\r\n setRawValue(formatTime(use24h, correctedMinutes));\r\n setTime(correctedMinutes);\r\n\r\n }, [ rawValue, safeTimeInterval, use24h, setTime ]);\r\n\r\n const timeOptions = useMemo(() => {\r\n\r\n const minutesInDay = 24 * 60;\r\n const intervalCount = Math.floor(minutesInDay / safeTimeInterval);\r\n return [ ...Array(intervalCount).keys() ].map(intervalIndex => formatTime(use24h, intervalIndex * safeTimeInterval));\r\n\r\n }, [ safeTimeInterval, use24h ]);\r\n\r\n const initialFocusIndex = useMemo(() => {\r\n\r\n // if there are no options, there will not be any focusing\r\n if (!timeOptions || !safeTimeInterval) return null;\r\n\r\n // if there is a set minute value, we focus it in the dropdown\r\n if (time) return time / safeTimeInterval;\r\n\r\n const cacheTime = parseInputTime(rawValue);\r\n\r\n // if there is a valid value in the input cache, we try and focus close to it\r\n if (cacheTime) {\r\n const flooredCacheTime = cacheTime - cacheTime % safeTimeInterval;\r\n return flooredCacheTime / safeTimeInterval;\r\n }\r\n\r\n // If there is no set value, simply focus the middle of the dropdown (12:00)\r\n return Math.floor(timeOptions.length / 2);\r\n\r\n }, [ rawValue, time, safeTimeInterval, timeOptions ]);\r\n\r\n const onInputKeyDown = (e) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n break;\r\n case 'ArrowDown':\r\n useDropdown && setDropdownIsOpen(true);\r\n e.preventDefault();\r\n break;\r\n case 'Escape':\r\n useDropdown && setDropdownIsOpen(false);\r\n break;\r\n case 'Enter':\r\n !dropdownIsOpen && propagateRawToMinute();\r\n break;\r\n }\r\n };\r\n\r\n const onInputBlur = (e) => {\r\n setDropdownIsOpen(false);\r\n propagateRawToMinute();\r\n onDateTimeBlur(e);\r\n };\r\n\r\n const onInputFocus = (e) => {\r\n onDateTimeFocus(e);\r\n !readonly && useDropdown && setDropdownIsOpen(true);\r\n };\r\n\r\n const onDropdownValueSelected = (value) => {\r\n setDropdownIsOpen(false);\r\n propagateRawToMinute(value);\r\n };\r\n\r\n return <div class=\"fjs-datetime-subsection\">\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n collapseOnEmpty={ collapseLabelOnEmpty }\r\n required={ required } />\r\n <InputAdorner\r\n pre={ <ClockIcon /> }\r\n inputRef={ timeInputRef }\r\n disabled={ disabled }\r\n readonly={ readonly }>\r\n <div class=\"fjs-timepicker fjs-timepicker-anchor\">\r\n <input ref={ timeInputRef }\r\n type=\"text\"\r\n id={ domId }\r\n class=\"fjs-input\"\r\n value={ rawValue }\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n placeholder={ use24h ? 'hh:mm' : 'hh:mm ?m' }\r\n autoComplete=\"off\"\r\n\r\n // @ts-ignore\r\n onInput={ (e) => { setRawValue(e.target.value); useDropdown && setDropdownIsOpen(false); } }\r\n onBlur={ onInputBlur }\r\n onFocus={ onInputFocus }\r\n onClick={ () => !readonly && useDropdown && setDropdownIsOpen(true) }\r\n onKeyDown={ onInputKeyDown }\r\n data-input\r\n aria-describedby={ props['aria-describedby'] } />\r\n\r\n { dropdownIsOpen && <DropdownList\r\n values={ timeOptions }\r\n height={ 150 }\r\n onValueSelected={ onDropdownValueSelected }\r\n listenerElement={ timeInputRef.current }\r\n initialFocusIndex={ initialFocusIndex } /> }\r\n\r\n </div>\r\n </InputAdorner>\r\n </div>;\r\n}\r\n","import { useCallback, useContext, useMemo, useState, useEffect, useRef } from 'preact/hooks';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { set } from 'min-dash';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { DATETIME_SUBTYPES, DATETIME_SUBTYPE_PATH, DATE_LABEL_PATH } from '../../../util/constants/DatetimeConstants';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Datepicker from './parts/Datepicker';\r\nimport Timepicker from './parts/Timepicker';\r\n\r\nimport { formFieldClasses, prefixId } from '../Util';\r\nimport { sanitizeDateTimePickerValue } from '../util/sanitizerUtil';\r\nimport { parseIsoTime, serializeDate, serializeDateTime, serializeTime } from '../util/dateTimeUtil';\r\n\r\nconst type = 'datetime';\r\n\r\nexport default function Datetime(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n onChange,\r\n readonly,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n dateLabel,\r\n timeLabel,\r\n validate = {},\r\n subtype,\r\n use24h,\r\n disallowPassedDates,\r\n timeInterval,\r\n timeSerializingFormat\r\n } = field;\r\n\r\n const { required } = validate;\r\n const { formId } = useContext(FormContext);\r\n const dateTimeGroupRef = useRef();\r\n\r\n const getNullDateTime = () => ({ date: new Date(Date.parse(null)), time: null });\r\n\r\n const [ dateTime, setDateTime ] = useState(getNullDateTime());\r\n const [ dateTimeUpdateRequest, setDateTimeUpdateRequest ] = useState(null);\r\n\r\n const isValidDate = (date) => date && !isNaN(date.getTime());\r\n const isValidTime = (time) => !isNaN(parseInt(time));\r\n\r\n const useDatePicker = useMemo(() => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\r\n const useTimePicker = useMemo(() => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\r\n\r\n const onDateTimeBlur = useCallback((e) => {\r\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\r\n return;\r\n }\r\n\r\n onBlur && onBlur();\r\n }, [ onBlur ]);\r\n\r\n const onDateTimeFocus = useCallback((e) => {\r\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\r\n return;\r\n }\r\n\r\n onFocus && onFocus();\r\n }, [ onFocus ]);\r\n\r\n useEffect(() => {\r\n\r\n let { date, time } = getNullDateTime();\r\n\r\n switch (subtype) {\r\n case DATETIME_SUBTYPES.DATE: {\r\n date = new Date(Date.parse(value));\r\n break;\r\n }\r\n case DATETIME_SUBTYPES.TIME: {\r\n time = parseIsoTime(value);\r\n break;\r\n }\r\n case DATETIME_SUBTYPES.DATETIME: {\r\n date = new Date(Date.parse(value));\r\n time = isValidDate(date) ? 60 * date.getHours() + date.getMinutes() : null;\r\n break;\r\n }}\r\n\r\n setDateTime({ date, time });\r\n\r\n }, [ subtype, value ]);\r\n\r\n const computeAndSetState = useCallback(({ date, time }) => {\r\n\r\n let newDateTimeValue = null;\r\n\r\n if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\r\n newDateTimeValue = serializeDate(date);\r\n }\r\n else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\r\n newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\r\n }\r\n else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\r\n newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\r\n }\r\n\r\n onChange({ value: newDateTimeValue, field });\r\n\r\n }, [ field, onChange, subtype, timeSerializingFormat ]);\r\n\r\n useEffect(() => {\r\n if (dateTimeUpdateRequest) {\r\n if (dateTimeUpdateRequest.refreshOnly) {\r\n computeAndSetState(dateTime);\r\n }\r\n else {\r\n const newDateTime = { ...dateTime, ...dateTimeUpdateRequest };\r\n setDateTime(newDateTime);\r\n computeAndSetState(newDateTime);\r\n }\r\n setDateTimeUpdateRequest(null);\r\n }\r\n }, [ computeAndSetState, dateTime, dateTimeUpdateRequest ]);\r\n\r\n useEffect(() => {\r\n setDateTimeUpdateRequest({ refreshOnly: true });\r\n }, [ timeSerializingFormat ]);\r\n\r\n const allErrors = useMemo(() => {\r\n if (required || subtype !== DATETIME_SUBTYPES.DATETIME) return errors;\r\n const isOnlyOneFieldSet = (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) || (!isValidDate(dateTime.date) && isValidTime(dateTime.time));\r\n return isOnlyOneFieldSet ? [ 'Date and time must both be entered.', ...errors ] : errors;\r\n }, [ required, subtype, dateTime, errors ]);\r\n\r\n const setDate = useCallback((date) => {\r\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, date } : { date }));\r\n }, []);\r\n\r\n const setTime = useCallback((time) => {\r\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, time } : { time }));\r\n }, []);\r\n\r\n const errorMessageId = allErrors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n const datePickerProps = {\r\n label: dateLabel,\r\n collapseLabelOnEmpty: !timeLabel,\r\n onDateTimeBlur,\r\n onDateTimeFocus,\r\n domId: `${domId}-date`,\r\n required,\r\n disabled,\r\n disallowPassedDates,\r\n date: dateTime.date,\r\n readonly,\r\n setDate,\r\n 'aria-describedby': errorMessageId\r\n };\r\n\r\n const timePickerProps = {\r\n label: timeLabel,\r\n collapseLabelOnEmpty: !dateLabel,\r\n onDateTimeBlur,\r\n onDateTimeFocus,\r\n domId: `${domId}-time`,\r\n required,\r\n disabled,\r\n readonly,\r\n use24h,\r\n timeInterval,\r\n time: dateTime.time,\r\n setTime,\r\n 'aria-describedby': errorMessageId\r\n };\r\n\r\n return <div class={ formFieldClasses(type, { errors: allErrors, disabled, readonly }) }>\r\n <div class={ classNames('fjs-vertical-group') } ref={ dateTimeGroupRef }>\r\n { useDatePicker && <Datepicker { ...datePickerProps } /> }\r\n { useTimePicker && useDatePicker && <div class=\"fjs-datetime-separator\" /> }\r\n { useTimePicker && <Timepicker { ...timePickerProps } /> }\r\n </div>\r\n <Description description={ description } />\r\n <Errors errors={ allErrors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nDatetime.config = {\r\n type,\r\n keyed: true,\r\n label: 'Date time',\r\n group: 'basic-input',\r\n emptyValue: null,\r\n sanitizeValue: sanitizeDateTimePickerValue,\r\n create: (options = {}) => {\r\n const defaults = {};\r\n set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\r\n set(defaults, DATE_LABEL_PATH, 'Date');\r\n\r\n return { ...defaults, ...options };\r\n }\r\n};\r\n","/**\r\n * This file must not be changed or exchanged.\r\n *\r\n * @see http://bpmn.io/license for more information.\r\n */\r\nimport { Fragment } from 'preact';\r\nimport { useState } from 'preact/hooks';\r\nimport { createPortal } from 'preact/compat';\r\n\r\nfunction Logo() {\r\n return <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14.02 5.57\" width=\"53\" height=\"21\" style=\"vertical-align:middle\"><path fill=\"currentColor\" 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\" /><path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\" /></svg>;\r\n}\r\n\r\nfunction Lightbox(props) {\r\n const { open } = props;\r\n\r\n if (!open) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div class=\"fjs-powered-by-lightbox\" style=\"z-index: 100; position: fixed; top: 0; left: 0;right: 0; bottom: 0\">\r\n <div class=\"backdrop\" style=\"width: 100%; height: 100%; background: rgba(40 40 40 / 20%)\" onClick={ props.onBackdropClick }></div>\r\n <div class=\"notice\" 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\">\r\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" style=\"margin: 15px 20px 15px 10px; align-self: center; color: var(--cds-icon-primary, #404040)\">\r\n <Logo />\r\n </a>\r\n <span>\r\n Web-based tooling for BPMN, DMN, and forms\r\n powered by <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">bpmn.io</a>.\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Link(props) {\r\n return (\r\n <div class=\"fjs-powered-by fjs-form-field\" style=\"text-align: right\">\r\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" class=\"fjs-powered-by-link\" title=\"Powered by bpmn.io\" style=\"color: var(--cds-text-primary, #404040)\" onClick={ props.onClick }><Logo /></a>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function PoweredBy(props) {\r\n\r\n const [ open, setOpen ] = useState(false);\r\n\r\n function toggleOpen(open) {\r\n return (event) => {\r\n event.preventDefault();\r\n\r\n setOpen(open);\r\n };\r\n }\r\n\r\n return (\r\n <Fragment>\r\n {\r\n createPortal(\r\n <Lightbox open={ open } onBackdropClick={ toggleOpen(false) } />,\r\n document.body\r\n )\r\n }\r\n <Link onClick={ toggleOpen(true) } />\r\n </Fragment>\r\n );\r\n}","import FormField from './FormField';\r\nimport PoweredBy from './PoweredBy';\r\nimport LocalExpressionContext from '../context/LocalExpressionContext';\r\n\r\nimport { useMemo } from 'preact/hooks';\r\nimport { useFilteredFormData, useService } from '../hooks';\r\n\r\nconst noop = () => {};\r\n\r\nexport default function FormComponent(props) {\r\n const form = useService('form');\r\n\r\n const { schema, properties } = form._getState();\r\n\r\n const { ariaLabel } = properties;\r\n\r\n const {\r\n onSubmit = noop,\r\n onReset = noop,\r\n onChange = noop,\r\n } = props;\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n onSubmit();\r\n };\r\n\r\n const handleReset = (event) => {\r\n event.preventDefault();\r\n\r\n onReset();\r\n };\r\n\r\n const filteredFormData = useFilteredFormData();\r\n\r\n const localExpressionContext = useMemo(() => ({\r\n data: filteredFormData,\r\n parent: null,\r\n this: filteredFormData,\r\n i: []\r\n }), [ filteredFormData ]);\r\n\r\n return (\r\n <form\r\n class=\"fjs-form\"\r\n onSubmit={ handleSubmit }\r\n onReset={ handleReset }\r\n aria-label={ ariaLabel }\r\n noValidate\r\n >\r\n <LocalExpressionContext.Provider value={ localExpressionContext }>\r\n <FormField\r\n field={ schema }\r\n onChange={ onChange }\r\n />\r\n </LocalExpressionContext.Provider>\r\n <PoweredBy />\r\n </form>\r\n );\r\n}","import { useContext } from 'preact/hooks';\r\nimport { FormRenderContext } from '../../context';\r\nimport { formFieldClasses } from '../Util';\r\nimport Label from '../Label';\r\nimport classNames from 'classnames';\r\nimport ChildrenRenderer from './parts/ChildrenRenderer';\r\n\r\nexport default function Group(props) {\r\n\r\n const { field, domId } = props;\r\n const { label, type, showOutline } = field;\r\n const { Empty } = useContext(FormRenderContext);\r\n\r\n const fullProps = { ...props, Empty };\r\n\r\n return (\r\n <div className={ classNames(formFieldClasses(type), 'fjs-form-field-grouplike' , { 'fjs-outlined' : showOutline }) } role=\"group\" aria-labelledby={ domId }>\r\n <Label\r\n id={ domId }\r\n label={ label } />\r\n <ChildrenRenderer { ...fullProps } />\r\n </div>\r\n );\r\n}\r\n\r\nGroup.config = {\r\n type: 'group',\r\n pathed: true,\r\n label: 'Group',\r\n group: 'container',\r\n create: (options = {}) => ({\r\n components: [],\r\n showOutline: true,\r\n ...options\r\n })\r\n};\r\n","const NODE_TYPE_TEXT = 3,\r\n NODE_TYPE_ELEMENT = 1;\r\n\r\nconst ALLOWED_NODES = [\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'span',\r\n 'em',\r\n 'a',\r\n 'p',\r\n 'div',\r\n 'ul',\r\n 'ol',\r\n 'li',\r\n 'hr',\r\n 'blockquote',\r\n 'img',\r\n 'pre',\r\n 'code',\r\n 'br',\r\n 'strong',\r\n 'table',\r\n 'thead',\r\n 'tbody',\r\n 'tr',\r\n 'th',\r\n 'td'\r\n];\r\n\r\nconst ALLOWED_ATTRIBUTES = [\r\n 'align',\r\n 'alt',\r\n 'class',\r\n 'href',\r\n 'id',\r\n 'name',\r\n 'rel',\r\n 'target',\r\n 'src'\r\n];\r\n\r\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\r\nconst ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape\r\nconst ALLOWED_IFRAME_SRC_PATTERN = /^(https):\\/\\/*/i; // eslint-disable-line no-useless-escape\r\nconst ATTR_WHITESPACE_PATTERN = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g; // eslint-disable-line no-control-regex\r\n\r\nconst FORM_ELEMENT = document.createElement('form');\r\n\r\n/**\r\n * Sanitize a HTML string and return the cleaned, safe version.\r\n *\r\n * @param {string} html\r\n * @return {string}\r\n */\r\n\r\n// see https://github.com/developit/snarkdown/issues/70\r\nexport function sanitizeHTML(html) {\r\n\r\n const doc = new DOMParser().parseFromString(\r\n `<!DOCTYPE html>\\n<html><body><div>${ html }`,\r\n 'text/html'\r\n );\r\n\r\n doc.normalize();\r\n\r\n const element = doc.body.firstChild;\r\n\r\n if (element) {\r\n sanitizeNode(/** @type Element */ (element));\r\n\r\n return new XMLSerializer().serializeToString(element);\r\n } else {\r\n\r\n // handle the case that document parsing\r\n // does not work at all, due to HTML gibberish\r\n return '';\r\n }\r\n}\r\n\r\n/**\r\n * Sanitizes an image source to ensure we only allow for data URI and links\r\n * that start with http(s).\r\n *\r\n * Note: Most browsers anyway do not support script execution in <img> elements.\r\n *\r\n * @param {string} src\r\n * @returns {string}\r\n */\r\nexport function sanitizeImageSource(src) {\r\n const valid = ALLOWED_IMAGE_SRC_PATTERN.test(src);\r\n\r\n return valid ? src : '';\r\n}\r\n\r\n/**\r\n * Sanitizes an iframe source to ensure we only allow for links\r\n * that start with http(s).\r\n *\r\n * @param {string} src\r\n * @returns {string}\r\n */\r\nexport function sanitizeIFrameSource(src) {\r\n const valid = ALLOWED_IFRAME_SRC_PATTERN.test(src);\r\n\r\n return valid ? src : '';\r\n}\r\n\r\n\r\n/**\r\n * Recursively sanitize a HTML node, potentially\r\n * removing it, its children or attributes.\r\n *\r\n * Inspired by https://github.com/developit/snarkdown/issues/70\r\n * and https://github.com/cure53/DOMPurify. Simplified\r\n * for our use-case.\r\n *\r\n * @param {Element} node\r\n */\r\nfunction sanitizeNode(node) {\r\n\r\n // allow text nodes\r\n if (node.nodeType === NODE_TYPE_TEXT) {\r\n return;\r\n }\r\n\r\n // disallow all other nodes but Element\r\n if (node.nodeType !== NODE_TYPE_ELEMENT) {\r\n return node.remove();\r\n }\r\n\r\n const lcTag = node.tagName.toLowerCase();\r\n\r\n // disallow non-whitelisted tags\r\n if (!ALLOWED_NODES.includes(lcTag)) {\r\n return node.remove();\r\n }\r\n\r\n const attributes = node.attributes;\r\n\r\n // clean attributes\r\n for (let i = attributes.length; i--;) {\r\n const attribute = attributes[i];\r\n\r\n const name = attribute.name;\r\n const lcName = name.toLowerCase();\r\n\r\n // normalize node value\r\n const value = attribute.value.trim();\r\n\r\n node.removeAttribute(name);\r\n\r\n const valid = isValidAttribute(lcTag, lcName, value);\r\n\r\n if (valid) {\r\n node.setAttribute(name, value);\r\n }\r\n\r\n }\r\n\r\n // force noopener on target=\"_blank\" links\r\n if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\r\n node.setAttribute('rel', 'noopener');\r\n }\r\n\r\n for (let i = node.childNodes.length; i--;) {\r\n sanitizeNode(/** @type Element */ (node.childNodes[i]));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Validates attributes for validity.\r\n *\r\n * @param {string} lcTag\r\n * @param {string} lcName\r\n * @param {string} value\r\n * @return {boolean}\r\n */\r\nfunction isValidAttribute(lcTag, lcName, value) {\r\n\r\n // disallow most attributes based on whitelist\r\n if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\r\n return false;\r\n }\r\n\r\n // disallow \"DOM clobbering\" / polution of document and wrapping form elements\r\n if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\r\n return false;\r\n }\r\n\r\n if (lcName === 'target' && value !== '_blank') {\r\n return false;\r\n }\r\n\r\n // allow valid url links only\r\n if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}","import { useContext, useMemo } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\r\nimport { sanitizeIFrameSource } from '../Sanitizer';\r\n\r\nimport Label from '../Label';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'iframe';\r\n\r\nconst DEFAULT_HEIGHT = 300;\r\n\r\n\r\nexport default function IFrame(props) {\r\n const {\r\n field,\r\n disabled,\r\n readonly\r\n } = props;\r\n\r\n const {\r\n height = DEFAULT_HEIGHT,\r\n id,\r\n label,\r\n url\r\n } = field;\r\n\r\n const evaluatedUrl = useSingleLineTemplateEvaluation(url, { debug: true });\r\n\r\n const safeUrl = useMemo(() => sanitizeIFrameSource(evaluatedUrl), [ evaluatedUrl ]);\r\n\r\n const evaluatedLabel = useSingleLineTemplateEvaluation(label, { debug: true });\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type, { disabled, readonly }) }>\r\n <Label id={ prefixId(id, formId) } label={ evaluatedLabel } />\r\n {\r\n !evaluatedUrl && <IFramePlaceholder text=\"No content to show.\" />\r\n }\r\n {\r\n evaluatedUrl && safeUrl &&\r\n <iframe\r\n src={ safeUrl }\r\n title={ evaluatedLabel }\r\n height={ height }\r\n class=\"fjs-iframe\"\r\n id={ prefixId(id, formId) }\r\n sandbox=\"allow-scripts\"\r\n />\r\n }\r\n {\r\n evaluatedUrl && !safeUrl && <IFramePlaceholder text=\"External content couldn't be loaded.\" />\r\n }\r\n </div>;\r\n}\r\n\r\nfunction IFramePlaceholder(props) {\r\n const { text = 'iFrame' } = props;\r\n\r\n return <div class=\"fjs-iframe-placeholder\">\r\n <p class=\"fjs-iframe-placeholder-text\">{ text }</p>\r\n </div>;\r\n}\r\n\r\nIFrame.config = {\r\n type,\r\n keyed: false,\r\n label: 'iFrame',\r\n group: 'container',\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" width=\"64\" height=\"64\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\" viewBox=\"0 0 1280 1280\"><path d=\"M0 0h1280v1280H0z\" style=\"fill:#e5e9ed\"/><path d=\"M910 410H370v470h540V410Zm-57.333 57.333v355.334H427.333V467.333h425.334Z\" style=\"fill:#cad3db\"/><path d=\"M810 770H480v-60l100-170 130 170 100-65v125Z\" style=\"fill:#cad3db\"/><circle cx=\"750\" cy=\"550\" r=\"50\" style=\"fill:#cad3db\" transform=\"translate(10 10)\"/></svg>","import { useContext, useMemo } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\r\nimport { sanitizeImageSource } from '../Sanitizer';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\r\n\r\nconst type = 'image';\r\n\r\n\r\nexport default function Image(props) {\r\n const {\r\n field\r\n } = props;\r\n\r\n const {\r\n alt,\r\n id,\r\n source\r\n } = field;\r\n\r\n const evaluatedImageSource = useSingleLineTemplateEvaluation(source, { debug: true });\r\n\r\n const safeSource = useMemo(() => sanitizeImageSource(evaluatedImageSource), [ evaluatedImageSource ]);\r\n\r\n const altText = useSingleLineTemplateEvaluation(alt, { debug: true });\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <div class=\"fjs-image-container\">\r\n {\r\n safeSource &&\r\n <img\r\n alt={ altText }\r\n src={ safeSource }\r\n class=\"fjs-image\"\r\n id={ prefixId(id, formId) } />\r\n }\r\n { !safeSource &&\r\n <div class=\"fjs-image-placeholder\">\r\n <ImagePlaceholder alt=\"This is an image placeholder\" />\r\n </div>\r\n }\r\n </div>\r\n </div>;\r\n}\r\n\r\nImage.config = {\r\n type,\r\n keyed: false,\r\n label: 'Image view',\r\n group: 'presentation',\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","import InputAdorner from './InputAdorner';\r\n\r\nimport { useSingleLineTemplateEvaluation } from '../../../hooks';\r\n\r\nexport default function TemplatedInputAdorner(props) {\r\n\r\n const {\r\n pre,\r\n post\r\n } = props;\r\n\r\n const evaluatedPre = useSingleLineTemplateEvaluation(pre, { debug: true });\r\n const evaluatedPost = useSingleLineTemplateEvaluation(post, { debug: true });\r\n\r\n return <InputAdorner { ...props } pre={ evaluatedPre } post={ evaluatedPost } />;\r\n\r\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';\r\n\r\nexport function countDecimals(number) {\r\n const num = Big(number);\r\n if (num.toString() === num.toFixed(0)) return 0;\r\n return num.toFixed().split('.')[1].length || 0;\r\n}\r\n\r\nexport function isValidNumber(value) {\r\n return (typeof value === 'number' || typeof value === 'string') && value !== '' && !isNaN(Number(value));\r\n}\r\n\r\nexport function willKeyProduceValidNumber(key, previousValue, caretIndex, selectionWidth, decimalDigits) {\r\n\r\n // Dot and comma are both treated as dot\r\n previousValue = previousValue.replace(',', '.');\r\n const isFirstDot = !previousValue.includes('.') && (key === '.' || key === ',');\r\n const isFirstMinus = !previousValue.includes('-') && key === '-' && caretIndex === 0;\r\n\r\n const keypressIsNumeric = /^[0-9]$/i.test(key);\r\n const dotIndex = previousValue === undefined ? -1 : previousValue.indexOf('.');\r\n\r\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\r\n const overflowsDecimalSpace = typeof(decimalDigits) === 'number'\r\n && selectionWidth === 0\r\n && dotIndex !== -1\r\n && previousValue.includes('.')\r\n && previousValue.split('.')[1].length >= decimalDigits\r\n && caretIndex > dotIndex;\r\n\r\n const keypressIsAllowedChar = keypressIsNumeric || ((decimalDigits !== 0) && isFirstDot) || isFirstMinus;\r\n\r\n return keypressIsAllowedChar && !overflowsDecimalSpace;\r\n\r\n}\r\n\r\nexport function isNullEquivalentValue(value) {\r\n return value === undefined || value === null || value === '';\r\n}\r\n","import Big from 'big.js';\r\nimport classNames from 'classnames';\r\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport InputAdorner from './parts/TemplatedInputAdorner';\r\n\r\nimport AngelDownIcon from './icons/AngelDown.svg';\r\nimport AngelUpIcon from './icons/AngelUp.svg';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nimport {\r\n isNullEquivalentValue,\r\n isValidNumber,\r\n willKeyProduceValidNumber\r\n} from '../util/numberFieldUtil';\r\n\r\nconst type = 'number';\r\n\r\nexport default function Numberfield(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n value,\r\n readonly,\r\n onChange\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n appearance = {},\r\n validate = {},\r\n decimalDigits,\r\n serializeToString = false,\r\n increment: incrementValue\r\n } = field;\r\n\r\n const {\r\n prefixAdorner,\r\n suffixAdorner\r\n } = appearance;\r\n\r\n const { required } = validate;\r\n\r\n const inputRef = useRef();\r\n\r\n const [ stringValueCache, setStringValueCache ] = useState('');\r\n\r\n // checks whether the value currently in the form data is practically different from the one in the input field cache\r\n // this allows us to guarantee the field always displays valid form data, but without auto-simplifying values like 1.000 to 1\r\n const cacheValueMatchesState = useMemo(() => Numberfield.config.sanitizeValue({ value, formField: field }) === Numberfield.config.sanitizeValue({ value: stringValueCache, formField: field }), [ stringValueCache, value, field ]);\r\n\r\n const displayValue = useMemo(() => {\r\n\r\n if (value === 'NaN') return 'NaN';\r\n if (stringValueCache === '-') return '-';\r\n return cacheValueMatchesState ? stringValueCache : ((value || value === 0) ? Big(value).toFixed() : '');\r\n\r\n }, [ stringValueCache, value, cacheValueMatchesState ]);\r\n\r\n const arrowIncrementValue = useMemo(() => {\r\n\r\n if (incrementValue) return Big(incrementValue);\r\n if (decimalDigits) return Big(`1e-${decimalDigits}`);\r\n return Big('1');\r\n\r\n }, [ decimalDigits, incrementValue ]);\r\n\r\n\r\n const setValue = useCallback((stringValue) => {\r\n\r\n if (isNullEquivalentValue(stringValue)) {\r\n setStringValueCache('');\r\n onChange({ field, value: null });\r\n return;\r\n }\r\n\r\n // treat commas as dots\r\n stringValue = stringValue.replaceAll(',', '.');\r\n\r\n if (stringValue === '-') {\r\n setStringValueCache('-');\r\n return;\r\n }\r\n\r\n if (isNaN(Number(stringValue))) {\r\n setStringValueCache('NaN');\r\n onChange({ field, value: 'NaN' });\r\n return;\r\n }\r\n\r\n setStringValueCache(stringValue);\r\n onChange({ field, value: serializeToString ? stringValue : Number(stringValue) });\r\n\r\n }, [ field, onChange, serializeToString ]);\r\n\r\n const increment = () => {\r\n if (readonly) {\r\n return;\r\n }\r\n\r\n const base = isValidNumber(value) ? Big(value) : Big(0);\r\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\r\n\r\n // note: toFixed() behaves differently in big.js\r\n setValue(stepFlooredValue.plus(arrowIncrementValue).toFixed());\r\n };\r\n\r\n const decrement = () => {\r\n if (readonly) {\r\n return;\r\n }\r\n\r\n const base = isValidNumber(value) ? Big(value) : Big(0);\r\n const offset = base.mod(arrowIncrementValue);\r\n\r\n if (offset.cmp(0) === 0) {\r\n\r\n // if we're already on a valid step, decrement\r\n setValue(base.minus(arrowIncrementValue).toFixed());\r\n }\r\n else {\r\n\r\n // otherwise floor to the step\r\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\r\n setValue(stepFlooredValue.toFixed());\r\n }\r\n };\r\n\r\n const onKeyDown = (e) => {\r\n\r\n // delete the NaN state all at once on backspace or delete\r\n if (value === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\r\n setValue(null);\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.code === 'ArrowUp') {\r\n increment();\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.code === 'ArrowDown') {\r\n decrement();\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n };\r\n\r\n // intercept key presses which would lead to an invalid number\r\n const onKeyPress = (e) => {\r\n const caretIndex = inputRef.current.selectionStart;\r\n const selectionWidth = inputRef.current.selectionStart - inputRef.current.selectionEnd;\r\n const previousValue = inputRef.current.value;\r\n\r\n if (!willKeyProduceValidNumber(e.key, previousValue, caretIndex, selectionWidth, decimalDigits)) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n required={ required } />\r\n <InputAdorner disabled={ disabled } readonly={ readonly } pre={ prefixAdorner } post={ suffixAdorner }>\r\n <div class={ classNames('fjs-vertical-group', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }, { 'hasErrors': errors.length }) }>\r\n <input\r\n ref={ inputRef }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ domId }\r\n onKeyDown={ onKeyDown }\r\n onKeyPress={ onKeyPress }\r\n onBlur={ onBlur }\r\n onFocus={ onFocus }\r\n\r\n // @ts-ignore\r\n onInput={ (e) => setValue(e.target.value) }\r\n type=\"text\"\r\n autoComplete=\"off\"\r\n step={ arrowIncrementValue }\r\n value={ displayValue }\r\n aria-describedby={ errorMessageId } />\r\n <div class={ classNames('fjs-number-arrow-container', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) }>\r\n { /* we're disabling tab navigation on both buttons to imitate the native browser behavior of input[type='number'] increment arrows */ }\r\n <button\r\n class=\"fjs-number-arrow-up\"\r\n type=\"button\"\r\n aria-label=\"Increment\"\r\n onClick={ () => increment() }\r\n tabIndex={ -1 }><AngelUpIcon /></button>\r\n <div class=\"fjs-number-arrow-separator\" />\r\n <button\r\n class=\"fjs-number-arrow-down\"\r\n type=\"button\"\r\n aria-label=\"Decrement\"\r\n onClick={ () => decrement() }\r\n tabIndex={ -1 }><AngelDownIcon /></button>\r\n </div>\r\n </div>\r\n </InputAdorner>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nNumberfield.config = {\r\n type,\r\n keyed: true,\r\n label: 'Number',\r\n group: 'basic-input',\r\n emptyValue: null,\r\n sanitizeValue: ({ value, formField }) => {\r\n\r\n // invalid value types are sanitized to null\r\n if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;\r\n\r\n // otherwise, we return a string or a number depending on the form field configuration\r\n return formField.serializeToString ? value.toString() : Number(value);\r\n },\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};","import { useEffect } from 'preact/hooks';\r\nimport { LOAD_STATES } from './useOptionsAsync';\r\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\r\n\r\nexport default function(props) {\r\n\r\n const {\r\n field,\r\n options,\r\n loadState,\r\n onChange,\r\n value\r\n } = props;\r\n\r\n // Ensures that the value is always one of the possible options\r\n useEffect(() => {\r\n\r\n if (loadState !== LOAD_STATES.LOADED) {\r\n return;\r\n }\r\n\r\n const optionValues = options.map(o => o.value);\r\n const hasValueNotInOptions = value && !hasEqualValue(value, optionValues);\r\n\r\n if (hasValueNotInOptions) {\r\n onChange({\r\n field,\r\n value: null\r\n });\r\n }\r\n\r\n }, [ field, options, onChange, value, loadState ]);\r\n\r\n}","import { useRef } from 'preact/hooks';\r\nimport isEqual from 'lodash/isEqual';\r\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\r\nimport useCleanupSingleSelectValue from '../../hooks/useCleanupSingleSelectValue';\r\nimport classNames from 'classnames';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\r\n\r\nimport { createEmptyOptions } from '../util/optionsUtil';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nconst type = 'radio';\r\n\r\n\r\nexport default function Radio(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const outerDivRef = useRef();\r\n\r\n const { required } = validate;\r\n\r\n const onChange = (v) => {\r\n props.onChange({\r\n field,\r\n value: v\r\n });\r\n };\r\n\r\n const onRadioBlur = (e) => {\r\n if (outerDivRef.current.contains(e.relatedTarget)) {\r\n return;\r\n }\r\n\r\n onBlur && onBlur();\r\n };\r\n\r\n const onRadioFocus = (e) => {\r\n if (outerDivRef.current.contains(e.relatedTarget)) {\r\n return;\r\n }\r\n\r\n onFocus && onFocus();\r\n };\r\n\r\n const {\r\n loadState,\r\n options\r\n } = useOptionsAsync(field);\r\n\r\n useCleanupSingleSelectValue({\r\n field,\r\n loadState,\r\n options,\r\n value,\r\n onChange: props.onChange\r\n });\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) } ref={ outerDivRef }>\r\n <Label\r\n label={ label }\r\n required={ required } />\r\n {\r\n loadState == LOAD_STATES.LOADED && options.map((option, index) => {\r\n\r\n const itemDomId = `${domId}-${index}`;\r\n const isChecked = isEqual(option.value, value);\r\n\r\n return (\r\n <Label\r\n id={ itemDomId }\r\n key={ index }\r\n label={ option.label }\r\n class={ classNames({ 'fjs-checked': isChecked }) }\r\n required={ false }>\r\n <input\r\n checked={ isChecked }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ itemDomId }\r\n type=\"radio\"\r\n onClick={ () => onChange(option.value) }\r\n onBlur={ onRadioBlur }\r\n onFocus={ onRadioFocus }\r\n aria-describedby={ errorMessageId } />\r\n </Label>\r\n );\r\n })\r\n }\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nRadio.config = {\r\n type,\r\n keyed: true,\r\n label: 'Radio group',\r\n group: 'selection',\r\n emptyValue: null,\r\n sanitizeValue: sanitizeSingleSelectValue,\r\n create: createEmptyOptions\r\n};\r\n","import { useCallback, useMemo } from 'preact/hooks';\r\nimport { isObject } from 'min-dash';\r\n\r\n/**\r\n * This hook allows us to retrieve the label from a value in linear time by caching it in a map\r\n * @param {Array} options\r\n */\r\nexport function useGetLabelCorrelation(options) {\r\n\r\n // This allows us to retrieve the label from a value in linear time\r\n const labelMap = useMemo(() => Object.assign({}, ...options.map((o) => ({ [_getValueHash(o.value)]: o.label }))), [ options ]);\r\n return useCallback((value) => labelMap[_getValueHash(value)], [ labelMap ]);\r\n}\r\n\r\nconst _getValueHash = (value) => {\r\n return isObject(value) ? JSON.stringify(value) : value;\r\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';\r\nimport useOptionsAsync, { LOAD_STATES } from '../../../hooks/useOptionsAsync';\r\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\r\nimport { useService } from '../../../hooks';\r\nimport useCleanupSingleSelectValue from '../../../hooks/useCleanupSingleSelectValue';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport XMarkIcon from '../icons/XMark.svg';\r\nimport AngelDownIcon from '../icons/AngelDown.svg';\r\nimport AngelUpIcon from '../icons/AngelUp.svg';\r\nimport DropdownList from './DropdownList';\r\n\r\nexport default function SearchableSelect(props) {\r\n const {\r\n domId,\r\n disabled,\r\n errors,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const [ filter, setFilter ] = useState('');\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const [ isFilterActive, setIsFilterActive ] = useState(true);\r\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\r\n const searchbarRef = useRef();\r\n const eventBus = useService('eventBus');\r\n\r\n const {\r\n loadState,\r\n options\r\n } = useOptionsAsync(field);\r\n\r\n useCleanupSingleSelectValue({\r\n field,\r\n loadState,\r\n options,\r\n value,\r\n onChange: props.onChange\r\n });\r\n\r\n const getLabelCorrelation = useGetLabelCorrelation(options);\r\n\r\n const label = useMemo(() => value && getLabelCorrelation(value), [ value, getLabelCorrelation ]);\r\n\r\n // whenever we change the underlying value, set the label to it\r\n useEffect(() => { setFilter(label); }, [ label ]);\r\n\r\n const filteredOptions = useMemo(() => {\r\n\r\n if (loadState !== LOAD_STATES.LOADED) {\r\n return [];\r\n }\r\n\r\n if (!filter || !isFilterActive) {\r\n return options;\r\n }\r\n\r\n return options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase())));\r\n\r\n }, [ filter, loadState, options, isFilterActive ]);\r\n\r\n const setValue = useCallback((option) => {\r\n setFilter(option && option.label || '');\r\n props.onChange({ value: option && option.value || null, field });\r\n }, [ field, props ]);\r\n\r\n const displayState = useMemo(() => {\r\n const ds = {};\r\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\r\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\r\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded && !isEscapeClosed;\r\n return ds;\r\n }, [ disabled, isDropdownExpanded, isEscapeClosed, loadState, readonly, value ]);\r\n\r\n const onAngelMouseDown = useCallback((e) => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(!isDropdownExpanded);\r\n\r\n const searchbar = searchbarRef.current;\r\n isDropdownExpanded ? searchbar.blur() : searchbar.focus();\r\n\r\n e.preventDefault();\r\n\r\n }, [ isDropdownExpanded ]);\r\n\r\n const onInputChange = ({ target }) => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(true);\r\n setIsFilterActive(true);\r\n setFilter(target.value || '');\r\n eventBus.fire('formField.search', { formField: field, value: target.value || '' });\r\n };\r\n\r\n const onInputKeyDown = useCallback((keyDownEvent) => {\r\n\r\n switch (keyDownEvent.key) {\r\n case 'ArrowUp':\r\n keyDownEvent.preventDefault();\r\n break;\r\n case 'ArrowDown': {\r\n if (!isDropdownExpanded) {\r\n setIsDropdownExpanded(true);\r\n setIsFilterActive(false);\r\n }\r\n\r\n keyDownEvent.preventDefault();\r\n break;\r\n }\r\n case 'Escape':\r\n setIsEscapeClose(true);\r\n break;\r\n case 'Enter':\r\n if (isEscapeClosed) {\r\n setIsEscapeClose(false);\r\n }\r\n break;\r\n }\r\n }, [ isDropdownExpanded, isEscapeClosed ]);\r\n\r\n const onInputMouseDown = useCallback(() => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(true);\r\n setIsFilterActive(false);\r\n }, []);\r\n\r\n const onInputFocus = useCallback(() => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(true);\r\n onFocus && onFocus();\r\n }, [ onFocus ]);\r\n\r\n const onInputBlur = useCallback(() => {\r\n setIsDropdownExpanded(false);\r\n setFilter(label);\r\n onBlur && onBlur();\r\n }, [ onBlur, label ]);\r\n\r\n return <>\r\n <div\r\n class={ classNames('fjs-input-group', { 'disabled': disabled, 'readonly': readonly }, { 'hasErrors': errors.length }) }>\r\n <input\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n class=\"fjs-input\"\r\n ref={ searchbarRef }\r\n id={ domId }\r\n onChange={ onInputChange }\r\n type=\"text\"\r\n value={ filter }\r\n placeholder={ 'Search' }\r\n autoComplete=\"off\"\r\n onKeyDown={ onInputKeyDown }\r\n onMouseDown={ onInputMouseDown }\r\n onFocus={ onInputFocus }\r\n onBlur={ onInputBlur }\r\n aria-describedby={ props['aria-describedby'] } />\r\n { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.preventDefault(); } }><XMarkIcon /> </span> }\r\n <span class=\"fjs-select-arrow\" onMouseDown={ (e) => onAngelMouseDown(e) }>{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\r\n </div>\r\n <div class=\"fjs-select-anchor\">\r\n { displayState.displayDropdown && <DropdownList\r\n values={ filteredOptions }\r\n getLabel={ (o) => o.label }\r\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\r\n listenerElement={ searchbarRef.current } />}\r\n </div>\r\n </>;\r\n}\r\n","import { useCallback, useMemo, useRef, useState } from 'preact/hooks';\r\nimport classNames from 'classnames';\r\nimport { findIndex } from 'min-dash';\r\nimport useOptionsAsync, { LOAD_STATES } from '../../../hooks/useOptionsAsync';\r\nimport useCleanupSingleSelectValue from '../../../hooks/useCleanupSingleSelectValue';\r\nimport { useGetLabelCorrelation } from '../../../hooks/useGetLabelCorrelation';\r\n\r\nimport XMarkIcon from '../icons/XMark.svg';\r\nimport AngelDownIcon from '../icons/AngelDown.svg';\r\nimport AngelUpIcon from '../icons/AngelUp.svg';\r\nimport DropdownList from './DropdownList';\r\n\r\nexport default function SimpleSelect(props) {\r\n const {\r\n domId,\r\n disabled,\r\n errors,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const selectRef = useRef();\r\n const inputRef = useRef();\r\n\r\n const {\r\n loadState,\r\n options\r\n } = useOptionsAsync(field);\r\n\r\n useCleanupSingleSelectValue({\r\n field,\r\n loadState,\r\n options,\r\n value,\r\n onChange: props.onChange\r\n });\r\n\r\n const getLabelCorrelation = useGetLabelCorrelation(options);\r\n\r\n const valueLabel = useMemo(() => value && getLabelCorrelation(value), [ value, getLabelCorrelation ]);\r\n\r\n const setValue = useCallback((option) => {\r\n props.onChange({ value: option && option.value || null, field });\r\n }, [ field, props ]);\r\n\r\n const displayState = useMemo(() => {\r\n const ds = {};\r\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\r\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\r\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded;\r\n return ds;\r\n }, [ disabled, isDropdownExpanded, loadState, value ]);\r\n\r\n const onMouseDown = useCallback((e) => {\r\n const input = inputRef.current;\r\n setIsDropdownExpanded(!isDropdownExpanded);\r\n\r\n if (isDropdownExpanded) {\r\n input.blur();\r\n } else {\r\n input.focus();\r\n }\r\n\r\n e.preventDefault();\r\n }, [ isDropdownExpanded ]);\r\n\r\n const initialFocusIndex = useMemo(() => value && findIndex(options, (o) => o.value === value) || 0, [ options, value ]);\r\n\r\n const onInputFocus = useCallback(() => {\r\n if (!readonly) {\r\n setIsDropdownExpanded(true);\r\n onFocus && onFocus();\r\n }\r\n }, [ onFocus, readonly ]);\r\n\r\n const onInputBlur = useCallback(() => {\r\n if (!readonly) {\r\n setIsDropdownExpanded(false);\r\n onBlur && onBlur();\r\n }\r\n }, [ onBlur, readonly ]);\r\n\r\n return <>\r\n <div ref={ selectRef }\r\n class={ classNames('fjs-input-group', { disabled, readonly }, { 'hasErrors': errors.length }) }\r\n onFocus={ onInputFocus }\r\n onBlur={ onInputBlur }\r\n onMouseDown={ onMouseDown }>\r\n <div class={ classNames('fjs-select-display', { 'fjs-select-placeholder' : !value }) } id={ `${domId}-display` }>{ valueLabel || 'Select' }</div>\r\n { !disabled && <input\r\n ref={ inputRef }\r\n id={ domId }\r\n class=\"fjs-select-hidden-input\"\r\n value={ valueLabel }\r\n onFocus={ onInputFocus }\r\n onBlur={ onInputBlur }\r\n aria-describedby={ props['aria-describedby'] } />\r\n }\r\n { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.stopPropagation(); } }><XMarkIcon /></span> }\r\n <span class=\"fjs-select-arrow\">{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\r\n </div>\r\n <div class=\"fjs-select-anchor\">\r\n {displayState.displayDropdown && <DropdownList\r\n values={ options }\r\n getLabel={ (o) => o.label }\r\n initialFocusIndex={ initialFocusIndex }\r\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\r\n listenerElement={ selectRef.current } />}\r\n </div>\r\n </>;\r\n}\r\n","import Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\r\n\r\nimport { createEmptyOptions } from '../util/optionsUtil';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\nimport SearchableSelect from './parts/SearchableSelect';\r\nimport SimpleSelect from './parts/SimpleSelect';\r\n\r\nconst type = 'select';\r\n\r\nexport default function Select(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n onChange,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n searchable = false,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const selectProps = {\r\n domId,\r\n disabled,\r\n errors,\r\n onBlur,\r\n onFocus,\r\n field,\r\n value,\r\n onChange,\r\n readonly,\r\n 'aria-describedby': errorMessageId,\r\n };\r\n\r\n return <div\r\n class={ formFieldClasses(type, { errors, disabled, readonly }) }\r\n onKeyDown={\r\n (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n >\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n required={ required } />\r\n { searchable ? <SearchableSelect { ...selectProps } /> : <SimpleSelect { ...selectProps } /> }\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nSelect.config = {\r\n type,\r\n keyed: true,\r\n label: 'Select',\r\n group: 'selection',\r\n emptyValue: null,\r\n sanitizeValue: sanitizeSingleSelectValue,\r\n create: createEmptyOptions\r\n};\r\n","import { formFieldClasses } from '../Util';\r\n\r\nconst type = 'separator';\r\n\r\nexport default function Separator() {\r\n\r\n return (\r\n <div class={ formFieldClasses(type) }>\r\n <hr />\r\n </div>\r\n );\r\n}\r\n\r\nSeparator.config = {\r\n type,\r\n keyed: false,\r\n label: 'Separator',\r\n group: 'presentation',\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","import { formFieldClasses } from '../Util';\r\n\r\nconst type = 'spacer';\r\n\r\nexport default function Spacer(props) {\r\n const { field } = props;\r\n const { height = 60 } = field;\r\n\r\n return (\r\n <div class={ formFieldClasses(type) } style={ { height: height } } />\r\n );\r\n}\r\n\r\nSpacer.config = {\r\n type,\r\n keyed: false,\r\n label: 'Spacer',\r\n group: 'presentation',\r\n create: (options = {}) => ({\r\n height: 60,\r\n ...options\r\n })\r\n};\r\n","import { useContext } from 'preact/hooks';\r\nimport { FormRenderContext } from '../../context';\r\nimport { formFieldClasses } from '../Util';\r\n\r\nimport Label from '../Label';\r\nimport ChildrenRenderer from './parts/ChildrenRenderer';\r\nimport classNames from 'classnames';\r\n\r\nexport default function DynamicList(props) {\r\n\r\n const { field, domId, readonly } = props;\r\n const { label, type, showOutline } = field;\r\n\r\n const {\r\n Empty,\r\n } = useContext(FormRenderContext);\r\n\r\n const fullProps = { ...props, Empty };\r\n\r\n return (\r\n <div\r\n className={\r\n classNames(\r\n formFieldClasses(type, { readonly }),\r\n 'fjs-form-field-grouplike',\r\n {\r\n 'fjs-outlined' : showOutline\r\n }\r\n )\r\n }\r\n role=\"group\"\r\n aria-labelledby={ domId }\r\n >\r\n <Label\r\n id={ domId }\r\n label={ label } />\r\n <ChildrenRenderer { ...fullProps } />\r\n </div>\r\n );\r\n}\r\n\r\nDynamicList.config = {\r\n type: 'dynamiclist',\r\n pathed: true,\r\n repeatable: true,\r\n label: 'Dynamic list',\r\n group: 'container',\r\n create: (options = {}) => ({\r\n components: [],\r\n showOutline: true,\r\n isRepeating: true,\r\n allowAddRemove: true,\r\n defaultRepetitions: 1,\r\n ...options\r\n })\r\n};\r\n","import classNames from 'classnames';\r\n\r\nimport { useCallback } from 'preact/hooks';\r\n\r\nexport default function SkipLink(props) {\r\n\r\n const {\r\n className,\r\n label,\r\n onSkip\r\n } = props;\r\n\r\n const onKeyDown = useCallback(event => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n onSkip();\r\n }\r\n }, [ onSkip ]);\r\n\r\n\r\n return (\r\n <a\r\n href=\"#\"\r\n class={ classNames('fjs-skip-link', className) }\r\n onKeyDown={ onKeyDown }\r\n >{ label }</a>\r\n );\r\n}","import { useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport { useService } from '../../hooks';\r\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\r\nimport useCleanupMultiSelectValues from '../../hooks/useCleanupMultiSelectValues';\r\nimport { useGetLabelCorrelation } from '../../hooks/useGetLabelCorrelation';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport XMarkIcon from './icons/XMark.svg';\r\nimport DropdownList from './parts/DropdownList';\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport SkipLink from './parts/SkipLink';\r\n\r\nimport { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\r\nimport isEqual from 'lodash/isEqual';\r\n\r\nimport { createEmptyOptions } from '../util/optionsUtil';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nconst type = 'taglist';\r\n\r\nexport default function Taglist(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n onFocus,\r\n domId,\r\n onBlur,\r\n field,\r\n readonly,\r\n value : values = []\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const [ filter, setFilter ] = useState('');\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\r\n const focusScopeRef = useRef();\r\n const inputRef = useRef();\r\n const eventBus = useService('eventBus');\r\n\r\n const {\r\n loadState,\r\n options\r\n } = useOptionsAsync(field);\r\n\r\n useCleanupMultiSelectValues({\r\n field,\r\n loadState,\r\n options,\r\n values,\r\n onChange: props.onChange\r\n });\r\n\r\n const getLabelCorrelation = useGetLabelCorrelation(options);\r\n\r\n const hasOptionsLeft = useMemo(() => options.length > values.length, [ options.length, values.length ]);\r\n\r\n // Usage of stringify is necessary here because we want this effect to only trigger when there is a value change to the array\r\n const filteredOptions = useMemo(() => {\r\n if (loadState !== LOAD_STATES.LOADED) {\r\n return [];\r\n }\r\n\r\n const isValidFilteredOption = (option) => {\r\n const filterMatches = option.label.toLowerCase().includes(filter.toLowerCase());\r\n return filterMatches && !hasEqualValue(option.value, values);\r\n };\r\n\r\n return options.filter(isValidFilteredOption);\r\n }, [ filter, options, JSON.stringify(values), loadState ]);\r\n\r\n\r\n const selectValue = (value) => {\r\n\r\n setFilter('');\r\n\r\n // Ensure values cannot be double selected due to latency\r\n if (values.at(-1) === value) {\r\n return;\r\n }\r\n\r\n props.onChange({ value: [ ...values, value ], field });\r\n };\r\n\r\n const deselectValue = (value) => {\r\n const newValues = values.filter((v) => !isEqual(v, value));\r\n props.onChange({ value: newValues, field });\r\n };\r\n\r\n const onInputChange = ({ target }) => {\r\n setIsEscapeClose(false);\r\n setFilter(target.value || '');\r\n eventBus.fire('formField.search', { formField: field, value: target.value || '' });\r\n };\r\n\r\n const onInputKeyDown = (e) => {\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n case 'ArrowDown':\r\n\r\n // We do not want the cursor to seek in the search field when we press up and down\r\n e.preventDefault();\r\n break;\r\n case 'Backspace':\r\n if (!filter && values.length) {\r\n deselectValue(values[values.length - 1]);\r\n }\r\n break;\r\n case 'Escape':\r\n setIsEscapeClose(true);\r\n break;\r\n case 'Enter':\r\n if (isEscapeClosed) {\r\n setIsEscapeClose(false);\r\n }\r\n break;\r\n }\r\n };\r\n\r\n const onElementBlur = (e) => {\r\n if (focusScopeRef.current.contains(e.relatedTarget)) return;\r\n onBlur && onBlur();\r\n };\r\n\r\n const onElementFocus = (e) => {\r\n if (focusScopeRef.current.contains(e.relatedTarget)) return;\r\n onFocus && onFocus();\r\n };\r\n\r\n const onInputBlur = (e) => {\r\n if (!readonly) {\r\n setIsDropdownExpanded(false);\r\n setFilter('');\r\n }\r\n onElementBlur(e);\r\n };\r\n\r\n const onInputFocus = (e) => {\r\n if (!readonly) {\r\n setIsDropdownExpanded(true);\r\n }\r\n onElementFocus(e);\r\n };\r\n\r\n const onTagRemoveClick = (event, value) => {\r\n const { target } = event;\r\n\r\n deselectValue(value);\r\n\r\n // restore focus if there is no next sibling to focus\r\n const nextTag = target.closest('.fjs-taglist-tag').nextSibling;\r\n if (!nextTag) {\r\n inputRef.current.focus();\r\n }\r\n };\r\n\r\n const onSkipToSearch = () => {\r\n inputRef.current.focus();\r\n };\r\n\r\n const shouldDisplayDropdown = useMemo(() => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed, [ disabled, isDropdownExpanded, isEscapeClosed, loadState ]);\r\n\r\n return <div\r\n ref={ focusScopeRef }\r\n class={ formFieldClasses(type, { errors, disabled, readonly }) }\r\n onKeyDown={\r\n (event) => {\r\n if (event.key === 'Enter') {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n >\r\n <Label\r\n label={ label }\r\n required={ required }\r\n id={ domId } />\r\n { (!disabled && !readonly && !!values.length) && <SkipLink className=\"fjs-taglist-skip-link\" label=\"Skip to search\" onSkip={ onSkipToSearch } /> }\r\n <div class={ classNames('fjs-taglist', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) }>\r\n { loadState === LOAD_STATES.LOADED &&\r\n <div class=\"fjs-taglist-tags\">\r\n {\r\n values.map((v) => {\r\n return (\r\n <div class={ classNames('fjs-taglist-tag', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) } onMouseDown={ (e) => e.preventDefault() }>\r\n <span class=\"fjs-taglist-tag-label\">\r\n { getLabelCorrelation(v) }\r\n </span>\r\n { (!disabled && !readonly) && <button\r\n type=\"button\"\r\n title=\"Remove tag\"\r\n class=\"fjs-taglist-tag-remove\"\r\n onFocus={ onElementFocus }\r\n onBlur={ onElementBlur }\r\n onClick={ (event) => onTagRemoveClick(event, v) }>\r\n\r\n <XMarkIcon />\r\n </button> }\r\n </div>\r\n );\r\n })\r\n }\r\n </div>\r\n }\r\n <input\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n class=\"fjs-taglist-input\"\r\n ref={ inputRef }\r\n id={ domId }\r\n onChange={ onInputChange }\r\n type=\"text\"\r\n value={ filter }\r\n placeholder={ (disabled || readonly) ? undefined : 'Search' }\r\n autoComplete=\"off\"\r\n onKeyDown={ onInputKeyDown }\r\n onMouseDown={ () => setIsEscapeClose(false) }\r\n onFocus={ onInputFocus }\r\n onBlur={ onInputBlur }\r\n aria-describedby={ errorMessageId } />\r\n </div>\r\n <div class=\"fjs-taglist-anchor\">\r\n { shouldDisplayDropdown && <DropdownList\r\n values={ filteredOptions }\r\n getLabel={ (o) => o.label }\r\n onValueSelected={ (o) => selectValue(o.value) }\r\n emptyListMessage={ hasOptionsLeft ? 'No results' : 'All values selected' }\r\n listenerElement={ inputRef.current } /> }\r\n </div>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nTaglist.config = {\r\n type,\r\n keyed: true,\r\n label: 'Tag list',\r\n group: 'selection',\r\n emptyValue: [],\r\n sanitizeValue: sanitizeMultiSelectValue,\r\n create: createEmptyOptions\r\n};\r\n","import Markup from 'preact-markup';\r\nimport { useMemo } from 'preact/hooks';\r\nimport { useService, useTemplateEvaluation } from '../../hooks';\r\nimport { sanitizeHTML } from '../Sanitizer';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nconst type = 'text';\r\n\r\nexport default function Text(props) {\r\n\r\n const form = useService('form');\r\n const { textLinkTarget } = form._getState().properties;\r\n\r\n const { field, disableLinks } = props;\r\n\r\n const { text = '', strict = false } = field;\r\n\r\n const markdownRenderer = useService('markdownRenderer');\r\n\r\n // feelers => pure markdown\r\n const markdown = useTemplateEvaluation(text, { debug: true, strict });\r\n\r\n // markdown => safe HTML\r\n const safeHtml = useMemo(() => {\r\n const html = markdownRenderer.render(markdown);\r\n return sanitizeHTML(html);\r\n }, [ markdownRenderer, markdown ]);\r\n\r\n const OverriddenTargetLink = useMemo(() => BuildOverriddenTargetLink(textLinkTarget), [ textLinkTarget ]);\r\n\r\n const componentOverrides = useMemo(() => {\r\n\r\n if (disableLinks) {\r\n return { 'a': DisabledLink };\r\n }\r\n\r\n if (textLinkTarget) {\r\n return { 'a': OverriddenTargetLink };\r\n }\r\n\r\n return {};\r\n }, [ disableLinks, OverriddenTargetLink, textLinkTarget ]);\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <Markup markup={ safeHtml } components={ componentOverrides } trim={ false } />\r\n </div>;\r\n}\r\n\r\nText.config = {\r\n type,\r\n keyed: false,\r\n label: 'Text view',\r\n group: 'presentation',\r\n create: (options = {}) => ({\r\n text: '# Text',\r\n ...options\r\n })\r\n};\r\n\r\nfunction BuildOverriddenTargetLink(target) {\r\n return function({ children, ...rest }) {\r\n return <a { ...rest } target={ target }>{ children }</a>;\r\n };\r\n}\r\n\r\nfunction DisabledLink({ children, ...rest }) { return <a { ...rest } class=\"fjs-disabled-link\" tabIndex={ -1 }>{ children }</a>; }\r\n","import { useCallback, useRef } from 'preact/hooks';\r\nimport useService from './useService';\r\n\r\nfunction useFlushDebounce(func, additionalDeps = []) {\r\n\r\n const timeoutRef = useRef(null);\r\n const lastArgsRef = useRef(null);\r\n\r\n const config = useService('config', false);\r\n const debounce = config && config.debounce;\r\n const shouldDebounce = debounce !== false && debounce !== 0;\r\n const delay = typeof debounce === 'number' ? debounce : 300;\r\n\r\n const debounceFunc = useCallback((...args) => {\r\n\r\n if (!shouldDebounce) {\r\n func(...args);\r\n return;\r\n }\r\n\r\n lastArgsRef.current = args;\r\n\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n\r\n timeoutRef.current = setTimeout(() => {\r\n func(...lastArgsRef.current);\r\n lastArgsRef.current = null;\r\n }, delay);\r\n\r\n }, [ func, delay, shouldDebounce, ...additionalDeps ]);\r\n\r\n const flushFunc = useCallback(() => {\r\n\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n if (lastArgsRef.current !== null) {\r\n func(...lastArgsRef.current);\r\n lastArgsRef.current = null;\r\n }\r\n timeoutRef.current = null;\r\n }\r\n\r\n }, [ func, ...additionalDeps ]);\r\n\r\n return [ debounceFunc, flushFunc ];\r\n}\r\n\r\nexport default useFlushDebounce;\r\n","import { isArray, isObject, isNil } from 'min-dash';\r\nimport { formFieldClasses } from '../Util';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport InputAdorner from './parts/TemplatedInputAdorner';\r\n\r\nimport useFlushDebounce from '../../hooks/useFlushDebounce';\r\n\r\nconst type = 'textfield';\r\n\r\nexport default function Textfield(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n appearance = {},\r\n validate = {}\r\n } = field;\r\n\r\n const {\r\n prefixAdorner,\r\n suffixAdorner\r\n } = appearance;\r\n\r\n const { required } = validate;\r\n\r\n const [ onInputChange, flushOnChange ] = useFlushDebounce(({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.value\r\n });\r\n }, [ props.onChange ]);\r\n\r\n const onInputBlur = () => {\r\n flushOnChange && flushOnChange();\r\n onBlur && onBlur();\r\n };\r\n\r\n const onInputFocus = () => {\r\n onFocus && onFocus();\r\n };\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n required={ required } />\r\n <InputAdorner disabled={ disabled } readonly={ readonly } pre={ prefixAdorner } post={ suffixAdorner }>\r\n <input\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ domId }\r\n onInput={ onInputChange }\r\n onBlur={ onInputBlur }\r\n onFocus={ onInputFocus }\r\n type=\"text\"\r\n value={ value }\r\n aria-describedby={ errorMessageId } />\r\n </InputAdorner>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nTextfield.config = {\r\n type,\r\n keyed: true,\r\n label: 'Text field',\r\n group: 'basic-input',\r\n emptyValue: '',\r\n sanitizeValue: ({ value }) => {\r\n if (isArray(value) || isObject(value) || isNil(value)) {\r\n return '';\r\n }\r\n\r\n // sanitize newlines to spaces\r\n if (typeof value === 'string') {\r\n return value.replace(/[\\r\\n\\t]/g, ' ');\r\n }\r\n\r\n return String(value);\r\n },\r\n create: (options = {}) => ({ ...options })\r\n};\r\n","import { isArray, isObject, isNil } from 'min-dash';\r\n\r\nimport { useEffect, useLayoutEffect, useRef } from 'preact/hooks';\r\nimport useFlushDebounce from '../../hooks/useFlushDebounce';\r\n\r\nimport { formFieldClasses } from '../Util';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nconst type = 'textarea';\r\n\r\nexport default function Textarea(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n errorMessageId,\r\n domId,\r\n onBlur,\r\n onFocus,\r\n field,\r\n readonly,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n const textareaRef = useRef();\r\n\r\n const [ onInputChange, flushOnChange ] = useFlushDebounce(({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.value\r\n });\r\n }, [ props.onChange ]);\r\n\r\n const onInputBlur = () => {\r\n flushOnChange && flushOnChange();\r\n onBlur && onBlur();\r\n };\r\n\r\n const onInputFocus = () => {\r\n onFocus && onFocus();\r\n };\r\n\r\n useLayoutEffect(() => {\r\n autoSizeTextarea(textareaRef.current);\r\n }, [ value ]);\r\n\r\n useEffect(() => {\r\n autoSizeTextarea(textareaRef.current);\r\n }, []);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n id={ domId }\r\n label={ label }\r\n required={ required } />\r\n <textarea class=\"fjs-textarea\"\r\n disabled={ disabled }\r\n readonly={ readonly }\r\n id={ domId }\r\n onInput={ onInputChange }\r\n onBlur={ onInputBlur }\r\n onFocus={ onInputFocus }\r\n value={ value }\r\n ref={ textareaRef }\r\n aria-describedby={ errorMessageId } />\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nTextarea.config = {\r\n type,\r\n keyed: true,\r\n label: 'Text area',\r\n group: 'basic-input',\r\n emptyValue: '',\r\n sanitizeValue: ({ value }) => (isArray(value) || isObject(value) || isNil(value)) ? '' : String(value),\r\n create: (options = {}) => ({ ...options })\r\n};\r\n\r\nconst autoSizeTextarea = (textarea) => {\r\n\r\n // Ensures the textarea shrinks back, and improves resizing behavior consistency\r\n textarea.style.height = '0px';\r\n\r\n const computed = window.getComputedStyle(textarea);\r\n\r\n const heightFromLines = () => {\r\n const lineHeight = parseInt(computed.getPropertyValue('line-height').replace('px', '')) || 0;\r\n const lines = textarea.value ? textarea.value.toString().split('\\n').length : 0;\r\n return lines * lineHeight;\r\n };\r\n\r\n const calculatedHeight = parseInt(computed.getPropertyValue('border-top-width'))\r\n + parseInt(computed.getPropertyValue('padding-top'))\r\n + (textarea.scrollHeight || heightFromLines())\r\n + parseInt(computed.getPropertyValue('padding-bottom'))\r\n + parseInt(computed.getPropertyValue('border-bottom-width'));\r\n\r\n const minHeight = 75;\r\n const maxHeight = 350;\r\n const displayHeight = Math.max(Math.min(calculatedHeight || 0, maxHeight), minHeight);\r\n\r\n textarea.style.height = `${displayHeight}px`;\r\n\r\n // Overflow is hidden by default to hide scrollbar flickering\r\n textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';\r\n\r\n};\r\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M24.59 16.59 17 24.17V4h-2v20.17l-7.59-7.58L6 18l10 10 10-10-1.41-1.41z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m20 24-10-8 10-8z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m12 8 10 8-10 8z\"/></svg>","import { isDefined, isNumber, isObject, isString } from 'min-dash';\r\nimport { useExpressionEvaluation } from '../../hooks';\r\nimport { useEffect, useState } from 'preact/hooks';\r\nimport Label from '../Label';\r\nimport { formFieldClasses, prefixId } from '../Util';\r\nimport ArrowDownIcon from './icons/ArrowDown.svg';\r\nimport ArrowUpIcon from './icons/ArrowUp.svg';\r\nimport CaretLeftIcon from './icons/CaretLeft.svg';\r\nimport CaretRightIcon from './icons/CaretRight.svg';\r\nimport classNames from 'classnames';\r\n\r\nconst type = 'table';\r\n\r\n/**\r\n * @typedef {('asc'|'desc')} Direction\r\n *\r\n * @typedef Sorting\r\n * @property {string} key\r\n * @property {Direction} direction\r\n *\r\n * @typedef Column\r\n * @property {string} label\r\n * @property {string} key\r\n *\r\n * @typedef Props\r\n * @property {Object} field\r\n * @property {string} field.id\r\n * @property {Array<Column>} [field.columns]\r\n * @property {string} [field.columnsExpression]\r\n * @property {string} [field.label]\r\n * @property {number} [field.rowCount]\r\n * @property {string} [field.dataSource]\r\n *\r\n * @param {Props} props\r\n * @returns {import(\"preact\").JSX.Element}\r\n */\r\nexport default function Table(props) {\r\n const { field } = props;\r\n const {\r\n columns = [],\r\n columnsExpression,\r\n dataSource = '',\r\n rowCount,\r\n id,\r\n label,\r\n } = field;\r\n\r\n /** @type {[(null|Sorting), import(\"preact/hooks\").StateUpdater<null|Sorting>]} */\r\n const [ sortBy, setSortBy ] = useState(null);\r\n const evaluatedColumns = useEvaluatedColumns(\r\n columnsExpression || '',\r\n columns,\r\n );\r\n const columnKeys = evaluatedColumns.map(({ key }) => key);\r\n const evaluatedDataSource = useExpressionEvaluation(dataSource);\r\n const data = Array.isArray(evaluatedDataSource) ? evaluatedDataSource : [];\r\n const sortedData =\r\n sortBy === null\r\n ? data\r\n : sortByColumn(data, sortBy.key, sortBy.direction);\r\n\r\n /** @type {unknown[][]} */\r\n const chunkedData = isNumber(rowCount) ? chunk(sortedData, rowCount) : [ sortedData ];\r\n const [ currentPage, setCurrentPage ] = useState(0);\r\n const currentChunk = chunkedData[currentPage] || [];\r\n\r\n\r\n useEffect(() => {\r\n setCurrentPage(0);\r\n }, [ rowCount, sortBy ]);\r\n\r\n\r\n /** @param {string} key */\r\n function toggleSortBy(key) {\r\n setSortBy((current) => {\r\n if (current === null || current.key !== key) {\r\n return {\r\n key,\r\n direction: 'asc',\r\n };\r\n }\r\n\r\n if (current.direction === 'desc') {\r\n return null;\r\n }\r\n\r\n return {\r\n key,\r\n direction: 'desc',\r\n };\r\n });\r\n }\r\n\r\n return (\r\n <div class={ formFieldClasses(type) }>\r\n <Label id={ prefixId(id) } label={ label } />\r\n <div\r\n class={ classNames('fjs-table-middle-container', {\r\n 'fjs-table-empty': evaluatedColumns.length === 0,\r\n }) }\r\n >\r\n {evaluatedColumns.length === 0 ? (\r\n 'Nothing to show.'\r\n ) : (\r\n <div class=\"fjs-table-inner-container\">\r\n <table class=\"fjs-table\" id={ prefixId(id) }>\r\n <thead class=\"fjs-table-head\">\r\n <tr class=\"fjs-table-tr\">\r\n {evaluatedColumns.map(({ key, label }) => {\r\n const displayLabel = label || key;\r\n\r\n return (\r\n <th\r\n key={ key }\r\n tabIndex={ 0 }\r\n class=\"fjs-table-th\"\r\n onClick={ () => {\r\n toggleSortBy(key);\r\n } }\r\n onKeyDown={ (event) => {\r\n if ([ 'Enter', 'Space' ].includes(event.code)) {\r\n toggleSortBy(key);\r\n }\r\n } }\r\n aria-label={ getHeaderAriaLabel(\r\n sortBy,\r\n key,\r\n displayLabel,\r\n ) }\r\n >\r\n <span\r\n class=\"fjs-table-th-label\"\r\n >\r\n {displayLabel}\r\n {sortBy !== null && sortBy.key === key ? (\r\n <>\r\n {sortBy.direction === 'asc' ? (\r\n <ArrowUpIcon class=\"fjs-table-sort-icon-asc\" />\r\n ) : (\r\n <ArrowDownIcon class=\"fjs-table-sort-icon-desc\" />\r\n )}\r\n </>\r\n ) : null}\r\n </span>\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n {currentChunk.length === 0 ? (\r\n <tbody class=\"fjs-table-body\">\r\n <tr class=\"fjs-table-tr\">\r\n <td class=\"fjs-table-td\" colSpan={ evaluatedColumns.length }>\r\n Nothing to show.\r\n </td>\r\n </tr>\r\n </tbody>\r\n ) : (\r\n <tbody class=\"fjs-table-body\">\r\n {currentChunk.map((row, index) => (\r\n <tr key={ index } class=\"fjs-table-tr\">\r\n {columnKeys.map((key) => (\r\n <td key={ key } class=\"fjs-table-td\">\r\n {row[key]}\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n )}\r\n </table>\r\n </div>\r\n )}\r\n\r\n {(isNumber(rowCount) && chunkedData.length > 1 && evaluatedColumns.length > 0) ?\r\n (\r\n <nav class=\"fjs-table-nav\">\r\n <span class=\"fjs-table-nav-label\">\r\n {currentPage + 1} of {chunkedData.length}\r\n </span>\r\n <button\r\n type=\"button\"\r\n class=\"fjs-table-nav-button\"\r\n onClick={ () => {\r\n setCurrentPage((page) => Math.max(page - 1, 0));\r\n } }\r\n disabled={ currentPage === 0 }\r\n aria-label=\"Previous page\"\r\n >\r\n <CaretLeftIcon />\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"fjs-table-nav-button\"\r\n onClick={ () => {\r\n setCurrentPage((page) =>\r\n Math.min(page + 1, chunkedData.length - 1),\r\n );\r\n } }\r\n disabled={ currentPage >= chunkedData.length - 1 }\r\n aria-label=\"Next page\"\r\n >\r\n <CaretRightIcon />\r\n </button>\r\n </nav>\r\n ) : null}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nTable.config = {\r\n type,\r\n keyed: false,\r\n label: 'Table',\r\n group: 'presentation',\r\n create: (options = {}) => {\r\n const {\r\n id,\r\n columnsExpression,\r\n columns,\r\n rowCount,\r\n ...remainingOptions\r\n } = options;\r\n\r\n if (isDefined(id) && isNumber(rowCount)) {\r\n remainingOptions['rowCount'] = rowCount;\r\n }\r\n\r\n if (isString(columnsExpression)) {\r\n return {\r\n ...remainingOptions,\r\n id,\r\n columnsExpression,\r\n };\r\n }\r\n\r\n if (Array.isArray(columns) && columns.every(isColumn)) {\r\n return {\r\n ...remainingOptions,\r\n id,\r\n columns,\r\n };\r\n }\r\n\r\n return {\r\n ...remainingOptions,\r\n rowCount: 10,\r\n columns: [\r\n {\r\n label: 'ID',\r\n key: 'id',\r\n },\r\n {\r\n label: 'Name',\r\n key: 'name',\r\n },\r\n {\r\n label: 'Date',\r\n key: 'date',\r\n },\r\n ],\r\n };\r\n },\r\n initialDemoData: [\r\n { id: 1, name: 'John Doe', date: '31.01.2023' },\r\n { id: 2, name: 'Erika Muller', date: '20.02.2023' },\r\n { id: 3, name: 'Dominic Leaf', date: '11.03.2023' }\r\n ],\r\n};\r\n\r\n// helpers /////////////////////////////\r\n\r\n/**\r\n * @param {string|void} columnsExpression\r\n * @param {Column[]} fallbackColumns\r\n * @returns {Column[]}\r\n */\r\nfunction useEvaluatedColumns(columnsExpression, fallbackColumns) {\r\n\r\n /** @type {Column[]|null} */\r\n const evaluation = useExpressionEvaluation(columnsExpression || '');\r\n\r\n return Array.isArray(evaluation) && evaluation.every(isColumn)\r\n ? evaluation\r\n : fallbackColumns;\r\n}\r\n\r\n/**\r\n * @param {any} column\r\n * @returns {column is Column}\r\n */\r\nfunction isColumn(column) {\r\n return (\r\n isObject(column) && isString(column['label']) && isString(column['key'])\r\n );\r\n}\r\n\r\n/**\r\n * @param {Array} array\r\n * @param {number} size\r\n * @returns {Array}\r\n */\r\nfunction chunk(array, size) {\r\n return array.reduce((chunks, item, index) => {\r\n if (index % size === 0) {\r\n chunks.push([ item ]);\r\n } else {\r\n chunks[chunks.length - 1].push(item);\r\n }\r\n\r\n return chunks;\r\n }, []);\r\n}\r\n\r\n/**\r\n * @param {unknown[]} array\r\n * @param {string} key\r\n * @param {Direction} direction\r\n * @returns {unknown[]}\r\n */\r\nfunction sortByColumn(array, key, direction) {\r\n return [ ...array ].sort((a, b) => {\r\n if (!isObject(a) || !isObject(b)) {\r\n return 0;\r\n }\r\n\r\n if (direction === 'asc') {\r\n return a[key] > b[key] ? 1 : -1;\r\n }\r\n\r\n return a[key] < b[key] ? 1 : -1;\r\n });\r\n}\r\n\r\n/**\r\n * @param {null|Sorting} sortBy\r\n * @param {string} key\r\n * @param {string} label\r\n */\r\nfunction getHeaderAriaLabel(sortBy, key, label) {\r\n if (sortBy === null || sortBy.key !== key) {\r\n return `Click to sort by ${label} descending`;\r\n }\r\n\r\n if (sortBy.direction === 'asc') {\r\n return 'Click to remove sorting';\r\n }\r\n\r\n return `Click to sort by ${label} ascending`;\r\n}\r\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\">\r\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\"/>\r\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=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M8 33v5a1 1 0 0 0 1 1h4v2H9a3 3 0 0 1-3-3v-5h2Zm18 6v2H15v-2h11Zm13 0v2H28v-2h11Zm9-6v5a3 3 0 0 1-3 3h-4v-2h4a1 1 0 0 0 .993-.883L46 38v-5h2ZM8 22v9H6v-9h2Zm40 0v9h-2v-9h2Zm-35-9v2H9a1 1 0 0 0-.993.883L8 16v4H6v-4a3 3 0 0 1 3-3h4Zm32 0a3 3 0 0 1 3 3v4h-2v-4a1 1 0 0 0-.883-.993L45 15h-4v-2h4Zm-6 0v2H28v-2h11Zm-13 0v2H15v-2h11Z\"/></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 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=\"M2.70001 43.2964V44.55C2.70001 45.2956 3.30443 45.9 4.05001 45.9H5.32501V44.1052C5.3736 44.2444 5.40001 44.3941 5.40001 44.55V43.2964H5.32501V43.2H4.05001C4.22743 43.2 4.39685 43.2342 4.55204 43.2964H2.70001ZM5.40001 40.7893V38.2821H2.70001V40.7893H5.40001ZM5.40001 35.775V33.2679H2.70001V35.775H5.40001ZM5.40001 30.7607V28.2536H2.70001V30.7607H5.40001ZM5.40001 25.7464V23.2393H2.70001V25.7464H5.40001ZM5.40001 20.7321V18.225H2.70001V20.7321H5.40001ZM5.40001 15.7179V13.2107H2.70001V15.7179H5.40001ZM2.70001 10.7036H4.55204C4.39685 10.7658 4.22743 10.8 4.05001 10.8H5.32501V10.7036H5.40001V9.45C5.40001 9.60585 5.3736 9.75554 5.32501 9.89482V8.1H4.05001C3.30443 8.1 2.70001 8.70441 2.70001 9.45V10.7036ZM7.87501 10.8H10.425V8.1H7.87501V10.8ZM12.975 10.8H15.525V8.1H12.975V10.8ZM18.075 10.8H20.625V8.1H18.075V10.8ZM23.175 10.8H25.725V8.1H23.175V10.8ZM28.275 10.8H30.825V8.1H28.275V10.8ZM33.375 10.8H35.925V8.1H33.375V10.8ZM38.475 10.8H41.025V8.1H38.475V10.8ZM43.575 10.8H46.125V8.1H43.575V10.8ZM48.675 8.1V9.89484C48.6264 9.75555 48.6 9.60586 48.6 9.45V10.7036H48.675V10.8H49.95C49.7726 10.8 49.6032 10.7658 49.448 10.7036H51.3V9.45C51.3 8.70441 50.6956 8.1 49.95 8.1H48.675ZM48.6 13.2107V15.7179H51.3V13.2107H48.6ZM48.6 18.225V20.7321H51.3V18.225H48.6ZM48.6 23.2393V25.7464H51.3V23.2393H48.6ZM48.6 28.2536V30.7607H51.3V28.2536H48.6ZM48.6 33.2679V35.775H51.3V33.2679H48.6ZM48.6 38.2821V40.7893H51.3V38.2821H48.6ZM51.3 43.2964H49.448C49.6032 43.2342 49.7726 43.2 49.95 43.2H48.675V43.2964H48.6V44.55C48.6 44.3941 48.6264 44.2445 48.675 44.1052V45.9H49.95C50.6956 45.9 51.3 45.2956 51.3 44.55V43.2964ZM46.125 43.2H43.575V45.9H46.125V43.2ZM41.025 43.2H38.475V45.9H41.025V43.2ZM35.925 43.2H33.375V45.9H35.925V43.2ZM30.825 43.2H28.275V45.9H30.825V43.2ZM25.725 43.2H23.175V45.9H25.725V43.2ZM20.625 43.2H18.075V45.9H20.625V43.2ZM15.525 43.2H12.975V45.9H15.525V43.2ZM10.425 43.2H7.87501V45.9H10.425V43.2ZM16.2 17.55C18.4368 17.55 20.25 19.3632 20.25 21.6V22.95C20.25 25.1868 18.4368 27 16.2 27H14.85C12.6133 27 10.8 25.1868 10.8 22.95V21.6C10.8 19.3632 12.6133 17.55 14.85 17.55H16.2ZM16.2 20.25H14.85C14.1044 20.25 13.5 20.8544 13.5 21.6V22.95C13.5 23.6956 14.1044 24.3 14.85 24.3H16.2C16.9456 24.3 17.55 23.6956 17.55 22.95V21.6C17.55 20.8544 16.9456 20.25 16.2 20.25ZM43.2 21.6C43.2 19.3632 41.3868 17.55 39.15 17.55H29.7C27.4633 17.55 25.65 19.3632 25.65 21.6V22.95C25.65 25.1868 27.4633 27 29.7 27H39.15C41.3868 27 43.2 25.1868 43.2 22.95V21.6ZM29.7 20.25H39.15C39.8956 20.25 40.5 20.8544 40.5 21.6V22.95C40.5 23.6956 39.8956 24.3 39.15 24.3H29.7C28.9544 24.3 28.35 23.6956 28.35 22.95V21.6C28.35 20.8544 28.9544 20.25 29.7 20.25ZM43.2 37.8C43.2 35.5632 41.3868 33.75 39.15 33.75H29.7C27.4633 33.75 25.65 35.5632 25.65 37.8V39.15H28.35V37.8C28.35 37.0544 28.9544 36.45 29.7 36.45H39.15C39.8956 36.45 40.5 37.0544 40.5 37.8V39.15H43.2V37.8ZM16.2 33.75C18.4368 33.75 20.25 35.5632 20.25 37.8V39.15H17.55V37.8C17.55 37.0544 16.9456 36.45 16.2 36.45H14.85C14.1044 36.45 13.5 37.0544 13.5 37.8V39.15H10.8V37.8C10.8 35.5632 12.6133 33.75 14.85 33.75H16.2Z\" fill=\"currentColor\"/>\r\n</svg>\r\n","<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 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\" d=\"M34.467 37.3 41 31l-6.533-6.3-1.32 1.273L38.36 31l-5.213 5.027 1.32 1.273ZM19.533 24.7 13 31l6.533 6.3 1.32-1.273L15.64 31l5.214-5.027-1.32-1.273ZM23.66 39.532l1.805.468 4.875-17.532L28.535 22 23.66 39.532Z\"/><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M46 9a3 3 0 0 1 3 3v30a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V12a3 3 0 0 1 3-3h38Zm0 2H8a1 1 0 0 0-1 1v4h40v-4a1 1 0 0 0-1-1ZM7 42V18h40v24a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1Z\" 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>\r\n","import ButtonIcon from './Button.svg';\r\nimport CheckboxIcon from './Checkbox.svg';\r\nimport ChecklistIcon from './Checklist.svg';\r\nimport DatetimeIcon from './Datetime.svg';\r\nimport TaglistIcon from './Taglist.svg';\r\nimport FormIcon from './Form.svg';\r\nimport ColumnsIcon from './Group.svg';\r\nimport NumberIcon from './Number.svg';\r\nimport RadioIcon from './Radio.svg';\r\nimport SelectIcon from './Select.svg';\r\nimport SeparatorIcon from './Separator.svg';\r\nimport SpacerIcon from './Spacer.svg';\r\nimport DynamicListIcon from './DynamicList.svg';\r\nimport TextIcon from './Text.svg';\r\nimport TextfieldIcon from './Textfield.svg';\r\nimport TextareaIcon from './Textarea.svg';\r\nimport IFrameIcon from './IFrame.svg';\r\nimport ImageIcon from './Image.svg';\r\nimport GroupIcon from './Group.svg';\r\nimport TableIcon from './Table.svg';\r\n\r\nexport const iconsByType = (type) => {\r\n return {\r\n button: ButtonIcon,\r\n checkbox: CheckboxIcon,\r\n checklist: ChecklistIcon,\r\n columns: ColumnsIcon,\r\n datetime: DatetimeIcon,\r\n group: GroupIcon,\r\n iframe: IFrameIcon,\r\n image: ImageIcon,\r\n number: NumberIcon,\r\n radio: RadioIcon,\r\n select: SelectIcon,\r\n separator: SeparatorIcon,\r\n spacer: SpacerIcon,\r\n dynamiclist: DynamicListIcon,\r\n taglist: TaglistIcon,\r\n text: TextIcon,\r\n textfield: TextfieldIcon,\r\n textarea: TextareaIcon,\r\n table: TableIcon,\r\n default: FormIcon\r\n }[type];\r\n};\r\n","import Button from './form-fields/Button';\r\nimport Checkbox from './form-fields/Checkbox';\r\nimport Checklist from './form-fields/Checklist';\r\nimport Default from './form-fields/Default';\r\nimport Datetime from './form-fields/Datetime';\r\nimport FormComponent from './FormComponent';\r\nimport FormField from './FormField';\r\nimport Group from './form-fields/Group';\r\nimport IFrame from './form-fields/IFrame';\r\nimport Image from './form-fields/Image';\r\nimport Numberfield from './form-fields/Number';\r\nimport Radio from './form-fields/Radio';\r\nimport Select from './form-fields/Select';\r\nimport Separator from './form-fields/Separator';\r\nimport Spacer from './form-fields/Spacer';\r\nimport DynamicList from './form-fields/DynamicList';\r\nimport Taglist from './form-fields/Taglist';\r\nimport Text from './form-fields/Text';\r\nimport Textfield from './form-fields/Textfield';\r\nimport Textarea from './form-fields/Textarea';\r\nimport Table from './form-fields/Table';\r\n\r\nimport Label from './Label';\r\nimport Description from './Description';\r\nimport Errors from './Errors';\r\n\r\nexport {\r\n Label,\r\n Description,\r\n Errors\r\n};\r\n\r\nexport {\r\n Button,\r\n Checkbox,\r\n Checklist,\r\n Default,\r\n Datetime,\r\n FormComponent,\r\n FormField,\r\n Group,\r\n IFrame,\r\n DynamicList,\r\n Image,\r\n Numberfield,\r\n Radio,\r\n Select,\r\n Separator,\r\n Spacer,\r\n Taglist,\r\n Text,\r\n Textfield,\r\n Textarea,\r\n Table\r\n};\r\n\r\nexport const formFields = [\r\n Button,\r\n Checkbox,\r\n Checklist,\r\n Default,\r\n Group,\r\n IFrame,\r\n DynamicList,\r\n Image,\r\n Numberfield,\r\n Datetime,\r\n Radio,\r\n Select,\r\n Spacer,\r\n Separator,\r\n DynamicList,\r\n Taglist,\r\n Text,\r\n Textfield,\r\n Textarea,\r\n Table\r\n];\r\n\r\nexport * from './icons';\r\nexport * from './Sanitizer';","import { formFields } from './components';\r\n\r\nexport default class FormFields {\r\n constructor() {\r\n this._formFields = {};\r\n\r\n formFields.forEach((formField) => {\r\n this.register(formField.config.type, formField);\r\n });\r\n }\r\n\r\n register(type, formField) {\r\n this._formFields[ type ] = formField;\r\n }\r\n\r\n get(type) {\r\n return this._formFields[ type ];\r\n }\r\n}","import FeelExpressionLanguage from '../features/expressionLanguage/FeelExpressionLanguage.js';\r\nimport FeelersTemplating from '../features/expressionLanguage/FeelersTemplating.js';\r\nimport FormFields from '../render/FormFields.js';\r\n\r\nimport { get } from 'min-dash';\r\n\r\nconst EXPRESSION_PROPERTIES = [\r\n 'alt',\r\n 'appearance.prefixAdorner',\r\n 'appearance.suffixAdorner',\r\n 'conditional.hide',\r\n 'description',\r\n 'label',\r\n 'source',\r\n 'readonly',\r\n 'text',\r\n 'validate.min',\r\n 'validate.max',\r\n 'validate.minLength',\r\n 'validate.maxLength',\r\n 'valuesExpression',\r\n 'url',\r\n 'dataSource',\r\n 'columnsExpression'\r\n];\r\n\r\nconst TEMPLATE_PROPERTIES = [\r\n 'alt',\r\n 'appearance.prefixAdorner',\r\n 'appearance.suffixAdorner',\r\n 'description',\r\n 'label',\r\n 'source',\r\n 'text',\r\n 'url'\r\n];\r\n\r\n/**\r\n * @typedef { import('../types').Schema } Schema\r\n */\r\n\r\n/**\r\n * Parse the schema for variables a form might make use of.\r\n *\r\n * @example\r\n *\r\n * // retrieve variables from schema\r\n * const variables = getSchemaVariables(schema);\r\n *\r\n * @example\r\n *\r\n * // retrieve input variables from schema\r\n * const inputVariables = getSchemaVariables(schema, { outputs: false });\r\n *\r\n * @example\r\n *\r\n * // retrieve output variables from schema\r\n * const outputVariables = getSchemaVariables(schema, { inputs: false });\r\n *\r\n * @param {Schema} schema\r\n * @param {object} [options]\r\n * @param {any} [options.expressionLanguage]\r\n * @param {any} [options.templating]\r\n * @param {any} [options.formFields]\r\n * @param {boolean} [options.inputs=true]\r\n * @param {boolean} [options.outputs=true]\r\n *\r\n * @return {string[]}\r\n */\r\nexport function getSchemaVariables(schema, options = {}) {\r\n\r\n const {\r\n formFields = new FormFields(),\r\n expressionLanguage = new FeelExpressionLanguage(null),\r\n templating = new FeelersTemplating(),\r\n inputs = true,\r\n outputs = true\r\n } = options;\r\n\r\n if (!schema.components) {\r\n return [];\r\n }\r\n\r\n const getAllComponents = (node) => {\r\n const components = [];\r\n\r\n if (node.components) {\r\n node.components.forEach(component => {\r\n components.push(component);\r\n components.push(...getAllComponents(component));\r\n });\r\n }\r\n\r\n return components;\r\n };\r\n\r\n const variables = getAllComponents(schema).reduce((variables, component) => {\r\n\r\n const {\r\n valuesKey\r\n } = component;\r\n\r\n // collect input-only variables\r\n if (inputs) {\r\n\r\n if (valuesKey) {\r\n variables = [ ...variables, valuesKey ];\r\n }\r\n\r\n EXPRESSION_PROPERTIES.forEach((prop) => {\r\n const property = get(component, prop.split('.'));\r\n\r\n if (property && expressionLanguage.isExpression(property)) {\r\n\r\n const expressionVariables = expressionLanguage.getVariableNames(property, { type: 'expression' });\r\n\r\n variables = [ ...variables, ...expressionVariables ];\r\n }\r\n });\r\n\r\n TEMPLATE_PROPERTIES.forEach((prop) => {\r\n const property = get(component, prop.split('.'));\r\n\r\n if (property && !expressionLanguage.isExpression(property) && templating.isTemplate(property)) {\r\n const templateVariables = templating.getVariableNames(property);\r\n variables = [ ...variables, ...templateVariables ];\r\n }\r\n });\r\n\r\n }\r\n\r\n return variables.filter(variable => typeof variable === 'string');\r\n }, []);\r\n\r\n const getBindingVariables = (node)=> {\r\n const bindingVariable = [];\r\n const formField = formFields.get(node.type);\r\n\r\n if (formField && formField.config.keyed && node.key) {\r\n return [ node.key.split('.')[0] ];\r\n } else if (formField && formField.config.pathed && node.path) {\r\n return [ node.path.split('.')[0] ];\r\n } else if (node.components) {\r\n node.components.forEach(component => {\r\n bindingVariable.push(...getBindingVariables(component));\r\n });\r\n }\r\n\r\n return bindingVariable;\r\n };\r\n\r\n // collect binding variables\r\n if (inputs || outputs) {\r\n variables.push(...getBindingVariables(schema));\r\n }\r\n\r\n // remove duplicates\r\n return Array.from(new Set(variables));\r\n}","/**\r\n * Get the ancestry list of a form field.\r\n *\r\n * @param {string} formFieldId\r\n * @param {import('../core/FormFieldRegistry').default} formFieldRegistry\r\n *\r\n * @return {Array<string>} ancestry list\r\n */\r\nexport const getAncestryList = (formFieldId, formFieldRegistry) => {\r\n const ids = [];\r\n\r\n let currentFormField = formFieldRegistry.get(formFieldId);\r\n\r\n while (currentFormField) {\r\n ids.push(currentFormField.id);\r\n\r\n currentFormField = formFieldRegistry.get(currentFormField._parent);\r\n }\r\n\r\n return ids;\r\n};","import { unaryTest } from 'feelin';\r\nimport { get, isString, set, values, isObject } from 'min-dash';\r\nimport { buildExpressionContext, clone } from '../../util';\r\n\r\n/**\r\n * @typedef {object} Condition\r\n * @property {string} [hide]\r\n */\r\n\r\nexport default class ConditionChecker {\r\n constructor(formFieldRegistry, pathRegistry, eventBus) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._pathRegistry = pathRegistry;\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * For given data, remove properties based on condition.\r\n *\r\n * @param {Object<string, any>} data\r\n * @param {Object<string, any>} contextData\r\n * @param {Object} [options]\r\n * @param {Function} [options.getFilterPath]\r\n * @param {boolean} [options.leafNodeDeletionOnly]\r\n */\r\n applyConditions(data, contextData = {}, options = {}) {\r\n\r\n const workingData = clone(data);\r\n\r\n const {\r\n getFilterPath = (field, indexes) => this._pathRegistry.getValuePath(field, { indexes }),\r\n leafNodeDeletionOnly = false\r\n } = options;\r\n\r\n const _applyConditionsWithinScope = (rootField, scopeContext, startHidden = false) => {\r\n\r\n const {\r\n indexes = {},\r\n expressionIndexes = [],\r\n scopeData = contextData,\r\n parentScopeData = null\r\n } = scopeContext;\r\n\r\n this._pathRegistry.executeRecursivelyOnFields(rootField, ({ field, isClosed, isRepeatable, context }) => {\r\n\r\n const {\r\n conditional,\r\n components,\r\n id\r\n } = field;\r\n\r\n // build the expression context in the right format\r\n const localExpressionContext = buildExpressionContext({\r\n this: scopeData,\r\n data: contextData,\r\n i: expressionIndexes,\r\n parent: parentScopeData\r\n });\r\n\r\n context.isHidden = startHidden || context.isHidden || (conditional && this._checkHideCondition(conditional, localExpressionContext));\r\n\r\n // if a field is repeatable and visible, we need to implement custom recursion on its children\r\n if (isRepeatable && (!context.isHidden || leafNodeDeletionOnly)) {\r\n\r\n // prevent the regular recursion behavior of executeRecursivelyOnFields\r\n context.preventRecursion = true;\r\n\r\n const repeaterValuePath = this._pathRegistry.getValuePath(field, { indexes });\r\n const repeaterValue = get(contextData, repeaterValuePath);\r\n\r\n // quit early if there are no children or data associated with the repeater\r\n if (!Array.isArray(repeaterValue) || !repeaterValue.length || !Array.isArray(components) || !components.length) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < repeaterValue.length; i++) {\r\n\r\n // create a new scope context for each index\r\n const newScopeContext = {\r\n indexes: { ...indexes, [id]: i },\r\n expressionIndexes: [ ...expressionIndexes, i + 1 ],\r\n scopeData: repeaterValue[i],\r\n parentScopeData: scopeData\r\n };\r\n\r\n // for each child component, apply conditions within the new repetition scope\r\n components.forEach(component => {\r\n _applyConditionsWithinScope(component, newScopeContext, context.isHidden);\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n // if we have a hidden repeatable field, and the data structure allows, we clear it directly at the root and stop recursion\r\n if (context.isHidden && !leafNodeDeletionOnly && isRepeatable) {\r\n context.preventRecursion = true;\r\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\r\n }\r\n\r\n // for simple leaf fields, we always clear\r\n if (context.isHidden && isClosed) {\r\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n // apply conditions starting with the root of the form\r\n const form = this._formFieldRegistry.getForm();\r\n\r\n if (!form) {\r\n throw new Error('form field registry has no form');\r\n }\r\n\r\n _applyConditionsWithinScope(form, {\r\n scopeData: contextData\r\n });\r\n\r\n return workingData;\r\n }\r\n\r\n /**\r\n * Check if given condition is met. Returns null for invalid/missing conditions.\r\n *\r\n * @param {string} condition\r\n * @param {import('../../types').Data} [data]\r\n *\r\n * @returns {boolean|null}\r\n */\r\n check(condition, data = {}) {\r\n if (!condition) {\r\n return null;\r\n }\r\n\r\n if (!isString(condition) || !condition.startsWith('=')) {\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n // cut off initial '='\r\n const result = unaryTest(condition.slice(1), data);\r\n\r\n return result;\r\n } catch (error) {\r\n this._eventBus.fire('error', { error });\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Check if hide condition is met.\r\n *\r\n * @param {Condition} condition\r\n * @param {Object<string, any>} data\r\n * @returns {boolean}\r\n */\r\n _checkHideCondition(condition, data) {\r\n if (!condition.hide) {\r\n return false;\r\n }\r\n\r\n const result = this.check(condition.hide, data);\r\n\r\n return result === true;\r\n }\r\n\r\n _cleanlyClearDataAtPath(valuePath, obj) {\r\n const workingValuePath = [ ...valuePath ];\r\n let recurse = false;\r\n\r\n do {\r\n set(obj, workingValuePath, undefined);\r\n workingValuePath.pop();\r\n const parentObject = get(obj, workingValuePath);\r\n recurse = !!workingValuePath.length && (this._isEmptyObject(parentObject) || this._isEmptyArray(parentObject));\r\n } while (recurse);\r\n }\r\n\r\n _isEmptyObject(parentObject) {\r\n return isObject(parentObject) && !values(parentObject).length;\r\n }\r\n\r\n _isEmptyArray(parentObject) {\r\n return Array.isArray(parentObject) && (!parentObject.length || parentObject.every(item => item === undefined));\r\n }\r\n}\r\n\r\nConditionChecker.$inject = [\r\n 'formFieldRegistry',\r\n 'pathRegistry',\r\n 'eventBus'\r\n];\r\n","import FeelExpressionLanguage from './FeelExpressionLanguage';\r\nimport FeelersTemplating from './FeelersTemplating';\r\nimport ConditionChecker from './ConditionChecker';\r\n\r\nexport default {\r\n __init__: [ 'expressionLanguage', 'templating', 'conditionChecker' ],\r\n expressionLanguage: [ 'type', FeelExpressionLanguage ],\r\n templating: [ 'type', FeelersTemplating ],\r\n conditionChecker: [ 'type', ConditionChecker ]\r\n};\r\n\r\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };","import showdown from 'showdown';\r\n\r\n// bootstrap showdown to support github flavored markdown\r\nshowdown.setFlavor('github');\r\n\r\nexport default class MarkdownRenderer {\r\n\r\n constructor() {\r\n this._converter = new showdown.Converter();\r\n }\r\n\r\n /**\r\n * Render markdown to HTML.\r\n *\r\n * @param {string} markdown - The markdown to render\r\n *\r\n * @returns {string} HTML\r\n */\r\n render(markdown) {\r\n return this._converter.makeHtml(markdown);\r\n }\r\n}\r\n\r\nMarkdownRenderer.$inject = [];","import MarkdownRenderer from './MarkdownRenderer';\r\n\r\nexport default {\r\n __init__: [ 'markdownRenderer' ],\r\n markdownRenderer: [ 'type', MarkdownRenderer ],\r\n};\r\n\r\nexport { MarkdownRenderer };","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';\r\nimport { clone } from '../../../util';\r\n\r\nexport default class UpdateFieldValidationHandler {\r\n\r\n constructor(form, validator) {\r\n this._form = form;\r\n this._validator = validator;\r\n }\r\n\r\n execute(context) {\r\n const { field, value, indexes } = context;\r\n const { errors } = this._form._getState();\r\n\r\n context.oldErrors = clone(errors);\r\n\r\n const fieldErrors = this._validator.validateField(field, value);\r\n const updatedErrors = set(errors, [ field.id, ...Object.values(indexes || {}) ], fieldErrors.length ? fieldErrors : undefined);\r\n this._form._setState({ errors: updatedErrors });\r\n }\r\n\r\n revert(context) {\r\n this._form._setState({ errors: context.oldErrors });\r\n }\r\n}\r\n\r\nUpdateFieldValidationHandler.$inject = [ 'form', 'validator' ];","import UpdateFieldValidationHandler from './cmd/UpdateFieldValidationHandler';\r\n\r\nexport default class ViewerCommands {\r\n constructor(commandStack, eventBus) {\r\n this._commandStack = commandStack;\r\n\r\n eventBus.on('form.init', () => {\r\n this.registerHandlers();\r\n });\r\n }\r\n\r\n registerHandlers() {\r\n Object.entries(this.getHandlers()).forEach(([ id, handler ]) => {\r\n this._commandStack.registerHandler(id, handler);\r\n });\r\n }\r\n\r\n getHandlers() {\r\n return {\r\n 'formField.validation.update': UpdateFieldValidationHandler\r\n };\r\n }\r\n\r\n updateFieldValidation(field, value, indexes) {\r\n const context = {\r\n field,\r\n value,\r\n indexes\r\n };\r\n\r\n this._commandStack.execute('formField.validation.update', context);\r\n }\r\n\r\n}\r\n\r\nViewerCommands.$inject = [\r\n 'commandStack',\r\n 'eventBus'\r\n];","import commandModule from 'diagram-js/lib/command';\r\n\r\nimport ViewerCommands from './ViewerCommands';\r\n\r\nexport default {\r\n __depends__: [\r\n commandModule\r\n ],\r\n __init__: [ 'viewerCommands' ],\r\n viewerCommands: [ 'type', ViewerCommands ]\r\n};\r\n\r\nexport { ViewerCommands };","<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\r\n/* eslint-disable react-hooks/rules-of-hooks */\r\n\r\nimport { get } from 'min-dash';\r\nimport { useContext, useMemo, useRef } from 'preact/hooks';\r\nimport LocalExpressionContext from '../../render/context/LocalExpressionContext';\r\n\r\nimport ExpandSvg from '../../render/components/form-fields/icons/Expand.svg';\r\nimport CollapseSvg from '../../render/components/form-fields/icons/Collapse.svg';\r\nimport AddSvg from '../../render/components/form-fields/icons/Add.svg';\r\nimport DeleteSvg from '../../render/components/form-fields/icons/Delete.svg';\r\n\r\nimport { buildExpressionContext } from '../../util';\r\nimport { useScrollIntoView } from '../../render/hooks';\r\nimport classNames from 'classnames';\r\n\r\nexport default class RepeatRenderManager {\r\n\r\n constructor(form, formFields, formFieldRegistry, pathRegistry) {\r\n this._form = form;\r\n this._formFields = formFields;\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._pathRegistry = pathRegistry;\r\n this.Repeater = this.Repeater.bind(this);\r\n this.RepeatFooter = this.RepeatFooter.bind(this);\r\n }\r\n\r\n /**\r\n * Checks whether a field is currently repeating its children.\r\n *\r\n * @param {string} id - The id of the field to check\r\n * @returns {boolean} - True if repeatable, false otherwise\r\n */\r\n isFieldRepeating(id) {\r\n\r\n if (!id) {\r\n return false;\r\n }\r\n\r\n const formField = this._formFieldRegistry.get(id);\r\n const formFieldDefinition = this._formFields.get(formField.type);\r\n return formFieldDefinition.config.repeatable && formField.isRepeating;\r\n }\r\n\r\n Repeater(props) {\r\n\r\n const { RowsRenderer, indexes, useSharedState, ...restProps } = props;\r\n\r\n const [ sharedRepeatState ] = useSharedState;\r\n\r\n const { data } = this._form._getState();\r\n\r\n const repeaterField = props.field;\r\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\r\n const values = get(data, dataPath) || [];\r\n\r\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\r\n const collapseEnabled = !repeaterField.disableCollapse && (values.length > nonCollapsedItems);\r\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\r\n\r\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\r\n const showRemove = repeaterField.allowAddRemove && hasChildren;\r\n\r\n const displayValues = isCollapsed ? values.slice(0, nonCollapsedItems) : values;\r\n\r\n const onDeleteItem = (index) => {\r\n\r\n const updatedValues = values.slice();\r\n updatedValues.splice(index, 1);\r\n\r\n props.onChange({\r\n field: repeaterField,\r\n value: updatedValues,\r\n indexes\r\n });\r\n };\r\n\r\n const parentExpressionContextInfo = useContext(LocalExpressionContext);\r\n\r\n return (\r\n <>\r\n {displayValues.map((value, index) => {\r\n const elementProps = {\r\n ...restProps,\r\n indexes: { ...(indexes || {}), [ repeaterField.id ]: index },\r\n };\r\n\r\n const localExpressionContextInfo = useMemo(() => ({\r\n data: parentExpressionContextInfo.data,\r\n this: value,\r\n parent: buildExpressionContext(parentExpressionContextInfo),\r\n i: [ ...parentExpressionContextInfo.i , index + 1 ]\r\n }), [ index, value ]);\r\n\r\n return !showRemove ?\r\n <LocalExpressionContext.Provider value={ localExpressionContextInfo }>\r\n <RowsRenderer { ...elementProps } />\r\n </LocalExpressionContext.Provider> :\r\n <div class=\"fjs-repeat-row-container\">\r\n <div class=\"fjs-repeat-row-rows\">\r\n <LocalExpressionContext.Provider value={ localExpressionContextInfo }>\r\n <RowsRenderer { ...elementProps } />\r\n </LocalExpressionContext.Provider>\r\n </div>\r\n <button class=\"fjs-repeat-row-remove\" type=\"button\" aria-label={ `Remove list item ${index + 1}` } onClick={ () => onDeleteItem(index) }>\r\n <div class=\"fjs-repeat-row-remove-icon-container\">\r\n <DeleteSvg />\r\n </div>\r\n </button>\r\n </div>;\r\n })}\r\n </>\r\n );\r\n }\r\n\r\n RepeatFooter(props) {\r\n\r\n const addButtonRef = useRef(null);\r\n const { useSharedState, indexes, field: repeaterField, readonly, disabled } = props;\r\n const [ sharedRepeatState, setSharedRepeatState ] = useSharedState;\r\n\r\n const { data } = this._form._getState();\r\n\r\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\r\n const values = get(data, dataPath) || [];\r\n\r\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\r\n const collapseEnabled = !repeaterField.disableCollapse && (values.length > nonCollapsedItems);\r\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\r\n\r\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\r\n const showAdd = repeaterField.allowAddRemove && hasChildren;\r\n\r\n const toggle = () => {\r\n setSharedRepeatState(state => ({ ...state, isCollapsed: !isCollapsed }));\r\n };\r\n\r\n const shouldScroll = useRef(false);\r\n\r\n const onAddItem = () => {\r\n const updatedValues = values.slice();\r\n const newItem = this._form._getInitializedFieldData(this._form._getState().data, {\r\n container: repeaterField,\r\n indexes: { ...indexes, [ repeaterField.id ]: updatedValues.length }\r\n });\r\n\r\n updatedValues.push(newItem);\r\n\r\n shouldScroll.current = true;\r\n\r\n props.onChange({\r\n field: repeaterField,\r\n value: updatedValues,\r\n indexes\r\n });\r\n\r\n setSharedRepeatState(state => ({ ...state, isCollapsed: false }));\r\n };\r\n\r\n useScrollIntoView(addButtonRef, [ values.length ], {\r\n align: 'bottom',\r\n behavior: 'auto',\r\n offset: 20\r\n }, [ shouldScroll ]);\r\n\r\n return <div\r\n className={\r\n classNames('fjs-repeat-render-footer', {\r\n 'fjs-remove-allowed':repeaterField.allowAddRemove\r\n }) }\r\n >\r\n {\r\n showAdd ? <button readOnly={ readonly } disabled={ disabled || readonly } class=\"fjs-repeat-render-add\" type=\"button\" ref={ addButtonRef } onClick={ onAddItem }>\r\n <><AddSvg /> { 'Add new' }</>\r\n </button> : null\r\n }\r\n {\r\n collapseEnabled ? <button class=\"fjs-repeat-render-collapse\" type=\"button\" onClick={ toggle }>\r\n {\r\n isCollapsed\r\n ? <><ExpandSvg /> { `Expand all (${values.length})` }</>\r\n : <><CollapseSvg /> { 'Collapse' }</>\r\n }\r\n </button> : null\r\n }\r\n </div>;\r\n }\r\n\r\n _getNonCollapsedItems(field) {\r\n const DEFAULT_NON_COLLAPSED_ITEMS = 5;\r\n\r\n const { nonCollapsedItems } = field;\r\n\r\n return nonCollapsedItems ? nonCollapsedItems : DEFAULT_NON_COLLAPSED_ITEMS;\r\n }\r\n\r\n}\r\n\r\nRepeatRenderManager.$inject = [ 'form', 'formFields', 'formFieldRegistry', 'pathRegistry' ];","import RepeatRenderManager from './RepeatRenderManager';\r\n\r\nexport default {\r\n __init__: [ 'repeatRenderManager' ],\r\n repeatRenderManager: [ 'type', RepeatRenderManager ],\r\n};\r\n\r\nexport { RepeatRenderManager };","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 */\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/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n events = isArray(events) ? events : [ events ];\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n var actualCallback = callback;\n\n if (that) {\n actualCallback = bind(callback, that);\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n actualCallback[FN_REF] = callback[FN_REF] || callback;\n }\n\n var self = this;\n\n events.forEach(function(e) {\n self._addListener(e, {\n priority: priority,\n callback: actualCallback,\n next: null\n });\n });\n};\n\n/**\n * Register an event listener that is called only once.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] the listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.once = function(events, priority, callback, that) {\n var self = this;\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n function wrappedCallback() {\n wrappedCallback.__isTomb = true;\n\n var result = callback.apply(that, arguments);\n\n self.off(events, wrappedCallback);\n\n return result;\n }\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n wrappedCallback[FN_REF] = callback;\n\n this.on(events, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|string[]} events\n * @param {EventBusEventCallback} [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';\r\nimport { countDecimals } from '../render/components/util/numberFieldUtil';\r\nimport Big from 'big.js';\r\n\r\nconst EMAIL_PATTERN = /^[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])?)*$/;\r\nconst PHONE_PATTERN = /(\\+|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}$/;\r\n\r\nconst VALIDATE_FEEL_PROPERTIES = [\r\n 'min',\r\n 'max',\r\n 'minLength',\r\n 'maxLength'\r\n];\r\n\r\nexport default class Validator {\r\n\r\n constructor(expressionLanguage, conditionChecker, form) {\r\n this._expressionLanguage = expressionLanguage;\r\n this._conditionChecker = conditionChecker;\r\n this._form = form;\r\n }\r\n\r\n validateField(field, value) {\r\n\r\n const { type, validate } = field;\r\n\r\n let errors = [];\r\n\r\n if (type === 'number') {\r\n\r\n const { decimalDigits, increment } = field;\r\n\r\n if (value === 'NaN') {\r\n\r\n errors = [\r\n ...errors,\r\n 'Value is not a number.'\r\n ];\r\n\r\n }\r\n else if (value) {\r\n\r\n if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\r\n errors = [\r\n ...errors,\r\n 'Value is expected to ' +\r\n (decimalDigits === 0\r\n ? 'be an integer'\r\n : `have at most ${decimalDigits} decimal digit${decimalDigits > 1 ? 's' : ''}`\r\n ) + '.'\r\n ];\r\n }\r\n\r\n if (increment) {\r\n\r\n const bigValue = Big(value);\r\n const bigIncrement = Big(increment);\r\n\r\n const offset = bigValue.mod(bigIncrement);\r\n\r\n if (offset.cmp(0) !== 0) {\r\n const previousValue = bigValue.minus(offset);\r\n const nextValue = previousValue.plus(bigIncrement);\r\n\r\n errors = [\r\n ...errors,\r\n `Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!validate) {\r\n return errors;\r\n }\r\n\r\n const evaluatedValidation = evaluateFEELValues(\r\n validate,\r\n this._expressionLanguage,\r\n this._conditionChecker,\r\n this._form\r\n );\r\n\r\n if (evaluatedValidation.pattern && value && !new RegExp(evaluatedValidation.pattern).test(value)) {\r\n errors = [\r\n ...errors,\r\n `Field must match pattern ${ evaluatedValidation.pattern }.`\r\n ];\r\n }\r\n\r\n if (evaluatedValidation.required) {\r\n const isUncheckedCheckbox = type === 'checkbox' && value === false;\r\n const isUnsetValue = isNil(value) || value === '';\r\n const isEmptyMultiselect = Array.isArray(value) && value.length === 0;\r\n\r\n if (isUncheckedCheckbox || isUnsetValue || isEmptyMultiselect) {\r\n errors = [\r\n ...errors,\r\n 'Field is required.'\r\n ];\r\n }\r\n }\r\n\r\n if ('min' in evaluatedValidation && (value || value === 0) && value < evaluatedValidation.min) {\r\n errors = [\r\n ...errors,\r\n `Field must have minimum value of ${ evaluatedValidation.min }.`\r\n ];\r\n }\r\n\r\n if ('max' in evaluatedValidation && (value || value === 0) && value > evaluatedValidation.max) {\r\n errors = [\r\n ...errors,\r\n `Field must have maximum value of ${ evaluatedValidation.max }.`\r\n ];\r\n }\r\n\r\n if ('minLength' in evaluatedValidation && value && value.trim().length < evaluatedValidation.minLength) {\r\n errors = [\r\n ...errors,\r\n `Field must have minimum length of ${ evaluatedValidation.minLength }.`\r\n ];\r\n }\r\n\r\n if ('maxLength' in evaluatedValidation && value && value.trim().length > evaluatedValidation.maxLength) {\r\n errors = [\r\n ...errors,\r\n `Field must have maximum length of ${ evaluatedValidation.maxLength }.`\r\n ];\r\n }\r\n\r\n if ('validationType' in evaluatedValidation && value && evaluatedValidation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\r\n errors = [\r\n ...errors,\r\n 'Field must be a valid international phone number. (e.g. +4930664040900)'\r\n ];\r\n }\r\n\r\n if ('validationType' in evaluatedValidation && value && evaluatedValidation.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\r\n errors = [\r\n ...errors,\r\n 'Field must be a valid email.'\r\n ];\r\n }\r\n\r\n return errors;\r\n }\r\n}\r\n\r\nValidator.$inject = [ 'expressionLanguage', 'conditionChecker', 'form' ];\r\n\r\n\r\n// helpers //////////\r\n\r\n/**\r\n * Helper function to evaluate optional FEEL validation values.\r\n */\r\nfunction evaluateFEELValues(validate, expressionLanguage, conditionChecker, form) {\r\n\r\n const evaluatedValidate = { ...validate };\r\n\r\n VALIDATE_FEEL_PROPERTIES.forEach(property => {\r\n const path = property.split('.');\r\n\r\n const value = get(evaluatedValidate, path);\r\n\r\n // mirroring FEEL evaluation of our hooks\r\n if (!expressionLanguage || !expressionLanguage.isExpression(value)) {\r\n return value;\r\n }\r\n\r\n const { initialData, data } = form._getState();\r\n\r\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\r\n const filteredData = { ...initialData, ...newData };\r\n\r\n const evaluatedValue = expressionLanguage.evaluate(value, filteredData);\r\n\r\n // replace validate property with evaluated value\r\n if (evaluatedValue) {\r\n set(evaluatedValidate, path, evaluatedValue);\r\n }\r\n });\r\n\r\n return evaluatedValidate;\r\n}","import { clone } from '../util';\r\n\r\nexport default class Importer {\r\n\r\n /**\r\n * @constructor\r\n * @param { import('./FormFieldRegistry').default } formFieldRegistry\r\n * @param { import('./PathRegistry').default } pathRegistry\r\n * @param { import('./FieldFactory').default } fieldFactory\r\n * @param { import('./FormLayouter').default } formLayouter\r\n */\r\n constructor(formFieldRegistry, pathRegistry, fieldFactory, formLayouter) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._pathRegistry = pathRegistry;\r\n this._fieldFactory = fieldFactory;\r\n this._formLayouter = formLayouter;\r\n }\r\n\r\n /**\r\n * Import schema creating rows, fields, attaching additional\r\n * information to each field and adding fields to the\r\n * field registry.\r\n *\r\n * Additional information attached:\r\n *\r\n * * `id` (unless present)\r\n * * `_parent`\r\n * * `_path`\r\n *\r\n * @param {any} schema\r\n *\r\n * @typedef {{ warnings: Error[], schema: any }} ImportResult\r\n * @returns {ImportResult}\r\n */\r\n importSchema(schema) {\r\n\r\n // TODO: Add warnings\r\n const warnings = [];\r\n\r\n try {\r\n this._cleanup();\r\n const importedSchema = this.importFormField(clone(schema));\r\n this._formLayouter.calculateLayout(clone(importedSchema));\r\n\r\n return {\r\n schema: importedSchema,\r\n warnings\r\n };\r\n } catch (err) {\r\n this._cleanup();\r\n err.warnings = warnings;\r\n throw err;\r\n }\r\n }\r\n\r\n _cleanup() {\r\n this._formLayouter.clear();\r\n this._formFieldRegistry.clear();\r\n this._pathRegistry.clear();\r\n }\r\n\r\n /**\r\n * @param {{[x: string]: any}} fieldAttrs\r\n * @param {String} [parentId]\r\n * @param {number} [index]\r\n *\r\n * @return {any} field\r\n */\r\n importFormField(fieldAttrs, parentId, index) {\r\n const {\r\n components\r\n } = fieldAttrs;\r\n\r\n let parent, path;\r\n\r\n if (parentId) {\r\n parent = this._formFieldRegistry.get(parentId);\r\n }\r\n\r\n // set form field path\r\n path = parent ? [ ...parent._path, 'components', index ] : [];\r\n\r\n const field = this._fieldFactory.create({\r\n ...fieldAttrs,\r\n _path: path,\r\n _parent: parentId\r\n }, false);\r\n\r\n this._formFieldRegistry.add(field);\r\n\r\n if (components) {\r\n field.components = this.importFormFields(components, field.id);\r\n }\r\n\r\n return field;\r\n }\r\n\r\n /**\r\n * @param {Array<any>} components\r\n * @param {string} parentId\r\n *\r\n * @return {Array<any>} imported components\r\n */\r\n importFormFields(components, parentId) {\r\n return components.map((component, index) => {\r\n return this.importFormField(component, parentId, index);\r\n });\r\n }\r\n\r\n}\r\n\r\nImporter.$inject = [ 'formFieldRegistry', 'pathRegistry', 'fieldFactory', 'formLayouter' ];","import { getAncestryList } from '../util';\r\n\r\nexport default class FieldFactory {\r\n\r\n /**\r\n * @constructor\r\n *\r\n * @param formFieldRegistry\r\n * @param formFields\r\n */\r\n constructor(formFieldRegistry, pathRegistry, formFields) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._pathRegistry = pathRegistry;\r\n this._formFields = formFields;\r\n }\r\n\r\n create(attrs, applyDefaults = true) {\r\n\r\n const {\r\n id,\r\n type,\r\n key,\r\n path,\r\n _parent\r\n } = attrs;\r\n\r\n const fieldDefinition = this._formFields.get(type);\r\n\r\n if (!fieldDefinition) {\r\n throw new Error(`form field of type <${ type }> not supported`);\r\n }\r\n\r\n const { config } = fieldDefinition;\r\n\r\n if (!config) {\r\n throw new Error(`form field of type <${ type }> has no config`);\r\n }\r\n\r\n if (id && this._formFieldRegistry._ids.assigned(id)) {\r\n throw new Error(`form field with id <${ id }> already exists`);\r\n }\r\n\r\n // ensure that we can claim the path\r\n\r\n const parent = _parent && this._formFieldRegistry.get(_parent);\r\n const parentPath = parent && this._pathRegistry.getValuePath(parent) || [];\r\n const knownAncestorIds = getAncestryList(_parent, this._formFieldRegistry);\r\n\r\n if (config.keyed && key && !this._pathRegistry.canClaimPath([ ...parentPath, ...key.split('.') ],\r\n {\r\n isClosed: true,\r\n knownAncestorIds\r\n })\r\n ) {\r\n throw new Error(`binding path '${ [ ...parentPath, key ].join('.') }' is already claimed`);\r\n }\r\n\r\n if (config.pathed && path && !this._pathRegistry.canClaimPath([ ...parentPath, ...path.split('.') ],\r\n {\r\n isRepeatable: config.repeatable,\r\n knownAncestorIds\r\n })\r\n ) {\r\n throw new Error(`binding path '${ [ ...parentPath, ...path.split('.') ].join('.') }' is already claimed`);\r\n }\r\n\r\n const labelAttrs = applyDefaults && config.label ? {\r\n label: config.label\r\n } : {};\r\n\r\n const field = config.create({\r\n ...labelAttrs,\r\n ...attrs\r\n });\r\n\r\n this._ensureId(field);\r\n\r\n if (config.keyed) {\r\n this._ensureKey(field);\r\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), { isClosed: true, claimerId: field.id, knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry) });\r\n }\r\n\r\n if (config.pathed) {\r\n if (config.repeatable) {\r\n this._enforceDefaultPath(field);\r\n }\r\n\r\n if (field.path) {\r\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), { isRepeatable: config.repeatable, claimerId: field.id, knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry) });\r\n }\r\n }\r\n\r\n return field;\r\n }\r\n\r\n _ensureId(field) {\r\n\r\n if (field.id) {\r\n this._formFieldRegistry._ids.claim(field.id, field);\r\n\r\n return;\r\n }\r\n\r\n let prefix = 'Field';\r\n\r\n if (field.type === 'default') {\r\n prefix = 'Form';\r\n }\r\n\r\n field.id = this._formFieldRegistry._ids.nextPrefixed(`${prefix}_`, field);\r\n }\r\n\r\n _ensureKey(field) {\r\n if (!field.key) {\r\n field.key = this._getUniqueKeyPath(field);\r\n }\r\n }\r\n\r\n _enforceDefaultPath(field) {\r\n if (!field.path) {\r\n field.path = this._getUniqueKeyPath(field);\r\n }\r\n }\r\n\r\n _getUniqueKeyPath(field) {\r\n\r\n let random;\r\n const parent = this._formFieldRegistry.get(field._parent);\r\n\r\n // ensure key uniqueness at level\r\n do {\r\n random = Math.random().toString(36).substring(7);\r\n } while (parent && parent.components.some(child => child.key === random));\r\n\r\n return `${field.type}_${random}`;\r\n }\r\n\r\n}\r\n\r\n\r\nFieldFactory.$inject = [\r\n 'formFieldRegistry',\r\n 'pathRegistry',\r\n 'formFields'\r\n];","import { isArray } from 'min-dash';\r\nimport { clone, getAncestryList } from '../util';\r\n\r\n/**\r\n * The PathRegistry class manages a hierarchical structure of paths associated with form fields.\r\n * It enables claiming, unclaiming, and validating paths within this structure.\r\n *\r\n * Example Tree Structure:\r\n *\r\n * [\r\n * {\r\n * segment: 'root',\r\n * claimCount: 1,\r\n * children: [\r\n * {\r\n * segment: 'child1',\r\n * claimCount: 2,\r\n * children: null // A leaf node (closed path)\r\n * },\r\n * {\r\n * segment: 'child2',\r\n * claimCount: 1,\r\n * children: [\r\n * {\r\n * segment: 'subChild1',\r\n * claimCount: 1,\r\n * children: [] // An open node (open path)\r\n * }\r\n * ]\r\n * }\r\n * ]\r\n * }\r\n * ]\r\n */\r\nexport default class PathRegistry {\r\n constructor(formFieldRegistry, formFields, injector) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._formFields = formFields;\r\n this._injector = injector;\r\n this._dataPaths = [];\r\n }\r\n\r\n canClaimPath(path, options = {}) {\r\n\r\n const {\r\n isClosed = false,\r\n isRepeatable = false,\r\n skipAncestryCheck = false,\r\n claimerId = null,\r\n knownAncestorIds = []\r\n } = options;\r\n\r\n let node = { children: this._dataPaths };\r\n\r\n // (1) if we reach a leaf node, we cannot claim it, if we reach an open node, we can\r\n // if we reach a repeatable node, we need to ensure that the claimer is (or will be) an ancestor of the repeater\r\n for (const segment of path) {\r\n\r\n node = _getNextSegment(node, segment);\r\n\r\n if (!node) {\r\n return true;\r\n }\r\n\r\n if (node.isRepeatable && !skipAncestryCheck) {\r\n\r\n if (!(claimerId || knownAncestorIds.length)) {\r\n throw new Error('cannot claim a path that contains a repeater without specifying a claimerId or knownAncestorIds');\r\n }\r\n\r\n const isValidRepeatClaim =\r\n knownAncestorIds.includes(node.repeaterId) ||\r\n claimerId && getAncestryList(claimerId, this._formFieldRegistry).includes(node.repeaterId);\r\n\r\n if (!isValidRepeatClaim) {\r\n return false;\r\n }\r\n }\r\n\r\n if (node.children === null) {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n // (2) if the path lands in the middle of the tree, we can only claim an open, non-repeatable path\r\n return !(isClosed || isRepeatable);\r\n }\r\n\r\n claimPath(path, options = {}) {\r\n\r\n const {\r\n isClosed = false,\r\n isRepeatable = false,\r\n claimerId = null,\r\n knownAncestorIds = []\r\n } = options;\r\n\r\n if (!this.canClaimPath(path, { isClosed, isRepeatable, claimerId, knownAncestorIds })) {\r\n throw new Error(`cannot claim path '${ path.join('.') }'`);\r\n }\r\n\r\n let node = { children: this._dataPaths };\r\n\r\n for (const segment of path) {\r\n\r\n let child = _getNextSegment(node, segment);\r\n\r\n if (!child) {\r\n child = { segment, claimCount: 1, children: [] };\r\n node.children.push(child);\r\n }\r\n else {\r\n child.claimCount++;\r\n }\r\n\r\n node = child;\r\n }\r\n\r\n if (isClosed) {\r\n node.children = null;\r\n }\r\n\r\n // add some additional info when we make a repeatable path claim\r\n if (isRepeatable) {\r\n node.isRepeatable = true;\r\n node.repeaterId = claimerId;\r\n }\r\n\r\n }\r\n\r\n unclaimPath(path) {\r\n\r\n // verification Pass\r\n let node = { children: this._dataPaths };\r\n for (const segment of path) {\r\n const child = _getNextSegment(node, segment);\r\n if (!child) {\r\n throw new Error(`no open path found for '${ path.join('.') }'`);\r\n }\r\n node = child;\r\n }\r\n\r\n // mutation Pass\r\n node = { children: this._dataPaths };\r\n for (const segment of path) {\r\n const child = _getNextSegment(node, segment);\r\n\r\n child.claimCount--;\r\n\r\n if (child.claimCount === 0) {\r\n node.children.splice(node.children.indexOf(child), 1);\r\n break; // Abort early if claimCount reaches zero\r\n }\r\n\r\n node = child;\r\n }\r\n }\r\n\r\n /**\r\n * Applies a function (fn) recursively on a given field and its children.\r\n *\r\n * - `field`: Starting field object.\r\n * - `fn`: Function to apply.\r\n * - `context`: Optional object for passing data between calls.\r\n *\r\n * Stops early if `fn` returns `false`. Useful for traversing the form field tree.\r\n *\r\n * @returns {boolean} Success status based on function execution.\r\n */\r\n executeRecursivelyOnFields(field, fn, context = {}) {\r\n\r\n let result = true;\r\n\r\n const formFieldConfig = this._formFields.get(field.type).config;\r\n\r\n if (formFieldConfig.keyed) {\r\n const callResult = fn({ field, isClosed: true, isRepeatable: false, context });\r\n return result && callResult;\r\n }\r\n else if (formFieldConfig.pathed) {\r\n const callResult = fn({ field, isClosed: false, isRepeatable: formFieldConfig.repeatable, context });\r\n result = result && callResult;\r\n }\r\n\r\n // stop executing if false is specifically returned or if preventing recursion\r\n if (result === false || context.preventRecursion) {\r\n return result;\r\n }\r\n\r\n if (Array.isArray(field.components)) {\r\n for (const child of field.components) {\r\n const callResult = this.executeRecursivelyOnFields(child, fn, clone(context));\r\n result = result && callResult;\r\n\r\n // stop executing if false is specifically returned\r\n if (result === false) {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Generates an array representing the binding path to an underlying data object for a form field.\r\n *\r\n * @param {Object} field - The field object with properties: `key`, `path`, `id`, and optionally `_parent`.\r\n * @param {Object} [options={}] - Configuration options.\r\n * @param {Object} [options.replacements={}] - A map of field IDs to alternative path arrays.\r\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.\r\n * @param {Object} [options.cutoffNode] - The ID of the parent field at which to stop generating the path.\r\n *\r\n * @returns {(Array<string>|undefined)} An array of strings representing the binding path, or undefined if not determinable.\r\n */\r\n getValuePath(field, options = {}) {\r\n const {\r\n replacements = {},\r\n indexes = null,\r\n cutoffNode = null\r\n } = options;\r\n\r\n let localValuePath = [];\r\n\r\n const hasReplacement = Object.prototype.hasOwnProperty.call(replacements, field.id);\r\n const formFieldConfig = this._formFields.get(field.type).config;\r\n\r\n // uses path overrides instead of true path to calculate a potential value path\r\n if (hasReplacement) {\r\n const replacement = replacements[field.id];\r\n\r\n if (replacement === null || replacement === undefined || replacement === '') {\r\n localValuePath = [];\r\n } else if (typeof replacement === 'string') {\r\n localValuePath = replacement.split('.');\r\n } else if (Array.isArray(replacement)) {\r\n localValuePath = replacement;\r\n } else {\r\n throw new Error(`replacements for field ${ field.id } must be a string, array or null/undefined`);\r\n }\r\n\r\n } else if (formFieldConfig.keyed) {\r\n localValuePath = field.key.split('.');\r\n } else if (formFieldConfig.pathed && field.path) {\r\n localValuePath = field.path.split('.');\r\n }\r\n\r\n // add potential indexes of repeated fields\r\n if (indexes) {\r\n localValuePath = this._addIndexes(localValuePath, field, indexes);\r\n }\r\n\r\n // if parent exists and isn't cutoff node, add parent's value path\r\n if (field._parent && field._parent !== cutoffNode) {\r\n const parent = this._formFieldRegistry.get(field._parent);\r\n return [ ...(this.getValuePath(parent, options) || []), ...localValuePath ];\r\n }\r\n\r\n return localValuePath;\r\n }\r\n\r\n clear() {\r\n this._dataPaths = [];\r\n }\r\n\r\n _addIndexes(localValuePath, field, indexes) {\r\n\r\n const repeatRenderManager = this._injector.get('repeatRenderManager', false);\r\n\r\n if (repeatRenderManager && repeatRenderManager.isFieldRepeating(field._parent)) {\r\n return [ indexes[field._parent], ...localValuePath ];\r\n }\r\n\r\n return localValuePath;\r\n }\r\n}\r\n\r\nconst _getNextSegment = (node, segment) => {\r\n if (isArray(node.children)) { return node.children.find((node) => node.segment === segment) || null; }\r\n return null;\r\n};\r\n\r\nPathRegistry.$inject = [ 'formFieldRegistry', 'formFields', 'injector' ];","import Ids from 'ids';\r\n\r\nimport { groupBy, flatten } from 'min-dash';\r\n\r\n\r\n/**\r\n * @typedef { { id: String, components: Array<String> } } FormRow\r\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\r\n */\r\n\r\n/**\r\n * Maintains the Form layout in a given structure, for example\r\n *\r\n * [\r\n * {\r\n * formFieldId: 'FormField_1',\r\n * rows: [\r\n * { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ] }\r\n * ]\r\n * }\r\n * ]\r\n *\r\n */\r\nexport default class FormLayouter {\r\n\r\n constructor(eventBus) {\r\n\r\n /** @type Array<FormRows> */\r\n this._rows = [];\r\n this._ids = new Ids([ 32, 36, 1 ]);\r\n\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * @param {FormRow} row\r\n */\r\n addRow(formFieldId, row) {\r\n let rowsPerComponent = this._rows.find(r => r.formFieldId === formFieldId);\r\n\r\n if (!rowsPerComponent) {\r\n rowsPerComponent = {\r\n formFieldId,\r\n rows: []\r\n };\r\n\r\n this._rows.push(rowsPerComponent);\r\n }\r\n\r\n rowsPerComponent.rows.push(row);\r\n }\r\n\r\n /**\r\n * @param {String} id\r\n * @returns {FormRow}\r\n */\r\n getRow(id) {\r\n const rows = allRows(this._rows);\r\n return rows.find(r => r.id === id);\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n * @returns {FormRow}\r\n */\r\n getRowForField(formField) {\r\n return allRows(this._rows).find(r => {\r\n const { components } = r;\r\n\r\n return components.includes(formField.id);\r\n });\r\n }\r\n\r\n /**\r\n * @param {String} formFieldId\r\n * @returns { Array<FormRow> }\r\n */\r\n getRows(formFieldId) {\r\n const rowsForField = this._rows.find(r => formFieldId === r.formFieldId);\r\n\r\n if (!rowsForField) {\r\n return [];\r\n }\r\n\r\n return rowsForField.rows;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n nextRowId() {\r\n return this._ids.nextPrefixed('Row_');\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n */\r\n calculateLayout(formField) {\r\n\r\n const {\r\n type,\r\n components\r\n } = formField;\r\n\r\n if (![ 'default', 'group', 'dynamiclist' ].includes(type) || !components) {\r\n return;\r\n }\r\n\r\n // (1) calculate rows order (by component order)\r\n const rowsInOrder = groupByRow(components, this._ids);\r\n\r\n Object.entries(rowsInOrder).forEach(([ id, components ]) => {\r\n\r\n // (2) add fields to rows\r\n this.addRow(formField.id, {\r\n id: id,\r\n components: components.map(c => c.id)\r\n });\r\n });\r\n\r\n // (3) traverse through nested components\r\n components.forEach(field => this.calculateLayout(field));\r\n\r\n // (4) fire event to notify interested parties\r\n this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\r\n }\r\n\r\n clear() {\r\n this._rows = [];\r\n this._ids.clear();\r\n\r\n // fire event to notify interested parties\r\n this._eventBus.fire('form.layoutCleared');\r\n }\r\n}\r\n\r\nFormLayouter.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////\r\n\r\nfunction groupByRow(components, ids) {\r\n return groupBy(components, c => {\r\n\r\n // mitigate missing row by creating new (handle legacy)\r\n const { layout } = c;\r\n\r\n if (!layout || !layout.row) {\r\n return ids.nextPrefixed('Row_');\r\n }\r\n\r\n return layout.row;\r\n });\r\n}\r\n\r\n/**\r\n * @param {Array<FormRows>} formRows\r\n * @returns {Array<FormRow>}\r\n */\r\nfunction allRows(formRows) {\r\n return flatten(formRows.map(c => c.rows));\r\n}","import Ids from 'ids';\r\n\r\nexport default class FormFieldRegistry {\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n\r\n this._formFields = {};\r\n\r\n eventBus.on('form.clear', () => this.clear());\r\n\r\n this._ids = new Ids([ 32, 36, 1 ]);\r\n }\r\n\r\n add(formField) {\r\n const { id } = formField;\r\n\r\n if (this._formFields[ id ]) {\r\n throw new Error(`form field with ID ${ id } already exists`);\r\n }\r\n\r\n this._eventBus.fire('formField.add', { formField });\r\n\r\n this._formFields[ id ] = formField;\r\n }\r\n\r\n remove(formField) {\r\n const { id } = formField;\r\n\r\n if (!this._formFields[ id ]) {\r\n return;\r\n }\r\n\r\n this._eventBus.fire('formField.remove', { formField });\r\n\r\n delete this._formFields[ id ];\r\n }\r\n\r\n get(id) {\r\n return this._formFields[ id ];\r\n }\r\n\r\n getAll() {\r\n return Object.values(this._formFields);\r\n }\r\n\r\n getForm() {\r\n return this.getAll().find((formField) => formField.type === 'default');\r\n }\r\n\r\n forEach(callback) {\r\n this.getAll().forEach((formField) => callback(formField));\r\n }\r\n\r\n clear() {\r\n this._formFields = {};\r\n\r\n this._ids.clear();\r\n }\r\n\r\n}\r\n\r\nFormFieldRegistry.$inject = [ 'eventBus' ];","import { render } from 'preact';\r\nimport { useCallback, useState } from 'preact/hooks';\r\n\r\nimport FormComponent from './components/FormComponent';\r\n\r\nimport { FormContext } from './context';\r\n\r\n/**\r\n * @typedef { { container } } Config\r\n * @typedef { import('didi').Injector } Injector\r\n * @typedef { import('../core/EventBus').default } EventBus\r\n * @typedef { import('../Form').default } Form\r\n */\r\n\r\n/**\r\n * @param {Config} config\r\n * @param {EventBus} eventBus\r\n * @param {Form} form\r\n * @param {Injector} injector\r\n */\r\nexport default function Renderer(config, eventBus, form, injector) {\r\n\r\n const App = () => {\r\n const [ state, setState ] = useState(form._getState());\r\n\r\n const formContext = {\r\n getService(type, strict = true) {\r\n return injector.get(type, strict);\r\n },\r\n formId: form._id\r\n };\r\n\r\n eventBus.on('changed', (newState) => {\r\n setState(newState);\r\n });\r\n\r\n const onChange = useCallback((update) => form._update(update), [ form ]);\r\n\r\n const { properties } = state;\r\n\r\n const { readOnly } = properties;\r\n\r\n const onSubmit = useCallback(() => {\r\n if (!readOnly) {\r\n form.submit();\r\n }\r\n }, [ form, readOnly ]);\r\n\r\n const onReset = useCallback(() => form.reset(), [ form ]);\r\n\r\n const { schema } = state;\r\n\r\n if (!schema) {\r\n return null;\r\n }\r\n\r\n return (\r\n <FormContext.Provider value={ formContext }>\r\n <FormComponent\r\n onChange={ onChange }\r\n onSubmit={ onSubmit }\r\n onReset={ onReset } />\r\n </FormContext.Provider>\r\n );\r\n };\r\n\r\n const { container } = config;\r\n\r\n eventBus.on('form.init', () => {\r\n render(<App />, container);\r\n });\r\n\r\n eventBus.on('form.destroy', () => {\r\n render(null, container);\r\n });\r\n}\r\n\r\nRenderer.$inject = [ 'config.renderer', 'eventBus', 'form', 'injector' ];","import FormFields from './FormFields';\r\nimport Renderer from './Renderer';\r\n\r\nexport { FormFields };\r\n\r\nexport * from './components';\r\nexport * from './context';\r\nexport {\r\n useExpressionEvaluation,\r\n useSingleLineTemplateEvaluation,\r\n useTemplateEvaluation\r\n} from './hooks';\r\n\r\nexport default {\r\n __init__: [ 'formFields', 'renderer' ],\r\n formFields: [ 'type', FormFields ],\r\n renderer: [ 'type', Renderer ]\r\n};","import EventBus from './EventBus';\r\nimport Validator from './Validator';\r\nimport Importer from './Importer';\r\nimport FieldFactory from './FieldFactory';\r\nimport PathRegistry from './PathRegistry';\r\nimport FormLayouter from './FormLayouter';\r\nimport FormFieldRegistry from './FormFieldRegistry';\r\n\r\nimport renderModule from '../render';\r\n\r\nexport { Importer, FieldFactory, FormFieldRegistry, PathRegistry, FormLayouter };\r\n\r\nexport default {\r\n __depends__: [ renderModule ],\r\n eventBus: [ 'type', EventBus ],\r\n importer: [ 'type', Importer ],\r\n fieldFactory: [ 'type', FieldFactory ],\r\n formFieldRegistry: [ 'type', FormFieldRegistry ],\r\n pathRegistry: [ 'type', PathRegistry ],\r\n formLayouter: [ 'type', FormLayouter ],\r\n validator: [ 'type', Validator ]\r\n};","import Ids from 'ids';\r\nimport { get, isObject, isString, isUndefined, set } from 'min-dash';\r\n\r\nimport {\r\n ExpressionLanguageModule,\r\n MarkdownModule,\r\n ViewerCommandsModule,\r\n RepeatRenderModule\r\n} from './features';\r\n\r\nimport core from './core';\r\n\r\nimport { clone, createFormContainer, createInjector } from './util';\r\n\r\n/**\r\n * @typedef { import('./types').Injector } Injector\r\n * @typedef { import('./types').Data } Data\r\n * @typedef { import('./types').Errors } Errors\r\n * @typedef { import('./types').Schema } Schema\r\n * @typedef { import('./types').FormProperties } FormProperties\r\n * @typedef { import('./types').FormProperty } FormProperty\r\n * @typedef { import('./types').FormEvent } FormEvent\r\n * @typedef { import('./types').FormOptions } FormOptions\r\n *\r\n * @typedef { {\r\n * data: Data,\r\n * initialData: Data,\r\n * errors: Errors,\r\n * properties: FormProperties,\r\n * schema: Schema\r\n * } } State\r\n *\r\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\r\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\r\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\r\n */\r\n\r\nconst ids = new Ids([ 32, 36, 1 ]);\r\n\r\n/**\r\n * The form.\r\n */\r\nexport default class Form {\r\n\r\n /**\r\n * @constructor\r\n * @param {FormOptions} options\r\n */\r\n constructor(options = {}) {\r\n\r\n /**\r\n * @public\r\n * @type {OnEventType}\r\n */\r\n this.on = this._onEvent;\r\n\r\n /**\r\n * @public\r\n * @type {String}\r\n */\r\n this._id = ids.next();\r\n\r\n /**\r\n * @private\r\n * @type {Element}\r\n */\r\n this._container = createFormContainer();\r\n\r\n const {\r\n container,\r\n injector = this._createInjector(options, this._container),\r\n properties = {}\r\n } = options;\r\n\r\n /**\r\n * @private\r\n * @type {State}\r\n */\r\n this._state = {\r\n initialData: null,\r\n data: null,\r\n properties,\r\n errors: {},\r\n schema: null\r\n };\r\n\r\n this.get = injector.get;\r\n\r\n this.invoke = injector.invoke;\r\n\r\n this.get('eventBus').fire('form.init');\r\n\r\n if (container) {\r\n this.attachTo(container);\r\n }\r\n }\r\n\r\n clear() {\r\n\r\n // clear form services\r\n this._emit('diagram.clear');\r\n\r\n // clear diagram services (e.g. EventBus)\r\n this._emit('form.clear');\r\n }\r\n\r\n /**\r\n * Destroy the form, removing it from DOM,\r\n * if attached.\r\n */\r\n destroy() {\r\n\r\n // destroy form services\r\n this.get('eventBus').fire('form.destroy');\r\n\r\n // destroy diagram services (e.g. EventBus)\r\n this.get('eventBus').fire('diagram.destroy');\r\n\r\n this._detach(false);\r\n }\r\n\r\n /**\r\n * Open a form schema with the given initial data.\r\n *\r\n * @param {Schema} schema\r\n * @param {Data} [data]\r\n *\r\n * @return Promise<{ warnings: Array<any> }>\r\n */\r\n importSchema(schema, data = {}) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.clear();\r\n\r\n const {\r\n schema: importedSchema,\r\n warnings\r\n } = this.get('importer').importSchema(schema);\r\n\r\n const initializedData = this._getInitializedFieldData(clone(data));\r\n\r\n this._setState({\r\n data: initializedData,\r\n errors: {},\r\n schema: importedSchema,\r\n initialData: clone(initializedData)\r\n });\r\n\r\n this._emit('import.done', { warnings });\r\n\r\n return resolve({ warnings });\r\n } catch (error) {\r\n this._emit('import.done', {\r\n error,\r\n warnings: error.warnings || []\r\n });\r\n\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Submit the form, triggering all field validations.\r\n *\r\n * @returns { { data: Data, errors: Errors } }\r\n */\r\n submit() {\r\n\r\n const {\r\n properties\r\n } = this._getState();\r\n\r\n if (properties.readOnly || properties.disabled) {\r\n throw new Error('form is read-only');\r\n }\r\n\r\n const data = this._getSubmitData();\r\n\r\n const errors = this.validate();\r\n\r\n const result = {\r\n data,\r\n errors\r\n };\r\n\r\n this._emit('submit', result);\r\n\r\n return result;\r\n }\r\n\r\n reset() {\r\n this._emit('reset');\r\n\r\n this._setState({\r\n data: clone(this._state.initialData),\r\n errors: {}\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Errors}\r\n */\r\n validate() {\r\n const formFields = this.get('formFields'),\r\n formFieldRegistry = this.get('formFieldRegistry'),\r\n pathRegistry = this.get('pathRegistry'),\r\n validator = this.get('validator');\r\n\r\n const { data } = this._getState();\r\n\r\n const getErrorPath = (field, indexes) => [ field.id, ...Object.values(indexes || {}) ];\r\n\r\n function validateFieldRecursively(errors, field, indexes) {\r\n const { disabled, type, isRepeating } = field;\r\n const { config: fieldConfig } = formFields.get(type);\r\n\r\n // (1) Skip disabled fields\r\n if (disabled) {\r\n return;\r\n }\r\n\r\n // (2) Validate the field\r\n const valuePath = pathRegistry.getValuePath(field, { indexes });\r\n const valueData = get(data, valuePath);\r\n const fieldErrors = validator.validateField(field, valueData);\r\n\r\n if (fieldErrors.length) {\r\n set(errors, getErrorPath(field, indexes), fieldErrors);\r\n }\r\n\r\n // (3) Process parents\r\n if (!Array.isArray(field.components)) {\r\n return;\r\n }\r\n\r\n // (4a) Recurse repeatable parents both across the indexes of repetition and the children\r\n if (fieldConfig.repeatable && isRepeating) {\r\n\r\n if (!Array.isArray(valueData)) {\r\n return;\r\n }\r\n\r\n valueData.forEach((_, index) => {\r\n field.components.forEach((component) => {\r\n validateFieldRecursively(errors, component, { ...indexes, [field.id]: index });\r\n });\r\n });\r\n\r\n return;\r\n }\r\n\r\n // (4b) Recurse non-repeatable parents only across the children\r\n field.components.forEach((component) => validateFieldRecursively(errors, component, indexes));\r\n }\r\n\r\n const workingErrors = {};\r\n validateFieldRecursively(workingErrors, formFieldRegistry.getForm());\r\n const filteredErrors = this._applyConditions(workingErrors, data, { getFilterPath: getErrorPath, leafNodeDeletionOnly: true });\r\n this._setState({ errors: filteredErrors });\r\n\r\n return filteredErrors;\r\n }\r\n\r\n /**\r\n * @param {Element|string} parentNode\r\n */\r\n attachTo(parentNode) {\r\n if (!parentNode) {\r\n throw new Error('parentNode required');\r\n }\r\n\r\n this.detach();\r\n\r\n if (isString(parentNode)) {\r\n parentNode = document.querySelector(parentNode);\r\n }\r\n\r\n const container = this._container;\r\n\r\n parentNode.appendChild(container);\r\n\r\n this._emit('attach');\r\n }\r\n\r\n detach() {\r\n this._detach();\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {boolean} [emit]\r\n */\r\n _detach(emit = true) {\r\n const container = this._container,\r\n parentNode = container.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n if (emit) {\r\n this._emit('detach');\r\n }\r\n\r\n parentNode.removeChild(container);\r\n }\r\n\r\n /**\r\n * @param {FormProperty} property\r\n * @param {any} value\r\n */\r\n setProperty(property, value) {\r\n const properties = set(this._getState().properties, [ property ], value);\r\n\r\n this._setState({ properties });\r\n }\r\n\r\n /**\r\n * @param {FormEvent} type\r\n * @param {Function} handler\r\n */\r\n off(type, handler) {\r\n this.get('eventBus').off(type, handler);\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {FormOptions} options\r\n * @param {Element} container\r\n *\r\n * @returns {Injector}\r\n */\r\n _createInjector(options, container) {\r\n const {\r\n modules = this._getModules(),\r\n additionalModules = [],\r\n ...config\r\n } = options;\r\n\r\n const enrichedConfig = {\r\n ...config,\r\n renderer: {\r\n container\r\n }\r\n };\r\n\r\n return createInjector([\r\n { config: [ 'value', enrichedConfig ] },\r\n { form: [ 'value', this ] },\r\n core,\r\n ...modules,\r\n ...additionalModules\r\n ]);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _emit(type, data) {\r\n this.get('eventBus').fire(type, data);\r\n }\r\n\r\n /**\r\n * @internal\r\n *\r\n * @param { { add?: boolean, field: any, indexes: object, remove?: number, value?: any } } update\r\n */\r\n _update(update) {\r\n const {\r\n field,\r\n indexes,\r\n value\r\n } = update;\r\n\r\n const {\r\n data,\r\n errors\r\n } = this._getState();\r\n\r\n const validator = this.get('validator'),\r\n pathRegistry = this.get('pathRegistry');\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n const valuePath = pathRegistry.getValuePath(field, { indexes });\r\n\r\n set(data, valuePath, value);\r\n\r\n set(errors, [ field.id, ...Object.values(indexes || {}) ], fieldErrors.length ? fieldErrors : undefined);\r\n\r\n this._setState({\r\n data: clone(data),\r\n errors: clone(errors)\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getState() {\r\n return this._state;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _setState(state) {\r\n this._state = {\r\n ...this._state,\r\n ...state\r\n };\r\n\r\n this._emit('changed', this._getState());\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getModules() {\r\n return [\r\n ExpressionLanguageModule,\r\n MarkdownModule,\r\n ViewerCommandsModule,\r\n RepeatRenderModule\r\n ];\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _onEvent(type, priority, handler) {\r\n this.get('eventBus').on(type, priority, handler);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getSubmitData() {\r\n const formFieldRegistry = this.get('formFieldRegistry');\r\n const formFields = this.get('formFields');\r\n const pathRegistry = this.get('pathRegistry');\r\n const formData = this._getState().data;\r\n\r\n function collectSubmitDataRecursively(submitData, formField, indexes) {\r\n const { disabled, type } = formField;\r\n const { config: fieldConfig } = formFields.get(type);\r\n\r\n // (1) Process keyed fields\r\n if (!disabled && fieldConfig.keyed) {\r\n const valuePath = pathRegistry.getValuePath(formField, { indexes });\r\n const value = get(formData, valuePath);\r\n set(submitData, valuePath, value);\r\n }\r\n\r\n // (2) Process parents\r\n if (!Array.isArray(formField.components)) {\r\n return;\r\n }\r\n\r\n // (3a) Recurse repeatable parents both across the indexes of repetition and the children\r\n if (fieldConfig.repeatable && formField.isRepeating) {\r\n\r\n const valueData = get(formData, pathRegistry.getValuePath(formField, { indexes }));\r\n\r\n if (!Array.isArray(valueData)) {\r\n return;\r\n }\r\n\r\n valueData.forEach((_, index) => {\r\n formField.components.forEach((component) => {\r\n collectSubmitDataRecursively(submitData, component, { ...indexes, [formField.id]: index });\r\n });\r\n });\r\n\r\n return;\r\n }\r\n\r\n // (3b) Recurse non-repeatable parents only across the children\r\n formField.components.forEach((component) => collectSubmitDataRecursively(submitData, component, indexes));\r\n }\r\n\r\n const workingSubmitData = {};\r\n collectSubmitDataRecursively(workingSubmitData, formFieldRegistry.getForm(), {});\r\n return this._applyConditions(workingSubmitData, formData);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _applyConditions(toFilter, data, options = {}) {\r\n const conditionChecker = this.get('conditionChecker');\r\n return conditionChecker.applyConditions(toFilter, data, options);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getInitializedFieldData(data, options = {}) {\r\n const formFieldRegistry = this.get('formFieldRegistry');\r\n const formFields = this.get('formFields');\r\n const pathRegistry = this.get('pathRegistry');\r\n\r\n function initializeFieldDataRecursively(initializedData, formField, indexes) {\r\n const { defaultValue, type, isRepeating } = formField;\r\n const { config: fieldConfig } = formFields.get(type);\r\n\r\n const valuePath = pathRegistry.getValuePath(formField, { indexes });\r\n let valueData = get(data, valuePath);\r\n\r\n // (1) Process keyed fields\r\n if (fieldConfig.keyed) {\r\n\r\n // (a) Retrieve and sanitize data from input\r\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\r\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\r\n }\r\n\r\n // (b) Initialize field value in output data\r\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldConfig.emptyValue);\r\n set(initializedData, valuePath, initializedFieldValue);\r\n }\r\n\r\n // (2) Process parents\r\n if (!Array.isArray(formField.components)) {\r\n return;\r\n }\r\n\r\n if (fieldConfig.repeatable && isRepeating) {\r\n\r\n // (a) Sanitize repeatable parents data if it is not an array\r\n if (!valueData || !Array.isArray(valueData)) {\r\n valueData = new Array(isUndefined(formField.defaultRepetitions) ? 1 : formField.defaultRepetitions).fill().map(_ => ({})) || [];\r\n }\r\n\r\n // (b) Ensure all elements of the array are objects\r\n valueData = valueData.map((val) => isObject(val) ? val : {});\r\n\r\n // (c) Initialize field value in output data\r\n set(initializedData, valuePath, valueData);\r\n\r\n // (d) If indexed ahead of time, recurse repeatable simply across the children\r\n if (!isUndefined(indexes[formField.id])) {\r\n formField.components.forEach(\r\n (component) => initializeFieldDataRecursively(initializedData, component, { ...indexes })\r\n );\r\n\r\n return;\r\n }\r\n\r\n // (e1) Recurse repeatable parents both across the indexes of repetition and the children\r\n valueData.forEach((_, index) => {\r\n formField.components.forEach(\r\n (component) => initializeFieldDataRecursively(initializedData, component, { ...indexes, [formField.id]: index })\r\n );\r\n });\r\n\r\n return;\r\n }\r\n\r\n // (e2) Recurse non-repeatable parents only across the children\r\n formField.components.forEach((component) => initializeFieldDataRecursively(initializedData, component, indexes));\r\n }\r\n\r\n // allows definition of a specific subfield to generate the data for\r\n const container = options.container || formFieldRegistry.getForm();\r\n const indexes = options.indexes || {};\r\n const basePath = pathRegistry.getValuePath(container, { indexes }) || [];\r\n\r\n // if indexing ahead of time, we must add this index to the data path at the end\r\n const path = !isUndefined(indexes[container.id]) ? [ ...basePath, indexes[container.id] ] : basePath;\r\n\r\n const workingData = clone(data);\r\n initializeFieldDataRecursively(workingData, container, indexes);\r\n return get(workingData, path, {});\r\n }\r\n\r\n}\r\n","import Form from './Form';\r\n\r\nexport { FormFieldRegistry, FormLayouter, Importer, FieldFactory, PathRegistry } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\nexport * from './features';\r\n\r\nconst schemaVersion = 14;\r\n\r\nexport {\r\n Form,\r\n schemaVersion\r\n};\r\n\r\n/**\r\n * @typedef { import('./types').CreateFormOptions } CreateFormOptions\r\n */\r\n\r\n/**\r\n * Create a form.\r\n *\r\n * @param {CreateFormOptions} options\r\n *\r\n * @return {Promise<Form>}\r\n */\r\nexport function createForm(options) {\r\n const {\r\n data,\r\n schema,\r\n ...formOptions\r\n } = options;\r\n\r\n const form = new Form(formOptions);\r\n\r\n return form.importSchema(schema, data).then(function() {\r\n return form;\r\n });\r\n}"],"names":["getFlavouredFeelVariableNames","feelString","feelFlavour","options","depth","specialDepthAccessors","includes","tree","parseExpression","parseUnaryTests","simpleExpressionTree","_buildSimpleFeelStructureTree","variables","_unfoldVariables","node","name","pathRoot","_linearizePathExpression","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","variableName","children","reduce","acc","child","concat","filter","Set","root","index","nodes","initialDepth","accessorDepthInfos","previous","current","extractedVariables","pathNodes","i","currentAccessor","depthOffsets","accumulator","offset","map","depthInfo","some","add","parts","push","reverse","parseTree","stack","iterate","enter","nodeRepresentation","type","slice","to","leave","result","pop","parent","_extractFilterExpressions","flattenedExpressionTree","x","filterTarget","filterExpression","taggedFilterExpression","FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","Error","evaluate","data","error","fire","$inject","FeelersTemplating","isTemplate","test","template","expressions","_extractExpressionsWithDepth","_parent_","this","_this_","context","debug","strict","buildDebugString","err","evaluateFeelers","feelersParser","parse","buildSimpleTree","_traverse","n","content","loopExpression","childResults","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","OPTIONS_SOURCES","STATIC","INPUT","EXPRESSION","OPTIONS_SOURCE_DEFAULT","OPTIONS_SOURCES_LABELS","OPTIONS_SOURCES_PATHS","OPTIONS_SOURCES_DEFAULTS","label","getOptionsSource","field","source","values","get","undefined","createInjector","bootstrapModules","injector","Injector","init","createFormContainer","prefix","container","document","createElement","classList","formFieldClasses","errors","disabled","readonly","classNames","gridColumnClasses","formField","layout","columns","prefixId","id","formId","indexes","forEach","Button","props","onFocus","onBlur","action","_jsx","class","config","keyed","group","create","FormRenderContext","createContext","Empty","Hidden","Children","style","Element","Row","Column","hoverInfo","cleanup","LocalExpressionContext","getService","FormContext","useService","useContext","isRequired","required","pathParse","path","split","key","isNaN","parseInt","pathsEqual","a","b","every","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","stringify","buildExpressionContext","specialContextKeys","_wrapObjectKeysWithUnderscores","runRecursively","fn","components","component","obj","newObj","entries","useCondition","condition","conditionChecker","expressionContextInfo","useMemo","check","useScrollIntoView","targetRef","deps","scrollOptions","flagRefs","useEffect","ref","itemToBeScrolled","scrollContainer","_getNearestScrollableAncestor","itemRect","getBoundingClientRect","containerRect","shouldScroll","scrollIfVisible","top","bottom","align","behavior","topOffset","_getTopOffset","scroll","el","scrollHeight","clientHeight","parentElement","item","scrollTop","height","useExpressionEvaluation","expressionLanguage","useFilteredFormData","initialData","_getState","newData","applyConditions","useKeyDownAction","targetKey","listenerElement","window","downHandler","addEventListener","removeEventListener","useReadonly","properties","readOnly","usePrevious","defaultValue","dependencies","useRef","useDeepCompareState","state","setState","useState","changed","compare","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","Description","description","evaluatedDescription","Errors","Label","collapseOnEmpty","evaluatedLabel","_jsxs","for","Checkbox","errorMessageId","domId","validate","onChange","target","checked","emptyValue","sanitizeValue","getOptionsData","formData","valuesKey","optionsKey","staticOptions","normalizeOptionsData","optionsData","_isAllowedValue","_normalizeOption","o","isNil","option","_isAllowedPrimitive","isObject","isValidLabel","_isValidLabel","isAllowedPrimitiveType","isValid","createEmptyOptions","defaults","valuesExpression","LOAD_STATES","LOADING","LOADED","ERROR","optionsExpression","optionsGetter","setOptionsGetter","loadState","expressionEvaluation","evaluatedOptions","keyedOptions","isArray","buildErrorState","buildLoadedState","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","d","month","getMonth","day","getDate","year","getFullYear","join","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","toString","padStart","sanitizeDateTimePickerValue","subtype","hasEqualValue","array","element","isEqual","sanitizeSingleSelectValue","validValues","v","sanitizeMultiSelectValue","optionValues","hasValuesNotInOptions","Checklist","outerDivRef","toggleCheckbox","toggledValue","newValues","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","useOptionsAsync","useCleanupMultiSelectValues","itemDomId","isChecked","onClick","noop","FormField","formFields","viewerCommands","pathRegistry","form","FormFieldComponent","valuePath","getValuePath","initialValue","useCallback","updateFieldValidation","hidden","conditional","hide","onChangeIndexed","update","fieldErrors","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","FormComponent","fullProps","getLocaleDateFormat","locale","Intl","DateTimeFormat","formatToParts","UTC","part","len","repeat","getLocaleReadableDateFormat","format","getLocaleDateFlatpickrConfig","flatpickerizeDateFormat","dateFormat","useLeadingZero","_path","_extends","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","Datepicker","collapseLabelOnEmpty","onDateTimeBlur","onDateTimeFocus","disallowPassedDates","setDate","dateInputRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","allowInput","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","close","onCalendarMouseDown","onOpen","onClose","onInputKeyDown","dispatchEvent","preventDefault","onInputFocus","onInputBlur","isFalseBlur","CalendarIcon","width","placeholder","autoComplete","onKeyDown","onMouseDown","onInput","_path2","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","min","max","individualEntries","focusedEntry","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","event","valueIndex","userMovedCursor","screenX","y","screenY","tabIndex","maxHeight","scrollBehavior","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","getNullDateTime","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","isValidDate","isValidTime","useDatePicker","useTimePicker","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","set","Logo","xmlns","viewBox","fill","Lightbox","onBackdropClick","href","rel","Link","title","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","body","schema","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","filteredFormData","localExpressionContext","noValidate","Provider","Group","showOutline","className","role","pathed","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ALLOWED_IFRAME_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","sanitizeIFrameSource","nodeType","remove","lcTag","tagName","attributes","attribute","lcName","trim","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","DEFAULT_HEIGHT","IFrame","url","evaluatedUrl","safeUrl","IFramePlaceholder","text","sandbox","Image","alt","evaluatedImageSource","safeSource","altText","ImagePlaceholder","TemplatedInputAdorner","evaluatedPre","evaluatedPost","countDecimals","number","num","Big","toFixed","isValidNumber","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","isFirstDot","isFirstMinus","keypressIsNumeric","dotIndex","indexOf","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","Numberfield","appearance","increment","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","minus","mod","plus","decrement","cmp","onKeyPress","selectionStart","selectionEnd","step","AngelUpIcon","AngelDownIcon","hasValueNotInOptions","Radio","onRadioBlur","onRadioFocus","useCleanupSingleSelectValue","useGetLabelCorrelation","labelMap","assign","_getValueHash","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","isFilterActive","setIsFilterActive","isEscapeClosed","setIsEscapeClose","searchbarRef","getLabelCorrelation","filteredOptions","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","XMarkIcon","SimpleSelect","selectRef","valueLabel","input","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","DynamicList","repeatable","allowAddRemove","defaultRepetitions","SkipLink","onSkip","Taglist","hasOptionsLeft","isValidFilteredOption","filterMatches","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","Text","textLinkTarget","disableLinks","markdownRenderer","markdown","safeHtml","render","OverriddenTargetLink","BuildOverriddenTargetLink","componentOverrides","DisabledLink","Markup","markup","rest","useFlushDebounce","func","additionalDeps","timeoutRef","lastArgsRef","debounce","shouldDebounce","delay","debounceFunc","args","clearTimeout","setTimeout","flushFunc","Textfield","flushOnChange","String","Textarea","textareaRef","useLayoutEffect","autoSizeTextarea","textarea","computed","getComputedStyle","heightFromLines","lineHeight","getPropertyValue","lines","calculatedHeight","minHeight","displayHeight","overflow","Table","columnsExpression","dataSource","rowCount","sortBy","setSortBy","evaluatedColumns","useEvaluatedColumns","columnKeys","evaluatedDataSource","sortedData","sortByColumn","direction","chunkedData","chunk","currentPage","setCurrentPage","currentChunk","toggleSortBy","displayLabel","getHeaderAriaLabel","ArrowUpIcon","ArrowDownIcon","colSpan","page","CaretLeftIcon","CaretRightIcon","remainingOptions","isDefined","isColumn","initialDemoData","fallbackColumns","evaluation","column","size","chunks","sort","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","GroupIcon","iframe","IFrameIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","select","SelectIcon","separator","SeparatorIcon","spacer","SpacerIcon","dynamiclist","DynamicListIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","table","TableIcon","default","FormIcon","Default","FormFields","_formFields","register","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","getSchemaVariables","inputs","outputs","getAllComponents","prop","property","expressionVariables","templateVariables","variable","getBindingVariables","bindingVariable","getAncestryList","formFieldId","ids","currentFormField","_parent","ConditionChecker","_formFieldRegistry","_pathRegistry","contextData","workingData","getFilterPath","leafNodeDeletionOnly","_applyConditionsWithinScope","rootField","scopeContext","startHidden","expressionIndexes","scopeData","parentScopeData","executeRecursivelyOnFields","isClosed","isRepeatable","isHidden","_checkHideCondition","preventRecursion","repeaterValuePath","repeaterValue","newScopeContext","_cleanlyClearDataAtPath","getForm","unaryTest","workingValuePath","recurse","parentObject","_isEmptyObject","_isEmptyArray","__init__","showdown","setFlavor","MarkdownRenderer","_converter","Converter","makeHtml","CommandStack","_handlerMap","_stack","_stackIdx","_currentExecution","actions","dirty","trigger","_injector","_uid","on","clear","prototype","execute","command","_pushAction","_internalExecute","_popAction","canExecute","handler","_getHandler","_fire","emit","undo","_getUndoAction","next","_internalUndo","redo","_getRedoAction","_setHandler","registerHandler","handlerCls","instantiate","canUndo","canRedo","_atomicDo","revert","_markDirty","_revertedAction","qualifier","arguments","names","createEvent","cancelBubble","_createId","execution","atomic","preExecute","_executedAction","postExecute","baseAction","elements","uniqueBy","stackIdx","splice","commandStack","UpdateFieldValidationHandler","validator","_form","_validator","oldErrors","validateField","updatedErrors","_setState","ViewerCommands","_commandStack","registerHandlers","getHandlers","__depends__","commandModule","RepeatRenderManager","bind","formFieldDefinition","sharedRepeatState","repeaterField","dataPath","nonCollapsedItems","_getNonCollapsedItems","collapseEnabled","disableCollapse","hasChildren","showRemove","displayValues","onDeleteItem","updatedValues","parentExpressionContextInfo","elementProps","localExpressionContextInfo","DeleteSvg","addButtonRef","setSharedRepeatState","showAdd","toggle","onAddItem","newItem","_getInitializedFieldData","AddSvg","ExpandSvg","CollapseSvg","DEFAULT_NON_COLLAPSED_ITEMS","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","actualCallback","self","_addListener","once","wrappedCallback","__isTomb","apply","off","_removeListener","InternalEvent","firstListener","returnValue","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","EMAIL_PATTERN","PHONE_PATTERN","VALIDATE_FEEL_PROPERTIES","Validator","_expressionLanguage","_conditionChecker","bigValue","bigIncrement","nextValue","evaluatedValidation","evaluateFEELValues","pattern","RegExp","isUncheckedCheckbox","isUnsetValue","isEmptyMultiselect","minLength","maxLength","validationType","evaluatedValidate","filteredData","evaluatedValue","Importer","fieldFactory","_fieldFactory","_formLayouter","importSchema","warnings","_cleanup","importedSchema","importFormField","calculateLayout","fieldAttrs","importFormFields","FieldFactory","attrs","applyDefaults","fieldDefinition","_ids","assigned","parentPath","knownAncestorIds","canClaimPath","labelAttrs","_ensureId","_ensureKey","claimPath","claimerId","_enforceDefaultPath","claim","nextPrefixed","_getUniqueKeyPath","random","substring","PathRegistry","_dataPaths","skipAncestryCheck","segment","_getNextSegment","isValidRepeatClaim","repeaterId","claimCount","unclaimPath","formFieldConfig","callResult","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","_addIndexes","find","FormLayouter","_rows","Ids","addRow","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","c","groupBy","formRows","flatten","FormFieldRegistry","getAll","Renderer","App","formContext","_id","newState","_update","submit","reset","renderer","renderModule","importer","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","initializedData","_getSubmitData","getErrorPath","validateFieldRecursively","fieldConfig","valueData","_","workingErrors","filteredErrors","_applyConditions","parentNode","detach","appendChild","removeChild","setProperty","modules","_getModules","additionalModules","enrichedConfig","core","ExpressionLanguageModule","MarkdownModule","ViewerCommandsModule","RepeatRenderModule","collectSubmitDataRecursively","submitData","workingSubmitData","toFilter","initializeFieldDataRecursively","isUndefined","initializedFieldValue","val","basePath","schemaVersion","createForm","formOptions","then"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAASI,YAAYA,CAACj7B,QAAQ,EAAEwE,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAAC02B,WAAW,GAAG,EAAE,CAAA;;AAErB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,MAAM,GAAG,EAAE,CAAA;;AAEhB;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC,CAAA;;AAEnB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,iBAAiB,GAAG;AACvBC,IAAAA,OAAO,EAAE,EAAE;AACXC,IAAAA,KAAK,EAAE,EAAE;AACTC,IAAAA,OAAO,EAAE,IAAA;GACV,CAAA;;AAED;AACF;AACA;EACE,IAAI,CAACC,SAAS,GAAGj3B,QAAQ,CAAA;;AAEzB;AACF;AACA;EACE,IAAI,CAACvE,SAAS,GAAGD,QAAQ,CAAA;;AAEzB;AACF;AACA;EACE,IAAI,CAAC07B,IAAI,GAAG,CAAC,CAAA;EAEb17B,QAAQ,CAAC27B,EAAE,CAAC,CACV,iBAAiB,EACjB,eAAe,CAChB,EAAE,YAAW;AACZ,IAAA,IAAI,CAACC,KAAK,CAAC,KAAK,CAAC,CAAA;GAClB,EAAE,IAAI,CAAC,CAAA;AACV,CAAA;AAEAX,YAAY,CAACp6B,OAAO,GAAG,CAAE,UAAU,EAAE,UAAU,CAAE,CAAA;;AAGjD;AACA;AACA;AACA;AACA;AACA;AACAo6B,YAAY,CAACY,SAAS,CAACC,OAAO,GAAG,UAASC,OAAO,EAAEx6B,OAAO,EAAE;EAC1D,IAAI,CAACw6B,OAAO,EAAE;AACZ,IAAA,MAAM,IAAIv7B,KAAK,CAAC,kBAAkB,CAAC,CAAA;AACrC,GAAA;AAEA,EAAA,IAAI,CAAC66B,iBAAiB,CAACG,OAAO,GAAG,SAAS,CAAA;AAE1C,EAAA,MAAMr1B,MAAM,GAAG;AAAE41B,IAAAA,OAAO,EAAEA,OAAO;AAAEx6B,IAAAA,OAAO,EAAEA,OAAAA;GAAS,CAAA;AAErD,EAAA,IAAI,CAACy6B,WAAW,CAAC71B,MAAM,CAAC,CAAA;AACxB,EAAA,IAAI,CAAC81B,gBAAgB,CAAC91B,MAAM,CAAC,CAAA;EAC7B,IAAI,CAAC+1B,UAAU,EAAE,CAAA;AACnB,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAjB,YAAY,CAACY,SAAS,CAACM,UAAU,GAAG,UAASJ,OAAO,EAAEx6B,OAAO,EAAE;AAE7D,EAAA,MAAM4E,MAAM,GAAG;AAAE41B,IAAAA,OAAO,EAAEA,OAAO;AAAEx6B,IAAAA,OAAO,EAAEA,OAAAA;GAAS,CAAA;AAErD,EAAA,MAAM66B,OAAO,GAAG,IAAI,CAACC,WAAW,CAACN,OAAO,CAAC,CAAA;EAEzC,IAAI18B,MAAM,GAAG,IAAI,CAACi9B,KAAK,CAACP,OAAO,EAAE,YAAY,EAAE51B,MAAM,CAAC,CAAA;;AAEtD;AACA;EACA,IAAI9G,MAAM,KAAKgF,SAAS,EAAE;IACxB,IAAI,CAAC+3B,OAAO,EAAE;AACZ,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,IAAIA,OAAO,CAACD,UAAU,EAAE;AACtB98B,MAAAA,MAAM,GAAG+8B,OAAO,CAACD,UAAU,CAAC56B,OAAO,CAAC,CAAA;AACtC,KAAA;AACF,GAAA;AAEA,EAAA,OAAOlC,MAAM,CAAA;AACf,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA47B,YAAY,CAACY,SAAS,CAACD,KAAK,GAAG,UAASW,IAAI,EAAE;AAC5C,EAAA,IAAI,CAACpB,MAAM,CAACz+B,MAAM,GAAG,CAAC,CAAA;AACtB,EAAA,IAAI,CAAC0+B,SAAS,GAAG,CAAC,CAAC,CAAA;EAEnB,IAAImB,IAAI,KAAK,KAAK,EAAE;AAClB,IAAA,IAAI,CAACD,KAAK,CAAC,SAAS,EAAE;AAAEd,MAAAA,OAAO,EAAE,OAAA;AAAQ,KAAC,CAAC,CAAA;AAC7C,GAAA;AACF,CAAC,CAAA;;AAGD;AACA;AACA;AACAP,YAAY,CAACY,SAAS,CAACW,IAAI,GAAG,YAAW;AACvC,EAAA,IAAIr2B,MAAM,GAAG,IAAI,CAACs2B,cAAc,EAAE;IAC9BC,IAAI,CAAA;AAER,EAAA,IAAIv2B,MAAM,EAAE;AACV,IAAA,IAAI,CAACk1B,iBAAiB,CAACG,OAAO,GAAG,MAAM,CAAA;AAEvC,IAAA,IAAI,CAACQ,WAAW,CAAC71B,MAAM,CAAC,CAAA;AAExB,IAAA,OAAOA,MAAM,EAAE;AACb,MAAA,IAAI,CAACw2B,aAAa,CAACx2B,MAAM,CAAC,CAAA;AAC1Bu2B,MAAAA,IAAI,GAAG,IAAI,CAACD,cAAc,EAAE,CAAA;MAE5B,IAAI,CAACC,IAAI,IAAIA,IAAI,CAAC/2B,EAAE,KAAKQ,MAAM,CAACR,EAAE,EAAE;AAClC,QAAA,MAAA;AACF,OAAA;AAEAQ,MAAAA,MAAM,GAAGu2B,IAAI,CAAA;AACf,KAAA;IAEA,IAAI,CAACR,UAAU,EAAE,CAAA;AACnB,GAAA;AACF,CAAC,CAAA;;AAGD;AACA;AACA;AACAjB,YAAY,CAACY,SAAS,CAACe,IAAI,GAAG,YAAW;AACvC,EAAA,IAAIz2B,MAAM,GAAG,IAAI,CAAC02B,cAAc,EAAE;IAC9BH,IAAI,CAAA;AAER,EAAA,IAAIv2B,MAAM,EAAE;AACV,IAAA,IAAI,CAACk1B,iBAAiB,CAACG,OAAO,GAAG,MAAM,CAAA;AAEvC,IAAA,IAAI,CAACQ,WAAW,CAAC71B,MAAM,CAAC,CAAA;AAExB,IAAA,OAAOA,MAAM,EAAE;AACb,MAAA,IAAI,CAAC81B,gBAAgB,CAAC91B,MAAM,EAAE,IAAI,CAAC,CAAA;AACnCu2B,MAAAA,IAAI,GAAG,IAAI,CAACG,cAAc,EAAE,CAAA;MAE5B,IAAI,CAACH,IAAI,IAAIA,IAAI,CAAC/2B,EAAE,KAAKQ,MAAM,CAACR,EAAE,EAAE;AAClC,QAAA,MAAA;AACF,OAAA;AAEAQ,MAAAA,MAAM,GAAGu2B,IAAI,CAAA;AACf,KAAA;IAEA,IAAI,CAACR,UAAU,EAAE,CAAA;AACnB,GAAA;AACF,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACAjB,YAAY,CAACY,SAAS,CAACrE,QAAQ,GAAG,UAASuE,OAAO,EAAEK,OAAO,EAAE;AAC3D,EAAA,IAAI,CAACU,WAAW,CAACf,OAAO,EAAEK,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACAnB,YAAY,CAACY,SAAS,CAACkB,eAAe,GAAG,UAAShB,OAAO,EAAEiB,UAAU,EAAE;AAErE,EAAA,IAAI,CAACjB,OAAO,IAAI,CAACiB,UAAU,EAAE;AAC3B,IAAA,MAAM,IAAIx8B,KAAK,CAAC,wCAAwC,CAAC,CAAA;AAC3D,GAAA;EAEA,MAAM47B,OAAO,GAAG,IAAI,CAACX,SAAS,CAACwB,WAAW,CAACD,UAAU,CAAC,CAAA;AACtD,EAAA,IAAI,CAACxF,QAAQ,CAACuE,OAAO,EAAEK,OAAO,CAAC,CAAA;AACjC,CAAC,CAAA;;AAED;AACA;AACA;AACAnB,YAAY,CAACY,SAAS,CAACqB,OAAO,GAAG,YAAW;AAC1C,EAAA,OAAO,CAAC,CAAC,IAAI,CAACT,cAAc,EAAE,CAAA;AAChC,CAAC,CAAA;;AAED;AACA;AACA;AACAxB,YAAY,CAACY,SAAS,CAACsB,OAAO,GAAG,YAAW;AAC1C,EAAA,OAAO,CAAC,CAAC,IAAI,CAACN,cAAc,EAAE,CAAA;AAChC,CAAC,CAAA;;AAED;;AAEA5B,YAAY,CAACY,SAAS,CAACgB,cAAc,GAAG,YAAW;EACjD,OAAO,IAAI,CAAC1B,MAAM,CAAC,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC,CAAA;AACxC,CAAC,CAAA;AAGDH,YAAY,CAACY,SAAS,CAACY,cAAc,GAAG,YAAW;AACjD,EAAA,OAAO,IAAI,CAACtB,MAAM,CAAC,IAAI,CAACC,SAAS,CAAC,CAAA;AACpC,CAAC,CAAA;;AAGD;;AAEAH,YAAY,CAACY,SAAS,CAACc,aAAa,GAAG,UAASx2B,MAAM,EAAE;AACtD,EAAA,MAAM41B,OAAO,GAAG51B,MAAM,CAAC41B,OAAO;IACxBx6B,OAAO,GAAG4E,MAAM,CAAC5E,OAAO,CAAA;AAE9B,EAAA,MAAM66B,OAAO,GAAG,IAAI,CAACC,WAAW,CAACN,OAAO,CAAC,CAAA;;AAEzC;EACA,IAAI,CAACqB,SAAS,CAAC,MAAM;IACnB,IAAI,CAACd,KAAK,CAACP,OAAO,EAAE,QAAQ,EAAE51B,MAAM,CAAC,CAAA;IAErC,IAAIi2B,OAAO,CAACiB,MAAM,EAAE;MAClB,IAAI,CAACC,UAAU,CAAClB,OAAO,CAACiB,MAAM,CAAC97B,OAAO,CAAC,CAAC,CAAA;AAC1C,KAAA;AAEA,IAAA,IAAI,CAACg8B,eAAe,CAACp3B,MAAM,CAAC,CAAA;IAE5B,IAAI,CAACm2B,KAAK,CAACP,OAAO,EAAE,UAAU,EAAE51B,MAAM,CAAC,CAAA;AACzC,GAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAGD80B,YAAY,CAACY,SAAS,CAACS,KAAK,GAAG,UAASP,OAAO,EAAEyB,SAAS,EAAEvd,KAAK,EAAE;AACjE,EAAA,IAAIwd,SAAS,CAAC/gC,MAAM,GAAG,CAAC,EAAE;AACxBujB,IAAAA,KAAK,GAAGud,SAAS,CAAA;AACjBA,IAAAA,SAAS,GAAG,IAAI,CAAA;AAClB,GAAA;AAEA,EAAA,MAAME,KAAK,GAAGF,SAAS,GAAG,CAAEzB,OAAO,GAAG,GAAG,GAAGyB,SAAS,EAAEA,SAAS,CAAE,GAAG,CAAEzB,OAAO,CAAE,CAAA;AAChF,EAAA,IAAI18B,MAAM,CAAA;EAEV4gB,KAAK,GAAG,IAAI,CAAChgB,SAAS,CAAC09B,WAAW,CAAC1d,KAAK,CAAC,CAAA;AAEzC,EAAA,KAAK,MAAM5jB,IAAI,IAAIqhC,KAAK,EAAE;AACxBr+B,IAAAA,MAAM,GAAG,IAAI,CAACY,SAAS,CAACW,IAAI,CAAC,eAAe,GAAGvE,IAAI,EAAE4jB,KAAK,CAAC,CAAA;IAE3D,IAAIA,KAAK,CAAC2d,YAAY,EAAE;AACtB,MAAA,MAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,OAAOv+B,MAAM,CAAA;AACf,CAAC,CAAA;AAED47B,YAAY,CAACY,SAAS,CAACgC,SAAS,GAAG,YAAW;EAC5C,OAAO,IAAI,CAACnC,IAAI,EAAE,CAAA;AACpB,CAAC,CAAA;AAEDT,YAAY,CAACY,SAAS,CAACuB,SAAS,GAAG,UAASn0B,EAAE,EAAE;AAE9C,EAAA,MAAM60B,SAAS,GAAG,IAAI,CAACzC,iBAAiB,CAAA;EAExCyC,SAAS,CAACC,MAAM,GAAG,IAAI,CAAA;EAEvB,IAAI;AACF90B,IAAAA,EAAE,EAAE,CAAA;AACN,GAAC,SAAS;IACR60B,SAAS,CAACC,MAAM,GAAG,KAAK,CAAA;AAC1B,GAAA;AACF,CAAC,CAAA;AAED9C,YAAY,CAACY,SAAS,CAACI,gBAAgB,GAAG,UAAS91B,MAAM,EAAEy2B,IAAI,EAAE;AAC/D,EAAA,MAAMb,OAAO,GAAG51B,MAAM,CAAC41B,OAAO;IACxBx6B,OAAO,GAAG4E,MAAM,CAAC5E,OAAO,CAAA;AAE9B,EAAA,MAAM66B,OAAO,GAAG,IAAI,CAACC,WAAW,CAACN,OAAO,CAAC,CAAA;EAEzC,IAAI,CAACK,OAAO,EAAE;IACZ,MAAM,IAAI57B,KAAK,CAAC,qCAAqC,GAAGu7B,OAAO,GAAG,GAAG,CAAC,CAAA;AACxE,GAAA;AAEA,EAAA,IAAI,CAACC,WAAW,CAAC71B,MAAM,CAAC,CAAA;EAExB,IAAI,CAACy2B,IAAI,EAAE;IACT,IAAI,CAACN,KAAK,CAACP,OAAO,EAAE,YAAY,EAAE51B,MAAM,CAAC,CAAA;IAEzC,IAAIi2B,OAAO,CAAC4B,UAAU,EAAE;AACtB5B,MAAAA,OAAO,CAAC4B,UAAU,CAACz8B,OAAO,CAAC,CAAA;AAC7B,KAAA;IAEA,IAAI,CAAC+6B,KAAK,CAACP,OAAO,EAAE,aAAa,EAAE51B,MAAM,CAAC,CAAA;AAC5C,GAAA;;AAEA;EACA,IAAI,CAACi3B,SAAS,CAAC,MAAM;IAEnB,IAAI,CAACd,KAAK,CAACP,OAAO,EAAE,SAAS,EAAE51B,MAAM,CAAC,CAAA;IAEtC,IAAIi2B,OAAO,CAACN,OAAO,EAAE;AAEnB;MACA,IAAI,CAACwB,UAAU,CAAClB,OAAO,CAACN,OAAO,CAACv6B,OAAO,CAAC,CAAC,CAAA;AAC3C,KAAA;;AAEA;AACA,IAAA,IAAI,CAAC08B,eAAe,CAAC93B,MAAM,EAAEy2B,IAAI,CAAC,CAAA;IAElC,IAAI,CAACN,KAAK,CAACP,OAAO,EAAE,UAAU,EAAE51B,MAAM,CAAC,CAAA;AACzC,GAAC,CAAC,CAAA;EAEF,IAAI,CAACy2B,IAAI,EAAE;IACT,IAAI,CAACN,KAAK,CAACP,OAAO,EAAE,aAAa,EAAE51B,MAAM,CAAC,CAAA;IAE1C,IAAIi2B,OAAO,CAAC8B,WAAW,EAAE;AACvB9B,MAAAA,OAAO,CAAC8B,WAAW,CAAC38B,OAAO,CAAC,CAAA;AAC9B,KAAA;IAEA,IAAI,CAAC+6B,KAAK,CAACP,OAAO,EAAE,cAAc,EAAE51B,MAAM,CAAC,CAAA;AAC7C,GAAA;EAEA,IAAI,CAAC+1B,UAAU,EAAE,CAAA;AACnB,CAAC,CAAA;AAGDjB,YAAY,CAACY,SAAS,CAACG,WAAW,GAAG,UAAS71B,MAAM,EAAE;AAEpD,EAAA,MAAM23B,SAAS,GAAG,IAAI,CAACzC,iBAAiB;IAClCC,OAAO,GAAGwC,SAAS,CAACxC,OAAO,CAAA;AAEjC,EAAA,MAAM6C,UAAU,GAAG7C,OAAO,CAAC,CAAC,CAAC,CAAA;EAE7B,IAAIwC,SAAS,CAACC,MAAM,EAAE;IACpB,MAAM,IAAIv9B,KAAK,CAAC,6DAA6D,GAAG2F,MAAM,CAAC41B,OAAO,GAAG,GAAG,CAAC,CAAA;AACvG,GAAA;AAEA,EAAA,IAAI,CAAC51B,MAAM,CAACR,EAAE,EAAE;AACdQ,IAAAA,MAAM,CAACR,EAAE,GAAIw4B,UAAU,IAAIA,UAAU,CAACx4B,EAAE,IAAK,IAAI,CAACk4B,SAAS,EAAE,CAAA;AAC/D,GAAA;AAEAvC,EAAAA,OAAO,CAAC58B,IAAI,CAACyH,MAAM,CAAC,CAAA;AACtB,CAAC,CAAA;AAGD80B,YAAY,CAACY,SAAS,CAACK,UAAU,GAAG,YAAW;AAC7C,EAAA,MAAM4B,SAAS,GAAG,IAAI,CAACzC,iBAAiB;IAClCG,OAAO,GAAGsC,SAAS,CAACtC,OAAO;IAC3BF,OAAO,GAAGwC,SAAS,CAACxC,OAAO;IAC3BC,KAAK,GAAGuC,SAAS,CAACvC,KAAK,CAAA;EAE7BD,OAAO,CAACh8B,GAAG,EAAE,CAAA;AAEb,EAAA,IAAI,CAACg8B,OAAO,CAAC5+B,MAAM,EAAE;AACnB,IAAA,IAAI,CAACuD,SAAS,CAACW,IAAI,CAAC,kBAAkB,EAAE;MAAEw9B,QAAQ,EAAEC,QAAQ,CAAC,IAAI,EAAE9C,KAAK,CAAC58B,OAAO,EAAE,CAAA;AAAE,KAAC,CAAC,CAAA;IAEtF48B,KAAK,CAAC7+B,MAAM,GAAG,CAAC,CAAA;AAEhB,IAAA,IAAI,CAAC4/B,KAAK,CAAC,SAAS,EAAE;AAAEd,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAC,CAAC,CAAA;IAE3CsC,SAAS,CAACtC,OAAO,GAAG,IAAI,CAAA;AAC1B,GAAA;AACF,CAAC,CAAA;AAGDP,YAAY,CAACY,SAAS,CAACyB,UAAU,GAAG,UAASc,QAAQ,EAAE;AACrD,EAAA,MAAMN,SAAS,GAAG,IAAI,CAACzC,iBAAiB,CAAA;EAExC,IAAI,CAAC+C,QAAQ,EAAE;AACb,IAAA,OAAA;AACF,GAAA;EAEAA,QAAQ,GAAGztB,OAAO,CAACytB,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAAEA,QAAQ,CAAE,CAAA;EAEtDN,SAAS,CAACvC,KAAK,GAAGuC,SAAS,CAACvC,KAAK,CAACn+B,MAAM,CAACghC,QAAQ,CAAC,CAAA;AACpD,CAAC,CAAA;AAGDnD,YAAY,CAACY,SAAS,CAACoC,eAAe,GAAG,UAAS93B,MAAM,EAAEy2B,IAAI,EAAE;AAC9D,EAAA,MAAM0B,QAAQ,GAAG,EAAE,IAAI,CAAClD,SAAS,CAAA;EAEjC,IAAI,CAACwB,IAAI,EAAE;AACT,IAAA,IAAI,CAACzB,MAAM,CAACoD,MAAM,CAACD,QAAQ,EAAE,IAAI,CAACnD,MAAM,CAACz+B,MAAM,EAAEyJ,MAAM,CAAC,CAAA;AAC1D,GAAA;AACF,CAAC,CAAA;AAGD80B,YAAY,CAACY,SAAS,CAAC0B,eAAe,GAAG,UAASp3B,MAAM,EAAE;EACxD,IAAI,CAACi1B,SAAS,EAAE,CAAA;AAClB,CAAC,CAAA;AAGDH,YAAY,CAACY,SAAS,CAACQ,WAAW,GAAG,UAASN,OAAO,EAAE;AACrD,EAAA,OAAO,IAAI,CAACb,WAAW,CAACa,OAAO,CAAC,CAAA;AAClC,CAAC,CAAA;AAEDd,YAAY,CAACY,SAAS,CAACiB,WAAW,GAAG,UAASf,OAAO,EAAEK,OAAO,EAAE;AAC9D,EAAA,IAAI,CAACL,OAAO,IAAI,CAACK,OAAO,EAAE;AACxB,IAAA,MAAM,IAAI57B,KAAK,CAAC,8BAA8B,CAAC,CAAA;AACjD,GAAA;AAEA,EAAA,IAAI,IAAI,CAAC06B,WAAW,CAACa,OAAO,CAAC,EAAE;IAC7B,MAAM,IAAIv7B,KAAK,CAAC,kCAAkC,GAAGu7B,OAAO,GAAG,GAAG,CAAC,CAAA;AACrE,GAAA;AAEA,EAAA,IAAI,CAACb,WAAW,CAACa,OAAO,CAAC,GAAGK,OAAO,CAAA;AACrC,CAAC;;ACxiBD;AACA;AACA;AACA,oBAAe;AACboC,EAAAA,YAAY,EAAE,CAAE,MAAM,EAAEvD,YAAY,CAAA;AACtC,CAAC;;ACJc,MAAMwD,4BAA4B,CAAC;AAEhD1+B,EAAAA,WAAWA,CAACgY,IAAI,EAAE2mB,SAAS,EAAE;IAC3B,IAAI,CAACC,KAAK,GAAG5mB,IAAI,CAAA;IACjB,IAAI,CAAC6mB,UAAU,GAAGF,SAAS,CAAA;AAC7B,GAAA;EAEA5C,OAAOA,CAACv6B,OAAO,EAAE;IACf,MAAM;MAAE0C,KAAK;MAAE9D,KAAK;AAAE0F,MAAAA,OAAAA;AAAQ,KAAC,GAAGtE,OAAO,CAAA;IACzC,MAAM;AAAE2D,MAAAA,MAAAA;AAAO,KAAC,GAAG,IAAI,CAACy5B,KAAK,CAAC7yB,SAAS,EAAE,CAAA;AAEzCvK,IAAAA,OAAO,CAACs9B,SAAS,GAAGp2B,KAAK,CAACvD,MAAM,CAAC,CAAA;IAEjC,MAAMyT,WAAW,GAAG,IAAI,CAACimB,UAAU,CAACE,aAAa,CAAC76B,KAAK,EAAE9D,KAAK,CAAC,CAAA;AAC/D,IAAA,MAAM4+B,aAAa,GAAGpb,GAAG,CAACze,MAAM,EAAE,CAAEjB,KAAK,CAAC0B,EAAE,EAAE,GAAGnJ,MAAM,CAAC2H,MAAM,CAAC0B,OAAO,IAAI,EAAE,CAAC,CAAE,EAAE8S,WAAW,CAACjc,MAAM,GAAGic,WAAW,GAAGtU,SAAS,CAAC,CAAA;AAC9H,IAAA,IAAI,CAACs6B,KAAK,CAACK,SAAS,CAAC;AAAE95B,MAAAA,MAAM,EAAE65B,aAAAA;AAAc,KAAC,CAAC,CAAA;AACjD,GAAA;EAEA1B,MAAMA,CAAC97B,OAAO,EAAE;AACd,IAAA,IAAI,CAACo9B,KAAK,CAACK,SAAS,CAAC;MAAE95B,MAAM,EAAE3D,OAAO,CAACs9B,SAAAA;AAAU,KAAC,CAAC,CAAA;AACrD,GAAA;AACF,CAAA;AAEAJ,4BAA4B,CAAC59B,OAAO,GAAG,CAAE,MAAM,EAAE,WAAW,CAAE;;ACxB/C,MAAMo+B,cAAc,CAAC;AAClCl/B,EAAAA,WAAWA,CAACy+B,YAAY,EAAEx+B,QAAQ,EAAE;IAClC,IAAI,CAACk/B,aAAa,GAAGV,YAAY,CAAA;AAEjCx+B,IAAAA,QAAQ,CAAC27B,EAAE,CAAC,WAAW,EAAE,MAAM;MAC7B,IAAI,CAACwD,gBAAgB,EAAE,CAAA;AACzB,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAA,EAAAA,gBAAgBA,GAAG;AACjB3iC,IAAAA,MAAM,CAAC8M,OAAO,CAAC,IAAI,CAAC81B,WAAW,EAAE,CAAC,CAACt5B,OAAO,CAAC,CAAC,CAAEH,EAAE,EAAEy2B,OAAO,CAAE,KAAK;MAC9D,IAAI,CAAC8C,aAAa,CAACnC,eAAe,CAACp3B,EAAE,EAAEy2B,OAAO,CAAC,CAAA;AACjD,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAgD,EAAAA,WAAWA,GAAG;IACZ,OAAO;AACL,MAAA,6BAA6B,EAAEX,4BAAAA;KAChC,CAAA;AACH,GAAA;AAEApmB,EAAAA,qBAAqBA,CAACpU,KAAK,EAAE9D,KAAK,EAAE0F,OAAO,EAAE;AAC3C,IAAA,MAAMtE,OAAO,GAAG;MACd0C,KAAK;MACL9D,KAAK;AACL0F,MAAAA,OAAAA;KACD,CAAA;IAED,IAAI,CAACq5B,aAAa,CAACpD,OAAO,CAAC,6BAA6B,EAAEv6B,OAAO,CAAC,CAAA;AACpE,GAAA;AAEF,CAAA;AAEA09B,cAAc,CAACp+B,OAAO,GAAG,CACvB,cAAc,EACd,UAAU,CACX;;AClCD,2BAAe;EACbw+B,WAAW,EAAE,CACXC,aAAa,CACd;EACD5E,QAAQ,EAAE,CAAE,gBAAgB,CAAE;AAC9B7iB,EAAAA,cAAc,EAAE,CAAE,MAAM,EAAEonB,cAAc,CAAA;AAC1C,CAAC;;ACVD,IAAI1jB,OAAK,CAAC;AACV,SAASC,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1C,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,CAAC,EAAE,yKAAyK;AAChL,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AACF,gBAAe,SAAS;;ACdxB,IAAIA,OAAK,CAAC;AACV,SAASC,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9C,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,CAAC,EAAE,8KAA8K;AACrL,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AACF,kBAAe,WAAW;;ACd1B,IAAIA,OAAK,EAAE,MAAM,CAAC;AAClB,SAASC,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,IAAI,MAAM,GAAG,SAAS,MAAM,CAAC,KAAK,EAAE;AACpC,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,CAAC,EAAE,8GAA8G;AACrH,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpE,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,CAAC,EAAE,8CAA8C;AACrD,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AACF,aAAe,MAAM;;ACjBrB,IAAI,KAAK,CAAC;AACV,SAAS,QAAQ,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1C,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,CAAC,EAAE,oFAAoF;AAC3F,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AACF,gBAAe,SAAS;;ACdxB;AAgBe,MAAMgkB,mBAAmB,CAAC;EAEvCx/B,WAAWA,CAACgY,IAAI,EAAEH,UAAU,EAAEkC,iBAAiB,EAAEhC,YAAY,EAAE;IAC7D,IAAI,CAAC6mB,KAAK,GAAG5mB,IAAI,CAAA;IACjB,IAAI,CAACwf,WAAW,GAAG3f,UAAU,CAAA;IAC7B,IAAI,CAACghB,kBAAkB,GAAG9e,iBAAiB,CAAA;IAC3C,IAAI,CAAC+e,aAAa,GAAG/gB,YAAY,CAAA;IACjC,IAAI,CAACkB,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACwmB,IAAI,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAACvmB,YAAY,GAAG,IAAI,CAACA,YAAY,CAACumB,IAAI,CAAC,IAAI,CAAC,CAAA;AAClD,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEzmB,gBAAgBA,CAACpT,EAAE,EAAE;IAEnB,IAAI,CAACA,EAAE,EAAE;AACP,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,MAAMJ,SAAS,GAAG,IAAI,CAACqzB,kBAAkB,CAACx0B,GAAG,CAACuB,EAAE,CAAC,CAAA;IACjD,MAAM85B,mBAAmB,GAAG,IAAI,CAAClI,WAAW,CAACnzB,GAAG,CAACmB,SAAS,CAACtG,IAAI,CAAC,CAAA;IAChE,OAAOwgC,mBAAmB,CAACn5B,MAAM,CAACqoB,UAAU,IAAIppB,SAAS,CAACuT,WAAW,CAAA;AACvE,GAAA;EAEAE,QAAQA,CAAChT,KAAK,EAAE;IAEd,MAAM;MAAEsT,YAAY;MAAEzT,OAAO;MAAE2T,cAAc;MAAE,GAAGD,SAAAA;AAAU,KAAC,GAAGvT,KAAK,CAAA;AAErE,IAAA,MAAM,CAAE05B,iBAAiB,CAAE,GAAGlmB,cAAc,CAAA;IAE5C,MAAM;AAAE9Y,MAAAA,IAAAA;AAAK,KAAC,GAAG,IAAI,CAACi+B,KAAK,CAAC7yB,SAAS,EAAE,CAAA;AAEvC,IAAA,MAAM6zB,aAAa,GAAG35B,KAAK,CAAC/B,KAAK,CAAA;IACjC,MAAM27B,QAAQ,GAAG,IAAI,CAAC/G,aAAa,CAAC3gB,YAAY,CAACynB,aAAa,EAAE;AAAE95B,MAAAA,OAAAA;AAAQ,KAAC,CAAC,CAAA;IAC5E,MAAM1B,MAAM,GAAGC,GAAG,CAAC1D,IAAI,EAAEk/B,QAAQ,CAAC,IAAI,EAAE,CAAA;AAExC,IAAA,MAAMC,iBAAiB,GAAG,IAAI,CAACC,qBAAqB,CAACH,aAAa,CAAC,CAAA;IACnE,MAAMI,eAAe,GAAG,CAACJ,aAAa,CAACK,eAAe,IAAK77B,MAAM,CAACzH,MAAM,GAAGmjC,iBAAkB,CAAA;AAC7F,IAAA,MAAMpmB,WAAW,GAAGsmB,eAAe,IAAIL,iBAAiB,CAACjmB,WAAW,CAAA;AAEpE,IAAA,MAAMwmB,WAAW,GAAGN,aAAa,CAACz2B,UAAU,IAAIy2B,aAAa,CAACz2B,UAAU,CAACxM,MAAM,GAAG,CAAC,CAAA;AACnF,IAAA,MAAMwjC,UAAU,GAAGP,aAAa,CAAC/Q,cAAc,IAAIqR,WAAW,CAAA;AAE9D,IAAA,MAAME,aAAa,GAAG1mB,WAAW,GAAGtV,MAAM,CAACjF,KAAK,CAAC,CAAC,EAAE2gC,iBAAiB,CAAC,GAAG17B,MAAM,CAAA;IAE/E,MAAMi8B,YAAY,GAAI5iC,KAAK,IAAK;AAE9B,MAAA,MAAM6iC,aAAa,GAAGl8B,MAAM,CAACjF,KAAK,EAAE,CAAA;AACpCmhC,MAAAA,aAAa,CAAC9B,MAAM,CAAC/gC,KAAK,EAAE,CAAC,CAAC,CAAA;MAE9BwI,KAAK,CAACsI,QAAQ,CAAC;AACbrK,QAAAA,KAAK,EAAE07B,aAAa;AACpBx/B,QAAAA,KAAK,EAAEkgC,aAAa;AACpBx6B,QAAAA,OAAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAA;AAED,IAAA,MAAMy6B,2BAA2B,GAAG74B,UAAU,CAACJ,wBAAsB,CAAC,CAAA;IAEtE,OACEjB,GAAA,CAAAsT,QAAA,EAAA;MAAA1c,QAAA,EACGmjC,aAAa,CAAC9hC,GAAG,CAAC,CAAC8B,KAAK,EAAE3C,KAAK,KAAK;AACnC,QAAA,MAAM+iC,YAAY,GAAG;AACnB,UAAA,GAAGhnB,SAAS;AACZ1T,UAAAA,OAAO,EAAE;AAAE,YAAA,IAAIA,OAAO,IAAI,EAAE,CAAC;YAAE,CAAE85B,aAAa,CAACh6B,EAAE,GAAInI,KAAAA;AAAM,WAAA;SAC5D,CAAA;AAED,QAAA,MAAMgjC,0BAA0B,GAAG72B,OAAO,CAAC,OAAO;UAChDjJ,IAAI,EAAE4/B,2BAA2B,CAAC5/B,IAAI;AACtCW,UAAAA,IAAI,EAAElB,KAAK;AACXZ,UAAAA,MAAM,EAAEsJ,sBAAsB,CAACy3B,2BAA2B,CAAC;UAC3DtiC,CAAC,EAAE,CAAE,GAAGsiC,2BAA2B,CAACtiC,CAAC,EAAGR,KAAK,GAAG,CAAC,CAAA;AACnD,SAAC,CAAC,EAAE,CAAEA,KAAK,EAAE2C,KAAK,CAAE,CAAC,CAAA;AAErB,QAAA,OAAO,CAAC+/B,UAAU,GAChB95B,GAAA,CAACiB,wBAAsB,CAACge,QAAQ,EAAA;AAACllB,UAAAA,KAAK,EAAGqgC,0BAA4B;UAAAxjC,QAAA,EACnEoJ,GAAA,CAACkT,YAAY,EAAA;YAAA,GAAMinB,YAAAA;WAAgB,CAAA;SACJ,CAAC,GAClCvyB,IAAA,CAAA,KAAA,EAAA;AAAK3H,UAAAA,KAAK,EAAC,0BAA0B;AAAArJ,UAAAA,QAAA,GACnCoJ,GAAA,CAAA,KAAA,EAAA;AAAKC,YAAAA,KAAK,EAAC,qBAAqB;AAAArJ,YAAAA,QAAA,EAC9BoJ,GAAA,CAACiB,wBAAsB,CAACge,QAAQ,EAAA;AAACllB,cAAAA,KAAK,EAAGqgC,0BAA4B;cAAAxjC,QAAA,EACnEoJ,GAAA,CAACkT,YAAY,EAAA;gBAAA,GAAMinB,YAAAA;eAAgB,CAAA;aACJ,CAAA;WAC9B,CAAC,EACNn6B,GAAA,CAAA,QAAA,EAAA;AAAQC,YAAAA,KAAK,EAAC,uBAAuB;AAACpH,YAAAA,IAAI,EAAC,QAAQ;AAAC,YAAA,YAAA,EAAc,CAAmBzB,iBAAAA,EAAAA,KAAK,GAAG,CAAE,CAAG,CAAA;AAACia,YAAAA,OAAO,EAAGA,MAAM2oB,YAAY,CAAC5iC,KAAK,CAAG;AAAAR,YAAAA,QAAA,EACtIoJ,GAAA,CAAA,KAAA,EAAA;AAAKC,cAAAA,KAAK,EAAC,sCAAsC;AAAArJ,cAAAA,QAAA,EAC/CoJ,GAAA,CAACq6B,SAAS,EAAE,EAAA,CAAA;aACT,CAAA;AAAC,WACA,CAAC,CAAA;AAAA,SACN,CAAC,CAAA;OACT,CAAA;AAAC,KACF,CAAC,CAAA;AAEP,GAAA;EAEAxnB,YAAYA,CAACjT,KAAK,EAAE;AAElB,IAAA,MAAM06B,YAAY,GAAG5zB,MAAM,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM;MAAE0M,cAAc;MAAE3T,OAAO;AAAE5B,MAAAA,KAAK,EAAE07B,aAAa;MAAEv6B,QAAQ;AAAED,MAAAA,QAAAA;AAAS,KAAC,GAAGa,KAAK,CAAA;AACnF,IAAA,MAAM,CAAE05B,iBAAiB,EAAEiB,oBAAoB,CAAE,GAAGnnB,cAAc,CAAA;IAElE,MAAM;AAAE9Y,MAAAA,IAAAA;AAAK,KAAC,GAAG,IAAI,CAACi+B,KAAK,CAAC7yB,SAAS,EAAE,CAAA;IAEvC,MAAM8zB,QAAQ,GAAG,IAAI,CAAC/G,aAAa,CAAC3gB,YAAY,CAACynB,aAAa,EAAE;AAAE95B,MAAAA,OAAAA;AAAQ,KAAC,CAAC,CAAA;IAC5E,MAAM1B,MAAM,GAAGC,GAAG,CAAC1D,IAAI,EAAEk/B,QAAQ,CAAC,IAAI,EAAE,CAAA;AAExC,IAAA,MAAMC,iBAAiB,GAAG,IAAI,CAACC,qBAAqB,CAACH,aAAa,CAAC,CAAA;IACnE,MAAMI,eAAe,GAAG,CAACJ,aAAa,CAACK,eAAe,IAAK77B,MAAM,CAACzH,MAAM,GAAGmjC,iBAAkB,CAAA;AAC7F,IAAA,MAAMpmB,WAAW,GAAGsmB,eAAe,IAAIL,iBAAiB,CAACjmB,WAAW,CAAA;AAEpE,IAAA,MAAMwmB,WAAW,GAAGN,aAAa,CAACz2B,UAAU,IAAIy2B,aAAa,CAACz2B,UAAU,CAACxM,MAAM,GAAG,CAAC,CAAA;AACnF,IAAA,MAAMkkC,OAAO,GAAGjB,aAAa,CAAC/Q,cAAc,IAAIqR,WAAW,CAAA;IAE3D,MAAMY,MAAM,GAAGA,MAAM;MACnBF,oBAAoB,CAAC3zB,KAAK,KAAK;AAAE,QAAA,GAAGA,KAAK;AAAEyM,QAAAA,WAAW,EAAE,CAACA,WAAAA;AAAY,OAAC,CAAC,CAAC,CAAA;KACzE,CAAA;AAED,IAAA,MAAM/O,YAAY,GAAGoC,MAAM,CAAC,KAAK,CAAC,CAAA;IAElC,MAAMg0B,SAAS,GAAGA,MAAM;AACtB,MAAA,MAAMT,aAAa,GAAGl8B,MAAM,CAACjF,KAAK,EAAE,CAAA;AACpC,MAAA,MAAM6hC,OAAO,GAAG,IAAI,CAACpC,KAAK,CAACqC,wBAAwB,CAAC,IAAI,CAACrC,KAAK,CAAC7yB,SAAS,EAAE,CAACpL,IAAI,EAAE;AAC/EmE,QAAAA,SAAS,EAAE86B,aAAa;AACxB95B,QAAAA,OAAO,EAAE;AAAE,UAAA,GAAGA,OAAO;AAAE,UAAA,CAAE85B,aAAa,CAACh6B,EAAE,GAAI06B,aAAa,CAAC3jC,MAAAA;AAAO,SAAA;AACpE,OAAC,CAAC,CAAA;AAEF2jC,MAAAA,aAAa,CAAC3hC,IAAI,CAACqiC,OAAO,CAAC,CAAA;MAE3Br2B,YAAY,CAAC7M,OAAO,GAAG,IAAI,CAAA;MAE3BmI,KAAK,CAACsI,QAAQ,CAAC;AACbrK,QAAAA,KAAK,EAAE07B,aAAa;AACpBx/B,QAAAA,KAAK,EAAEkgC,aAAa;AACpBx6B,QAAAA,OAAAA;AACF,OAAC,CAAC,CAAA;MAEF86B,oBAAoB,CAAC3zB,KAAK,KAAK;AAAE,QAAA,GAAGA,KAAK;AAAEyM,QAAAA,WAAW,EAAE,KAAA;AAAM,OAAC,CAAC,CAAC,CAAA;KAClE,CAAA;IAED5P,iBAAiB,CAAC62B,YAAY,EAAE,CAAEv8B,MAAM,CAACzH,MAAM,CAAE,EAAE;AACjDoO,MAAAA,KAAK,EAAE,QAAQ;AACfC,MAAAA,QAAQ,EAAE,MAAM;AAChB3M,MAAAA,MAAM,EAAE,EAAA;AACV,KAAC,EAAE,CAAEsM,YAAY,CAAE,CAAC,CAAA;AAEpB,IAAA,OAAOsD,IAAA,CAAA,KAAA,EAAA;AACLwX,MAAAA,SAAS,EACPngB,UAAU,CAAC,0BAA0B,EAAE;QACrC,oBAAoB,EAACs6B,aAAa,CAAC/Q,cAAAA;AACrC,OAAC,CAAG;MAAA5xB,QAAA,EAAA,CAGJ4jC,OAAO,GAAGx6B,GAAA,CAAA,QAAA,EAAA;AAAQsG,QAAAA,QAAQ,EAAGtH,QAAU;QAACD,QAAQ,EAAGA,QAAQ,IAAIC,QAAU;AAACiB,QAAAA,KAAK,EAAC,uBAAuB;AAACpH,QAAAA,IAAI,EAAC,QAAQ;AAACkL,QAAAA,GAAG,EAAGu2B,YAAc;AAACjpB,QAAAA,OAAO,EAAGqpB,SAAW;QAAA9jC,QAAA,EAC9JgR,IAAA,CAAA0L,QAAA,EAAA;UAAA1c,QAAA,EAAA,CAAEoJ,GAAA,CAAC66B,MAAM,IAAE,CAAC,EAAA,GAAC,EAAE,SAAS,CAAA;SAAI,CAAA;AAAC,OACvB,CAAC,GAAG,IAAI,EAGhBlB,eAAe,GAAG35B,GAAA,CAAA,QAAA,EAAA;AAAQC,QAAAA,KAAK,EAAC,4BAA4B;AAACpH,QAAAA,IAAI,EAAC,QAAQ;AAACwY,QAAAA,OAAO,EAAGopB,MAAQ;AAAA7jC,QAAAA,QAAA,EAEzFyc,WAAW,GACPzL,IAAA,CAAA0L,QAAA,EAAA;AAAA1c,UAAAA,QAAA,EAAEoJ,CAAAA,GAAA,CAAC86B,SAAS,EAAE,EAAA,CAAC,EAAC,GAAA,EAAG,CAAc/8B,YAAAA,EAAAA,MAAM,CAACzH,MAAO,CAAE,CAAA,CAAA,CAAA;AAAA,SAAI,CAAC,GACtDsR,IAAA,CAAA0L,QAAA,EAAA;UAAA1c,QAAA,EAAA,CAAEoJ,GAAA,CAAC+6B,WAAW,IAAE,CAAC,EAAA,GAAC,EAAE,UAAU,CAAA;SAAI,CAAA;OAElC,CAAC,GAAG,IAAI,CAAA;AAAA,KAEf,CAAC,CAAA;AACR,GAAA;EAEArB,qBAAqBA,CAAC77B,KAAK,EAAE;IAC3B,MAAMm9B,2BAA2B,GAAG,CAAC,CAAA;IAErC,MAAM;AAAEvB,MAAAA,iBAAAA;AAAkB,KAAC,GAAG57B,KAAK,CAAA;AAEnC,IAAA,OAAO47B,iBAAiB,GAAGA,iBAAiB,GAAGuB,2BAA2B,CAAA;AAC5E,GAAA;AAEF,CAAA;AAEA7B,mBAAmB,CAAC1+B,OAAO,GAAG,CAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,CAAE;;ACpM3F,yBAAe;EACb65B,QAAQ,EAAE,CAAE,qBAAqB,CAAE;AACnC7hB,EAAAA,mBAAmB,EAAE,CAAE,MAAM,EAAE0mB,mBAAmB,CAAA;AACpD,CAAC;;ACGD,IAAI8B,MAAM,GAAG,MAAM,CAAA;AAEnB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAE3B,IAAIpiC,KAAK,GAAGtC,KAAK,CAACi/B,SAAS,CAAC38B,KAAK,CAAA;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASqiC,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE,CAAA;;AAEpB;AACA;AACA,EAAA,IAAI,CAAC7F,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC8F,QAAQ,EAAE,IAAI,CAAC,CAAA;AACpD,CAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAF,QAAQ,CAAC1F,SAAS,CAACF,EAAE,GAAG,UAAS+F,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAEjEH,MAAM,GAAG/wB,OAAO,CAAC+wB,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,IAAII,UAAU,CAACH,QAAQ,CAAC,EAAE;AACxBE,IAAAA,IAAI,GAAGD,QAAQ,CAAA;AACfA,IAAAA,QAAQ,GAAGD,QAAQ,CAAA;AACnBA,IAAAA,QAAQ,GAAGL,gBAAgB,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAI,CAACvuB,QAAQ,CAAC4uB,QAAQ,CAAC,EAAE;AACvB,IAAA,MAAM,IAAInhC,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,GAAA;EAEA,IAAIuhC,cAAc,GAAGH,QAAQ,CAAA;AAE7B,EAAA,IAAIC,IAAI,EAAE;AACRE,IAAAA,cAAc,GAAGvC,IAAI,CAACoC,QAAQ,EAAEC,IAAI,CAAC,CAAA;;AAErC;AACA;AACA;IACAE,cAAc,CAACV,MAAM,CAAC,GAAGO,QAAQ,CAACP,MAAM,CAAC,IAAIO,QAAQ,CAAA;AACvD,GAAA;EAEA,IAAII,IAAI,GAAG,IAAI,CAAA;AAEfN,EAAAA,MAAM,CAAC57B,OAAO,CAAC,UAASmR,CAAC,EAAE;AACzB+qB,IAAAA,IAAI,CAACC,YAAY,CAAChrB,CAAC,EAAE;AACnB0qB,MAAAA,QAAQ,EAAEA,QAAQ;AAClBC,MAAAA,QAAQ,EAAEG,cAAc;AACxBrF,MAAAA,IAAI,EAAE,IAAA;AACR,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AACJ,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA6E,QAAQ,CAAC1F,SAAS,CAACqG,IAAI,GAAG,UAASR,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EACnE,IAAIG,IAAI,GAAG,IAAI,CAAA;AAEf,EAAA,IAAIF,UAAU,CAACH,QAAQ,CAAC,EAAE;AACxBE,IAAAA,IAAI,GAAGD,QAAQ,CAAA;AACfA,IAAAA,QAAQ,GAAGD,QAAQ,CAAA;AACnBA,IAAAA,QAAQ,GAAGL,gBAAgB,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAI,CAACvuB,QAAQ,CAAC4uB,QAAQ,CAAC,EAAE;AACvB,IAAA,MAAM,IAAInhC,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,GAAA;EAEA,SAAS2hC,eAAeA,GAAG;IACzBA,eAAe,CAACC,QAAQ,GAAG,IAAI,CAAA;IAE/B,IAAI/iC,MAAM,GAAGuiC,QAAQ,CAACS,KAAK,CAACR,IAAI,EAAEpE,SAAS,CAAC,CAAA;AAE5CuE,IAAAA,IAAI,CAACM,GAAG,CAACZ,MAAM,EAAES,eAAe,CAAC,CAAA;AAEjC,IAAA,OAAO9iC,MAAM,CAAA;AACf,GAAA;;AAEA;AACA;AACA;AACA8iC,EAAAA,eAAe,CAACd,MAAM,CAAC,GAAGO,QAAQ,CAAA;EAElC,IAAI,CAACjG,EAAE,CAAC+F,MAAM,EAAEC,QAAQ,EAAEQ,eAAe,CAAC,CAAA;AAC5C,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAZ,QAAQ,CAAC1F,SAAS,CAACyG,GAAG,GAAG,UAASZ,MAAM,EAAEE,QAAQ,EAAE;EAElDF,MAAM,GAAG/wB,OAAO,CAAC+wB,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;EAE9C,IAAIM,IAAI,GAAG,IAAI,CAAA;AAEfN,EAAAA,MAAM,CAAC57B,OAAO,CAAC,UAASma,KAAK,EAAE;AAC7B+hB,IAAAA,IAAI,CAACO,eAAe,CAACtiB,KAAK,EAAE2hB,QAAQ,CAAC,CAAA;AACvC,GAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACAL,QAAQ,CAAC1F,SAAS,CAAC8B,WAAW,GAAG,UAASj9B,IAAI,EAAE;AAC9C,EAAA,IAAIuf,KAAK,GAAG,IAAIuiB,aAAa,EAAE,CAAA;AAE/BviB,EAAAA,KAAK,CAACvb,IAAI,CAAChE,IAAI,CAAC,CAAA;AAEhB,EAAA,OAAOuf,KAAK,CAAA;AACd,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAshB,QAAQ,CAAC1F,SAAS,CAACj7B,IAAI,GAAG,UAAS3B,IAAI,EAAEyB,IAAI,EAAE;AAC7C,EAAA,IAAIuf,KAAK,EACLwiB,aAAa,EACbC,WAAW,EACXpR,IAAI,CAAA;AAERA,EAAAA,IAAI,GAAGpyB,KAAK,CAACyjC,IAAI,CAAClF,SAAS,CAAC,CAAA;AAE5B,EAAA,IAAI,OAAOx+B,IAAI,KAAK,QAAQ,EAAE;AAC5ByB,IAAAA,IAAI,GAAGzB,IAAI,CAAA;IACXA,IAAI,GAAGyB,IAAI,CAACzB,IAAI,CAAA;AAClB,GAAA;EAEA,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,MAAM,IAAIuB,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC5C,GAAA;AAEAiiC,EAAAA,aAAa,GAAG,IAAI,CAACjB,UAAU,CAACviC,IAAI,CAAC,CAAA;EAErC,IAAI,CAACwjC,aAAa,EAAE;AAClB,IAAA,OAAA;AACF,GAAA;;AAEA;AACA;EACA,IAAI/hC,IAAI,YAAY8hC,aAAa,EAAE;AAEjC;AACAviB,IAAAA,KAAK,GAAGvf,IAAI,CAAA;AACd,GAAC,MAAM;AACLuf,IAAAA,KAAK,GAAG,IAAI,CAAC0d,WAAW,CAACj9B,IAAI,CAAC,CAAA;AAChC,GAAA;;AAEA;AACA4wB,EAAAA,IAAI,CAAC,CAAC,CAAC,GAAGrR,KAAK,CAAA;;AAEf;AACA,EAAA,IAAI2iB,YAAY,GAAG3iB,KAAK,CAAChhB,IAAI,CAAA;;AAE7B;EACA,IAAIA,IAAI,KAAK2jC,YAAY,EAAE;IACzB3iB,KAAK,CAAChhB,IAAI,GAAGA,IAAI,CAAA;AACnB,GAAA;EAEA,IAAI;IACFyjC,WAAW,GAAG,IAAI,CAACG,gBAAgB,CAAC5iB,KAAK,EAAEqR,IAAI,EAAEmR,aAAa,CAAC,CAAA;AACjE,GAAC,SAAS;AAER;IACA,IAAIxjC,IAAI,KAAK2jC,YAAY,EAAE;MACzB3iB,KAAK,CAAChhB,IAAI,GAAG2jC,YAAY,CAAA;AAC3B,KAAA;AACF,GAAA;;AAEA;AACA;AACA,EAAA,IAAIF,WAAW,KAAKr+B,SAAS,IAAI4b,KAAK,CAAC6iB,gBAAgB,EAAE;AACvDJ,IAAAA,WAAW,GAAG,KAAK,CAAA;AACrB,GAAA;AAEA,EAAA,OAAOA,WAAW,CAAA;AACpB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAnB,QAAQ,CAAC1F,SAAS,CAACkH,WAAW,GAAG,UAASpiC,KAAK,EAAE;AAC/C,EAAA,OAAO,IAAI,CAACC,IAAI,CAAC,OAAO,EAAE;AAAED,IAAAA,KAAK,EAAEA,KAAAA;GAAO,CAAC,KAAK,KAAK,CAAA;AACvD,CAAC,CAAA;AAGD4gC,QAAQ,CAAC1F,SAAS,CAAC4F,QAAQ,GAAG,YAAW;AACvC,EAAA,IAAI,CAACD,UAAU,GAAG,EAAE,CAAA;AACtB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAD,QAAQ,CAAC1F,SAAS,CAACgH,gBAAgB,GAAG,UAAS5iB,KAAK,EAAEqR,IAAI,EAAE0R,QAAQ,EAAE;AAEpE,EAAA,IAAIN,WAAW,CAAA;AAEf,EAAA,OAAOM,QAAQ,EAAE;AAEf;IACA,IAAI/iB,KAAK,CAAC2d,YAAY,EAAE;AACtB,MAAA,MAAA;AACF,KAAA;IAEA8E,WAAW,GAAG,IAAI,CAACO,eAAe,CAAChjB,KAAK,EAAEqR,IAAI,EAAE0R,QAAQ,CAAC,CAAA;IAEzDA,QAAQ,GAAGA,QAAQ,CAACtG,IAAI,CAAA;AAC1B,GAAA;AAEA,EAAA,OAAOgG,WAAW,CAAA;AACpB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAnB,QAAQ,CAAC1F,SAAS,CAACoH,eAAe,GAAG,UAAShjB,KAAK,EAAEqR,IAAI,EAAE0R,QAAQ,EAAE;AAEnE,EAAA,IAAIN,WAAW,CAAA;AAEf,EAAA,IAAIM,QAAQ,CAACpB,QAAQ,CAACQ,QAAQ,EAAE;AAC9B,IAAA,OAAOM,WAAW,CAAA;AACpB,GAAA;EAEA,IAAI;AAEF;IACAA,WAAW,GAAGQ,cAAc,CAACF,QAAQ,CAACpB,QAAQ,EAAEtQ,IAAI,CAAC,CAAA;;AAErD;IACA,IAAIoR,WAAW,KAAKr+B,SAAS,EAAE;MAC7B4b,KAAK,CAACyiB,WAAW,GAAGA,WAAW,CAAA;MAC/BziB,KAAK,CAACmO,eAAe,EAAE,CAAA;AACzB,KAAA;;AAEA;IACA,IAAIsU,WAAW,KAAK,KAAK,EAAE;MACzBziB,KAAK,CAACtC,cAAc,EAAE,CAAA;AACxB,KAAA;GACD,CAAC,OAAOhd,KAAK,EAAE;AACd,IAAA,IAAI,CAAC,IAAI,CAACoiC,WAAW,CAACpiC,KAAK,CAAC,EAAE;AAC5BwiC,MAAAA,OAAO,CAACxiC,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC,CAAA;AAEzD,MAAA,MAAMA,KAAK,CAAA;AACb,KAAA;AACF,GAAA;AAEA,EAAA,OAAO+hC,WAAW,CAAA;AACpB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAnB,QAAQ,CAAC1F,SAAS,CAACoG,YAAY,GAAG,UAAShiB,KAAK,EAAEmjB,WAAW,EAAE;AAE7D,EAAA,IAAIJ,QAAQ,GAAG,IAAI,CAACK,aAAa,CAACpjB,KAAK,CAAC;IACpCqjB,gBAAgB,CAAA;;AAEpB;EACA,IAAI,CAACN,QAAQ,EAAE;AACb,IAAA,IAAI,CAACO,aAAa,CAACtjB,KAAK,EAAEmjB,WAAW,CAAC,CAAA;AAEtC,IAAA,OAAA;AACF,GAAA;;AAEA;AACA;AACA,EAAA,OAAOJ,QAAQ,EAAE;AAEf,IAAA,IAAIA,QAAQ,CAACrB,QAAQ,GAAGyB,WAAW,CAACzB,QAAQ,EAAE;MAE5CyB,WAAW,CAAC1G,IAAI,GAAGsG,QAAQ,CAAA;AAE3B,MAAA,IAAIM,gBAAgB,EAAE;QACpBA,gBAAgB,CAAC5G,IAAI,GAAG0G,WAAW,CAAA;AACrC,OAAC,MAAM;AACL,QAAA,IAAI,CAACG,aAAa,CAACtjB,KAAK,EAAEmjB,WAAW,CAAC,CAAA;AACxC,OAAA;AAEA,MAAA,OAAA;AACF,KAAA;AAEAE,IAAAA,gBAAgB,GAAGN,QAAQ,CAAA;IAC3BA,QAAQ,GAAGA,QAAQ,CAACtG,IAAI,CAAA;AAC1B,GAAA;;AAEA;EACA4G,gBAAgB,CAAC5G,IAAI,GAAG0G,WAAW,CAAA;AACrC,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA7B,QAAQ,CAAC1F,SAAS,CAACwH,aAAa,GAAG,UAAShnC,IAAI,EAAE;AAChD,EAAA,OAAO,IAAI,CAACmlC,UAAU,CAACnlC,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACAklC,QAAQ,CAAC1F,SAAS,CAAC0H,aAAa,GAAG,UAASlnC,IAAI,EAAE2mC,QAAQ,EAAE;AAC1D,EAAA,IAAI,CAACxB,UAAU,CAACnlC,IAAI,CAAC,GAAG2mC,QAAQ,CAAA;AAClC,CAAC,CAAA;AAEDzB,QAAQ,CAAC1F,SAAS,CAAC0G,eAAe,GAAG,UAAStiB,KAAK,EAAE2hB,QAAQ,EAAE;AAE7D,EAAA,IAAIoB,QAAQ,GAAG,IAAI,CAACK,aAAa,CAACpjB,KAAK,CAAC;IACpCujB,YAAY;IACZF,gBAAgB;IAChBG,gBAAgB,CAAA;EAEpB,IAAI,CAAC7B,QAAQ,EAAE;AAEb;AACA,IAAA,IAAI,CAAC2B,aAAa,CAACtjB,KAAK,EAAE,IAAI,CAAC,CAAA;AAE/B,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,OAAO+iB,QAAQ,EAAE;IAEfQ,YAAY,GAAGR,QAAQ,CAACtG,IAAI,CAAA;IAE5B+G,gBAAgB,GAAGT,QAAQ,CAACpB,QAAQ,CAAA;IAEpC,IAAI6B,gBAAgB,KAAK7B,QAAQ,IAAI6B,gBAAgB,CAACpC,MAAM,CAAC,KAAKO,QAAQ,EAAE;AAC1E,MAAA,IAAI0B,gBAAgB,EAAE;QACpBA,gBAAgB,CAAC5G,IAAI,GAAG8G,YAAY,CAAA;AACtC,OAAC,MAAM;AAEL;AACA,QAAA,IAAI,CAACD,aAAa,CAACtjB,KAAK,EAAEujB,YAAY,CAAC,CAAA;AACzC,OAAA;AACF,KAAA;AAEAF,IAAAA,gBAAgB,GAAGN,QAAQ,CAAA;AAC3BA,IAAAA,QAAQ,GAAGQ,YAAY,CAAA;AACzB,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;AACA,SAAShB,aAAaA,GAAG,EAAE;AAE3BA,aAAa,CAAC3G,SAAS,CAACzN,eAAe,GAAG,YAAW;EACnD,IAAI,CAACwP,YAAY,GAAG,IAAI,CAAA;AAC1B,CAAC,CAAA;AAED4E,aAAa,CAAC3G,SAAS,CAACle,cAAc,GAAG,YAAW;EAClD,IAAI,CAACmlB,gBAAgB,GAAG,IAAI,CAAA;AAC9B,CAAC,CAAA;AAEDN,aAAa,CAAC3G,SAAS,CAACn3B,IAAI,GAAG,UAAShE,IAAI,EAAE;AAC5C4rB,EAAAA,MAAM,CAAC,IAAI,EAAE5rB,IAAI,IAAI,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwiC,cAAcA,CAACj6B,EAAE,EAAEqoB,IAAI,EAAE;AAChC,EAAA,OAAOroB,EAAE,CAACo5B,KAAK,CAAC,IAAI,EAAE/Q,IAAI,CAAC,CAAA;AAC7B;;AChkBA,MAAMoS,aAAa,GAAG,sIAAsI,CAAA;AAC5J,MAAMC,aAAa,GAAG,wmCAAwmC,CAAA;AAE9nC,MAAMC,wBAAwB,GAAG,CAC/B,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,CACZ,CAAA;AAEc,MAAMC,SAAS,CAAC;AAE7B9jC,EAAAA,WAAWA,CAAC4L,kBAAkB,EAAElC,gBAAgB,EAAEsO,IAAI,EAAE;IACtD,IAAI,CAAC+rB,mBAAmB,GAAGn4B,kBAAkB,CAAA;IAC7C,IAAI,CAACo4B,iBAAiB,GAAGt6B,gBAAgB,CAAA;IACzC,IAAI,CAACk1B,KAAK,GAAG5mB,IAAI,CAAA;AACnB,GAAA;AAEA+mB,EAAAA,aAAaA,CAAC76B,KAAK,EAAE9D,KAAK,EAAE;IAE1B,MAAM;MAAElB,IAAI;AAAEoP,MAAAA,QAAAA;AAAS,KAAC,GAAGpK,KAAK,CAAA;IAEhC,IAAIiB,MAAM,GAAG,EAAE,CAAA;IAEf,IAAIjG,IAAI,KAAK,QAAQ,EAAE;MAErB,MAAM;QAAE0qB,aAAa;AAAEW,QAAAA,SAAAA;AAAU,OAAC,GAAGrmB,KAAK,CAAA;MAE1C,IAAI9D,KAAK,KAAK,KAAK,EAAE;AAEnB+E,QAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,wBAAwB,CACzB,CAAA;OAEF,MACI,IAAI/E,KAAK,EAAE;QAEd,IAAIwpB,aAAa,IAAI,CAAC,IAAIX,aAAa,CAAC7oB,KAAK,CAAC,GAAGwpB,aAAa,EAAE;UAC9DzkB,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,uBAAuB,IACtBykB,aAAa,KAAK,CAAC,GAChB,eAAe,GACd,CAAeA,aAAAA,EAAAA,aAAc,CAAgBA,cAAAA,EAAAA,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG,EAAG,CAAC,CAAA,CAC/E,GAAG,GAAG,CACR,CAAA;AACH,SAAA;AAEA,QAAA,IAAIW,SAAS,EAAE;AAEb,UAAA,MAAM0Z,QAAQ,GAAG7a,GAAG,CAAChpB,KAAK,CAAC,CAAA;AAC3B,UAAA,MAAM8jC,YAAY,GAAG9a,GAAG,CAACmB,SAAS,CAAC,CAAA;AAEnC,UAAA,MAAMlsB,MAAM,GAAG4lC,QAAQ,CAAC3Y,GAAG,CAAC4Y,YAAY,CAAC,CAAA;UAEzC,IAAI7lC,MAAM,CAACotB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,MAAMhC,aAAa,GAAGwa,QAAQ,CAAC5Y,KAAK,CAAChtB,MAAM,CAAC,CAAA;AAC5C,YAAA,MAAM8lC,SAAS,GAAG1a,aAAa,CAAC8B,IAAI,CAAC2Y,YAAY,CAAC,CAAA;YAElD/+B,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,iEAAgEskB,aAAc,CAAA,KAAA,EAAO0a,SAAU,CAAA,CAAA,CAAE,CACnG,CAAA;AACH,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;IAEA,IAAI,CAAC71B,QAAQ,EAAE;AACb,MAAA,OAAOnJ,MAAM,CAAA;AACf,KAAA;AAEA,IAAA,MAAMi/B,mBAAmB,GAAGC,kBAAkB,CAC5C/1B,QAAQ,EACR,IAAI,CAACy1B,mBAAmB,EACxB,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACpF,KACP,CAAC,CAAA;AAED,IAAA,IAAIwF,mBAAmB,CAACE,OAAO,IAAIlkC,KAAK,IAAI,CAAC,IAAImkC,MAAM,CAACH,mBAAmB,CAACE,OAAO,CAAC,CAACrjC,IAAI,CAACb,KAAK,CAAC,EAAE;MAChG+E,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,4BAA4Bi/B,mBAAmB,CAACE,OAAS,CAAA,CAAA,CAAE,CAC7D,CAAA;AACH,KAAA;IAEA,IAAIF,mBAAmB,CAACx8B,QAAQ,EAAE;MAChC,MAAM48B,mBAAmB,GAAGtlC,IAAI,KAAK,UAAU,IAAIkB,KAAK,KAAK,KAAK,CAAA;MAClE,MAAMqkC,YAAY,GAAGn1B,KAAK,CAAClP,KAAK,CAAC,IAAIA,KAAK,KAAK,EAAE,CAAA;AACjD,MAAA,MAAMskC,kBAAkB,GAAG7nC,KAAK,CAAC+T,OAAO,CAACxQ,KAAK,CAAC,IAAIA,KAAK,CAACzD,MAAM,KAAK,CAAC,CAAA;AAErE,MAAA,IAAI6nC,mBAAmB,IAAIC,YAAY,IAAIC,kBAAkB,EAAE;AAC7Dv/B,QAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,oBAAoB,CACrB,CAAA;AACH,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,KAAK,IAAIi/B,mBAAmB,KAAKhkC,KAAK,IAAIA,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,GAAGgkC,mBAAmB,CAAC1kB,GAAG,EAAE;MAC7Fva,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,oCAAoCi/B,mBAAmB,CAAC1kB,GAAK,CAAA,CAAA,CAAE,CACjE,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,KAAK,IAAI0kB,mBAAmB,KAAKhkC,KAAK,IAAIA,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,GAAGgkC,mBAAmB,CAACzkB,GAAG,EAAE;MAC7Fxa,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,oCAAoCi/B,mBAAmB,CAACzkB,GAAK,CAAA,CAAA,CAAE,CACjE,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,WAAW,IAAIykB,mBAAmB,IAAIhkC,KAAK,IAAIA,KAAK,CAACsnB,IAAI,EAAE,CAAC/qB,MAAM,GAAGynC,mBAAmB,CAACO,SAAS,EAAE;MACtGx/B,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,qCAAqCi/B,mBAAmB,CAACO,SAAW,CAAA,CAAA,CAAE,CACxE,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,WAAW,IAAIP,mBAAmB,IAAIhkC,KAAK,IAAIA,KAAK,CAACsnB,IAAI,EAAE,CAAC/qB,MAAM,GAAGynC,mBAAmB,CAACQ,SAAS,EAAE;MACtGz/B,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,qCAAqCi/B,mBAAmB,CAACQ,SAAW,CAAA,CAAA,CAAE,CACxE,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,gBAAgB,IAAIR,mBAAmB,IAAIhkC,KAAK,IAAIgkC,mBAAmB,CAACS,cAAc,KAAK,OAAO,IAAI,CAACjB,aAAa,CAAC3iC,IAAI,CAACb,KAAK,CAAC,EAAE;AACpI+E,MAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,0EAA0E,CAC3E,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,gBAAgB,IAAIi/B,mBAAmB,IAAIhkC,KAAK,IAAIgkC,mBAAmB,CAACS,cAAc,KAAK,OAAO,IAAI,CAAClB,aAAa,CAAC1iC,IAAI,CAACb,KAAK,CAAC,EAAE;AACpI+E,MAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,8BAA8B,CAC/B,CAAA;AACH,KAAA;AAEA,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AACF,CAAA;AAEA2+B,SAAS,CAAChjC,OAAO,GAAG,CAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,CAAE,CAAA;;AAGxE;;AAEA;AACA;AACA;AACA,SAASujC,kBAAkBA,CAAC/1B,QAAQ,EAAE1C,kBAAkB,EAAElC,gBAAgB,EAAEsO,IAAI,EAAE;AAEhF,EAAA,MAAM8sB,iBAAiB,GAAG;IAAE,GAAGx2B,QAAAA;GAAU,CAAA;AAEzCu1B,EAAAA,wBAAwB,CAAC99B,OAAO,CAACkyB,QAAQ,IAAI;AAC3C,IAAA,MAAMnwB,IAAI,GAAGmwB,QAAQ,CAAClwB,KAAK,CAAC,GAAG,CAAC,CAAA;AAEhC,IAAA,MAAM3H,KAAK,GAAGiE,GAAG,CAACygC,iBAAiB,EAAEh9B,IAAI,CAAC,CAAA;;AAE1C;IACA,IAAI,CAAC8D,kBAAkB,IAAI,CAACA,kBAAkB,CAACzL,YAAY,CAACC,KAAK,CAAC,EAAE;AAClE,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;IAEA,MAAM;MAAE0L,WAAW;AAAEnL,MAAAA,IAAAA;AAAK,KAAC,GAAGqX,IAAI,CAACjM,SAAS,EAAE,CAAA;AAE9C,IAAA,MAAMC,OAAO,GAAGtC,gBAAgB,GAAGA,gBAAgB,CAACuC,eAAe,CAACtL,IAAI,EAAEA,IAAI,CAAC,GAAGA,IAAI,CAAA;AACtF,IAAA,MAAMokC,YAAY,GAAG;AAAE,MAAA,GAAGj5B,WAAW;MAAE,GAAGE,OAAAA;KAAS,CAAA;IAEnD,MAAMg5B,cAAc,GAAGp5B,kBAAkB,CAAClL,QAAQ,CAACN,KAAK,EAAE2kC,YAAY,CAAC,CAAA;;AAEvE;AACA,IAAA,IAAIC,cAAc,EAAE;AAClBphB,MAAAA,GAAG,CAACkhB,iBAAiB,EAAEh9B,IAAI,EAAEk9B,cAAc,CAAC,CAAA;AAC9C,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,iBAAiB,CAAA;AAC1B;;ACxLe,MAAMG,QAAQ,CAAC;AAE5B;AACF;AACA;AACA;AACA;AACA;AACA;EACEjlC,WAAWA,CAAC+Z,iBAAiB,EAAEhC,YAAY,EAAEmtB,YAAY,EAAEprB,YAAY,EAAE;IACvE,IAAI,CAAC+e,kBAAkB,GAAG9e,iBAAiB,CAAA;IAC3C,IAAI,CAAC+e,aAAa,GAAG/gB,YAAY,CAAA;IACjC,IAAI,CAACotB,aAAa,GAAGD,YAAY,CAAA;IACjC,IAAI,CAACE,aAAa,GAAGtrB,YAAY,CAAA;AACnC,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEurB,YAAYA,CAACxgB,MAAM,EAAE;AAEnB;IACA,MAAMygB,QAAQ,GAAG,EAAE,CAAA;IAEnB,IAAI;MACF,IAAI,CAACC,QAAQ,EAAE,CAAA;MACf,MAAMC,cAAc,GAAG,IAAI,CAACC,eAAe,CAAC/8B,KAAK,CAACmc,MAAM,CAAC,CAAC,CAAA;MAC1D,IAAI,CAACugB,aAAa,CAACM,eAAe,CAACh9B,KAAK,CAAC88B,cAAc,CAAC,CAAC,CAAA;MAEzD,OAAO;AACL3gB,QAAAA,MAAM,EAAE2gB,cAAc;AACtBF,QAAAA,QAAAA;OACD,CAAA;KACF,CAAC,OAAO1jC,GAAG,EAAE;MACZ,IAAI,CAAC2jC,QAAQ,EAAE,CAAA;MACf3jC,GAAG,CAAC0jC,QAAQ,GAAGA,QAAQ,CAAA;AACvB,MAAA,MAAM1jC,GAAG,CAAA;AACX,KAAA;AACF,GAAA;AAEA2jC,EAAAA,QAAQA,GAAG;AACT,IAAA,IAAI,CAACH,aAAa,CAACvJ,KAAK,EAAE,CAAA;AAC1B,IAAA,IAAI,CAAChD,kBAAkB,CAACgD,KAAK,EAAE,CAAA;AAC/B,IAAA,IAAI,CAAC/C,aAAa,CAAC+C,KAAK,EAAE,CAAA;AAC5B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACE4J,EAAAA,eAAeA,CAACE,UAAU,EAAE/rB,QAAQ,EAAEnc,KAAK,EAAE;IAC3C,MAAM;AACJ0L,MAAAA,UAAAA;AACF,KAAC,GAAGw8B,UAAU,CAAA;IAEd,IAAInmC,MAAM,EAAEsI,IAAI,CAAA;AAEhB,IAAA,IAAI8R,QAAQ,EAAE;MACZpa,MAAM,GAAG,IAAI,CAACq5B,kBAAkB,CAACx0B,GAAG,CAACuV,QAAQ,CAAC,CAAA;AAChD,KAAA;;AAEA;AACA9R,IAAAA,IAAI,GAAGtI,MAAM,GAAG,CAAE,GAAGA,MAAM,CAACgc,KAAK,EAAE,YAAY,EAAE/d,KAAK,CAAE,GAAG,EAAE,CAAA;AAE7D,IAAA,MAAMyG,KAAK,GAAG,IAAI,CAACihC,aAAa,CAACz+B,MAAM,CAAC;AACtC,MAAA,GAAGi/B,UAAU;AACbnqB,MAAAA,KAAK,EAAE1T,IAAI;AACX6wB,MAAAA,OAAO,EAAE/e,QAAAA;KACV,EAAE,KAAK,CAAC,CAAA;AAET,IAAA,IAAI,CAACif,kBAAkB,CAACp6B,GAAG,CAACyF,KAAK,CAAC,CAAA;AAElC,IAAA,IAAIiF,UAAU,EAAE;AACdjF,MAAAA,KAAK,CAACiF,UAAU,GAAG,IAAI,CAACy8B,gBAAgB,CAACz8B,UAAU,EAAEjF,KAAK,CAAC0B,EAAE,CAAC,CAAA;AAChE,KAAA;AAEA,IAAA,OAAO1B,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACE0hC,EAAAA,gBAAgBA,CAACz8B,UAAU,EAAEyQ,QAAQ,EAAE;IACrC,OAAOzQ,UAAU,CAAC7K,GAAG,CAAC,CAAC8K,SAAS,EAAE3L,KAAK,KAAK;MAC1C,OAAO,IAAI,CAACgoC,eAAe,CAACr8B,SAAS,EAAEwQ,QAAQ,EAAEnc,KAAK,CAAC,CAAA;AACzD,KAAC,CAAC,CAAA;AACJ,GAAA;AAEF,CAAA;AAEAwnC,QAAQ,CAACnkC,OAAO,GAAG,CAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAE;;AC7G3E,MAAM+kC,YAAY,CAAC;AAEhC;AACF;AACA;AACA;AACA;AACA;AACE7lC,EAAAA,WAAWA,CAAC+Z,iBAAiB,EAAEhC,YAAY,EAAEF,UAAU,EAAE;IACvD,IAAI,CAACghB,kBAAkB,GAAG9e,iBAAiB,CAAA;IAC3C,IAAI,CAAC+e,aAAa,GAAG/gB,YAAY,CAAA;IACjC,IAAI,CAACyf,WAAW,GAAG3f,UAAU,CAAA;AAC/B,GAAA;AAEAnR,EAAAA,MAAMA,CAACo/B,KAAK,EAAEC,aAAa,GAAG,IAAI,EAAE;IAElC,MAAM;MACJngC,EAAE;MACF1G,IAAI;MACJ8I,GAAG;MACHF,IAAI;AACJ6wB,MAAAA,OAAAA;AACF,KAAC,GAAGmN,KAAK,CAAA;IAET,MAAME,eAAe,GAAG,IAAI,CAACxO,WAAW,CAACnzB,GAAG,CAACnF,IAAI,CAAC,CAAA;IAElD,IAAI,CAAC8mC,eAAe,EAAE;AACpB,MAAA,MAAM,IAAIvlC,KAAK,CAAE,CAAuBvB,oBAAAA,EAAAA,IAAM,iBAAgB,CAAC,CAAA;AACjE,KAAA;IAEA,MAAM;AAAEqH,MAAAA,MAAAA;AAAO,KAAC,GAAGy/B,eAAe,CAAA;IAElC,IAAI,CAACz/B,MAAM,EAAE;AACX,MAAA,MAAM,IAAI9F,KAAK,CAAE,CAAuBvB,oBAAAA,EAAAA,IAAM,iBAAgB,CAAC,CAAA;AACjE,KAAA;AAEA,IAAA,IAAI0G,EAAE,IAAI,IAAI,CAACizB,kBAAkB,CAACoN,IAAI,CAACC,QAAQ,CAACtgC,EAAE,CAAC,EAAE;AACnD,MAAA,MAAM,IAAInF,KAAK,CAAE,CAAuBmF,oBAAAA,EAAAA,EAAI,kBAAiB,CAAC,CAAA;AAChE,KAAA;;AAEA;;IAEA,MAAMpG,MAAM,GAAGm5B,OAAO,IAAI,IAAI,CAACE,kBAAkB,CAACx0B,GAAG,CAACs0B,OAAO,CAAC,CAAA;AAC9D,IAAA,MAAMwN,UAAU,GAAG3mC,MAAM,IAAI,IAAI,CAACs5B,aAAa,CAAC3gB,YAAY,CAAC3Y,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1E,MAAM4mC,gBAAgB,GAAG7N,eAAe,CAACI,OAAO,EAAE,IAAI,CAACE,kBAAkB,CAAC,CAAA;IAE1E,IAAItyB,MAAM,CAACC,KAAK,IAAIwB,GAAG,IAAI,CAAC,IAAI,CAAC8wB,aAAa,CAACuN,YAAY,CAAC,CAAE,GAAGF,UAAU,EAAE,GAAGn+B,GAAG,CAACD,KAAK,CAAC,GAAG,CAAC,CAAE,EAC9F;AACE4xB,MAAAA,QAAQ,EAAE,IAAI;AACdyM,MAAAA,gBAAAA;AACF,KAAC,CAAC,EACF;AACA,MAAA,MAAM,IAAI3lC,KAAK,CAAE,CAAiB,cAAA,EAAA,CAAE,GAAG0lC,UAAU,EAAEn+B,GAAG,CAAE,CAAC6M,IAAI,CAAC,GAAG,CAAG,sBAAqB,CAAC,CAAA;AAC5F,KAAA;IAEA,IAAItO,MAAM,CAACof,MAAM,IAAI7d,IAAI,IAAI,CAAC,IAAI,CAACgxB,aAAa,CAACuN,YAAY,CAAC,CAAE,GAAGF,UAAU,EAAE,GAAGr+B,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAAE,EACjG;MACE6xB,YAAY,EAAErzB,MAAM,CAACqoB,UAAU;AAC/BwX,MAAAA,gBAAAA;AACF,KAAC,CAAC,EACF;MACA,MAAM,IAAI3lC,KAAK,CAAE,CAAA,cAAA,EAAiB,CAAE,GAAG0lC,UAAU,EAAE,GAAGr+B,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAC8M,IAAI,CAAC,GAAG,CAAG,CAAA,oBAAA,CAAqB,CAAC,CAAA;AAC3G,KAAA;AAEA,IAAA,MAAMyxB,UAAU,GAAGP,aAAa,IAAIx/B,MAAM,CAACvC,KAAK,GAAG;MACjDA,KAAK,EAAEuC,MAAM,CAACvC,KAAAA;KACf,GAAG,EAAE,CAAA;AAEN,IAAA,MAAME,KAAK,GAAGqC,MAAM,CAACG,MAAM,CAAC;AAC1B,MAAA,GAAG4/B,UAAU;MACb,GAAGR,KAAAA;AACL,KAAC,CAAC,CAAA;AAEF,IAAA,IAAI,CAACS,SAAS,CAACriC,KAAK,CAAC,CAAA;IAErB,IAAIqC,MAAM,CAACC,KAAK,EAAE;AAChB,MAAA,IAAI,CAACggC,UAAU,CAACtiC,KAAK,CAAC,CAAA;AACtB,MAAA,IAAI,CAAC40B,aAAa,CAAC2N,SAAS,CAAC,IAAI,CAAC3N,aAAa,CAAC3gB,YAAY,CAACjU,KAAK,CAAC,EAAE;AAAEy1B,QAAAA,QAAQ,EAAE,IAAI;QAAE+M,SAAS,EAAExiC,KAAK,CAAC0B,EAAE;AAAEwgC,QAAAA,gBAAgB,EAAE7N,eAAe,CAACI,OAAO,EAAE,IAAI,CAACE,kBAAkB,CAAA;AAAE,OAAC,CAAC,CAAA;AACpL,KAAA;IAEA,IAAItyB,MAAM,CAACof,MAAM,EAAE;MACjB,IAAIpf,MAAM,CAACqoB,UAAU,EAAE;AACrB,QAAA,IAAI,CAAC+X,mBAAmB,CAACziC,KAAK,CAAC,CAAA;AACjC,OAAA;MAEA,IAAIA,KAAK,CAAC4D,IAAI,EAAE;AACd,QAAA,IAAI,CAACgxB,aAAa,CAAC2N,SAAS,CAAC,IAAI,CAAC3N,aAAa,CAAC3gB,YAAY,CAACjU,KAAK,CAAC,EAAE;UAAE01B,YAAY,EAAErzB,MAAM,CAACqoB,UAAU;UAAE8X,SAAS,EAAExiC,KAAK,CAAC0B,EAAE;AAAEwgC,UAAAA,gBAAgB,EAAE7N,eAAe,CAACI,OAAO,EAAE,IAAI,CAACE,kBAAkB,CAAA;AAAE,SAAC,CAAC,CAAA;AACrM,OAAA;AACF,KAAA;AAEA,IAAA,OAAO30B,KAAK,CAAA;AACd,GAAA;EAEAqiC,SAASA,CAACriC,KAAK,EAAE;IAEf,IAAIA,KAAK,CAAC0B,EAAE,EAAE;AACZ,MAAA,IAAI,CAACizB,kBAAkB,CAACoN,IAAI,CAACW,KAAK,CAAC1iC,KAAK,CAAC0B,EAAE,EAAE1B,KAAK,CAAC,CAAA;AAEnD,MAAA,OAAA;AACF,KAAA;IAEA,IAAIW,MAAM,GAAG,OAAO,CAAA;AAEpB,IAAA,IAAIX,KAAK,CAAChF,IAAI,KAAK,SAAS,EAAE;AAC5B2F,MAAAA,MAAM,GAAG,MAAM,CAAA;AACjB,KAAA;AAEAX,IAAAA,KAAK,CAAC0B,EAAE,GAAG,IAAI,CAACizB,kBAAkB,CAACoN,IAAI,CAACY,YAAY,CAAE,CAAEhiC,EAAAA,MAAO,CAAE,CAAA,CAAA,EAAEX,KAAK,CAAC,CAAA;AAC3E,GAAA;EAEAsiC,UAAUA,CAACtiC,KAAK,EAAE;AAChB,IAAA,IAAI,CAACA,KAAK,CAAC8D,GAAG,EAAE;MACd9D,KAAK,CAAC8D,GAAG,GAAG,IAAI,CAAC8+B,iBAAiB,CAAC5iC,KAAK,CAAC,CAAA;AAC3C,KAAA;AACF,GAAA;EAEAyiC,mBAAmBA,CAACziC,KAAK,EAAE;AACzB,IAAA,IAAI,CAACA,KAAK,CAAC4D,IAAI,EAAE;MACf5D,KAAK,CAAC4D,IAAI,GAAG,IAAI,CAACg/B,iBAAiB,CAAC5iC,KAAK,CAAC,CAAA;AAC5C,KAAA;AACF,GAAA;EAEA4iC,iBAAiBA,CAAC5iC,KAAK,EAAE;AAEvB,IAAA,IAAI6iC,MAAM,CAAA;IACV,MAAMvnC,MAAM,GAAG,IAAI,CAACq5B,kBAAkB,CAACx0B,GAAG,CAACH,KAAK,CAACy0B,OAAO,CAAC,CAAA;;AAEzD;IACA,GAAG;AACDoO,MAAAA,MAAM,GAAG50B,IAAI,CAAC40B,MAAM,EAAE,CAACjxB,QAAQ,CAAC,EAAE,CAAC,CAACkxB,SAAS,CAAC,CAAC,CAAC,CAAA;AAClD,KAAC,QAAQxnC,MAAM,IAAIA,MAAM,CAAC2J,UAAU,CAAC3K,IAAI,CAACpB,KAAK,IAAIA,KAAK,CAAC4K,GAAG,KAAK++B,MAAM,CAAC,EAAA;AAExE,IAAA,OAAQ,GAAE7iC,KAAK,CAAChF,IAAK,CAAA,CAAA,EAAG6nC,MAAO,CAAC,CAAA,CAAA;AAClC,GAAA;AAEF,CAAA;AAGAlB,YAAY,CAAC/kC,OAAO,GAAG,CACrB,mBAAmB,EACnB,cAAc,EACd,YAAY,CACb;;AC7ID;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAMmmC,YAAY,CAAC;AAChCjnC,EAAAA,WAAWA,CAAC+Z,iBAAiB,EAAElC,UAAU,EAAEpT,QAAQ,EAAE;IACnD,IAAI,CAACo0B,kBAAkB,GAAG9e,iBAAiB,CAAA;IAC3C,IAAI,CAACyd,WAAW,GAAG3f,UAAU,CAAA;IAC7B,IAAI,CAAC6jB,SAAS,GAAGj3B,QAAQ,CAAA;IACzB,IAAI,CAACyiC,UAAU,GAAG,EAAE,CAAA;AACtB,GAAA;AAEAb,EAAAA,YAAYA,CAACv+B,IAAI,EAAEpM,OAAO,GAAG,EAAE,EAAE;IAE/B,MAAM;AACJi+B,MAAAA,QAAQ,GAAG,KAAK;AAChBC,MAAAA,YAAY,GAAG,KAAK;AACpBuN,MAAAA,iBAAiB,GAAG,KAAK;AACzBT,MAAAA,SAAS,GAAG,IAAI;AAChBN,MAAAA,gBAAgB,GAAG,EAAA;AACrB,KAAC,GAAG1qC,OAAO,CAAA;AAEX,IAAA,IAAIW,IAAI,GAAG;MAAEY,QAAQ,EAAE,IAAI,CAACiqC,UAAAA;KAAY,CAAA;;AAExC;AACA;AACA,IAAA,KAAK,MAAME,OAAO,IAAIt/B,IAAI,EAAE;AAE1BzL,MAAAA,IAAI,GAAGgrC,eAAe,CAAChrC,IAAI,EAAE+qC,OAAO,CAAC,CAAA;MAErC,IAAI,CAAC/qC,IAAI,EAAE;AACT,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAEA,MAAA,IAAIA,IAAI,CAACu9B,YAAY,IAAI,CAACuN,iBAAiB,EAAE;AAE3C,QAAA,IAAI,EAAET,SAAS,IAAIN,gBAAgB,CAACzpC,MAAM,CAAC,EAAE;AAC3C,UAAA,MAAM,IAAI8D,KAAK,CAAC,iGAAiG,CAAC,CAAA;AACpH,SAAA;QAEA,MAAM6mC,kBAAkB,GACtBlB,gBAAgB,CAACvqC,QAAQ,CAACQ,IAAI,CAACkrC,UAAU,CAAC,IAC1Cb,SAAS,IAAInO,eAAe,CAACmO,SAAS,EAAE,IAAI,CAAC7N,kBAAkB,CAAC,CAACh9B,QAAQ,CAACQ,IAAI,CAACkrC,UAAU,CAAC,CAAA;QAE5F,IAAI,CAACD,kBAAkB,EAAE;AACvB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACF,OAAA;AAEA,MAAA,IAAIjrC,IAAI,CAACY,QAAQ,KAAK,IAAI,EAAE;AAC1B,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AAEF,KAAA;;AAEA;AACA,IAAA,OAAO,EAAE08B,QAAQ,IAAIC,YAAY,CAAC,CAAA;AACpC,GAAA;AAEA6M,EAAAA,SAASA,CAAC3+B,IAAI,EAAEpM,OAAO,GAAG,EAAE,EAAE;IAE5B,MAAM;AACJi+B,MAAAA,QAAQ,GAAG,KAAK;AAChBC,MAAAA,YAAY,GAAG,KAAK;AACpB8M,MAAAA,SAAS,GAAG,IAAI;AAChBN,MAAAA,gBAAgB,GAAG,EAAA;AACrB,KAAC,GAAG1qC,OAAO,CAAA;AAEX,IAAA,IAAI,CAAC,IAAI,CAAC2qC,YAAY,CAACv+B,IAAI,EAAE;MAAE6xB,QAAQ;MAAEC,YAAY;MAAE8M,SAAS;AAAEN,MAAAA,gBAAAA;AAAiB,KAAC,CAAC,EAAE;MACrF,MAAM,IAAI3lC,KAAK,CAAE,CAAsBqH,mBAAAA,EAAAA,IAAI,CAAC+M,IAAI,CAAC,GAAG,CAAG,CAAA,CAAA,CAAE,CAAC,CAAA;AAC5D,KAAA;AAEA,IAAA,IAAIxY,IAAI,GAAG;MAAEY,QAAQ,EAAE,IAAI,CAACiqC,UAAAA;KAAY,CAAA;AAExC,IAAA,KAAK,MAAME,OAAO,IAAIt/B,IAAI,EAAE;AAE1B,MAAA,IAAI1K,KAAK,GAAGiqC,eAAe,CAAChrC,IAAI,EAAE+qC,OAAO,CAAC,CAAA;MAE1C,IAAI,CAAChqC,KAAK,EAAE;AACVA,QAAAA,KAAK,GAAG;UAAEgqC,OAAO;AAAEI,UAAAA,UAAU,EAAE,CAAC;AAAEvqC,UAAAA,QAAQ,EAAE,EAAA;SAAI,CAAA;AAChDZ,QAAAA,IAAI,CAACY,QAAQ,CAAC0B,IAAI,CAACvB,KAAK,CAAC,CAAA;AAC3B,OAAC,MACI;QACHA,KAAK,CAACoqC,UAAU,EAAE,CAAA;AACpB,OAAA;AAEAnrC,MAAAA,IAAI,GAAGe,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,IAAIu8B,QAAQ,EAAE;MACZt9B,IAAI,CAACY,QAAQ,GAAG,IAAI,CAAA;AACtB,KAAA;;AAEA;AACA,IAAA,IAAI28B,YAAY,EAAE;MAChBv9B,IAAI,CAACu9B,YAAY,GAAG,IAAI,CAAA;MACxBv9B,IAAI,CAACkrC,UAAU,GAAGb,SAAS,CAAA;AAC7B,KAAA;AAEF,GAAA;EAEAe,WAAWA,CAAC3/B,IAAI,EAAE;AAEhB;AACA,IAAA,IAAIzL,IAAI,GAAG;MAAEY,QAAQ,EAAE,IAAI,CAACiqC,UAAAA;KAAY,CAAA;AACxC,IAAA,KAAK,MAAME,OAAO,IAAIt/B,IAAI,EAAE;AAC1B,MAAA,MAAM1K,KAAK,GAAGiqC,eAAe,CAAChrC,IAAI,EAAE+qC,OAAO,CAAC,CAAA;MAC5C,IAAI,CAAChqC,KAAK,EAAE;QACV,MAAM,IAAIqD,KAAK,CAAE,CAA2BqH,wBAAAA,EAAAA,IAAI,CAAC+M,IAAI,CAAC,GAAG,CAAG,CAAA,CAAA,CAAE,CAAC,CAAA;AACjE,OAAA;AACAxY,MAAAA,IAAI,GAAGe,KAAK,CAAA;AACd,KAAA;;AAEA;AACAf,IAAAA,IAAI,GAAG;MAAEY,QAAQ,EAAE,IAAI,CAACiqC,UAAAA;KAAY,CAAA;AACpC,IAAA,KAAK,MAAME,OAAO,IAAIt/B,IAAI,EAAE;AAC1B,MAAA,MAAM1K,KAAK,GAAGiqC,eAAe,CAAChrC,IAAI,EAAE+qC,OAAO,CAAC,CAAA;MAE5ChqC,KAAK,CAACoqC,UAAU,EAAE,CAAA;AAElB,MAAA,IAAIpqC,KAAK,CAACoqC,UAAU,KAAK,CAAC,EAAE;AAC1BnrC,QAAAA,IAAI,CAACY,QAAQ,CAACuhC,MAAM,CAACniC,IAAI,CAACY,QAAQ,CAACgtB,OAAO,CAAC7sB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AACrD,QAAA,MAAM;AACR,OAAA;;AAEAf,MAAAA,IAAI,GAAGe,KAAK,CAAA;AACd,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEs8B,0BAA0BA,CAACx1B,KAAK,EAAEgF,EAAE,EAAE1H,OAAO,GAAG,EAAE,EAAE;IAElD,IAAIlC,MAAM,GAAG,IAAI,CAAA;AAEjB,IAAA,MAAMooC,eAAe,GAAG,IAAI,CAAClQ,WAAW,CAACnzB,GAAG,CAACH,KAAK,CAAChF,IAAI,CAAC,CAACqH,MAAM,CAAA;IAE/D,IAAImhC,eAAe,CAAClhC,KAAK,EAAE;MACzB,MAAMmhC,UAAU,GAAGz+B,EAAE,CAAC;QAAEhF,KAAK;AAAEy1B,QAAAA,QAAQ,EAAE,IAAI;AAAEC,QAAAA,YAAY,EAAE,KAAK;AAAEp4B,QAAAA,OAAAA;AAAQ,OAAC,CAAC,CAAA;MAC9E,OAAOlC,MAAM,IAAIqoC,UAAU,CAAA;AAC7B,KAAC,MACI,IAAID,eAAe,CAAC/hB,MAAM,EAAE;MAC/B,MAAMgiB,UAAU,GAAGz+B,EAAE,CAAC;QAAEhF,KAAK;AAAEy1B,QAAAA,QAAQ,EAAE,KAAK;QAAEC,YAAY,EAAE8N,eAAe,CAAC9Y,UAAU;AAAEptB,QAAAA,OAAAA;AAAQ,OAAC,CAAC,CAAA;MACpGlC,MAAM,GAAGA,MAAM,IAAIqoC,UAAU,CAAA;AAC/B,KAAA;;AAEA;AACA,IAAA,IAAIroC,MAAM,KAAK,KAAK,IAAIkC,OAAO,CAACu4B,gBAAgB,EAAE;AAChD,MAAA,OAAOz6B,MAAM,CAAA;AACf,KAAA;IAEA,IAAIzC,KAAK,CAAC+T,OAAO,CAAC1M,KAAK,CAACiF,UAAU,CAAC,EAAE;AACnC,MAAA,KAAK,MAAM/L,KAAK,IAAI8G,KAAK,CAACiF,UAAU,EAAE;AACpC,QAAA,MAAMw+B,UAAU,GAAG,IAAI,CAACjO,0BAA0B,CAACt8B,KAAK,EAAE8L,EAAE,EAAER,KAAK,CAAClH,OAAO,CAAC,CAAC,CAAA;QAC7ElC,MAAM,GAAGA,MAAM,IAAIqoC,UAAU,CAAA;;AAE7B;QACA,IAAIroC,MAAM,KAAK,KAAK,EAAE;AACpB,UAAA,OAAOA,MAAM,CAAA;AACf,SAAA;AACF,OAAA;AACF,KAAA;AAEA,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE6Y,EAAAA,YAAYA,CAACjU,KAAK,EAAExI,OAAO,GAAG,EAAE,EAAE;IAChC,MAAM;MACJksC,YAAY,GAAG,EAAE;AACjB9hC,MAAAA,OAAO,GAAG,IAAI;AACd+hC,MAAAA,UAAU,GAAG,IAAA;AACf,KAAC,GAAGnsC,OAAO,CAAA;IAEX,IAAIosC,cAAc,GAAG,EAAE,CAAA;AAEvB,IAAA,MAAMC,cAAc,GAAGtrC,MAAM,CAACq/B,SAAS,CAACkM,cAAc,CAACpF,IAAI,CAACgF,YAAY,EAAE1jC,KAAK,CAAC0B,EAAE,CAAC,CAAA;AACnF,IAAA,MAAM8hC,eAAe,GAAG,IAAI,CAAClQ,WAAW,CAACnzB,GAAG,CAACH,KAAK,CAAChF,IAAI,CAAC,CAACqH,MAAM,CAAA;;AAE/D;AACA,IAAA,IAAIwhC,cAAc,EAAE;AAClB,MAAA,MAAME,WAAW,GAAGL,YAAY,CAAC1jC,KAAK,CAAC0B,EAAE,CAAC,CAAA;MAE1C,IAAIqiC,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK3jC,SAAS,IAAI2jC,WAAW,KAAK,EAAE,EAAE;AAC3EH,QAAAA,cAAc,GAAG,EAAE,CAAA;AACrB,OAAC,MAAM,IAAI,OAAOG,WAAW,KAAK,QAAQ,EAAE;AAC1CH,QAAAA,cAAc,GAAGG,WAAW,CAAClgC,KAAK,CAAC,GAAG,CAAC,CAAA;OACxC,MAAM,IAAIlL,KAAK,CAAC+T,OAAO,CAACq3B,WAAW,CAAC,EAAE;AACrCH,QAAAA,cAAc,GAAGG,WAAW,CAAA;AAC9B,OAAC,MAAM;QACL,MAAM,IAAIxnC,KAAK,CAAE,CAAA,uBAAA,EAA0ByD,KAAK,CAAC0B,EAAI,4CAA2C,CAAC,CAAA;AACnG,OAAA;AAEF,KAAC,MAAM,IAAI8hC,eAAe,CAAClhC,KAAK,EAAE;MAChCshC,cAAc,GAAG5jC,KAAK,CAAC8D,GAAG,CAACD,KAAK,CAAC,GAAG,CAAC,CAAA;KACtC,MAAM,IAAI2/B,eAAe,CAAC/hB,MAAM,IAAIzhB,KAAK,CAAC4D,IAAI,EAAE;MAC/CggC,cAAc,GAAG5jC,KAAK,CAAC4D,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAAA;AACxC,KAAA;;AAEA;AACA,IAAA,IAAIjC,OAAO,EAAE;MACXgiC,cAAc,GAAG,IAAI,CAACI,WAAW,CAACJ,cAAc,EAAE5jC,KAAK,EAAE4B,OAAO,CAAC,CAAA;AACnE,KAAA;;AAEA;IACA,IAAI5B,KAAK,CAACy0B,OAAO,IAAIz0B,KAAK,CAACy0B,OAAO,KAAKkP,UAAU,EAAE;MACjD,MAAMroC,MAAM,GAAG,IAAI,CAACq5B,kBAAkB,CAACx0B,GAAG,CAACH,KAAK,CAACy0B,OAAO,CAAC,CAAA;AACzD,MAAA,OAAO,CAAE,IAAI,IAAI,CAACxgB,YAAY,CAAC3Y,MAAM,EAAE9D,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAGosC,cAAc,CAAE,CAAA;AAC7E,KAAA;AAEA,IAAA,OAAOA,cAAc,CAAA;AACvB,GAAA;AAEAjM,EAAAA,KAAKA,GAAG;IACN,IAAI,CAACqL,UAAU,GAAG,EAAE,CAAA;AACtB,GAAA;AAEAgB,EAAAA,WAAWA,CAACJ,cAAc,EAAE5jC,KAAK,EAAE4B,OAAO,EAAE;IAE1C,MAAMgT,mBAAmB,GAAG,IAAI,CAAC4iB,SAAS,CAACr3B,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;IAE5E,IAAIyU,mBAAmB,IAAIA,mBAAmB,CAACE,gBAAgB,CAAC9U,KAAK,CAACy0B,OAAO,CAAC,EAAE;MAC9E,OAAO,CAAE7yB,OAAO,CAAC5B,KAAK,CAACy0B,OAAO,CAAC,EAAE,GAAGmP,cAAc,CAAE,CAAA;AACtD,KAAA;AAEA,IAAA,OAAOA,cAAc,CAAA;AACvB,GAAA;AACF,CAAA;AAEA,MAAMT,eAAe,GAAGA,CAAChrC,IAAI,EAAE+qC,OAAO,KAAK;AACzC,EAAA,IAAIx2B,OAAO,CAACvU,IAAI,CAACY,QAAQ,CAAC,EAAE;AAAE,IAAA,OAAOZ,IAAI,CAACY,QAAQ,CAACkrC,IAAI,CAAE9rC,IAAI,IAAKA,IAAI,CAAC+qC,OAAO,KAAKA,OAAO,CAAC,IAAI,IAAI,CAAA;AAAE,GAAA;AACrG,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEDH,YAAY,CAACnmC,OAAO,GAAG,CAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,CAAE;;ACtRxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,MAAMsnC,YAAY,CAAC;EAEhCpoC,WAAWA,CAACC,QAAQ,EAAE;AAEpB;IACA,IAAI,CAACooC,KAAK,GAAG,EAAE,CAAA;AACf,IAAA,IAAI,CAACpC,IAAI,GAAG,IAAIqC,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;IAElC,IAAI,CAACpoC,SAAS,GAAGD,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACEsoC,EAAAA,MAAMA,CAAC/P,WAAW,EAAEte,GAAG,EAAE;AACvB,IAAA,IAAIsuB,gBAAgB,GAAG,IAAI,CAACH,KAAK,CAACF,IAAI,CAACM,CAAC,IAAIA,CAAC,CAACjQ,WAAW,KAAKA,WAAW,CAAC,CAAA;IAE1E,IAAI,CAACgQ,gBAAgB,EAAE;AACrBA,MAAAA,gBAAgB,GAAG;QACjBhQ,WAAW;AACXxe,QAAAA,IAAI,EAAE,EAAA;OACP,CAAA;AAED,MAAA,IAAI,CAACquB,KAAK,CAAC1pC,IAAI,CAAC6pC,gBAAgB,CAAC,CAAA;AACnC,KAAA;AAEAA,IAAAA,gBAAgB,CAACxuB,IAAI,CAACrb,IAAI,CAACub,GAAG,CAAC,CAAA;AACjC,GAAA;;AAEA;AACF;AACA;AACA;EACEwuB,MAAMA,CAAC9iC,EAAE,EAAE;AACT,IAAA,MAAMoU,IAAI,GAAG2uB,OAAO,CAAC,IAAI,CAACN,KAAK,CAAC,CAAA;IAChC,OAAOruB,IAAI,CAACmuB,IAAI,CAACM,CAAC,IAAIA,CAAC,CAAC7iC,EAAE,KAAKA,EAAE,CAAC,CAAA;AACpC,GAAA;;AAEA;AACF;AACA;AACA;EACEgjC,cAAcA,CAACpjC,SAAS,EAAE;IACxB,OAAOmjC,OAAO,CAAC,IAAI,CAACN,KAAK,CAAC,CAACF,IAAI,CAACM,CAAC,IAAI;MACnC,MAAM;AAAEt/B,QAAAA,UAAAA;AAAW,OAAC,GAAGs/B,CAAC,CAAA;AAExB,MAAA,OAAOt/B,UAAU,CAACtN,QAAQ,CAAC2J,SAAS,CAACI,EAAE,CAAC,CAAA;AAC1C,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACA;EACEqU,OAAOA,CAACue,WAAW,EAAE;AACnB,IAAA,MAAMqQ,YAAY,GAAG,IAAI,CAACR,KAAK,CAACF,IAAI,CAACM,CAAC,IAAIjQ,WAAW,KAAKiQ,CAAC,CAACjQ,WAAW,CAAC,CAAA;IAExE,IAAI,CAACqQ,YAAY,EAAE;AACjB,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;IAEA,OAAOA,YAAY,CAAC7uB,IAAI,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACE8uB,EAAAA,SAASA,GAAG;AACV,IAAA,OAAO,IAAI,CAAC7C,IAAI,CAACY,YAAY,CAAC,MAAM,CAAC,CAAA;AACvC,GAAA;;AAEA;AACF;AACA;EACEnB,eAAeA,CAAClgC,SAAS,EAAE;IAEzB,MAAM;MACJtG,IAAI;AACJiK,MAAAA,UAAAA;AACF,KAAC,GAAG3D,SAAS,CAAA;AAEb,IAAA,IAAI,CAAC,CAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAE,CAAC3J,QAAQ,CAACqD,IAAI,CAAC,IAAI,CAACiK,UAAU,EAAE;AACxE,MAAA,OAAA;AACF,KAAA;;AAEA;IACA,MAAM4/B,WAAW,GAAGC,UAAU,CAAC7/B,UAAU,EAAE,IAAI,CAAC88B,IAAI,CAAC,CAAA;AAErDxpC,IAAAA,MAAM,CAAC8M,OAAO,CAACw/B,WAAW,CAAC,CAAChjC,OAAO,CAAC,CAAC,CAAEH,EAAE,EAAEuD,UAAU,CAAE,KAAK;AAE1D;AACA,MAAA,IAAI,CAACo/B,MAAM,CAAC/iC,SAAS,CAACI,EAAE,EAAE;AACxBA,QAAAA,EAAE,EAAEA,EAAE;QACNuD,UAAU,EAAEA,UAAU,CAAC7K,GAAG,CAAC2qC,CAAC,IAAIA,CAAC,CAACrjC,EAAE,CAAA;AACtC,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;;AAEF;IACAuD,UAAU,CAACpD,OAAO,CAAC7B,KAAK,IAAI,IAAI,CAACwhC,eAAe,CAACxhC,KAAK,CAAC,CAAC,CAAA;;AAExD;AACA,IAAA,IAAI,CAAChE,SAAS,CAACW,IAAI,CAAC,uBAAuB,EAAE;MAAEmZ,IAAI,EAAE,IAAI,CAACquB,KAAAA;AAAM,KAAC,CAAC,CAAA;AACpE,GAAA;AAEAxM,EAAAA,KAAKA,GAAG;IACN,IAAI,CAACwM,KAAK,GAAG,EAAE,CAAA;AACf,IAAA,IAAI,CAACpC,IAAI,CAACpK,KAAK,EAAE,CAAA;;AAEjB;AACA,IAAA,IAAI,CAAC37B,SAAS,CAACW,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AAEAunC,YAAY,CAACtnC,OAAO,GAAG,CAAE,UAAU,CAAE,CAAA;;AAGrC;;AAEA,SAASkoC,UAAUA,CAAC7/B,UAAU,EAAEsvB,GAAG,EAAE;AACnC,EAAA,OAAOyQ,OAAO,CAAC//B,UAAU,EAAE8/B,CAAC,IAAI;AAE9B;IACA,MAAM;AAAExjC,MAAAA,MAAAA;AAAO,KAAC,GAAGwjC,CAAC,CAAA;AAEpB,IAAA,IAAI,CAACxjC,MAAM,IAAI,CAACA,MAAM,CAACyU,GAAG,EAAE;AAC1B,MAAA,OAAOue,GAAG,CAACoO,YAAY,CAAC,MAAM,CAAC,CAAA;AACjC,KAAA;IAEA,OAAOphC,MAAM,CAACyU,GAAG,CAAA;AACnB,GAAC,CAAC,CAAA;AACJ,CAAA;;AAEA;AACA;AACA;AACA;AACA,SAASyuB,OAAOA,CAACQ,QAAQ,EAAE;AACzB,EAAA,OAAOC,OAAO,CAACD,QAAQ,CAAC7qC,GAAG,CAAC2qC,CAAC,IAAIA,CAAC,CAACjvB,IAAI,CAAC,CAAC,CAAA;AAC3C;;AC/Je,MAAMqvB,iBAAiB,CAAC;EACrCrpC,WAAWA,CAACC,QAAQ,EAAE;IACpB,IAAI,CAACC,SAAS,GAAGD,QAAQ,CAAA;AAEzB,IAAA,IAAI,CAACu3B,WAAW,GAAG,EAAE,CAAA;IAErBv3B,QAAQ,CAAC27B,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,CAACC,KAAK,EAAE,CAAC,CAAA;AAE7C,IAAA,IAAI,CAACoK,IAAI,GAAG,IAAIqC,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;AACpC,GAAA;EAEA7pC,GAAGA,CAAC+G,SAAS,EAAE;IACb,MAAM;AAAEI,MAAAA,EAAAA;AAAG,KAAC,GAAGJ,SAAS,CAAA;AAExB,IAAA,IAAI,IAAI,CAACgyB,WAAW,CAAE5xB,EAAE,CAAE,EAAE;AAC1B,MAAA,MAAM,IAAInF,KAAK,CAAE,CAAsBmF,mBAAAA,EAAAA,EAAI,iBAAgB,CAAC,CAAA;AAC9D,KAAA;AAEA,IAAA,IAAI,CAAC1F,SAAS,CAACW,IAAI,CAAC,eAAe,EAAE;AAAE2E,MAAAA,SAAAA;AAAU,KAAC,CAAC,CAAA;AAEnD,IAAA,IAAI,CAACgyB,WAAW,CAAE5xB,EAAE,CAAE,GAAGJ,SAAS,CAAA;AACpC,GAAA;EAEA4hB,MAAMA,CAAC5hB,SAAS,EAAE;IAChB,MAAM;AAAEI,MAAAA,EAAAA;AAAG,KAAC,GAAGJ,SAAS,CAAA;AAExB,IAAA,IAAI,CAAC,IAAI,CAACgyB,WAAW,CAAE5xB,EAAE,CAAE,EAAE;AAC3B,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC1F,SAAS,CAACW,IAAI,CAAC,kBAAkB,EAAE;AAAE2E,MAAAA,SAAAA;AAAU,KAAC,CAAC,CAAA;AAEtD,IAAA,OAAO,IAAI,CAACgyB,WAAW,CAAE5xB,EAAE,CAAE,CAAA;AAC/B,GAAA;EAEAvB,GAAGA,CAACuB,EAAE,EAAE;AACN,IAAA,OAAO,IAAI,CAAC4xB,WAAW,CAAE5xB,EAAE,CAAE,CAAA;AAC/B,GAAA;AAEA0jC,EAAAA,MAAMA,GAAG;AACP,IAAA,OAAO7sC,MAAM,CAAC2H,MAAM,CAAC,IAAI,CAACozB,WAAW,CAAC,CAAA;AACxC,GAAA;AAEA4C,EAAAA,OAAOA,GAAG;AACR,IAAA,OAAO,IAAI,CAACkP,MAAM,EAAE,CAACnB,IAAI,CAAE3iC,SAAS,IAAKA,SAAS,CAACtG,IAAI,KAAK,SAAS,CAAC,CAAA;AACxE,GAAA;EAEA6G,OAAOA,CAAC87B,QAAQ,EAAE;AAChB,IAAA,IAAI,CAACyH,MAAM,EAAE,CAACvjC,OAAO,CAAEP,SAAS,IAAKq8B,QAAQ,CAACr8B,SAAS,CAAC,CAAC,CAAA;AAC3D,GAAA;AAEAq2B,EAAAA,KAAKA,GAAG;AACN,IAAA,IAAI,CAACrE,WAAW,GAAG,EAAE,CAAA;AAErB,IAAA,IAAI,CAACyO,IAAI,CAACpK,KAAK,EAAE,CAAA;AACnB,GAAA;AAEF,CAAA;AAEAwN,iBAAiB,CAACvoC,OAAO,GAAG,CAAE,UAAU,CAAE;;ACzC3B,SAASyoC,QAAQA,CAAChjC,MAAM,EAAEtG,QAAQ,EAAE+X,IAAI,EAAEvT,QAAQ,EAAE;EAEjE,MAAM+kC,GAAG,GAAGA,MAAM;AAChB,IAAA,MAAM,CAAEv8B,KAAK,EAAEC,QAAQ,CAAE,GAAGC,QAAQ,CAAC6K,IAAI,CAACjM,SAAS,EAAE,CAAC,CAAA;AAEtD,IAAA,MAAM09B,WAAW,GAAG;AAClBliC,MAAAA,UAAUA,CAACrI,IAAI,EAAEwC,MAAM,GAAG,IAAI,EAAE;AAC9B,QAAA,OAAO+C,QAAQ,CAACJ,GAAG,CAACnF,IAAI,EAAEwC,MAAM,CAAC,CAAA;OAClC;MACDmE,MAAM,EAAEmS,IAAI,CAAC0xB,GAAAA;KACd,CAAA;AAEDzpC,IAAAA,QAAQ,CAAC27B,EAAE,CAAC,SAAS,EAAG+N,QAAQ,IAAK;MACnCz8B,QAAQ,CAACy8B,QAAQ,CAAC,CAAA;AACpB,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMp7B,QAAQ,GAAG8J,WAAW,CAAEM,MAAM,IAAKX,IAAI,CAAC4xB,OAAO,CAACjxB,MAAM,CAAC,EAAE,CAAEX,IAAI,CAAE,CAAC,CAAA;IAExE,MAAM;AAAEtL,MAAAA,UAAAA;AAAW,KAAC,GAAGO,KAAK,CAAA;IAE5B,MAAM;AAAEN,MAAAA,QAAAA;AAAS,KAAC,GAAGD,UAAU,CAAA;AAE/B,IAAA,MAAMqY,QAAQ,GAAG1M,WAAW,CAAC,MAAM;MACjC,IAAI,CAAC1L,QAAQ,EAAE;QACbqL,IAAI,CAAC6xB,MAAM,EAAE,CAAA;AACf,OAAA;AACF,KAAC,EAAE,CAAE7xB,IAAI,EAAErL,QAAQ,CAAE,CAAC,CAAA;AAEtB,IAAA,MAAMqY,OAAO,GAAG3M,WAAW,CAAC,MAAML,IAAI,CAAC8xB,KAAK,EAAE,EAAE,CAAE9xB,IAAI,CAAE,CAAC,CAAA;IAEzD,MAAM;AAAE6M,MAAAA,MAAAA;AAAO,KAAC,GAAG5X,KAAK,CAAA;IAExB,IAAI,CAAC4X,MAAM,EAAE;AACX,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,OACExe,GAAA,CAACmB,aAAW,CAAC8d,QAAQ,EAAA;AAACllB,MAAAA,KAAK,EAAGqpC,WAAa;MAAAxsC,QAAA,EACzCoJ,GAAA,CAACkU,aAAa,EAAA;AACZhM,QAAAA,QAAQ,EAAGA,QAAU;AACrBwW,QAAAA,QAAQ,EAAGA,QAAU;AACrBC,QAAAA,OAAO,EAAGA,OAAAA;OAAW,CAAA;AAAC,KACJ,CAAC,CAAA;GAE1B,CAAA;EAED,MAAM;AAAElgB,IAAAA,SAAAA;AAAU,GAAC,GAAGyB,MAAM,CAAA;AAE5BtG,EAAAA,QAAQ,CAAC27B,EAAE,CAAC,WAAW,EAAE,MAAM;IAC7BtL,MAAM,CAACjqB,GAAA,CAACmjC,GAAG,IAAE,CAAC,EAAE1kC,SAAS,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEF7E,EAAAA,QAAQ,CAAC27B,EAAE,CAAC,cAAc,EAAE,MAAM;AAChCtL,IAAAA,MAAM,CAAC,IAAI,EAAExrB,SAAS,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AACJ,CAAA;AAEAykC,QAAQ,CAACzoC,OAAO,GAAG,CAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAE;;AChExE,mBAAe;AACb65B,EAAAA,QAAQ,EAAE,CAAE,YAAY,EAAE,UAAU,CAAE;AACtC9iB,EAAAA,UAAU,EAAE,CAAE,MAAM,EAAE0f,UAAU,CAAE;AAClCwS,EAAAA,QAAQ,EAAE,CAAE,MAAM,EAAER,QAAQ,CAAA;AAC9B,CAAC;;ACLD,WAAe;EACbjK,WAAW,EAAE,CAAE0K,YAAY,CAAE;AAC7B/pC,EAAAA,QAAQ,EAAE,CAAE,MAAM,EAAEuhC,QAAQ,CAAE;AAC9ByI,EAAAA,QAAQ,EAAE,CAAE,MAAM,EAAEhF,QAAQ,CAAE;AAC9BC,EAAAA,YAAY,EAAE,CAAE,MAAM,EAAEW,YAAY,CAAE;AACtC9rB,EAAAA,iBAAiB,EAAE,CAAE,MAAM,EAAEsvB,iBAAiB,CAAE;AAChDtxB,EAAAA,YAAY,EAAE,CAAE,MAAM,EAAEkvB,YAAY,CAAE;AACtCntB,EAAAA,YAAY,EAAE,CAAE,MAAM,EAAEsuB,YAAY,CAAE;AACtCzJ,EAAAA,SAAS,EAAE,CAAE,MAAM,EAAEmF,SAAS,CAAA;AAChC,CAAC;;ACPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMrL,GAAG,GAAG,IAAI6P,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;;AAElC;AACA;AACA;AACe,MAAM4B,IAAI,CAAC;AAExB;AACF;AACA;AACA;AACElqC,EAAAA,WAAWA,CAACtE,OAAO,GAAG,EAAE,EAAE;AAExB;AACJ;AACA;AACA;AACI,IAAA,IAAI,CAACkgC,EAAE,GAAG,IAAI,CAACuO,QAAQ,CAAA;;AAEvB;AACJ;AACA;AACA;AACI,IAAA,IAAI,CAACT,GAAG,GAAGjR,GAAG,CAACkE,IAAI,EAAE,CAAA;;AAErB;AACJ;AACA;AACA;AACI,IAAA,IAAI,CAACyN,UAAU,GAAGxlC,mBAAmB,EAAE,CAAA;IAEvC,MAAM;MACJE,SAAS;MACTL,QAAQ,GAAG,IAAI,CAAC4lC,eAAe,CAAC3uC,OAAO,EAAE,IAAI,CAAC0uC,UAAU,CAAC;AACzD19B,MAAAA,UAAU,GAAG,EAAC;AAChB,KAAC,GAAGhR,OAAO,CAAA;;AAEX;AACJ;AACA;AACA;IACI,IAAI,CAAC4uC,MAAM,GAAG;AACZx+B,MAAAA,WAAW,EAAE,IAAI;AACjBnL,MAAAA,IAAI,EAAE,IAAI;MACV+L,UAAU;MACVvH,MAAM,EAAE,EAAE;AACV0f,MAAAA,MAAM,EAAE,IAAA;KACT,CAAA;AAED,IAAA,IAAI,CAACxgB,GAAG,GAAGI,QAAQ,CAACJ,GAAG,CAAA;AAEvB,IAAA,IAAI,CAACkmC,MAAM,GAAG9lC,QAAQ,CAAC8lC,MAAM,CAAA;IAE7B,IAAI,CAAClmC,GAAG,CAAC,UAAU,CAAC,CAACxD,IAAI,CAAC,WAAW,CAAC,CAAA;AAEtC,IAAA,IAAIiE,SAAS,EAAE;AACb,MAAA,IAAI,CAAC0lC,QAAQ,CAAC1lC,SAAS,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;AAEA+2B,EAAAA,KAAKA,GAAG;AAEN;AACA,IAAA,IAAI,CAAC4O,KAAK,CAAC,eAAe,CAAC,CAAA;;AAE3B;AACA,IAAA,IAAI,CAACA,KAAK,CAAC,YAAY,CAAC,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACA;AACEC,EAAAA,OAAOA,GAAG;AAER;IACA,IAAI,CAACrmC,GAAG,CAAC,UAAU,CAAC,CAACxD,IAAI,CAAC,cAAc,CAAC,CAAA;;AAEzC;IACA,IAAI,CAACwD,GAAG,CAAC,UAAU,CAAC,CAACxD,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAE5C,IAAA,IAAI,CAAC8pC,OAAO,CAAC,KAAK,CAAC,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEtF,EAAAA,YAAYA,CAACxgB,MAAM,EAAElkB,IAAI,GAAG,EAAE,EAAE;AAC9B,IAAA,OAAO,IAAIiqC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,IAAI;QACF,IAAI,CAACjP,KAAK,EAAE,CAAA;QAEZ,MAAM;AACJhX,UAAAA,MAAM,EAAE2gB,cAAc;AACtBF,UAAAA,QAAAA;SACD,GAAG,IAAI,CAACjhC,GAAG,CAAC,UAAU,CAAC,CAACghC,YAAY,CAACxgB,MAAM,CAAC,CAAA;QAE7C,MAAMkmB,eAAe,GAAG,IAAI,CAAC9J,wBAAwB,CAACv4B,KAAK,CAAC/H,IAAI,CAAC,CAAC,CAAA;QAElE,IAAI,CAACs+B,SAAS,CAAC;AACbt+B,UAAAA,IAAI,EAAEoqC,eAAe;UACrB5lC,MAAM,EAAE,EAAE;AACV0f,UAAAA,MAAM,EAAE2gB,cAAc;UACtB15B,WAAW,EAAEpD,KAAK,CAACqiC,eAAe,CAAA;AACpC,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAACN,KAAK,CAAC,aAAa,EAAE;AAAEnF,UAAAA,QAAAA;AAAS,SAAC,CAAC,CAAA;AAEvC,QAAA,OAAOuF,OAAO,CAAC;AAAEvF,UAAAA,QAAAA;AAAS,SAAC,CAAC,CAAA;OAC7B,CAAC,OAAO1kC,KAAK,EAAE;AACd,QAAA,IAAI,CAAC6pC,KAAK,CAAC,aAAa,EAAE;UACxB7pC,KAAK;AACL0kC,UAAAA,QAAQ,EAAE1kC,KAAK,CAAC0kC,QAAQ,IAAI,EAAA;AAC9B,SAAC,CAAC,CAAA;QAEF,OAAOwF,MAAM,CAAClqC,KAAK,CAAC,CAAA;AACtB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEipC,EAAAA,MAAMA,GAAG;IAEP,MAAM;AACJn9B,MAAAA,UAAAA;AACF,KAAC,GAAG,IAAI,CAACX,SAAS,EAAE,CAAA;AAEpB,IAAA,IAAIW,UAAU,CAACC,QAAQ,IAAID,UAAU,CAACtH,QAAQ,EAAE;AAC9C,MAAA,MAAM,IAAI3E,KAAK,CAAC,mBAAmB,CAAC,CAAA;AACtC,KAAA;AAEA,IAAA,MAAME,IAAI,GAAG,IAAI,CAACqqC,cAAc,EAAE,CAAA;AAElC,IAAA,MAAM7lC,MAAM,GAAG,IAAI,CAACmJ,QAAQ,EAAE,CAAA;AAE9B,IAAA,MAAMhP,MAAM,GAAG;MACbqB,IAAI;AACJwE,MAAAA,MAAAA;KACD,CAAA;AAED,IAAA,IAAI,CAACslC,KAAK,CAAC,QAAQ,EAAEnrC,MAAM,CAAC,CAAA;AAE5B,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AAEAwqC,EAAAA,KAAKA,GAAG;AACN,IAAA,IAAI,CAACW,KAAK,CAAC,OAAO,CAAC,CAAA;IAEnB,IAAI,CAACxL,SAAS,CAAC;MACbt+B,IAAI,EAAE+H,KAAK,CAAC,IAAI,CAAC4hC,MAAM,CAACx+B,WAAW,CAAC;AACpC3G,MAAAA,MAAM,EAAE,EAAC;AACX,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACEmJ,EAAAA,QAAQA,GAAG;AACT,IAAA,MAAMuJ,UAAU,GAAG,IAAI,CAACxT,GAAG,CAAC,YAAY,CAAC;AACnC0V,MAAAA,iBAAiB,GAAG,IAAI,CAAC1V,GAAG,CAAC,mBAAmB,CAAC;AACjD0T,MAAAA,YAAY,GAAG,IAAI,CAAC1T,GAAG,CAAC,cAAc,CAAC;AACvCs6B,MAAAA,SAAS,GAAG,IAAI,CAACt6B,GAAG,CAAC,WAAW,CAAC,CAAA;IAEvC,MAAM;AAAE1D,MAAAA,IAAAA;AAAK,KAAC,GAAG,IAAI,CAACoL,SAAS,EAAE,CAAA;IAEjC,MAAMk/B,YAAY,GAAGA,CAAC/mC,KAAK,EAAE4B,OAAO,KAAK,CAAE5B,KAAK,CAAC0B,EAAE,EAAE,GAAGnJ,MAAM,CAAC2H,MAAM,CAAC0B,OAAO,IAAI,EAAE,CAAC,CAAE,CAAA;AAEtF,IAAA,SAASolC,wBAAwBA,CAAC/lC,MAAM,EAAEjB,KAAK,EAAE4B,OAAO,EAAE;MACxD,MAAM;QAAEV,QAAQ;QAAElG,IAAI;AAAE6Z,QAAAA,WAAAA;AAAY,OAAC,GAAG7U,KAAK,CAAA;MAC7C,MAAM;AAAEqC,QAAAA,MAAM,EAAE4kC,WAAAA;AAAY,OAAC,GAAGtzB,UAAU,CAACxT,GAAG,CAACnF,IAAI,CAAC,CAAA;;AAEpD;AACA,MAAA,IAAIkG,QAAQ,EAAE;AACZ,QAAA,OAAA;AACF,OAAA;;AAEA;AACA,MAAA,MAAM8S,SAAS,GAAGH,YAAY,CAACI,YAAY,CAACjU,KAAK,EAAE;AAAE4B,QAAAA,OAAAA;AAAQ,OAAC,CAAC,CAAA;AAC/D,MAAA,MAAMslC,SAAS,GAAG/mC,GAAG,CAAC1D,IAAI,EAAEuX,SAAS,CAAC,CAAA;MACtC,MAAMU,WAAW,GAAG+lB,SAAS,CAACI,aAAa,CAAC76B,KAAK,EAAEknC,SAAS,CAAC,CAAA;MAE7D,IAAIxyB,WAAW,CAACjc,MAAM,EAAE;QACtBinB,GAAG,CAACze,MAAM,EAAE8lC,YAAY,CAAC/mC,KAAK,EAAE4B,OAAO,CAAC,EAAE8S,WAAW,CAAC,CAAA;AACxD,OAAA;;AAEA;MACA,IAAI,CAAC/b,KAAK,CAAC+T,OAAO,CAAC1M,KAAK,CAACiF,UAAU,CAAC,EAAE;AACpC,QAAA,OAAA;AACF,OAAA;;AAEA;AACA,MAAA,IAAIgiC,WAAW,CAACvc,UAAU,IAAI7V,WAAW,EAAE;AAEzC,QAAA,IAAI,CAAClc,KAAK,CAAC+T,OAAO,CAACw6B,SAAS,CAAC,EAAE;AAC7B,UAAA,OAAA;AACF,SAAA;AAEAA,QAAAA,SAAS,CAACrlC,OAAO,CAAC,CAACslC,CAAC,EAAE5tC,KAAK,KAAK;AAC9ByG,UAAAA,KAAK,CAACiF,UAAU,CAACpD,OAAO,CAAEqD,SAAS,IAAK;AACtC8hC,YAAAA,wBAAwB,CAAC/lC,MAAM,EAAEiE,SAAS,EAAE;AAAE,cAAA,GAAGtD,OAAO;cAAE,CAAC5B,KAAK,CAAC0B,EAAE,GAAGnI,KAAAA;AAAM,aAAC,CAAC,CAAA;AAChF,WAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AAEF,QAAA,OAAA;AACF,OAAA;;AAEA;AACAyG,MAAAA,KAAK,CAACiF,UAAU,CAACpD,OAAO,CAAEqD,SAAS,IAAK8hC,wBAAwB,CAAC/lC,MAAM,EAAEiE,SAAS,EAAEtD,OAAO,CAAC,CAAC,CAAA;AAC/F,KAAA;IAEA,MAAMwlC,aAAa,GAAG,EAAE,CAAA;IACxBJ,wBAAwB,CAACI,aAAa,EAAEvxB,iBAAiB,CAACqgB,OAAO,EAAE,CAAC,CAAA;IACpE,MAAMmR,cAAc,GAAG,IAAI,CAACC,gBAAgB,CAACF,aAAa,EAAE3qC,IAAI,EAAE;AAAEs4B,MAAAA,aAAa,EAAEgS,YAAY;AAAE/R,MAAAA,oBAAoB,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;IAC9H,IAAI,CAAC+F,SAAS,CAAC;AAAE95B,MAAAA,MAAM,EAAEomC,cAAAA;AAAe,KAAC,CAAC,CAAA;AAE1C,IAAA,OAAOA,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;EACEf,QAAQA,CAACiB,UAAU,EAAE;IACnB,IAAI,CAACA,UAAU,EAAE;AACf,MAAA,MAAM,IAAIhrC,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACxC,KAAA;IAEA,IAAI,CAACirC,MAAM,EAAE,CAAA;AAEb,IAAA,IAAIrrC,QAAQ,CAACorC,UAAU,CAAC,EAAE;AACxBA,MAAAA,UAAU,GAAG1mC,QAAQ,CAAC4M,aAAa,CAAC85B,UAAU,CAAC,CAAA;AACjD,KAAA;AAEA,IAAA,MAAM3mC,SAAS,GAAG,IAAI,CAACslC,UAAU,CAAA;AAEjCqB,IAAAA,UAAU,CAACE,WAAW,CAAC7mC,SAAS,CAAC,CAAA;AAEjC,IAAA,IAAI,CAAC2lC,KAAK,CAAC,QAAQ,CAAC,CAAA;AACtB,GAAA;AAEAiB,EAAAA,MAAMA,GAAG;IACP,IAAI,CAACf,OAAO,EAAE,CAAA;AAChB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEA,EAAAA,OAAOA,CAACnO,IAAI,GAAG,IAAI,EAAE;AACnB,IAAA,MAAM13B,SAAS,GAAG,IAAI,CAACslC,UAAU;MAC3BqB,UAAU,GAAG3mC,SAAS,CAAC2mC,UAAU,CAAA;IAEvC,IAAI,CAACA,UAAU,EAAE;AACf,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIjP,IAAI,EAAE;AACR,MAAA,IAAI,CAACiO,KAAK,CAAC,QAAQ,CAAC,CAAA;AACtB,KAAA;AAEAgB,IAAAA,UAAU,CAACG,WAAW,CAAC9mC,SAAS,CAAC,CAAA;AACnC,GAAA;;AAEA;AACF;AACA;AACA;AACE+mC,EAAAA,WAAWA,CAAC5T,QAAQ,EAAE73B,KAAK,EAAE;AAC3B,IAAA,MAAMsM,UAAU,GAAGkX,GAAG,CAAC,IAAI,CAAC7X,SAAS,EAAE,CAACW,UAAU,EAAE,CAAEurB,QAAQ,CAAE,EAAE73B,KAAK,CAAC,CAAA;IAExE,IAAI,CAAC6+B,SAAS,CAAC;AAAEvyB,MAAAA,UAAAA;AAAW,KAAC,CAAC,CAAA;AAChC,GAAA;;AAEA;AACF;AACA;AACA;AACE61B,EAAAA,GAAGA,CAACrjC,IAAI,EAAEm9B,OAAO,EAAE;IACjB,IAAI,CAACh4B,GAAG,CAAC,UAAU,CAAC,CAACk+B,GAAG,CAACrjC,IAAI,EAAEm9B,OAAO,CAAC,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEgO,EAAAA,eAAeA,CAAC3uC,OAAO,EAAEoJ,SAAS,EAAE;IAClC,MAAM;AACJgnC,MAAAA,OAAO,GAAG,IAAI,CAACC,WAAW,EAAE;AAC5BC,MAAAA,iBAAiB,GAAG,EAAE;MACtB,GAAGzlC,MAAAA;AACL,KAAC,GAAG7K,OAAO,CAAA;AAEX,IAAA,MAAMuwC,cAAc,GAAG;AACrB,MAAA,GAAG1lC,MAAM;AACTwjC,MAAAA,QAAQ,EAAE;AACRjlC,QAAAA,SAAAA;AACF,OAAA;KACD,CAAA;IAED,OAAOP,cAAc,CAAC,CACpB;AAAEgC,MAAAA,MAAM,EAAE,CAAE,OAAO,EAAE0lC,cAAc,CAAA;AAAG,KAAC,EACvC;AAAEj0B,MAAAA,IAAI,EAAE,CAAE,OAAO,EAAE,IAAI,CAAA;KAAI,EAC3Bk0B,IAAI,EACJ,GAAGJ,OAAO,EACV,GAAGE,iBAAiB,CACrB,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACEvB,EAAAA,KAAKA,CAACvrC,IAAI,EAAEyB,IAAI,EAAE;IAChB,IAAI,CAAC0D,GAAG,CAAC,UAAU,CAAC,CAACxD,IAAI,CAAC3B,IAAI,EAAEyB,IAAI,CAAC,CAAA;AACvC,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACEipC,OAAOA,CAACjxB,MAAM,EAAE;IACd,MAAM;MACJzU,KAAK;MACL4B,OAAO;AACP1F,MAAAA,KAAAA;AACF,KAAC,GAAGuY,MAAM,CAAA;IAEV,MAAM;MACJhY,IAAI;AACJwE,MAAAA,MAAAA;AACF,KAAC,GAAG,IAAI,CAAC4G,SAAS,EAAE,CAAA;AAEpB,IAAA,MAAM4yB,SAAS,GAAG,IAAI,CAACt6B,GAAG,CAAC,WAAW,CAAC;AACjC0T,MAAAA,YAAY,GAAG,IAAI,CAAC1T,GAAG,CAAC,cAAc,CAAC,CAAA;IAE7C,MAAMuU,WAAW,GAAG+lB,SAAS,CAACI,aAAa,CAAC76B,KAAK,EAAE9D,KAAK,CAAC,CAAA;AAEzD,IAAA,MAAM8X,SAAS,GAAGH,YAAY,CAACI,YAAY,CAACjU,KAAK,EAAE;AAAE4B,MAAAA,OAAAA;AAAQ,KAAC,CAAC,CAAA;AAE/D8d,IAAAA,GAAG,CAACjjB,IAAI,EAAEuX,SAAS,EAAE9X,KAAK,CAAC,CAAA;IAE3BwjB,GAAG,CAACze,MAAM,EAAE,CAAEjB,KAAK,CAAC0B,EAAE,EAAE,GAAGnJ,MAAM,CAAC2H,MAAM,CAAC0B,OAAO,IAAI,EAAE,CAAC,CAAE,EAAE8S,WAAW,CAACjc,MAAM,GAAGic,WAAW,GAAGtU,SAAS,CAAC,CAAA;IAExG,IAAI,CAAC26B,SAAS,CAAC;AACbt+B,MAAAA,IAAI,EAAE+H,KAAK,CAAC/H,IAAI,CAAC;MACjBwE,MAAM,EAAEuD,KAAK,CAACvD,MAAM,CAAA;AACtB,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACE4G,EAAAA,SAASA,GAAG;IACV,OAAO,IAAI,CAACu+B,MAAM,CAAA;AACpB,GAAA;;AAEA;AACF;AACA;EACErL,SAASA,CAAChyB,KAAK,EAAE;IACf,IAAI,CAACq9B,MAAM,GAAG;MACZ,GAAG,IAAI,CAACA,MAAM;MACd,GAAGr9B,KAAAA;KACJ,CAAA;IAED,IAAI,CAACw9B,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC1+B,SAAS,EAAE,CAAC,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACEggC,EAAAA,WAAWA,GAAG;IACZ,OAAO,CACLI,wBAAwB,EACxBC,cAAc,EACdC,oBAAoB,EACpBC,kBAAkB,CACnB,CAAA;AACH,GAAA;;AAEA;AACF;AACA;AACEnC,EAAAA,QAAQA,CAACjrC,IAAI,EAAE0iC,QAAQ,EAAEvF,OAAO,EAAE;AAChC,IAAA,IAAI,CAACh4B,GAAG,CAAC,UAAU,CAAC,CAACu3B,EAAE,CAAC18B,IAAI,EAAE0iC,QAAQ,EAAEvF,OAAO,CAAC,CAAA;AAClD,GAAA;;AAEA;AACF;AACA;AACE2O,EAAAA,cAAcA,GAAG;AACf,IAAA,MAAMjxB,iBAAiB,GAAG,IAAI,CAAC1V,GAAG,CAAC,mBAAmB,CAAC,CAAA;AACvD,IAAA,MAAMwT,UAAU,GAAG,IAAI,CAACxT,GAAG,CAAC,YAAY,CAAC,CAAA;AACzC,IAAA,MAAM0T,YAAY,GAAG,IAAI,CAAC1T,GAAG,CAAC,cAAc,CAAC,CAAA;IAC7C,MAAMwK,QAAQ,GAAG,IAAI,CAAC9C,SAAS,EAAE,CAACpL,IAAI,CAAA;AAEtC,IAAA,SAAS4rC,4BAA4BA,CAACC,UAAU,EAAEhnC,SAAS,EAAEM,OAAO,EAAE;MACpE,MAAM;QAAEV,QAAQ;AAAElG,QAAAA,IAAAA;AAAK,OAAC,GAAGsG,SAAS,CAAA;MACpC,MAAM;AAAEe,QAAAA,MAAM,EAAE4kC,WAAAA;AAAY,OAAC,GAAGtzB,UAAU,CAACxT,GAAG,CAACnF,IAAI,CAAC,CAAA;;AAEpD;AACA,MAAA,IAAI,CAACkG,QAAQ,IAAI+lC,WAAW,CAAC3kC,KAAK,EAAE;AAClC,QAAA,MAAM0R,SAAS,GAAGH,YAAY,CAACI,YAAY,CAAC3S,SAAS,EAAE;AAAEM,UAAAA,OAAAA;AAAQ,SAAC,CAAC,CAAA;AACnE,QAAA,MAAM1F,KAAK,GAAGiE,GAAG,CAACwK,QAAQ,EAAEqJ,SAAS,CAAC,CAAA;AACtC0L,QAAAA,GAAG,CAAC4oB,UAAU,EAAEt0B,SAAS,EAAE9X,KAAK,CAAC,CAAA;AACnC,OAAA;;AAEA;MACA,IAAI,CAACvD,KAAK,CAAC+T,OAAO,CAACpL,SAAS,CAAC2D,UAAU,CAAC,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;;AAEA;AACA,MAAA,IAAIgiC,WAAW,CAACvc,UAAU,IAAIppB,SAAS,CAACuT,WAAW,EAAE;QAEnD,MAAMqyB,SAAS,GAAG/mC,GAAG,CAACwK,QAAQ,EAAEkJ,YAAY,CAACI,YAAY,CAAC3S,SAAS,EAAE;AAAEM,UAAAA,OAAAA;AAAQ,SAAC,CAAC,CAAC,CAAA;AAElF,QAAA,IAAI,CAACjJ,KAAK,CAAC+T,OAAO,CAACw6B,SAAS,CAAC,EAAE;AAC7B,UAAA,OAAA;AACF,SAAA;AAEAA,QAAAA,SAAS,CAACrlC,OAAO,CAAC,CAACslC,CAAC,EAAE5tC,KAAK,KAAK;AAC9B+H,UAAAA,SAAS,CAAC2D,UAAU,CAACpD,OAAO,CAAEqD,SAAS,IAAK;AAC1CmjC,YAAAA,4BAA4B,CAACC,UAAU,EAAEpjC,SAAS,EAAE;AAAE,cAAA,GAAGtD,OAAO;cAAE,CAACN,SAAS,CAACI,EAAE,GAAGnI,KAAAA;AAAM,aAAC,CAAC,CAAA;AAC5F,WAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AAEF,QAAA,OAAA;AACF,OAAA;;AAEA;AACA+H,MAAAA,SAAS,CAAC2D,UAAU,CAACpD,OAAO,CAAEqD,SAAS,IAAKmjC,4BAA4B,CAACC,UAAU,EAAEpjC,SAAS,EAAEtD,OAAO,CAAC,CAAC,CAAA;AAC3G,KAAA;IAEA,MAAM2mC,iBAAiB,GAAG,EAAE,CAAA;IAC5BF,4BAA4B,CAACE,iBAAiB,EAAE1yB,iBAAiB,CAACqgB,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;AAChF,IAAA,OAAO,IAAI,CAACoR,gBAAgB,CAACiB,iBAAiB,EAAE59B,QAAQ,CAAC,CAAA;AAC3D,GAAA;;AAEA;AACF;AACA;EACE28B,gBAAgBA,CAACkB,QAAQ,EAAE/rC,IAAI,EAAEjF,OAAO,GAAG,EAAE,EAAE;AAC7C,IAAA,MAAMgO,gBAAgB,GAAG,IAAI,CAACrF,GAAG,CAAC,kBAAkB,CAAC,CAAA;IACrD,OAAOqF,gBAAgB,CAACuC,eAAe,CAACygC,QAAQ,EAAE/rC,IAAI,EAAEjF,OAAO,CAAC,CAAA;AAClE,GAAA;;AAEA;AACF;AACA;AACEulC,EAAAA,wBAAwBA,CAACtgC,IAAI,EAAEjF,OAAO,GAAG,EAAE,EAAE;AAC3C,IAAA,MAAMqe,iBAAiB,GAAG,IAAI,CAAC1V,GAAG,CAAC,mBAAmB,CAAC,CAAA;AACvD,IAAA,MAAMwT,UAAU,GAAG,IAAI,CAACxT,GAAG,CAAC,YAAY,CAAC,CAAA;AACzC,IAAA,MAAM0T,YAAY,GAAG,IAAI,CAAC1T,GAAG,CAAC,cAAc,CAAC,CAAA;AAE7C,IAAA,SAASsoC,8BAA8BA,CAAC5B,eAAe,EAAEvlC,SAAS,EAAEM,OAAO,EAAE;MAC3E,MAAM;QAAE+G,YAAY;QAAE3N,IAAI;AAAE6Z,QAAAA,WAAAA;AAAY,OAAC,GAAGvT,SAAS,CAAA;MACrD,MAAM;AAAEe,QAAAA,MAAM,EAAE4kC,WAAAA;AAAY,OAAC,GAAGtzB,UAAU,CAACxT,GAAG,CAACnF,IAAI,CAAC,CAAA;AAEpD,MAAA,MAAMgZ,SAAS,GAAGH,YAAY,CAACI,YAAY,CAAC3S,SAAS,EAAE;AAAEM,QAAAA,OAAAA;AAAQ,OAAC,CAAC,CAAA;AACnE,MAAA,IAAIslC,SAAS,GAAG/mC,GAAG,CAAC1D,IAAI,EAAEuX,SAAS,CAAC,CAAA;;AAEpC;MACA,IAAIizB,WAAW,CAAC3kC,KAAK,EAAE;AAErB;QACA,IAAI,CAAComC,WAAW,CAACxB,SAAS,CAAC,IAAID,WAAW,CAACx8B,aAAa,EAAE;AACxDy8B,UAAAA,SAAS,GAAGD,WAAW,CAACx8B,aAAa,CAAC;YAAEnJ,SAAS;YAAE7E,IAAI;AAAEP,YAAAA,KAAK,EAAEgrC,SAAAA;AAAU,WAAC,CAAC,CAAA;AAC9E,SAAA;;AAEA;QACA,MAAMyB,qBAAqB,GAAG,CAACD,WAAW,CAACxB,SAAS,CAAC,GAAGA,SAAS,GAAI,CAACwB,WAAW,CAAC//B,YAAY,CAAC,GAAGA,YAAY,GAAGs+B,WAAW,CAACz8B,UAAW,CAAA;AACxIkV,QAAAA,GAAG,CAACmnB,eAAe,EAAE7yB,SAAS,EAAE20B,qBAAqB,CAAC,CAAA;AACxD,OAAA;;AAEA;MACA,IAAI,CAAChwC,KAAK,CAAC+T,OAAO,CAACpL,SAAS,CAAC2D,UAAU,CAAC,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAIgiC,WAAW,CAACvc,UAAU,IAAI7V,WAAW,EAAE;AAEzC;QACA,IAAI,CAACqyB,SAAS,IAAI,CAACvuC,KAAK,CAAC+T,OAAO,CAACw6B,SAAS,CAAC,EAAE;AAC3CA,UAAAA,SAAS,GAAG,IAAIvuC,KAAK,CAAC+vC,WAAW,CAACpnC,SAAS,CAACspB,kBAAkB,CAAC,GAAG,CAAC,GAAGtpB,SAAS,CAACspB,kBAAkB,CAAC,CAAC9K,IAAI,EAAE,CAAC1lB,GAAG,CAAC+sC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACjI,SAAA;;AAEA;AACAD,QAAAA,SAAS,GAAGA,SAAS,CAAC9sC,GAAG,CAAEwuC,GAAG,IAAKr9B,QAAQ,CAACq9B,GAAG,CAAC,GAAGA,GAAG,GAAG,EAAE,CAAC,CAAA;;AAE5D;AACAlpB,QAAAA,GAAG,CAACmnB,eAAe,EAAE7yB,SAAS,EAAEkzB,SAAS,CAAC,CAAA;;AAE1C;QACA,IAAI,CAACwB,WAAW,CAAC9mC,OAAO,CAACN,SAAS,CAACI,EAAE,CAAC,CAAC,EAAE;AACvCJ,UAAAA,SAAS,CAAC2D,UAAU,CAACpD,OAAO,CACzBqD,SAAS,IAAKujC,8BAA8B,CAAC5B,eAAe,EAAE3hC,SAAS,EAAE;YAAE,GAAGtD,OAAAA;AAAQ,WAAC,CAC1F,CAAC,CAAA;AAED,UAAA,OAAA;AACF,SAAA;;AAEA;AACAslC,QAAAA,SAAS,CAACrlC,OAAO,CAAC,CAACslC,CAAC,EAAE5tC,KAAK,KAAK;AAC9B+H,UAAAA,SAAS,CAAC2D,UAAU,CAACpD,OAAO,CACzBqD,SAAS,IAAKujC,8BAA8B,CAAC5B,eAAe,EAAE3hC,SAAS,EAAE;AAAE,YAAA,GAAGtD,OAAO;YAAE,CAACN,SAAS,CAACI,EAAE,GAAGnI,KAAAA;AAAM,WAAC,CACjH,CAAC,CAAA;AACH,SAAC,CAAC,CAAA;AAEF,QAAA,OAAA;AACF,OAAA;;AAEA;AACA+H,MAAAA,SAAS,CAAC2D,UAAU,CAACpD,OAAO,CAAEqD,SAAS,IAAKujC,8BAA8B,CAAC5B,eAAe,EAAE3hC,SAAS,EAAEtD,OAAO,CAAC,CAAC,CAAA;AAClH,KAAA;;AAEA;IACA,MAAMhB,SAAS,GAAGpJ,OAAO,CAACoJ,SAAS,IAAIiV,iBAAiB,CAACqgB,OAAO,EAAE,CAAA;AAClE,IAAA,MAAMt0B,OAAO,GAAGpK,OAAO,CAACoK,OAAO,IAAI,EAAE,CAAA;AACrC,IAAA,MAAMinC,QAAQ,GAAGh1B,YAAY,CAACI,YAAY,CAACrT,SAAS,EAAE;AAAEgB,MAAAA,OAAAA;KAAS,CAAC,IAAI,EAAE,CAAA;;AAExE;IACA,MAAMgC,IAAI,GAAG,CAAC8kC,WAAW,CAAC9mC,OAAO,CAAChB,SAAS,CAACc,EAAE,CAAC,CAAC,GAAG,CAAE,GAAGmnC,QAAQ,EAAEjnC,OAAO,CAAChB,SAAS,CAACc,EAAE,CAAC,CAAE,GAAGmnC,QAAQ,CAAA;AAEpG,IAAA,MAAM/T,WAAW,GAAGtwB,KAAK,CAAC/H,IAAI,CAAC,CAAA;AAC/BgsC,IAAAA,8BAA8B,CAAC3T,WAAW,EAAEl0B,SAAS,EAAEgB,OAAO,CAAC,CAAA;IAC/D,OAAOzB,GAAG,CAAC20B,WAAW,EAAElxB,IAAI,EAAE,EAAE,CAAC,CAAA;AACnC,GAAA;AAEF;;AC5jBMklC,MAAAA,aAAa,GAAG,GAAE;;AAOxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAACvxC,OAAO,EAAE;EAClC,MAAM;IACJiF,IAAI;IACJkkB,MAAM;IACN,GAAGqoB,WAAAA;AACL,GAAC,GAAGxxC,OAAO,CAAA;AAEX,EAAA,MAAMsc,IAAI,GAAG,IAAIkyB,IAAI,CAACgD,WAAW,CAAC,CAAA;EAElC,OAAOl1B,IAAI,CAACqtB,YAAY,CAACxgB,MAAM,EAAElkB,IAAI,CAAC,CAACwsC,IAAI,CAAC,YAAW;AACrD,IAAA,OAAOn1B,IAAI,CAAA;AACb,GAAC,CAAC,CAAA;AACJ;;;;","x_google_ignoreList":[106,107,117]}
|
|
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/injector.js","../src/util/form.js","../src/render/components/Util.js","../src/render/components/form-fields/Button.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/render/hooks/useCondition.js","../src/render/hooks/useScrollIntoView.js","../src/render/hooks/useExpressionEvaluation.js","../src/render/hooks/useFilteredFormData.js","../src/render/hooks/useKeyDownAction.js","../src/render/hooks/useReadonly.js","../src/render/hooks/usePrevious.js","../src/render/hooks/useDeepCompareState.js","../src/render/hooks/useTemplateEvaluation.js","../src/render/hooks/useSingleLineTemplateEvaluation.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/util/optionsUtil.js","../src/render/hooks/useOptionsAsync.js","../src/render/components/util/dateTimeUtil.js","../src/render/components/util/sanitizerUtil.js","../src/render/hooks/useCleanupMultiSelectValues.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/util/localisationUtil.js","../src/render/components/form-fields/icons/Calendar.svg","../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/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/form-fields/Group.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/IFrame.js","../src/render/components/form-fields/icons/ImagePlaceholder.svg","../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/hooks/useCleanupSingleSelectValue.js","../src/render/components/form-fields/Radio.js","../src/render/hooks/useGetLabelCorrelation.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/form-fields/Text.js","../src/render/hooks/useFlushDebounce.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.js","../src/render/components/form-fields/icons/ArrowDown.svg","../src/render/components/form-fields/icons/ArrowUp.svg","../src/render/components/form-fields/icons/CaretLeft.svg","../src/render/components/form-fields/icons/CaretRight.svg","../src/render/components/form-fields/Table.js","../src/render/components/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/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/index.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/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/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/render/Renderer.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { parseExpression, parseUnaryTests } from 'feelin';\n\nexport const getFlavouredFeelVariableNames = (feelString, feelFlavour = 'expression', options = {}) => {\n\n const {\n depth = 0,\n specialDepthAccessors = {}\n } = options;\n\n if (![ 'expression', 'unaryTest' ].includes(feelFlavour)) return [];\n\n const tree = feelFlavour === 'expression' ? parseExpression(feelString) : parseUnaryTests(feelString);\n\n const simpleExpressionTree = _buildSimpleFeelStructureTree(tree, feelString);\n\n const variables = (function _unfoldVariables(node) {\n\n if (node.name === 'PathExpression') {\n\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\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/**\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\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.reduce((accumulator, offset) => {\n return [\n ...accumulator,\n ...accessorDepthInfos.map(depthInfo => ({ previous: depthInfo.current, current: depthInfo.current + offset })),\n ];\n }, []).filter(depthInfo => depthInfo.current >= -1); // discard all depth infos which are out of bounds\n\n } else {\n\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 => ({ previous: depthInfo.current, current: depthInfo.current + 1 }));\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/**\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\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/**\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\n const stack = [ { children: [] } ];\n parseTree.iterate({\n enter: (node) => {\n\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\n const flattenedExpressionTree = {\n name: 'Root',\n children: [ tree ]\n };\n\n const iterate = (node) => {\n\n if (node.children) {\n for (let x = 0; x < node.children.length; x++) {\n\n if (node.children[x].name === 'FilterExpression') {\n\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\n } else {\n iterate(node.children[x]);\n }\n }\n\n }\n\n };\n\n iterate(tree);\n\n return flattenedExpressionTree;\n};\n","import { evaluate } from 'feelin';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport default 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) { return isString(value) && value.startsWith('='); }\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\n const {\n type = 'expression'\n } = options;\n\n if (!this.isExpression(expression)) {\n return [];\n }\n\n if (![ 'unaryTest', 'expression' ].includes(type)) {\n throw new Error('Unknown expression type: ' + type);\n }\n\n return getFlavouredFeelVariableNames(expression, type);\n }\n\n /**\n * Evaluate an expression.\n *\n * @param {string} expression\n * @param {import('../../types').Data} [data]\n *\n * @returns {any}\n */\n evaluate(expression, data = {}) {\n if (!expression) {\n return null;\n }\n\n if (!isString(expression) || !expression.startsWith('=')) {\n return null;\n }\n\n try {\n const result = evaluate(expression.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n}\n\nFeelExpressionLanguage.$inject = [\n 'eventBus'\n];","import { parser as feelersParser, buildSimpleTree, evaluate as evaluateFeelers } from 'feelers';\nimport { isString } from 'min-dash';\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\n\nexport default class FeelersTemplating {\n\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) { 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\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(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 *\n * @returns\n */\n evaluate(template, context = {}, options = {}) {\n\n const {\n debug = false,\n strict = false,\n buildDebugString = (err) => ' {{⚠}} '\n } = options;\n\n return evaluateFeelers(template, context, { debug, strict, buildDebugString });\n }\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\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\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\n })(tree);\n\n }\n}\n\nFeelersTemplating.$inject = [];","// 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\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","import { Injector } from 'didi';\n\nexport function createInjector(bootstrapModules) {\n\n const injector = new Injector(bootstrapModules);\n\n injector.init();\n\n return injector;\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}","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 {\n layout = {}\n } = formField;\n\n const {\n columns\n } = layout;\n\n return classNames(\n 'fjs-layout-column',\n `cds--col${columns ? '-lg-' + columns : ''}`,\n\n // always fall back to top-down on smallest screens\n 'cds--col-sm-16',\n 'cds--col-md-16'\n );\n}\n\nexport function prefixId(id, formId, indexes) {\n let result = 'fjs-form';\n\n if (formId) {\n result += `-${formId}`;\n }\n\n result += `-${id}`;\n\n Object.values(indexes || {}).forEach((index) => {\n result += `_${index}`;\n });\n\n return result;\n}\n","import { formFieldClasses } from '../Util';\n\nconst type = 'button';\n\nexport default function Button(props) {\n const {\n disabled,\n onFocus,\n onBlur,\n field\n } = props;\n\n const { action = 'submit' } = field;\n\n return <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 { field.label }\n </button>\n </div>;\n}\n\nButton.config = {\n type,\n keyed: false,\n label: 'Button',\n group: 'action',\n create: (options = {}) => ({\n action: 'submit',\n ...options\n })\n};\n","import { createContext } from 'preact';\n\nconst FormRenderContext = createContext({\n Empty: (props) => {\n return null;\n },\n Hidden: (props) => {\n return null;\n },\n Children: (props) => {\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\n },\n Element: (props) => {\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\n },\n Row: (props) => {\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\n },\n Column: (props) => {\n if (props.field.type === 'default') {\n return props.children;\n }\n\n return <div class={ props.class } style={ props.style }>{ props.children }</div>;\n },\n hoverInfo: {\n cleanup: () => {}\n },\n});\n\nexport default FormRenderContext;","import { createContext } from 'preact';\n\nconst LocalExpressionContext = createContext({\n data: null,\n this: null,\n parent: null,\n i: null\n});\n\nexport default LocalExpressionContext;","import { createContext } from 'preact';\n\n/**\n * @param {string} type\n * @param {boolean} [strict]\n *\n * @returns {any}\n */\nfunction getService(type, strict) {}\n\nconst FormContext = createContext({\n getService,\n formId: null\n});\n\nexport default FormContext;","import {\n useContext\n} from 'preact/hooks';\n\nimport { FormContext } from '../context';\n\nexport default function useService(type, strict) {\n const {\n getService\n } = useContext(FormContext);\n\n return getService(type, strict);\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 (\n a &&\n b &&\n a.length === b.length &&\n a.every((value, index) => value === b[ index ])\n );\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\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 {\n data,\n ...specialContextKeys\n } = context;\n\n return {\n ...specialContextKeys,\n ...data,\n ..._wrapObjectKeysWithUnderscores(specialContextKeys)\n };\n}\n\nexport function runRecursively(formField, fn) {\n const components = formField.components || [];\n\n components.forEach((component, index) => {\n runRecursively(component, fn);\n });\n\n fn(formField);\n}\n\n// helpers //////////////////////\n\nfunction _wrapObjectKeysWithUnderscores(obj) {\n const newObj = {};\n for (const [ key, value ] of Object.entries(obj)) {\n newObj[`_${key}_`] = value;\n }\n return newObj;\n}","import useService from './useService.js';\nimport { useContext, useMemo } from 'preact/hooks';\nimport LocalExpressionContext from '../context/LocalExpressionContext.js';\nimport { buildExpressionContext } from '../../util/simple';\n\n/**\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\n *\n * @param {string | undefined} condition\n *\n * @returns {boolean} true if condition is met or no condition or condition checker exists\n */\nexport default function useCondition(condition) {\n const conditionChecker = useService('conditionChecker', false);\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n return useMemo(() => {\n return conditionChecker ? conditionChecker.check(condition, buildExpressionContext(expressionContextInfo)) : null;\n }, [ conditionChecker, condition, expressionContextInfo ]);\n}\n","import { some } from 'min-dash';\nimport { useEffect } from 'preact/hooks';\n\n/**\n * Custom hook to scroll an element into view only when it is not visible within the viewport.\n *\n * @param {Object} targetRef - 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 {Array} flagRefs - An array of refs that are used as flags to control when to scroll.\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 */\nexport default function useScrollIntoView(targetRef, deps, scrollOptions = null, flagRefs = []) {\n useEffect(() => {\n\n // return early if flags are not raised, or component is not mounted\n if (some(flagRefs, ref => !ref.current) || !targetRef.current) {\n return;\n }\n\n for (let i = 0; i < flagRefs.length; i++) {\n flagRefs[i].current = false;\n }\n\n const itemToBeScrolled = targetRef.current;\n const scrollContainer = _getNearestScrollableAncestor(itemToBeScrolled);\n\n if (!scrollContainer) {\n return;\n }\n\n const itemRect = itemToBeScrolled.getBoundingClientRect();\n const containerRect = scrollContainer.getBoundingClientRect();\n\n // should scroll if visible or scrollIfVisible option is set\n const shouldScroll = scrollOptions.scrollIfVisible || !(itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom);\n\n if (!shouldScroll) {\n return;\n }\n\n const {\n align = 'center',\n offset = 0,\n behavior = 'auto'\n } = scrollOptions;\n\n const topOffset = _getTopOffset(itemToBeScrolled, scrollContainer, { align, offset });\n scrollContainer.scroll({\n top: topOffset,\n behavior,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n\n// helper //////////////////////\n\nfunction _getNearestScrollableAncestor(el) {\n while (el) {\n if (el.scrollHeight > el.clientHeight) {\n return el;\n }\n el = el.parentElement;\n }\n}\n\nfunction _getTopOffset(item, scrollContainer, options) {\n\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 }\n else if (options.align === 'bottom') {\n return itemRect.bottom - containerRect.top - scrollContainer.clientHeight + scrollContainer.scrollTop + options.offset;\n }\n else if (options.align === 'center') {\n return itemRect.top - containerRect.top - scrollContainer.clientHeight / 2 + scrollContainer.scrollTop + itemRect.height / 2 + options.offset;\n }\n\n return 0;\n}","import useService from './useService';\nimport LocalExpressionContext from '../context/LocalExpressionContext';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { buildExpressionContext } from '../../util/simple';\n\n/**\n * Evaluate a string reactively based on the expressionLanguage and form data.\n * If the string is not an expression, it is returned as is.\n * The function is memoized to minimize re-renders.\n *\n * @param {string} value - The string to evaluate.\n * @returns {any} - Evaluated value or the original value if not an expression.\n */\nexport default function useExpressionEvaluation(value) {\n const expressionLanguage = useService('expressionLanguage');\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n return useMemo(() => {\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\n return expressionLanguage.evaluate(value, buildExpressionContext(expressionContextInfo));\n }\n return value;\n }, [ expressionLanguage, expressionContextInfo, value ]);\n}\n","import useService from './useService.js';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Returns the conditionally filtered data of a form reactively.\n * Memoised to minimize re-renders\n *\n * Warning: costly operation, use with care\n */\nexport default 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}\n","import { useEffect } from 'preact/hooks';\n\nexport default function useKeyDownAction(targetKey, action, listenerElement = window) {\n\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}","import useService from './useService.js';\nimport LocalExpressionContext from '../context/LocalExpressionContext.js';\nimport { buildExpressionContext } from '../../util/simple';\nimport { useContext } from 'preact/hooks';\n\n/**\n * Retrieve readonly value of a form field, given it can be an\n * expression optionally or configured globally.\n *\n * @typedef { import('../../types').FormProperties } FormProperties\n *\n * @param {any} formField\n * @param {FormProperties} properties\n *\n * @returns {boolean}\n */\nexport default function useReadonly(formField, properties = {}) {\n const expressionLanguage = useService('expressionLanguage');\n const conditionChecker = useService('conditionChecker', false);\n const expressionContextInfo = useContext(LocalExpressionContext);\n\n const { readonly } = formField;\n\n if (properties.readOnly) {\n return true;\n }\n\n if (expressionLanguage && expressionLanguage.isExpression(readonly)) {\n return conditionChecker ? conditionChecker.check(readonly, buildExpressionContext(expressionContextInfo)) : false;\n }\n\n return readonly || false;\n}\n","import {\n useEffect,\n useRef\n} from 'preact/hooks';\n\n\nexport default function usePrevious(value, defaultValue, dependencies) {\n const ref = useRef(defaultValue);\n\n useEffect(() => ref.current = value, dependencies);\n\n return ref.current;\n}","import {\n useEffect,\n useState\n} from 'preact/hooks';\n\nimport usePrevious from './usePrevious';\n\n/**\n * A custom hook to manage state changes with deep comparison.\n *\n * @param {any} value - The current value to manage.\n * @param {any} defaultValue - The initial default value for the state.\n * @returns {any} - Returns the current state.\n */\nexport default function useDeepCompareState(value, defaultValue) {\n\n const [ state, setState ] = useState(defaultValue);\n\n const previous = usePrevious(value, defaultValue, [ value ]);\n\n const changed = !compare(previous, value);\n\n useEffect(() => {\n if (changed) {\n setState(value);\n }\n }, [ changed, value ]);\n\n return state;\n\n}\n\n// helpers //////////////////////////\n\nfunction compare(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n}\n","import useService from './useService';\nimport { useContext, useMemo } from 'preact/hooks';\nimport LocalExpressionContext from '../context/LocalExpressionContext';\nimport { buildExpressionContext } from '../../util/simple';\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.buildDebugString]\n *\n */\nexport default 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 default function useSingleLineTemplateEvaluation(value, options = {}) {\n const evaluatedTemplate = useTemplateEvaluation(value, options);\n return useMemo(() => evaluatedTemplate && evaluatedTemplate.split('\\n')[0], [ evaluatedTemplate ]);\n}","import { useSingleLineTemplateEvaluation } from '../hooks';\n\n\nexport default function Description(props) {\n const { description } = props;\n\n const evaluatedDescription = useSingleLineTemplateEvaluation(description || '', { debug: true });\n\n if (!evaluatedDescription) {\n return null;\n }\n\n return <div class=\"fjs-form-field-description\">{ evaluatedDescription }</div>;\n}","export default function Errors(props) {\n const { errors, id } = props;\n\n if (!errors.length) {\n return null;\n }\n\n return <div class=\"fjs-form-field-error\" aria-live=\"polite\" id={ id }>\n <ul>\n {\n errors.map(error => {\n return <li>{ error }</li>;\n })\n }\n </ul>\n </div>;\n}","import classNames from 'classnames';\n\nimport { useSingleLineTemplateEvaluation } from '../hooks';\n\n\n/**\n * @typedef Props\n * @property {string} [id]\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 default function Label(props) {\n const {\n id,\n label,\n collapseOnEmpty = true,\n required = false\n } = props;\n\n const evaluatedLabel = useSingleLineTemplateEvaluation(label || '', { debug: true });\n\n return (\n <label for={ id } class={ classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class']) }>\n { props.children }\n { evaluatedLabel }\n {\n required && <span class=\"fjs-asterix\">*</span>\n }\n </label>\n );\n}","import Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport {\n formFieldClasses\n} from '../Util';\n\nimport classNames from 'classnames';\n\nconst type = 'checkbox';\n\nexport default function Checkbox(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n readonly,\n value = false\n } = props;\n\n const {\n description,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const onChange = ({ target }) => {\n props.onChange({\n field,\n value: target.checked\n });\n };\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value }) }>\n <Label\n id={ domId }\n label={ label }\n required={ required }>\n <input\n checked={ value }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ domId }\n type=\"checkbox\"\n onChange={ onChange }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => onFocus && onFocus() }\n aria-describedby={ errorMessageId } />\n </Label>\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nCheckbox.config = {\n type,\n keyed: true,\n label: 'Checkbox',\n group: 'selection',\n emptyValue: false,\n sanitizeValue: ({ value }) => value === true,\n create: (options = {}) => ({\n ...options\n })\n};\n","import { get, isObject, isString, isNil } from 'min-dash';\n\n// parses the options data from the provided form field and form data\nexport function getOptionsData(formField, formData) {\n const { valuesKey: optionsKey, values: staticOptions } = formField;\n return optionsKey ? get(formData, [ optionsKey ]) : staticOptions;\n}\n\n// transforms the provided options into a normalized format, trimming invalid options\nexport function normalizeOptionsData(optionsData) {\n return optionsData.filter(_isAllowedValue).map(_normalizeOption).filter(o => !isNil(o));\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\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\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\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 function createEmptyOptions(options = {}) {\n\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}","import { useEffect, useState } from 'preact/hooks';\nimport { normalizeOptionsData } from '../components/util/optionsUtil';\nimport { useExpressionEvaluation, useDeepCompareState, useService } from './index';\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 default function(field) {\n const {\n valuesExpression: optionsExpression,\n valuesKey: optionsKey,\n values: staticOptions\n } = field;\n\n const [ optionsGetter, setOptionsGetter ] = useState({ options: [], error: undefined, loadState: LOAD_STATES.LOADING });\n const initialData = useService('form')._getState().initialData;\n\n const expressionEvaluation = useExpressionEvaluation(optionsExpression);\n const evaluatedOptions = useDeepCompareState(expressionEvaluation || [], []);\n\n useEffect(() => {\n\n let options = [];\n\n // dynamic options\n if (optionsKey !== undefined) {\n const keyedOptions = (initialData || {})[ optionsKey ];\n\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) {\n\n if (evaluatedOptions && Array.isArray(evaluatedOptions)) {\n options = evaluatedOptions;\n }\n } else {\n setOptionsGetter(buildErrorState('No options source defined in the form definition'));\n return;\n }\n\n // normalize data to support primitives and partially defined objects\n options = normalizeOptionsData(options);\n\n setOptionsGetter(buildLoadedState(options));\n\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 { isNumber } from 'min-dash';\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\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\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\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\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 }\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\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n return _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) + ':' + _getZeroPaddedString(normalizedMinutes % 60) + 'Z';\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\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\nexport function serializeDate(date) {\n var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [ year, month, day ].join('-');\n}\n\n// this method is used to make the `new Date(value)` parsing behavior stricter\nexport function isDateTimeInputInformationSufficient(value) {\n\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\n// this method checks if the date isn't a datetime, or a partial date\nexport function isDateInputInformationMatching(value) {\n\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\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\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}\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\nfunction _getSignedPaddedHours(minutes) {\n if (minutes > 0) {\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\n }\n else {\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\n }\n}\n\nfunction _getZeroPaddedString(time) {\n return time.toString().padStart(2, '0');\n}","import isEqual from 'lodash/isEqual';\nimport { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\nimport { getOptionsData, normalizeOptionsData } from './optionsUtil';\n\nexport function sanitizeDateTimePickerValue(options) {\n const {\n formField,\n value\n } = 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))) return null;\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\n if (subtype === DATETIME_SUBTYPES.DATETIME && (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))) return null;\n\n return value;\n}\n\nexport function hasEqualValue(value, array) {\n\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 {\n formField,\n data,\n value\n } = options;\n\n try {\n const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);\n return hasEqualValue(value, validValues) ? value : null;\n } catch (error) {\n\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 {\n formField,\n data,\n value\n } = options;\n\n try {\n const validValues = normalizeOptionsData(getOptionsData(formField, data)).map(v => v.value);\n return value.filter(v => hasEqualValue(v, validValues));\n } catch (error) {\n\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","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\n\nexport default function(props) {\n\n const {\n field,\n options,\n loadState,\n onChange,\n values\n } = props;\n\n // Ensures that the values are always a subset of the possible options\n useEffect(() => {\n\n if (loadState !== LOAD_STATES.LOADED) {\n return;\n }\n\n const optionValues = options.map(o => o.value);\n const hasValuesNotInOptions = values.some(v => !hasEqualValue(v, optionValues));\n\n if (hasValuesNotInOptions) {\n onChange({\n field,\n value: values.filter(v => hasEqualValue(v, optionValues))\n });\n }\n\n }, [ field, options, onChange, JSON.stringify(values), loadState ]);\n\n}","import { useRef } from 'preact/hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport useCleanupMultiSelectValues from '../../hooks/useCleanupMultiSelectValues';\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 {\n formFieldClasses\n} from '../Util';\n\nconst type = 'checklist';\n\n\nexport default function Checklist(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n readonly,\n value: values = [],\n } = props;\n\n const {\n description,\n label,\n validate = {}\n } = field;\n\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const toggleCheckbox = (toggledValue) => {\n\n const newValues = hasEqualValue(toggledValue, values)\n ? values.filter(value => !isEqual(value, toggledValue))\n : [ ...values, toggledValue ];\n\n props.onChange({\n field,\n value: newValues,\n });\n };\n\n const onCheckboxBlur = (e) => {\n\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n };\n\n const onCheckboxFocus = (e) => {\n\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n };\n\n const {\n loadState,\n options\n } = useOptionsAsync(field);\n\n useCleanupMultiSelectValues({\n field,\n loadState,\n options,\n values,\n onChange: props.onChange\n });\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly })) } ref={ outerDivRef }>\n <Label\n label={ label }\n required={ required } />\n {\n loadState == LOAD_STATES.LOADED && options.map((o, index) => {\n\n const itemDomId = `${domId}-${index}`;\n const isChecked = hasEqualValue(o.value, values);\n\n return (\n <Label\n id={ itemDomId }\n label={ o.label }\n class={ classNames({\n 'fjs-checked': isChecked\n }) }\n required={ false }>\n <input\n checked={ isChecked }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ itemDomId }\n type=\"checkbox\"\n onClick={ () => toggleCheckbox(o.value) }\n onBlur={ onCheckboxBlur }\n onFocus={ onCheckboxFocus }\n aria-describedby={ errorMessageId } />\n </Label>\n );\n })\n }\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nChecklist.config = {\n type,\n keyed: true,\n label: 'Checkbox group',\n group: 'selection',\n emptyValue: [],\n sanitizeValue: sanitizeMultiSelectValue,\n create: createEmptyOptions\n};\n","import { useCallback, useContext, useEffect, useMemo } from 'preact/hooks';\n\nimport { get } from 'min-dash';\n\nimport { FormContext, FormRenderContext } from '../context';\n\nimport {\n useCondition,\n useReadonly,\n useService\n} from '../hooks';\n\nimport { gridColumnClasses, prefixId } from './Util';\n\nconst noop = () => false;\n\n\nexport default function FormField(props) {\n const {\n field,\n indexes,\n onChange\n } = props;\n\n const formFields = useService('formFields'),\n viewerCommands = useService('viewerCommands', false),\n pathRegistry = useService('pathRegistry'),\n eventBus = useService('eventBus'),\n form = useService('form');\n\n const {\n initialData,\n data,\n errors,\n properties\n } = form._getState();\n\n const {\n Element,\n Hidden,\n Column\n } = useContext(FormRenderContext);\n\n const { formId } = useContext(FormContext);\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 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 && (\n properties.disabled || field.disabled || false\n );\n\n const onBlur = useCallback(() => {\n if (viewerCommands) {\n viewerCommands.updateFieldValidation(field, value, indexes);\n }\n eventBus.fire('formField.blur', { formField: field });\n }, [ eventBus, viewerCommands, field, value, indexes ]);\n\n const onFocus = useCallback(() => {\n eventBus.fire('formField.focus', { formField: field });\n }, [ eventBus, field ]);\n\n useEffect(() => {\n if (viewerCommands && initialValue) {\n viewerCommands.updateFieldValidation(field, initialValue, indexes);\n }\n }, [ viewerCommands, field, initialValue, JSON.stringify(indexes) ]);\n\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\n\n const onChangeIndexed = useCallback((update) => {\n\n // add indexes of the keyed field to the update, if any\n onChange(FormFieldComponent.config.keyed ? { ...update, indexes } : update);\n }, [ onChange, FormFieldComponent.config.keyed, indexes ]);\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 const errorMessageId = errors.length === 0 ? undefined : `${domId}-error-message`;\n\n return (\n <Column field={ field } class={ gridColumnClasses(field) }>\n <Element class=\"fjs-element\" field={ field }>\n <FormFieldComponent\n { ...props }\n disabled={ disabled }\n errors={ fieldErrors }\n errorMessageId={ errorMessageId }\n domId={ domId }\n onChange={ disabled || readonly ? noop : onChangeIndexed }\n onBlur={ disabled || readonly ? noop : onBlur }\n onFocus={ disabled || readonly ? noop : onFocus }\n readonly={ readonly }\n value={ value } />\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 default function ChildrenRenderer(props) {\n\n const {\n Children\n } = 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 (\n isRepeating\n ? <RepeatChildrenRenderer { ...props } { ...{ ChildrenRoot: Children, Empty, Repeater, RepeatFooter, repeatRenderManager } } />\n : <SimpleChildrenRenderer { ...props } { ...{ ChildrenRoot: Children, Empty } } />\n );\n}\n\nfunction SimpleChildrenRenderer(props) {\n\n const {\n ChildrenRoot,\n Empty,\n field\n } = 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\n const {\n ChildrenRoot,\n repeatRenderManager,\n Empty,\n field,\n ...restProps\n } = 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 <ChildrenRoot class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\n { Repeater ? <Repeater { ...{ ...restProps, useSharedState, field, RowsRenderer } } /> : <RowsRenderer { ...{ ...restProps, field } } /> }\n { !components.length ? <Empty field={ field } /> : null }\n </ChildrenRoot>\n { RepeatFooter ? <RepeatFooter { ...{ ...restProps, useSharedState, field } } /> : null }\n </>;\n}\n\nfunction RowsRenderer(props) {\n\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 {\n Row\n } = useContext(FormRenderContext);\n\n return <> {\n rows.map(row => {\n const {\n components = []\n } = row;\n\n if (!components.length) {\n return null;\n }\n\n return (\n <Row row={ row } class=\"fjs-layout-row cds--row\" style={ { alignItems: verticalAlignment } }>\n {\n components.map(childId => {\n\n const childField = formFieldRegistry.get(childId);\n\n if (!childField) {\n return null;\n }\n\n return (\n <FormField\n { ...props }\n key={ childId }\n field={ childField }\n indexes={ indexes } />\n );\n })\n }\n </Row>\n );\n })\n } </>;\n}\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport ChildrenRenderer from './parts/ChildrenRenderer';\n\nexport default function FormComponent(props) {\n\n const {\n Empty,\n } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return <ChildrenRenderer { ...fullProps } />;\n}\n\nFormComponent.config = {\n type: 'default',\n keyed: false,\n label: null,\n group: null,\n create: (options = {}) => ({\n components: [],\n ...options\n })\n};\n","/**\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.map(part => {\n const len = part.value.length;\n switch (part.type) {\n case 'day': return 'd'.repeat(len);\n case 'month': return 'M'.repeat(len);\n case 'year': return 'y'.repeat(len);\n default: return part.value;\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\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","<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>","import classNames from 'classnames';\nimport { isString } from 'min-dash';\n\nexport default function InputAdorner(props) {\n\n const {\n pre,\n post,\n rootRef,\n inputRef,\n children,\n disabled,\n readonly,\n hasErrors\n } = props;\n\n const onAdornmentClick = () => inputRef && inputRef.current && inputRef.current.focus();\n\n return <div class={ classNames('fjs-input-group', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }, { 'hasErrors': hasErrors }) } ref={ rootRef }>\n { pre && <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={ onAdornmentClick }> { isString(pre) ? <span class=\"fjs-input-adornment-text\">{ pre }</span> : pre } </span> }\n { children }\n { post && <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={ onAdornmentClick }> { isString(post) ? <span class=\"fjs-input-adornment-text\">{ post }</span> : post } </span> }\n </div>;\n\n}","import flatpickr from 'flatpickr';\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\nimport { getLocaleReadableDateFormat, getLocaleDateFlatpickrConfig } from '../../util/localisationUtil';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport CalendarIcon from '../icons/Calendar.svg';\nimport InputAdorner from './InputAdorner';\nimport Label from '../../Label';\n\nexport default function Datepicker(props) {\n\n const {\n label,\n domId,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n required,\n disabled,\n disallowPassedDates,\n date,\n readonly,\n setDate\n } = props;\n\n const dateInputRef = useRef();\n const focusScopeRef = useRef();\n\n const [ flatpickrInstance, setFlatpickrInstance ] = useState(null);\n const [ isInputDirty, setIsInputDirty ] = useState(false);\n const [ forceFocusCalendar, setForceFocusCalendar ] = useState(false);\n\n // shorts the date value back to the source\n useEffect(() => {\n\n if (!flatpickrInstance || !flatpickrInstance.config) return;\n\n flatpickrInstance.setDate(date, true);\n setIsInputDirty(false);\n\n }, [ flatpickrInstance, date.toString() ]);\n\n useEffect(() => {\n\n if (!forceFocusCalendar) return;\n\n focusRelevantFlatpickerDay(flatpickrInstance);\n setForceFocusCalendar(false);\n\n }, [ flatpickrInstance, forceFocusCalendar ]);\n\n // setup flatpickr instance\n useEffect(() => {\n\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: () => { /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */ }\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 }, [ disallowPassedDates ]);\n\n // onChange is updated dynamically, so not to re-render the flatpicker every time it changes\n useEffect(() => {\n\n if (!flatpickrInstance || !flatpickrInstance.config) return;\n\n flatpickrInstance.config.onChange = [ (date) => setDate(new Date(date)), () => setIsInputDirty(false) ];\n\n }, [ flatpickrInstance, setDate ]);\n\n const onInputKeyDown = useCallback(\n (e) => {\n\n if (!flatpickrInstance) return;\n\n if (e.code === 'Escape') {\n flatpickrInstance.close();\n }\n\n if (e.code === 'ArrowDown') {\n\n if (isInputDirty) {\n\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 }\n else {\n\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\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\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 <div class=\"fjs-datetime-subsection\">\n <Label\n id={ domId }\n label={ label }\n collapseOnEmpty={ collapseLabelOnEmpty }\n 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 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 </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 default function DropdownList(props) {\n\n const {\n listenerElement = window,\n values = [],\n getLabel = DEFAULT_LABEL_GETTER,\n onValueSelected = NOOP,\n height = 235,\n emptyListMessage = 'No results',\n initialFocusIndex = 0\n } = props;\n\n const [ mouseControl, setMouseControl ] = useState(false);\n const [ focusedValueIndex, setFocusedValueIndex ] = useState(initialFocusIndex);\n const [ smoothScrolling, setSmoothScrolling ] = useState(false);\n const dropdownContainer = useRef();\n const mouseScreenPos = useRef();\n\n const focusedItem = useMemo(() => values.length ? values[focusedValueIndex] : null, [ focusedValueIndex, values ]);\n\n const changeFocusedValueIndex = useCallback((delta) => {\n setFocusedValueIndex(x => Math.min(Math.max(0, x + delta), values.length - 1));\n }, [ values.length ]);\n\n useEffect(() => {\n if (focusedValueIndex === 0) return;\n\n if (!focusedValueIndex || !values.length) {\n setFocusedValueIndex(0);\n }\n else if (focusedValueIndex >= values.length) {\n setFocusedValueIndex(values.length - 1);\n }\n }, [ focusedValueIndex, values.length ]);\n\n useKeyDownAction('ArrowUp', () => {\n if (values.length) {\n changeFocusedValueIndex(-1);\n setMouseControl(false);\n }\n }, listenerElement);\n\n useKeyDownAction('ArrowDown', () => {\n if (values.length) {\n changeFocusedValueIndex(1);\n setMouseControl(false);\n }\n }, listenerElement);\n\n useKeyDownAction('Enter', () => {\n if (focusedItem) {\n onValueSelected(focusedItem);\n }\n }, listenerElement);\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\n const userMovedCursor = !mouseScreenPos.current || 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\n return <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 {\n values.length > 0 && values.map((v, i) => {\n return (\n <div\n class={ classNames('fjs-dropdownlist-item', { 'focused': focusedValueIndex === i }) }\n onMouseMove={ mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, i) }\n onMouseEnter={ mouseControl ? () => setFocusedValueIndex(i) : undefined }\n onMouseDown={ (e) => onValueSelected(v) }>\n {getLabel(v)}\n </div>\n );\n })\n }\n {\n !values.length && <div class=\"fjs-dropdownlist-empty\">{ emptyListMessage }</div>\n }\n </div>;\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 default function Timepicker(props) {\n\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\n const allowedIntervals = [ 1, 5, 10, 15, 30, 60 ];\n\n if (allowedIntervals.includes(timeInterval)) {\n return timeInterval;\n }\n\n return 15;\n\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\n }, [ time, setTime, use24h, safeTimeInterval ]);\n\n const propagateRawToMinute = useCallback((newRawValue) => {\n\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 const timeOptions = useMemo(() => {\n\n const minutesInDay = 24 * 60;\n const intervalCount = Math.floor(minutesInDay / safeTimeInterval);\n return [ ...Array(intervalCount).keys() ].map(intervalIndex => formatTime(use24h, intervalIndex * safeTimeInterval));\n\n }, [ safeTimeInterval, use24h ]);\n\n const initialFocusIndex = useMemo(() => {\n\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\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 <div class=\"fjs-datetime-subsection\">\n <Label\n id={ domId }\n label={ label }\n collapseOnEmpty={ collapseLabelOnEmpty }\n required={ required } />\n <InputAdorner\n pre={ <ClockIcon /> }\n inputRef={ timeInputRef }\n disabled={ disabled }\n readonly={ readonly }>\n <div class=\"fjs-timepicker fjs-timepicker-anchor\">\n <input ref={ timeInputRef }\n type=\"text\"\n id={ domId }\n class=\"fjs-input\"\n value={ rawValue }\n disabled={ disabled }\n readOnly={ readonly }\n placeholder={ use24h ? 'hh:mm' : 'hh:mm ?m' }\n autoComplete=\"off\"\n\n // @ts-ignore\n onInput={ (e) => { setRawValue(e.target.value); useDropdown && setDropdownIsOpen(false); } }\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 { dropdownIsOpen && <DropdownList\n values={ timeOptions }\n height={ 150 }\n onValueSelected={ onDropdownValueSelected }\n listenerElement={ timeInputRef.current }\n initialFocusIndex={ initialFocusIndex } /> }\n\n </div>\n </InputAdorner>\n </div>;\n}\n","import { useCallback, useContext, useMemo, useState, useEffect, useRef } from 'preact/hooks';\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 { parseIsoTime, serializeDate, serializeDateTime, serializeTime } from '../util/dateTimeUtil';\n\nconst type = 'datetime';\n\nexport default function Datetime(props) {\n const {\n disabled,\n errors = [],\n domId,\n onBlur,\n onFocus,\n field,\n onChange,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n id,\n dateLabel,\n timeLabel,\n validate = {},\n subtype,\n use24h,\n disallowPassedDates,\n timeInterval,\n timeSerializingFormat\n } = field;\n\n const { required } = validate;\n const { formId } = useContext(FormContext);\n const dateTimeGroupRef = useRef();\n\n const getNullDateTime = () => ({ date: new Date(Date.parse(null)), time: null });\n\n const [ dateTime, setDateTime ] = useState(getNullDateTime());\n const [ dateTimeUpdateRequest, setDateTimeUpdateRequest ] = useState(null);\n\n const isValidDate = (date) => date && !isNaN(date.getTime());\n const isValidTime = (time) => !isNaN(parseInt(time));\n\n const useDatePicker = useMemo(() => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\n const useTimePicker = useMemo(() => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\n\n const onDateTimeBlur = useCallback((e) => {\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur && onBlur();\n }, [ onBlur ]);\n\n const onDateTimeFocus = useCallback((e) => {\n if (e.relatedTarget && dateTimeGroupRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onFocus && onFocus();\n }, [ onFocus ]);\n\n useEffect(() => {\n\n let { date, time } = getNullDateTime();\n\n switch (subtype) {\n case DATETIME_SUBTYPES.DATE: {\n date = new Date(Date.parse(value));\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 setDateTime({ date, time });\n\n }, [ subtype, value ]);\n\n const computeAndSetState = useCallback(({ date, time }) => {\n\n let newDateTimeValue = null;\n\n if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\n newDateTimeValue = serializeDate(date);\n }\n else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\n newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\n }\n else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\n newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\n }\n\n onChange({ value: newDateTimeValue, field });\n\n }, [ field, onChange, subtype, timeSerializingFormat ]);\n\n useEffect(() => {\n if (dateTimeUpdateRequest) {\n if (dateTimeUpdateRequest.refreshOnly) {\n computeAndSetState(dateTime);\n }\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 = (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) || (!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\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': errorMessageId\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': errorMessageId\n };\n\n return <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 description={ description } />\n <Errors errors={ allErrors } id={ errorMessageId } />\n </div>;\n}\n\nDatetime.config = {\n type,\n keyed: true,\n label: 'Date time',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: sanitizeDateTimePickerValue,\n create: (options = {}) => {\n const defaults = {};\n set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\n set(defaults, DATE_LABEL_PATH, 'Date');\n\n return { ...defaults, ...options };\n }\n};\n","/**\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 <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14.02 5.57\" width=\"53\" height=\"21\" style=\"vertical-align:middle\"><path fill=\"currentColor\" 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\" /><path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\" /></svg>;\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 class=\"backdrop\" style=\"width: 100%; height: 100%; background: rgba(40 40 40 / 20%)\" onClick={ props.onBackdropClick }></div>\n <div class=\"notice\" 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 href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" 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\n powered by <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">bpmn.io</a>.\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 href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" class=\"fjs-powered-by-link\" title=\"Powered by bpmn.io\" style=\"color: var(--cds-text-primary, #404040)\" onClick={ props.onClick }><Logo /></a>\n </div>\n );\n}\n\nexport default function PoweredBy(props) {\n\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 {\n createPortal(\n <Lightbox open={ open } onBackdropClick={ toggleOpen(false) } />,\n document.body\n )\n }\n <Link onClick={ toggleOpen(true) } />\n </Fragment>\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 default function FormComponent(props) {\n const form = useService('form');\n\n const { schema, properties } = form._getState();\n\n const { ariaLabel } = properties;\n\n const {\n onSubmit = noop,\n onReset = noop,\n onChange = noop,\n } = 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 data: filteredFormData,\n parent: null,\n this: filteredFormData,\n i: []\n }), [ filteredFormData ]);\n\n return (\n <form\n class=\"fjs-form\"\n onSubmit={ handleSubmit }\n onReset={ handleReset }\n aria-label={ ariaLabel }\n noValidate\n >\n <LocalExpressionContext.Provider value={ localExpressionContext }>\n <FormField\n field={ schema }\n onChange={ onChange }\n />\n </LocalExpressionContext.Provider>\n <PoweredBy />\n </form>\n );\n}","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\nimport Label from '../Label';\nimport classNames from 'classnames';\nimport ChildrenRenderer from './parts/ChildrenRenderer';\n\nexport default function Group(props) {\n\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 className={ classNames(formFieldClasses(type), 'fjs-form-field-grouplike' , { 'fjs-outlined' : showOutline }) } role=\"group\" aria-labelledby={ domId }>\n <Label\n id={ domId }\n label={ label } />\n <ChildrenRenderer { ...fullProps } />\n </div>\n );\n}\n\nGroup.config = {\n type: 'group',\n pathed: true,\n label: 'Group',\n group: 'container',\n create: (options = {}) => ({\n components: [],\n showOutline: true,\n ...options\n })\n};\n","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 = [\n 'align',\n 'alt',\n 'class',\n 'href',\n 'id',\n 'name',\n 'rel',\n 'target',\n 'src'\n];\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 ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape\nconst ALLOWED_IFRAME_SRC_PATTERN = /^(https):\\/\\/*/i; // eslint-disable-line no-useless-escape\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\n const doc = new DOMParser().parseFromString(\n `<!DOCTYPE html>\\n<html><body><div>${ html }`,\n 'text/html'\n );\n\n doc.normalize();\n\n const element = doc.body.firstChild;\n\n if (element) {\n sanitizeNode(/** @type Element */ (element));\n\n return new XMLSerializer().serializeToString(element);\n } else {\n\n // handle the case that document parsing\n // does not work at all, due to HTML gibberish\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/**\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\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\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/**\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\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}","import { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\nimport { sanitizeIFrameSource } from '../Sanitizer';\n\nimport Label from '../Label';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'iframe';\n\nconst DEFAULT_HEIGHT = 300;\n\n\nexport default function IFrame(props) {\n const {\n field,\n disabled,\n readonly\n } = props;\n\n const {\n height = DEFAULT_HEIGHT,\n id,\n label,\n url\n } = 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 { formId } = useContext(FormContext);\n\n return <div class={ formFieldClasses(type, { disabled, readonly }) }>\n <Label id={ prefixId(id, formId) } label={ evaluatedLabel } />\n {\n !evaluatedUrl && <IFramePlaceholder text=\"No content to show.\" />\n }\n {\n evaluatedUrl && safeUrl &&\n <iframe\n src={ safeUrl }\n title={ evaluatedLabel }\n height={ height }\n class=\"fjs-iframe\"\n id={ prefixId(id, formId) }\n sandbox=\"allow-scripts\"\n />\n }\n {\n evaluatedUrl && !safeUrl && <IFramePlaceholder text=\"External content couldn't be loaded.\" />\n }\n </div>;\n}\n\nfunction IFramePlaceholder(props) {\n const { text = 'iFrame' } = props;\n\n return <div class=\"fjs-iframe-placeholder\">\n <p class=\"fjs-iframe-placeholder-text\">{ text }</p>\n </div>;\n}\n\nIFrame.config = {\n type,\n keyed: false,\n label: 'iFrame',\n group: 'container',\n create: (options = {}) => ({\n ...options\n })\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" width=\"64\" height=\"64\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\" viewBox=\"0 0 1280 1280\"><path d=\"M0 0h1280v1280H0z\" style=\"fill:#e5e9ed\"/><path d=\"M910 410H370v470h540V410Zm-57.333 57.333v355.334H427.333V467.333h425.334Z\" style=\"fill:#cad3db\"/><path d=\"M810 770H480v-60l100-170 130 170 100-65v125Z\" style=\"fill:#cad3db\"/><circle cx=\"750\" cy=\"550\" r=\"50\" style=\"fill:#cad3db\" transform=\"translate(10 10)\"/></svg>","import { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { useSingleLineTemplateEvaluation } from '../../hooks';\nimport { sanitizeImageSource } from '../Sanitizer';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\n\nconst type = 'image';\n\n\nexport default function Image(props) {\n const {\n field\n } = props;\n\n const {\n alt,\n id,\n source\n } = field;\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 <div class={ formFieldClasses(type) }>\n <div class=\"fjs-image-container\">\n {\n safeSource &&\n <img\n alt={ altText }\n src={ safeSource }\n class=\"fjs-image\"\n id={ prefixId(id, formId) } />\n }\n { !safeSource &&\n <div class=\"fjs-image-placeholder\">\n <ImagePlaceholder alt=\"This is an image placeholder\" />\n </div>\n }\n </div>\n </div>;\n}\n\nImage.config = {\n type,\n keyed: false,\n label: 'Image view',\n group: 'presentation',\n create: (options = {}) => ({\n ...options\n })\n};\n","import InputAdorner from './InputAdorner';\n\nimport { useSingleLineTemplateEvaluation } from '../../../hooks';\n\nexport default function TemplatedInputAdorner(props) {\n\n const {\n pre,\n post\n } = 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\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 = 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}\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';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\nimport InputAdorner from './parts/TemplatedInputAdorner';\n\nimport AngelDownIcon from './icons/AngelDown.svg';\nimport AngelUpIcon from './icons/AngelUp.svg';\n\nimport {\n formFieldClasses\n} from '../Util';\n\nimport {\n isNullEquivalentValue,\n isValidNumber,\n willKeyProduceValidNumber\n} from '../util/numberFieldUtil';\n\nconst type = 'number';\n\nexport default function Numberfield(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n value,\n readonly,\n onChange\n } = props;\n\n const {\n description,\n label,\n appearance = {},\n validate = {},\n decimalDigits,\n serializeToString = false,\n increment: incrementValue\n } = field;\n\n const {\n prefixAdorner,\n suffixAdorner\n } = appearance;\n\n const { required } = validate;\n\n const inputRef = useRef();\n\n const [ stringValueCache, setStringValueCache ] = useState('');\n\n // checks whether the value currently in the form data is practically different from the one in the input field cache\n // this allows us to guarantee the field always displays valid form data, but without auto-simplifying values like 1.000 to 1\n const cacheValueMatchesState = useMemo(() => Numberfield.config.sanitizeValue({ value, formField: field }) === Numberfield.config.sanitizeValue({ value: stringValueCache, formField: field }), [ stringValueCache, value, field ]);\n\n const displayValue = useMemo(() => {\n\n if (value === 'NaN') return 'NaN';\n if (stringValueCache === '-') return '-';\n return cacheValueMatchesState ? stringValueCache : ((value || value === 0) ? Big(value).toFixed() : '');\n\n }, [ stringValueCache, value, cacheValueMatchesState ]);\n\n const arrowIncrementValue = useMemo(() => {\n\n if (incrementValue) return Big(incrementValue);\n if (decimalDigits) return Big(`1e-${decimalDigits}`);\n return Big('1');\n\n }, [ decimalDigits, incrementValue ]);\n\n\n const setValue = useCallback((stringValue) => {\n\n if (isNullEquivalentValue(stringValue)) {\n setStringValueCache('');\n onChange({ field, value: null });\n return;\n }\n\n // treat commas as dots\n stringValue = stringValue.replaceAll(',', '.');\n\n if (stringValue === '-') {\n setStringValueCache('-');\n return;\n }\n\n if (isNaN(Number(stringValue))) {\n setStringValueCache('NaN');\n onChange({ field, value: 'NaN' });\n return;\n }\n\n setStringValueCache(stringValue);\n onChange({ field, value: serializeToString ? stringValue : Number(stringValue) });\n\n }, [ field, onChange, serializeToString ]);\n\n const increment = () => {\n if (readonly) {\n return;\n }\n\n const base = isValidNumber(value) ? Big(value) : Big(0);\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\n\n // note: toFixed() behaves differently in big.js\n setValue(stepFlooredValue.plus(arrowIncrementValue).toFixed());\n };\n\n const decrement = () => {\n if (readonly) {\n return;\n }\n\n const base = isValidNumber(value) ? Big(value) : Big(0);\n const offset = base.mod(arrowIncrementValue);\n\n if (offset.cmp(0) === 0) {\n\n // if we're already on a valid step, decrement\n setValue(base.minus(arrowIncrementValue).toFixed());\n }\n else {\n\n // otherwise floor to the step\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\n setValue(stepFlooredValue.toFixed());\n }\n };\n\n const onKeyDown = (e) => {\n\n // delete the NaN state all at once on backspace or delete\n if (value === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\n setValue(null);\n e.preventDefault();\n return;\n }\n\n if (e.code === 'ArrowUp') {\n increment();\n e.preventDefault();\n return;\n }\n\n if (e.code === 'ArrowDown') {\n decrement();\n e.preventDefault();\n return;\n }\n\n };\n\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 return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ domId }\n label={ label }\n required={ required } />\n <InputAdorner disabled={ disabled } readonly={ readonly } pre={ prefixAdorner } post={ suffixAdorner }>\n <div class={ classNames('fjs-vertical-group', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }, { 'hasErrors': errors.length }) }>\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={ onBlur }\n onFocus={ onFocus }\n\n // @ts-ignore\n onInput={ (e) => setValue(e.target.value) }\n type=\"text\"\n autoComplete=\"off\"\n step={ arrowIncrementValue }\n value={ displayValue }\n aria-describedby={ errorMessageId } />\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 class=\"fjs-number-arrow-up\"\n type=\"button\"\n aria-label=\"Increment\"\n onClick={ () => increment() }\n tabIndex={ -1 }><AngelUpIcon /></button>\n <div class=\"fjs-number-arrow-separator\" />\n <button\n class=\"fjs-number-arrow-down\"\n type=\"button\"\n aria-label=\"Decrement\"\n onClick={ () => decrement() }\n tabIndex={ -1 }><AngelDownIcon /></button>\n </div>\n </div>\n </InputAdorner>\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nNumberfield.config = {\n type,\n keyed: true,\n label: 'Number',\n group: 'basic-input',\n emptyValue: null,\n sanitizeValue: ({ value, formField }) => {\n\n // invalid value types are sanitized to null\n if (isNullEquivalentValue(value) || !isValidNumber(value)) return null;\n\n // otherwise, we return a string or a number depending on the form field configuration\n return formField.serializeToString ? value.toString() : Number(value);\n },\n create: (options = {}) => ({\n ...options\n })\n};","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\nimport { hasEqualValue } from '../components/util/sanitizerUtil';\n\nexport default function(props) {\n\n const {\n field,\n options,\n loadState,\n onChange,\n value\n } = props;\n\n // Ensures that the value is always one of the possible options\n useEffect(() => {\n\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\n }, [ field, options, onChange, value, loadState ]);\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 {\n formFieldClasses\n} from '../Util';\n\nconst type = 'radio';\n\n\nexport default function Radio(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const {\n description,\n label,\n validate = {}\n } = field;\n\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const onChange = (v) => {\n props.onChange({\n field,\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 {\n loadState,\n options\n } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange\n });\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) } ref={ outerDivRef }>\n <Label\n label={ label }\n required={ required } />\n {\n loadState == LOAD_STATES.LOADED && options.map((option, index) => {\n\n const itemDomId = `${domId}-${index}`;\n const isChecked = isEqual(option.value, value);\n\n return (\n <Label\n id={ itemDomId }\n key={ index }\n label={ option.label }\n class={ classNames({ 'fjs-checked': isChecked }) }\n required={ false }>\n <input\n checked={ isChecked }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ itemDomId }\n type=\"radio\"\n onClick={ () => onChange(option.value) }\n onBlur={ onRadioBlur }\n onFocus={ onRadioFocus }\n aria-describedby={ errorMessageId } />\n </Label>\n );\n })\n }\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nRadio.config = {\n type,\n keyed: true,\n label: 'Radio group',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: createEmptyOptions\n};\n","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\n // This allows us to retrieve the label from a value in linear time\n const labelMap = useMemo(() => Object.assign({}, ...options.map((o) => ({ [_getValueHash(o.value)]: o.label }))), [ options ]);\n return useCallback((value) => labelMap[_getValueHash(value)], [ labelMap ]);\n}\n\nconst _getValueHash = (value) => {\n return isObject(value) ? JSON.stringify(value) : value;\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 } from '../../../hooks';\nimport useCleanupSingleSelectValue from '../../../hooks/useCleanupSingleSelectValue';\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 default function SearchableSelect(props) {\n const {\n domId,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const [ filter, setFilter ] = useState('');\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const [ isFilterActive, setIsFilterActive ] = useState(true);\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\n const searchbarRef = useRef();\n const eventBus = useService('eventBus');\n\n const {\n loadState,\n options\n } = 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(() => { setFilter(label); }, [ label ]);\n\n const filteredOptions = useMemo(() => {\n\n if (loadState !== LOAD_STATES.LOADED) {\n return [];\n }\n\n if (!filter || !isFilterActive) {\n return options;\n }\n\n return options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase())));\n\n }, [ filter, loadState, options, isFilterActive ]);\n\n const setValue = useCallback((option) => {\n setFilter(option && option.label || '');\n props.onChange({ value: option && option.value || null, field });\n }, [ field, props ]);\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((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 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((keyDownEvent) => {\n\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 }, [ isDropdownExpanded, isEscapeClosed ]);\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 <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 { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.preventDefault(); } }><XMarkIcon /> </span> }\n <span class=\"fjs-select-arrow\" onMouseDown={ (e) => onAngelMouseDown(e) }>{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\n </div>\n <div class=\"fjs-select-anchor\">\n { displayState.displayDropdown && <DropdownList\n values={ filteredOptions }\n getLabel={ (o) => o.label }\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\n listenerElement={ searchbarRef.current } />}\n </div>\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 default function SimpleSelect(props) {\n const {\n domId,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const selectRef = useRef();\n const inputRef = useRef();\n\n const {\n loadState,\n options\n } = useOptionsAsync(field);\n\n useCleanupSingleSelectValue({\n field,\n loadState,\n options,\n value,\n onChange: props.onChange\n });\n\n const getLabelCorrelation = useGetLabelCorrelation(options);\n\n const valueLabel = useMemo(() => value && getLabelCorrelation(value), [ value, getLabelCorrelation ]);\n\n const setValue = useCallback((option) => {\n props.onChange({ value: option && option.value || null, field });\n }, [ field, props ]);\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, value ]);\n\n const onMouseDown = useCallback((e) => {\n const input = inputRef.current;\n setIsDropdownExpanded(!isDropdownExpanded);\n\n if (isDropdownExpanded) {\n input.blur();\n } else {\n input.focus();\n }\n\n e.preventDefault();\n }, [ isDropdownExpanded ]);\n\n const initialFocusIndex = useMemo(() => value && findIndex(options, (o) => o.value === value) || 0, [ options, value ]);\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 <div 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` }>{ valueLabel || 'Select' }</div>\n { !disabled && <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 { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.stopPropagation(); } }><XMarkIcon /></span> }\n <span class=\"fjs-select-arrow\">{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\n </div>\n <div class=\"fjs-select-anchor\">\n {displayState.displayDropdown && <DropdownList\n values={ options }\n getLabel={ (o) => o.label }\n initialFocusIndex={ initialFocusIndex }\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\n listenerElement={ selectRef.current } />}\n </div>\n </>;\n}\n","import 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 {\n formFieldClasses\n} from '../Util';\nimport SearchableSelect from './parts/SearchableSelect';\nimport SimpleSelect from './parts/SimpleSelect';\n\nconst type = 'select';\n\nexport default function Select(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n onChange,\n readonly,\n value\n } = props;\n\n const {\n description,\n label,\n searchable = false,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const selectProps = {\n domId,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n value,\n onChange,\n readonly,\n 'aria-describedby': errorMessageId,\n };\n\n return <div\n class={ formFieldClasses(type, { errors, disabled, readonly }) }\n onKeyDown={\n (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n >\n <Label\n id={ domId }\n label={ label }\n required={ required } />\n { searchable ? <SearchableSelect { ...selectProps } /> : <SimpleSelect { ...selectProps } /> }\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nSelect.config = {\n type,\n keyed: true,\n label: 'Select',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: createEmptyOptions\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'separator';\n\nexport default function Separator() {\n\n return (\n <div class={ formFieldClasses(type) }>\n <hr />\n </div>\n );\n}\n\nSeparator.config = {\n type,\n keyed: false,\n label: 'Separator',\n group: 'presentation',\n create: (options = {}) => ({\n ...options\n })\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'spacer';\n\nexport default function Spacer(props) {\n const { field } = props;\n const { height = 60 } = field;\n\n return (\n <div class={ formFieldClasses(type) } style={ { height: height } } />\n );\n}\n\nSpacer.config = {\n type,\n keyed: false,\n label: 'Spacer',\n group: 'presentation',\n create: (options = {}) => ({\n height: 60,\n ...options\n })\n};\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport { formFieldClasses } from '../Util';\n\nimport Label from '../Label';\nimport ChildrenRenderer from './parts/ChildrenRenderer';\nimport classNames from 'classnames';\n\nexport default function DynamicList(props) {\n\n const { field, domId, readonly } = props;\n const { label, type, showOutline } = field;\n\n const {\n Empty,\n } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div\n className={\n classNames(\n formFieldClasses(type, { readonly }),\n 'fjs-form-field-grouplike',\n {\n 'fjs-outlined' : showOutline\n }\n )\n }\n role=\"group\"\n aria-labelledby={ domId }\n >\n <Label\n id={ domId }\n label={ label } />\n <ChildrenRenderer { ...fullProps } />\n </div>\n );\n}\n\nDynamicList.config = {\n type: 'dynamiclist',\n pathed: true,\n repeatable: true,\n label: 'Dynamic list',\n group: 'container',\n create: (options = {}) => ({\n components: [],\n showOutline: true,\n isRepeating: true,\n allowAddRemove: true,\n defaultRepetitions: 1,\n ...options\n })\n};\n","import classNames from 'classnames';\n\nimport { useCallback } from 'preact/hooks';\n\nexport default function SkipLink(props) {\n\n const {\n className,\n label,\n onSkip\n } = props;\n\n const onKeyDown = useCallback(event => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n onSkip();\n }\n }, [ onSkip ]);\n\n\n return (\n <a\n href=\"#\"\n class={ classNames('fjs-skip-link', className) }\n onKeyDown={ onKeyDown }\n >{ label }</a>\n );\n}","import { useMemo, useRef, useState } from 'preact/hooks';\n\nimport { useService } from '../../hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport useCleanupMultiSelectValues from '../../hooks/useCleanupMultiSelectValues';\nimport { useGetLabelCorrelation } from '../../hooks/useGetLabelCorrelation';\n\nimport classNames from 'classnames';\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 { sanitizeMultiSelectValue, hasEqualValue } from '../util/sanitizerUtil';\nimport isEqual from 'lodash/isEqual';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport {\n formFieldClasses\n} from '../Util';\n\nconst type = 'taglist';\n\nexport default function Taglist(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n onFocus,\n domId,\n onBlur,\n field,\n readonly,\n value : values = []\n } = props;\n\n const {\n description,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const [ filter, setFilter ] = useState('');\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\n const focusScopeRef = useRef();\n const inputRef = useRef();\n const eventBus = useService('eventBus');\n\n const {\n loadState,\n options\n } = useOptionsAsync(field);\n\n useCleanupMultiSelectValues({\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 // Usage of stringify is necessary here because we want this effect to only trigger when there is a value change to the array\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, JSON.stringify(values), loadState ]);\n\n\n const selectValue = (value) => {\n\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 ], field });\n };\n\n const deselectValue = (value) => {\n const newValues = values.filter((v) => !isEqual(v, value));\n props.onChange({ value: newValues, field });\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\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n\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(() => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed, [ disabled, isDropdownExpanded, isEscapeClosed, loadState ]);\n\n return <div\n ref={ focusScopeRef }\n class={ formFieldClasses(type, { errors, disabled, readonly }) }\n onKeyDown={\n (event) => {\n if (event.key === 'Enter') {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }\n >\n <Label\n label={ label }\n required={ required }\n id={ domId } />\n { (!disabled && !readonly && !!values.length) && <SkipLink className=\"fjs-taglist-skip-link\" label=\"Skip to search\" onSkip={ onSkipToSearch } /> }\n <div class={ classNames('fjs-taglist', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) }>\n { loadState === LOAD_STATES.LOADED &&\n <div class=\"fjs-taglist-tags\">\n {\n values.map((v) => {\n return (\n <div class={ classNames('fjs-taglist-tag', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) } onMouseDown={ (e) => e.preventDefault() }>\n <span class=\"fjs-taglist-tag-label\">\n { getLabelCorrelation(v) }\n </span>\n { (!disabled && !readonly) && <button\n type=\"button\"\n title=\"Remove tag\"\n class=\"fjs-taglist-tag-remove\"\n onFocus={ onElementFocus }\n onBlur={ onElementBlur }\n onClick={ (event) => onTagRemoveClick(event, v) }>\n\n <XMarkIcon />\n </button> }\n </div>\n );\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={ errorMessageId } />\n </div>\n <div class=\"fjs-taglist-anchor\">\n { shouldDisplayDropdown && <DropdownList\n values={ filteredOptions }\n getLabel={ (o) => o.label }\n onValueSelected={ (o) => selectValue(o.value) }\n emptyListMessage={ hasOptionsLeft ? 'No results' : 'All values selected' }\n listenerElement={ inputRef.current } /> }\n </div>\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nTaglist.config = {\n type,\n keyed: true,\n label: 'Tag list',\n group: 'selection',\n emptyValue: [],\n sanitizeValue: sanitizeMultiSelectValue,\n create: createEmptyOptions\n};\n","import Markup from 'preact-markup';\nimport { useMemo } from 'preact/hooks';\nimport { useService, useTemplateEvaluation } from '../../hooks';\nimport { sanitizeHTML } from '../Sanitizer';\n\nimport {\n formFieldClasses\n} from '../Util';\n\nconst type = 'text';\n\nexport default function Text(props) {\n\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 => safe HTML\n const safeHtml = useMemo(() => {\n const html = markdownRenderer.render(markdown);\n return sanitizeHTML(html);\n }, [ markdownRenderer, markdown ]);\n\n const OverriddenTargetLink = useMemo(() => BuildOverriddenTargetLink(textLinkTarget), [ textLinkTarget ]);\n\n const componentOverrides = useMemo(() => {\n\n if (disableLinks) {\n return { 'a': DisabledLink };\n }\n\n if (textLinkTarget) {\n return { 'a': OverriddenTargetLink };\n }\n\n return {};\n }, [ disableLinks, OverriddenTargetLink, textLinkTarget ]);\n\n return <div class={ formFieldClasses(type) }>\n <Markup markup={ safeHtml } components={ componentOverrides } trim={ false } />\n </div>;\n}\n\nText.config = {\n type,\n keyed: false,\n label: 'Text view',\n group: 'presentation',\n create: (options = {}) => ({\n text: '# Text',\n ...options\n })\n};\n\nfunction BuildOverriddenTargetLink(target) {\n return function({ children, ...rest }) {\n return <a { ...rest } target={ target }>{ children }</a>;\n };\n}\n\nfunction DisabledLink({ children, ...rest }) { return <a { ...rest } class=\"fjs-disabled-link\" tabIndex={ -1 }>{ children }</a>; }\n","import { useCallback, useRef } from 'preact/hooks';\nimport useService from './useService';\n\nfunction useFlushDebounce(func, additionalDeps = []) {\n\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((...args) => {\n\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, ...additionalDeps ]);\n\n const flushFunc = useCallback(() => {\n\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\n }, [ func, ...additionalDeps ]);\n\n return [ debounceFunc, flushFunc ];\n}\n\nexport default useFlushDebounce;\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 InputAdorner from './parts/TemplatedInputAdorner';\n\nimport useFlushDebounce from '../../hooks/useFlushDebounce';\n\nconst type = 'textfield';\n\nexport default function Textfield(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n label,\n appearance = {},\n validate = {}\n } = field;\n\n const {\n prefixAdorner,\n suffixAdorner\n } = appearance;\n\n const { required } = validate;\n\n const [ onInputChange, flushOnChange ] = useFlushDebounce(({ target }) => {\n props.onChange({\n field,\n value: target.value\n });\n }, [ props.onChange ]);\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ domId }\n label={ label }\n required={ required } />\n <InputAdorner disabled={ disabled } readonly={ readonly } pre={ prefixAdorner } post={ suffixAdorner }>\n <input\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ domId }\n onInput={ onInputChange }\n onBlur={ onInputBlur }\n onFocus={ onInputFocus }\n type=\"text\"\n value={ value }\n aria-describedby={ errorMessageId } />\n </InputAdorner>\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nTextfield.config = {\n type,\n keyed: true,\n label: 'Text field',\n group: 'basic-input',\n emptyValue: '',\n sanitizeValue: ({ value }) => {\n if (isArray(value) || isObject(value) || isNil(value)) {\n return '';\n }\n\n // sanitize newlines to spaces\n if (typeof value === 'string') {\n return value.replace(/[\\r\\n\\t]/g, ' ');\n }\n\n return String(value);\n },\n create: (options = {}) => ({ ...options })\n};\n","import { isArray, isObject, isNil } from 'min-dash';\n\nimport { useEffect, useLayoutEffect, useRef } from 'preact/hooks';\nimport useFlushDebounce from '../../hooks/useFlushDebounce';\n\nimport { formFieldClasses } from '../Util';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nconst type = 'textarea';\n\nexport default function Textarea(props) {\n const {\n disabled,\n errors = [],\n errorMessageId,\n domId,\n onBlur,\n onFocus,\n field,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n const textareaRef = useRef();\n\n const [ onInputChange, flushOnChange ] = useFlushDebounce(({ target }) => {\n props.onChange({\n field,\n value: target.value\n });\n }, [ props.onChange ]);\n\n const onInputBlur = () => {\n flushOnChange && flushOnChange();\n onBlur && onBlur();\n };\n\n const onInputFocus = () => {\n onFocus && onFocus();\n };\n\n useLayoutEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [ value ]);\n\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, []);\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ domId }\n label={ label }\n required={ required } />\n <textarea 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={ errorMessageId } />\n <Description description={ description } />\n <Errors errors={ errors } id={ errorMessageId } />\n </div>;\n}\n\nTextarea.config = {\n type,\n keyed: true,\n label: 'Text area',\n group: 'basic-input',\n emptyValue: '',\n sanitizeValue: ({ value }) => (isArray(value) || isObject(value) || isNil(value)) ? '' : String(value),\n create: (options = {}) => ({ ...options })\n};\n\nconst autoSizeTextarea = (textarea) => {\n\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 = 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};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M24.59 16.59 17 24.17V4h-2v20.17l-7.59-7.58L6 18l10 10 10-10-1.41-1.41z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"M16 4 6 14l1.41 1.41L15 7.83V28h2V7.83l7.59 7.58L26 14 16 4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m20 24-10-8 10-8z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 32 32\"><path fill=\"currentcolor\" d=\"m12 8 10 8-10 8z\"/></svg>","import { isDefined, isNumber, isObject, isString } from 'min-dash';\nimport { useExpressionEvaluation } from '../../hooks';\nimport { useEffect, useState } from 'preact/hooks';\nimport Label from '../Label';\nimport { formFieldClasses, prefixId } from '../Util';\nimport ArrowDownIcon from './icons/ArrowDown.svg';\nimport ArrowUpIcon from './icons/ArrowUp.svg';\nimport CaretLeftIcon from './icons/CaretLeft.svg';\nimport CaretRightIcon from './icons/CaretRight.svg';\nimport classNames from 'classnames';\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 Props\n * @property {Object} field\n * @property {string} field.id\n * @property {Array<Column>} [field.columns]\n * @property {string} [field.columnsExpression]\n * @property {string} [field.label]\n * @property {number} [field.rowCount]\n * @property {string} [field.dataSource]\n *\n * @param {Props} props\n * @returns {import(\"preact\").JSX.Element}\n */\nexport default function Table(props) {\n const { field } = props;\n const {\n columns = [],\n columnsExpression,\n dataSource = '',\n rowCount,\n id,\n label,\n } = field;\n\n /** @type {[(null|Sorting), import(\"preact/hooks\").StateUpdater<null|Sorting>]} */\n const [ sortBy, setSortBy ] = useState(null);\n const evaluatedColumns = useEvaluatedColumns(\n columnsExpression || '',\n columns,\n );\n const columnKeys = evaluatedColumns.map(({ key }) => key);\n const evaluatedDataSource = useExpressionEvaluation(dataSource);\n const data = Array.isArray(evaluatedDataSource) ? evaluatedDataSource : [];\n const sortedData =\n sortBy === null\n ? data\n : 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\n useEffect(() => {\n setCurrentPage(0);\n }, [ rowCount, sortBy ]);\n\n\n /** @param {string} key */\n function toggleSortBy(key) {\n setSortBy((current) => {\n if (current === null || current.key !== key) {\n return {\n key,\n direction: 'asc',\n };\n }\n\n if (current.direction === 'desc') {\n return null;\n }\n\n return {\n key,\n direction: 'desc',\n };\n });\n }\n\n return (\n <div class={ formFieldClasses(type) }>\n <Label id={ prefixId(id) } label={ label } />\n <div\n class={ classNames('fjs-table-middle-container', {\n 'fjs-table-empty': evaluatedColumns.length === 0,\n }) }\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(\n sortBy,\n key,\n displayLabel,\n ) }\n >\n <span\n class=\"fjs-table-th-label\"\n >\n {displayLabel}\n {sortBy !== null && sortBy.key === key ? (\n <>\n {sortBy.direction === 'asc' ? (\n <ArrowUpIcon class=\"fjs-table-sort-icon-asc\" />\n ) : (\n <ArrowDownIcon class=\"fjs-table-sort-icon-desc\" />\n )}\n </>\n ) : null}\n </span>\n </th>\n );\n })}\n </tr>\n </thead>\n {currentChunk.length === 0 ? (\n <tbody class=\"fjs-table-body\">\n <tr class=\"fjs-table-tr\">\n <td class=\"fjs-table-td\" colSpan={ evaluatedColumns.length }>\n Nothing to show.\n </td>\n </tr>\n </tbody>\n ) : (\n <tbody class=\"fjs-table-body\">\n {currentChunk.map((row, index) => (\n <tr key={ index } class=\"fjs-table-tr\">\n {columnKeys.map((key) => (\n <td key={ key } class=\"fjs-table-td\">\n {row[key]}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n </div>\n )}\n\n {(isNumber(rowCount) && chunkedData.length > 1 && evaluatedColumns.length > 0) ?\n (\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 >\n <CaretLeftIcon />\n </button>\n <button\n type=\"button\"\n class=\"fjs-table-nav-button\"\n onClick={ () => {\n setCurrentPage((page) =>\n Math.min(page + 1, chunkedData.length - 1),\n );\n } }\n disabled={ currentPage >= chunkedData.length - 1 }\n aria-label=\"Next page\"\n >\n <CaretRightIcon />\n </button>\n </nav>\n ) : null}\n </div>\n </div>\n );\n}\n\nTable.config = {\n type,\n keyed: false,\n label: 'Table',\n group: 'presentation',\n create: (options = {}) => {\n const {\n id,\n columnsExpression,\n columns,\n rowCount,\n ...remainingOptions\n } = options;\n\n if (isDefined(id) && isNumber(rowCount)) {\n remainingOptions['rowCount'] = rowCount;\n }\n\n if (isString(columnsExpression)) {\n return {\n ...remainingOptions,\n id,\n columnsExpression,\n };\n }\n\n if (Array.isArray(columns) && columns.every(isColumn)) {\n return {\n ...remainingOptions,\n id,\n columns,\n };\n }\n\n return {\n ...remainingOptions,\n rowCount: 10,\n columns: [\n {\n label: 'ID',\n key: 'id',\n },\n {\n label: 'Name',\n key: 'name',\n },\n {\n label: 'Date',\n key: 'date',\n },\n ],\n };\n },\n initialDemoData: [\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};\n\n// helpers /////////////////////////////\n\n/**\n * @param {string|void} columnsExpression\n * @param {Column[]} fallbackColumns\n * @returns {Column[]}\n */\nfunction useEvaluatedColumns(columnsExpression, fallbackColumns) {\n\n /** @type {Column[]|null} */\n const evaluation = useExpressionEvaluation(columnsExpression || '');\n\n return Array.isArray(evaluation) && evaluation.every(isColumn)\n ? evaluation\n : fallbackColumns;\n}\n\n/**\n * @param {any} column\n * @returns {column is Column}\n */\nfunction isColumn(column) {\n return (\n isObject(column) && isString(column['label']) && isString(column['key'])\n );\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","<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=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M8 33v5a1 1 0 0 0 1 1h4v2H9a3 3 0 0 1-3-3v-5h2Zm18 6v2H15v-2h11Zm13 0v2H28v-2h11Zm9-6v5a3 3 0 0 1-3 3h-4v-2h4a1 1 0 0 0 .993-.883L46 38v-5h2ZM8 22v9H6v-9h2Zm40 0v9h-2v-9h2Zm-35-9v2H9a1 1 0 0 0-.993.883L8 16v4H6v-4a3 3 0 0 1 3-3h4Zm32 0a3 3 0 0 1 3 3v4h-2v-4a1 1 0 0 0-.883-.993L45 15h-4v-2h4Zm-6 0v2H28v-2h11Zm-13 0v2H15v-2h11Z\"/></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 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=\"M2.70001 43.2964V44.55C2.70001 45.2956 3.30443 45.9 4.05001 45.9H5.32501V44.1052C5.3736 44.2444 5.40001 44.3941 5.40001 44.55V43.2964H5.32501V43.2H4.05001C4.22743 43.2 4.39685 43.2342 4.55204 43.2964H2.70001ZM5.40001 40.7893V38.2821H2.70001V40.7893H5.40001ZM5.40001 35.775V33.2679H2.70001V35.775H5.40001ZM5.40001 30.7607V28.2536H2.70001V30.7607H5.40001ZM5.40001 25.7464V23.2393H2.70001V25.7464H5.40001ZM5.40001 20.7321V18.225H2.70001V20.7321H5.40001ZM5.40001 15.7179V13.2107H2.70001V15.7179H5.40001ZM2.70001 10.7036H4.55204C4.39685 10.7658 4.22743 10.8 4.05001 10.8H5.32501V10.7036H5.40001V9.45C5.40001 9.60585 5.3736 9.75554 5.32501 9.89482V8.1H4.05001C3.30443 8.1 2.70001 8.70441 2.70001 9.45V10.7036ZM7.87501 10.8H10.425V8.1H7.87501V10.8ZM12.975 10.8H15.525V8.1H12.975V10.8ZM18.075 10.8H20.625V8.1H18.075V10.8ZM23.175 10.8H25.725V8.1H23.175V10.8ZM28.275 10.8H30.825V8.1H28.275V10.8ZM33.375 10.8H35.925V8.1H33.375V10.8ZM38.475 10.8H41.025V8.1H38.475V10.8ZM43.575 10.8H46.125V8.1H43.575V10.8ZM48.675 8.1V9.89484C48.6264 9.75555 48.6 9.60586 48.6 9.45V10.7036H48.675V10.8H49.95C49.7726 10.8 49.6032 10.7658 49.448 10.7036H51.3V9.45C51.3 8.70441 50.6956 8.1 49.95 8.1H48.675ZM48.6 13.2107V15.7179H51.3V13.2107H48.6ZM48.6 18.225V20.7321H51.3V18.225H48.6ZM48.6 23.2393V25.7464H51.3V23.2393H48.6ZM48.6 28.2536V30.7607H51.3V28.2536H48.6ZM48.6 33.2679V35.775H51.3V33.2679H48.6ZM48.6 38.2821V40.7893H51.3V38.2821H48.6ZM51.3 43.2964H49.448C49.6032 43.2342 49.7726 43.2 49.95 43.2H48.675V43.2964H48.6V44.55C48.6 44.3941 48.6264 44.2445 48.675 44.1052V45.9H49.95C50.6956 45.9 51.3 45.2956 51.3 44.55V43.2964ZM46.125 43.2H43.575V45.9H46.125V43.2ZM41.025 43.2H38.475V45.9H41.025V43.2ZM35.925 43.2H33.375V45.9H35.925V43.2ZM30.825 43.2H28.275V45.9H30.825V43.2ZM25.725 43.2H23.175V45.9H25.725V43.2ZM20.625 43.2H18.075V45.9H20.625V43.2ZM15.525 43.2H12.975V45.9H15.525V43.2ZM10.425 43.2H7.87501V45.9H10.425V43.2ZM16.2 17.55C18.4368 17.55 20.25 19.3632 20.25 21.6V22.95C20.25 25.1868 18.4368 27 16.2 27H14.85C12.6133 27 10.8 25.1868 10.8 22.95V21.6C10.8 19.3632 12.6133 17.55 14.85 17.55H16.2ZM16.2 20.25H14.85C14.1044 20.25 13.5 20.8544 13.5 21.6V22.95C13.5 23.6956 14.1044 24.3 14.85 24.3H16.2C16.9456 24.3 17.55 23.6956 17.55 22.95V21.6C17.55 20.8544 16.9456 20.25 16.2 20.25ZM43.2 21.6C43.2 19.3632 41.3868 17.55 39.15 17.55H29.7C27.4633 17.55 25.65 19.3632 25.65 21.6V22.95C25.65 25.1868 27.4633 27 29.7 27H39.15C41.3868 27 43.2 25.1868 43.2 22.95V21.6ZM29.7 20.25H39.15C39.8956 20.25 40.5 20.8544 40.5 21.6V22.95C40.5 23.6956 39.8956 24.3 39.15 24.3H29.7C28.9544 24.3 28.35 23.6956 28.35 22.95V21.6C28.35 20.8544 28.9544 20.25 29.7 20.25ZM43.2 37.8C43.2 35.5632 41.3868 33.75 39.15 33.75H29.7C27.4633 33.75 25.65 35.5632 25.65 37.8V39.15H28.35V37.8C28.35 37.0544 28.9544 36.45 29.7 36.45H39.15C39.8956 36.45 40.5 37.0544 40.5 37.8V39.15H43.2V37.8ZM16.2 33.75C18.4368 33.75 20.25 35.5632 20.25 37.8V39.15H17.55V37.8C17.55 37.0544 16.9456 36.45 16.2 36.45H14.85C14.1044 36.45 13.5 37.0544 13.5 37.8V39.15H10.8V37.8C10.8 35.5632 12.6133 33.75 14.85 33.75H16.2Z\" fill=\"currentColor\"/>\n</svg>\n","<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 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\" d=\"M34.467 37.3 41 31l-6.533-6.3-1.32 1.273L38.36 31l-5.213 5.027 1.32 1.273ZM19.533 24.7 13 31l6.533 6.3 1.32-1.273L15.64 31l5.214-5.027-1.32-1.273ZM23.66 39.532l1.805.468 4.875-17.532L28.535 22 23.66 39.532Z\"/><path fill=\"currentcolor\" fill-rule=\"evenodd\" d=\"M46 9a3 3 0 0 1 3 3v30a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V12a3 3 0 0 1 3-3h38Zm0 2H8a1 1 0 0 0-1 1v4h40v-4a1 1 0 0 0-1-1ZM7 42V18h40v24a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1Z\" 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","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 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';\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 radio: RadioIcon,\n select: SelectIcon,\n separator: SeparatorIcon,\n spacer: SpacerIcon,\n dynamiclist: DynamicListIcon,\n taglist: TaglistIcon,\n text: TextIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n table: TableIcon,\n default: FormIcon\n }[type];\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 FormComponent from './FormComponent';\nimport FormField from './FormField';\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 Textfield from './form-fields/Textfield';\nimport Textarea from './form-fields/Textarea';\nimport Table from './form-fields/Table';\n\nimport Label from './Label';\nimport Description from './Description';\nimport Errors from './Errors';\n\nexport {\n Label,\n Description,\n Errors\n};\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 Radio,\n Select,\n Separator,\n Spacer,\n Taglist,\n Text,\n Textfield,\n Textarea,\n Table\n};\n\nexport const formFields = [\n Button,\n Checkbox,\n Checklist,\n Default,\n Group,\n IFrame,\n DynamicList,\n Image,\n Numberfield,\n Datetime,\n Radio,\n Select,\n Spacer,\n Separator,\n DynamicList,\n Taglist,\n Text,\n Textfield,\n Textarea,\n Table\n];\n\nexport * from './icons';\nexport * from './Sanitizer';","import { formFields } from './components';\n\nexport default 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}","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];\n\nconst TEMPLATE_PROPERTIES = [\n 'alt',\n 'appearance.prefixAdorner',\n 'appearance.suffixAdorner',\n 'description',\n 'label',\n 'source',\n 'text',\n 'url'\n];\n\n/**\n * @typedef { import('../types').Schema } Schema\n */\n\n/**\n * Parse the schema for variables a form might make use of.\n *\n * @example\n *\n * // retrieve variables from schema\n * const variables = getSchemaVariables(schema);\n *\n * @example\n *\n * // retrieve input variables from schema\n * const inputVariables = getSchemaVariables(schema, { outputs: false });\n *\n * @example\n *\n * // retrieve output variables from schema\n * const outputVariables = getSchemaVariables(schema, { inputs: false });\n *\n * @param {Schema} schema\n * @param {object} [options]\n * @param {any} [options.expressionLanguage]\n * @param {any} [options.templating]\n * @param {any} [options.formFields]\n * @param {boolean} [options.inputs=true]\n * @param {boolean} [options.outputs=true]\n *\n * @return {string[]}\n */\nexport function getSchemaVariables(schema, options = {}) {\n\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\n const {\n valuesKey\n } = component;\n\n // collect input-only variables\n if (inputs) {\n\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\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\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 * Get the ancestry list of a form field.\n *\n * @param {string} formFieldId\n * @param {import('../core/FormFieldRegistry').default} 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};","import { unaryTest } from 'feelin';\nimport { get, isString, set, values, isObject } from 'min-dash';\nimport { buildExpressionContext, clone } from '../../util';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport default class ConditionChecker {\n constructor(formFieldRegistry, pathRegistry, eventBus) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._eventBus = eventBus;\n }\n\n /**\n * For given data, remove properties based on condition.\n *\n * @param {Object<string, any>} data\n * @param {Object<string, any>} contextData\n * @param {Object} [options]\n * @param {Function} [options.getFilterPath]\n * @param {boolean} [options.leafNodeDeletionOnly]\n */\n applyConditions(data, contextData = {}, options = {}) {\n\n const workingData = clone(data);\n\n const {\n getFilterPath = (field, indexes) => this._pathRegistry.getValuePath(field, { indexes }),\n leafNodeDeletionOnly = false\n } = options;\n\n const _applyConditionsWithinScope = (rootField, scopeContext, startHidden = false) => {\n\n const {\n indexes = {},\n expressionIndexes = [],\n scopeData = contextData,\n parentScopeData = null\n } = scopeContext;\n\n this._pathRegistry.executeRecursivelyOnFields(rootField, ({ field, isClosed, isRepeatable, context }) => {\n\n const {\n conditional,\n components,\n id\n } = 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 = startHidden || context.isHidden || (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 || leafNodeDeletionOnly)) {\n\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 (!Array.isArray(repeaterValue) || !repeaterValue.length || !Array.isArray(components) || !components.length) {\n return;\n }\n\n for (let i = 0; i < repeaterValue.length; i++) {\n\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 }\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 && !leafNodeDeletionOnly && isRepeatable) {\n context.preventRecursion = true;\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\n }\n\n // for simple leaf fields, we always clear\n if (context.isHidden && isClosed) {\n this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);\n }\n\n });\n\n };\n\n // apply conditions starting with the root of the form\n const form = this._formFieldRegistry.getForm();\n\n if (!form) {\n throw new Error('form field registry has no form');\n }\n\n _applyConditionsWithinScope(form, {\n scopeData: contextData\n });\n\n return workingData;\n }\n\n /**\n * Check if given condition is met. Returns null for invalid/missing conditions.\n *\n * @param {string} condition\n * @param {import('../../types').Data} [data]\n *\n * @returns {boolean|null}\n */\n check(condition, data = {}) {\n if (!condition) {\n return null;\n }\n\n if (!isString(condition) || !condition.startsWith('=')) {\n return null;\n }\n\n try {\n\n // cut off initial '='\n const result = unaryTest(condition.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n\n /**\n * Check if hide condition is met.\n *\n * @param {Condition} condition\n * @param {Object<string, any>} data\n * @returns {boolean}\n */\n _checkHideCondition(condition, data) {\n if (!condition.hide) {\n return false;\n }\n\n const result = this.check(condition.hide, data);\n\n return result === true;\n }\n\n _cleanlyClearDataAtPath(valuePath, obj) {\n const workingValuePath = [ ...valuePath ];\n let recurse = false;\n\n do {\n set(obj, workingValuePath, undefined);\n workingValuePath.pop();\n const parentObject = get(obj, workingValuePath);\n recurse = !!workingValuePath.length && (this._isEmptyObject(parentObject) || this._isEmptyArray(parentObject));\n } while (recurse);\n }\n\n _isEmptyObject(parentObject) {\n return isObject(parentObject) && !values(parentObject).length;\n }\n\n _isEmptyArray(parentObject) {\n return Array.isArray(parentObject) && (!parentObject.length || parentObject.every(item => item === undefined));\n }\n}\n\nConditionChecker.$inject = [\n 'formFieldRegistry',\n 'pathRegistry',\n 'eventBus'\n];\n","import FeelExpressionLanguage from './FeelExpressionLanguage';\nimport FeelersTemplating from './FeelersTemplating';\nimport ConditionChecker from './ConditionChecker';\n\nexport default {\n __init__: [ 'expressionLanguage', 'templating', 'conditionChecker' ],\n expressionLanguage: [ 'type', FeelExpressionLanguage ],\n templating: [ 'type', FeelersTemplating ],\n conditionChecker: [ 'type', ConditionChecker ]\n};\n\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };","import showdown from 'showdown';\n\n// bootstrap showdown to support github flavored markdown\nshowdown.setFlavor('github');\n\nexport default class MarkdownRenderer {\n\n constructor() {\n this._converter = new showdown.Converter();\n }\n\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 return this._converter.makeHtml(markdown);\n }\n}\n\nMarkdownRenderer.$inject = [];","import MarkdownRenderer from './MarkdownRenderer';\n\nexport default {\n __init__: [ 'markdownRenderer' ],\n markdownRenderer: [ 'type', MarkdownRenderer ],\n};\n\nexport { MarkdownRenderer };","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\nexport default class UpdateFieldValidationHandler {\n\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(errors, [ field.id, ...Object.values(indexes || {}) ], fieldErrors.length ? fieldErrors : undefined);\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' ];","import UpdateFieldValidationHandler from './cmd/UpdateFieldValidationHandler';\n\nexport default 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 };\n }\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}\n\nViewerCommands.$inject = [\n 'commandStack',\n 'eventBus'\n];","import commandModule from 'diagram-js/lib/command';\n\nimport ViewerCommands from './ViewerCommands';\n\nexport default {\n __depends__: [\n commandModule\n ],\n __init__: [ 'viewerCommands' ],\n viewerCommands: [ 'type', ViewerCommands ]\n};\n\nexport { ViewerCommands };","<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 default class RepeatRenderManager {\n\n constructor(form, formFields, formFieldRegistry, pathRegistry) {\n this._form = form;\n this._formFields = formFields;\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this.Repeater = this.Repeater.bind(this);\n this.RepeatFooter = this.RepeatFooter.bind(this);\n }\n\n /**\n * Checks whether a field is currently repeating its children.\n *\n * @param {string} id - The id of the field to check\n * @returns {boolean} - True if repeatable, false otherwise\n */\n isFieldRepeating(id) {\n\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\n const { RowsRenderer, indexes, useSharedState, ...restProps } = props;\n\n const [ sharedRepeatState ] = useSharedState;\n\n const { data } = this._form._getState();\n\n const repeaterField = props.field;\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && (values.length > nonCollapsedItems);\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showRemove = repeaterField.allowAddRemove && hasChildren;\n\n const displayValues = isCollapsed ? values.slice(0, nonCollapsedItems) : values;\n\n const onDeleteItem = (index) => {\n\n const updatedValues = values.slice();\n updatedValues.splice(index, 1);\n\n props.onChange({\n field: repeaterField,\n value: updatedValues,\n indexes\n });\n };\n\n const parentExpressionContextInfo = useContext(LocalExpressionContext);\n\n return (\n <>\n {displayValues.map((value, index) => {\n const elementProps = {\n ...restProps,\n indexes: { ...(indexes || {}), [ repeaterField.id ]: index },\n };\n\n const localExpressionContextInfo = useMemo(() => ({\n data: parentExpressionContextInfo.data,\n this: value,\n parent: buildExpressionContext(parentExpressionContextInfo),\n i: [ ...parentExpressionContextInfo.i , index + 1 ]\n }), [ index, value ]);\n\n return !showRemove ?\n <LocalExpressionContext.Provider value={ localExpressionContextInfo }>\n <RowsRenderer { ...elementProps } />\n </LocalExpressionContext.Provider> :\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 class=\"fjs-repeat-row-remove\" type=\"button\" aria-label={ `Remove list item ${index + 1}` } onClick={ () => onDeleteItem(index) }>\n <div class=\"fjs-repeat-row-remove-icon-container\">\n <DeleteSvg />\n </div>\n </button>\n </div>;\n })}\n </>\n );\n }\n\n RepeatFooter(props) {\n\n const addButtonRef = useRef(null);\n const { useSharedState, indexes, field: repeaterField, readonly, disabled } = props;\n const [ sharedRepeatState, setSharedRepeatState ] = useSharedState;\n\n const { data } = this._form._getState();\n\n const dataPath = this._pathRegistry.getValuePath(repeaterField, { indexes });\n const values = get(data, dataPath) || [];\n\n const nonCollapsedItems = this._getNonCollapsedItems(repeaterField);\n const collapseEnabled = !repeaterField.disableCollapse && (values.length > nonCollapsedItems);\n const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;\n\n const hasChildren = repeaterField.components && repeaterField.components.length > 0;\n const showAdd = repeaterField.allowAddRemove && hasChildren;\n\n const toggle = () => {\n setSharedRepeatState(state => ({ ...state, isCollapsed: !isCollapsed }));\n };\n\n const shouldScroll = useRef(false);\n\n const onAddItem = () => {\n const updatedValues = values.slice();\n const newItem = this._form._getInitializedFieldData(this._form._getState().data, {\n container: repeaterField,\n indexes: { ...indexes, [ repeaterField.id ]: updatedValues.length }\n });\n\n updatedValues.push(newItem);\n\n shouldScroll.current = true;\n\n props.onChange({\n field: repeaterField,\n value: updatedValues,\n indexes\n });\n\n setSharedRepeatState(state => ({ ...state, isCollapsed: false }));\n };\n\n useScrollIntoView(addButtonRef, [ values.length ], {\n align: 'bottom',\n behavior: 'auto',\n offset: 20\n }, [ shouldScroll ]);\n\n return <div\n className={\n classNames('fjs-repeat-render-footer', {\n 'fjs-remove-allowed':repeaterField.allowAddRemove\n }) }\n >\n {\n showAdd ? <button readOnly={ readonly } disabled={ disabled || readonly } class=\"fjs-repeat-render-add\" type=\"button\" ref={ addButtonRef } onClick={ onAddItem }>\n <><AddSvg /> { 'Add new' }</>\n </button> : null\n }\n {\n collapseEnabled ? <button class=\"fjs-repeat-render-collapse\" type=\"button\" onClick={ toggle }>\n {\n isCollapsed\n ? <><ExpandSvg /> { `Expand all (${values.length})` }</>\n : <><CollapseSvg /> { 'Collapse' }</>\n }\n </button> : null\n }\n </div>;\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\nRepeatRenderManager.$inject = [ 'form', 'formFields', 'formFieldRegistry', 'pathRegistry' ];","import RepeatRenderManager from './RepeatRenderManager';\n\nexport default {\n __init__: [ 'repeatRenderManager' ],\n repeatRenderManager: [ 'type', RepeatRenderManager ],\n};\n\nexport { RepeatRenderManager };","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 */\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/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n events = isArray(events) ? events : [ events ];\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n var actualCallback = callback;\n\n if (that) {\n actualCallback = bind(callback, that);\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n actualCallback[FN_REF] = callback[FN_REF] || callback;\n }\n\n var self = this;\n\n events.forEach(function(e) {\n self._addListener(e, {\n priority: priority,\n callback: actualCallback,\n next: null\n });\n });\n};\n\n/**\n * Register an event listener that is called only once.\n *\n * @template T\n *\n * @param {string|string[]} events to subscribe to\n * @param {number} [priority=1000] the listen priority\n * @param {EventBusEventCallback<T>} callback\n * @param {any} [that] callback context\n */\nEventBus.prototype.once = function(events, priority, callback, that) {\n var self = this;\n\n if (isFunction(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!isNumber(priority)) {\n throw new Error('priority must be a number');\n }\n\n function wrappedCallback() {\n wrappedCallback.__isTomb = true;\n\n var result = callback.apply(that, arguments);\n\n self.off(events, wrappedCallback);\n\n return result;\n }\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n wrappedCallback[FN_REF] = callback;\n\n this.on(events, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|string[]} events\n * @param {EventBusEventCallback} [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 Big from 'big.js';\n\nconst EMAIL_PATTERN = /^[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 = /(\\+|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 = [\n 'min',\n 'max',\n 'minLength',\n 'maxLength'\n];\n\nexport default class Validator {\n\n constructor(expressionLanguage, conditionChecker, form) {\n this._expressionLanguage = expressionLanguage;\n this._conditionChecker = conditionChecker;\n this._form = form;\n }\n\n validateField(field, value) {\n\n const { type, validate } = field;\n\n let errors = [];\n\n if (type === 'number') {\n\n const { decimalDigits, increment } = field;\n\n if (value === 'NaN') {\n\n errors = [\n ...errors,\n 'Value is not a number.'\n ];\n\n }\n else if (value) {\n\n if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\n errors = [\n ...errors,\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\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 = [\n ...errors,\n `Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`\n ];\n }\n }\n }\n }\n\n if (!validate) {\n return errors;\n }\n\n const evaluatedValidation = evaluateFEELValues(\n validate,\n this._expressionLanguage,\n this._conditionChecker,\n this._form\n );\n\n if (evaluatedValidation.pattern && value && !new RegExp(evaluatedValidation.pattern).test(value)) {\n errors = [\n ...errors,\n `Field must match pattern ${ evaluatedValidation.pattern }.`\n ];\n }\n\n if (evaluatedValidation.required) {\n const isUncheckedCheckbox = 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 = [\n ...errors,\n 'Field is required.'\n ];\n }\n }\n\n if ('min' in evaluatedValidation && (value || value === 0) && value < evaluatedValidation.min) {\n errors = [\n ...errors,\n `Field must have minimum value of ${ evaluatedValidation.min }.`\n ];\n }\n\n if ('max' in evaluatedValidation && (value || value === 0) && value > evaluatedValidation.max) {\n errors = [\n ...errors,\n `Field must have maximum value of ${ evaluatedValidation.max }.`\n ];\n }\n\n if ('minLength' in evaluatedValidation && value && value.trim().length < evaluatedValidation.minLength) {\n errors = [\n ...errors,\n `Field must have minimum length of ${ evaluatedValidation.minLength }.`\n ];\n }\n\n if ('maxLength' in evaluatedValidation && value && value.trim().length > evaluatedValidation.maxLength) {\n errors = [\n ...errors,\n `Field must have maximum length of ${ evaluatedValidation.maxLength }.`\n ];\n }\n\n if ('validationType' in evaluatedValidation && value && evaluatedValidation.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\n errors = [\n ...errors,\n 'Field must be a valid international phone number. (e.g. +4930664040900)'\n ];\n }\n\n if ('validationType' in evaluatedValidation && value && evaluatedValidation.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\n errors = [\n ...errors,\n 'Field must be a valid email.'\n ];\n }\n\n return errors;\n }\n}\n\nValidator.$inject = [ 'expressionLanguage', 'conditionChecker', 'form' ];\n\n\n// helpers //////////\n\n/**\n * Helper function to evaluate optional FEEL validation values.\n */\nfunction evaluateFEELValues(validate, expressionLanguage, conditionChecker, form) {\n\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}","import { clone } from '../util';\n\nexport default class Importer {\n\n /**\n * @constructor\n * @param { import('./FormFieldRegistry').default } formFieldRegistry\n * @param { import('./PathRegistry').default } pathRegistry\n * @param { import('./FieldFactory').default } fieldFactory\n * @param { import('./FormLayouter').default } 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\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 {\n components\n } = 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 ...fieldAttrs,\n _path: path,\n _parent: parentId\n }, false);\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}\n\nImporter.$inject = [ 'formFieldRegistry', 'pathRegistry', 'fieldFactory', 'formLayouter' ];","import { getAncestryList } from '../util';\n\nexport default class FieldFactory {\n\n /**\n * @constructor\n *\n * @param formFieldRegistry\n * @param formFields\n */\n constructor(formFieldRegistry, pathRegistry, formFields) {\n this._formFieldRegistry = formFieldRegistry;\n this._pathRegistry = pathRegistry;\n this._formFields = formFields;\n }\n\n create(attrs, applyDefaults = true) {\n\n const {\n id,\n type,\n key,\n path,\n _parent\n } = 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 (config.keyed && key && !this._pathRegistry.canClaimPath([ ...parentPath, ...key.split('.') ],\n {\n isClosed: true,\n knownAncestorIds\n })\n ) {\n throw new Error(`binding path '${ [ ...parentPath, key ].join('.') }' is already claimed`);\n }\n\n if (config.pathed && path && !this._pathRegistry.canClaimPath([ ...parentPath, ...path.split('.') ],\n {\n isRepeatable: config.repeatable,\n knownAncestorIds\n })\n ) {\n throw new Error(`binding path '${ [ ...parentPath, ...path.split('.') ].join('.') }' is already claimed`);\n }\n\n const labelAttrs = applyDefaults && config.label ? {\n label: config.label\n } : {};\n\n const field = config.create({\n ...labelAttrs,\n ...attrs\n });\n\n this._ensureId(field);\n\n if (config.keyed) {\n this._ensureKey(field);\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), { isClosed: true, claimerId: field.id, knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry) });\n }\n\n if (config.pathed) {\n if (config.repeatable) {\n this._enforceDefaultPath(field);\n }\n\n if (field.path) {\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), { isRepeatable: config.repeatable, claimerId: field.id, knownAncestorIds: getAncestryList(_parent, this._formFieldRegistry) });\n }\n }\n\n return field;\n }\n\n _ensureId(field) {\n\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\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}\n\n\nFieldFactory.$inject = [\n 'formFieldRegistry',\n 'pathRegistry',\n '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 default 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\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\n node = _getNextSegment(node, segment);\n\n if (!node) {\n return true;\n }\n\n if (node.isRepeatable && !skipAncestryCheck) {\n\n if (!(claimerId || knownAncestorIds.length)) {\n throw new Error('cannot claim a path that contains a repeater without specifying a claimerId or knownAncestorIds');\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\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\n const {\n isClosed = false,\n isRepeatable = false,\n claimerId = null,\n knownAncestorIds = []\n } = 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\n let child = _getNextSegment(node, segment);\n\n if (!child) {\n child = { segment, claimCount: 1, children: [] };\n node.children.push(child);\n }\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\n unclaimPath(path) {\n\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\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 }\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 {\n replacements = {},\n indexes = null,\n cutoffNode = null\n } = 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\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\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)) { return node.children.find((node) => node.segment === segment) || null; }\n return null;\n};\n\nPathRegistry.$inject = [ 'formFieldRegistry', 'formFields', 'injector' ];","import Ids from 'ids';\n\nimport { groupBy, flatten } from 'min-dash';\n\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 default class FormLayouter {\n\n constructor(eventBus) {\n\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\n const {\n type,\n components\n } = 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\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\n// helpers //////\n\nfunction groupByRow(components, ids) {\n return groupBy(components, c => {\n\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 flatten(formRows.map(c => c.rows));\n}","import Ids from 'ids';\n\nexport default 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}\n\nFormFieldRegistry.$inject = [ 'eventBus' ];","import { render } from 'preact';\nimport { useCallback, useState } from 'preact/hooks';\n\nimport FormComponent from './components/FormComponent';\n\nimport { FormContext } from './context';\n\n/**\n * @typedef { { container } } Config\n * @typedef { import('didi').Injector } Injector\n * @typedef { import('../core/EventBus').default } EventBus\n * @typedef { import('../Form').default } Form\n */\n\n/**\n * @param {Config} config\n * @param {EventBus} eventBus\n * @param {Form} form\n * @param {Injector} injector\n */\nexport default function Renderer(config, eventBus, form, injector) {\n\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), [ form ]);\n\n const { properties } = state;\n\n const { readOnly } = properties;\n\n const onSubmit = useCallback(() => {\n if (!readOnly) {\n form.submit();\n }\n }, [ form, readOnly ]);\n\n const onReset = useCallback(() => form.reset(), [ form ]);\n\n const { schema } = state;\n\n if (!schema) {\n return null;\n }\n\n return (\n <FormContext.Provider value={ formContext }>\n <FormComponent\n onChange={ onChange }\n onSubmit={ onSubmit }\n 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' ];","import FormFields from './FormFields';\nimport Renderer from './Renderer';\n\nexport { FormFields };\n\nexport * from './components';\nexport * from './context';\nexport {\n useExpressionEvaluation,\n useSingleLineTemplateEvaluation,\n useTemplateEvaluation\n} from './hooks';\n\nexport default {\n __init__: [ 'formFields', 'renderer' ],\n formFields: [ 'type', FormFields ],\n renderer: [ 'type', Renderer ]\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';\n\nimport renderModule from '../render';\n\nexport { Importer, FieldFactory, FormFieldRegistry, PathRegistry, FormLayouter };\n\nexport default {\n __depends__: [ renderModule ],\n eventBus: [ 'type', EventBus ],\n importer: [ 'type', Importer ],\n fieldFactory: [ 'type', FieldFactory ],\n formFieldRegistry: [ 'type', FormFieldRegistry ],\n pathRegistry: [ 'type', PathRegistry ],\n formLayouter: [ 'type', FormLayouter ],\n validator: [ 'type', Validator ]\n};","import Ids from 'ids';\nimport { get, isObject, isString, isUndefined, set } from 'min-dash';\n\nimport {\n ExpressionLanguageModule,\n MarkdownModule,\n ViewerCommandsModule,\n RepeatRenderModule\n} from './features';\n\nimport core 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 default class Form {\n\n /**\n * @constructor\n * @param {FormOptions} options\n */\n constructor(options = {}) {\n\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 {\n container,\n injector = this._createInjector(options, this._container),\n properties = {}\n } = 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\n // clear form services\n this._emit('diagram.clear');\n\n // clear diagram services (e.g. EventBus)\n this._emit('form.clear');\n }\n\n /**\n * Destroy the form, removing it from DOM,\n * if attached.\n */\n destroy() {\n\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 {\n schema: importedSchema,\n warnings\n } = this.get('importer').importSchema(schema);\n\n const initializedData = this._getInitializedFieldData(clone(data));\n\n this._setState({\n data: initializedData,\n errors: {},\n schema: importedSchema,\n initialData: clone(initializedData)\n });\n\n this._emit('import.done', { warnings });\n\n return resolve({ warnings });\n } catch (error) {\n this._emit('import.done', {\n error,\n warnings: error.warnings || []\n });\n\n return reject(error);\n }\n });\n }\n\n /**\n * Submit the form, triggering all field validations.\n *\n * @returns { { data: Data, errors: Errors } }\n */\n submit() {\n\n const {\n properties\n } = this._getState();\n\n if (properties.readOnly || properties.disabled) {\n throw new Error('form is read-only');\n }\n\n const data = this._getSubmitData();\n\n const errors = this.validate();\n\n const result = {\n data,\n errors\n };\n\n this._emit('submit', result);\n\n return result;\n }\n\n reset() {\n this._emit('reset');\n\n this._setState({\n data: clone(this._state.initialData),\n errors: {}\n });\n }\n\n /**\n * @returns {Errors}\n */\n validate() {\n const formFields = this.get('formFields'),\n formFieldRegistry = this.get('formFieldRegistry'),\n pathRegistry = this.get('pathRegistry'),\n validator = this.get('validator');\n\n const { data } = this._getState();\n\n const getErrorPath = (field, indexes) => [ field.id, ...Object.values(indexes || {}) ];\n\n function validateFieldRecursively(errors, field, indexes) {\n const { disabled, type, isRepeating } = field;\n const { config: fieldConfig } = formFields.get(type);\n\n // (1) Skip disabled fields\n if (disabled) {\n return;\n }\n\n // (2) Validate the field\n const valuePath = pathRegistry.getValuePath(field, { indexes });\n const valueData = get(data, valuePath);\n const fieldErrors = validator.validateField(field, valueData);\n\n if (fieldErrors.length) {\n set(errors, getErrorPath(field, indexes), fieldErrors);\n }\n\n // (3) Process parents\n if (!Array.isArray(field.components)) {\n return;\n }\n\n // (4a) Recurse repeatable parents both across the indexes of repetition and the children\n if (fieldConfig.repeatable && isRepeating) {\n\n if (!Array.isArray(valueData)) {\n return;\n }\n\n valueData.forEach((_, index) => {\n field.components.forEach((component) => {\n validateFieldRecursively(errors, component, { ...indexes, [field.id]: index });\n });\n });\n\n return;\n }\n\n // (4b) Recurse non-repeatable parents only across the children\n field.components.forEach((component) => validateFieldRecursively(errors, component, indexes));\n }\n\n const workingErrors = {};\n validateFieldRecursively(workingErrors, formFieldRegistry.getForm());\n const filteredErrors = this._applyConditions(workingErrors, data, { getFilterPath: getErrorPath, leafNodeDeletionOnly: true });\n this._setState({ errors: filteredErrors });\n\n return filteredErrors;\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 {\n modules = this._getModules(),\n additionalModules = [],\n ...config\n } = 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 core,\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 { { add?: boolean, field: any, indexes: object, remove?: number, value?: any } } update\n */\n _update(update) {\n const {\n field,\n indexes,\n value\n } = update;\n\n const {\n data,\n errors\n } = this._getState();\n\n const validator = this.get('validator'),\n pathRegistry = this.get('pathRegistry');\n\n const fieldErrors = validator.validateField(field, value);\n\n const valuePath = pathRegistry.getValuePath(field, { indexes });\n\n set(data, valuePath, value);\n\n set(errors, [ field.id, ...Object.values(indexes || {}) ], fieldErrors.length ? fieldErrors : undefined);\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 MarkdownModule,\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 formFields = this.get('formFields');\n const pathRegistry = this.get('pathRegistry');\n const formData = this._getState().data;\n\n function collectSubmitDataRecursively(submitData, formField, indexes) {\n const { disabled, type } = formField;\n const { config: fieldConfig } = formFields.get(type);\n\n // (1) Process keyed fields\n if (!disabled && fieldConfig.keyed) {\n const valuePath = pathRegistry.getValuePath(formField, { indexes });\n const value = get(formData, valuePath);\n set(submitData, valuePath, value);\n }\n\n // (2) Process parents\n if (!Array.isArray(formField.components)) {\n return;\n }\n\n // (3a) Recurse repeatable parents both across the indexes of repetition and the children\n if (fieldConfig.repeatable && formField.isRepeating) {\n\n const valueData = get(formData, pathRegistry.getValuePath(formField, { indexes }));\n\n if (!Array.isArray(valueData)) {\n return;\n }\n\n valueData.forEach((_, index) => {\n formField.components.forEach((component) => {\n collectSubmitDataRecursively(submitData, component, { ...indexes, [formField.id]: index });\n });\n });\n\n return;\n }\n\n // (3b) Recurse non-repeatable parents only across the children\n formField.components.forEach((component) => collectSubmitDataRecursively(submitData, component, indexes));\n }\n\n const workingSubmitData = {};\n collectSubmitDataRecursively(workingSubmitData, formFieldRegistry.getForm(), {});\n return this._applyConditions(workingSubmitData, formData);\n }\n\n /**\n * @internal\n */\n _applyConditions(toFilter, data, options = {}) {\n const conditionChecker = this.get('conditionChecker');\n return conditionChecker.applyConditions(toFilter, data, options);\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\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) ? valueData : (!isUndefined(defaultValue) ? defaultValue : 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\n // (a) Sanitize repeatable parents data if it is not an array\n if (!valueData || !Array.isArray(valueData)) {\n valueData = new Array(isUndefined(formField.defaultRepetitions) ? 1 : formField.defaultRepetitions).fill().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(\n (component) => 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(\n (component) => 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';\r\n\r\nexport { FormFieldRegistry, FormLayouter, Importer, FieldFactory, PathRegistry } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\nexport * from './features';\r\n\r\nconst schemaVersion = 14;\r\n\r\nexport {\r\n Form,\r\n schemaVersion\r\n};\r\n\r\n/**\r\n * @typedef { import('./types').CreateFormOptions } CreateFormOptions\r\n */\r\n\r\n/**\r\n * Create a form.\r\n *\r\n * @param {CreateFormOptions} options\r\n *\r\n * @return {Promise<Form>}\r\n */\r\nexport function createForm(options) {\r\n const {\r\n data,\r\n schema,\r\n ...formOptions\r\n } = options;\r\n\r\n const form = new Form(formOptions);\r\n\r\n return form.importSchema(schema, data).then(function() {\r\n return form;\r\n });\r\n}"],"names":["getFlavouredFeelVariableNames","feelString","feelFlavour","options","depth","specialDepthAccessors","includes","tree","parseExpression","parseUnaryTests","simpleExpressionTree","_buildSimpleFeelStructureTree","variables","_unfoldVariables","node","name","pathRoot","_linearizePathExpression","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","variableName","children","reduce","acc","child","concat","filter","Set","root","index","nodes","initialDepth","accessorDepthInfos","previous","current","extractedVariables","pathNodes","i","currentAccessor","depthOffsets","accumulator","offset","map","depthInfo","some","add","parts","push","reverse","parseTree","stack","iterate","enter","nodeRepresentation","type","slice","to","leave","result","pop","parent","_extractFilterExpressions","flattenedExpressionTree","x","filterTarget","filterExpression","taggedFilterExpression","FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","Error","evaluate","data","error","fire","$inject","FeelersTemplating","isTemplate","test","template","expressions","_extractExpressionsWithDepth","_parent_","this","_this_","context","debug","strict","buildDebugString","err","evaluateFeelers","feelersParser","parse","buildSimpleTree","_traverse","n","content","loopExpression","childResults","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","OPTIONS_SOURCES","STATIC","INPUT","EXPRESSION","OPTIONS_SOURCE_DEFAULT","OPTIONS_SOURCES_LABELS","OPTIONS_SOURCES_PATHS","OPTIONS_SOURCES_DEFAULTS","label","getOptionsSource","field","source","values","get","undefined","createInjector","bootstrapModules","injector","Injector","init","createFormContainer","prefix","container","document","createElement","classList","formFieldClasses","errors","disabled","readonly","classNames","gridColumnClasses","formField","layout","columns","prefixId","id","formId","indexes","forEach","Button","props","onFocus","onBlur","action","_jsx","class","config","keyed","group","create","FormRenderContext","createContext","Empty","Hidden","Children","style","Element","Row","Column","hoverInfo","cleanup","LocalExpressionContext","getService","FormContext","useService","useContext","isRequired","required","pathParse","path","split","key","isNaN","parseInt","pathsEqual","a","b","every","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","stringify","buildExpressionContext","specialContextKeys","_wrapObjectKeysWithUnderscores","runRecursively","fn","components","component","obj","newObj","entries","useCondition","condition","conditionChecker","expressionContextInfo","useMemo","check","useScrollIntoView","targetRef","deps","scrollOptions","flagRefs","useEffect","ref","itemToBeScrolled","scrollContainer","_getNearestScrollableAncestor","itemRect","getBoundingClientRect","containerRect","shouldScroll","scrollIfVisible","top","bottom","align","behavior","topOffset","_getTopOffset","scroll","el","scrollHeight","clientHeight","parentElement","item","scrollTop","height","useExpressionEvaluation","expressionLanguage","useFilteredFormData","initialData","_getState","newData","applyConditions","useKeyDownAction","targetKey","listenerElement","window","downHandler","addEventListener","removeEventListener","useReadonly","properties","readOnly","usePrevious","defaultValue","dependencies","useRef","useDeepCompareState","state","setState","useState","changed","compare","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","Description","description","evaluatedDescription","Errors","Label","collapseOnEmpty","evaluatedLabel","_jsxs","for","Checkbox","errorMessageId","domId","validate","onChange","target","checked","emptyValue","sanitizeValue","getOptionsData","formData","valuesKey","optionsKey","staticOptions","normalizeOptionsData","optionsData","_isAllowedValue","_normalizeOption","o","isNil","option","_isAllowedPrimitive","isObject","isValidLabel","_isValidLabel","isAllowedPrimitiveType","isValid","createEmptyOptions","defaults","valuesExpression","LOAD_STATES","LOADING","LOADED","ERROR","optionsExpression","optionsGetter","setOptionsGetter","loadState","expressionEvaluation","evaluatedOptions","keyedOptions","isArray","buildErrorState","buildLoadedState","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","d","month","getMonth","day","getDate","year","getFullYear","join","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","toString","padStart","sanitizeDateTimePickerValue","subtype","hasEqualValue","array","element","isEqual","sanitizeSingleSelectValue","validValues","v","sanitizeMultiSelectValue","optionValues","hasValuesNotInOptions","Checklist","outerDivRef","toggleCheckbox","toggledValue","newValues","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","useOptionsAsync","useCleanupMultiSelectValues","itemDomId","isChecked","onClick","noop","FormField","formFields","viewerCommands","pathRegistry","form","FormFieldComponent","valuePath","getValuePath","initialValue","useCallback","updateFieldValidation","hidden","conditional","hide","onChangeIndexed","update","fieldErrors","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","FormComponent","fullProps","getLocaleDateFormat","locale","Intl","DateTimeFormat","formatToParts","UTC","part","len","repeat","getLocaleReadableDateFormat","format","getLocaleDateFlatpickrConfig","flatpickerizeDateFormat","dateFormat","useLeadingZero","_path","_extends","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","Datepicker","collapseLabelOnEmpty","onDateTimeBlur","onDateTimeFocus","disallowPassedDates","setDate","dateInputRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","allowInput","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","close","onCalendarMouseDown","onOpen","onClose","onInputKeyDown","dispatchEvent","preventDefault","onInputFocus","onInputBlur","isFalseBlur","CalendarIcon","width","placeholder","autoComplete","onKeyDown","onMouseDown","onInput","_path2","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","min","max","individualEntries","focusedEntry","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","event","valueIndex","userMovedCursor","screenX","y","screenY","tabIndex","maxHeight","scrollBehavior","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","getNullDateTime","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","isValidDate","isValidTime","useDatePicker","useTimePicker","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","set","Logo","xmlns","viewBox","fill","Lightbox","onBackdropClick","href","rel","Link","title","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","body","schema","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","filteredFormData","localExpressionContext","noValidate","Provider","Group","showOutline","className","role","pathed","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ALLOWED_IFRAME_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","sanitizeIFrameSource","nodeType","remove","lcTag","tagName","attributes","attribute","lcName","trim","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","DEFAULT_HEIGHT","IFrame","url","evaluatedUrl","safeUrl","IFramePlaceholder","text","sandbox","Image","alt","evaluatedImageSource","safeSource","altText","ImagePlaceholder","TemplatedInputAdorner","evaluatedPre","evaluatedPost","countDecimals","number","num","Big","toFixed","isValidNumber","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","isFirstDot","isFirstMinus","keypressIsNumeric","dotIndex","indexOf","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","Numberfield","appearance","increment","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","minus","mod","plus","decrement","cmp","onKeyPress","selectionStart","selectionEnd","step","AngelUpIcon","AngelDownIcon","hasValueNotInOptions","Radio","onRadioBlur","onRadioFocus","useCleanupSingleSelectValue","useGetLabelCorrelation","labelMap","assign","_getValueHash","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","isFilterActive","setIsFilterActive","isEscapeClosed","setIsEscapeClose","searchbarRef","getLabelCorrelation","filteredOptions","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","XMarkIcon","SimpleSelect","selectRef","valueLabel","input","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","DynamicList","repeatable","allowAddRemove","defaultRepetitions","SkipLink","onSkip","Taglist","hasOptionsLeft","isValidFilteredOption","filterMatches","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","Text","textLinkTarget","disableLinks","markdownRenderer","markdown","safeHtml","render","OverriddenTargetLink","BuildOverriddenTargetLink","componentOverrides","DisabledLink","Markup","markup","rest","useFlushDebounce","func","additionalDeps","timeoutRef","lastArgsRef","debounce","shouldDebounce","delay","debounceFunc","args","clearTimeout","setTimeout","flushFunc","Textfield","flushOnChange","String","Textarea","textareaRef","useLayoutEffect","autoSizeTextarea","textarea","computed","getComputedStyle","heightFromLines","lineHeight","getPropertyValue","lines","calculatedHeight","minHeight","displayHeight","overflow","Table","columnsExpression","dataSource","rowCount","sortBy","setSortBy","evaluatedColumns","useEvaluatedColumns","columnKeys","evaluatedDataSource","sortedData","sortByColumn","direction","chunkedData","chunk","currentPage","setCurrentPage","currentChunk","toggleSortBy","displayLabel","getHeaderAriaLabel","ArrowUpIcon","ArrowDownIcon","colSpan","page","CaretLeftIcon","CaretRightIcon","remainingOptions","isDefined","isColumn","initialDemoData","fallbackColumns","evaluation","column","size","chunks","sort","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","GroupIcon","iframe","IFrameIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","select","SelectIcon","separator","SeparatorIcon","spacer","SpacerIcon","dynamiclist","DynamicListIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","table","TableIcon","default","FormIcon","Default","FormFields","_formFields","register","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","getSchemaVariables","inputs","outputs","getAllComponents","prop","property","expressionVariables","templateVariables","variable","getBindingVariables","bindingVariable","getAncestryList","formFieldId","ids","currentFormField","_parent","ConditionChecker","_formFieldRegistry","_pathRegistry","contextData","workingData","getFilterPath","leafNodeDeletionOnly","_applyConditionsWithinScope","rootField","scopeContext","startHidden","expressionIndexes","scopeData","parentScopeData","executeRecursivelyOnFields","isClosed","isRepeatable","isHidden","_checkHideCondition","preventRecursion","repeaterValuePath","repeaterValue","newScopeContext","_cleanlyClearDataAtPath","getForm","unaryTest","workingValuePath","recurse","parentObject","_isEmptyObject","_isEmptyArray","__init__","showdown","setFlavor","MarkdownRenderer","_converter","Converter","makeHtml","CommandStack","_handlerMap","_stack","_stackIdx","_currentExecution","actions","dirty","trigger","_injector","_uid","on","clear","prototype","execute","command","_pushAction","_internalExecute","_popAction","canExecute","handler","_getHandler","_fire","emit","undo","_getUndoAction","next","_internalUndo","redo","_getRedoAction","_setHandler","registerHandler","handlerCls","instantiate","canUndo","canRedo","_atomicDo","revert","_markDirty","_revertedAction","qualifier","arguments","names","createEvent","cancelBubble","_createId","execution","atomic","preExecute","_executedAction","postExecute","baseAction","elements","uniqueBy","stackIdx","splice","commandStack","UpdateFieldValidationHandler","validator","_form","_validator","oldErrors","validateField","updatedErrors","_setState","ViewerCommands","_commandStack","registerHandlers","getHandlers","__depends__","commandModule","RepeatRenderManager","bind","formFieldDefinition","sharedRepeatState","repeaterField","dataPath","nonCollapsedItems","_getNonCollapsedItems","collapseEnabled","disableCollapse","hasChildren","showRemove","displayValues","onDeleteItem","updatedValues","parentExpressionContextInfo","elementProps","localExpressionContextInfo","DeleteSvg","addButtonRef","setSharedRepeatState","showAdd","toggle","onAddItem","newItem","_getInitializedFieldData","AddSvg","ExpandSvg","CollapseSvg","DEFAULT_NON_COLLAPSED_ITEMS","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","actualCallback","self","_addListener","once","wrappedCallback","__isTomb","apply","off","_removeListener","InternalEvent","firstListener","returnValue","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","EMAIL_PATTERN","PHONE_PATTERN","VALIDATE_FEEL_PROPERTIES","Validator","_expressionLanguage","_conditionChecker","bigValue","bigIncrement","nextValue","evaluatedValidation","evaluateFEELValues","pattern","RegExp","isUncheckedCheckbox","isUnsetValue","isEmptyMultiselect","minLength","maxLength","validationType","evaluatedValidate","filteredData","evaluatedValue","Importer","fieldFactory","_fieldFactory","_formLayouter","importSchema","warnings","_cleanup","importedSchema","importFormField","calculateLayout","fieldAttrs","importFormFields","FieldFactory","attrs","applyDefaults","fieldDefinition","_ids","assigned","parentPath","knownAncestorIds","canClaimPath","labelAttrs","_ensureId","_ensureKey","claimPath","claimerId","_enforceDefaultPath","claim","nextPrefixed","_getUniqueKeyPath","random","substring","PathRegistry","_dataPaths","skipAncestryCheck","segment","_getNextSegment","isValidRepeatClaim","repeaterId","claimCount","unclaimPath","formFieldConfig","callResult","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","_addIndexes","find","FormLayouter","_rows","Ids","addRow","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","c","groupBy","formRows","flatten","FormFieldRegistry","getAll","Renderer","App","formContext","_id","newState","_update","submit","reset","renderer","renderModule","importer","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","initializedData","_getSubmitData","getErrorPath","validateFieldRecursively","fieldConfig","valueData","_","workingErrors","filteredErrors","_applyConditions","parentNode","detach","appendChild","removeChild","setProperty","modules","_getModules","additionalModules","enrichedConfig","core","ExpressionLanguageModule","MarkdownModule","ViewerCommandsModule","RepeatRenderModule","collectSubmitDataRecursively","submitData","workingSubmitData","toFilter","initializeFieldDataRecursively","isUndefined","initializedFieldValue","val","basePath","schemaVersion","createForm","formOptions","then"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAASI,YAAYA,CAACj7B,QAAQ,EAAEwE,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAAC02B,WAAW,GAAG,EAAE,CAAA;;AAErB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,MAAM,GAAG,EAAE,CAAA;;AAEhB;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC,CAAA;;AAEnB;AACF;AACA;AACA;AACA;EACE,IAAI,CAACC,iBAAiB,GAAG;AACvBC,IAAAA,OAAO,EAAE,EAAE;AACXC,IAAAA,KAAK,EAAE,EAAE;AACTC,IAAAA,OAAO,EAAE,IAAA;GACV,CAAA;;AAED;AACF;AACA;EACE,IAAI,CAACC,SAAS,GAAGj3B,QAAQ,CAAA;;AAEzB;AACF;AACA;EACE,IAAI,CAACvE,SAAS,GAAGD,QAAQ,CAAA;;AAEzB;AACF;AACA;EACE,IAAI,CAAC07B,IAAI,GAAG,CAAC,CAAA;EAEb17B,QAAQ,CAAC27B,EAAE,CAAC,CACV,iBAAiB,EACjB,eAAe,CAChB,EAAE,YAAW;AACZ,IAAA,IAAI,CAACC,KAAK,CAAC,KAAK,CAAC,CAAA;GAClB,EAAE,IAAI,CAAC,CAAA;AACV,CAAA;AAEAX,YAAY,CAACp6B,OAAO,GAAG,CAAE,UAAU,EAAE,UAAU,CAAE,CAAA;;AAGjD;AACA;AACA;AACA;AACA;AACA;AACAo6B,YAAY,CAACY,SAAS,CAACC,OAAO,GAAG,UAASC,OAAO,EAAEx6B,OAAO,EAAE;EAC1D,IAAI,CAACw6B,OAAO,EAAE;AACZ,IAAA,MAAM,IAAIv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","x_google_ignoreList":[106,107,117]}
|