@bpmn-io/form-js-viewer 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/form-js-base.css +24 -0
- package/dist/assets/form-js.css +457 -654
- package/dist/index.cjs +394 -230
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +391 -232
- package/dist/index.es.js.map +1 -1
- package/dist/types/core/FieldFactory.d.ts +1 -1
- package/dist/types/core/FormFieldRegistry.d.ts +1 -1
- package/dist/types/core/FormLayouter.d.ts +2 -2
- package/dist/types/core/Importer.d.ts +1 -1
- package/dist/types/core/PathRegistry.d.ts +1 -1
- package/dist/types/core/Validator.d.ts +1 -1
- package/dist/types/core/index.d.ts +8 -8
- package/dist/types/features/expression-language/ConditionChecker.d.ts +1 -1
- package/dist/types/features/expression-language/FeelExpressionLanguage.d.ts +1 -1
- package/dist/types/features/expression-language/FeelersTemplating.d.ts +1 -1
- package/dist/types/features/expression-language/index.d.ts +4 -4
- package/dist/types/features/markdown/MarkdownRenderer.d.ts +1 -1
- package/dist/types/features/markdown/index.d.ts +2 -2
- package/dist/types/features/viewerCommands/ViewerCommands.d.ts +1 -1
- package/dist/types/features/viewerCommands/cmd/UpdateFieldValidationHandler.d.ts +1 -1
- package/dist/types/features/viewerCommands/index.d.ts +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/render/Renderer.d.ts +1 -1
- package/dist/types/render/components/Sanitizer.d.ts +8 -0
- package/dist/types/render/components/form-fields/Button.d.ts +3 -3
- package/dist/types/render/components/form-fields/Checkbox.d.ts +4 -4
- package/dist/types/render/components/form-fields/Checklist.d.ts +5 -5
- package/dist/types/render/components/form-fields/Datetime.d.ts +4 -4
- package/dist/types/render/components/form-fields/Default.d.ts +4 -4
- package/dist/types/render/components/form-fields/Group.d.ts +4 -4
- package/dist/types/render/components/form-fields/IFrame.d.ts +12 -0
- package/dist/types/render/components/form-fields/Image.d.ts +3 -3
- package/dist/types/render/components/form-fields/Number.d.ts +4 -4
- package/dist/types/render/components/form-fields/Radio.d.ts +5 -5
- package/dist/types/render/components/form-fields/Select.d.ts +5 -5
- package/dist/types/render/components/form-fields/Separator.d.ts +3 -3
- package/dist/types/render/components/form-fields/Spacer.d.ts +3 -3
- package/dist/types/render/components/form-fields/Taglist.d.ts +5 -5
- package/dist/types/render/components/form-fields/Text.d.ts +3 -3
- package/dist/types/render/components/form-fields/Textarea.d.ts +4 -4
- package/dist/types/render/components/form-fields/Textfield.d.ts +4 -4
- package/dist/types/render/components/index.d.ts +3 -2
- package/dist/types/render/components/util/optionsUtil.d.ts +8 -0
- package/dist/types/render/hooks/useCleanupMultiSelectValues.d.ts +1 -0
- package/dist/types/render/hooks/useCleanupSingleSelectValue.d.ts +1 -0
- package/dist/types/render/hooks/useOptionsAsync.d.ts +28 -0
- package/dist/types/render/index.d.ts +4 -3
- package/dist/types/util/constants/DatetimeConstants.d.ts +6 -6
- package/dist/types/util/constants/ValuesSourceConstants.d.ts +3 -3
- package/package.json +4 -4
- package/dist/types/render/components/util/valuesUtil.d.ts +0 -8
- package/dist/types/render/hooks/useValuesAsync.d.ts +0 -28
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/features/expression-language/variableExtractionHelpers.js","../src/features/expression-language/FeelExpressionLanguage.js","../src/features/expression-language/FeelersTemplating.js","../src/render/components/Util.js","../src/render/components/form-fields/Button.js","../src/render/context/FormRenderContext.js","../src/render/context/FormContext.js","../src/render/hooks/useService.js","../src/render/hooks/useFilteredFormData.js","../src/render/hooks/useCondition.js","../src/render/hooks/useExpressionEvaluation.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/valuesUtil.js","../src/render/hooks/useValuesAsync.js","../src/util/constants/DatetimeConstants.js","../src/render/components/util/dateTimeUtil.js","../src/render/components/util/sanitizerUtil.js","../src/render/components/form-fields/Checklist.js","../src/render/components/FormField.js","../src/render/components/form-fields/parts/Grid.js","../src/render/components/form-fields/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/util/localisationUtil.js","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/form-fields/Group.js","../src/render/components/Sanitizer.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/components/form-fields/Radio.js","../src/render/components/form-fields/icons/XMark.svg","../src/render/components/form-fields/parts/SearchableSelect.js","../src/render/components/form-fields/parts/SimpleSelect.js","../src/render/components/form-fields/Select.js","../src/render/components/form-fields/Separator.js","../src/render/components/form-fields/Spacer.js","../src/render/components/form-fields/parts/SkipLink.js","../src/render/components/form-fields/Taglist.js","../src/render/components/form-fields/Text.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.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/Text.svg","../src/render/components/icons/Textfield.svg","../src/render/components/icons/Textarea.svg","../src/render/components/icons/Image.svg","../src/render/components/icons/index.js","../src/render/components/index.js","../src/render/FormFields.js","../src/util/constants/ValuesSourceConstants.js","../src/util/injector.js","../src/util/form.js","../src/util/index.js","../src/features/expression-language/ConditionChecker.js","../src/features/expression-language/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","../../../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 = [];","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\n\nexport function prefixId(id, formId) {\n if (formId) {\n return `fjs-form-${ formId }-${ id }`;\n }\n\n return `fjs-form-${ id }`;\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 EmptyRoot: (props) => {\n return null;\n },\n Empty: (props) => {\n return null;\n },\n Children: (props) => {\n return <div class={ props.class }>{ props.children }</div>;\n },\n Element: (props) => {\n return <div class={ props.class }>{ props.children }</div>;\n },\n Row: (props) => {\n return <div class={ props.class }>{ 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 }>{ props.children }</div>;\n },\n hoveredId: [],\n setHoveredId: (newValue) => { console.log(`setHoveredId not defined, called with '${newValue}'`); }\n});\n\nexport default FormRenderContext;","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}","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 */\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 useService from './useService.js';\nimport useFilteredFormData from './useFilteredFormData.js';\nimport { useMemo } from 'preact/hooks';\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 filteredData = useFilteredFormData();\n\n return useMemo(() => {\n return conditionChecker ? conditionChecker.check(condition, filteredData) : null;\n }, [ conditionChecker, condition, filteredData ]);\n}\n","import useService from './useService';\nimport useFilteredFormData from './useFilteredFormData';\nimport { useMemo } from 'preact/hooks';\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 * Memoised to minimize re-renders.\n *\n * @param {string} value\n *\n */\nexport default function useExpressionEvaluation(value) {\n const formData = useFilteredFormData();\n const expressionLanguage = useService('expressionLanguage');\n\n return useMemo(() => {\n\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\n return expressionLanguage.evaluate(value, formData);\n }\n\n return value;\n\n }, [ expressionLanguage, formData, value ]);\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 useFilteredFormData from './useFilteredFormData.js';\n\n/**\n * Retrieve readonly value of a form field, given it can be an\n * expression optionally or configured globally.\n *\n * @typedef { import('../../types').FormProperties } FormProperties\n *\n * @param {any} formField\n * @param {FormProperties} properties\n *\n * @returns {boolean}\n */\nexport default function useReadonly(formField, properties = {}) {\n const expressionLanguage = useService('expressionLanguage');\n const conditionChecker = useService('conditionChecker', false);\n const filteredData = useFilteredFormData();\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, filteredData) : 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 useFilteredFormData from './useFilteredFormData';\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 * 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 filteredData = useFilteredFormData();\n const templating = useService('templating');\n\n return useMemo(() => {\n\n if (templating && templating.isTemplate(value)) {\n return templating.evaluate(value, filteredData, options);\n }\n\n return value;\n\n }, [ filteredData, templating, value, 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\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 { useContext } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\nimport classNames from 'classnames';\n\nconst type = 'checkbox';\n\n\nexport default function Checkbox(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = false\n } = props;\n\n const {\n description,\n id,\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 const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required }>\n <input\n checked={ value }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ prefixId(id, formId) }\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 } from 'min-dash';\n\n// parses the options data from the provided form field and form data\nexport function getValuesData(formField, formData) {\n const { valuesKey, values } = formField;\n return valuesKey ? get(formData, [ valuesKey ]) : values;\n}\n\n// transforms the provided options into a normalized format, trimming invalid options\nexport function normalizeValuesData(valuesData) {\n return valuesData.filter(_isValueSomething).map(v => _normalizeValueData(v)).filter(v => v);\n}\n\nfunction _normalizeValueData(valueData) {\n\n if (_isAllowedValue(valueData)) {\n\n // if a primitive is provided, use it as label and value\n return { value: valueData, label: `${ valueData }` };\n }\n\n if (typeof (valueData) === 'object') {\n if (!valueData.label && _isAllowedValue(valueData.value)) {\n\n // if no label is provided, use the value as label\n return { value: valueData.value, label: `${ valueData.value }` };\n }\n\n if (_isValueSomething(valueData.value) && _isAllowedValue(valueData.label)) {\n\n // if both value and label are provided, use them as is, in this scenario, the value may also be an object\n return valueData;\n }\n }\n\n return null;\n}\n\nfunction _isAllowedValue(value) {\n return _isReadableType(value) && _isValueSomething(value);\n}\n\nfunction _isReadableType(value) {\n return [ 'number', 'string', 'boolean' ].includes(typeof(value));\n}\n\nfunction _isValueSomething(value) {\n return value || value === 0 || value === false;\n}\n\nexport function createEmptyOptions(options = {}) {\n\n const defaults = {};\n\n // provide default values 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 { normalizeValuesData } from '../components/util/valuesUtil';\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} ValuesGetter\n * @property {Object[]} values - The values data\n * @property {(LOAD_STATES)} state - The values data's loading state, to use for conditional rendering\n */\n\n/**\n * A hook to load values for single and multiselect components.\n *\n * @param {Object} field - The form field to handle values for\n * @return {ValuesGetter} valuesGetter - A values getter object providing loading state and values\n */\nexport default function(field) {\n const {\n valuesExpression,\n valuesKey,\n values: staticValues\n } = field;\n\n const [ valuesGetter, setValuesGetter ] = useState({ values: [], error: undefined, state: LOAD_STATES.LOADING });\n const initialData = useService('form')._getState().initialData;\n\n const expressionEvaluation = useExpressionEvaluation(valuesExpression);\n const evaluatedValues = useDeepCompareState(expressionEvaluation || [], []);\n\n useEffect(() => {\n\n let values = [];\n\n // dynamic values\n if (valuesKey !== undefined) {\n const keyedValues = (initialData || {})[ valuesKey ];\n\n if (keyedValues && Array.isArray(keyedValues)) {\n values = keyedValues;\n }\n\n // static values\n } else if (staticValues !== undefined) {\n values = Array.isArray(staticValues) ? staticValues : [];\n\n // expression\n } else if (valuesExpression) {\n\n if (evaluatedValues && Array.isArray(evaluatedValues)) {\n values = evaluatedValues;\n }\n } else {\n setValuesGetter(buildErrorState('No values source defined in the form definition'));\n return;\n }\n\n // normalize data to support primitives and partially defined objects\n values = normalizeValuesData(values);\n\n setValuesGetter(buildLoadedState(values));\n\n }, [ valuesKey, staticValues, initialData, valuesExpression, evaluatedValues ]);\n\n return valuesGetter;\n}\n\nconst buildErrorState = (error) => ({ values: [], error, state: LOAD_STATES.ERROR });\n\nconst buildLoadedState = (values) => ({ values, error: undefined, state: LOAD_STATES.LOADED });\n","// config ///////////////////\n\nexport const MINUTES_IN_DAY = 60 * 24;\n\nexport const DATETIME_SUBTYPES = {\n DATE: 'date',\n TIME: 'time',\n DATETIME: 'datetime'\n};\n\nexport const TIME_SERIALISING_FORMATS = {\n UTC_OFFSET: 'utc_offset',\n UTC_NORMALIZED: 'utc_normalized',\n NO_TIMEZONE: 'no_timezone'\n};\n\nexport const DATETIME_SUBTYPES_LABELS = {\n [DATETIME_SUBTYPES.DATE]: 'Date',\n [DATETIME_SUBTYPES.TIME]: 'Time',\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time'\n};\n\nexport const TIME_SERIALISINGFORMAT_LABELS = {\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone'\n};\n\nexport const DATETIME_SUBTYPE_PATH = [ 'subtype' ];\nexport const DATE_LABEL_PATH = [ 'dateLabel' ];\nexport const DATE_DISALLOW_PAST_PATH = [ 'disallowPassedDates' ];\nexport const TIME_LABEL_PATH = [ 'timeLabel' ];\nexport const TIME_USE24H_PATH = [ 'use24h' ];\nexport const TIME_INTERVAL_PATH = [ 'timeInterval' ];\nexport const TIME_SERIALISING_FORMAT_PATH = [ 'timeSerializingFormat' ];\n","import { 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 { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\nimport { getValuesData, normalizeValuesData } from './valuesUtil';\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 sanitizeSingleSelectValue(options) {\n const {\n formField,\n data,\n value\n } = options;\n\n try {\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\n return validValues.includes(value) ? 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 = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\n return value.filter(v => validValues.includes(v));\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 { useContext, useRef } from 'preact/hooks';\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\nimport classNames from 'classnames';\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/valuesUtil';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'checklist';\n\n\nexport default function Checklist(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = [],\n } = props;\n\n const {\n description,\n id,\n label,\n validate = {}\n } = field;\n\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const toggleCheckbox = (v) => {\n\n let newValue = [ ...value ];\n\n if (!newValue.includes(v)) {\n newValue.push(v);\n } else {\n newValue = newValue.filter(x => x != v);\n }\n\n props.onChange({\n field,\n value: newValue,\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 state: loadState,\n values: options\n } = useValuesAsync(field);\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\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((v, index) => {\n return (\n <Label\n id={ prefixId(`${id}-${index}`, formId) }\n key={ `${id}-${index}` }\n label={ v.label }\n class={ classNames({\n 'fjs-checked': value.includes(v.value)\n }) }\n required={ false }>\n <input\n checked={ value.includes(v.value) }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ prefixId(`${id}-${index}`, formId) }\n type=\"checkbox\"\n onClick={ () => toggleCheckbox(v.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: 'Checklist',\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 { FormRenderContext } from '../context';\n\nimport {\n useCondition,\n useReadonly,\n useService\n} from '../hooks';\n\nimport { gridColumnClasses } from './Util';\n\nconst noop = () => false;\n\n\nexport default function FormField(props) {\n const {\n field,\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 Empty,\n Column\n } = useContext(FormRenderContext);\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), [ field, 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);\n }\n eventBus.fire('formField.blur', { formField: field });\n }, [ eventBus, viewerCommands, field, value ]);\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);\n }\n }, [ viewerCommands, field, initialValue ]);\n\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\n\n if (hidden) {\n return <Empty />;\n }\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={ errors[ field.id ] }\n onChange={ disabled || readonly ? noop : onChange }\n onBlur={ disabled || readonly ? noop : onBlur }\n onFocus={ disabled || readonly ? noop : onFocus }\n readonly={ readonly }\n value={ value } />\n </Element>\n </Column>\n );\n}\n","import { useContext } from 'preact/hooks';\n\nimport useService from '../../../hooks/useService';\n\nimport FormField from '../../FormField';\n\nimport { FormRenderContext } from '../../../context';\n\nexport default function Grid(props) {\n\n const {\n Children,\n Row\n } = useContext(FormRenderContext);\n\n const { field, Empty } = props;\n\n const { id, components = [] } = field;\n\n const formLayouter = useService('formLayouter');\n const formFieldRegistry = useService('formFieldRegistry');\n const rows = formLayouter.getRows(id);\n\n return <Children class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\n {\n\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\">\n {\n components.map(id => {\n\n const childField = formFieldRegistry.get(id);\n\n if (!childField) {\n return null;\n }\n\n return (\n <FormField\n { ...props }\n key={ childField.id }\n field={ childField } />\n );\n })\n }\n </Row>\n );\n })\n }\n {\n components.length ? null : <Empty />\n }\n </Children>;\n}\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport Grid from './parts/Grid';\n\nexport default function FormComponent(props) {\n\n const {\n EmptyRoot,\n } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty: EmptyRoot };\n\n return <Grid { ...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","<svg width=\"14\" height=\"15\" viewBox=\"0 0 28 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" d=\"M19 2H9V0H7V2H2C0.895431 2 0 2.89543 0 4V28C0 29.1046 0.895431 30 2 30H26C27.1046 30 28 29.1046 28 28V4C28 2.89543 27.1046 2 26 2H21V0H19V2ZM7 7V4H2V9H26V4H21V7H19V4H9V7H7ZM2 11V28H26V11H2Z\" />\n</svg>\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","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 CalendarIcon from '../icons/Calendar.svg';\nimport flatpickr from 'flatpickr';\n\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\nimport { getLocaleReadableDateFormat, getLocaleDateFlatpickrConfig } from '../../util/localisationUtil';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { prefixId } from '../../Util';\nimport InputAdorner from './InputAdorner';\nimport Label from '../../Label';\n\nexport default function Datepicker(props) {\n\n const {\n id,\n label,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\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 const fullId = `${prefixId(id, formId)}--date`;\n\n return <div class=\"fjs-datetime-subsection\">\n <Label\n id={ fullId }\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={ fullId }\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 width=\"16\" height=\"16\" viewBox=\"0 0 28 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"currentColor\" d=\"M13 14.41L18.59 20L20 18.59L15 13.58V5.00001H13V14.41Z\" />\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" d=\"M6.22202 25.6406C8.52431 27.1789 11.2311 28 14 28C17.713 28 21.274 26.525 23.8995 23.8995C26.525 21.274 28 17.713 28 14C28 11.2311 27.1789 8.52431 25.6406 6.22202C24.1022 3.91973 21.9157 2.12532 19.3576 1.06569C16.7994 0.00606644 13.9845 -0.271181 11.2687 0.269013C8.55301 0.809205 6.05844 2.14258 4.10051 4.10051C2.14258 6.05844 0.809205 8.55301 0.269013 11.2687C-0.271181 13.9845 0.00606644 16.7994 1.06569 19.3576C2.12532 21.9157 3.91973 24.1022 6.22202 25.6406ZM7.33316 4.02237C9.30655 2.70379 11.6266 2.00001 14 2.00001C17.1826 2.00001 20.2348 3.26429 22.4853 5.51472C24.7357 7.76516 26 10.8174 26 14C26 16.3734 25.2962 18.6935 23.9776 20.6668C22.6591 22.6402 20.7849 24.1783 18.5922 25.0866C16.3995 25.9948 13.9867 26.2325 11.6589 25.7694C9.33115 25.3064 7.19296 24.1635 5.51472 22.4853C3.83649 20.8071 2.69361 18.6689 2.23058 16.3411C1.76756 14.0133 2.0052 11.6005 2.91345 9.40781C3.8217 7.21509 5.35977 5.34095 7.33316 4.02237Z\" />\n</svg>\n","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 ClockIcon from '../icons/Clock.svg';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { prefixId } from '../../Util';\nimport DropdownList from './DropdownList';\nimport { isNumber } from 'min-dash';\nimport InputAdorner from './InputAdorner';\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\nimport Label from '../../Label';\n\nexport default function Timepicker(props) {\n\n const {\n id,\n label,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\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 const fullId = `${prefixId(id, formId)}--time`;\n\n return <div class=\"fjs-datetime-subsection\">\n <Label\n id={ fullId }\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={ fullId }\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 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 id,\n label: dateLabel,\n collapseLabelOnEmpty: !timeLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\n required,\n disabled,\n disallowPassedDates,\n date: dateTime.date,\n readonly,\n setDate,\n 'aria-describedby': errorMessageId\n };\n const timePickerProps = {\n id,\n label: timeLabel,\n collapseLabelOnEmpty: !dateLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\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';\n\nimport PoweredBy from './PoweredBy';\n\nimport useService from '../hooks/useService';\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 return (\n <form\n class=\"fjs-form\"\n onSubmit={ handleSubmit }\n onReset={ handleReset }\n aria-label={ ariaLabel }\n noValidate\n >\n <FormField\n field={ schema }\n onChange={ onChange }\n />\n\n <PoweredBy />\n </form>\n );\n}","import { useContext } from 'preact/hooks';\nimport Grid from './parts/Grid';\nimport { FormContext, FormRenderContext } from '../../context';\nimport { formFieldClasses, prefixId } from '../Util';\nimport Label from '../Label';\nimport classNames from 'classnames';\n\nexport default function Group(props) {\n\n const { field } = props;\n const { label, id, type, showOutline } = field;\n const { formId } = useContext(FormContext);\n\n const {\n Empty,\n } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div className={ classNames(formFieldClasses(type), { 'fjs-outlined' : showOutline }) } role=\"group\" aria-labelledby={ prefixId(id, formId) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label } />\n <Grid { ...fullProps } />\n </div>\n );\n}\n\nGroup.config = {\n type: 'group',\n pathed: true,\n label: 'Group',\n group: 'presentation',\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 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 * 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}","<svg width=\"64px\" height=\"64px\" viewBox=\"0 0 1280 1280\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:space=\"preserve\" xmlns:serif=\"http://www.serif.com/\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;\">\n <rect x=\"0\" y=\"0\" width=\"1280\" height=\"1280\" style=\"fill:rgb(229,233,237);\"/>\n <path d=\"M910,410L370,410L370,880L910,880L910,410ZM852.667,467.333L852.667,822.667C852.667,822.667 427.333,822.667 427.333,822.667C427.333,732.29 427.333,557.71 427.333,467.333L852.667,467.333Z\" style=\"fill:rgb(202,211,219);\"/>\n <path d=\"M810,770L480,770L480,710L580,540L710,710L810,645L810,770Z\" style=\"fill:rgb(202,211,219);\"/>\n <g transform=\"matrix(1,0,0,1,10,10)\">\n <circle cx=\"750\" cy=\"550\" r=\"50\" style=\"fill:rgb(202,211,219);\"/>\n </g>\n</svg>\n","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\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\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"8px\" height=\"8px\" viewBox=\"0 0 8 8\" version=\"1.1\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0.5\" \n d=\"M 7.75 1.335938 L 4 6.125 L 0.257812 1.335938 L 0 1.539062 L 4 6.664062 L 8 1.539062 Z M 7.75 1.335938 \" />\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"8px\" height=\"8px\" viewBox=\"0 0 8 8\" version=\"1.1\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0.5\" \n d=\"M 7.75 6.664062 L 4 1.875 L 0.257812 6.664062 L 0 6.460938 L 4 1.335938 L 8 6.460938 Z M 7.75 6.664062 \" />\n</svg>\n","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, useContext, useMemo, useRef, useState } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\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 prefixId\n} from '../Util';\n\nimport {\n isNullEquivalentValue,\n isValidNumber,\n willKeyProduceValidNumber\n} from '../util/numberFieldUtil';\n\nconst type = 'number';\n\n\nexport default function Numberfield(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n value,\n readonly,\n onChange\n } = props;\n\n const {\n description,\n id,\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 const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ prefixId(id, formId) }\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={ prefixId(id, formId) }\n onKeyDown={ onKeyDown }\n onKeyPress={ onKeyPress }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => 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 // null state is allowed\n if (isNullEquivalentValue(value)) return null;\n\n // if data cannot be parsed as a valid number, go into invalid NaN state\n if (!isValidNumber(value)) return 'NaN';\n\n // otherwise parse to formatting type\n return formField.serializeToString ? value.toString() : Number(value);\n },\n create: (options = {}) => ({\n ...options\n })\n};\n","import { useContext, useRef } from 'preact/hooks';\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\nimport classNames from 'classnames';\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/valuesUtil';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'radio';\n\n\nexport default function Radio(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const {\n description,\n id,\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 state: loadState,\n values: options\n } = useValuesAsync(field);\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\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 return (\n <Label\n id={ prefixId(`${ id }-${ index }`, formId) }\n key={ `${ id }-${ index }` }\n label={ option.label }\n class={ classNames({ 'fjs-checked': option.value === value }) }\n required={ false }>\n <input\n checked={ option.value === value }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ prefixId(`${ id }-${ index }`, formId) }\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',\n group: 'selection',\n emptyValue: null,\n sanitizeValue: sanitizeSingleSelectValue,\n create: createEmptyOptions\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"8px\" height=\"8px\" viewBox=\"0 0 8 8\" version=\"1.1\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0.5\" \n d=\"M 4 3.765625 L 7.429688 0.335938 L 7.664062 0.570312 L 4.234375 4 L 7.664062 7.429688 L 7.429688 7.664062 L 4 4.234375 L 0.570312 7.664062 L 0.335938 7.429688 L 3.765625 4 L 0.335938 0.570312 L 0.570312 0.335938 Z M 4 3.765625 \" />\n</svg>\n","import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport useValuesAsync, { LOAD_STATES } from '../../../hooks/useValuesAsync';\nimport { useService } from '../../../hooks';\n\nimport { FormContext } from '../../../context';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\n\nimport {\n prefixId,\n} from '../../Util';\n\nimport classNames from 'classnames';\n\nimport DropdownList from './DropdownList';\n\nexport default function SearchableSelect(props) {\n const {\n id,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const { formId } = useContext(FormContext);\n const [ filter, setFilter ] = useState('');\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const [ shouldApplyFilter, setShouldApplyFilter ] = useState(true);\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\n const searchbarRef = useRef();\n const eventBus = useService('eventBus');\n\n const {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\n\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\n\n // whenever we change the underlying value, set the label to it\n useEffect(() => { setFilter(valueLabel); }, [ valueLabel ]);\n\n const filteredOptions = useMemo(() => {\n\n if (loadState === LOAD_STATES.LOADED) {\n return shouldApplyFilter ? options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase()))) : options;\n }\n\n return [];\n\n }, [ filter, loadState, options, shouldApplyFilter ]);\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 setShouldApplyFilter(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 setShouldApplyFilter(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 setShouldApplyFilter(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(valueLabel);\n onBlur && onBlur();\n }, [ onBlur, valueLabel ]);\n\n return <>\n <div id={ prefixId(`${id}`, formId) }\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={ prefixId(`${id}-search`, formId) }\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, useContext, useMemo, useRef, useState } from 'preact/hooks';\nimport useValuesAsync, { LOAD_STATES } from '../../../hooks/useValuesAsync';\n\nimport { FormContext } from '../../../context';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\n\nimport {\n prefixId,\n} from '../../Util';\n\nimport classNames from 'classnames';\n\nimport DropdownList from './DropdownList';\nimport { findIndex } from 'min-dash';\n\nexport default function SimpleSelect(props) {\n const {\n id,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const { formId } = useContext(FormContext);\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const selectRef = useRef();\n\n const {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\n\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\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 select = selectRef.current;\n setIsDropdownExpanded(!isDropdownExpanded);\n\n if (isDropdownExpanded) {\n select.blur();\n }\n else {\n select.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 id={ prefixId(`${id}`, formId) }\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={ prefixId(`${id}-display`, formId) }>{ valueLabel || 'Select' }</div>\n { !disabled && <input\n id={ prefixId(`${id}-search`, formId) }\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 { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/valuesUtil';\n\nimport {\n formFieldClasses,\n prefixId\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 onBlur,\n onFocus,\n field,\n onChange,\n readonly,\n value\n } = props;\n\n const {\n description,\n id,\n label,\n searchable = false,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n const selectProps = useMemo(() => ({\n id,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n value,\n onChange,\n readonly,\n 'aria-describedby': errorMessageId,\n }), [ disabled, errors, field, id, value, onChange, onBlur, onFocus, readonly, errorMessageId ]);\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={ prefixId(`${id}-search`, formId) }\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 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 { useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\n\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\nimport { useService } from '../../hooks';\n\nimport { FormContext } from '../../context';\nimport classNames from 'classnames';\n\nimport XMarkIcon from './icons/XMark.svg';\n\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 } from '../util/sanitizerUtil';\nimport { createEmptyOptions } from '../util/valuesUtil';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'taglist';\n\nexport default function Taglist(props) {\n const {\n disabled,\n errors = [],\n onFocus,\n onBlur,\n field,\n readonly,\n value : values = []\n } = props;\n\n const {\n description,\n id,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n const [ filter, setFilter ] = useState('');\n const [ filteredOptions, setFilteredOptions ] = useState([]);\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const [ hasOptionsLeft, setHasOptionsLeft ] = useState(true);\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\n const focusScopeRef = useRef();\n const inputRef = useRef();\n const eventBus = useService('eventBus');\n\n const {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\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 useEffect(() => {\n if (loadState === LOAD_STATES.LOADED) {\n setFilteredOptions(options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase())) && !values.includes(o.value)));\n }\n else {\n setFilteredOptions([]);\n }\n }, [ filter, JSON.stringify(values), options, loadState ]);\n\n useEffect(() => {\n setHasOptionsLeft(options.length > values.length);\n }, [ options.length, values.length ]);\n\n const selectValue = (value) => {\n if (filter) {\n setFilter('');\n }\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 props.onChange({ value: values.filter((v) => v != value), 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={ prefixId(`${id}-search`, formId) } />\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 {valueToOptionMap[v] ? valueToOptionMap[v].label : `unexpected value{${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={ prefixId(`${id}-search`, formId) }\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\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 OverridenTargetLink = useMemo(() => BuildOverridenTargetLink(textLinkTarget), [ textLinkTarget ]);\n\n const componentOverrides = useMemo(() => {\n\n if (disableLinks) {\n return { 'a': DisabledLink };\n }\n\n if (textLinkTarget) {\n return { 'a': OverridenTargetLink };\n }\n\n return {};\n }, [ disableLinks, OverridenTargetLink, 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 BuildOverridenTargetLink(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 { isArray, isObject } from 'min-dash';\nimport { useContext } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\nimport InputAdorner from './parts/TemplatedInputAdorner';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'textfield';\n\n\nexport default function Textfield(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n id,\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 onChange = ({ target }) => {\n props.onChange({\n field,\n value: target.value\n });\n };\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ prefixId(id, formId) }\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={ prefixId(id, formId) }\n onInput={ onChange }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => onFocus && onFocus() }\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)) {\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 } from 'min-dash';\nimport { useContext, useEffect, useLayoutEffect, useRef } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'textarea';\n\n\nexport default function Textarea(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n id,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const textareaRef = useRef();\n\n const onInput = ({ target }) => {\n props.onChange({\n field,\n value: target.value\n });\n };\n\n useLayoutEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [ value ]);\n\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, []);\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <textarea class=\"fjs-textarea\"\n disabled={ disabled }\n readonly={ readonly }\n id={ prefixId(id, formId) }\n onInput={ onInput }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => onFocus && onFocus() }\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)) ? '' : 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\" 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 xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"54\" height=\"54\" fill=\"currentcolor\"><g fill-rule=\"evenodd\"><use xlink:href=\"#a\"/><use xlink:href=\"#a\" y=\"24\"/><use xlink:href=\"#a\" y=\"12\"/></g><use xlink:href=\"#b\"/><use xlink:href=\"#b\" y=\"12\"/><use xlink:href=\"#b\" y=\"24\"/><defs><path id=\"a\" d=\"M18 12h-6v6h6v-6zm-6-2a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2h-6z\"/><path id=\"b\" d=\"M23 14.5a1 1 0 0 1 1-1h19a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H24a1 1 0 0 1-1-1v-1z\"/></defs></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 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=\"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>","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 TextIcon from './Text.svg';\nimport TextfieldIcon from './Textfield.svg';\nimport TextareaIcon from './Textarea.svg';\nimport ImageIcon from './Image.svg';\nimport GroupIcon from './Group.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 image: ImageIcon,\n number: NumberIcon,\n radio: RadioIcon,\n select: SelectIcon,\n separator: SeparatorIcon,\n spacer: SpacerIcon,\n taglist: TaglistIcon,\n text: TextIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n default: FormIcon\n }[type];\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 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 Taglist from './form-fields/Taglist';\nimport Text from './form-fields/Text';\nimport Textfield from './form-fields/Textfield';\nimport Textarea from './form-fields/Textarea';\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 Image,\n Numberfield,\n Radio,\n Select,\n Separator,\n Spacer,\n Taglist,\n Text,\n Textfield,\n Textarea\n};\n\nexport const formFields = [\n Button,\n Checkbox,\n Checklist,\n Default,\n Group,\n Image,\n Numberfield,\n Datetime,\n Radio,\n Select,\n Spacer,\n Separator,\n Taglist,\n Text,\n Textfield,\n Textarea\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 { get } from 'min-dash';\n\n// config ///////////////////\n\nexport const VALUES_SOURCES = {\n STATIC: 'static',\n INPUT: 'input',\n EXPRESSION: 'expression',\n};\n\nexport const VALUES_SOURCE_DEFAULT = VALUES_SOURCES.STATIC;\n\nexport const VALUES_SOURCES_LABELS = {\n [VALUES_SOURCES.STATIC]: 'Static',\n [VALUES_SOURCES.INPUT]: 'Input data',\n [VALUES_SOURCES.EXPRESSION]: 'Expression',\n};\n\nexport const VALUES_SOURCES_PATHS = {\n [VALUES_SOURCES.STATIC]: [ 'values' ],\n [VALUES_SOURCES.INPUT]: [ 'valuesKey' ],\n [VALUES_SOURCES.EXPRESSION]: [ 'valuesExpression' ],\n};\n\nexport const VALUES_SOURCES_DEFAULTS = {\n [VALUES_SOURCES.STATIC]: [\n {\n label: 'Value',\n value: 'value'\n }\n ],\n [VALUES_SOURCES.INPUT]: '',\n [VALUES_SOURCES.EXPRESSION]: '='\n};\n\n// helpers ///////////////////\n\nexport function getValuesSource(field) {\n\n for (const source of Object.values(VALUES_SOURCES)) {\n if (get(field, VALUES_SOURCES_PATHS[source]) !== undefined) {\n return source;\n }\n }\n\n return VALUES_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 FeelExpressionLanguage from '../features/expression-language/FeelExpressionLanguage.js';\nimport FeelersTemplating from '../features/expression-language/FeelersTemplating.js';\nimport FormFields from '../render/FormFields.js';\n\nimport { get } from 'min-dash';\n\nexport * from './constants';\nexport * from './injector';\nexport * from './form';\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];\n\nconst TEMPLATE_PROPERTIES = [\n 'alt',\n 'appearance.prefixAdorner',\n 'appearance.suffixAdorner',\n 'description',\n 'label',\n 'source',\n 'text'\n];\n\n\nexport 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 * @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\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}","import { unaryTest } from 'feelin';\nimport { get, isString, set, values, isObject } from 'min-dash';\nimport { 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>} properties\n * @param {Object<string, any>} data\n * @param {Object} [options]\n * @param {Function} [options.getFilterPath]\n */\n applyConditions(properties, data = {}, options = {}) {\n\n const newProperties = clone(properties);\n\n const {\n getFilterPath = (field) => this._pathRegistry.getValuePath(field)\n } = options;\n\n const form = this._formFieldRegistry.getAll().find((field) => field.type === 'default');\n\n if (!form) {\n throw new Error('form field registry has no form');\n }\n\n this._pathRegistry.executeRecursivelyOnFields(form, ({ field, isClosed, context }) => {\n const { conditional: condition } = field;\n\n context.isHidden = context.isHidden || (condition && this._checkHideCondition(condition, data));\n\n // only clear the leaf nodes, as groups may both point to the same path\n if (context.isHidden && isClosed) {\n this._clearObjectValueRecursively(getFilterPath(field), newProperties);\n }\n });\n\n return newProperties;\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 _clearObjectValueRecursively(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 = isObject(parentObject) && !values(parentObject).length && !!workingValuePath.length;\n } while (recurse);\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 } = 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 ], 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) {\n const context = {\n field,\n value\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 };","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/**\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} listener\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' ];","export 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\n const parentPath = parent && this._pathRegistry.getValuePath(parent) || [];\n\n if (config.keyed && key && !this._pathRegistry.canClaimPath([ ...parentPath, ...key.split('.') ], true)) {\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('.') ], false)) {\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 }\n\n if (config.pathed && path) {\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), false);\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\n if (!field.key) {\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 field.key = `${field.type}_${random}`;\n }\n\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), true);\n }\n}\n\n\nFieldFactory.$inject = [\n 'formFieldRegistry',\n 'pathRegistry',\n 'formFields'\n];","import { isArray } from 'min-dash';\nimport { clone } 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) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n this._dataPaths = [];\n }\n\n canClaimPath(path, closed = false) {\n\n let node = { children: this._dataPaths };\n\n for (const segment of path) {\n\n node = _getNextSegment(node, segment);\n\n // if no node at that path, we can claim it no matter what\n if (!node) {\n return true;\n }\n\n // if we reach a leaf node, definitely not claimable\n if (node.children === null) {\n return false;\n }\n\n }\n\n // if after all segments we reach a node with children, we can claim it only openly\n return !closed;\n }\n\n claimPath(path, closed = false) {\n\n if (!this.canClaimPath(path, closed)) {\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 (closed) {\n node.children = null;\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, context });\n return result && callResult;\n }\n else if (formFieldConfig.pathed) {\n const callResult = fn({ field, isClosed: false, context });\n result = result && callResult;\n }\n\n if (field.components) {\n for (const child of field.components) {\n const callResult = this.executeRecursivelyOnFields(child, fn, clone(context));\n result = result && callResult;\n\n // only stop executing if false is specifically returned, not if undefined\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.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 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 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 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\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' ];","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 (type !== 'default' && type !== 'group' || !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 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';\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, isString, isUndefined, set } from 'min-dash';\n\nimport {\n ExpressionLanguageModule,\n MarkdownModule,\n ViewerCommandsModule\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._initializeFieldData(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 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) => [ field.id ];\n\n const errors = formFieldRegistry.getAll().reduce((errors, field) => {\n const {\n disabled\n } = field;\n\n if (disabled) {\n return errors;\n }\n\n const value = get(data, pathRegistry.getValuePath(field));\n\n const fieldErrors = validator.validateField(field, value);\n\n return set(errors, getErrorPath(field), fieldErrors.length ? fieldErrors : undefined);\n }, /** @type {Errors} */ ({}));\n\n const filteredErrors = this._applyConditions(errors, data, { getFilterPath: getErrorPath });\n\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 additionalModules = [],\n modules = this._getModules()\n } = options;\n\n const config = {\n renderer: {\n container\n }\n };\n\n return createInjector([\n { config: [ 'value', config ] },\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, remove?: number, value?: any } } update\n */\n _update(update) {\n const {\n field,\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 set(data, pathRegistry.getValuePath(field), value);\n\n set(errors, [ field.id ], 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 ];\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\n const formFieldRegistry = this.get('formFieldRegistry'),\n pathRegistry = this.get('pathRegistry'),\n formFields = this.get('formFields');\n const formData = this._getState().data;\n\n const submitData = formFieldRegistry.getAll().reduce((previous, field) => {\n const {\n disabled,\n type\n } = field;\n\n const { config: fieldConfig } = formFields.get(type);\n\n // do not submit disabled form fields or routing fields\n if (disabled || !fieldConfig.keyed) {\n return previous;\n }\n\n const valuePath = pathRegistry.getValuePath(field);\n\n const value = get(formData, valuePath);\n return set(previous, valuePath, value);\n }, {});\n\n const filteredSubmitData = this._applyConditions(submitData, formData);\n\n return filteredSubmitData;\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 _initializeFieldData(data) {\n const formFieldRegistry = this.get('formFieldRegistry'),\n formFields = this.get('formFields'),\n pathRegistry = this.get('pathRegistry');\n\n return formFieldRegistry.getAll().reduce((initializedData, formField) => {\n const {\n defaultValue,\n type\n } = formField;\n\n // try to get value from data\n // if unavailable - try to get default value from form field\n // if unavailable - get empty value from form field\n\n const valuePath = pathRegistry.getValuePath(formField);\n\n if (valuePath) {\n\n const { config: fieldConfig } = formFields.get(type);\n let valueData = get(data, valuePath);\n\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\n }\n\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldConfig.emptyValue);\n\n return set(initializedData, valuePath, initializedFieldValue);\n }\n\n return initializedData;\n\n }, data);\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 = 12;\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 ...rest\r\n } = options;\r\n\r\n const form = new Form(rest);\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","formFieldClasses","errors","disabled","readonly","classNames","gridColumnClasses","formField","layout","columns","prefixId","id","formId","Button","props","onFocus","onBlur","field","action","_jsx","class","label","config","keyed","group","create","FormRenderContext","createContext","EmptyRoot","Empty","Children","Element","Row","Column","hoveredId","setHoveredId","newValue","console","log","getService","FormContext","useService","useContext","useFilteredFormData","initialData","_getState","conditionChecker","useMemo","newData","applyConditions","useCondition","condition","filteredData","check","useExpressionEvaluation","formData","expressionLanguage","useKeyDownAction","targetKey","listenerElement","window","downHandler","key","useEffect","addEventListener","removeEventListener","useReadonly","properties","readOnly","usePrevious","defaultValue","dependencies","ref","useRef","useDeepCompareState","state","setState","useState","changed","compare","a","b","JSON","stringify","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","split","Description","description","evaluatedDescription","Errors","Label","collapseOnEmpty","required","evaluatedLabel","_jsxs","for","Checkbox","validate","onChange","target","checked","errorMessageId","undefined","emptyValue","sanitizeValue","getValuesData","valuesKey","values","get","normalizeValuesData","valuesData","_isValueSomething","v","_normalizeValueData","valueData","_isAllowedValue","_isReadableType","createEmptyOptions","defaults","valuesExpression","LOAD_STATES","LOADING","LOADED","ERROR","staticValues","valuesGetter","setValuesGetter","expressionEvaluation","evaluatedValues","keyedValues","isArray","buildErrorState","buildLoadedState","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","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","container","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","parseInt","isValidDisplayHour","isNumber","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","isNaN","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","sanitizeSingleSelectValue","validValues","sanitizeMultiSelectValue","Checklist","outerDivRef","toggleCheckbox","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","loadState","useValuesAsync","onClick","noop","FormField","formFields","viewerCommands","pathRegistry","form","FormFieldComponent","valuePath","getValuePath","initialValue","useCallback","updateFieldValidation","hidden","conditional","hide","Grid","components","formLayouter","formFieldRegistry","rows","getRows","row","childField","_createElement","FormComponent","fullProps","_path","_extends","React","getLocaleDateFormat","locale","Intl","DateTimeFormat","formatToParts","UTC","part","len","repeat","getLocaleReadableDateFormat","format","getLocaleDateFlatpickrConfig","flatpickerizeDateFormat","dateFormat","useLeadingZero","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","classList","onOpen","onClose","onInputKeyDown","dispatchEvent","preventDefault","onInputFocus","onInputBlur","isFalseBlur","fullId","CalendarIcon","style","width","placeholder","autoComplete","onKeyDown","onMouseDown","onInput","_path2","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","height","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","document","body","schema","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","noValidate","Group","showOutline","className","role","pathed","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","createElement","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","element","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","remove","lcTag","tagName","attributes","attribute","lcName","trim","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Image","alt","source","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","Radio","onRadioBlur","onRadioFocus","option","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","shouldApplyFilter","setShouldApplyFilter","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","assign","o","valueLabel","filteredOptions","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","_Fragment","XMarkIcon","SimpleSelect","selectRef","select","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","SkipLink","onSkip","Taglist","setFilteredOptions","hasOptionsLeft","setHasOptionsLeft","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","Text","textLinkTarget","disableLinks","text","markdownRenderer","markdown","safeHtml","render","OverridenTargetLink","BuildOverridenTargetLink","componentOverrides","DisabledLink","Markup","markup","rest","Textfield","isObject","String","Textarea","textareaRef","useLayoutEffect","autoSizeTextarea","textarea","computed","getComputedStyle","heightFromLines","lineHeight","getPropertyValue","lines","calculatedHeight","scrollHeight","minHeight","displayHeight","overflow","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","GroupIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","SelectIcon","separator","SeparatorIcon","spacer","SpacerIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","default","FormIcon","Default","FormFields","_formFields","forEach","register","VALUES_SOURCES","STATIC","INPUT","EXPRESSION","VALUES_SOURCE_DEFAULT","VALUES_SOURCES_LABELS","VALUES_SOURCES_PATHS","VALUES_SOURCES_DEFAULTS","getValuesSource","createInjector","bootstrapModules","injector","Injector","init","createFormContainer","prefix","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","isRequired","pathParse","path","pathsEqual","every","indices","generateIndexForType","generateIdForType","clone","replacer","getSchemaVariables","inputs","outputs","getAllComponents","component","prop","property","expressionVariables","templateVariables","variable","getBindingVariables","bindingVariable","runRecursively","fn","ConditionChecker","_formFieldRegistry","_pathRegistry","newProperties","getFilterPath","getAll","find","executeRecursivelyOnFields","isClosed","isHidden","_checkHideCondition","_clearObjectValueRecursively","unaryTest","obj","workingValuePath","recurse","parentObject","__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","fieldErrors","validateField","updatedErrors","_setState","ViewerCommands","_commandStack","registerHandlers","entries","getHandlers","__depends__","commandModule","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","actualCallback","bind","self","_addListener","once","wrappedCallback","__isTomb","apply","off","_removeListener","InternalEvent","firstListener","returnValue","args","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","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","isNil","isEmptyMultiselect","minLength","maxLength","validationType","evaluatedValidate","evaluatedValue","Importer","fieldFactory","_fieldFactory","_formLayouter","importSchema","warnings","_cleanup","importedSchema","importFormField","calculateLayout","fieldAttrs","parentId","_parent","importFormFields","FieldFactory","attrs","applyDefaults","fieldDefinition","_ids","assigned","parentPath","canClaimPath","labelAttrs","_ensureId","_ensureKey","claimPath","claim","nextPrefixed","random","substring","PathRegistry","_dataPaths","closed","segment","_getNextSegment","claimCount","unclaimPath","formFieldConfig","callResult","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","FormLayouter","_rows","Ids","addRow","formFieldId","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","c","ids","groupBy","formRows","flatten","FormFieldRegistry","Renderer","App","formContext","_id","newState","update","_update","submit","reset","Provider","renderer","renderModule","importer","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","initializedData","_initializeFieldData","_getSubmitData","getErrorPath","filteredErrors","_applyConditions","parentNode","detach","appendChild","removeChild","setProperty","additionalModules","modules","_getModules","core","ExpressionLanguageModule","MarkdownModule","ViewerCommandsModule","submitData","fieldConfig","filteredSubmitData","toFilter","isUndefined","initializedFieldValue","schemaVersion","createForm","then"],"mappings":"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AACC,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEb,MAAMC,gBAAgB,CAAC;AAEpC5wB,EAAAA,WAAWA,GAAG;IACZ,IAAI,CAAC6wB,UAAU,GAAG,IAAIH,QAAQ,CAACI,SAAS,EAAE,CAAA;AAC5C,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE7H,MAAMA,CAACF,QAAQ,EAAE;AACf,IAAA,OAAO,IAAI,CAAC8H,UAAU,CAACE,QAAQ,CAAChI,QAAQ,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AAEA6H,gBAAgB,CAAC9vB,OAAO,GAAG,EAAE;;ACrB7B,qBAAe;EACb2vB,QAAQ,EAAE,CAAE,kBAAkB,CAAE;AAChC3H,EAAAA,gBAAgB,EAAE,CAAE,MAAM,EAAE8H,gBAAgB,CAAA;AAC9C,CAAC;;ACAD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASI,YAAYA,CAAC/wB,QAAQ,EAAEwtB,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACwD,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,SAA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AEA;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,SAASu2B,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE,CAAA;;AAEpB;AACA;AACA,EAAA,IAAI,CAACjE,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAACkE,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,CAAC9D,SAAS,CAACF,EAAE,GAAG,UAASmE,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAEjEH,MAAM,GAAGnrB,eAAO,CAACmrB,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,IAAII,kBAAU,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,CAACvnB,gBAAQ,CAAC4nB,QAAQ,CAAC,EAAE;AACvB,IAAA,MAAM,IAAIr1B,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,GAAA;EAEA,IAAIy1B,cAAc,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","x_google_ignoreList":[88,89,93]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/features/expression-language/variableExtractionHelpers.js","../src/features/expression-language/FeelExpressionLanguage.js","../src/features/expression-language/FeelersTemplating.js","../src/render/components/Util.js","../src/render/components/form-fields/Button.js","../src/render/context/FormRenderContext.js","../src/render/context/FormContext.js","../src/render/hooks/useService.js","../src/render/hooks/useFilteredFormData.js","../src/render/hooks/useCondition.js","../src/render/hooks/useExpressionEvaluation.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/hooks/useCleanupMultiSelectValues.js","../src/util/constants/DatetimeConstants.js","../src/render/components/util/dateTimeUtil.js","../src/render/components/util/sanitizerUtil.js","../src/render/components/form-fields/Checklist.js","../src/render/components/FormField.js","../src/render/components/form-fields/parts/Grid.js","../src/render/components/form-fields/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/util/localisationUtil.js","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/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/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/parts/SkipLink.js","../src/render/components/form-fields/Taglist.js","../src/render/components/form-fields/Text.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.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/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/index.js","../src/render/components/index.js","../src/render/FormFields.js","../src/util/constants/ValuesSourceConstants.js","../src/util/injector.js","../src/util/form.js","../src/util/index.js","../src/features/expression-language/ConditionChecker.js","../src/features/expression-language/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","../../../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 = [];","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\n\nexport function prefixId(id, formId) {\n if (formId) {\n return `fjs-form-${ formId }-${ id }`;\n }\n\n return `fjs-form-${ id }`;\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 EmptyRoot: (props) => {\n return null;\n },\n Empty: (props) => {\n return null;\n },\n Children: (props) => {\n return <div class={ props.class }>{ props.children }</div>;\n },\n Element: (props) => {\n return <div class={ props.class }>{ props.children }</div>;\n },\n Row: (props) => {\n return <div class={ props.class }>{ 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 }>{ props.children }</div>;\n },\n hoveredId: [],\n setHoveredId: (newValue) => { console.log(`setHoveredId not defined, called with '${newValue}'`); }\n});\n\nexport default FormRenderContext;","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}","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 */\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 useService from './useService.js';\nimport useFilteredFormData from './useFilteredFormData.js';\nimport { useMemo } from 'preact/hooks';\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 filteredData = useFilteredFormData();\n\n return useMemo(() => {\n return conditionChecker ? conditionChecker.check(condition, filteredData) : null;\n }, [ conditionChecker, condition, filteredData ]);\n}\n","import useService from './useService';\nimport useFilteredFormData from './useFilteredFormData';\nimport { useMemo } from 'preact/hooks';\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 * Memoised to minimize re-renders.\n *\n * @param {string} value\n *\n */\nexport default function useExpressionEvaluation(value) {\n const formData = useFilteredFormData();\n const expressionLanguage = useService('expressionLanguage');\n\n return useMemo(() => {\n\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\n return expressionLanguage.evaluate(value, formData);\n }\n\n return value;\n\n }, [ expressionLanguage, formData, value ]);\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 useFilteredFormData from './useFilteredFormData.js';\n\n/**\n * Retrieve readonly value of a form field, given it can be an\n * expression optionally or configured globally.\n *\n * @typedef { import('../../types').FormProperties } FormProperties\n *\n * @param {any} formField\n * @param {FormProperties} properties\n *\n * @returns {boolean}\n */\nexport default function useReadonly(formField, properties = {}) {\n const expressionLanguage = useService('expressionLanguage');\n const conditionChecker = useService('conditionChecker', false);\n const filteredData = useFilteredFormData();\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, filteredData) : 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 useFilteredFormData from './useFilteredFormData';\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 * 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 filteredData = useFilteredFormData();\n const templating = useService('templating');\n\n return useMemo(() => {\n\n if (templating && templating.isTemplate(value)) {\n return templating.evaluate(value, filteredData, options);\n }\n\n return value;\n\n }, [ filteredData, templating, value, 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\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 { useContext } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\nimport classNames from 'classnames';\n\nconst type = 'checkbox';\n\n\nexport default function Checkbox(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = false\n } = props;\n\n const {\n description,\n id,\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 const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required }>\n <input\n checked={ value }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ prefixId(id, formId) }\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 } 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(_isOptionSomething).map(v => _normalizeOptionsData(v)).filter(v => v);\n}\n\nfunction _normalizeOptionsData(optionData) {\n\n if (_isAllowedOption(optionData)) {\n\n // if a primitive is provided, use it as label and value\n return { value: optionData, label: `${ optionData }` };\n }\n\n if (typeof (optionData) === 'object') {\n if (!optionData.label && _isAllowedOption(optionData.value)) {\n\n // if no label is provided, use the value as label\n return { value: optionData.value, label: `${ optionData.value }` };\n }\n\n if (_isOptionSomething(optionData.value) && _isAllowedOption(optionData.label)) {\n\n // if both value and label are provided, use them as is, in this scenario, the value may also be an object\n return optionData;\n }\n }\n\n return null;\n}\n\nfunction _isAllowedOption(option) {\n return _isReadableType(option) && _isOptionSomething(option);\n}\n\nfunction _isReadableType(option) {\n return [ 'number', 'string', 'boolean' ].includes(typeof(option));\n}\n\nfunction _isOptionSomething(option) {\n return option || option === 0 || option === false;\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 { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\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 hasValuesNotInOptions = values.some(v => !options.map(o => o.value).includes(v));\n\n if (hasValuesNotInOptions) {\n onChange({\n field,\n value: values.filter(v => options.map(o => o.value).includes(v))\n });\n }\n\n }, [ field, options, onChange, JSON.stringify(values), loadState ]);\n\n}","// config ///////////////////\n\nexport const MINUTES_IN_DAY = 60 * 24;\n\nexport const DATETIME_SUBTYPES = {\n DATE: 'date',\n TIME: 'time',\n DATETIME: 'datetime'\n};\n\nexport const TIME_SERIALISING_FORMATS = {\n UTC_OFFSET: 'utc_offset',\n UTC_NORMALIZED: 'utc_normalized',\n NO_TIMEZONE: 'no_timezone'\n};\n\nexport const DATETIME_SUBTYPES_LABELS = {\n [DATETIME_SUBTYPES.DATE]: 'Date',\n [DATETIME_SUBTYPES.TIME]: 'Time',\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time'\n};\n\nexport const TIME_SERIALISINGFORMAT_LABELS = {\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone'\n};\n\nexport const DATETIME_SUBTYPE_PATH = [ 'subtype' ];\nexport const DATE_LABEL_PATH = [ 'dateLabel' ];\nexport const DATE_DISALLOW_PAST_PATH = [ 'disallowPassedDates' ];\nexport const TIME_LABEL_PATH = [ 'timeLabel' ];\nexport const TIME_USE24H_PATH = [ 'use24h' ];\nexport const TIME_INTERVAL_PATH = [ 'timeInterval' ];\nexport const TIME_SERIALISING_FORMAT_PATH = [ 'timeSerializingFormat' ];\n","import { 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 { 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 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 validValues.includes(value) ? 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 => validValues.includes(v));\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 { useContext, useRef } from 'preact/hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport useCleanupMultiSelectValues from '../../hooks/useCleanupMultiSelectValues';\nimport classNames from 'classnames';\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'checklist';\n\n\nexport default function Checklist(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value: values = [],\n } = props;\n\n const {\n description,\n id,\n label,\n validate = {}\n } = field;\n\n const outerDivRef = useRef();\n\n const { required } = validate;\n\n const toggleCheckbox = (v) => {\n\n let newValue = [ ...values ];\n\n if (!newValue.includes(v)) {\n newValue.push(v);\n } else {\n newValue = newValue.filter(x => x != v);\n }\n\n props.onChange({\n field,\n value: newValue,\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 const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\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((v, index) => {\n return (\n <Label\n id={ prefixId(`${id}-${index}`, formId) }\n key={ `${id}-${index}` }\n label={ v.label }\n class={ classNames({\n 'fjs-checked': values.includes(v.value)\n }) }\n required={ false }>\n <input\n checked={ values.includes(v.value) }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ prefixId(`${id}-${index}`, formId) }\n type=\"checkbox\"\n onClick={ () => toggleCheckbox(v.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 { FormRenderContext } from '../context';\n\nimport {\n useCondition,\n useReadonly,\n useService\n} from '../hooks';\n\nimport { gridColumnClasses } from './Util';\n\nconst noop = () => false;\n\n\nexport default function FormField(props) {\n const {\n field,\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 Empty,\n Column\n } = useContext(FormRenderContext);\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), [ field, 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);\n }\n eventBus.fire('formField.blur', { formField: field });\n }, [ eventBus, viewerCommands, field, value ]);\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);\n }\n }, [ viewerCommands, field, initialValue ]);\n\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\n\n if (hidden) {\n return <Empty />;\n }\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={ errors[ field.id ] }\n onChange={ disabled || readonly ? noop : onChange }\n onBlur={ disabled || readonly ? noop : onBlur }\n onFocus={ disabled || readonly ? noop : onFocus }\n readonly={ readonly }\n value={ value } />\n </Element>\n </Column>\n );\n}\n","import { useContext } from 'preact/hooks';\n\nimport useService from '../../../hooks/useService';\n\nimport FormField from '../../FormField';\n\nimport { FormRenderContext } from '../../../context';\n\nexport default function Grid(props) {\n\n const {\n Children,\n Row\n } = useContext(FormRenderContext);\n\n const { field, Empty } = props;\n\n const { id, components = [] } = field;\n\n const formLayouter = useService('formLayouter');\n const formFieldRegistry = useService('formFieldRegistry');\n const rows = formLayouter.getRows(id);\n\n return <Children class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\n {\n\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\">\n {\n components.map(id => {\n\n const childField = formFieldRegistry.get(id);\n\n if (!childField) {\n return null;\n }\n\n return (\n <FormField\n { ...props }\n key={ childField.id }\n field={ childField } />\n );\n })\n }\n </Row>\n );\n })\n }\n {\n components.length ? null : <Empty />\n }\n </Children>;\n}\n","import { useContext } from 'preact/hooks';\nimport { FormRenderContext } from '../../context';\nimport Grid from './parts/Grid';\n\nexport default function FormComponent(props) {\n\n const {\n EmptyRoot,\n } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty: EmptyRoot };\n\n return <Grid { ...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","<svg width=\"14\" height=\"15\" viewBox=\"0 0 28 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" d=\"M19 2H9V0H7V2H2C0.895431 2 0 2.89543 0 4V28C0 29.1046 0.895431 30 2 30H26C27.1046 30 28 29.1046 28 28V4C28 2.89543 27.1046 2 26 2H21V0H19V2ZM7 7V4H2V9H26V4H21V7H19V4H9V7H7ZM2 11V28H26V11H2Z\" />\n</svg>\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","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 CalendarIcon from '../icons/Calendar.svg';\nimport flatpickr from 'flatpickr';\n\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\nimport { getLocaleReadableDateFormat, getLocaleDateFlatpickrConfig } from '../../util/localisationUtil';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { prefixId } from '../../Util';\nimport InputAdorner from './InputAdorner';\nimport Label from '../../Label';\n\nexport default function Datepicker(props) {\n\n const {\n id,\n label,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\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 const fullId = `${prefixId(id, formId)}--date`;\n\n return <div class=\"fjs-datetime-subsection\">\n <Label\n id={ fullId }\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={ fullId }\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 width=\"16\" height=\"16\" viewBox=\"0 0 28 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"currentColor\" d=\"M13 14.41L18.59 20L20 18.59L15 13.58V5.00001H13V14.41Z\" />\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" d=\"M6.22202 25.6406C8.52431 27.1789 11.2311 28 14 28C17.713 28 21.274 26.525 23.8995 23.8995C26.525 21.274 28 17.713 28 14C28 11.2311 27.1789 8.52431 25.6406 6.22202C24.1022 3.91973 21.9157 2.12532 19.3576 1.06569C16.7994 0.00606644 13.9845 -0.271181 11.2687 0.269013C8.55301 0.809205 6.05844 2.14258 4.10051 4.10051C2.14258 6.05844 0.809205 8.55301 0.269013 11.2687C-0.271181 13.9845 0.00606644 16.7994 1.06569 19.3576C2.12532 21.9157 3.91973 24.1022 6.22202 25.6406ZM7.33316 4.02237C9.30655 2.70379 11.6266 2.00001 14 2.00001C17.1826 2.00001 20.2348 3.26429 22.4853 5.51472C24.7357 7.76516 26 10.8174 26 14C26 16.3734 25.2962 18.6935 23.9776 20.6668C22.6591 22.6402 20.7849 24.1783 18.5922 25.0866C16.3995 25.9948 13.9867 26.2325 11.6589 25.7694C9.33115 25.3064 7.19296 24.1635 5.51472 22.4853C3.83649 20.8071 2.69361 18.6689 2.23058 16.3411C1.76756 14.0133 2.0052 11.6005 2.91345 9.40781C3.8217 7.21509 5.35977 5.34095 7.33316 4.02237Z\" />\n</svg>\n","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 ClockIcon from '../icons/Clock.svg';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { prefixId } from '../../Util';\nimport DropdownList from './DropdownList';\nimport { isNumber } from 'min-dash';\nimport InputAdorner from './InputAdorner';\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\nimport Label from '../../Label';\n\nexport default function Timepicker(props) {\n\n const {\n id,\n label,\n collapseLabelOnEmpty,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\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 const fullId = `${prefixId(id, formId)}--time`;\n\n return <div class=\"fjs-datetime-subsection\">\n <Label\n id={ fullId }\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={ fullId }\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 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 id,\n label: dateLabel,\n collapseLabelOnEmpty: !timeLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\n required,\n disabled,\n disallowPassedDates,\n date: dateTime.date,\n readonly,\n setDate,\n 'aria-describedby': errorMessageId\n };\n const timePickerProps = {\n id,\n label: timeLabel,\n collapseLabelOnEmpty: !dateLabel,\n onDateTimeBlur,\n onDateTimeFocus,\n formId,\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';\n\nimport PoweredBy from './PoweredBy';\n\nimport useService from '../hooks/useService';\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 return (\n <form\n class=\"fjs-form\"\n onSubmit={ handleSubmit }\n onReset={ handleReset }\n aria-label={ ariaLabel }\n noValidate\n >\n <FormField\n field={ schema }\n onChange={ onChange }\n />\n\n <PoweredBy />\n </form>\n );\n}","import { useContext } from 'preact/hooks';\nimport Grid from './parts/Grid';\nimport { FormContext, FormRenderContext } from '../../context';\nimport { formFieldClasses, prefixId } from '../Util';\nimport Label from '../Label';\nimport classNames from 'classnames';\n\nexport default function Group(props) {\n\n const { field } = props;\n const { label, id, type, showOutline } = field;\n const { formId } = useContext(FormContext);\n\n const {\n Empty,\n } = useContext(FormRenderContext);\n\n const fullProps = { ...props, Empty };\n\n return (\n <div className={ classNames(formFieldClasses(type), { 'fjs-outlined' : showOutline }) } role=\"group\" aria-labelledby={ prefixId(id, formId) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label } />\n <Grid { ...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=\"\"\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 width=\"64px\" height=\"64px\" viewBox=\"0 0 1280 1280\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:space=\"preserve\" xmlns:serif=\"http://www.serif.com/\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;\">\n <rect x=\"0\" y=\"0\" width=\"1280\" height=\"1280\" style=\"fill:rgb(229,233,237);\"/>\n <path d=\"M910,410L370,410L370,880L910,880L910,410ZM852.667,467.333L852.667,822.667C852.667,822.667 427.333,822.667 427.333,822.667C427.333,732.29 427.333,557.71 427.333,467.333L852.667,467.333Z\" style=\"fill:rgb(202,211,219);\"/>\n <path d=\"M810,770L480,770L480,710L580,540L710,710L810,645L810,770Z\" style=\"fill:rgb(202,211,219);\"/>\n <g transform=\"matrix(1,0,0,1,10,10)\">\n <circle cx=\"750\" cy=\"550\" r=\"50\" style=\"fill:rgb(202,211,219);\"/>\n </g>\n</svg>\n","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\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\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"8px\" height=\"8px\" viewBox=\"0 0 8 8\" version=\"1.1\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0.5\" \n d=\"M 7.75 1.335938 L 4 6.125 L 0.257812 1.335938 L 0 1.539062 L 4 6.664062 L 8 1.539062 Z M 7.75 1.335938 \" />\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"8px\" height=\"8px\" viewBox=\"0 0 8 8\" version=\"1.1\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0.5\" \n d=\"M 7.75 6.664062 L 4 1.875 L 0.257812 6.664062 L 0 6.460938 L 4 1.335938 L 8 6.460938 Z M 7.75 6.664062 \" />\n</svg>\n","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, useContext, useMemo, useRef, useState } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\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 prefixId\n} from '../Util';\n\nimport {\n isNullEquivalentValue,\n isValidNumber,\n willKeyProduceValidNumber\n} from '../util/numberFieldUtil';\n\nconst type = 'number';\n\n\nexport default function Numberfield(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n value,\n readonly,\n onChange\n } = props;\n\n const {\n description,\n id,\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 const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ prefixId(id, formId) }\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={ prefixId(id, formId) }\n onKeyDown={ onKeyDown }\n onKeyPress={ onKeyPress }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => 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};\n","import { useEffect } from 'preact/hooks';\nimport { LOAD_STATES } from './useOptionsAsync';\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 hasValueNotInOptions = value && !options.map(o => o.value).includes(value);\n\n if (hasValueNotInOptions) {\n onChange({\n field,\n value: null\n });\n }\n\n }, [ field, options, onChange, value, loadState ]);\n\n}","import { useContext, useRef } from 'preact/hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport useCleanupSingleSelectValue from '../../hooks/useCleanupSingleSelectValue';\nimport classNames from 'classnames';\nimport { FormContext } from '../../context';\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 prefixId\n} from '../Util';\n\nconst type = 'radio';\n\n\nexport default function Radio(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const {\n description,\n id,\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 const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\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 return (\n <Label\n id={ prefixId(`${ id }-${ index }`, formId) }\n key={ `${ id }-${ index }` }\n label={ option.label }\n class={ classNames({ 'fjs-checked': option.value === value }) }\n required={ false }>\n <input\n checked={ option.value === value }\n class=\"fjs-input\"\n disabled={ disabled }\n readOnly={ readonly }\n id={ prefixId(`${ id }-${ index }`, formId) }\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","<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"8px\" height=\"8px\" viewBox=\"0 0 8 8\" version=\"1.1\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0.5\" \n d=\"M 4 3.765625 L 7.429688 0.335938 L 7.664062 0.570312 L 4.234375 4 L 7.664062 7.429688 L 7.429688 7.664062 L 4 4.234375 L 0.570312 7.664062 L 0.335938 7.429688 L 3.765625 4 L 0.335938 0.570312 L 0.570312 0.335938 Z M 4 3.765625 \" />\n</svg>\n","import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport { useService } from '../../../hooks';\nimport useCleanupSingleSelectValue from '../../../hooks/useCleanupSingleSelectValue';\n\nimport { FormContext } from '../../../context';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\n\nimport {\n prefixId,\n} from '../../Util';\n\nimport classNames from 'classnames';\n\nimport DropdownList from './DropdownList';\n\nexport default function SearchableSelect(props) {\n const {\n id,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const { formId } = useContext(FormContext);\n const [ filter, setFilter ] = useState('');\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\n const [ shouldApplyFilter, setShouldApplyFilter ] = 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 // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\n\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\n\n // whenever we change the underlying value, set the label to it\n useEffect(() => { setFilter(valueLabel); }, [ valueLabel ]);\n\n const filteredOptions = useMemo(() => {\n\n if (loadState === LOAD_STATES.LOADED) {\n return shouldApplyFilter ? options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase()))) : options;\n }\n\n return [];\n\n }, [ filter, loadState, options, shouldApplyFilter ]);\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 setShouldApplyFilter(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 setShouldApplyFilter(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 setShouldApplyFilter(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(valueLabel);\n onBlur && onBlur();\n }, [ onBlur, valueLabel ]);\n\n return <>\n <div id={ prefixId(`${id}`, formId) }\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={ prefixId(`${id}-search`, formId) }\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, useContext, useMemo, useRef, useState } from 'preact/hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../../hooks/useOptionsAsync';\nimport useCleanupSingleSelectValue from '../../../hooks/useCleanupSingleSelectValue';\n\nimport { FormContext } from '../../../context';\n\nimport XMarkIcon from '../icons/XMark.svg';\nimport AngelDownIcon from '../icons/AngelDown.svg';\nimport AngelUpIcon from '../icons/AngelUp.svg';\n\nimport {\n prefixId,\n} from '../../Util';\n\nimport classNames from 'classnames';\n\nimport DropdownList from './DropdownList';\nimport { findIndex } from 'min-dash';\n\nexport default function SimpleSelect(props) {\n const {\n id,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n readonly,\n value\n } = props;\n\n const { formId } = useContext(FormContext);\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 // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\n\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\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 id={ prefixId(`${id}`, formId) }\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={ prefixId(`${id}-display`, formId) }>{ valueLabel || 'Select' }</div>\n { !disabled && <input\n ref={ inputRef }\n id={ prefixId(`${id}-search`, formId) }\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 { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\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 prefixId\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 onBlur,\n onFocus,\n field,\n onChange,\n readonly,\n value\n } = props;\n\n const {\n description,\n id,\n label,\n searchable = false,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n const selectProps = useMemo(() => ({\n id,\n disabled,\n errors,\n onBlur,\n onFocus,\n field,\n value,\n onChange,\n readonly,\n 'aria-describedby': errorMessageId,\n }), [ disabled, errors, field, id, value, onChange, onBlur, onFocus, readonly, errorMessageId ]);\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={ prefixId(`${id}-search`, formId) }\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 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 { useContext, useMemo, useRef, useState } from 'preact/hooks';\n\nimport { useService } from '../../hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useOptionsAsync';\nimport useCleanupMultiSelectValues from '../../hooks/useCleanupMultiSelectValues';\n\nimport { FormContext } from '../../context';\nimport classNames from 'classnames';\n\nimport XMarkIcon from './icons/XMark.svg';\n\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 } from '../util/sanitizerUtil';\n\nimport { createEmptyOptions } from '../util/optionsUtil';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'taglist';\n\nexport default function Taglist(props) {\n const {\n disabled,\n errors = [],\n onFocus,\n onBlur,\n field,\n readonly,\n value : values = []\n } = props;\n\n const {\n description,\n id,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\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 // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ 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 return options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase())) && !values.includes(o.value));\n }, [ filter, options, JSON.stringify(values), loadState ]);\n\n\n const selectValue = (value) => {\n if (filter) {\n setFilter('');\n }\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 props.onChange({ value: values.filter((v) => v != value), 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={ prefixId(`${id}-search`, formId) } />\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 { valueToOptionMap[v] ? valueToOptionMap[v].label : undefined }\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={ prefixId(`${id}-search`, formId) }\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\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 OverridenTargetLink = useMemo(() => BuildOverridenTargetLink(textLinkTarget), [ textLinkTarget ]);\n\n const componentOverrides = useMemo(() => {\n\n if (disableLinks) {\n return { 'a': DisabledLink };\n }\n\n if (textLinkTarget) {\n return { 'a': OverridenTargetLink };\n }\n\n return {};\n }, [ disableLinks, OverridenTargetLink, 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 BuildOverridenTargetLink(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 { isArray, isObject, isNil } from 'min-dash';\nimport { useContext } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\nimport InputAdorner from './parts/TemplatedInputAdorner';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'textfield';\n\n\nexport default function Textfield(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n id,\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 onChange = ({ target }) => {\n props.onChange({\n field,\n value: target.value\n });\n };\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ prefixId(id, formId) }\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={ prefixId(id, formId) }\n onInput={ onChange }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => onFocus && onFocus() }\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';\nimport { useContext, useEffect, useLayoutEffect, useRef } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport Description from '../Description';\nimport Errors from '../Errors';\nimport Label from '../Label';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nconst type = 'textarea';\n\n\nexport default function Textarea(props) {\n const {\n disabled,\n errors = [],\n onBlur,\n onFocus,\n field,\n readonly,\n value = ''\n } = props;\n\n const {\n description,\n id,\n label,\n validate = {}\n } = field;\n\n const { required } = validate;\n\n const textareaRef = useRef();\n\n const onInput = ({ target }) => {\n props.onChange({\n field,\n value: target.value\n });\n };\n\n useLayoutEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [ value ]);\n\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, []);\n\n const { formId } = useContext(FormContext);\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\n\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <textarea class=\"fjs-textarea\"\n disabled={ disabled }\n readonly={ readonly }\n id={ prefixId(id, formId) }\n onInput={ onInput }\n onBlur={ () => onBlur && onBlur() }\n onFocus={ () => onFocus && onFocus() }\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\" 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 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>","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 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';\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 taglist: TaglistIcon,\n text: TextIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n default: FormIcon\n }[type];\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 Taglist from './form-fields/Taglist';\nimport Text from './form-fields/Text';\nimport Textfield from './form-fields/Textfield';\nimport Textarea from './form-fields/Textarea';\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 Image,\n Numberfield,\n Radio,\n Select,\n Separator,\n Spacer,\n Taglist,\n Text,\n Textfield,\n Textarea\n};\n\nexport const formFields = [\n Button,\n Checkbox,\n Checklist,\n Default,\n Group,\n IFrame,\n Image,\n Numberfield,\n Datetime,\n Radio,\n Select,\n Spacer,\n Separator,\n Taglist,\n Text,\n Textfield,\n Textarea\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 { get } from 'min-dash';\n\n// config ///////////////////\n\nexport const VALUES_SOURCES = {\n STATIC: 'static',\n INPUT: 'input',\n EXPRESSION: 'expression',\n};\n\nexport const VALUES_SOURCE_DEFAULT = VALUES_SOURCES.STATIC;\n\nexport const VALUES_SOURCES_LABELS = {\n [VALUES_SOURCES.STATIC]: 'Static',\n [VALUES_SOURCES.INPUT]: 'Input data',\n [VALUES_SOURCES.EXPRESSION]: 'Expression',\n};\n\nexport const VALUES_SOURCES_PATHS = {\n [VALUES_SOURCES.STATIC]: [ 'values' ],\n [VALUES_SOURCES.INPUT]: [ 'valuesKey' ],\n [VALUES_SOURCES.EXPRESSION]: [ 'valuesExpression' ],\n};\n\nexport const VALUES_SOURCES_DEFAULTS = {\n [VALUES_SOURCES.STATIC]: [\n {\n label: 'Value',\n value: 'value'\n }\n ],\n [VALUES_SOURCES.INPUT]: '',\n [VALUES_SOURCES.EXPRESSION]: '='\n};\n\n// helpers ///////////////////\n\nexport function getValuesSource(field) {\n\n for (const source of Object.values(VALUES_SOURCES)) {\n if (get(field, VALUES_SOURCES_PATHS[source]) !== undefined) {\n return source;\n }\n }\n\n return VALUES_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 FeelExpressionLanguage from '../features/expression-language/FeelExpressionLanguage.js';\nimport FeelersTemplating from '../features/expression-language/FeelersTemplating.js';\nimport FormFields from '../render/FormFields.js';\n\nimport { get } from 'min-dash';\n\nexport * from './constants';\nexport * from './injector';\nexport * from './form';\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];\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\nexport 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 * @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\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}","import { unaryTest } from 'feelin';\nimport { get, isString, set, values, isObject } from 'min-dash';\nimport { 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>} properties\n * @param {Object<string, any>} data\n * @param {Object} [options]\n * @param {Function} [options.getFilterPath]\n */\n applyConditions(properties, data = {}, options = {}) {\n\n const newProperties = clone(properties);\n\n const {\n getFilterPath = (field) => this._pathRegistry.getValuePath(field)\n } = options;\n\n const form = this._formFieldRegistry.getAll().find((field) => field.type === 'default');\n\n if (!form) {\n throw new Error('form field registry has no form');\n }\n\n this._pathRegistry.executeRecursivelyOnFields(form, ({ field, isClosed, context }) => {\n const { conditional: condition } = field;\n\n context.isHidden = context.isHidden || (condition && this._checkHideCondition(condition, data));\n\n // only clear the leaf nodes, as groups may both point to the same path\n if (context.isHidden && isClosed) {\n this._clearObjectValueRecursively(getFilterPath(field), newProperties);\n }\n });\n\n return newProperties;\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 _clearObjectValueRecursively(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 = isObject(parentObject) && !values(parentObject).length && !!workingValuePath.length;\n } while (recurse);\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 } = 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 ], 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) {\n const context = {\n field,\n value\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 };","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/**\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} listener\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' ];","export 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\n const parentPath = parent && this._pathRegistry.getValuePath(parent) || [];\n\n if (config.keyed && key && !this._pathRegistry.canClaimPath([ ...parentPath, ...key.split('.') ], true)) {\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('.') ], false)) {\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 }\n\n if (config.pathed && path) {\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), false);\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\n if (!field.key) {\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 field.key = `${field.type}_${random}`;\n }\n\n this._pathRegistry.claimPath(this._pathRegistry.getValuePath(field), true);\n }\n}\n\n\nFieldFactory.$inject = [\n 'formFieldRegistry',\n 'pathRegistry',\n 'formFields'\n];","import { isArray } from 'min-dash';\nimport { clone } 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) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n this._dataPaths = [];\n }\n\n canClaimPath(path, closed = false) {\n\n let node = { children: this._dataPaths };\n\n for (const segment of path) {\n\n node = _getNextSegment(node, segment);\n\n // if no node at that path, we can claim it no matter what\n if (!node) {\n return true;\n }\n\n // if we reach a leaf node, definitely not claimable\n if (node.children === null) {\n return false;\n }\n\n }\n\n // if after all segments we reach a node with children, we can claim it only openly\n return !closed;\n }\n\n claimPath(path, closed = false) {\n\n if (!this.canClaimPath(path, closed)) {\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 (closed) {\n node.children = null;\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, context });\n return result && callResult;\n }\n else if (formFieldConfig.pathed) {\n const callResult = fn({ field, isClosed: false, context });\n result = result && callResult;\n }\n\n if (field.components) {\n for (const child of field.components) {\n const callResult = this.executeRecursivelyOnFields(child, fn, clone(context));\n result = result && callResult;\n\n // only stop executing if false is specifically returned, not if undefined\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.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 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 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 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\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' ];","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 (type !== 'default' && type !== 'group' || !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 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, isString, isUndefined, set } from 'min-dash';\n\nimport {\n ExpressionLanguageModule,\n MarkdownModule,\n ViewerCommandsModule\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._initializeFieldData(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 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) => [ field.id ];\n\n const errors = formFieldRegistry.getAll().reduce((errors, field) => {\n const {\n disabled\n } = field;\n\n if (disabled) {\n return errors;\n }\n\n const value = get(data, pathRegistry.getValuePath(field));\n\n const fieldErrors = validator.validateField(field, value);\n\n return set(errors, getErrorPath(field), fieldErrors.length ? fieldErrors : undefined);\n }, /** @type {Errors} */ ({}));\n\n const filteredErrors = this._applyConditions(errors, data, { getFilterPath: getErrorPath });\n\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 additionalModules = [],\n modules = this._getModules()\n } = options;\n\n const config = {\n renderer: {\n container\n }\n };\n\n return createInjector([\n { config: [ 'value', config ] },\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, remove?: number, value?: any } } update\n */\n _update(update) {\n const {\n field,\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 set(data, pathRegistry.getValuePath(field), value);\n\n set(errors, [ field.id ], 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 ];\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\n const formFieldRegistry = this.get('formFieldRegistry'),\n pathRegistry = this.get('pathRegistry'),\n formFields = this.get('formFields');\n const formData = this._getState().data;\n\n const submitData = formFieldRegistry.getAll().reduce((previous, field) => {\n const {\n disabled,\n type\n } = field;\n\n const { config: fieldConfig } = formFields.get(type);\n\n // do not submit disabled form fields or routing fields\n if (disabled || !fieldConfig.keyed) {\n return previous;\n }\n\n const valuePath = pathRegistry.getValuePath(field);\n\n const value = get(formData, valuePath);\n return set(previous, valuePath, value);\n }, {});\n\n const filteredSubmitData = this._applyConditions(submitData, formData);\n\n return filteredSubmitData;\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 _initializeFieldData(data) {\n const formFieldRegistry = this.get('formFieldRegistry'),\n formFields = this.get('formFields'),\n pathRegistry = this.get('pathRegistry');\n\n return formFieldRegistry.getAll().reduce((initializedData, formField) => {\n const {\n defaultValue,\n type\n } = formField;\n\n // try to get value from data\n // if unavailable - try to get default value from form field\n // if unavailable - get empty value from form field\n\n const valuePath = pathRegistry.getValuePath(formField);\n\n if (valuePath) {\n\n const { config: fieldConfig } = formFields.get(type);\n let valueData = get(data, valuePath);\n\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\n }\n\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldConfig.emptyValue);\n\n return set(initializedData, valuePath, initializedFieldValue);\n }\n\n return initializedData;\n\n }, data);\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 = 13;\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 ...rest\r\n } = options;\r\n\r\n const form = new Form(rest);\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","formFieldClasses","errors","disabled","readonly","classNames","gridColumnClasses","formField","layout","columns","prefixId","id","formId","Button","props","onFocus","onBlur","field","action","_jsx","class","label","config","keyed","group","create","FormRenderContext","createContext","EmptyRoot","Empty","Children","Element","Row","Column","hoveredId","setHoveredId","newValue","console","log","getService","FormContext","useService","useContext","useFilteredFormData","initialData","_getState","conditionChecker","useMemo","newData","applyConditions","useCondition","condition","filteredData","check","useExpressionEvaluation","formData","expressionLanguage","useKeyDownAction","targetKey","listenerElement","window","downHandler","key","useEffect","addEventListener","removeEventListener","useReadonly","properties","readOnly","usePrevious","defaultValue","dependencies","ref","useRef","useDeepCompareState","state","setState","useState","changed","compare","a","b","JSON","stringify","useTemplateEvaluation","templating","useSingleLineTemplateEvaluation","evaluatedTemplate","split","Description","description","evaluatedDescription","Errors","Label","collapseOnEmpty","required","evaluatedLabel","_jsxs","for","Checkbox","validate","onChange","target","checked","errorMessageId","undefined","emptyValue","sanitizeValue","getOptionsData","valuesKey","optionsKey","values","staticOptions","get","normalizeOptionsData","optionsData","_isOptionSomething","v","_normalizeOptionsData","optionData","_isAllowedOption","option","_isReadableType","createEmptyOptions","defaults","valuesExpression","LOAD_STATES","LOADING","LOADED","ERROR","optionsExpression","optionsGetter","setOptionsGetter","loadState","expressionEvaluation","evaluatedOptions","keyedOptions","isArray","buildErrorState","buildLoadedState","hasValuesNotInOptions","o","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","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","container","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","parseInt","isValidDisplayHour","isNumber","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","isNaN","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","sanitizeSingleSelectValue","validValues","sanitizeMultiSelectValue","Checklist","outerDivRef","toggleCheckbox","onCheckboxBlur","e","contains","relatedTarget","onCheckboxFocus","useOptionsAsync","useCleanupMultiSelectValues","onClick","noop","FormField","formFields","viewerCommands","pathRegistry","form","FormFieldComponent","valuePath","getValuePath","initialValue","useCallback","updateFieldValidation","hidden","conditional","hide","Grid","components","formLayouter","formFieldRegistry","rows","getRows","row","childField","_createElement","FormComponent","fullProps","_path","_extends","React","getLocaleDateFormat","locale","Intl","DateTimeFormat","formatToParts","UTC","part","len","repeat","getLocaleReadableDateFormat","format","getLocaleDateFlatpickrConfig","flatpickerizeDateFormat","dateFormat","useLeadingZero","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","classList","onOpen","onClose","onInputKeyDown","dispatchEvent","preventDefault","onInputFocus","onInputBlur","isFalseBlur","fullId","CalendarIcon","style","width","placeholder","autoComplete","onKeyDown","onMouseDown","onInput","_path2","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","height","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","document","body","schema","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","noValidate","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","createElement","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","element","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","source","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","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","shouldApplyFilter","setShouldApplyFilter","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","assign","valueLabel","filteredOptions","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","onInputChange","keyDownEvent","onInputMouseDown","_Fragment","XMarkIcon","SimpleSelect","selectRef","input","findIndex","stopPropagation","Select","searchable","selectProps","Separator","Spacer","SkipLink","onSkip","Taglist","hasOptionsLeft","selectValue","at","deselectValue","onElementBlur","onElementFocus","onTagRemoveClick","nextTag","closest","nextSibling","onSkipToSearch","shouldDisplayDropdown","Text","textLinkTarget","disableLinks","markdownRenderer","markdown","safeHtml","render","OverridenTargetLink","BuildOverridenTargetLink","componentOverrides","DisabledLink","Markup","markup","rest","Textfield","isObject","isNil","String","Textarea","textareaRef","useLayoutEffect","autoSizeTextarea","textarea","computed","getComputedStyle","heightFromLines","lineHeight","getPropertyValue","lines","calculatedHeight","scrollHeight","minHeight","displayHeight","overflow","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","GroupIcon","iframe","IFrameIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","select","SelectIcon","separator","SeparatorIcon","spacer","SpacerIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","default","FormIcon","Default","FormFields","_formFields","forEach","register","VALUES_SOURCES","STATIC","INPUT","EXPRESSION","VALUES_SOURCE_DEFAULT","VALUES_SOURCES_LABELS","VALUES_SOURCES_PATHS","VALUES_SOURCES_DEFAULTS","getValuesSource","createInjector","bootstrapModules","injector","Injector","init","createFormContainer","prefix","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","isRequired","pathParse","path","pathsEqual","every","indices","generateIndexForType","generateIdForType","clone","replacer","getSchemaVariables","inputs","outputs","getAllComponents","component","prop","property","expressionVariables","templateVariables","variable","getBindingVariables","bindingVariable","runRecursively","fn","ConditionChecker","_formFieldRegistry","_pathRegistry","newProperties","getFilterPath","getAll","find","executeRecursivelyOnFields","isClosed","isHidden","_checkHideCondition","_clearObjectValueRecursively","unaryTest","obj","workingValuePath","recurse","parentObject","__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","fieldErrors","validateField","updatedErrors","_setState","ViewerCommands","_commandStack","registerHandlers","entries","getHandlers","__depends__","commandModule","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","actualCallback","bind","self","_addListener","once","wrappedCallback","__isTomb","apply","off","_removeListener","InternalEvent","firstListener","returnValue","args","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","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","evaluatedValue","Importer","fieldFactory","_fieldFactory","_formLayouter","importSchema","warnings","_cleanup","importedSchema","importFormField","calculateLayout","fieldAttrs","parentId","_parent","importFormFields","FieldFactory","attrs","applyDefaults","fieldDefinition","_ids","assigned","parentPath","canClaimPath","labelAttrs","_ensureId","_ensureKey","claimPath","claim","nextPrefixed","random","substring","PathRegistry","_dataPaths","closed","segment","_getNextSegment","claimCount","unclaimPath","formFieldConfig","callResult","replacements","cutoffNode","localValuePath","hasReplacement","hasOwnProperty","replacement","FormLayouter","_rows","Ids","addRow","formFieldId","rowsPerComponent","r","getRow","allRows","getRowForField","rowsForField","nextRowId","rowsInOrder","groupByRow","c","ids","groupBy","formRows","flatten","FormFieldRegistry","Renderer","App","formContext","_id","newState","update","_update","submit","reset","Provider","renderer","renderModule","importer","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","initializedData","_initializeFieldData","_getSubmitData","getErrorPath","filteredErrors","_applyConditions","parentNode","detach","appendChild","removeChild","setProperty","additionalModules","modules","_getModules","core","ExpressionLanguageModule","MarkdownModule","ViewerCommandsModule","submitData","fieldConfig","filteredSubmitData","toFilter","valueData","isUndefined","initializedFieldValue","schemaVersion","createForm","then"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASI,YAAYA,CAAChyB,QAAQ,EAAEyuB,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACwD,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,GAAG/D,QAAQ,CAAA;;AAEzB;AACF;AACA;EACE,IAAI,CAACxuB,SAAS,GAAGD,QAAQ,CAAA;;AAEzB;AACF;AACA;EACE,IAAI,CAACyyB,IAAI,GAAG,CAAC,CAAA;EAEbzyB,QAAQ,CAAC0yB,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,CAACnxB,OAAO,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AA,WAAWA,GAAG;IACZ,OAAO;AACL,MAAA,6BAA6B,EAAEb,4BAAAA;KAChC,CAAA;AACH,GAAA;AAEAriB,EAAAA,qBAAqBA,CAAC9P,KAAK,EAAElD,KAAK,EAAE;AAClC,IAAA,MAAMoB,OAAO,GAAG;MACd8B,KAAK;AACLlD,MAAAA,KAAAA;KACD,CAAA;IAED,IAAI,CAAC+1B,aAAa,CAACrD,OAAO,CAAC,6BAA6B,EAAEtxB,OAAO,CAAC,CAAA;AACpE,GAAA;AAEF,CAAA;AAEA00B,cAAc,CAACp1B,OAAO,GAAG,CACvB,cAAc,EACd,UAAU,CACX;;ACjCD,2BAAe;EACby1B,WAAW,EAAE,CACXC,aAAa,CACd;EACD9E,QAAQ,EAAE,CAAE,gBAAgB,CAAE;AAC9B9e,EAAAA,cAAc,EAAE,CAAE,MAAM,EAAEsjB,cAAc,CAAA;AAC1C,CAAC;;ACFD,IAAIO,MAAM,GAAG,MAAM,CAAA;AAEnB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAE3B,IAAIv3B,KAAK,GAAGtC,KAAK,CAACg2B,SAAS,CAAC1zB,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,SAASw3B,QAAQA,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC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","x_google_ignoreList":[92,93,97]}
|