@bpmn-io/form-js-viewer 1.0.0-alpha.9 → 1.1.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/LICENSE +22 -22
- package/README.md +164 -164
- package/dist/assets/form-js-base.css +932 -880
- package/dist/assets/form-js.css +53 -1
- package/dist/index.cjs +1744 -907
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +1728 -912
- package/dist/index.es.js.map +1 -1
- package/dist/types/Form.d.ts +8 -4
- package/dist/types/core/Validator.d.ts +5 -1
- package/dist/types/features/expression-language/variableExtractionHelpers.d.ts +1 -1
- package/dist/types/features/index.d.ts +2 -0
- package/dist/types/features/viewerCommands/ViewerCommands.d.ts +14 -0
- package/dist/types/features/viewerCommands/cmd/UpdateFieldValidationHandler.d.ts +11 -0
- package/dist/types/features/viewerCommands/index.d.ts +8 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/render/components/form-fields/Spacer.d.ts +14 -0
- package/dist/types/render/components/form-fields/parts/TemplatedInputAdorner.d.ts +1 -0
- package/dist/types/render/components/index.d.ts +2 -1
- package/dist/types/types.d.ts +35 -35
- package/dist/types/util/constants/ValuesSourceConstants.d.ts +1 -0
- package/dist/types/util/index.d.ts +1 -3
- package/package.json +4 -4
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/features/expression-language/variableExtractionHelpers.js","../src/features/expression-language/FeelExpressionLanguage.js","../src/features/expression-language/FeelersTemplating.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/core/EventBus.js","../src/render/components/util/numberFieldUtil.js","../src/core/Validator.js","../src/core/FormFieldRegistry.js","../src/core/FormLayouter.js","../src/util/constants/DatetimeConstants.js","../src/util/constants/ValuesSourceConstants.js","../src/util/injector.js","../src/util/form.js","../src/util/index.js","../src/import/Importer.js","../src/import/index.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/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/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/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/icons/ImagePlaceholder.svg","../src/render/components/form-fields/Image.js","../src/render/components/form-fields/icons/AngelDown.svg","../src/render/components/form-fields/icons/AngelUp.svg","../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/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/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/render/Renderer.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { parseExpressions, parseUnaryTests } from 'feelin';\r\n\r\nexport const getFlavouredFeelVariableNames = (feelString, feelFlavour, options = {}) => {\r\n\r\n const {\r\n depth = 0,\r\n specialDepthAccessors = {}\r\n } = options;\r\n\r\n if (![ 'expression', 'unaryTest' ].includes(feelFlavour)) return [];\r\n\r\n const tree = feelFlavour === 'expression' ? parseExpressions(feelString) : parseUnaryTests(feelString);\r\n\r\n const simpleExpressionTree = _buildSimpleFeelStructureTree(tree, feelString);\r\n\r\n return (function _unfoldVariables(node) {\r\n\r\n if (node.name === 'PathExpression') {\r\n\r\n if (Object.keys(specialDepthAccessors).length === 0) {\r\n return depth === 0 ? [ _getVariableNameAtPathIndex(node, 0) ] : [ ];\r\n }\r\n\r\n // if using special depth accessors, use a more complex extraction\r\n return Array.from(_smartExtractVariableNames(node, depth, specialDepthAccessors));\r\n }\r\n\r\n if (depth === 0 && node.name === 'VariableName') return [ node.variableName ];\r\n\r\n // for any other kind of node, traverse its children and flatten the result\r\n if (node.children) {\r\n return node.children.reduce((acc, child) => {\r\n return acc.concat(_unfoldVariables(child));\r\n }, []);\r\n }\r\n\r\n return [];\r\n })(simpleExpressionTree);\r\n\r\n};\r\n\r\n\r\n/**\r\n * Get the variable name at the specified index in a given path expression.\r\n *\r\n * @param {Object} root - The root node of the path expression tree.\r\n * @param {number} index - The index of the variable name to retrieve.\r\n * @returns {string|null} The variable name at the specified index or null if index is out of bounds.\r\n */\r\nconst _getVariableNameAtPathIndex = (root, index) => {\r\n const accessors = _deconstructPathExpression(root);\r\n return accessors[index] || null;\r\n};\r\n\r\n\r\n/**\r\n * Extracts the variables which are required of the external context for a given path expression.\r\n * This is done by traversing the path expression tree and keeping track of the current depth relative to the external context.\r\n *\r\n * @param {Object} node - The root node of the path expression tree.\r\n * @param {number} initialDepth - The depth at which the root node is located in the outer context.\r\n * @param {Object} specialDepthAccessors - Definitions of special keywords which represent more complex accesses of the outer context.\r\n * @returns {Set} - A set containing the extracted variable names.\r\n */\r\nconst _smartExtractVariableNames = (node, initialDepth, specialDepthAccessors) => {\r\n\r\n // depth info represents the previous (initialised as null) and current depth of the current accessor in the path expression\r\n // we track multiple of these to account for the fact that a path expression may be ambiguous due to special keywords\r\n let accessorDepthInfos = [ { previous: null, current: initialDepth - 1 } ];\r\n const extractedVariables = new Set();\r\n const nodeAccessors = _deconstructPathExpression(node);\r\n\r\n for (let i = 0; i < nodeAccessors.length; i++) {\r\n const currentAccessor = nodeAccessors[i];\r\n\r\n if (currentAccessor in specialDepthAccessors) {\r\n const depthOffsets = specialDepthAccessors[currentAccessor];\r\n\r\n // if the current accessor is a special keyword, we need to expand the current depth info set\r\n // this is done to account for the ambiguity of keywords like parent, which may be used to access\r\n // the parent of the current node, or a child variable of the same name\r\n accessorDepthInfos = depthOffsets.reduce((accumulator, offset) => {\r\n return [\r\n ...accumulator,\r\n ...accessorDepthInfos.map(depthInfo => ({ previous: depthInfo.current, current: depthInfo.current + offset })),\r\n ];\r\n }, []).filter(depthInfo => depthInfo.current >= -1); // discard all depth infos which are out of bounds\r\n\r\n } else {\r\n\r\n // if the current accessor is not a special keyword, we know it's simply accessing a child\r\n // hence we are now one level deeper in the tree and simply increment\r\n accessorDepthInfos = accessorDepthInfos.map(depthInfo => ({ previous: depthInfo.current, current: depthInfo.current + 1 }));\r\n }\r\n\r\n // finally, we check if for the current accessor, there is a scenario where:\r\n // previous it was at depth -1 (i.e. the root context), and is now at depth 0 (i.e. a variable)\r\n // these are the variables we need to request, so we add them to the set\r\n if (accessorDepthInfos.some(depthInfo => depthInfo.previous === -1 && depthInfo.current === 0)) {\r\n extractedVariables.add(currentAccessor);\r\n }\r\n }\r\n\r\n // we return a set to avoid duplicates\r\n return new Set(extractedVariables);\r\n};\r\n\r\n\r\n/**\r\n * Deconstructs a path expression tree into an array of components.\r\n *\r\n * @param {Object} root - The root node of the path expression tree.\r\n * @returns {Array<string>} An array of components in the path expression, in the correct order.\r\n */\r\nconst _deconstructPathExpression = (root) => {\r\n\r\n let node = root;\r\n let parts = [];\r\n\r\n // Traverse the tree and collect path components\r\n while (node.name === 'PathExpression') {\r\n parts.push(node.children[1].variableName);\r\n node = node.children[0];\r\n }\r\n\r\n // Add the last component to the array\r\n parts.push(node.variableName);\r\n\r\n // Reverse and return the array to get the correct order\r\n return parts.reverse();\r\n};\r\n\r\n\r\n/**\r\n * Builds a simplified feel structure tree from the given parse tree and feel string.\r\n * The nodes follow this structure: `{ name: string, children: Array, variableName?: string }`\r\n *\r\n * @param {Object} parseTree - The parse tree generated by a parser.\r\n * @param {string} feelString - The feel string used for parsing.\r\n * @returns {Object} The simplified feel structure tree.\r\n */\r\nconst _buildSimpleFeelStructureTree = (parseTree, feelString) => {\r\n\r\n const stack = [ { children: [] } ];\r\n parseTree.iterate({\r\n enter: (node) => {\r\n\r\n const nodeRepresentation = {\r\n name: node.type.name,\r\n children: [],\r\n };\r\n\r\n if (node.type.name === 'VariableName') {\r\n nodeRepresentation.variableName = feelString.slice(node.from, node.to);\r\n }\r\n\r\n stack.push(nodeRepresentation);\r\n },\r\n leave: () => {\r\n const result = stack.pop();\r\n const parent = stack[stack.length - 1];\r\n parent.children.push(result);\r\n }\r\n });\r\n\r\n return stack[0].children[0];\r\n};","import { evaluate } from 'feelin';\r\nimport { isString } from 'min-dash';\r\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\r\n\r\nexport default class FeelExpressionLanguage {\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * Determines if the given value is a FEEL expression.\r\n *\r\n * @param {any} value\r\n * @returns {boolean}\r\n *\r\n */\r\n isExpression(value) { return isString(value) && value.startsWith('='); }\r\n\r\n /**\r\n * Retrieve variable names from a given FEEL expression.\r\n *\r\n * @param {string} expression\r\n * @param {object} [options]\r\n * @param {string} [options.type]\r\n *\r\n * @returns {string[]}\r\n */\r\n getVariableNames(expression, options = {}) {\r\n\r\n const {\r\n type = 'expression'\r\n } = options;\r\n\r\n if (!this.isExpression(expression)) {\r\n return [];\r\n }\r\n\r\n if (![ 'unaryTest', 'expression' ].includes(type)) {\r\n throw new Error('Unknown expression type: ' + type);\r\n }\r\n\r\n return getFlavouredFeelVariableNames(expression, type);\r\n }\r\n\r\n /**\r\n * Evaluate an expression.\r\n *\r\n * @param {string} expression\r\n * @param {import('../../types').Data} [data]\r\n *\r\n * @returns {any}\r\n */\r\n evaluate(expression, data = {}) {\r\n if (!expression) {\r\n return null;\r\n }\r\n\r\n if (!isString(expression) || !expression.startsWith('=')) {\r\n return null;\r\n }\r\n\r\n try {\r\n const result = evaluate(expression.slice(1), data);\r\n\r\n return result;\r\n } catch (error) {\r\n this._eventBus.fire('error', { error });\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nFeelExpressionLanguage.$inject = [\r\n 'eventBus'\r\n];","import { parser as feelersParser, buildSimpleTree, evaluate as evaluateFeelers } from 'feelers';\r\nimport { isString } from 'min-dash';\r\nimport { getFlavouredFeelVariableNames } from './variableExtractionHelpers';\r\n\r\nexport default class FeelersTemplating {\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Determines if the given value is a feelers template.\r\n *\r\n * @param {any} value\r\n * @returns {boolean}\r\n *\r\n */\r\n isTemplate(value) { return isString(value) && (value.startsWith('=') || /{{.*?}}/.test(value)); }\r\n\r\n\r\n /**\r\n * Retrieve variable names from a given feelers template.\r\n *\r\n * @param {string} template\r\n *\r\n * @returns {string[]}\r\n */\r\n getVariableNames(template) {\r\n\r\n if (!this.isTemplate(template)) {\r\n return [];\r\n }\r\n\r\n const expressions = this._extractExpressionsWithDepth(template);\r\n\r\n // defines special accessors, and the change(s) in depth they could imply (e.g. parent can be used to access the parent context (depth - 1) or a child variable named parent (depth + 1)\r\n const specialDepthAccessors = {\r\n parent: [ -1, 1 ],\r\n _parent_: [ -1 ],\r\n this: [ 0, 1 ],\r\n _this_: [ 0 ],\r\n };\r\n\r\n return expressions.reduce((variables, { expression, depth }) => {\r\n return variables.concat(getFlavouredFeelVariableNames(expression, 'expression', { depth, specialDepthAccessors }));\r\n }, []);\r\n }\r\n\r\n\r\n /**\r\n * Evaluate a template.\r\n *\r\n * @param {string} template\r\n * @param {Object<string, any>} context\r\n * @param {Object} options\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n * @returns\r\n */\r\n evaluate(template, context = {}, options = {}) {\r\n\r\n const {\r\n debug = false,\r\n strict = false,\r\n buildDebugString = (err) => ' {{⚠}} '\r\n } = options;\r\n\r\n return evaluateFeelers(template, context, { debug, strict, buildDebugString });\r\n }\r\n\r\n\r\n /**\r\n * @typedef {Object} ExpressionWithDepth\r\n * @property {number} depth - The depth of the expression in the syntax tree.\r\n * @property {string} expression - The extracted expression\r\n */\r\n\r\n /**\r\n * Extracts all feel expressions in the template along with their depth in the syntax tree.\r\n * The depth is incremented for child expressions of loops to account for context drilling.\r\n\r\n * @name extractExpressionsWithDepth\r\n * @param {string} template - A feelers template string.\r\n * @returns {Array<ExpressionWithDepth>} An array of objects, each containing the depth and the extracted expression.\r\n *\r\n * @example\r\n * const template = \"Hello {{user}}, you have:{{#loop items}}\\n- {{amount}} {{name}}{{/loop}}.\";\r\n * const extractedExpressions = _extractExpressionsWithDepth(template);\r\n */\r\n _extractExpressionsWithDepth(template) {\r\n\r\n // build simplified feelers syntax tree\r\n const parseTree = feelersParser.parse(template);\r\n const tree = buildSimpleTree(parseTree, template);\r\n\r\n return (function _traverse(n, depth = 0) {\r\n\r\n if ([ 'Feel', 'FeelBlock' ].includes(n.name)) {\r\n return [ { depth, expression: n.content } ];\r\n }\r\n\r\n if (n.name === 'LoopSpanner') {\r\n const loopExpression = n.children[0].content;\r\n const childResults = n.children.slice(1).reduce((acc, child) => {\r\n return acc.concat(_traverse(child, depth + 1));\r\n }, []);\r\n return [ { depth, expression: loopExpression }, ...childResults ];\r\n }\r\n\r\n return n.children.reduce((acc, child) => {\r\n return acc.concat(_traverse(child, depth));\r\n }, []);\r\n\r\n })(tree);\r\n\r\n }\r\n}\r\n\r\nFeelersTemplating.$inject = [];","import { unaryTest } from 'feelin';\r\nimport { isString } from 'min-dash';\r\n\r\n/**\r\n * @typedef {object} Condition\r\n * @property {string} [hide]\r\n */\r\n\r\nexport default class ConditionChecker {\r\n constructor(formFieldRegistry, eventBus) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * For given data, remove properties based on condition.\r\n *\r\n * @param {Object<string, any>} properties\r\n * @param {Object<string, any>} data\r\n */\r\n applyConditions(properties, data = {}) {\r\n\r\n const conditions = this._getConditions();\r\n\r\n const newProperties = { ...properties };\r\n\r\n for (const { key, condition } of conditions) {\r\n const shouldRemove = this._checkHideCondition(condition, data);\r\n\r\n if (shouldRemove) {\r\n delete newProperties[ key ];\r\n }\r\n }\r\n\r\n return newProperties;\r\n }\r\n\r\n /**\r\n * Check if given condition is met. Returns null for invalid/missing conditions.\r\n *\r\n * @param {string} condition\r\n * @param {import('../../types').Data} [data]\r\n *\r\n * @returns {boolean|null}\r\n */\r\n check(condition, data = {}) {\r\n if (!condition) {\r\n return null;\r\n }\r\n\r\n if (!isString(condition) || !condition.startsWith('=')) {\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n // cut off initial '='\r\n const result = unaryTest(condition.slice(1), data);\r\n\r\n return result;\r\n } catch (error) {\r\n this._eventBus.fire('error', { error });\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Check if hide condition is met.\r\n *\r\n * @param {Condition} condition\r\n * @param {Object<string, any>} data\r\n * @returns {boolean}\r\n */\r\n _checkHideCondition(condition, data) {\r\n if (!condition.hide) {\r\n return false;\r\n }\r\n\r\n const result = this.check(condition.hide, data);\r\n\r\n return result === true;\r\n }\r\n\r\n _getConditions() {\r\n const formFields = this._formFieldRegistry.getAll();\r\n\r\n return formFields.reduce((conditions, formField) => {\r\n const { key, conditional: condition } = formField;\r\n\r\n if (key && condition) {\r\n return [ ...conditions, { key, condition } ];\r\n }\r\n\r\n return conditions;\r\n\r\n }, []);\r\n }\r\n}\r\n\r\nConditionChecker.$inject = [\r\n 'formFieldRegistry',\r\n 'eventBus'\r\n];\r\n","import FeelExpressionLanguage from './FeelExpressionLanguage';\r\nimport FeelersTemplating from './FeelersTemplating';\r\nimport ConditionChecker from './ConditionChecker';\r\n\r\nexport default {\r\n __init__: [ 'expressionLanguage', 'templating', 'conditionChecker' ],\r\n expressionLanguage: [ 'type', FeelExpressionLanguage ],\r\n templating: [ 'type', FeelersTemplating ],\r\n conditionChecker: [ 'type', ConditionChecker ]\r\n};\r\n\r\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };","import showdown from 'showdown';\r\n\r\n// bootstrap showdown to support github flavored markdown\r\nshowdown.setFlavor('github');\r\n\r\nexport default class MarkdownRenderer {\r\n\r\n constructor() {\r\n this._converter = new showdown.Converter();\r\n }\r\n\r\n /**\r\n * Render markdown to HTML.\r\n *\r\n * @param {string} markdown - The markdown to render\r\n *\r\n * @returns {string} HTML\r\n */\r\n render(markdown) {\r\n return this._converter.makeHtml(markdown);\r\n }\r\n}\r\n\r\nMarkdownRenderer.$inject = [];","import MarkdownRenderer from './MarkdownRenderer';\r\n\r\nexport default {\r\n __init__: [ 'markdownRenderer' ],\r\n markdownRenderer: [ 'type', MarkdownRenderer ],\r\n};\r\n\r\nexport { MarkdownRenderer };","import {\n 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 Big from 'big.js';\r\n\r\nexport function countDecimals(number) {\r\n const num = Big(number);\r\n if (num.toString() === num.toFixed(0)) return 0;\r\n return num.toFixed().split('.')[1].length || 0;\r\n}\r\n\r\nexport function isValidNumber(value) {\r\n return (typeof value === 'number' || typeof value === 'string') && value !== '' && !isNaN(Number(value));\r\n}\r\n\r\nexport function willKeyProduceValidNumber(key, previousValue, caretIndex, selectionWidth, decimalDigits) {\r\n\r\n // Dot and comma are both treated as dot\r\n previousValue = previousValue.replace(',', '.');\r\n const isFirstDot = !previousValue.includes('.') && (key === '.' || key === ',');\r\n const isFirstMinus = !previousValue.includes('-') && key === '-' && caretIndex === 0;\r\n\r\n const keypressIsNumeric = /^[0-9]$/i.test(key);\r\n const dotIndex = previousValue === undefined ? -1 : previousValue.indexOf('.');\r\n\r\n // If the caret is positioned after a dot, and the current decimal digits count is equal or greater to the maximum, disallow the key press\r\n const overflowsDecimalSpace = typeof(decimalDigits) === 'number'\r\n && selectionWidth === 0\r\n && dotIndex !== -1\r\n && previousValue.includes('.')\r\n && previousValue.split('.')[1].length >= decimalDigits\r\n && caretIndex > dotIndex;\r\n\r\n const keypressIsAllowedChar = keypressIsNumeric || ((decimalDigits !== 0) && isFirstDot) || isFirstMinus;\r\n\r\n return keypressIsAllowedChar && !overflowsDecimalSpace;\r\n\r\n}\r\n\r\nexport function isNullEquivalentValue(value) {\r\n return value === undefined || value === null || value === '';\r\n}\r\n","import { isNil } from 'min-dash';\r\nimport { countDecimals } from '../render/components/util/numberFieldUtil';\r\nimport Big from 'big.js';\r\n\r\nconst EMAIL_PATTERN = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\nconst PHONE_PATTERN = /(\\+|00)(297|93|244|1264|358|355|376|971|54|374|1684|1268|61|43|994|257|32|229|226|880|359|973|1242|387|590|375|501|1441|591|55|1246|673|975|267|236|1|61|41|56|86|225|237|243|242|682|57|269|238|506|53|5999|61|1345|357|420|49|253|1767|45|1809|1829|1849|213|593|20|291|212|34|372|251|358|679|500|33|298|691|241|44|995|44|233|350|224|590|220|245|240|30|1473|299|502|594|1671|592|852|504|385|509|36|62|44|91|246|353|98|964|354|972|39|1876|44|962|81|76|77|254|996|855|686|1869|82|383|965|856|961|231|218|1758|423|94|266|370|352|371|853|590|212|377|373|261|960|52|692|389|223|356|95|382|976|1670|258|222|1664|596|230|265|60|262|264|687|227|672|234|505|683|31|47|977|674|64|968|92|507|64|51|63|680|675|48|1787|1939|850|351|595|970|689|974|262|40|7|250|966|249|221|65|500|4779|677|232|503|378|252|508|381|211|239|597|421|386|46|268|1721|248|963|1649|235|228|66|992|690|993|670|676|1868|216|90|688|886|255|256|380|598|1|998|3906698|379|1784|58|1284|1340|84|678|681|685|967|27|260|263)(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{4,20}$/;\r\n\r\nexport default class Validator {\r\n\r\n validateField(field, value) {\r\n\r\n const { type, validate } = field;\r\n\r\n let errors = [];\r\n\r\n if (type === 'number') {\r\n\r\n const { decimalDigits, increment } = field;\r\n\r\n if (value === 'NaN') {\r\n\r\n errors = [\r\n ...errors,\r\n 'Value is not a number.'\r\n ];\r\n\r\n }\r\n else if (value) {\r\n\r\n if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\r\n errors = [\r\n ...errors,\r\n 'Value is expected to ' +\r\n (decimalDigits === 0\r\n ? 'be an integer'\r\n : `have at most ${decimalDigits} decimal digit${decimalDigits > 1 ? 's' : ''}`\r\n ) + '.'\r\n ];\r\n }\r\n\r\n if (increment) {\r\n\r\n const bigValue = Big(value);\r\n const bigIncrement = Big(increment);\r\n\r\n const offset = bigValue.mod(bigIncrement);\r\n\r\n if (offset.cmp(0) !== 0) {\r\n const previousValue = bigValue.minus(offset);\r\n const nextValue = previousValue.plus(bigIncrement);\r\n\r\n errors = [\r\n ...errors,\r\n `Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!validate) {\r\n return errors;\r\n }\r\n\r\n if (validate.pattern && value && !new RegExp(validate.pattern).test(value)) {\r\n errors = [\r\n ...errors,\r\n `Field must match pattern ${ validate.pattern }.`\r\n ];\r\n }\r\n\r\n if (validate.required) {\r\n const isUncheckedCheckbox = type === 'checkbox' && value === false;\r\n const isUnsetValue = isNil(value) || value === '';\r\n const isEmptyMultiselect = Array.isArray(value) && value.length === 0;\r\n\r\n if (isUncheckedCheckbox || isUnsetValue || isEmptyMultiselect) {\r\n errors = [\r\n ...errors,\r\n 'Field is required.'\r\n ];\r\n }\r\n }\r\n\r\n if ('min' in validate && (value || value === 0) && value < validate.min) {\r\n errors = [\r\n ...errors,\r\n `Field must have minimum value of ${ validate.min }.`\r\n ];\r\n }\r\n\r\n if ('max' in validate && (value || value === 0) && value > validate.max) {\r\n errors = [\r\n ...errors,\r\n `Field must have maximum value of ${ validate.max }.`\r\n ];\r\n }\r\n\r\n if ('minLength' in validate && value && value.trim().length < validate.minLength) {\r\n errors = [\r\n ...errors,\r\n `Field must have minimum length of ${ validate.minLength }.`\r\n ];\r\n }\r\n\r\n if ('maxLength' in validate && value && value.trim().length > validate.maxLength) {\r\n errors = [\r\n ...errors,\r\n `Field must have maximum length of ${ validate.maxLength }.`\r\n ];\r\n }\r\n\r\n if ('validationType' in validate && value && validate.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\r\n errors = [\r\n ...errors,\r\n 'Field must be a valid international phone number. (e.g. +4930664040900)'\r\n ];\r\n }\r\n\r\n if ('validationType' in validate && value && validate.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\r\n errors = [\r\n ...errors,\r\n 'Field must be a valid email.'\r\n ];\r\n }\r\n\r\n return errors;\r\n }\r\n}\r\n\r\nValidator.$inject = [];","import Ids from 'ids';\r\n\r\nexport default class FormFieldRegistry {\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n\r\n this._formFields = {};\r\n\r\n eventBus.on('form.clear', () => this.clear());\r\n\r\n this._ids = new Ids([ 32, 36, 1 ]);\r\n this._keys = new Ids([ 32, 36, 1 ]);\r\n }\r\n\r\n add(formField) {\r\n const { id } = formField;\r\n\r\n if (this._formFields[ id ]) {\r\n throw new Error(`form field with ID ${ id } already exists`);\r\n }\r\n\r\n this._eventBus.fire('formField.add', { formField });\r\n\r\n this._formFields[ id ] = formField;\r\n }\r\n\r\n remove(formField) {\r\n const { id } = formField;\r\n\r\n if (!this._formFields[ id ]) {\r\n return;\r\n }\r\n\r\n this._eventBus.fire('formField.remove', { formField });\r\n\r\n delete this._formFields[ id ];\r\n }\r\n\r\n get(id) {\r\n return this._formFields[ id ];\r\n }\r\n\r\n getAll() {\r\n return Object.values(this._formFields);\r\n }\r\n\r\n forEach(callback) {\r\n this.getAll().forEach((formField) => callback(formField));\r\n }\r\n\r\n clear() {\r\n this._formFields = {};\r\n\r\n this._ids.clear();\r\n this._keys.clear();\r\n }\r\n\r\n}\r\n\r\nFormFieldRegistry.$inject = [ 'eventBus' ];","import Ids from 'ids';\r\n\r\nimport { groupBy, flatten } from 'min-dash';\r\n\r\n\r\n/**\r\n * @typedef { { id: String, components: Array<String> } } FormRow\r\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\r\n */\r\n\r\n/**\r\n * Maintains the Form layout in a given structure, for example\r\n *\r\n * [\r\n * {\r\n * formFieldId: 'FormField_1',\r\n * rows: [\r\n * { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ] }\r\n * ]\r\n * }\r\n * ]\r\n *\r\n */\r\nexport default class FormLayouter {\r\n\r\n constructor(eventBus) {\r\n\r\n /** @type Array<FormRows> */\r\n this._rows = [];\r\n this._ids = new Ids([ 32, 36, 1 ]);\r\n\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * @param {FormRow} row\r\n */\r\n addRow(formFieldId, row) {\r\n let rowsPerComponent = this._rows.find(r => r.formFieldId === formFieldId);\r\n\r\n if (!rowsPerComponent) {\r\n rowsPerComponent = {\r\n formFieldId,\r\n rows: []\r\n };\r\n\r\n this._rows.push(rowsPerComponent);\r\n }\r\n\r\n rowsPerComponent.rows.push(row);\r\n }\r\n\r\n /**\r\n * @param {String} id\r\n * @returns {FormRow}\r\n */\r\n getRow(id) {\r\n const rows = allRows(this._rows);\r\n return rows.find(r => r.id === id);\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n * @returns {FormRow}\r\n */\r\n getRowForField(formField) {\r\n return allRows(this._rows).find(r => {\r\n const { components } = r;\r\n\r\n return components.includes(formField.id);\r\n });\r\n }\r\n\r\n /**\r\n * @param {String} formFieldId\r\n * @returns { Array<FormRow> }\r\n */\r\n getRows(formFieldId) {\r\n const rowsForField = this._rows.find(r => formFieldId === r.formFieldId);\r\n\r\n if (!rowsForField) {\r\n return [];\r\n }\r\n\r\n return rowsForField.rows;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n nextRowId() {\r\n return this._ids.nextPrefixed('Row_');\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n */\r\n calculateLayout(formField) {\r\n\r\n const {\r\n type,\r\n components\r\n } = formField;\r\n\r\n if (type !== 'default' || !components) {\r\n return;\r\n }\r\n\r\n // (1) calculate rows order (by component order)\r\n const rowsInOrder = groupByRow(components, this._ids);\r\n\r\n Object.entries(rowsInOrder).forEach(([ id, components ]) => {\r\n\r\n // (2) add fields to rows\r\n this.addRow(formField.id, {\r\n id: id,\r\n components: components.map(c => c.id)\r\n });\r\n });\r\n\r\n // (3) traverse through nested components\r\n components.forEach(field => this.calculateLayout(field));\r\n\r\n // (4) fire event to notify interested parties\r\n this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\r\n }\r\n\r\n clear() {\r\n this._rows = [];\r\n this._ids.clear();\r\n\r\n // fire event to notify interested parties\r\n this._eventBus.fire('form.layoutCleared');\r\n }\r\n}\r\n\r\nFormLayouter.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////\r\n\r\nfunction groupByRow(components, ids) {\r\n return groupBy(components, c => {\r\n\r\n // mitigate missing row by creating new (handle legacy)\r\n const { layout } = c;\r\n\r\n if (!layout || !layout.row) {\r\n return ids.nextPrefixed('Row_');\r\n }\r\n\r\n return layout.row;\r\n });\r\n}\r\n\r\n/**\r\n * @param {Array<FormRows>} formRows\r\n * @returns {Array<FormRow>}\r\n */\r\nfunction allRows(formRows) {\r\n return flatten(formRows.map(c => c.rows));\r\n}","// config ///////////////////\r\n\r\nexport const MINUTES_IN_DAY = 60 * 24;\r\n\r\nexport const DATETIME_SUBTYPES = {\r\n DATE: 'date',\r\n TIME: 'time',\r\n DATETIME: 'datetime'\r\n};\r\n\r\nexport const TIME_SERIALISING_FORMATS = {\r\n UTC_OFFSET: 'utc_offset',\r\n UTC_NORMALIZED: 'utc_normalized',\r\n NO_TIMEZONE: 'no_timezone'\r\n};\r\n\r\nexport const DATETIME_SUBTYPES_LABELS = {\r\n [DATETIME_SUBTYPES.DATE]: 'Date',\r\n [DATETIME_SUBTYPES.TIME]: 'Time',\r\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time'\r\n};\r\n\r\nexport const TIME_SERIALISINGFORMAT_LABELS = {\r\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\r\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\r\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone'\r\n};\r\n\r\nexport const DATETIME_SUBTYPE_PATH = [ 'subtype' ];\r\nexport const DATE_LABEL_PATH = [ 'dateLabel' ];\r\nexport const DATE_DISALLOW_PAST_PATH = [ 'disallowPassedDates' ];\r\nexport const TIME_LABEL_PATH = [ 'timeLabel' ];\r\nexport const TIME_USE24H_PATH = [ 'use24h' ];\r\nexport const TIME_INTERVAL_PATH = [ 'timeInterval' ];\r\nexport const TIME_SERIALISING_FORMAT_PATH = [ 'timeSerializingFormat' ];\r\n","import { get } from 'min-dash';\r\n\r\n// config ///////////////////\r\n\r\nexport const VALUES_SOURCES = {\r\n STATIC: 'static',\r\n INPUT: 'input'\r\n};\r\n\r\nexport const VALUES_SOURCE_DEFAULT = VALUES_SOURCES.STATIC;\r\n\r\nexport const VALUES_SOURCES_LABELS = {\r\n [VALUES_SOURCES.STATIC]: 'Static',\r\n [VALUES_SOURCES.INPUT]: 'Input data',\r\n};\r\n\r\nexport const VALUES_SOURCES_PATHS = {\r\n [VALUES_SOURCES.STATIC]: [ 'values' ],\r\n [VALUES_SOURCES.INPUT]: [ 'valuesKey' ],\r\n};\r\n\r\nexport const VALUES_SOURCES_DEFAULTS = {\r\n [VALUES_SOURCES.STATIC]: [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ],\r\n [VALUES_SOURCES.INPUT]: '',\r\n};\r\n\r\n// helpers ///////////////////\r\n\r\nexport function getValuesSource(field) {\r\n\r\n for (const source of Object.values(VALUES_SOURCES)) {\r\n if (get(field, VALUES_SOURCES_PATHS[source]) !== undefined) {\r\n return source;\r\n }\r\n }\r\n\r\n return VALUES_SOURCE_DEFAULT;\r\n}\r\n","import { Injector } from 'didi';\r\n\r\nexport function createInjector(bootstrapModules) {\r\n\r\n const injector = new Injector(bootstrapModules);\r\n\r\n injector.init();\r\n\r\n return injector;\r\n}","/**\r\n * @param {string?} prefix\r\n *\r\n * @returns Element\r\n */\r\nexport function createFormContainer(prefix = 'fjs') {\r\n const container = document.createElement('div');\r\n\r\n container.classList.add(`${ prefix }-container`);\r\n\r\n return container;\r\n}","import FeelExpressionLanguage from '../features/expression-language/FeelExpressionLanguage.js';\r\nimport FeelersTemplating from '../features/expression-language/FeelersTemplating.js';\r\n\r\nexport * from './constants';\r\nexport * from './injector';\r\nexport * from './form';\r\n\r\nconst EXPRESSION_PROPERTIES = [\r\n 'alt',\r\n 'description',\r\n 'label',\r\n 'source',\r\n 'readonly',\r\n 'text'\r\n];\r\n\r\nconst TEMPLATE_PROPERTIES = [\r\n 'description',\r\n 'label',\r\n 'text'\r\n];\r\n\r\nexport function findErrors(errors, path) {\r\n return errors[ pathStringify(path) ];\r\n}\r\n\r\nexport function isRequired(field) {\r\n return field.required;\r\n}\r\n\r\nexport function pathParse(path) {\r\n if (!path) {\r\n return [];\r\n }\r\n\r\n return path.split('.').map(key => {\r\n return isNaN(parseInt(key)) ? key : parseInt(key);\r\n });\r\n}\r\n\r\nexport function pathsEqual(a, b) {\r\n return (\r\n a &&\r\n b &&\r\n a.length === b.length &&\r\n a.every((value, index) => value === b[ index ])\r\n );\r\n}\r\n\r\nexport function pathStringify(path) {\r\n if (!path) {\r\n return '';\r\n }\r\n\r\n return path.join('.');\r\n}\r\n\r\nconst indices = {};\r\n\r\nexport function generateIndexForType(type) {\r\n if (type in indices) {\r\n indices[ type ]++;\r\n } else {\r\n indices[ type ] = 1;\r\n }\r\n\r\n return indices[ type ];\r\n}\r\n\r\nexport function generateIdForType(type) {\r\n return `${ type }${ generateIndexForType(type) }`;\r\n}\r\n\r\n/**\r\n * @template T\r\n * @param {T} data\r\n * @param {(this: any, key: string, value: any) => any} [replacer]\r\n * @return {T}\r\n */\r\nexport function clone(data, replacer) {\r\n return JSON.parse(JSON.stringify(data, replacer));\r\n}\r\n\r\n/**\r\n * Parse the schema for input variables a form might make use of\r\n *\r\n * @param {any} schema\r\n *\r\n * @return {string[]}\r\n */\r\nexport function getSchemaVariables(schema, expressionLanguage = new FeelExpressionLanguage(null), templating = new FeelersTemplating()) {\r\n\r\n if (!schema.components) {\r\n return [];\r\n }\r\n\r\n const variables = schema.components.reduce((variables, component) => {\r\n\r\n const {\r\n key,\r\n valuesKey,\r\n type,\r\n conditional\r\n } = component;\r\n\r\n if ([ 'button' ].includes(type)) {\r\n return variables;\r\n }\r\n\r\n if (key) {\r\n variables = [ ...variables, key ];\r\n }\r\n\r\n if (valuesKey) {\r\n variables = [ ...variables, valuesKey ];\r\n }\r\n\r\n if (conditional && conditional.hide) {\r\n\r\n const conditionVariables = expressionLanguage.getVariableNames(conditional.hide, { type: 'unaryTest' });\r\n\r\n variables = [ ...variables, ...conditionVariables ];\r\n }\r\n\r\n EXPRESSION_PROPERTIES.forEach((prop) => {\r\n const property = component[prop];\r\n\r\n if (property && expressionLanguage.isExpression(property)) {\r\n\r\n const expressionVariables = expressionLanguage.getVariableNames(property, { type: 'expression' });\r\n\r\n variables = [ ...variables, ...expressionVariables ];\r\n }\r\n });\r\n\r\n TEMPLATE_PROPERTIES.forEach((prop) => {\r\n const property = component[prop];\r\n\r\n if (property && !expressionLanguage.isExpression(property) && templating.isTemplate(property)) {\r\n\r\n const templateVariables = templating.getVariableNames(property);\r\n\r\n variables = [ ...variables, ...templateVariables ];\r\n }\r\n });\r\n\r\n return variables;\r\n }, []);\r\n\r\n // remove duplicates\r\n return Array.from(new Set(variables));\r\n}\r\n","import {\r\n get,\r\n isUndefined\r\n} from 'min-dash';\r\n\r\nimport {\r\n clone,\r\n generateIdForType\r\n} from '../util';\r\n\r\n\r\nexport default class Importer {\r\n\r\n /**\r\n * @constructor\r\n * @param { import('../core').FormFieldRegistry } formFieldRegistry\r\n * @param { import('../render/FormFields').default } formFields\r\n * @param { import('../core').FormLayouter } formLayouter\r\n */\r\n constructor(formFieldRegistry, formFields, formLayouter) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._formFields = formFields;\r\n this._formLayouter = formLayouter;\r\n }\r\n\r\n /**\r\n * Import schema adding `id`, `_parent` and `_path`\r\n * information to each field and adding it to the\r\n * form field registry.\r\n *\r\n * @param {any} schema\r\n * @param {any} [data]\r\n *\r\n * @return { { warnings: Array<any>, schema: any, data: any } }\r\n */\r\n importSchema(schema, data = {}) {\r\n\r\n // TODO: Add warnings - https://github.com/bpmn-io/form-js/issues/289\r\n const warnings = [];\r\n\r\n try {\r\n\r\n this._formLayouter.clear();\r\n\r\n const importedSchema = this.importFormField(clone(schema)),\r\n initializedData = this.initializeFieldValues(clone(data));\r\n\r\n this._formLayouter.calculateLayout(clone(importedSchema));\r\n\r\n return {\r\n warnings,\r\n schema: importedSchema,\r\n data: initializedData\r\n };\r\n } catch (err) {\r\n err.warnings = warnings;\r\n\r\n throw err;\r\n }\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n * @param {string} [parentId]\r\n *\r\n * @return {any} importedField\r\n */\r\n importFormField(formField, parentId) {\r\n const {\r\n components,\r\n key,\r\n type,\r\n id = generateIdForType(type)\r\n } = formField;\r\n\r\n if (parentId) {\r\n\r\n // set form field parent\r\n formField._parent = parentId;\r\n }\r\n\r\n if (!this._formFields.get(type)) {\r\n throw new Error(`form field of type <${ type }> not supported`);\r\n }\r\n\r\n if (key) {\r\n\r\n // validate <key> uniqueness\r\n if (this._formFieldRegistry._keys.assigned(key)) {\r\n throw new Error(`form field with key <${ key }> already exists`);\r\n }\r\n\r\n this._formFieldRegistry._keys.claim(key, formField);\r\n\r\n // TODO: buttons should not have key\r\n if (type !== 'button') {\r\n\r\n // set form field path\r\n formField._path = [ key ];\r\n }\r\n }\r\n\r\n if (id) {\r\n\r\n // validate <id> uniqueness\r\n if (this._formFieldRegistry._ids.assigned(id)) {\r\n throw new Error(`form field with id <${ id }> already exists`);\r\n }\r\n\r\n this._formFieldRegistry._ids.claim(id, formField);\r\n }\r\n\r\n // set form field ID\r\n formField.id = id;\r\n\r\n this._formFieldRegistry.add(formField);\r\n\r\n if (components) {\r\n this.importFormFields(components, id);\r\n }\r\n\r\n return formField;\r\n }\r\n\r\n importFormFields(components, parentId) {\r\n components.forEach((component) => {\r\n this.importFormField(component, parentId);\r\n });\r\n }\r\n\r\n /**\r\n * @param {Object} data\r\n *\r\n * @return {Object} initializedData\r\n */\r\n initializeFieldValues(data) {\r\n return this._formFieldRegistry.getAll().reduce((initializedData, formField) => {\r\n const {\r\n defaultValue,\r\n _path,\r\n type\r\n } = formField;\r\n\r\n // try to get value from data\r\n // if unavailable - try to get default value from form field\r\n // if unavailable - get empty value from form field\r\n\r\n if (_path) {\r\n\r\n const { config: fieldConfig } = this._formFields.get(type);\r\n let valueData = get(data, _path);\r\n\r\n if (!isUndefined(valueData) && fieldConfig.sanitizeValue) {\r\n valueData = fieldConfig.sanitizeValue({ formField, data, value: valueData });\r\n }\r\n\r\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldConfig.emptyValue);\r\n\r\n initializedData = {\r\n ...initializedData,\r\n [_path[0]]: initializedFieldValue,\r\n };\r\n\r\n }\r\n\r\n return initializedData;\r\n\r\n }, data);\r\n }\r\n}\r\n\r\nImporter.$inject = [ 'formFieldRegistry', 'formFields', 'formLayouter' ];","import Importer from './Importer';\r\n\r\nexport default {\r\n importer: [ 'type', Importer ]\r\n};","import classNames from 'classnames';\r\n\r\nexport function formFieldClasses(type, { errors = [], disabled = false, readonly = false } = {}) {\r\n if (!type) {\r\n throw new Error('type required');\r\n }\r\n\r\n return classNames('fjs-form-field', `fjs-form-field-${type}`, {\r\n 'fjs-has-errors': errors.length > 0,\r\n 'fjs-disabled': disabled,\r\n 'fjs-readonly': readonly\r\n });\r\n}\r\n\r\nexport function gridColumnClasses(formField) {\r\n const {\r\n layout = {}\r\n } = formField;\r\n\r\n const {\r\n columns\r\n } = layout;\r\n\r\n return classNames(\r\n 'fjs-layout-column',\r\n `cds--col${columns ? '-lg-' + columns : ''}`,\r\n\r\n // always fall back to top-down on smallest screens\r\n 'cds--col-sm-16',\r\n 'cds--col-md-16'\r\n );\r\n}\r\n\r\n\r\nexport function prefixId(id, formId) {\r\n if (formId) {\r\n return `fjs-form-${ formId }-${ id }`;\r\n }\r\n\r\n return `fjs-form-${ id }`;\r\n}\r\n","import { formFieldClasses } from '../Util';\r\n\r\nconst type = 'button';\r\n\r\n\r\nexport default function Button(props) {\r\n const {\r\n disabled,\r\n field\r\n } = props;\r\n\r\n const { action = 'submit' } = field;\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <button class=\"fjs-button\" type={ action } disabled={ disabled }>{ field.label }</button>\r\n </div>;\r\n}\r\n\r\nButton.config = {\r\n type,\r\n keyed: true,\r\n label: 'Button',\r\n group: 'action',\r\n create: (options = {}) => ({\r\n action: 'submit',\r\n ...options\r\n })\r\n};\r\n","import { createContext } from 'preact';\r\n\r\nconst FormRenderContext = createContext({\r\n Empty: (props) => {\r\n return null;\r\n },\r\n Children: (props) => {\r\n return <div class={ props.class }>{ props.children }</div>;\r\n },\r\n Element: (props) => {\r\n return <div class={ props.class }>{ props.children }</div>;\r\n },\r\n Row: (props) => {\r\n return <div class={ props.class }>{ props.children }</div>;\r\n },\r\n Column: (props) => {\r\n if (props.field.type === 'default') {\r\n return props.children;\r\n }\r\n\r\n return <div class={ props.class }>{ props.children }</div>;\r\n }\r\n});\r\n\r\nexport default FormRenderContext;","import { createContext } from 'preact';\r\n\r\n/**\r\n * @param {string} type\r\n * @param {boolean} [strict]\r\n *\r\n * @returns {any}\r\n */\r\nfunction getService(type, strict) {}\r\n\r\nconst FormContext = createContext({\r\n getService,\r\n formId: null\r\n});\r\n\r\nexport default FormContext;","import {\r\n useContext\r\n} from 'preact/hooks';\r\n\r\nimport { FormContext } from '../context';\r\n\r\nexport default function useService(type, strict) {\r\n const {\r\n getService\r\n } = useContext(FormContext);\r\n\r\n return getService(type, strict);\r\n}","import useService from './useService.js';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Returns the conditionally filtered data of a form reactively.\r\n * Memoised to minimize re-renders\r\n *\r\n */\r\nexport default function useFilteredFormData() {\r\n const { initialData, data } = useService('form')._getState();\r\n const conditionChecker = useService('conditionChecker', false);\r\n\r\n return useMemo(() => {\r\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\r\n return { ...initialData, ...newData };\r\n }, [ conditionChecker, data, initialData ]);\r\n\r\n}\r\n","import useService from './useService.js';\r\nimport useFilteredFormData from './useFilteredFormData.js';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\r\n *\r\n * @param {string | undefined} condition\r\n *\r\n * @returns {boolean} true if condition is met or no condition or condition checker exists\r\n */\r\nexport default function useCondition(condition) {\r\n const conditionChecker = useService('conditionChecker', false);\r\n const filteredData = useFilteredFormData();\r\n\r\n return useMemo(() => {\r\n return conditionChecker ? conditionChecker.check(condition, filteredData) : null;\r\n }, [ conditionChecker, condition, filteredData ]);\r\n}\r\n","import useService from './useService';\r\nimport useFilteredFormData from './useFilteredFormData';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Evaluate a string reactively based on the expressionLanguage and form data.\r\n * If the string is not an expression, it is returned as is.\r\n * Memoised to minimize re-renders.\r\n *\r\n * @param {string} value\r\n *\r\n */\r\nexport default function useExpressionEvaluation(value) {\r\n const formData = useFilteredFormData();\r\n const expressionLanguage = useService('expressionLanguage');\r\n\r\n return useMemo(() => {\r\n\r\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\r\n return expressionLanguage.evaluate(value, formData);\r\n }\r\n\r\n return value;\r\n\r\n }, [ expressionLanguage, formData, value ]);\r\n}\r\n","import { useEffect } from 'preact/hooks';\r\n\r\nexport default function useKeyDownAction(targetKey, action, listenerElement = window) {\r\n\r\n function downHandler({ key }) {\r\n if (key === targetKey) {\r\n action();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n listenerElement.addEventListener('keydown', downHandler);\r\n\r\n return () => {\r\n listenerElement.removeEventListener('keydown', downHandler);\r\n };\r\n });\r\n}","import useService from './useService.js';\r\nimport useFilteredFormData from './useFilteredFormData.js';\r\n\r\n/**\r\n * Retrieve readonly value of a form field, given it can be an\r\n * expression optionally or configured globally.\r\n *\r\n * @typedef { import('../../types').FormProperties } FormProperties\r\n *\r\n * @param {any} formField\r\n * @param {FormProperties} properties\r\n *\r\n * @returns {boolean}\r\n */\r\nexport default function useReadonly(formField, properties = {}) {\r\n const expressionLanguage = useService('expressionLanguage');\r\n const conditionChecker = useService('conditionChecker', false);\r\n const filteredData = useFilteredFormData();\r\n\r\n const { readonly } = formField;\r\n\r\n if (properties.readOnly) {\r\n return true;\r\n }\r\n\r\n if (expressionLanguage && expressionLanguage.isExpression(readonly)) {\r\n return conditionChecker ? conditionChecker.check(readonly, filteredData) : false;\r\n }\r\n\r\n return readonly || false;\r\n}\r\n","import useService from './useService';\r\nimport useFilteredFormData from './useFilteredFormData';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\r\n * Memoised to minimize re-renders\r\n *\r\n * @param {string} value\r\n * @param {Object} options\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n */\r\nexport default function useTemplateEvaluation(value, options) {\r\n const filteredData = useFilteredFormData();\r\n const templating = useService('templating');\r\n\r\n return useMemo(() => {\r\n\r\n if (templating && templating.isTemplate(value)) {\r\n return templating.evaluate(value, filteredData, options);\r\n }\r\n\r\n return value;\r\n\r\n }, [ filteredData, templating, value, options ]);\r\n}\r\n","import useTemplateEvaluation from './useTemplateEvaluation';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\r\n * If the string contains multiple lines, only the first line is returned.\r\n * Memoised to minimize re-renders\r\n *\r\n * @param {string} value\r\n * @param {Object} [options]\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n */\r\nexport default function useSingleLineTemplateEvaluation(value, options = {}) {\r\n const evaluatedTemplate = useTemplateEvaluation(value, options);\r\n return useMemo(() => evaluatedTemplate && evaluatedTemplate.split('\\n')[0], [ evaluatedTemplate ]);\r\n}","import { useSingleLineTemplateEvaluation } from '../hooks';\r\n\r\n\r\nexport default function Description(props) {\r\n const { description } = props;\r\n\r\n const evaluatedDescription = useSingleLineTemplateEvaluation(description || '', { debug: true });\r\n\r\n if (!evaluatedDescription) {\r\n return null;\r\n }\r\n\r\n return <div class=\"fjs-form-field-description\">{ evaluatedDescription }</div>;\r\n}","export default function Errors(props) {\r\n const { errors, id } = props;\r\n\r\n if (!errors.length) {\r\n return null;\r\n }\r\n\r\n return <div class=\"fjs-form-field-error\" aria-live=\"polite\" id={ id }>\r\n <ul>\r\n {\r\n errors.map(error => {\r\n return <li>{ error }</li>;\r\n })\r\n }\r\n </ul>\r\n </div>;\r\n}","import classNames from 'classnames';\r\n\r\nimport { useSingleLineTemplateEvaluation } from '../hooks';\r\n\r\nexport default function Label(props) {\r\n const {\r\n id,\r\n label,\r\n collapseOnEmpty = true,\r\n required = false\r\n } = props;\r\n\r\n const evaluatedLabel = useSingleLineTemplateEvaluation(label || '', { debug: true });\r\n\r\n return (\r\n <label for={ id } class={ classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class']) }>\r\n { props.children }\r\n { evaluatedLabel }\r\n {\r\n required && <span class=\"fjs-asterix\">*</span>\r\n }\r\n </label>\r\n );\r\n}","import { useContext } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\nimport classNames from 'classnames';\r\n\r\nconst type = 'checkbox';\r\n\r\n\r\nexport default function Checkbox(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n readonly,\r\n value = false\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.checked\r\n });\r\n };\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly }), { 'fjs-checked': value }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required }>\r\n <input\r\n checked={ value }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ prefixId(id, formId) }\r\n type=\"checkbox\"\r\n onChange={ onChange }\r\n aria-describedby={ errorMessageId } />\r\n </Label>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nCheckbox.config = {\r\n type,\r\n keyed: true,\r\n label: 'Checkbox',\r\n group: 'selection',\r\n emptyValue: false,\r\n sanitizeValue: ({ value }) => value === true,\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","import { get } from 'min-dash';\r\n\r\n// parses the options data from the provided form field and form data\r\nexport function getValuesData(formField, formData) {\r\n const { valuesKey, values } = formField;\r\n return valuesKey ? get(formData, [ valuesKey ]) : values;\r\n}\r\n\r\n// transforms the provided options into a normalized format, trimming invalid options\r\nexport function normalizeValuesData(valuesData) {\r\n return valuesData.filter(_isValueSomething).map(v => _normalizeValueData(v)).filter(v => v);\r\n}\r\n\r\nfunction _normalizeValueData(valueData) {\r\n\r\n if (_isAllowedValue(valueData)) {\r\n\r\n // if a primitive is provided, use it as label and value\r\n return { value: valueData, label: `${ valueData }` };\r\n }\r\n\r\n if (typeof (valueData) === 'object') {\r\n if (!valueData.label && _isAllowedValue(valueData.value)) {\r\n\r\n // if no label is provided, use the value as label\r\n return { value: valueData.value, label: `${ valueData.value }` };\r\n }\r\n\r\n if (_isValueSomething(valueData.value) && _isAllowedValue(valueData.label)) {\r\n\r\n // if both value and label are provided, use them as is, in this scenario, the value may also be an object\r\n return valueData;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _isAllowedValue(value) {\r\n return _isReadableType(value) && _isValueSomething(value);\r\n}\r\n\r\nfunction _isReadableType(value) {\r\n return [ 'number', 'string', 'boolean' ].includes(typeof(value));\r\n}\r\n\r\nfunction _isValueSomething(value) {\r\n return value || value === 0 || value === false;\r\n}","import { useEffect, useState } from 'preact/hooks';\r\nimport { normalizeValuesData } from '../components/util/valuesUtil';\r\nimport useService from './useService';\r\n\r\n/**\r\n * @enum { String }\r\n */\r\nexport const LOAD_STATES = {\r\n LOADING: 'loading',\r\n LOADED: 'loaded',\r\n ERROR: 'error'\r\n};\r\n\r\n/**\r\n * @typedef {Object} ValuesGetter\r\n * @property {Object[]} values - The values data\r\n * @property {(LOAD_STATES)} state - The values data's loading state, to use for conditional rendering\r\n */\r\n\r\n/**\r\n * A hook to load values for single and multiselect components.\r\n *\r\n * @param {Object} field - The form field to handle values for\r\n * @return {ValuesGetter} valuesGetter - A values getter object providing loading state and values\r\n */\r\nexport default function(field) {\r\n const {\r\n valuesKey,\r\n values: staticValues\r\n } = field;\r\n\r\n const [ valuesGetter, setValuesGetter ] = useState({ values: [], error: undefined, state: LOAD_STATES.LOADING });\r\n const initialData = useService('form')._getState().initialData;\r\n\r\n useEffect(() => {\r\n\r\n let values = [];\r\n\r\n // dynamic values\r\n if (valuesKey !== undefined) {\r\n const keyedValues = (initialData || {})[ valuesKey ];\r\n\r\n if (keyedValues && Array.isArray(keyedValues)) {\r\n values = keyedValues;\r\n }\r\n }\r\n\r\n // static values\r\n else if (staticValues !== undefined) {\r\n values = Array.isArray(staticValues) ? staticValues : [];\r\n }\r\n else {\r\n setValuesGetter(buildErrorState('No values source defined in the form definition'));\r\n return;\r\n }\r\n\r\n // normalize data to support primitives and partially defined objects\r\n values = normalizeValuesData(values);\r\n\r\n setValuesGetter(buildLoadedState(values));\r\n\r\n }, [ valuesKey, staticValues, initialData ]);\r\n\r\n return valuesGetter;\r\n}\r\n\r\nconst buildErrorState = (error) => ({ values: [], error, state: LOAD_STATES.ERROR });\r\n\r\nconst buildLoadedState = (values) => ({ values, error: undefined, state: LOAD_STATES.LOADED });\r\n","import { isNumber } from 'min-dash';\r\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\r\n\r\nexport const ENTER_KEYDOWN_EVENT = new KeyboardEvent('keydown', {\r\n code: 'Enter',\r\n key: 'Enter',\r\n charCode: 13,\r\n keyCode: 13,\r\n view: window,\r\n bubbles: true\r\n});\r\n\r\nexport function focusRelevantFlatpickerDay(flatpickrInstance) {\r\n\r\n if (!flatpickrInstance) return;\r\n\r\n !flatpickrInstance.isOpen && flatpickrInstance.open();\r\n\r\n const container = flatpickrInstance.calendarContainer;\r\n const dayToFocus =\r\n container.querySelector('.flatpickr-day.selected') ||\r\n container.querySelector('.flatpickr-day.today') ||\r\n container.querySelector('.flatpickr-day');\r\n\r\n dayToFocus && dayToFocus.focus();\r\n}\r\n\r\nexport function formatTime(use24h, minutes) {\r\n\r\n if (minutes === null) return null;\r\n\r\n const wrappedMinutes = minutes % (24 * 60);\r\n\r\n const minute = minutes % 60;\r\n let hour = Math.floor(wrappedMinutes / 60);\r\n\r\n if (use24h) {\r\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute);\r\n }\r\n\r\n hour = (hour % 12 || 12);\r\n\r\n const isPM = (wrappedMinutes >= 12 * 60);\r\n\r\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute) + ' ' + (isPM ? 'PM' : 'AM');\r\n}\r\n\r\nexport function parseInputTime(stringTime) {\r\n\r\n let workingString = stringTime.toLowerCase();\r\n const is12h = workingString.includes('am') || workingString.includes('pm');\r\n\r\n if (is12h) {\r\n const isPM = workingString.includes('pm');\r\n const digits = workingString.match(/\\d+/g);\r\n const displayHour = parseInt(digits && digits[0]);\r\n const minute = parseInt(digits && digits[1]) || 0;\r\n\r\n const isValidDisplayHour = isNumber(displayHour) && (displayHour >= 1) && (displayHour <= 12);\r\n const isValidMinute = (minute >= 0) && (minute <= 59);\r\n\r\n if (!isValidDisplayHour || !isValidMinute) return null;\r\n\r\n const hour = (displayHour % 12) + (isPM ? 12 : 0);\r\n\r\n return hour * 60 + minute;\r\n }\r\n else {\r\n const digits = workingString.match(/\\d+/g);\r\n const hour = parseInt(digits && digits[0]);\r\n const minute = parseInt(digits && digits[1]);\r\n\r\n const isValidHour = isNumber(hour) && (hour >= 0) && (hour <= 23);\r\n const isValidMinute = isNumber(minute) && (minute >= 0) && (minute <= 59);\r\n\r\n if (!isValidHour || !isValidMinute) return null;\r\n\r\n return hour * 60 + minute;\r\n }\r\n}\r\n\r\nexport function serializeTime(minutes, offset, timeSerializingFormat) {\r\n\r\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\r\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n return _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) + ':' + _getZeroPaddedString(normalizedMinutes % 60) + 'Z';\r\n }\r\n\r\n const baseTime = _getZeroPaddedString(Math.floor(minutes / 60)) + ':' + _getZeroPaddedString(minutes % 60);\r\n const addUTCOffset = timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_OFFSET;\r\n\r\n return baseTime + (addUTCOffset ? formatTimezoneOffset(offset) : '');\r\n}\r\n\r\nexport function parseIsoTime(isoTimeString) {\r\n\r\n if (!isoTimeString) return null;\r\n\r\n const parseBasicMinutes = (timeString) => {\r\n const timeSegments = timeString.split(':');\r\n const hour = parseInt(timeSegments[0]);\r\n const minute = timeSegments.length > 1 ? parseInt(timeSegments[1]) : 0;\r\n if (isNaN(hour) || hour < 0 || hour > 24 || isNaN(minute) || minute < 0 || minute > 60) return null;\r\n return hour * 60 + minute;\r\n };\r\n\r\n const localOffset = new Date().getTimezoneOffset();\r\n\r\n // Parse normalized time\r\n if (isoTimeString.includes('Z')) {\r\n isoTimeString = isoTimeString.replace('Z', '');\r\n const minutes = parseBasicMinutes(isoTimeString);\r\n if (minutes === null) return null;\r\n return (minutes - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Parse offset positive time\r\n else if (isoTimeString.includes('+')) {\r\n const [ timeString, offsetString ] = isoTimeString.split('+');\r\n\r\n const minutes = parseBasicMinutes(timeString);\r\n let inboundOffset = parseBasicMinutes(offsetString);\r\n\r\n if (minutes === null || inboundOffset === null) return null;\r\n\r\n // The offset is flipped for consistency with javascript\r\n inboundOffset = -inboundOffset;\r\n\r\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Parse offset negative time\r\n else if (isoTimeString.includes('-')) {\r\n const [ timeString, offsetString ] = isoTimeString.split('-');\r\n\r\n const minutes = parseBasicMinutes(timeString);\r\n let inboundOffset = parseBasicMinutes(offsetString);\r\n\r\n if (minutes === null || inboundOffset === null) return null;\r\n\r\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Default to local parsing\r\n else {\r\n return parseBasicMinutes(isoTimeString);\r\n }\r\n}\r\n\r\nexport function serializeDate(date) {\r\n var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n if (day.length < 2)\r\n day = '0' + day;\r\n\r\n return [ year, month, day ].join('-');\r\n}\r\n\r\n// this method is used to make the `new Date(value)` parsing behavior stricter\r\nexport function isDateTimeInputInformationSufficient(value) {\r\n\r\n if (!value || typeof value !== 'string') return false;\r\n\r\n const segments = value.split('T');\r\n if (segments.length != 2) return false;\r\n\r\n const dateNumbers = segments[0].split('-');\r\n if (dateNumbers.length != 3) return false;\r\n\r\n return true;\r\n\r\n}\r\n\r\n// this method checks if the date isn't a datetime, or a partial date\r\nexport function isDateInputInformationMatching(value) {\r\n\r\n if (!value || typeof value !== 'string') return false;\r\n\r\n if (value.includes('T')) return false;\r\n\r\n const dateNumbers = value.split('-');\r\n if (dateNumbers.length != 3) return false;\r\n\r\n return true;\r\n}\r\n\r\nexport function serializeDateTime(date, time, timeSerializingFormat) {\r\n\r\n const workingDate = new Date();\r\n workingDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\r\n workingDate.setHours(Math.floor(time / 60), time % 60, 0, 0);\r\n\r\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\r\n\r\n const timezoneOffsetMinutes = workingDate.getTimezoneOffset();\r\n const dayOffset = (time + timezoneOffsetMinutes < 0) ? -1 : (((time + timezoneOffsetMinutes) > MINUTES_IN_DAY) ? 1 : 0);\r\n\r\n // Apply the date rollover pre-emptively\r\n workingDate.setHours(workingDate.getHours() + dayOffset * 24);\r\n }\r\n\r\n return serializeDate(workingDate) + 'T' + serializeTime(time, workingDate.getTimezoneOffset(), timeSerializingFormat);\r\n\r\n}\r\n\r\nexport function formatTimezoneOffset(minutes) {\r\n return _getSignedPaddedHours(minutes) + ':' + _getZeroPaddedString(Math.abs(minutes % 60));\r\n}\r\n\r\nexport function isInvalidDateString(value) {\r\n return isNaN(new Date(Date.parse(value)).getTime());\r\n}\r\n\r\nfunction _getSignedPaddedHours(minutes) {\r\n if (minutes > 0) {\r\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\r\n }\r\n else {\r\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\r\n }\r\n}\r\n\r\nfunction _getZeroPaddedString(time) {\r\n return time.toString().padStart(2, '0');\r\n}","import { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\r\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\r\nimport { getValuesData, normalizeValuesData } from './valuesUtil';\r\n\r\nexport function sanitizeDateTimePickerValue(options) {\r\n const {\r\n formField,\r\n value\r\n } = options;\r\n\r\n const { subtype } = formField;\r\n\r\n if (typeof value !== 'string') return null;\r\n\r\n if (subtype === DATETIME_SUBTYPES.DATE && (isInvalidDateString(value) || !isDateInputInformationMatching(value))) return null;\r\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\r\n if (subtype === DATETIME_SUBTYPES.DATETIME && (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))) return null;\r\n\r\n return value;\r\n}\r\n\r\nexport function sanitizeSingleSelectValue(options) {\r\n const {\r\n formField,\r\n data,\r\n value\r\n } = options;\r\n\r\n try {\r\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\r\n return validValues.includes(value) ? value : null;\r\n } catch (error) {\r\n\r\n // use default value in case of formatting error\r\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\r\n return null;\r\n }\r\n}\r\n\r\nexport function sanitizeMultiSelectValue(options) {\r\n const {\r\n formField,\r\n data,\r\n value\r\n } = options;\r\n\r\n try {\r\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\r\n return value.filter(v => validValues.includes(v));\r\n } catch (error) {\r\n\r\n // use default value in case of formatting error\r\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\r\n return [];\r\n }\r\n}\r\n\r\n\r\n","import { useContext } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\r\nimport classNames from 'classnames';\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'checklist';\r\n\r\n\r\nexport default function Checklist(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n readonly,\r\n value = [],\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const toggleCheckbox = (v) => {\r\n\r\n let newValue = [ ...value ];\r\n\r\n if (!newValue.includes(v)) {\r\n newValue.push(v);\r\n } else {\r\n newValue = newValue.filter(x => x != v);\r\n }\r\n\r\n props.onChange({\r\n field,\r\n value: newValue,\r\n });\r\n };\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n return <div class={ classNames(formFieldClasses(type, { errors, disabled, readonly })) }>\r\n <Label\r\n label={ label }\r\n required={ required } />\r\n {\r\n loadState == LOAD_STATES.LOADED && options.map((v, index) => {\r\n return (\r\n <Label\r\n id={ prefixId(`${id}-${index}`, formId) }\r\n key={ `${id}-${index}` }\r\n label={ v.label }\r\n class={ classNames({\r\n 'fjs-checked': value.includes(v.value)\r\n }) }\r\n required={ false }>\r\n <input\r\n checked={ value.includes(v.value) }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ prefixId(`${id}-${index}`, formId) }\r\n type=\"checkbox\"\r\n onClick={ () => toggleCheckbox(v.value) }\r\n aria-describedby={ errorMessageId } />\r\n </Label>\r\n );\r\n })\r\n }\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nChecklist.config = {\r\n type,\r\n keyed: true,\r\n label: 'Checklist',\r\n group: 'selection',\r\n emptyValue: [],\r\n sanitizeValue: sanitizeMultiSelectValue,\r\n create: (options = {}) => {\r\n\r\n const defaults = {};\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n }\r\n};\r\n","import { useContext } from 'preact/hooks';\r\n\r\nimport { get } from 'min-dash';\r\n\r\nimport { FormRenderContext } from '../context';\r\n\r\nimport {\r\n useCondition,\r\n useReadonly,\r\n useService\r\n} from '../hooks';\r\n\r\nimport { findErrors } from '../../util';\r\n\r\nimport { gridColumnClasses } from './Util';\r\n\r\nconst noop = () => false;\r\n\r\n\r\nexport default function FormField(props) {\r\n const {\r\n field,\r\n onChange\r\n } = props;\r\n\r\n const formFields = useService('formFields'),\r\n form = useService('form');\r\n\r\n const {\r\n data,\r\n errors,\r\n properties\r\n } = form._getState();\r\n\r\n const {\r\n Element,\r\n Empty,\r\n Column\r\n } = useContext(FormRenderContext);\r\n\r\n const FormFieldComponent = formFields.get(field.type);\r\n\r\n if (!FormFieldComponent) {\r\n throw new Error(`cannot render field <${field.type}>`);\r\n }\r\n\r\n const value = get(data, field._path);\r\n\r\n const fieldErrors = findErrors(errors, field._path);\r\n\r\n const readonly = useReadonly(field, properties);\r\n\r\n // add precedence: global readonly > form field disabled\r\n const disabled = !properties.readOnly && (\r\n properties.disabled || field.disabled || false\r\n );\r\n\r\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\r\n\r\n if (hidden) {\r\n return <Empty />;\r\n }\r\n\r\n return (\r\n <Column field={ field } class={ gridColumnClasses(field) }>\r\n <Element class=\"fjs-element\" field={ field }>\r\n <FormFieldComponent\r\n { ...props }\r\n disabled={ disabled }\r\n errors={ fieldErrors }\r\n onChange={ disabled || readonly ? noop : onChange }\r\n readonly={ readonly }\r\n value={ value } />\r\n </Element>\r\n </Column>\r\n );\r\n}\r\n","import { useContext } from 'preact/hooks';\r\n\r\nimport useService from '../../hooks/useService';\r\n\r\nimport FormField from '../FormField';\r\n\r\nimport { FormRenderContext } from '../../context';\r\n\r\nexport default function Default(props) {\r\n const {\r\n Children,\r\n Empty,\r\n Row\r\n } = useContext(FormRenderContext);\r\n\r\n const { field } = props;\r\n\r\n const { id, components = [] } = field;\r\n\r\n const formLayouter = useService('formLayouter');\r\n const formFieldRegistry = useService('formFieldRegistry');\r\n const rows = formLayouter.getRows(id);\r\n\r\n return <Children class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\r\n {\r\n\r\n rows.map(row => {\r\n const {\r\n components = []\r\n } = row;\r\n\r\n if (!components.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Row row={ row } class=\"fjs-layout-row cds--row\">\r\n {\r\n components.map(id => {\r\n\r\n const childField = formFieldRegistry.get(id);\r\n\r\n if (!childField) {\r\n return null;\r\n }\r\n\r\n return (\r\n <FormField\r\n { ...props }\r\n key={ childField.id }\r\n field={ childField } />\r\n );\r\n })\r\n }\r\n </Row>\r\n );\r\n })\r\n }\r\n {\r\n components.length ? null : <Empty />\r\n }\r\n </Children>;\r\n}\r\n\r\nDefault.config = {\r\n type: 'default',\r\n keyed: false,\r\n label: null,\r\n group: null,\r\n create: (options = {}) => ({\r\n components: [],\r\n ...options\r\n })\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"14\",\n height: \"15\",\n viewBox: \"0 0 28 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n d: \"M19 2H9V0H7v2H2a2 2 0 00-2 2v24a2 2 0 002 2h24a2 2 0 002-2V4a2 2 0 00-2-2h-5V0h-2v2zM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7zm-5 4v17h24V11H2z\"\n})));","import classNames from 'classnames';\r\nimport { isString } from 'min-dash';\r\n\r\nexport default function InputAdorner(props) {\r\n\r\n const {\r\n pre,\r\n post,\r\n rootRef,\r\n inputRef,\r\n children,\r\n disabled,\r\n readonly,\r\n hasErrors\r\n } = props;\r\n\r\n const onAdornmentClick = () => inputRef && inputRef.current && inputRef.current.focus();\r\n\r\n return <div class={ classNames('fjs-input-group', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }, { 'hasErrors': hasErrors }) } ref={ rootRef }>\r\n { pre && <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={ onAdornmentClick }> { isString(pre) ? <span class=\"fjs-input-adornment-text\">{ pre }</span> : pre } </span> }\r\n { children }\r\n { post && <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={ onAdornmentClick }> { isString(post) ? <span class=\"fjs-input-adornment-text\">{ post }</span> : post } </span> }\r\n </div>;\r\n\r\n}","import CalendarIcon from '../icons/Calendar.svg';\r\nimport flatpickr from 'flatpickr';\r\n\r\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\r\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\r\nimport { prefixId } from '../../Util';\r\nimport InputAdorner from './InputAdorner';\r\nimport Label from '../../Label';\r\n\r\nexport default function Datepicker(props) {\r\n\r\n const {\r\n id,\r\n label,\r\n collapseLabelOnEmpty,\r\n formId,\r\n required,\r\n disabled,\r\n disallowPassedDates,\r\n date,\r\n readonly,\r\n setDate\r\n } = props;\r\n\r\n const dateInputRef = useRef();\r\n const focusScopeRef = useRef();\r\n const [ flatpickrInstance, setFlatpickrInstance ] = useState(null);\r\n const [ isInputDirty, setIsInputDirty ] = useState(false);\r\n\r\n const [ forceFocusCalendar, setForceFocusCalendar ] = useState(false);\r\n\r\n // shorts the date value back to the source\r\n useEffect(() => {\r\n\r\n if (!flatpickrInstance || !flatpickrInstance.config) return;\r\n\r\n flatpickrInstance.setDate(date, true);\r\n setIsInputDirty(false);\r\n\r\n }, [ flatpickrInstance, date.toString() ]);\r\n\r\n useEffect(() => {\r\n\r\n if (!forceFocusCalendar) return;\r\n\r\n focusRelevantFlatpickerDay(flatpickrInstance);\r\n setForceFocusCalendar(false);\r\n\r\n }, [ flatpickrInstance, forceFocusCalendar ]);\r\n\r\n // setup flatpickr instance\r\n useEffect(() => {\r\n\r\n let config = {\r\n allowInput: true,\r\n dateFormat: 'm/d/Y',\r\n static: true,\r\n clickOpens: false,\r\n\r\n // TODO: support dates prior to 1900 (https://github.com/bpmn-io/form-js/issues/533)\r\n minDate: disallowPassedDates ? 'today' : '01/01/1900',\r\n errorHandler: () => { /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */ }\r\n };\r\n\r\n const instance = flatpickr(dateInputRef.current, config);\r\n\r\n setFlatpickrInstance(instance);\r\n\r\n const onCalendarFocusOut = (e) => {\r\n if (!instance.calendarContainer.contains(e.relatedTarget) && e.relatedTarget != dateInputRef.current) {\r\n instance.close();\r\n }\r\n };\r\n\r\n // remove dirty tag to have mouse day selection prioritize input blur\r\n const onCalendarMouseDown = (e) => {\r\n if (e.target.classList.contains('flatpickr-day')) {\r\n setIsInputDirty(false);\r\n }\r\n };\r\n\r\n // when the dropdown of the datepickr opens, we register a few event handlers to re-implement some of the\r\n // flatpicker logic that was lost when setting allowInput to true\r\n instance.config.onOpen = [\r\n () => instance.calendarContainer.addEventListener('focusout', onCalendarFocusOut),\r\n () => instance.calendarContainer.addEventListener('mousedown', onCalendarMouseDown),\r\n ];\r\n\r\n instance.config.onClose = [\r\n () => instance.calendarContainer.removeEventListener('focusout', onCalendarFocusOut),\r\n () => instance.calendarContainer.removeEventListener('mousedown', onCalendarMouseDown),\r\n ];\r\n\r\n }, [ disallowPassedDates ]);\r\n\r\n // onChange is updated dynamically, so not to re-render the flatpicker every time it changes\r\n useEffect(() => {\r\n\r\n if (!flatpickrInstance || !flatpickrInstance.config) return;\r\n\r\n flatpickrInstance.config.onChange = [ (date) => setDate(new Date(date)), () => setIsInputDirty(false) ];\r\n\r\n }, [ flatpickrInstance, setDate ]);\r\n\r\n const onInputKeyDown = useCallback(\r\n (e) => {\r\n\r\n if (!flatpickrInstance) return;\r\n\r\n if (e.code === 'Escape') {\r\n flatpickrInstance.close();\r\n }\r\n\r\n if (e.code === 'ArrowDown') {\r\n\r\n if (isInputDirty) {\r\n\r\n // trigger an enter keypress to submit the new input, then focus calendar day on the next render cycle\r\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\r\n setIsInputDirty(false);\r\n setForceFocusCalendar(true);\r\n }\r\n else {\r\n\r\n // focus calendar day immediately\r\n focusRelevantFlatpickerDay(flatpickrInstance);\r\n }\r\n\r\n e.preventDefault();\r\n }\r\n\r\n if (e.code === 'Enter') {\r\n setIsInputDirty(false);\r\n }\r\n },\r\n [ flatpickrInstance, isInputDirty ],\r\n );\r\n\r\n const onInputFocus = useCallback(\r\n (e) => {\r\n\r\n if (!flatpickrInstance || focusScopeRef.current.contains(e.relatedTarget) || readonly) return;\r\n\r\n flatpickrInstance.open();\r\n }, [ flatpickrInstance, readonly ]\r\n );\r\n\r\n // simulate an enter press on blur to make sure the date value is submitted in all scenarios\r\n const onInputBlur = useCallback(\r\n (e) => {\r\n\r\n if (!isInputDirty || e.relatedTarget && e.relatedTarget.classList.contains('flatpickr-day')) return;\r\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\r\n setIsInputDirty(false);\r\n\r\n }, [ isInputDirty ]\r\n );\r\n\r\n const fullId = `${prefixId(id, formId)}--date`;\r\n\r\n return <div class=\"fjs-datetime-subsection\">\r\n <Label\r\n id={ fullId }\r\n label={ label }\r\n collapseOnEmpty={ collapseLabelOnEmpty }\r\n required={ required } />\r\n <InputAdorner\r\n pre={ <CalendarIcon /> }\r\n disabled={ disabled }\r\n readonly={ readonly }\r\n rootRef={ focusScopeRef }\r\n inputRef={ dateInputRef }>\r\n <div class=\"fjs-datepicker\" style={ { width: '100%' } }>\r\n <input ref={ dateInputRef }\r\n type=\"text\"\r\n id={ fullId }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n placeholder=\"mm/dd/yyyy\"\r\n autoComplete=\"off\"\r\n onFocus={ onInputFocus }\r\n onKeyDown={ onInputKeyDown }\r\n onMouseDown={ () => !flatpickrInstance.isOpen && !readonly && flatpickrInstance.open() }\r\n onBlur={ onInputBlur }\r\n onInput={ () => setIsInputDirty(true) }\r\n data-input\r\n aria-describedby={ props['aria-describedby'] } />\r\n </div>\r\n </InputAdorner>\r\n </div>\r\n ;\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 28 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M13 14.41L18.59 20 20 18.59l-5-5.01V5h-2v9.41z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n d: \"M6.222 25.64A14 14 0 1021.778 2.36 14 14 0 006.222 25.64zM7.333 4.023a12 12 0 1113.334 19.955A12 12 0 017.333 4.022z\"\n})));","import classNames from 'classnames';\r\nimport { useState, useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\r\nimport useKeyDownAction from '../../../hooks/useKeyDownAction';\r\n\r\nconst DEFAULT_LABEL_GETTER = (value) => value;\r\nconst NOOP = () => {};\r\n\r\nexport default function DropdownList(props) {\r\n\r\n const {\r\n listenerElement = window,\r\n values = [],\r\n getLabel = DEFAULT_LABEL_GETTER,\r\n onValueSelected = NOOP,\r\n height = 235,\r\n emptyListMessage = 'No results',\r\n initialFocusIndex = 0\r\n } = props;\r\n\r\n const [ mouseControl, setMouseControl ] = useState(false);\r\n const [ focusedValueIndex, setFocusedValueIndex ] = useState(initialFocusIndex);\r\n const [ smoothScrolling, setSmoothScrolling ] = useState(false);\r\n const dropdownContainer = useRef();\r\n const mouseScreenPos = useRef();\r\n\r\n const focusedItem = useMemo(() => values.length ? values[focusedValueIndex] : null, [ focusedValueIndex, values ]);\r\n\r\n const changeFocusedValueIndex = useCallback((delta) => {\r\n setFocusedValueIndex(x => Math.min(Math.max(0, x + delta), values.length - 1));\r\n }, [ values.length ]);\r\n\r\n useEffect(() => {\r\n if (focusedValueIndex === 0) return;\r\n\r\n if (!focusedValueIndex || !values.length) {\r\n setFocusedValueIndex(0);\r\n }\r\n else if (focusedValueIndex >= values.length) {\r\n setFocusedValueIndex(values.length - 1);\r\n }\r\n }, [ focusedValueIndex, values.length ]);\r\n\r\n useKeyDownAction('ArrowUp', () => {\r\n if (values.length) {\r\n changeFocusedValueIndex(-1);\r\n setMouseControl(false);\r\n }\r\n }, listenerElement);\r\n\r\n useKeyDownAction('ArrowDown', () => {\r\n if (values.length) {\r\n changeFocusedValueIndex(1);\r\n setMouseControl(false);\r\n }\r\n }, listenerElement);\r\n\r\n useKeyDownAction('Enter', () => {\r\n if (focusedItem) {\r\n onValueSelected(focusedItem);\r\n }\r\n }, listenerElement);\r\n\r\n useEffect(() => {\r\n const individualEntries = dropdownContainer.current.children;\r\n if (individualEntries.length && !mouseControl) {\r\n individualEntries[focusedValueIndex].scrollIntoView({ block: 'nearest', inline: 'nearest' });\r\n }\r\n }, [ focusedValueIndex, mouseControl ]);\r\n\r\n useEffect(() => {\r\n setSmoothScrolling(true);\r\n }, []);\r\n\r\n const onMouseMovedInKeyboardMode = (event, valueIndex) => {\r\n\r\n const userMovedCursor = !mouseScreenPos.current || mouseScreenPos.current.x !== event.screenX && mouseScreenPos.current.y !== event.screenY;\r\n\r\n if (userMovedCursor) {\r\n mouseScreenPos.current = { x: event.screenX, y: event.screenY };\r\n setMouseControl(true);\r\n setFocusedValueIndex(valueIndex);\r\n }\r\n\r\n };\r\n\r\n return <div\r\n ref={ dropdownContainer }\r\n tabIndex={ -1 }\r\n class=\"fjs-dropdownlist\"\r\n onMouseDown={ (e) => e.preventDefault() }\r\n style={ { maxHeight: height, scrollBehavior: smoothScrolling ? 'smooth' : 'auto' } }>\r\n {\r\n values.length > 0 && values.map((v, i) => {\r\n return (\r\n <div\r\n class={ classNames('fjs-dropdownlist-item', { 'focused': focusedValueIndex === i }) }\r\n onMouseMove={ mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, i) }\r\n onMouseEnter={ mouseControl ? () => setFocusedValueIndex(i) : undefined }\r\n onMouseDown={ (e) => onValueSelected(v) }>\r\n {getLabel(v)}\r\n </div>\r\n );\r\n })\r\n }\r\n {\r\n !values.length && <div class=\"fjs-dropdownlist-empty\">{ emptyListMessage }</div>\r\n }\r\n </div>;\r\n}","import ClockIcon from '../icons/Clock.svg';\r\n\r\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport { prefixId } from '../../Util';\r\nimport DropdownList from './DropdownList';\r\nimport { isNumber } from 'min-dash';\r\nimport InputAdorner from './InputAdorner';\r\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\r\nimport Label from '../../Label';\r\n\r\nexport default function Timepicker(props) {\r\n\r\n const {\r\n id,\r\n label,\r\n collapseLabelOnEmpty,\r\n formId,\r\n required,\r\n disabled,\r\n readonly,\r\n use24h = false,\r\n timeInterval,\r\n time,\r\n setTime\r\n } = props;\r\n\r\n const safeTimeInterval = useMemo(() => {\r\n\r\n const allowedIntervals = [ 1, 5, 10, 15, 30, 60 ];\r\n\r\n if (allowedIntervals.includes(timeInterval)) {\r\n return timeInterval;\r\n }\r\n\r\n return 15;\r\n\r\n }, [ timeInterval ]);\r\n\r\n const timeInputRef = useRef();\r\n const [ dropdownIsOpen, setDropdownIsOpen ] = useState(false);\r\n const useDropdown = useMemo(() => safeTimeInterval !== 1, [ safeTimeInterval ]);\r\n\r\n const [ rawValue, setRawValue ] = useState('');\r\n\r\n // populates values from source\r\n useEffect(() => {\r\n if (time === null) {\r\n setRawValue('');\r\n return;\r\n }\r\n\r\n const intervalAdjustedTime = time - (time % safeTimeInterval);\r\n setRawValue(formatTime(use24h, intervalAdjustedTime));\r\n\r\n if (intervalAdjustedTime != time) {\r\n setTime(intervalAdjustedTime);\r\n }\r\n\r\n }, [ time, setTime, use24h, safeTimeInterval ]);\r\n\r\n const propagateRawToMinute = useCallback((newRawValue) => {\r\n\r\n const localRawValue = newRawValue || rawValue;\r\n\r\n // If no raw value exists, set the minute to null\r\n if (!localRawValue) {\r\n setTime(null);\r\n return;\r\n }\r\n\r\n const minutes = parseInputTime(localRawValue);\r\n\r\n // If raw string couldn't be parsed, clean everything up\r\n if (!isNumber(minutes)) {\r\n setRawValue('');\r\n setTime(null);\r\n return;\r\n }\r\n\r\n // Enforce the minutes to match the timeInterval\r\n const correctedMinutes = minutes - (minutes % safeTimeInterval);\r\n\r\n // Enforce the raw text to be formatted properly\r\n setRawValue(formatTime(use24h, correctedMinutes));\r\n setTime(correctedMinutes);\r\n\r\n }, [ rawValue, safeTimeInterval, use24h, setTime ]);\r\n\r\n const timeOptions = useMemo(() => {\r\n\r\n const minutesInDay = 24 * 60;\r\n const intervalCount = Math.floor(minutesInDay / safeTimeInterval);\r\n return [ ...Array(intervalCount).keys() ].map(intervalIndex => formatTime(use24h, intervalIndex * safeTimeInterval));\r\n\r\n }, [ safeTimeInterval, use24h ]);\r\n\r\n const initialFocusIndex = useMemo(() => {\r\n\r\n // if there are no options, there will not be any focusing\r\n if (!timeOptions || !safeTimeInterval) return null;\r\n\r\n // if there is a set minute value, we focus it in the dropdown\r\n if (time) return time / safeTimeInterval;\r\n\r\n const cacheTime = parseInputTime(rawValue);\r\n\r\n // if there is a valid value in the input cache, we try and focus close to it\r\n if (cacheTime) {\r\n const flooredCacheTime = cacheTime - cacheTime % safeTimeInterval;\r\n return flooredCacheTime / safeTimeInterval;\r\n }\r\n\r\n // If there is no set value, simply focus the middle of the dropdown (12:00)\r\n return Math.floor(timeOptions.length / 2);\r\n\r\n }, [ rawValue, time, safeTimeInterval, timeOptions ]);\r\n\r\n const onInputKeyDown = (e) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n break;\r\n case 'ArrowDown':\r\n useDropdown && setDropdownIsOpen(true);\r\n e.preventDefault();\r\n break;\r\n case 'Escape':\r\n useDropdown && setDropdownIsOpen(false);\r\n break;\r\n case 'Enter':\r\n !dropdownIsOpen && propagateRawToMinute();\r\n break;\r\n }\r\n };\r\n\r\n const onInputBlur = (e) => {\r\n setDropdownIsOpen(false);\r\n propagateRawToMinute();\r\n };\r\n\r\n const onDropdownValueSelected = (value) => {\r\n setDropdownIsOpen(false);\r\n propagateRawToMinute(value);\r\n };\r\n\r\n const fullId = `${prefixId(id, formId)}--time`;\r\n\r\n return <div class=\"fjs-datetime-subsection\">\r\n <Label\r\n id={ fullId }\r\n label={ label }\r\n collapseOnEmpty={ collapseLabelOnEmpty }\r\n required={ required } />\r\n <InputAdorner\r\n pre={ <ClockIcon /> }\r\n inputRef={ timeInputRef }\r\n disabled={ disabled }\r\n readonly={ readonly }>\r\n <div class=\"fjs-timepicker fjs-timepicker-anchor\">\r\n <input ref={ timeInputRef }\r\n type=\"text\"\r\n id={ fullId }\r\n class=\"fjs-input\"\r\n value={ rawValue }\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n placeholder={ use24h ? 'hh:mm' : 'hh:mm ?m' }\r\n autoComplete=\"off\"\r\n onFocus={ () => !readonly && useDropdown && setDropdownIsOpen(true) }\r\n onClick={ () => !readonly && useDropdown && setDropdownIsOpen(true) }\r\n\r\n // @ts-ignore\r\n onInput={ (e) => { setRawValue(e.target.value); useDropdown && setDropdownIsOpen(false); } }\r\n onBlur={ onInputBlur }\r\n onKeyDown={ onInputKeyDown }\r\n data-input\r\n aria-describedby={ props['aria-describedby'] } />\r\n\r\n { dropdownIsOpen && <DropdownList\r\n values={ timeOptions }\r\n height={ 150 }\r\n onValueSelected={ onDropdownValueSelected }\r\n listenerElement={ timeInputRef.current }\r\n initialFocusIndex={ initialFocusIndex } /> }\r\n\r\n </div>\r\n </InputAdorner>\r\n </div>;\r\n}\r\n","import { useCallback, useContext, useMemo, useState, useEffect } from 'preact/hooks';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { set } from 'min-dash';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { DATETIME_SUBTYPES, DATETIME_SUBTYPE_PATH, DATE_LABEL_PATH } from '../../../util/constants/DatetimeConstants';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Datepicker from './parts/Datepicker';\r\nimport Timepicker from './parts/Timepicker';\r\n\r\nimport { formFieldClasses, prefixId } from '../Util';\r\nimport { sanitizeDateTimePickerValue } from '../util/sanitizerUtil';\r\nimport { parseIsoTime, serializeDate, serializeDateTime, serializeTime } from '../util/dateTimeUtil';\r\n\r\nconst type = 'datetime';\r\n\r\nexport default function Datetime(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n onChange,\r\n readonly,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n dateLabel,\r\n timeLabel,\r\n validate = {},\r\n subtype,\r\n use24h,\r\n disallowPassedDates,\r\n timeInterval,\r\n timeSerializingFormat\r\n } = field;\r\n\r\n const { required } = validate;\r\n const { formId } = useContext(FormContext);\r\n\r\n const getNullDateTime = () => ({ date: new Date(Date.parse(null)), time: null });\r\n\r\n const [ dateTime, setDateTime ] = useState(getNullDateTime());\r\n const [ dateTimeUpdateRequest, setDateTimeUpdateRequest ] = useState(null);\r\n\r\n const isValidDate = (date) => date && !isNaN(date.getTime());\r\n const isValidTime = (time) => !isNaN(parseInt(time));\r\n\r\n const useDatePicker = useMemo(() => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\r\n const useTimePicker = useMemo(() => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\r\n\r\n useEffect(() => {\r\n\r\n let { date, time } = getNullDateTime();\r\n\r\n switch (subtype) {\r\n case DATETIME_SUBTYPES.DATE: {\r\n date = new Date(Date.parse(value));\r\n break;\r\n }\r\n case DATETIME_SUBTYPES.TIME: {\r\n time = parseIsoTime(value);\r\n break;\r\n }\r\n case DATETIME_SUBTYPES.DATETIME: {\r\n date = new Date(Date.parse(value));\r\n time = isValidDate(date) ? 60 * date.getHours() + date.getMinutes() : null;\r\n break;\r\n }}\r\n\r\n setDateTime({ date, time });\r\n\r\n }, [ subtype, value ]);\r\n\r\n const computeAndSetState = useCallback(({ date, time }) => {\r\n\r\n let newDateTimeValue = null;\r\n\r\n if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\r\n newDateTimeValue = serializeDate(date);\r\n }\r\n else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\r\n newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\r\n }\r\n else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\r\n newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\r\n }\r\n\r\n onChange({ value: newDateTimeValue, field });\r\n\r\n }, [ field, onChange, subtype, timeSerializingFormat ]);\r\n\r\n useEffect(() => {\r\n if (dateTimeUpdateRequest) {\r\n if (dateTimeUpdateRequest.refreshOnly) {\r\n computeAndSetState(dateTime);\r\n }\r\n else {\r\n const newDateTime = { ...dateTime, ...dateTimeUpdateRequest };\r\n setDateTime(newDateTime);\r\n computeAndSetState(newDateTime);\r\n }\r\n setDateTimeUpdateRequest(null);\r\n }\r\n }, [ computeAndSetState, dateTime, dateTimeUpdateRequest ]);\r\n\r\n useEffect(() => {\r\n setDateTimeUpdateRequest({ refreshOnly: true });\r\n }, [ timeSerializingFormat ]);\r\n\r\n const allErrors = useMemo(() => {\r\n if (required || subtype !== DATETIME_SUBTYPES.DATETIME) return errors;\r\n const isOnlyOneFieldSet = (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) || (!isValidDate(dateTime.date) && isValidTime(dateTime.time));\r\n return isOnlyOneFieldSet ? [ 'Date and time must both be entered.', ...errors ] : errors;\r\n }, [ required, subtype, dateTime, errors ]);\r\n\r\n const setDate = useCallback((date) => {\r\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, date } : { date }));\r\n }, []);\r\n\r\n const setTime = useCallback((time) => {\r\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, time } : { time }));\r\n }, []);\r\n\r\n const errorMessageId = allErrors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n const datePickerProps = {\r\n id,\r\n label: dateLabel,\r\n collapseLabelOnEmpty: !timeLabel,\r\n formId,\r\n required,\r\n disabled,\r\n disallowPassedDates,\r\n date: dateTime.date,\r\n readonly,\r\n setDate,\r\n 'aria-describedby': errorMessageId\r\n };\r\n const timePickerProps = {\r\n id,\r\n label: timeLabel,\r\n collapseLabelOnEmpty: !dateLabel,\r\n formId,\r\n required,\r\n disabled,\r\n readonly,\r\n use24h,\r\n timeInterval,\r\n time: dateTime.time,\r\n setTime,\r\n 'aria-describedby': errorMessageId\r\n };\r\n\r\n return <div class={ formFieldClasses(type, { errors: allErrors, disabled, readonly }) }>\r\n <div class={ classNames('fjs-vertical-group') }>\r\n { useDatePicker && <Datepicker { ...datePickerProps } /> }\r\n { useTimePicker && useDatePicker && <div class=\"fjs-datetime-separator\" /> }\r\n { useTimePicker && <Timepicker { ...timePickerProps } /> }\r\n </div>\r\n <Description description={ description } />\r\n <Errors errors={ allErrors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nDatetime.config = {\r\n type,\r\n keyed: true,\r\n label: 'Date time',\r\n group: 'basic-input',\r\n emptyValue: null,\r\n sanitizeValue: sanitizeDateTimePickerValue,\r\n create: (options = {}) => {\r\n const defaults = {};\r\n set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\r\n set(defaults, DATE_LABEL_PATH, 'Date');\r\n\r\n return { ...defaults, ...options };\r\n }\r\n};\r\n","/**\r\n * This file must not be changed or exchanged.\r\n *\r\n * @see http://bpmn.io/license for more information.\r\n */\r\nimport { Fragment } from 'preact';\r\nimport { useState } from 'preact/hooks';\r\nimport { createPortal } from 'preact/compat';\r\n\r\nfunction Logo() {\r\n return <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14.02 5.57\" width=\"53\" height=\"21\" style=\"vertical-align:middle\"><path fill=\"currentColor\" d=\"M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z\" /><path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\" /></svg>;\r\n}\r\n\r\nfunction Lightbox(props) {\r\n const { open } = props;\r\n\r\n if (!open) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div class=\"fjs-powered-by-lightbox\" style=\"z-index: 100; position: fixed; top: 0; left: 0;right: 0; bottom: 0\">\r\n <div class=\"backdrop\" style=\"width: 100%; height: 100%; background: rgba(40 40 40 / 20%)\" onClick={ props.onBackdropClick }></div>\r\n <div class=\"notice\" style=\"position: absolute; left: 50%; top: 40%; transform: translate(-50%); width: 260px; padding: 10px; background: white; box-shadow: 0 1px 4px rgba(0 0 0 / 30%); font-family: Helvetica, Arial, sans-serif; font-size: 14px; display: flex; line-height: 1.3\">\r\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" style=\"margin: 15px 20px 15px 10px; align-self: center; color: var(--cds-icon-primary, #404040)\">\r\n <Logo />\r\n </a>\r\n <span>\r\n Web-based tooling for BPMN, DMN, and forms\r\n powered by <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">bpmn.io</a>.\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Link(props) {\r\n return (\r\n <div class=\"fjs-powered-by fjs-form-field\" style=\"text-align: right\">\r\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" class=\"fjs-powered-by-link\" title=\"Powered by bpmn.io\" style=\"color: var(--cds-text-primary, #404040)\" onClick={ props.onClick }><Logo /></a>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function PoweredBy(props) {\r\n\r\n const [ open, setOpen ] = useState(false);\r\n\r\n function toggleOpen(open) {\r\n return (event) => {\r\n event.preventDefault();\r\n\r\n setOpen(open);\r\n };\r\n }\r\n\r\n return (\r\n <Fragment>\r\n {\r\n createPortal(\r\n <Lightbox open={ open } onBackdropClick={ toggleOpen(false) } />,\r\n document.body\r\n )\r\n }\r\n <Link onClick={ toggleOpen(true) } />\r\n </Fragment>\r\n );\r\n}","import FormField from './FormField';\r\n\r\nimport PoweredBy from './PoweredBy';\r\n\r\nimport useService from '../hooks/useService';\r\n\r\nconst noop = () => {};\r\n\r\nexport default function FormComponent(props) {\r\n const form = useService('form');\r\n\r\n const { schema, properties } = form._getState();\r\n\r\n const { ariaLabel } = properties;\r\n\r\n const {\r\n onSubmit = noop,\r\n onReset = noop,\r\n onChange = noop,\r\n } = props;\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n onSubmit();\r\n };\r\n\r\n const handleReset = (event) => {\r\n event.preventDefault();\r\n\r\n onReset();\r\n };\r\n\r\n return (\r\n <form\r\n class=\"fjs-form\"\r\n onSubmit={ handleSubmit }\r\n onReset={ handleReset }\r\n aria-label={ ariaLabel }\r\n noValidate\r\n >\r\n <FormField\r\n field={ schema }\r\n onChange={ onChange }\r\n />\r\n\r\n <PoweredBy />\r\n </form>\r\n );\r\n}","const NODE_TYPE_TEXT = 3,\r\n NODE_TYPE_ELEMENT = 1;\r\n\r\nconst ALLOWED_NODES = [\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'span',\r\n 'em',\r\n 'a',\r\n 'p',\r\n 'div',\r\n 'ul',\r\n 'ol',\r\n 'li',\r\n 'hr',\r\n 'blockquote',\r\n 'img',\r\n 'pre',\r\n 'code',\r\n 'br',\r\n 'strong',\r\n 'table',\r\n 'thead',\r\n 'tbody',\r\n 'tr',\r\n 'th',\r\n 'td'\r\n];\r\n\r\nconst ALLOWED_ATTRIBUTES = [\r\n 'align',\r\n 'alt',\r\n 'class',\r\n 'href',\r\n 'id',\r\n 'name',\r\n 'rel',\r\n 'target',\r\n 'src'\r\n];\r\n\r\nconst ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\r\nconst ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape\r\nconst ATTR_WHITESPACE_PATTERN = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g; // eslint-disable-line no-control-regex\r\n\r\nconst FORM_ELEMENT = document.createElement('form');\r\n\r\n/**\r\n * Sanitize a HTML string and return the cleaned, safe version.\r\n *\r\n * @param {string} html\r\n * @return {string}\r\n */\r\n\r\n// see https://github.com/developit/snarkdown/issues/70\r\nexport function sanitizeHTML(html) {\r\n\r\n const doc = new DOMParser().parseFromString(\r\n `<!DOCTYPE html>\\n<html><body><div>${ html }`,\r\n 'text/html'\r\n );\r\n\r\n doc.normalize();\r\n\r\n const element = doc.body.firstChild;\r\n\r\n if (element) {\r\n sanitizeNode(/** @type Element */ (element));\r\n\r\n return new XMLSerializer().serializeToString(element);\r\n } else {\r\n\r\n // handle the case that document parsing\r\n // does not work at all, due to HTML gibberish\r\n return '';\r\n }\r\n}\r\n\r\n/**\r\n * Sanitizes an image source to ensure we only allow for data URI and links\r\n * that start with http(s).\r\n *\r\n * Note: Most browsers anyway do not support script execution in <img> elements.\r\n *\r\n * @param {string} src\r\n * @returns {string}\r\n */\r\nexport function sanitizeImageSource(src) {\r\n const valid = ALLOWED_IMAGE_SRC_PATTERN.test(src);\r\n\r\n return valid ? src : '';\r\n}\r\n\r\n/**\r\n * Recursively sanitize a HTML node, potentially\r\n * removing it, its children or attributes.\r\n *\r\n * Inspired by https://github.com/developit/snarkdown/issues/70\r\n * and https://github.com/cure53/DOMPurify. Simplified\r\n * for our use-case.\r\n *\r\n * @param {Element} node\r\n */\r\nfunction sanitizeNode(node) {\r\n\r\n // allow text nodes\r\n if (node.nodeType === NODE_TYPE_TEXT) {\r\n return;\r\n }\r\n\r\n // disallow all other nodes but Element\r\n if (node.nodeType !== NODE_TYPE_ELEMENT) {\r\n return node.remove();\r\n }\r\n\r\n const lcTag = node.tagName.toLowerCase();\r\n\r\n // disallow non-whitelisted tags\r\n if (!ALLOWED_NODES.includes(lcTag)) {\r\n return node.remove();\r\n }\r\n\r\n const attributes = node.attributes;\r\n\r\n // clean attributes\r\n for (let i = attributes.length; i--;) {\r\n const attribute = attributes[i];\r\n\r\n const name = attribute.name;\r\n const lcName = name.toLowerCase();\r\n\r\n // normalize node value\r\n const value = attribute.value.trim();\r\n\r\n node.removeAttribute(name);\r\n\r\n const valid = isValidAttribute(lcTag, lcName, value);\r\n\r\n if (valid) {\r\n node.setAttribute(name, value);\r\n }\r\n\r\n }\r\n\r\n // force noopener on target=\"_blank\" links\r\n if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\r\n node.setAttribute('rel', 'noopener');\r\n }\r\n\r\n for (let i = node.childNodes.length; i--;) {\r\n sanitizeNode(/** @type Element */ (node.childNodes[i]));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Validates attributes for validity.\r\n *\r\n * @param {string} lcTag\r\n * @param {string} lcName\r\n * @param {string} value\r\n * @return {boolean}\r\n */\r\nfunction isValidAttribute(lcTag, lcName, value) {\r\n\r\n // disallow most attributes based on whitelist\r\n if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\r\n return false;\r\n }\r\n\r\n // disallow \"DOM clobbering\" / polution of document and wrapping form elements\r\n if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\r\n return false;\r\n }\r\n\r\n if (lcName === 'target' && value !== '_blank') {\r\n return false;\r\n }\r\n\r\n // allow valid url links only\r\n if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"64\",\n height: \"64\",\n viewBox: \"0 0 1280 1280\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: \"2\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e5e9ed\",\n d: \"M0 0h1280v1280H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\",\n fill: \"#cad3db\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M810 770H480v-60l100-170 130 170 100-65v125z\",\n fill: \"#cad3db\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"750\",\n cy: \"550\",\n r: \"50\",\n fill: \"#cad3db\",\n transform: \"translate(10 10)\"\n})));","import { useContext, useMemo } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { useExpressionEvaluation } from '../../hooks';\r\nimport { sanitizeImageSource } from '../Sanitizer';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\r\n\r\nconst type = 'image';\r\n\r\n\r\nexport default function Image(props) {\r\n const {\r\n field\r\n } = props;\r\n\r\n const {\r\n alt,\r\n id,\r\n source\r\n } = field;\r\n\r\n\r\n const evaluatedImageSource = useExpressionEvaluation(source);\r\n\r\n const safeSource = useMemo(() => sanitizeImageSource(evaluatedImageSource), [ evaluatedImageSource ]);\r\n\r\n const altText = useExpressionEvaluation(alt);\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <div class=\"fjs-image-container\">\r\n {\r\n safeSource &&\r\n <img\r\n alt={ altText }\r\n src={ safeSource }\r\n class=\"fjs-image\"\r\n id={ prefixId(id, formId) } />\r\n }\r\n { !safeSource &&\r\n <div class=\"fjs-image-placeholder\">\r\n <ImagePlaceholder alt=\"This is an image placeholder\" />\r\n </div>\r\n }\r\n </div>\r\n </div>;\r\n}\r\n\r\nImage.config = {\r\n type,\r\n keyed: false,\r\n label: 'Image view',\r\n group: 'presentation',\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"8\",\n height: \"8\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: \".5\",\n d: \"M7.75 1.336L4 6.125.258 1.335 0 1.54l4 5.125L8 1.54zm0 0\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"8\",\n height: \"8\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: \".5\",\n d: \"M7.75 6.664L4 1.875.258 6.665 0 6.46l4-5.125L8 6.46zm0 0\"\n})));","import Big from 'big.js';\r\nimport classNames from 'classnames';\r\nimport { useCallback, useContext, useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport InputAdorner from './parts/InputAdorner';\r\n\r\nimport AngelDownIcon from './icons/AngelDown.svg';\r\nimport AngelUpIcon from './icons/AngelUp.svg';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nimport {\r\n isNullEquivalentValue,\r\n isValidNumber,\r\n willKeyProduceValidNumber\r\n} from '../util/numberFieldUtil';\r\n\r\nconst type = 'number';\r\n\r\n\r\nexport default function Numberfield(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value,\r\n readonly,\r\n onChange\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n appearance = {},\r\n validate = {},\r\n decimalDigits,\r\n serializeToString = false,\r\n increment: incrementValue\r\n } = field;\r\n\r\n const {\r\n prefixAdorner,\r\n suffixAdorner\r\n } = appearance;\r\n\r\n const { required } = validate;\r\n\r\n const inputRef = useRef();\r\n\r\n const [ stringValueCache, setStringValueCache ] = useState('');\r\n\r\n // checks whether the value currently in the form data is practically different from the one in the input field cache\r\n // this allows us to guarantee the field always displays valid form data, but without auto-simplifying values like 1.000 to 1\r\n const cacheValueMatchesState = useMemo(() => Numberfield.config.sanitizeValue({ value, formField: field }) === Numberfield.config.sanitizeValue({ value: stringValueCache, formField: field }), [ stringValueCache, value, field ]);\r\n\r\n const displayValue = useMemo(() => {\r\n\r\n if (value === 'NaN') return 'NaN';\r\n if (stringValueCache === '-') return '-';\r\n return cacheValueMatchesState ? stringValueCache : ((value || value === 0) ? Big(value).toFixed() : '');\r\n\r\n }, [ stringValueCache, value, cacheValueMatchesState ]);\r\n\r\n const arrowIncrementValue = useMemo(() => {\r\n\r\n if (incrementValue) return Big(incrementValue);\r\n if (decimalDigits) return Big(`1e-${decimalDigits}`);\r\n return Big('1');\r\n\r\n }, [ decimalDigits, incrementValue ]);\r\n\r\n\r\n const setValue = useCallback((stringValue) => {\r\n\r\n if (isNullEquivalentValue(stringValue)) {\r\n setStringValueCache('');\r\n onChange({ field, value: null });\r\n return;\r\n }\r\n\r\n // treat commas as dots\r\n stringValue = stringValue.replaceAll(',', '.');\r\n\r\n if (stringValue === '-') {\r\n setStringValueCache('-');\r\n return;\r\n }\r\n\r\n if (isNaN(Number(stringValue))) {\r\n setStringValueCache('NaN');\r\n onChange({ field, value: 'NaN' });\r\n return;\r\n }\r\n\r\n setStringValueCache(stringValue);\r\n onChange({ field, value: serializeToString ? stringValue : Number(stringValue) });\r\n\r\n }, [ field, onChange, serializeToString ]);\r\n\r\n const increment = () => {\r\n if (readonly) {\r\n return;\r\n }\r\n\r\n const base = isValidNumber(value) ? Big(value) : Big(0);\r\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\r\n\r\n // note: toFixed() behaves differently in big.js\r\n setValue(stepFlooredValue.plus(arrowIncrementValue).toFixed());\r\n };\r\n\r\n const decrement = () => {\r\n if (readonly) {\r\n return;\r\n }\r\n\r\n const base = isValidNumber(value) ? Big(value) : Big(0);\r\n const offset = base.mod(arrowIncrementValue);\r\n\r\n if (offset.cmp(0) === 0) {\r\n\r\n // if we're already on a valid step, decrement\r\n setValue(base.minus(arrowIncrementValue).toFixed());\r\n }\r\n else {\r\n\r\n // otherwise floor to the step\r\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\r\n setValue(stepFlooredValue.toFixed());\r\n }\r\n };\r\n\r\n const onKeyDown = (e) => {\r\n\r\n // delete the NaN state all at once on backspace or delete\r\n if (value === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\r\n setValue(null);\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.code === 'ArrowUp') {\r\n increment();\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.code === 'ArrowDown') {\r\n decrement();\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n };\r\n\r\n // intercept key presses which would lead to an invalid number\r\n const onKeyPress = (e) => {\r\n const caretIndex = inputRef.current.selectionStart;\r\n const selectionWidth = inputRef.current.selectionStart - inputRef.current.selectionEnd;\r\n const previousValue = inputRef.current.value;\r\n\r\n if (!willKeyProduceValidNumber(e.key, previousValue, caretIndex, selectionWidth, decimalDigits)) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n <InputAdorner disabled={ disabled } readonly={ readonly } pre={ prefixAdorner } post={ suffixAdorner }>\r\n <div class={ classNames('fjs-vertical-group', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }, { 'hasErrors': errors.length }) }>\r\n <input\r\n ref={ inputRef }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ prefixId(id, formId) }\r\n onKeyDown={ onKeyDown }\r\n onKeyPress={ onKeyPress }\r\n\r\n // @ts-ignore\r\n onInput={ (e) => setValue(e.target.value) }\r\n type=\"text\"\r\n autoComplete=\"off\"\r\n step={ arrowIncrementValue }\r\n value={ displayValue }\r\n aria-describedby={ errorMessageId } />\r\n <div class={ classNames('fjs-number-arrow-container', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) }>\r\n { /* we're disabling tab navigation on both buttons to imitate the native browser behavior of input[type='number'] increment arrows */ }\r\n <button\r\n class=\"fjs-number-arrow-up\"\r\n type=\"button\"\r\n aria-label=\"Increment\"\r\n onClick={ () => increment() }\r\n tabIndex={ -1 }><AngelUpIcon /></button>\r\n <div class=\"fjs-number-arrow-separator\" />\r\n <button\r\n class=\"fjs-number-arrow-down\"\r\n type=\"button\"\r\n aria-label=\"Decrement\"\r\n onClick={ () => decrement() }\r\n tabIndex={ -1 }><AngelDownIcon /></button>\r\n </div>\r\n </div>\r\n </InputAdorner>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nNumberfield.config = {\r\n type,\r\n keyed: true,\r\n label: 'Number',\r\n group: 'basic-input',\r\n emptyValue: null,\r\n sanitizeValue: ({ value, formField }) => {\r\n\r\n // null state is allowed\r\n if (isNullEquivalentValue(value)) return null;\r\n\r\n // if data cannot be parsed as a valid number, go into invalid NaN state\r\n if (!isValidNumber(value)) return 'NaN';\r\n\r\n // otherwise parse to formatting type\r\n return formField.serializeToString ? value.toString() : Number(value);\r\n },\r\n create: (options = {}) => ({\r\n ...options\r\n })\r\n};\r\n","import { useContext } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\r\nimport classNames from 'classnames';\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'radio';\r\n\r\n\r\nexport default function Radio(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = (v) => {\r\n props.onChange({\r\n field,\r\n value: v\r\n });\r\n };\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n label={ label }\r\n required={ required } />\r\n {\r\n loadState == LOAD_STATES.LOADED && options.map((option, index) => {\r\n return (\r\n <Label\r\n id={ prefixId(`${ id }-${ index }`, formId) }\r\n key={ `${ id }-${ index }` }\r\n label={ option.label }\r\n class={ classNames({ 'fjs-checked': option.value === value }) }\r\n required={ false }>\r\n <input\r\n checked={ option.value === value }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ prefixId(`${ id }-${ index }`, formId) }\r\n type=\"radio\"\r\n onClick={ () => onChange(option.value) }\r\n aria-describedby={ errorMessageId } />\r\n </Label>\r\n );\r\n })\r\n }\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nRadio.config = {\r\n type,\r\n keyed: true,\r\n label: 'Radio',\r\n group: 'selection',\r\n emptyValue: null,\r\n sanitizeValue: sanitizeSingleSelectValue,\r\n create: (options = {}) => {\r\n const defaults = {};\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n }\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"8\",\n height: \"8\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: \".5\",\n d: \"M4 3.766L7.43.336l.234.234L4.234 4l3.43 3.43-.234.234L4 4.234.57 7.664.336 7.43 3.766 4 .336.57.57.336zm0 0\"\n})));","import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../../hooks/useValuesAsync';\r\n\r\nimport { FormContext } from '../../../context';\r\n\r\nimport XMarkIcon from '../icons/XMark.svg';\r\nimport AngelDownIcon from '../icons/AngelDown.svg';\r\nimport AngelUpIcon from '../icons/AngelUp.svg';\r\n\r\nimport {\r\n prefixId,\r\n} from '../../Util';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport DropdownList from './DropdownList';\r\n\r\nexport default function SearchableSelect(props) {\r\n const {\r\n id,\r\n disabled,\r\n errors,\r\n field,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const { formId } = useContext(FormContext);\r\n const [ filter, setFilter ] = useState('');\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const [ shouldApplyFilter, setShouldApplyFilter ] = useState(true);\r\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\r\n const searchbarRef = useRef();\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\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\r\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\r\n\r\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\r\n\r\n // whenever we change the underlying value, set the label to it\r\n useEffect(() => { setFilter(valueLabel); }, [ valueLabel ]);\r\n\r\n const filteredOptions = useMemo(() => {\r\n\r\n if (loadState === LOAD_STATES.LOADED) {\r\n return shouldApplyFilter ? options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase()))) : options;\r\n }\r\n\r\n return [];\r\n\r\n }, [ filter, loadState, options, shouldApplyFilter ]);\r\n\r\n const onChange = ({ target }) => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(true);\r\n setShouldApplyFilter(true);\r\n setFilter(target.value || '');\r\n };\r\n\r\n const setValue = useCallback((option) => {\r\n setFilter(option && option.label || '');\r\n props.onChange({ value: option && option.value || null, field });\r\n }, [ field, props ]);\r\n\r\n const onInputKeyDown = useCallback((keyDownEvent) => {\r\n\r\n switch (keyDownEvent.key) {\r\n case 'ArrowUp':\r\n keyDownEvent.preventDefault();\r\n break;\r\n case 'ArrowDown': {\r\n if (!isDropdownExpanded) {\r\n setIsDropdownExpanded(true);\r\n setShouldApplyFilter(false);\r\n }\r\n\r\n keyDownEvent.preventDefault();\r\n break;\r\n }\r\n case 'Escape':\r\n setIsEscapeClose(true);\r\n break;\r\n case 'Enter':\r\n if (isEscapeClosed) {\r\n setIsEscapeClose(false);\r\n }\r\n break;\r\n }\r\n }, [ isDropdownExpanded, isEscapeClosed ]);\r\n\r\n const displayState = useMemo(() => {\r\n const ds = {};\r\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\r\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\r\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded && !isEscapeClosed;\r\n return ds;\r\n }, [ disabled, isDropdownExpanded, isEscapeClosed, loadState, readonly, value ]);\r\n\r\n const onAngelMouseDown = useCallback((e) => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(!isDropdownExpanded);\r\n\r\n const searchbar = searchbarRef.current;\r\n isDropdownExpanded ? searchbar.blur() : searchbar.focus();\r\n\r\n e.preventDefault();\r\n\r\n }, [ isDropdownExpanded ]);\r\n\r\n return <>\r\n <div id={ prefixId(`${id}`, formId) }\r\n class={ classNames('fjs-input-group', { 'disabled': disabled, 'readonly': readonly }, { 'hasErrors': errors.length }) }>\r\n <input\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n class=\"fjs-input\"\r\n ref={ searchbarRef }\r\n id={ prefixId(`${id}-search`, formId) }\r\n onChange={ onChange }\r\n type=\"text\"\r\n value={ filter }\r\n placeholder={ 'Search' }\r\n autoComplete=\"off\"\r\n onKeyDown={ (e) => onInputKeyDown(e) }\r\n onMouseDown={ () => { setIsEscapeClose(false); setIsDropdownExpanded(true); setShouldApplyFilter(false); } }\r\n onFocus={ () => { setIsDropdownExpanded(true); setShouldApplyFilter(false); } }\r\n onBlur={ () => { setIsDropdownExpanded(false); setFilter(valueLabel); } }\r\n aria-describedby={ props['aria-describedby'] } />\r\n { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.preventDefault(); } }><XMarkIcon /> </span> }\r\n <span class=\"fjs-select-arrow\" onMouseDown={ (e) => onAngelMouseDown(e) }>{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\r\n </div>\r\n <div class=\"fjs-select-anchor\">\r\n { displayState.displayDropdown && <DropdownList\r\n values={ filteredOptions }\r\n getLabel={ (o) => o.label }\r\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\r\n listenerElement={ searchbarRef.current } />}\r\n </div>\r\n </>;\r\n}\r\n","import { useCallback, useContext, useMemo, useRef, useState } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../../hooks/useValuesAsync';\r\n\r\nimport { FormContext } from '../../../context';\r\n\r\nimport XMarkIcon from '../icons/XMark.svg';\r\nimport AngelDownIcon from '../icons/AngelDown.svg';\r\nimport AngelUpIcon from '../icons/AngelUp.svg';\r\n\r\nimport {\r\n prefixId,\r\n} from '../../Util';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport DropdownList from './DropdownList';\r\nimport { findIndex } from 'min-dash';\r\n\r\nexport default function SimpleSelect(props) {\r\n const {\r\n id,\r\n disabled,\r\n errors,\r\n field,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const { formId } = useContext(FormContext);\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const selectRef = useRef();\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\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\r\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\r\n\r\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\r\n\r\n const setValue = useCallback((option) => {\r\n props.onChange({ value: option && option.value || null, field });\r\n }, [ field, props ]);\r\n\r\n const displayState = useMemo(() => {\r\n const ds = {};\r\n ds.componentReady = !disabled && !readonly && loadState === LOAD_STATES.LOADED;\r\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\r\n ds.displayDropdown = !disabled && !readonly && isDropdownExpanded;\r\n return ds;\r\n }, [ disabled, isDropdownExpanded, loadState, value ]);\r\n\r\n const onMouseDown = useCallback((e) => {\r\n const select = selectRef.current;\r\n setIsDropdownExpanded(!isDropdownExpanded);\r\n\r\n if (isDropdownExpanded) {\r\n select.blur();\r\n }\r\n else {\r\n select.focus();\r\n }\r\n\r\n e.preventDefault();\r\n }, [ isDropdownExpanded ]);\r\n\r\n const initialFocusIndex = useMemo(() => value && findIndex(options, (o) => o.value === value) || 0, [ options, value ]);\r\n\r\n return <>\r\n <div ref={ selectRef }\r\n id={ prefixId(`${id}`, formId) }\r\n class={ classNames('fjs-input-group', { disabled, readonly }, { 'hasErrors': errors.length }) }\r\n onFocus={ () => setIsDropdownExpanded(true) }\r\n onBlur={ () => setIsDropdownExpanded(false) }\r\n onMouseDown={ onMouseDown }>\r\n <div class={ classNames('fjs-select-display', { 'fjs-select-placeholder' : !value }) } id={ prefixId(`${id}-display`, formId) }>{ valueLabel || 'Select' }</div>\r\n { !disabled && <input\r\n id={ prefixId(`${id}-search`, formId) }\r\n class=\"fjs-select-hidden-input\"\r\n value={ valueLabel }\r\n onFocus={ () => !readonly && setIsDropdownExpanded(true) }\r\n onBlur={ () => !readonly && setIsDropdownExpanded(false) }\r\n aria-describedby={ props['aria-describedby'] } />\r\n }\r\n { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.stopPropagation(); } }><XMarkIcon /></span> }\r\n <span class=\"fjs-select-arrow\">{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\r\n </div>\r\n <div class=\"fjs-select-anchor\">\r\n {displayState.displayDropdown && <DropdownList\r\n values={ options }\r\n getLabel={ (o) => o.label }\r\n initialFocusIndex={ initialFocusIndex }\r\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\r\n listenerElement={ selectRef.current } />}\r\n </div>\r\n </>;\r\n}\r\n","import { useContext, useMemo } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\nimport SearchableSelect from './parts/SearchableSelect';\r\nimport SimpleSelect from './parts/SimpleSelect';\r\n\r\nconst type = 'select';\r\n\r\nexport default function Select(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n onChange,\r\n readonly,\r\n value\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n searchable = false,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n const selectProps = useMemo(() => ({\r\n id,\r\n disabled,\r\n errors,\r\n field,\r\n value,\r\n onChange,\r\n readonly,\r\n 'aria-describedby': errorMessageId,\r\n }), [ disabled, errors, field, id, value, onChange, readonly, errorMessageId ]);\r\n\r\n return <div\r\n class={ formFieldClasses(type, { errors, disabled, readonly }) }\r\n onKeyDown={\r\n (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n >\r\n <Label\r\n id={ prefixId(`${id}-search`, formId) }\r\n label={ label }\r\n required={ required } />\r\n { searchable ? <SearchableSelect { ...selectProps } /> : <SimpleSelect { ...selectProps } /> }\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nSelect.config = {\r\n type,\r\n keyed: true,\r\n label: 'Select',\r\n group: 'selection',\r\n emptyValue: null,\r\n sanitizeValue: sanitizeSingleSelectValue,\r\n create: (options = {}) => {\r\n\r\n const defaults = {};\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n }\r\n};\r\n","import { useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\r\n\r\nimport { FormContext } from '../../context';\r\nimport classNames from 'classnames';\r\n\r\nimport XMarkIcon from './icons/XMark.svg';\r\n\r\nimport DropdownList from './parts/DropdownList';\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'taglist';\r\n\r\nexport default function Taglist(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n readonly,\r\n value : values = []\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n const [ filter, setFilter ] = useState('');\r\n const [ filteredOptions, setFilteredOptions ] = useState([]);\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const [ hasOptionsLeft, setHasOptionsLeft ] = useState(true);\r\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\r\n const searchbarRef = useRef();\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\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\r\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\r\n\r\n // Usage of stringify is necessary here because we want this effect to only trigger when there is a value change to the array\r\n useEffect(() => {\r\n if (loadState === LOAD_STATES.LOADED) {\r\n setFilteredOptions(options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase())) && !values.includes(o.value)));\r\n }\r\n else {\r\n setFilteredOptions([]);\r\n }\r\n }, [ filter, JSON.stringify(values), options, loadState ]);\r\n\r\n useEffect(() => {\r\n setHasOptionsLeft(options.length > values.length);\r\n }, [ options.length, values.length ]);\r\n\r\n const onFilterChange = ({ target }) => {\r\n setIsEscapeClose(false);\r\n setFilter(target.value);\r\n };\r\n\r\n const selectValue = (value) => {\r\n if (filter) {\r\n setFilter('');\r\n }\r\n\r\n // Ensure values cannot be double selected due to latency\r\n if (values.at(-1) === value) {\r\n return;\r\n }\r\n\r\n props.onChange({ value: [ ...values, value ], field });\r\n };\r\n\r\n const deselectValue = (value) => {\r\n props.onChange({ value: values.filter((v) => v != value), field });\r\n };\r\n\r\n const onInputKeyDown = (e) => {\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n case 'ArrowDown':\r\n\r\n // We do not want the cursor to seek in the search field when we press up and down\r\n e.preventDefault();\r\n break;\r\n case 'Backspace':\r\n if (!filter && values.length) {\r\n deselectValue(values[values.length - 1]);\r\n }\r\n break;\r\n case 'Escape':\r\n setIsEscapeClose(true);\r\n break;\r\n case 'Enter':\r\n if (isEscapeClosed) {\r\n setIsEscapeClose(false);\r\n }\r\n break;\r\n }\r\n };\r\n\r\n const onBlur = () => {\r\n setIsDropdownExpanded(false);\r\n setFilter('');\r\n };\r\n\r\n const onTagRemoveClick = (event, value) => {\r\n const { target } = event;\r\n\r\n deselectValue(value);\r\n\r\n // restore focus if there is no next sibling to focus\r\n const nextTag = target.closest('.fjs-taglist-tag').nextSibling;\r\n if (!nextTag) {\r\n searchbarRef.current.focus();\r\n }\r\n };\r\n\r\n const shouldDisplayDropdown = useMemo(() => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed, [ disabled, isDropdownExpanded, isEscapeClosed, loadState ]);\r\n\r\n return <div\r\n class={ formFieldClasses(type, { errors, disabled, readonly }) }\r\n onKeyDown={\r\n (event) => {\r\n if (event.key === 'Enter') {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n >\r\n <Label\r\n label={ label }\r\n required={ required }\r\n id={ prefixId(`${id}-search`, formId) } />\r\n <div class={ classNames('fjs-taglist', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) }>\r\n { loadState === LOAD_STATES.LOADED &&\r\n <div class=\"fjs-taglist-tags\">\r\n {\r\n values.map((v) => {\r\n return (\r\n <div class={ classNames('fjs-taglist-tag', { 'fjs-disabled': disabled, 'fjs-readonly': readonly }) } onMouseDown={ (e) => e.preventDefault() }>\r\n <span class=\"fjs-taglist-tag-label\">\r\n {valueToOptionMap[v] ? valueToOptionMap[v].label : `unexpected value{${v}}`}\r\n </span>\r\n { (!disabled && !readonly) && <button\r\n type=\"button\"\r\n title=\"Remove tag\"\r\n class=\"fjs-taglist-tag-remove\"\r\n onClick={ (event) => onTagRemoveClick(event, v) }>\r\n\r\n <XMarkIcon />\r\n </button> }\r\n </div>\r\n );\r\n })\r\n }\r\n </div>\r\n }\r\n <input\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n class=\"fjs-taglist-input\"\r\n ref={ searchbarRef }\r\n id={ prefixId(`${id}-search`, formId) }\r\n onChange={ onFilterChange }\r\n type=\"text\"\r\n value={ filter }\r\n placeholder={ (disabled || readonly) ? undefined : 'Search' }\r\n autoComplete=\"off\"\r\n onKeyDown={ onInputKeyDown }\r\n onMouseDown={ () => setIsEscapeClose(false) }\r\n onFocus={ () => !readonly && setIsDropdownExpanded(true) }\r\n onBlur={ () => { !readonly && onBlur(); } }\r\n aria-describedby={ errorMessageId } />\r\n </div>\r\n <div class=\"fjs-taglist-anchor\">\r\n { shouldDisplayDropdown && <DropdownList\r\n values={ filteredOptions }\r\n getLabel={ (o) => o.label }\r\n onValueSelected={ (o) => selectValue(o.value) }\r\n emptyListMessage={ hasOptionsLeft ? 'No results' : 'All values selected' }\r\n listenerElement={ searchbarRef.current } /> }\r\n </div>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nTaglist.config = {\r\n type,\r\n keyed: true,\r\n label: 'Tag list',\r\n group: 'selection',\r\n emptyValue: [],\r\n sanitizeValue: sanitizeMultiSelectValue,\r\n create: (options = {}) => {\r\n\r\n const defaults = {};\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n }\r\n};\r\n","import Markup from 'preact-markup';\r\nimport { useMemo } from 'preact/hooks';\r\nimport { useService, useTemplateEvaluation } from '../../hooks';\r\nimport { sanitizeHTML } from '../Sanitizer';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nconst type = 'text';\r\n\r\n\r\nexport default function Text(props) {\r\n\r\n const form = useService('form');\r\n const { textLinkTarget } = form._getState().properties;\r\n\r\n const { field, disableLinks } = props;\r\n\r\n const { text = '', strict = false } = field;\r\n\r\n const markdownRenderer = useService('markdownRenderer');\r\n\r\n // feelers => pure markdown\r\n const markdown = useTemplateEvaluation(text, { debug: true, strict });\r\n\r\n // markdown => safe HTML\r\n const safeHtml = useMemo(() => {\r\n const html = markdownRenderer.render(markdown);\r\n return sanitizeHTML(html);\r\n }, [ markdownRenderer, markdown ]);\r\n\r\n const OverridenTargetLink = useMemo(() => BuildOverridenTargetLink(textLinkTarget), [ textLinkTarget ]);\r\n\r\n const componentOverrides = useMemo(() => {\r\n\r\n if (disableLinks) {\r\n return { 'a': DisabledLink };\r\n }\r\n\r\n if (textLinkTarget) {\r\n return { 'a': OverridenTargetLink };\r\n }\r\n\r\n return {};\r\n }, [ disableLinks, OverridenTargetLink, textLinkTarget ]);\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <Markup markup={ safeHtml } components={ componentOverrides } trim={ false } />\r\n </div>;\r\n}\r\n\r\nText.config = {\r\n type,\r\n keyed: false,\r\n label: 'Text view',\r\n group: 'presentation',\r\n create: (options = {}) => ({\r\n text: '# Text',\r\n ...options\r\n })\r\n};\r\n\r\nfunction BuildOverridenTargetLink(target) {\r\n return function({ children, ...rest }) {\r\n return <a { ...rest } target={ target }>{ children }</a>;\r\n };\r\n}\r\n\r\nfunction DisabledLink({ children, ...rest }) { return <a { ...rest } class=\"fjs-disabled-link\" tabIndex={ -1 }>{ children }</a>; }\r\n","import { isArray, isObject } from 'min-dash';\r\nimport { useContext } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport InputAdorner from './parts/InputAdorner';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'textfield';\r\n\r\n\r\nexport default function Textfield(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n readonly,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n appearance = {},\r\n validate = {}\r\n } = field;\r\n\r\n const {\r\n prefixAdorner,\r\n suffixAdorner\r\n } = appearance;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.value\r\n });\r\n };\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n <InputAdorner disabled={ disabled } readonly={ readonly } pre={ prefixAdorner } post={ suffixAdorner }>\r\n <input\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n readOnly={ readonly }\r\n id={ prefixId(id, formId) }\r\n onInput={ onChange }\r\n type=\"text\"\r\n value={ value }\r\n aria-describedby={ errorMessageId } />\r\n </InputAdorner>\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nTextfield.config = {\r\n type,\r\n keyed: true,\r\n label: 'Text field',\r\n group: 'basic-input',\r\n emptyValue: '',\r\n sanitizeValue: ({ value }) => {\r\n if (isArray(value) || isObject(value)) {\r\n return '';\r\n }\r\n\r\n // sanitize newlines to spaces\r\n if (typeof value === 'string') {\r\n return value.replace(/[\\r\\n\\t]/g, ' ');\r\n }\r\n\r\n return String(value);\r\n },\r\n create: (options = {}) => ({ ...options })\r\n};\r\n","import { isArray, isObject } from 'min-dash';\r\nimport { useCallback, useContext, useEffect, useRef } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'textarea';\r\n\r\n\r\nexport default function Textarea(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n readonly,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const textareaRef = useRef();\r\n\r\n const onInput = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.value\r\n });\r\n };\r\n\r\n const autoSizeTextarea = useCallback((textarea) => {\r\n\r\n // Ensures the textarea shrinks back, and improves resizing behavior consistency\r\n textarea.style.height = '0px';\r\n\r\n const computed = window.getComputedStyle(textarea);\r\n\r\n const calculatedHeight = parseInt(computed.getPropertyValue('border-top-width'))\r\n + parseInt(computed.getPropertyValue('padding-top'))\r\n + textarea.scrollHeight\r\n + parseInt(computed.getPropertyValue('padding-bottom'))\r\n + parseInt(computed.getPropertyValue('border-bottom-width'));\r\n\r\n const minHeight = 75;\r\n const maxHeight = 350;\r\n const displayHeight = Math.max(Math.min(calculatedHeight, maxHeight), minHeight);\r\n\r\n textarea.style.height = `${displayHeight}px`;\r\n\r\n // Overflow is hidden by default to hide scrollbar flickering\r\n textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';\r\n\r\n }, [ ]);\r\n\r\n useEffect(() => {\r\n autoSizeTextarea(textareaRef.current);\r\n }, [ autoSizeTextarea, value ]);\r\n\r\n const { formId } = useContext(FormContext);\r\n const errorMessageId = errors.length === 0 ? undefined : `${prefixId(id, formId)}-error-message`;\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled, readonly }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n <textarea class=\"fjs-textarea\"\r\n disabled={ disabled }\r\n readonly={ readonly }\r\n id={ prefixId(id, formId) }\r\n onInput={ onInput }\r\n value={ value }\r\n ref={ textareaRef }\r\n aria-describedby={ errorMessageId } />\r\n <Description description={ description } />\r\n <Errors errors={ errors } id={ errorMessageId } />\r\n </div>;\r\n}\r\n\r\nTextarea.config = {\r\n type,\r\n keyed: true,\r\n label: 'Text area',\r\n group: 'basic-input',\r\n emptyValue: '',\r\n sanitizeValue: ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value),\r\n create: (options = {}) => ({ ...options })\r\n};\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M45 17a3 3 0 013 3v14a3 3 0 01-3 3H9a3 3 0 01-3-3V20a3 3 0 013-3h36zm-9 8.889H18v2.222h18v-2.222z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34 18H20a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V20a2 2 0 00-2-2zm-9 14l-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23l-9 9z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\",\n y: \"24\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\",\n y: \"12\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b\",\n y: \"12\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#b\",\n y: \"24\"\n}), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"a\",\n d: \"M18 12h-6v6h6v-6zm-6-2a2 2 0 00-2 2v6a2 2 0 002 2h6a2 2 0 002-2v-6a2 2 0 00-2-2h-6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"b\",\n d: \"M23 14.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 00-2.06 2.06v23.549a2.07 2.07 0 002.06 2.06h6.77v-1.766h-6.358a.707.707 0 01-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 01.707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.13 37.603l1.237-1.237-3.468-3.475v-5.926h-1.754v6.654l3.984 3.984z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M23.08 36.962a9.678 9.678 0 1017.883-7.408 9.678 9.678 0 00-17.882 7.408zm4.54-10.292a7.924 7.924 0 118.805 13.177A7.924 7.924 0 0127.62 26.67z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M45 16a3 3 0 013 3v16a3 3 0 01-3 3H9a3 3 0 01-3-3V19a3 3 0 013-3h36zm0 2H9a1 1 0 00-1 1v16a1 1 0 001 1h36a1 1 0 001-1V19a1 1 0 00-1-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 22a1 1 0 011-1h19a1 1 0 011 1v10a1 1 0 01-1 1H12a1 1 0 01-1-1V22z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\"\n}, props), /*#__PURE__*/React.createElement(\"rect\", {\n width: \"24\",\n height: \"4\",\n x: \"15\",\n y: \"17\",\n rx: \"1\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: \"24\",\n height: \"4\",\n x: \"15\",\n y: \"25\",\n rx: \"1\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: \"13\",\n height: \"4\",\n x: \"15\",\n y: \"33\",\n rx: \"1\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M8 33v5a1 1 0 001 1h4v2H9a3 3 0 01-3-3v-5h2zm18 6v2H15v-2h11zm13 0v2H28v-2h11zm9-6v5a3 3 0 01-3 3h-4v-2h4a1 1 0 00.993-.883L46 38v-5h2zM8 22v9H6v-9h2zm40 0v9h-2v-9h2zm-35-9v2H9a1 1 0 00-.993.883L8 16v4H6v-4a3 3 0 013-3h4zm32 0a3 3 0 013 3v4h-2v-4a1 1 0 00-.883-.993L45 15h-4v-2h4zm-6 0v2H28v-2h11zm-13 0v2H15v-2h11z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M45 16a3 3 0 013 3v16a3 3 0 01-3 3H9a3 3 0 01-3-3V19a3 3 0 013-3h36zm0 2H9a1 1 0 00-1 1v16a1 1 0 001 1h36a1 1 0 001-1V19a1 1 0 00-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n 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 110-16 8 8 0 110 16z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M45 16a3 3 0 013 3v16a3 3 0 01-3 3H9a3 3 0 01-3-3V19a3 3 0 013-3h36zm0 2H9a1 1 0 00-1 1v16a1 1 0 001 1h36a1 1 0 001-1V19a1 1 0 00-1-1zm-12 7h9l-4.5 6-4.5-6z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36l-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 012.4.14 3.42 3.42 0 011.41.55 3.47 3.47 0 011 1.14 3 3 0 01.42 1.58 3.26 3.26 0 01-1.91 2.94 3.63 3.63 0 011.91 1.22 3.28 3.28 0 01.66 2 4 4 0 01-.43 1.8 3.63 3.63 0 01-1.09 1.4 3.89 3.89 0 01-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 001.1-.49 1.41 1.41 0 00.41-1 1.49 1.49 0 00-.35-1 1.54 1.54 0 00-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 001.88-.09 1.65 1.65 0 001-.54 1.6 1.6 0 00.38-1.14 1.75 1.75 0 00-.29-1 1.69 1.69 0 00-.86-.62 9.28 9.28 0 00-2.41-.23zm19.62.92l2.65.84a5.94 5.94 0 01-2 3.29A5.74 5.74 0 0141.38 34a5.87 5.87 0 01-4.44-1.84 7.09 7.09 0 01-1.73-5A7.43 7.43 0 0137 21.87 6 6 0 0141.54 20a5.64 5.64 0 014 1.47A5.33 5.33 0 0147 24l-2.7.65a2.8 2.8 0 00-2.86-2.27A3.09 3.09 0 0039 23.42a5.31 5.31 0 00-.93 3.5 5.62 5.62 0 00.93 3.65 3 3 0 002.4 1.09 2.72 2.72 0 001.82-.66 4 4 0 001.13-2.21z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M45 16a3 3 0 013 3v16a3 3 0 01-3 3H9a3 3 0 01-3-3V19a3 3 0 013-3h36zm0 2H9a1 1 0 00-1 1v16a1 1 0 001 1h36a1 1 0 001-1V19a1 1 0 00-1-1zm-32 4v10h-2V22h2z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M45 13a3 3 0 013 3v22a3 3 0 01-3 3H9a3 3 0 01-3-3V16a3 3 0 013-3h36zm0 2H9a1 1 0 00-1 1v22a1 1 0 001 1h36a1 1 0 001-1V16a1 1 0 00-1-1zm-1.136 15.5l.849.849-6.364 6.364-.849-.849 6.364-6.364zm.264 3.5l.849.849-2.828 2.828-.849-.849L44.128 34zM13 19v10h-2V19h2z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"54\",\n height: \"54\",\n fill: \"currentcolor\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M34.636 21.91A3.818 3.818 0 1127 21.908a3.818 3.818 0 017.636 0zm-2 0A1.818 1.818 0 1129 21.908a1.818 1.818 0 013.636 0z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M15 13a2 2 0 00-2 2v24a2 2 0 002 2h24a2 2 0 002-2V15a2 2 0 00-2-2H15zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 012.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 012.411.239L39 32.73V15zM15 39v-8.754a.975.975 0 00.168-.135l5.893-5.893 6.684 6.685a1.911 1.911 0 002.41.238l2.657-1.77 6.02 6.02c.052.051.108.097.168.135V39H15z\",\n clipRule: \"evenodd\"\n})));","import ButtonIcon from './Button.svg';\r\nimport CheckboxIcon from './Checkbox.svg';\r\nimport ChecklistIcon from './Checklist.svg';\r\nimport DatetimeIcon from './Datetime.svg';\r\nimport TaglistIcon from './Taglist.svg';\r\nimport FormIcon from './Form.svg';\r\nimport ColumnsIcon from './Group.svg';\r\nimport NumberIcon from './Number.svg';\r\nimport RadioIcon from './Radio.svg';\r\nimport SelectIcon from './Select.svg';\r\nimport TextIcon from './Text.svg';\r\nimport TextfieldIcon from './Textfield.svg';\r\nimport TextareaIcon from './Textarea.svg';\r\nimport ImageIcon from './Image.svg';\r\n\r\nexport const iconsByType = (type) => {\r\n return {\r\n button: ButtonIcon,\r\n checkbox: CheckboxIcon,\r\n checklist: ChecklistIcon,\r\n columns: ColumnsIcon,\r\n datetime: DatetimeIcon,\r\n image: ImageIcon,\r\n number: NumberIcon,\r\n radio: RadioIcon,\r\n select: SelectIcon,\r\n taglist: TaglistIcon,\r\n text: TextIcon,\r\n textfield: TextfieldIcon,\r\n textarea: TextareaIcon,\r\n default: FormIcon\r\n }[type];\r\n};","import Button from './form-fields/Button';\r\nimport Checkbox from './form-fields/Checkbox';\r\nimport Checklist from './form-fields/Checklist';\r\nimport Default from './form-fields/Default';\r\nimport Datetime from './form-fields/Datetime';\r\nimport FormComponent from './FormComponent';\r\nimport Image from './form-fields/Image';\r\nimport Numberfield from './form-fields/Number';\r\nimport Radio from './form-fields/Radio';\r\nimport Select from './form-fields/Select';\r\nimport Taglist from './form-fields/Taglist';\r\nimport Text from './form-fields/Text';\r\nimport Textfield from './form-fields/Textfield';\r\nimport Textarea from './form-fields/Textarea';\r\n\r\nexport {\r\n Button,\r\n Checkbox,\r\n Checklist,\r\n Default,\r\n Datetime,\r\n FormComponent,\r\n Image,\r\n Numberfield,\r\n Radio,\r\n Select,\r\n Taglist,\r\n Text,\r\n Textfield,\r\n Textarea\r\n};\r\n\r\nexport const formFields = [\r\n Button,\r\n Checkbox,\r\n Checklist,\r\n Default,\r\n Image,\r\n Numberfield,\r\n Datetime,\r\n Radio,\r\n Select,\r\n Taglist,\r\n Text,\r\n Textfield,\r\n Textarea\r\n];\r\n\r\nexport * from './icons';","import { formFields } from './components';\r\n\r\nexport default class FormFields {\r\n constructor() {\r\n this._formFields = {};\r\n\r\n formFields.forEach((formField) => {\r\n this.register(formField.config.type, formField);\r\n });\r\n }\r\n\r\n register(type, formField) {\r\n this._formFields[ type ] = formField;\r\n }\r\n\r\n get(type) {\r\n return this._formFields[ type ];\r\n }\r\n}","import { render } from 'preact';\r\nimport { useCallback, useState } from 'preact/hooks';\r\n\r\nimport FormComponent from './components/FormComponent';\r\n\r\nimport { FormContext } from './context';\r\n\r\n/**\r\n * @typedef { { container } } Config\r\n * @typedef { import('didi').Injector } Injector\r\n * @typedef { import('../core/EventBus').default } EventBus\r\n * @typedef { import('../Form').default } Form\r\n */\r\n\r\n/**\r\n * @param {Config} config\r\n * @param {EventBus} eventBus\r\n * @param {Form} form\r\n * @param {Injector} injector\r\n */\r\nexport default function Renderer(config, eventBus, form, injector) {\r\n\r\n const App = () => {\r\n const [ state, setState ] = useState(form._getState());\r\n\r\n const formContext = {\r\n getService(type, strict = true) {\r\n return injector.get(type, strict);\r\n },\r\n formId: form._id\r\n };\r\n\r\n eventBus.on('changed', (newState) => {\r\n setState(newState);\r\n });\r\n\r\n const onChange = useCallback((update) => form._update(update), [ form ]);\r\n\r\n const { properties } = state;\r\n\r\n const { readOnly } = properties;\r\n\r\n const onSubmit = useCallback(() => {\r\n if (!readOnly) {\r\n form.submit();\r\n }\r\n }, [ form, readOnly ]);\r\n\r\n const onReset = useCallback(() => form.reset(), [ form ]);\r\n\r\n const { schema } = state;\r\n\r\n if (!schema) {\r\n return null;\r\n }\r\n\r\n return (\r\n <FormContext.Provider value={ formContext }>\r\n <FormComponent\r\n onChange={ onChange }\r\n onSubmit={ onSubmit }\r\n onReset={ onReset } />\r\n </FormContext.Provider>\r\n );\r\n };\r\n\r\n const { container } = config;\r\n\r\n eventBus.on('form.init', () => {\r\n render(<App />, container);\r\n });\r\n\r\n eventBus.on('form.destroy', () => {\r\n render(null, container);\r\n });\r\n}\r\n\r\nRenderer.$inject = [ 'config.renderer', 'eventBus', 'form', 'injector' ];","import FormFields from './FormFields';\r\nimport Renderer from './Renderer';\r\n\r\nexport { FormFields };\r\n\r\nexport * from './components';\r\nexport * from './context';\r\n\r\nexport default {\r\n __init__: [ 'formFields', 'renderer' ],\r\n formFields: [ 'type', FormFields ],\r\n renderer: [ 'type', Renderer ]\r\n};","import EventBus from './EventBus';\r\nimport Validator from './Validator';\r\nimport FormFieldRegistry from './FormFieldRegistry';\r\nimport FormLayouter from './FormLayouter';\r\n\r\nimport importModule from '../import';\r\nimport renderModule from '../render';\r\n\r\nexport { FormFieldRegistry, FormLayouter };\r\n\r\nexport default {\r\n __depends__: [ importModule, renderModule ],\r\n eventBus: [ 'type', EventBus ],\r\n formFieldRegistry: [ 'type', FormFieldRegistry ],\r\n formLayouter: [ 'type', FormLayouter ],\r\n validator: [ 'type', Validator ]\r\n};","import Ids from 'ids';\r\nimport { get, isString, set } from 'min-dash';\r\n\r\nimport ExpressionLanguageModule from './features/expression-language';\r\nimport MarkdownModule from './features/markdown';\r\n\r\nimport core from './core';\r\n\r\nimport { clone, createFormContainer, createInjector, pathStringify } from './util';\r\n\r\n/**\r\n * @typedef { import('./types').Injector } Injector\r\n * @typedef { import('./types').Data } Data\r\n * @typedef { import('./types').Errors } Errors\r\n * @typedef { import('./types').Schema } Schema\r\n * @typedef { import('./types').FormProperties } FormProperties\r\n * @typedef { import('./types').FormProperty } FormProperty\r\n * @typedef { import('./types').FormEvent } FormEvent\r\n * @typedef { import('./types').FormOptions } FormOptions\r\n *\r\n * @typedef { {\r\n * data: Data,\r\n * initialData: Data,\r\n * errors: Errors,\r\n * properties: FormProperties,\r\n * schema: Schema\r\n * } } State\r\n *\r\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\r\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\r\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\r\n */\r\n\r\nconst ids = new Ids([ 32, 36, 1 ]);\r\n\r\n/**\r\n * The form.\r\n */\r\nexport default class Form {\r\n\r\n /**\r\n * @constructor\r\n * @param {FormOptions} options\r\n */\r\n constructor(options = {}) {\r\n\r\n /**\r\n * @public\r\n * @type {OnEventType}\r\n */\r\n this.on = this._onEvent;\r\n\r\n /**\r\n * @public\r\n * @type {String}\r\n */\r\n this._id = ids.next();\r\n\r\n /**\r\n * @private\r\n * @type {Element}\r\n */\r\n this._container = createFormContainer();\r\n\r\n const {\r\n container,\r\n injector = this._createInjector(options, this._container),\r\n properties = {}\r\n } = options;\r\n\r\n /**\r\n * @private\r\n * @type {State}\r\n */\r\n this._state = {\r\n initialData: null,\r\n data: null,\r\n properties,\r\n errors: {},\r\n schema: null\r\n };\r\n\r\n this.get = injector.get;\r\n\r\n this.invoke = injector.invoke;\r\n\r\n this.get('eventBus').fire('form.init');\r\n\r\n if (container) {\r\n this.attachTo(container);\r\n }\r\n }\r\n\r\n clear() {\r\n\r\n // clear form services\r\n this._emit('diagram.clear');\r\n\r\n // clear diagram services (e.g. EventBus)\r\n this._emit('form.clear');\r\n }\r\n\r\n /**\r\n * Destroy the form, removing it from DOM,\r\n * if attached.\r\n */\r\n destroy() {\r\n\r\n // destroy form services\r\n this.get('eventBus').fire('form.destroy');\r\n\r\n // destroy diagram services (e.g. EventBus)\r\n this.get('eventBus').fire('diagram.destroy');\r\n\r\n this._detach(false);\r\n }\r\n\r\n /**\r\n * Open a form schema with the given initial data.\r\n *\r\n * @param {Schema} schema\r\n * @param {Data} [data]\r\n *\r\n * @return Promise<{ warnings: Array<any> }>\r\n */\r\n importSchema(schema, data = {}) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.clear();\r\n\r\n const {\r\n schema: importedSchema,\r\n data: initializedData,\r\n warnings\r\n } = this.get('importer').importSchema(schema, data);\r\n\r\n this._setState({\r\n data: initializedData,\r\n errors: {},\r\n schema: importedSchema,\r\n initialData: clone(initializedData)\r\n });\r\n\r\n this._emit('import.done', { warnings });\r\n\r\n return resolve({ warnings });\r\n } catch (error) {\r\n this._emit('import.done', {\r\n error,\r\n warnings: error.warnings || []\r\n });\r\n\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Submit the form, triggering all field validations.\r\n *\r\n * @returns { { data: Data, errors: Errors } }\r\n */\r\n submit() {\r\n\r\n const {\r\n properties\r\n } = this._getState();\r\n\r\n if (properties.readOnly || properties.disabled) {\r\n throw new Error('form is read-only');\r\n }\r\n\r\n const data = this._getSubmitData();\r\n\r\n const errors = this.validate();\r\n const filteredErrors = this._applyConditions(errors, data);\r\n\r\n const result = {\r\n data,\r\n errors: filteredErrors\r\n };\r\n\r\n this._emit('submit', result);\r\n\r\n return result;\r\n }\r\n\r\n reset() {\r\n this._emit('reset');\r\n\r\n this._setState({\r\n data: clone(this._state.initialData),\r\n errors: {}\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Errors}\r\n */\r\n validate() {\r\n const formFieldRegistry = this.get('formFieldRegistry'),\r\n validator = this.get('validator');\r\n\r\n const { data } = this._getState();\r\n\r\n const errors = formFieldRegistry.getAll().reduce((errors, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n if (disabled) {\r\n return errors;\r\n }\r\n\r\n const value = get(data, _path);\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n return set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n }, /** @type {Errors} */ ({}));\r\n\r\n this._setState({ errors });\r\n\r\n return errors;\r\n }\r\n\r\n /**\r\n * @param {Element|string} parentNode\r\n */\r\n attachTo(parentNode) {\r\n if (!parentNode) {\r\n throw new Error('parentNode required');\r\n }\r\n\r\n this.detach();\r\n\r\n if (isString(parentNode)) {\r\n parentNode = document.querySelector(parentNode);\r\n }\r\n\r\n const container = this._container;\r\n\r\n parentNode.appendChild(container);\r\n\r\n this._emit('attach');\r\n }\r\n\r\n detach() {\r\n this._detach();\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {boolean} [emit]\r\n */\r\n _detach(emit = true) {\r\n const container = this._container,\r\n parentNode = container.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n if (emit) {\r\n this._emit('detach');\r\n }\r\n\r\n parentNode.removeChild(container);\r\n }\r\n\r\n /**\r\n * @param {FormProperty} property\r\n * @param {any} value\r\n */\r\n setProperty(property, value) {\r\n const properties = set(this._getState().properties, [ property ], value);\r\n\r\n this._setState({ properties });\r\n }\r\n\r\n /**\r\n * @param {FormEvent} type\r\n * @param {Function} handler\r\n */\r\n off(type, handler) {\r\n this.get('eventBus').off(type, handler);\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {FormOptions} options\r\n * @param {Element} container\r\n *\r\n * @returns {Injector}\r\n */\r\n _createInjector(options, container) {\r\n const {\r\n additionalModules = [],\r\n modules = this._getModules()\r\n } = options;\r\n\r\n const config = {\r\n renderer: {\r\n container\r\n }\r\n };\r\n\r\n return createInjector([\r\n { config: [ 'value', config ] },\r\n { form: [ 'value', this ] },\r\n core,\r\n ...modules,\r\n ...additionalModules\r\n ]);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _emit(type, data) {\r\n this.get('eventBus').fire(type, data);\r\n }\r\n\r\n /**\r\n * @internal\r\n *\r\n * @param { { add?: boolean, field: any, remove?: number, value?: any } } update\r\n */\r\n _update(update) {\r\n const {\r\n field,\r\n value\r\n } = update;\r\n\r\n const { _path } = field;\r\n\r\n let {\r\n data,\r\n errors\r\n } = this._getState();\r\n\r\n const validator = this.get('validator');\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n set(data, _path, value);\r\n\r\n set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n\r\n this._setState({\r\n data: clone(data),\r\n errors: clone(errors)\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getState() {\r\n return this._state;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _setState(state) {\r\n this._state = {\r\n ...this._state,\r\n ...state\r\n };\r\n\r\n this._emit('changed', this._getState());\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getModules() {\r\n return [\r\n ExpressionLanguageModule,\r\n MarkdownModule\r\n ];\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _onEvent(type, priority, handler) {\r\n this.get('eventBus').on(type, priority, handler);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getSubmitData() {\r\n\r\n const formFieldRegistry = this.get('formFieldRegistry');\r\n const formData = this._getState().data;\r\n\r\n const submitData = formFieldRegistry.getAll().reduce((previous, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n // do not submit disabled form fields\r\n if (disabled || !_path) {\r\n return previous;\r\n }\r\n\r\n const value = get(formData, _path);\r\n\r\n return {\r\n ...previous,\r\n [ _path[ 0 ] ]: value\r\n };\r\n }, {});\r\n\r\n const filteredSubmitData = this._applyConditions(submitData, formData);\r\n\r\n return filteredSubmitData;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _applyConditions(toFilter, data) {\r\n const conditionChecker = this.get('conditionChecker');\r\n return conditionChecker.applyConditions(toFilter, data);\r\n }\r\n}\r\n","import Form from './Form';\r\n\r\nexport { FormFieldRegistry, FormLayouter } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\nexport * from './features';\r\n\r\nconst schemaVersion = 9;\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","parseExpressions","parseUnaryTests","simpleExpressionTree","_buildSimpleFeelStructureTree","_unfoldVariables","node","name","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","variableName","children","reduce","acc","child","concat","root","index","accessors","_deconstructPathExpression","initialDepth","accessorDepthInfos","previous","current","extractedVariables","Set","nodeAccessors","i","currentAccessor","depthOffsets","accumulator","offset","map","depthInfo","filter","some","add","parts","push","reverse","parseTree","stack","iterate","enter","nodeRepresentation","type","slice","to","leave","result","pop","parent","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_","variables","context","debug","strict","buildDebugString","err","evaluateFeelers","feelersParser","parse","buildSimpleTree","_traverse","n","content","loopExpression","childResults","ConditionChecker","formFieldRegistry","_formFieldRegistry","applyConditions","properties","conditions","_getConditions","newProperties","key","condition","shouldRemove","_checkHideCondition","check","unaryTest","hide","formFields","getAll","formField","conditional","__init__","expressionLanguage","templating","conditionChecker","showdown","setFlavor","MarkdownRenderer","_converter","Converter","render","markdown","makeHtml","markdownRenderer","FN_REF","DEFAULT_PRIORITY","prototype","EventBus","_listeners","on","_destroy","events","priority","callback","that","isArray","isFunction","isNumber","actualCallback","bind","self","forEach","e","_addListener","next","once","wrappedCallback","__isTomb","apply","arguments","off","event","_removeListener","createEvent","InternalEvent","init","firstListener","returnValue","args","call","originalType","_invokeListeners","undefined","defaultPrevented","handleError","listener","cancelBubble","_invokeListener","invokeFunction","stopPropagation","preventDefault","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","assign","fn","countDecimals","number","num","Big","toString","toFixed","split","isValidNumber","isNaN","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","replace","isFirstDot","isFirstMinus","keypressIsNumeric","dotIndex","indexOf","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","EMAIL_PATTERN","PHONE_PATTERN","Validator","validateField","field","validate","errors","increment","bigValue","bigIncrement","mod","cmp","minus","nextValue","plus","pattern","RegExp","required","isUncheckedCheckbox","isUnsetValue","isNil","isEmptyMultiselect","min","max","trim","minLength","maxLength","validationType","FormFieldRegistry","_formFields","clear","_ids","Ids","_keys","id","remove","get","values","FormLayouter","_rows","addRow","formFieldId","row","rowsPerComponent","find","r","rows","getRow","allRows","getRowForField","components","getRows","rowsForField","nextRowId","nextPrefixed","calculateLayout","rowsInOrder","groupByRow","entries","c","ids","groupBy","layout","formRows","flatten","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","VALUES_SOURCES","STATIC","INPUT","VALUES_SOURCE_DEFAULT","VALUES_SOURCES_LABELS","VALUES_SOURCES_PATHS","VALUES_SOURCES_DEFAULTS","label","getValuesSource","source","createInjector","bootstrapModules","injector","Injector","createFormContainer","prefix","container","document","createElement","classList","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","findErrors","path","pathStringify","isRequired","pathParse","parseInt","pathsEqual","a","b","every","join","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","stringify","getSchemaVariables","schema","component","valuesKey","conditionVariables","prop","property","expressionVariables","templateVariables","Importer","formLayouter","_formLayouter","importSchema","warnings","importedSchema","importFormField","initializedData","initializeFieldValues","parentId","_parent","assigned","claim","_path","importFormFields","defaultValue","config","fieldConfig","valueData","isUndefined","sanitizeValue","initializedFieldValue","emptyValue","importer","formFieldClasses","disabled","readonly","classNames","gridColumnClasses","columns","prefixId","formId","Button","props","action","_jsx","keyed","group","create","FormRenderContext","createContext","Empty","Children","class","Element","Row","Column","getService","FormContext","useService","useContext","useFilteredFormData","initialData","_getState","useMemo","newData","useCondition","filteredData","useExpressionEvaluation","formData","useKeyDownAction","targetKey","listenerElement","window","downHandler","useEffect","addEventListener","removeEventListener","useReadonly","readOnly","useTemplateEvaluation","useSingleLineTemplateEvaluation","evaluatedTemplate","Description","description","evaluatedDescription","Errors","Label","collapseOnEmpty","evaluatedLabel","_jsxs","Checkbox","onChange","target","checked","errorMessageId","getValuesData","normalizeValuesData","valuesData","_isValueSomething","v","_normalizeValueData","_isAllowedValue","_isReadableType","LOAD_STATES","LOADING","LOADED","ERROR","staticValues","valuesGetter","setValuesGetter","useState","state","keyedValues","buildErrorState","buildLoadedState","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","view","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","offsetString","inboundOffset","serializeDate","date","d","month","getMonth","day","getDate","year","getFullYear","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","padStart","sanitizeDateTimePickerValue","subtype","sanitizeSingleSelectValue","validValues","sanitizeMultiSelectValue","Checklist","toggleCheckbox","newValue","x","loadState","useValuesAsync","defaults","noop","FormField","form","FormFieldComponent","fieldErrors","hidden","Default","childField","_createElement","_extends","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","Datepicker","collapseLabelOnEmpty","disallowPassedDates","setDate","dateInputRef","useRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","allowInput","dateFormat","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","contains","relatedTarget","close","onCalendarMouseDown","onOpen","onClose","onInputKeyDown","useCallback","dispatchEvent","onInputFocus","onInputBlur","fullId","width","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","height","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","individualEntries","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","valueIndex","userMovedCursor","screenX","y","screenY","maxHeight","scrollBehavior","Timepicker","timeInterval","setTime","safeTimeInterval","allowedIntervals","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","intervalIndex","cacheTime","flooredCacheTime","onDropdownValueSelected","Datetime","dateLabel","timeLabel","getNullDateTime","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","isValidDate","isValidTime","useDatePicker","useTimePicker","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","set","Logo","Lightbox","onBackdropClick","Link","onClick","PoweredBy","setOpen","toggleOpen","createPortal","body","FormComponent","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","element","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","lcTag","tagName","attributes","attribute","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Image","alt","evaluatedImageSource","safeSource","altText","Numberfield","appearance","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","decrement","onKeyDown","onKeyPress","selectionStart","selectionEnd","Radio","option","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","shouldApplyFilter","setShouldApplyFilter","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","o","valueLabel","filteredOptions","keyDownEvent","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","_Fragment","SimpleSelect","selectRef","onMouseDown","select","findIndex","Select","searchable","selectProps","Taglist","setFilteredOptions","hasOptionsLeft","setHasOptionsLeft","onFilterChange","selectValue","at","deselectValue","onBlur","onTagRemoveClick","nextTag","closest","nextSibling","shouldDisplayDropdown","Text","textLinkTarget","disableLinks","text","safeHtml","OverridenTargetLink","BuildOverridenTargetLink","componentOverrides","DisabledLink","rest","Textfield","isObject","String","Textarea","textareaRef","onInput","autoSizeTextarea","textarea","style","computed","getComputedStyle","calculatedHeight","getPropertyValue","scrollHeight","minHeight","displayHeight","overflow","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","ColumnsIcon","datetime","DatetimeIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","SelectIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","default","FormIcon","FormFields","register","Renderer","App","setState","formContext","_id","newState","update","_update","submit","reset","renderer","__depends__","importModule","renderModule","validator","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","_setState","_getSubmitData","filteredErrors","_applyConditions","parentNode","detach","appendChild","emit","removeChild","setProperty","handler","additionalModules","modules","_getModules","core","ExpressionLanguageModule","MarkdownModule","submitData","filteredSubmitData","toFilter","schemaVersion","createForm","then"],"mappings":";;;;;;;;;;;;;;;AAEO,MAAMA,6BAA6B,GAAG,CAACC,UAAU,EAAEC,WAAW,EAAEC,OAAO,GAAG,EAAE,KAAK;EAEtF,MAAM;AACJC,IAAAA,KAAK,GAAG,CAAC;AACTC,IAAAA,qBAAqB,GAAG,EAAC;AAC3B,GAAC,GAAGF,OAAO,CAAA;AAEX,EAAA,IAAI,CAAC,CAAE,YAAY,EAAE,WAAW,CAAE,CAACG,QAAQ,CAACJ,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;AAEnE,EAAA,MAAMK,IAAI,GAAGL,WAAW,KAAK,YAAY,GAAGM,gBAAgB,CAACP,UAAU,CAAC,GAAGQ,eAAe,CAACR,UAAU,CAAC,CAAA;AAEtG,EAAA,MAAMS,oBAAoB,GAAGC,6BAA6B,CAACJ,IAAI,EAAEN,UAAU,CAAC,CAAA;AAE5E,EAAA,OAAQ,SAASW,gBAAgB,CAACC,IAAI,EAAE;AAEtC,IAAA,IAAIA,IAAI,CAACC,IAAI,KAAK,gBAAgB,EAAE;MAElC,IAAIC,MAAM,CAACC,IAAI,CAACX,qBAAqB,CAAC,CAACY,MAAM,KAAK,CAAC,EAAE;AACnD,QAAA,OAAOb,KAAK,KAAK,CAAC,GAAG,CAAEc,2BAA2B,CAACL,IAAI,EAAE,CAAC,CAAC,CAAE,GAAG,EAAG,CAAA;AACrE,OAAA;;AAEA;AACA,MAAA,OAAOM,KAAK,CAACC,IAAI,CAACC,0BAA0B,CAACR,IAAI,EAAET,KAAK,EAAEC,qBAAqB,CAAC,CAAC,CAAA;AACnF,KAAA;AAEA,IAAA,IAAID,KAAK,KAAK,CAAC,IAAIS,IAAI,CAACC,IAAI,KAAK,cAAc,EAAE,OAAO,CAAED,IAAI,CAACS,YAAY,CAAE,CAAA;;AAE7E;IACA,IAAIT,IAAI,CAACU,QAAQ,EAAE;MACjB,OAAOV,IAAI,CAACU,QAAQ,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;QAC1C,OAAOD,GAAG,CAACE,MAAM,CAACf,gBAAgB,CAACc,KAAK,CAAC,CAAC,CAAA;OAC3C,EAAE,EAAE,CAAC,CAAA;AACR,KAAA;AAEA,IAAA,OAAO,EAAE,CAAA;GACV,CAAEhB,oBAAoB,CAAC,CAAA;AAE1B,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,2BAA2B,GAAG,CAACU,IAAI,EAAEC,KAAK,KAAK;AACnD,EAAA,MAAMC,SAAS,GAAGC,0BAA0B,CAACH,IAAI,CAAC,CAAA;AAClD,EAAA,OAAOE,SAAS,CAACD,KAAK,CAAC,IAAI,IAAI,CAAA;AACjC,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMR,0BAA0B,GAAG,CAACR,IAAI,EAAEmB,YAAY,EAAE3B,qBAAqB,KAAK;AAEhF;AACA;EACA,IAAI4B,kBAAkB,GAAG,CAAE;AAAEC,IAAAA,QAAQ,EAAE,IAAI;IAAEC,OAAO,EAAEH,YAAY,GAAG,CAAA;AAAE,GAAC,CAAE,CAAA;AAC1E,EAAA,MAAMI,kBAAkB,GAAG,IAAIC,GAAG,EAAE,CAAA;AACpC,EAAA,MAAMC,aAAa,GAAGP,0BAA0B,CAAClB,IAAI,CAAC,CAAA;AAEtD,EAAA,KAAK,IAAI0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,aAAa,CAACrB,MAAM,EAAEsB,CAAC,EAAE,EAAE;AAC7C,IAAA,MAAMC,eAAe,GAAGF,aAAa,CAACC,CAAC,CAAC,CAAA;IAExC,IAAIC,eAAe,IAAInC,qBAAqB,EAAE;AAC5C,MAAA,MAAMoC,YAAY,GAAGpC,qBAAqB,CAACmC,eAAe,CAAC,CAAA;;AAE3D;AACA;AACA;MACAP,kBAAkB,GAAGQ,YAAY,CAACjB,MAAM,CAAC,CAACkB,WAAW,EAAEC,MAAM,KAAK;QAChE,OAAO,CACL,GAAGD,WAAW,EACd,GAAGT,kBAAkB,CAACW,GAAG,CAACC,SAAS,KAAK;UAAEX,QAAQ,EAAEW,SAAS,CAACV,OAAO;AAAEA,UAAAA,OAAO,EAAEU,SAAS,CAACV,OAAO,GAAGQ,MAAAA;SAAQ,CAAC,CAAC,CAC/G,CAAA;AACH,OAAC,EAAE,EAAE,CAAC,CAACG,MAAM,CAACD,SAAS,IAAIA,SAAS,CAACV,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtD,KAAC,MAAM;AAEL;AACA;AACAF,MAAAA,kBAAkB,GAAGA,kBAAkB,CAACW,GAAG,CAACC,SAAS,KAAK;QAAEX,QAAQ,EAAEW,SAAS,CAACV,OAAO;AAAEA,QAAAA,OAAO,EAAEU,SAAS,CAACV,OAAO,GAAG,CAAA;AAAE,OAAC,CAAC,CAAC,CAAA;AAC7H,KAAA;;AAEA;AACA;AACA;AACA,IAAA,IAAIF,kBAAkB,CAACc,IAAI,CAACF,SAAS,IAAIA,SAAS,CAACX,QAAQ,KAAK,CAAC,CAAC,IAAIW,SAAS,CAACV,OAAO,KAAK,CAAC,CAAC,EAAE;AAC9FC,MAAAA,kBAAkB,CAACY,GAAG,CAACR,eAAe,CAAC,CAAA;AACzC,KAAA;AACF,GAAA;;AAEA;AACA,EAAA,OAAO,IAAIH,GAAG,CAACD,kBAAkB,CAAC,CAAA;AACpC,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,MAAML,0BAA0B,GAAIH,IAAI,IAAK;EAE3C,IAAIf,IAAI,GAAGe,IAAI,CAAA;EACf,IAAIqB,KAAK,GAAG,EAAE,CAAA;;AAEd;AACA,EAAA,OAAOpC,IAAI,CAACC,IAAI,KAAK,gBAAgB,EAAE;IACrCmC,KAAK,CAACC,IAAI,CAACrC,IAAI,CAACU,QAAQ,CAAC,CAAC,CAAC,CAACD,YAAY,CAAC,CAAA;AACzCT,IAAAA,IAAI,GAAGA,IAAI,CAACU,QAAQ,CAAC,CAAC,CAAC,CAAA;AACzB,GAAA;;AAEA;AACA0B,EAAAA,KAAK,CAACC,IAAI,CAACrC,IAAI,CAACS,YAAY,CAAC,CAAA;;AAE7B;EACA,OAAO2B,KAAK,CAACE,OAAO,EAAE,CAAA;AACxB,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMxC,6BAA6B,GAAG,CAACyC,SAAS,EAAEnD,UAAU,KAAK;EAE/D,MAAMoD,KAAK,GAAG,CAAE;AAAE9B,IAAAA,QAAQ,EAAE,EAAA;AAAG,GAAC,CAAE,CAAA;EAClC6B,SAAS,CAACE,OAAO,CAAC;IAChBC,KAAK,EAAG1C,IAAI,IAAK;AAEf,MAAA,MAAM2C,kBAAkB,GAAG;AACzB1C,QAAAA,IAAI,EAAED,IAAI,CAAC4C,IAAI,CAAC3C,IAAI;AACpBS,QAAAA,QAAQ,EAAE,EAAA;OACX,CAAA;AAED,MAAA,IAAIV,IAAI,CAAC4C,IAAI,CAAC3C,IAAI,KAAK,cAAc,EAAE;AACrC0C,QAAAA,kBAAkB,CAAClC,YAAY,GAAGrB,UAAU,CAACyD,KAAK,CAAC7C,IAAI,CAACO,IAAI,EAAEP,IAAI,CAAC8C,EAAE,CAAC,CAAA;AACxE,OAAA;AAEAN,MAAAA,KAAK,CAACH,IAAI,CAACM,kBAAkB,CAAC,CAAA;KAC/B;AACDI,IAAAA,KAAK,EAAE,MAAM;AACX,MAAA,MAAMC,MAAM,GAAGR,KAAK,CAACS,GAAG,EAAE,CAAA;MAC1B,MAAMC,MAAM,GAAGV,KAAK,CAACA,KAAK,CAACpC,MAAM,GAAG,CAAC,CAAC,CAAA;AACtC8C,MAAAA,MAAM,CAACxC,QAAQ,CAAC2B,IAAI,CAACW,MAAM,CAAC,CAAA;AAC9B,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,OAAOR,KAAK,CAAC,CAAC,CAAC,CAAC9B,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;;AClKc,MAAMyC,sBAAsB,CAAC;EAC1CC,WAAW,CAACC,QAAQ,EAAE;IACpB,IAAI,CAACC,SAAS,GAAGD,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,YAAY,CAACC,KAAK,EAAE;IAAE,OAAOC,QAAQ,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,UAAU,CAAC,GAAG,CAAC,CAAA;AAAE,GAAA;;AAEvE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,gBAAgB,CAACC,UAAU,EAAEtE,OAAO,GAAG,EAAE,EAAE;IAEzC,MAAM;AACJsD,MAAAA,IAAI,GAAG,YAAA;AACT,KAAC,GAAGtD,OAAO,CAAA;AAEX,IAAA,IAAI,CAAC,IAAI,CAACiE,YAAY,CAACK,UAAU,CAAC,EAAE;AAClC,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;IAEA,IAAI,CAAC,CAAE,WAAW,EAAE,YAAY,CAAE,CAACnE,QAAQ,CAACmD,IAAI,CAAC,EAAE;AACjD,MAAA,MAAM,IAAIiB,KAAK,CAAC,2BAA2B,GAAGjB,IAAI,CAAC,CAAA;AACrD,KAAA;AAEA,IAAA,OAAOzD,6BAA6B,CAACyE,UAAU,EAAEhB,IAAI,CAAC,CAAA;AACxD,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEkB,EAAAA,QAAQ,CAACF,UAAU,EAAEG,IAAI,GAAG,EAAE,EAAE;IAC9B,IAAI,CAACH,UAAU,EAAE;AACf,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,CAACH,QAAQ,CAACG,UAAU,CAAC,IAAI,CAACA,UAAU,CAACF,UAAU,CAAC,GAAG,CAAC,EAAE;AACxD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,IAAI;AACF,MAAA,MAAMV,MAAM,GAAGc,QAAQ,CAACF,UAAU,CAACf,KAAK,CAAC,CAAC,CAAC,EAAEkB,IAAI,CAAC,CAAA;AAElD,MAAA,OAAOf,MAAM,CAAA;KACd,CAAC,OAAOgB,KAAK,EAAE;AACd,MAAA,IAAI,CAACV,SAAS,CAACW,IAAI,CAAC,OAAO,EAAE;AAAED,QAAAA,KAAAA;AAAM,OAAC,CAAC,CAAA;AACvC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACF,GAAA;AACF,CAAA;AAEAb,sBAAsB,CAACe,OAAO,GAAG,CAC/B,UAAU,CACX;;ACtEc,MAAMC,iBAAiB,CAAC;AAErCf,EAAAA,WAAW,GAAG,EAAE;;AAEhB;AACF;AACA;AACA;AACA;AACA;AACA;EACEgB,UAAU,CAACZ,KAAK,EAAE;AAAE,IAAA,OAAOC,QAAQ,CAACD,KAAK,CAAC,KAAKA,KAAK,CAACE,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAACW,IAAI,CAACb,KAAK,CAAC,CAAC,CAAA;AAAE,GAAA;;AAGhG;AACF;AACA;AACA;AACA;AACA;AACA;EACEG,gBAAgB,CAACW,QAAQ,EAAE;AAEzB,IAAA,IAAI,CAAC,IAAI,CAACF,UAAU,CAACE,QAAQ,CAAC,EAAE;AAC9B,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;AAEA,IAAA,MAAMC,WAAW,GAAG,IAAI,CAACC,4BAA4B,CAACF,QAAQ,CAAC,CAAA;;AAE/D;AACA,IAAA,MAAM9E,qBAAqB,GAAG;AAC5B0D,MAAAA,MAAM,EAAE,CAAE,CAAC,CAAC,EAAE,CAAC,CAAE;AACjBuB,MAAAA,QAAQ,EAAE,CAAE,CAAC,CAAC,CAAE;AAChBC,MAAAA,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE;MACdC,MAAM,EAAE,CAAE,CAAC,CAAA;KACZ,CAAA;AAED,IAAA,OAAOJ,WAAW,CAAC5D,MAAM,CAAC,CAACiE,SAAS,EAAE;MAAEhB,UAAU;AAAErE,MAAAA,KAAAA;AAAM,KAAC,KAAK;MAC9D,OAAOqF,SAAS,CAAC9D,MAAM,CAAC3B,6BAA6B,CAACyE,UAAU,EAAE,YAAY,EAAE;QAAErE,KAAK;AAAEC,QAAAA,qBAAAA;AAAsB,OAAC,CAAC,CAAC,CAAA;KACnH,EAAE,EAAE,CAAC,CAAA;AACR,GAAA;;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEsE,EAAAA,QAAQ,CAACQ,QAAQ,EAAEO,OAAO,GAAG,EAAE,EAAEvF,OAAO,GAAG,EAAE,EAAE;IAE7C,MAAM;AACJwF,MAAAA,KAAK,GAAG,KAAK;AACbC,MAAAA,MAAM,GAAG,KAAK;MACdC,gBAAgB,GAAIC,GAAG,IAAK,SAAA;AAC9B,KAAC,GAAG3F,OAAO,CAAA;AAEX,IAAA,OAAO4F,UAAe,CAACZ,QAAQ,EAAEO,OAAO,EAAE;MAAEC,KAAK;MAAEC,MAAM;AAAEC,MAAAA,gBAAAA;AAAiB,KAAC,CAAC,CAAA;AAChF,GAAA;;AAGA;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAEER,4BAA4B,CAACF,QAAQ,EAAE;AAErC;AACA,IAAA,MAAM/B,SAAS,GAAG4C,MAAa,CAACC,KAAK,CAACd,QAAQ,CAAC,CAAA;AAC/C,IAAA,MAAM5E,IAAI,GAAG2F,eAAe,CAAC9C,SAAS,EAAE+B,QAAQ,CAAC,CAAA;IAEjD,OAAQ,SAASgB,SAAS,CAACC,CAAC,EAAEhG,KAAK,GAAG,CAAC,EAAE;AAEvC,MAAA,IAAI,CAAE,MAAM,EAAE,WAAW,CAAE,CAACE,QAAQ,CAAC8F,CAAC,CAACtF,IAAI,CAAC,EAAE;AAC5C,QAAA,OAAO,CAAE;UAAEV,KAAK;UAAEqE,UAAU,EAAE2B,CAAC,CAACC,OAAAA;AAAQ,SAAC,CAAE,CAAA;AAC7C,OAAA;AAEA,MAAA,IAAID,CAAC,CAACtF,IAAI,KAAK,aAAa,EAAE;QAC5B,MAAMwF,cAAc,GAAGF,CAAC,CAAC7E,QAAQ,CAAC,CAAC,CAAC,CAAC8E,OAAO,CAAA;AAC5C,QAAA,MAAME,YAAY,GAAGH,CAAC,CAAC7E,QAAQ,CAACmC,KAAK,CAAC,CAAC,CAAC,CAAClC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;AAC9D,UAAA,OAAOD,GAAG,CAACE,MAAM,CAACwE,SAAS,CAACzE,KAAK,EAAEtB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;SAC/C,EAAE,EAAE,CAAC,CAAA;AACN,QAAA,OAAO,CAAE;UAAEA,KAAK;AAAEqE,UAAAA,UAAU,EAAE6B,cAAAA;SAAgB,EAAE,GAAGC,YAAY,CAAE,CAAA;AACnE,OAAA;MAEA,OAAOH,CAAC,CAAC7E,QAAQ,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;QACvC,OAAOD,GAAG,CAACE,MAAM,CAACwE,SAAS,CAACzE,KAAK,EAAEtB,KAAK,CAAC,CAAC,CAAA;OAC3C,EAAE,EAAE,CAAC,CAAA;KAEP,CAAEG,IAAI,CAAC,CAAA;AAEV,GAAA;AACF,CAAA;AAEAyE,iBAAiB,CAACD,OAAO,GAAG,EAAE;;ACnH9B;AACA;AACA;AACA;;AAEe,MAAMyB,gBAAgB,CAAC;AACpCvC,EAAAA,WAAW,CAACwC,iBAAiB,EAAEvC,QAAQ,EAAE;IACvC,IAAI,CAACwC,kBAAkB,GAAGD,iBAAiB,CAAA;IAC3C,IAAI,CAACtC,SAAS,GAAGD,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEyC,EAAAA,eAAe,CAACC,UAAU,EAAEhC,IAAI,GAAG,EAAE,EAAE;AAErC,IAAA,MAAMiC,UAAU,GAAG,IAAI,CAACC,cAAc,EAAE,CAAA;AAExC,IAAA,MAAMC,aAAa,GAAG;MAAE,GAAGH,UAAAA;KAAY,CAAA;AAEvC,IAAA,KAAK,MAAM;MAAEI,GAAG;AAAEC,MAAAA,SAAAA;KAAW,IAAIJ,UAAU,EAAE;MAC3C,MAAMK,YAAY,GAAG,IAAI,CAACC,mBAAmB,CAACF,SAAS,EAAErC,IAAI,CAAC,CAAA;AAE9D,MAAA,IAAIsC,YAAY,EAAE;QAChB,OAAOH,aAAa,CAAEC,GAAG,CAAE,CAAA;AAC7B,OAAA;AACF,KAAA;AAEA,IAAA,OAAOD,aAAa,CAAA;AACtB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEK,EAAAA,KAAK,CAACH,SAAS,EAAErC,IAAI,GAAG,EAAE,EAAE;IAC1B,IAAI,CAACqC,SAAS,EAAE;AACd,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,CAAC3C,QAAQ,CAAC2C,SAAS,CAAC,IAAI,CAACA,SAAS,CAAC1C,UAAU,CAAC,GAAG,CAAC,EAAE;AACtD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,IAAI;AAEF;AACA,MAAA,MAAMV,MAAM,GAAGwD,SAAS,CAACJ,SAAS,CAACvD,KAAK,CAAC,CAAC,CAAC,EAAEkB,IAAI,CAAC,CAAA;AAElD,MAAA,OAAOf,MAAM,CAAA;KACd,CAAC,OAAOgB,KAAK,EAAE;AACd,MAAA,IAAI,CAACV,SAAS,CAACW,IAAI,CAAC,OAAO,EAAE;AAAED,QAAAA,KAAAA;AAAM,OAAC,CAAC,CAAA;AACvC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEsC,EAAAA,mBAAmB,CAACF,SAAS,EAAErC,IAAI,EAAE;AACnC,IAAA,IAAI,CAACqC,SAAS,CAACK,IAAI,EAAE;AACnB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,MAAMzD,MAAM,GAAG,IAAI,CAACuD,KAAK,CAACH,SAAS,CAACK,IAAI,EAAE1C,IAAI,CAAC,CAAA;IAE/C,OAAOf,MAAM,KAAK,IAAI,CAAA;AACxB,GAAA;AAEAiD,EAAAA,cAAc,GAAG;AACf,IAAA,MAAMS,UAAU,GAAG,IAAI,CAACb,kBAAkB,CAACc,MAAM,EAAE,CAAA;IAEnD,OAAOD,UAAU,CAAC/F,MAAM,CAAC,CAACqF,UAAU,EAAEY,SAAS,KAAK;MAClD,MAAM;QAAET,GAAG;AAAEU,QAAAA,WAAW,EAAET,SAAAA;AAAU,OAAC,GAAGQ,SAAS,CAAA;MAEjD,IAAIT,GAAG,IAAIC,SAAS,EAAE;QACpB,OAAO,CAAE,GAAGJ,UAAU,EAAE;UAAEG,GAAG;AAAEC,UAAAA,SAAAA;AAAU,SAAC,CAAE,CAAA;AAC9C,OAAA;AAEA,MAAA,OAAOJ,UAAU,CAAA;KAElB,EAAE,EAAE,CAAC,CAAA;AACR,GAAA;AACF,CAAA;AAEAL,gBAAgB,CAACzB,OAAO,GAAG,CACzB,mBAAmB,EACnB,UAAU,CACX;;AClGD,+BAAe;AACb4C,EAAAA,QAAQ,EAAE,CAAE,oBAAoB,EAAE,YAAY,EAAE,kBAAkB,CAAE;AACpEC,EAAAA,kBAAkB,EAAE,CAAE,MAAM,EAAE5D,sBAAsB,CAAE;AACtD6D,EAAAA,UAAU,EAAE,CAAE,MAAM,EAAE7C,iBAAiB,CAAE;AACzC8C,EAAAA,gBAAgB,EAAE,CAAE,MAAM,EAAEtB,gBAAgB,CAAA;AAC9C,CAAC;;ACPD;AACAuB,QAAQ,CAACC,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEb,MAAMC,gBAAgB,CAAC;AAEpChE,EAAAA,WAAW,GAAG;AACZ,IAAA,IAAI,CAACiE,UAAU,GAAG,IAAIH,QAAQ,CAACI,SAAS,EAAE,CAAA;AAC5C,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,MAAM,CAACC,QAAQ,EAAE;AACf,IAAA,OAAO,IAAI,CAACH,UAAU,CAACI,QAAQ,CAACD,QAAQ,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AAEAJ,gBAAgB,CAAClD,OAAO,GAAG,EAAE;;ACrB7B,qBAAe;EACb4C,QAAQ,EAAE,CAAE,kBAAkB,CAAE;AAChCY,EAAAA,gBAAgB,EAAE,CAAE,MAAM,EAAEN,gBAAgB,CAAA;AAC9C,CAAC;;ACGD,IAAIO,MAAM,GAAG,MAAM,CAAA;AAEnB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAE3B,IAAI/E,KAAK,GAAGvC,KAAK,CAACuH,SAAS,CAAChF,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,SAASiF,QAAQ,GAAG;AAEjC;AACF;AACA;AACE,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE,CAAA;;AAEpB;AACA;AACA,EAAA,IAAI,CAACC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAACC,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;AACAH,QAAQ,CAACD,SAAS,CAACG,EAAE,GAAG,UAASE,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAEjEH,MAAM,GAAGI,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,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","x_google_ignoreList":[7]}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/features/expression-language/variableExtractionHelpers.js","../src/features/expression-language/FeelExpressionLanguage.js","../src/features/expression-language/FeelersTemplating.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/util/constants/DatetimeConstants.js","../src/util/constants/ValuesSourceConstants.js","../src/util/injector.js","../src/util/form.js","../src/util/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/render/components/util/numberFieldUtil.js","../src/core/Validator.js","../src/core/FormFieldRegistry.js","../src/core/FormLayouter.js","../src/import/Importer.js","../src/import/index.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/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/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/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/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/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/Spacer.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/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/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 (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 accessors = _deconstructPathExpression(root);\n return accessors[index] || 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 nodeAccessors = _deconstructPathExpression(node);\n\n for (let i = 0; i < nodeAccessors.length; i++) {\n const currentAccessor = nodeAccessors[i];\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<string>} An array of components in the path expression, in the correct order.\n */\nconst _deconstructPathExpression = (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].variableName);\n node = node.children[0];\n }\n\n // Add the last component to the array\n parts.push(node.variableName);\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 { unaryTest } from 'feelin';\nimport { isString } from 'min-dash';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport default class ConditionChecker {\n constructor(formFieldRegistry, eventBus) {\n this._formFieldRegistry = formFieldRegistry;\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 */\n applyConditions(properties, data = {}) {\n\n const conditions = this._getConditions();\n\n const newProperties = { ...properties };\n\n for (const { key, condition } of conditions) {\n const shouldRemove = this._checkHideCondition(condition, data);\n\n if (shouldRemove) {\n delete newProperties[ key ];\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 _getConditions() {\n const formFields = this._formFieldRegistry.getAll();\n\n return formFields.reduce((conditions, formField) => {\n const { key, conditional: condition } = formField;\n\n if (key && condition) {\n return [ ...conditions, { key, condition } ];\n }\n\n return conditions;\n\n }, []);\n }\n}\n\nConditionChecker.$inject = [\n 'formFieldRegistry',\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","// config ///////////////////\n\nexport const MINUTES_IN_DAY = 60 * 24;\n\nexport const DATETIME_SUBTYPES = {\n DATE: 'date',\n TIME: 'time',\n DATETIME: 'datetime'\n};\n\nexport const TIME_SERIALISING_FORMATS = {\n UTC_OFFSET: 'utc_offset',\n UTC_NORMALIZED: 'utc_normalized',\n NO_TIMEZONE: 'no_timezone'\n};\n\nexport const DATETIME_SUBTYPES_LABELS = {\n [DATETIME_SUBTYPES.DATE]: 'Date',\n [DATETIME_SUBTYPES.TIME]: 'Time',\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time'\n};\n\nexport const TIME_SERIALISINGFORMAT_LABELS = {\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone'\n};\n\nexport const DATETIME_SUBTYPE_PATH = [ 'subtype' ];\nexport const DATE_LABEL_PATH = [ 'dateLabel' ];\nexport const DATE_DISALLOW_PAST_PATH = [ 'disallowPassedDates' ];\nexport const TIME_LABEL_PATH = [ 'timeLabel' ];\nexport const TIME_USE24H_PATH = [ 'use24h' ];\nexport const TIME_INTERVAL_PATH = [ 'timeInterval' ];\nexport const TIME_SERIALISING_FORMAT_PATH = [ 'timeSerializingFormat' ];\n","import { get } from 'min-dash';\n\n// config ///////////////////\n\nexport const 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';\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\nexport function findErrors(errors, path) {\n return errors[ pathStringify(path) ];\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\nexport function pathStringify(path) {\n if (!path) {\n return '';\n }\n\n return path.join('.');\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 * Parse the schema for input variables a form might make use of\n *\n * @param {any} schema\n *\n * @return {string[]}\n */\nexport function getSchemaVariables(schema, options = {}) {\n\n const {\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 variables = schema.components.reduce((variables, component) => {\n\n const {\n key,\n valuesKey,\n type\n } = component;\n\n if ([ 'button' ].includes(type)) {\n return variables;\n }\n\n // collect bi-directional variables\n if (inputs || outputs) {\n\n if (key) {\n variables = [ ...variables, key ];\n }\n\n }\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 => variable !== undefined || variable !== null);\n }, []);\n\n // remove duplicates\n return Array.from(new Set(variables));\n}\n","import { set } from 'min-dash';\nimport { clone, pathStringify } 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 { _path } = field;\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, [ pathStringify(_path) ], 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 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 { 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 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 this._keys = 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 this._keys.clear();\n }\n\n}\n\nFormFieldRegistry.$inject = [ 'eventBus' ];","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' || !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 {\n get,\n isUndefined\n} from 'min-dash';\n\nimport {\n clone,\n generateIdForType\n} from '../util';\n\n\nexport default class Importer {\n\n /**\n * @constructor\n * @param { import('../core').FormFieldRegistry } formFieldRegistry\n * @param { import('../render/FormFields').default } formFields\n * @param { import('../core').FormLayouter } formLayouter\n */\n constructor(formFieldRegistry, formFields, formLayouter) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n this._formLayouter = formLayouter;\n }\n\n /**\n * Import schema adding `id`, `_parent` and `_path`\n * information to each field and adding it to the\n * form field registry.\n *\n * @param {any} schema\n * @param {any} [data]\n *\n * @return { { warnings: Array<any>, schema: any, data: any } }\n */\n importSchema(schema, data = {}) {\n\n // TODO: Add warnings - https://github.com/bpmn-io/form-js/issues/289\n const warnings = [];\n\n try {\n\n this._formLayouter.clear();\n\n const importedSchema = this.importFormField(clone(schema)),\n initializedData = this.initializeFieldValues(clone(data));\n\n this._formLayouter.calculateLayout(clone(importedSchema));\n\n return {\n warnings,\n schema: importedSchema,\n data: initializedData\n };\n } catch (err) {\n err.warnings = warnings;\n\n throw err;\n }\n }\n\n /**\n * @param {any} formField\n * @param {string} [parentId]\n *\n * @return {any} importedField\n */\n importFormField(formField, parentId) {\n const {\n components,\n key,\n type,\n id = generateIdForType(type)\n } = formField;\n\n if (parentId) {\n\n // set form field parent\n formField._parent = parentId;\n }\n\n if (!this._formFields.get(type)) {\n throw new Error(`form field of type <${ type }> not supported`);\n }\n\n if (key) {\n\n // validate <key> uniqueness\n if (this._formFieldRegistry._keys.assigned(key)) {\n throw new Error(`form field with key <${ key }> already exists`);\n }\n\n this._formFieldRegistry._keys.claim(key, formField);\n\n // TODO: buttons should not have key\n if (type !== 'button') {\n\n // set form field path\n formField._path = [ key ];\n }\n }\n\n if (id) {\n\n // validate <id> uniqueness\n if (this._formFieldRegistry._ids.assigned(id)) {\n throw new Error(`form field with id <${ id }> already exists`);\n }\n\n this._formFieldRegistry._ids.claim(id, formField);\n }\n\n // set form field ID\n formField.id = id;\n\n this._formFieldRegistry.add(formField);\n\n if (components) {\n this.importFormFields(components, id);\n }\n\n return formField;\n }\n\n importFormFields(components, parentId) {\n components.forEach((component) => {\n this.importFormField(component, parentId);\n });\n }\n\n /**\n * @param {Object} data\n *\n * @return {Object} initializedData\n */\n initializeFieldValues(data) {\n return this._formFieldRegistry.getAll().reduce((initializedData, formField) => {\n const {\n defaultValue,\n _path,\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 if (_path) {\n\n const { config: fieldConfig } = this._formFields.get(type);\n let valueData = get(data, _path);\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 initializedData = {\n ...initializedData,\n [_path[0]]: initializedFieldValue,\n };\n\n }\n\n return initializedData;\n\n }, data);\n }\n}\n\nImporter.$inject = [ 'formFieldRegistry', 'formFields', 'formLayouter' ];","import Importer from './Importer';\n\nexport default {\n importer: [ 'type', Importer ]\n};","import classNames from 'classnames';\n\nexport function formFieldClasses(type, { errors = [], disabled = false, readonly = false } = {}) {\n if (!type) {\n throw new Error('type required');\n }\n\n return classNames('fjs-form-field', `fjs-form-field-${type}`, {\n 'fjs-has-errors': errors.length > 0,\n 'fjs-disabled': disabled,\n 'fjs-readonly': readonly\n });\n}\n\nexport function gridColumnClasses(formField) {\n const {\n layout = {}\n } = formField;\n\n const {\n columns\n } = layout;\n\n return classNames(\n 'fjs-layout-column',\n `cds--col${columns ? '-lg-' + columns : ''}`,\n\n // always fall back to top-down on smallest screens\n 'cds--col-sm-16',\n 'cds--col-md-16'\n );\n}\n\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\n\nexport default function Button(props) {\n const {\n disabled,\n field\n } = props;\n\n const { action = 'submit' } = field;\n\n return <div class={ formFieldClasses(type) }>\n <button class=\"fjs-button\" type={ action } disabled={ disabled }>{ field.label }</button>\n </div>;\n}\n\nButton.config = {\n type,\n keyed: true,\n label: 'Button',\n group: 'action',\n create: (options = {}) => ({\n action: 'submit',\n ...options\n })\n};\n","import { createContext } from 'preact';\n\nconst FormRenderContext = createContext({\n Empty: (props) => {\n return null;\n },\n 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});\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 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 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 }\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}","import { useEffect, useMemo, useState } from 'preact/hooks';\nimport { normalizeValuesData } from '../components/util/valuesUtil';\nimport useExpressionEvaluation from './useExpressionEvaluation';\nimport useService from './useService';\n\n/**\n * @enum { String }\n */\nexport const LOAD_STATES = {\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error'\n};\n\n/**\n * @typedef {Object} 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 evaluatedValues = useMemo(() => {\n if (valuesExpression) {\n return useExpressionEvaluation(valuesExpression);\n }\n }, [ valuesExpression ]);\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 (evaluatedValues && Array.isArray(evaluatedValues)) {\n values = evaluatedValues;\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 ]);\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","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 view: window,\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';\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 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();\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 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: (options = {}) => {\n\n const defaults = {};\n\n // provide default values if valuesKey isn't set\n if (!options.valuesKey) {\n defaults.values = [\n {\n label: 'Value',\n value: 'value'\n }\n ];\n }\n\n return {\n ...defaults,\n ...options\n };\n }\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 { findErrors } from '../../util';\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 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 initialValue = useMemo(() => get(initialData, field._path), [ initialData, field._path ]);\n\n const value = get(data, field._path);\n\n const fieldErrors = findErrors(errors, field._path);\n\n const readonly = useReadonly(field, properties);\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 }, [ viewerCommands, field, value ]);\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={ fieldErrors }\n onChange={ disabled || readonly ? noop : onChange }\n onBlur={ disabled || readonly ? noop : onBlur }\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 Default(props) {\n const {\n Children,\n Empty,\n Row\n } = useContext(FormRenderContext);\n\n const { field } = 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\nDefault.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","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 { 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 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 const [ flatpickrInstance, setFlatpickrInstance ] = useState(null);\n const [ isInputDirty, setIsInputDirty ] = useState(false);\n\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: 'm/d/Y',\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\n flatpickrInstance.open();\n }, [ flatpickrInstance, readonly ]\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 if (!isInputDirty || e.relatedTarget && e.relatedTarget.classList.contains('flatpickr-day')) return;\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\n setIsInputDirty(false);\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=\"mm/dd/yyyy\"\n autoComplete=\"off\"\n onFocus={ onInputFocus }\n onKeyDown={ onInputKeyDown }\n onMouseDown={ () => !flatpickrInstance.isOpen && !readonly && flatpickrInstance.open() }\n onBlur={ onInputBlur }\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 individualEntries[focusedValueIndex].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 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 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 onFocus={ () => !readonly && useDropdown && setDropdownIsOpen(true) }\n onClick={ () => !readonly && useDropdown && setDropdownIsOpen(true) }\n\n // @ts-ignore\n onInput={ (e) => { setRawValue(e.target.value); useDropdown && setDropdownIsOpen(false); } }\n onBlur={ onInputBlur }\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 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();\n }, [ onBlur ]);\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 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 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}","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';\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 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 }\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';\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 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\n if (outerDivRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n onBlur();\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 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: (options = {}) => {\n const defaults = {};\n\n // provide default values if valuesKey isn't set\n if (!options.valuesKey) {\n defaults.values = [\n {\n label: 'Value',\n value: 'value'\n }\n ];\n }\n\n return {\n ...defaults,\n ...options\n };\n }\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';\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 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\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 onChange = ({ target }) => {\n setIsEscapeClose(false);\n setIsDropdownExpanded(true);\n setShouldApplyFilter(true);\n setFilter(target.value || '');\n };\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 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 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 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={ onChange }\n type=\"text\"\n value={ filter }\n placeholder={ 'Search' }\n autoComplete=\"off\"\n onKeyDown={ (e) => onInputKeyDown(e) }\n onMouseDown={ () => { setIsEscapeClose(false); setIsDropdownExpanded(true); setShouldApplyFilter(false); } }\n onFocus={ () => { setIsDropdownExpanded(true); setShouldApplyFilter(false); } }\n onBlur={ () => { setIsDropdownExpanded(false); setFilter(valueLabel); onBlur(); } }\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 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 return <>\n <div ref={ selectRef }\n id={ prefixId(`${id}`, formId) }\n class={ classNames('fjs-input-group', { disabled, readonly }, { 'hasErrors': errors.length }) }\n onFocus={ () => setIsDropdownExpanded(true) }\n onBlur={ () => { setIsDropdownExpanded(false); onBlur(); } }\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={ () => !readonly && setIsDropdownExpanded(true) }\n onBlur={ () => !readonly && setIsDropdownExpanded(false) }\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';\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 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 field,\n value,\n onChange,\n readonly,\n 'aria-describedby': errorMessageId,\n }), [ disabled, errors, field, id, value, onChange, onBlur, 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: (options = {}) => {\n\n const defaults = {};\n\n // provide default values if valuesKey isn't set\n if (!options.valuesKey) {\n defaults.values = [\n {\n label: 'Value',\n value: 'value'\n }\n ];\n }\n\n return {\n ...defaults,\n ...options\n };\n }\n};\n","import { formFieldClasses } from '../Util';\n\nconst type = 'spacer';\n\nexport default function Spacer(props) {\n const { field } = props;\n const { height = 60 } = field;\n\n return (\n <div class={ formFieldClasses(type) } style={ { height: height } } />\n );\n}\n\nSpacer.config = {\n type,\n keyed: false,\n label: 'Spacer',\n group: 'presentation',\n create: (options = {}) => ({\n height: 60,\n ...options\n })\n};\n","import { useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\n\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\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';\n\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\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 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 searchbarRef = 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 // 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 onFilterChange = ({ target }) => {\n setIsEscapeClose(false);\n setFilter(target.value);\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 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 onComponentBlur = () => {\n setIsDropdownExpanded(false);\n setFilter('');\n onBlur();\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 searchbarRef.current.focus();\n }\n };\n\n const shouldDisplayDropdown = useMemo(() => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed, [ disabled, isDropdownExpanded, isEscapeClosed, loadState ]);\n\n return <div\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 <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 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={ searchbarRef }\n id={ prefixId(`${id}-search`, formId) }\n onChange={ onFilterChange }\n type=\"text\"\n value={ filter }\n placeholder={ (disabled || readonly) ? undefined : 'Search' }\n autoComplete=\"off\"\n onKeyDown={ onInputKeyDown }\n onMouseDown={ () => setIsEscapeClose(false) }\n onFocus={ () => !readonly && setIsDropdownExpanded(true) }\n onBlur={ () => !readonly && onComponentBlur() }\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={ searchbarRef.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: (options = {}) => {\n\n const defaults = {};\n\n // provide default values if valuesKey isn't set\n if (!options.valuesKey) {\n defaults.values = [\n {\n label: 'Value',\n value: 'value'\n }\n ];\n }\n\n return {\n ...defaults,\n ...options\n };\n }\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 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 }\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 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 }\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\"><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 width=\"54\" height=\"54\" viewBox=\"0 0 54 54\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 23L45 23\" stroke=\"black\" stroke-width=\"2\" stroke-linecap=\"square\"/>\n<path d=\"M9 31L45 31\" stroke=\"black\" stroke-width=\"2\" stroke-linecap=\"square\"/>\n<path d=\"M23 17L27 13L31 17\" stroke=\"black\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M31 37L27 41L23 37\" stroke=\"black\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path d=\"M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 0 1 2.4.14 3.42 3.42 0 0 1 1.41.55 3.47 3.47 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.63 3.63 0 0 1-1.09 1.4 3.89 3.89 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 0 0 1.1-.49 1.41 1.41 0 0 0 .41-1 1.49 1.49 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.69 1.69 0 0 0-.86-.62 9.28 9.28 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.09 7.09 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.31 5.31 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-32 4v10h-2V22h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" d=\"M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1zm-1.136 15.5.849.849-6.364 6.364-.849-.849 6.364-6.364zm.264 3.5.849.849-2.828 2.828-.849-.849L44.128 34zM13 19v10h-2V19h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"54\" height=\"54\" fill=\"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 SpacerIcon from './Spacer.svg';\nimport TextIcon from './Text.svg';\nimport TextfieldIcon from './Textfield.svg';\nimport TextareaIcon from './Textarea.svg';\nimport ImageIcon from './Image.svg';\n\nexport const iconsByType = (type) => {\n return {\n button: ButtonIcon,\n checkbox: CheckboxIcon,\n checklist: ChecklistIcon,\n columns: ColumnsIcon,\n datetime: DatetimeIcon,\n image: ImageIcon,\n number: NumberIcon,\n radio: RadioIcon,\n select: SelectIcon,\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 Image from './form-fields/Image';\nimport Numberfield from './form-fields/Number';\nimport Radio from './form-fields/Radio';\nimport Select from './form-fields/Select';\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\nexport {\n Button,\n Checkbox,\n Checklist,\n Default,\n Datetime,\n FormComponent,\n Image,\n Numberfield,\n Radio,\n Select,\n Spacer,\n Taglist,\n Text,\n Textfield,\n Textarea\n};\n\nexport const formFields = [\n Button,\n Checkbox,\n Checklist,\n Default,\n Image,\n Numberfield,\n Datetime,\n Radio,\n Select,\n Spacer,\n Taglist,\n Text,\n Textfield,\n Textarea\n];\n\nexport * from './icons';","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 { 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 FormFieldRegistry from './FormFieldRegistry';\nimport FormLayouter from './FormLayouter';\n\nimport importModule from '../import';\nimport renderModule from '../render';\n\nexport { FormFieldRegistry, FormLayouter };\n\nexport default {\n __depends__: [ importModule, renderModule ],\n eventBus: [ 'type', EventBus ],\n formFieldRegistry: [ 'type', FormFieldRegistry ],\n formLayouter: [ 'type', FormLayouter ],\n validator: [ 'type', Validator ]\n};","import Ids from 'ids';\r\nimport { get, isString, set } from 'min-dash';\r\n\r\nimport {\r\n ExpressionLanguageModule,\r\n MarkdownModule,\r\n ViewerCommandsModule\r\n} from './features';\r\n\r\nimport core from './core';\r\n\r\nimport { clone, createFormContainer, createInjector, pathStringify } from './util';\r\n\r\n/**\r\n * @typedef { import('./types').Injector } Injector\r\n * @typedef { import('./types').Data } Data\r\n * @typedef { import('./types').Errors } Errors\r\n * @typedef { import('./types').Schema } Schema\r\n * @typedef { import('./types').FormProperties } FormProperties\r\n * @typedef { import('./types').FormProperty } FormProperty\r\n * @typedef { import('./types').FormEvent } FormEvent\r\n * @typedef { import('./types').FormOptions } FormOptions\r\n *\r\n * @typedef { {\r\n * data: Data,\r\n * initialData: Data,\r\n * errors: Errors,\r\n * properties: FormProperties,\r\n * schema: Schema\r\n * } } State\r\n *\r\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\r\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\r\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\r\n */\r\n\r\nconst ids = new Ids([ 32, 36, 1 ]);\r\n\r\n/**\r\n * The form.\r\n */\r\nexport default class Form {\r\n\r\n /**\r\n * @constructor\r\n * @param {FormOptions} options\r\n */\r\n constructor(options = {}) {\r\n\r\n /**\r\n * @public\r\n * @type {OnEventType}\r\n */\r\n this.on = this._onEvent;\r\n\r\n /**\r\n * @public\r\n * @type {String}\r\n */\r\n this._id = ids.next();\r\n\r\n /**\r\n * @private\r\n * @type {Element}\r\n */\r\n this._container = createFormContainer();\r\n\r\n const {\r\n container,\r\n injector = this._createInjector(options, this._container),\r\n properties = {}\r\n } = options;\r\n\r\n /**\r\n * @private\r\n * @type {State}\r\n */\r\n this._state = {\r\n initialData: null,\r\n data: null,\r\n properties,\r\n errors: {},\r\n schema: null\r\n };\r\n\r\n this.get = injector.get;\r\n\r\n this.invoke = injector.invoke;\r\n\r\n this.get('eventBus').fire('form.init');\r\n\r\n if (container) {\r\n this.attachTo(container);\r\n }\r\n }\r\n\r\n clear() {\r\n\r\n // clear form services\r\n this._emit('diagram.clear');\r\n\r\n // clear diagram services (e.g. EventBus)\r\n this._emit('form.clear');\r\n }\r\n\r\n /**\r\n * Destroy the form, removing it from DOM,\r\n * if attached.\r\n */\r\n destroy() {\r\n\r\n // destroy form services\r\n this.get('eventBus').fire('form.destroy');\r\n\r\n // destroy diagram services (e.g. EventBus)\r\n this.get('eventBus').fire('diagram.destroy');\r\n\r\n this._detach(false);\r\n }\r\n\r\n /**\r\n * Open a form schema with the given initial data.\r\n *\r\n * @param {Schema} schema\r\n * @param {Data} [data]\r\n *\r\n * @return Promise<{ warnings: Array<any> }>\r\n */\r\n importSchema(schema, data = {}) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.clear();\r\n\r\n const {\r\n schema: importedSchema,\r\n data: initializedData,\r\n warnings\r\n } = this.get('importer').importSchema(schema, data);\r\n\r\n this._setState({\r\n data: initializedData,\r\n errors: {},\r\n schema: importedSchema,\r\n initialData: clone(initializedData)\r\n });\r\n\r\n this._emit('import.done', { warnings });\r\n\r\n return resolve({ warnings });\r\n } catch (error) {\r\n this._emit('import.done', {\r\n error,\r\n warnings: error.warnings || []\r\n });\r\n\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Submit the form, triggering all field validations.\r\n *\r\n * @returns { { data: Data, errors: Errors } }\r\n */\r\n submit() {\r\n\r\n const {\r\n properties\r\n } = this._getState();\r\n\r\n if (properties.readOnly || properties.disabled) {\r\n throw new Error('form is read-only');\r\n }\r\n\r\n const data = this._getSubmitData();\r\n\r\n const errors = this.validate();\r\n const filteredErrors = this._applyConditions(errors, data);\r\n\r\n const result = {\r\n data,\r\n errors: filteredErrors\r\n };\r\n\r\n this._emit('submit', result);\r\n\r\n return result;\r\n }\r\n\r\n reset() {\r\n this._emit('reset');\r\n\r\n this._setState({\r\n data: clone(this._state.initialData),\r\n errors: {}\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Errors}\r\n */\r\n validate() {\r\n const formFieldRegistry = this.get('formFieldRegistry'),\r\n validator = this.get('validator');\r\n\r\n const { data } = this._getState();\r\n\r\n const errors = formFieldRegistry.getAll().reduce((errors, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n if (disabled) {\r\n return errors;\r\n }\r\n\r\n const value = get(data, _path);\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n return set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n }, /** @type {Errors} */ ({}));\r\n\r\n this._setState({ errors });\r\n\r\n return errors;\r\n }\r\n\r\n /**\r\n * @param {Element|string} parentNode\r\n */\r\n attachTo(parentNode) {\r\n if (!parentNode) {\r\n throw new Error('parentNode required');\r\n }\r\n\r\n this.detach();\r\n\r\n if (isString(parentNode)) {\r\n parentNode = document.querySelector(parentNode);\r\n }\r\n\r\n const container = this._container;\r\n\r\n parentNode.appendChild(container);\r\n\r\n this._emit('attach');\r\n }\r\n\r\n detach() {\r\n this._detach();\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {boolean} [emit]\r\n */\r\n _detach(emit = true) {\r\n const container = this._container,\r\n parentNode = container.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n if (emit) {\r\n this._emit('detach');\r\n }\r\n\r\n parentNode.removeChild(container);\r\n }\r\n\r\n /**\r\n * @param {FormProperty} property\r\n * @param {any} value\r\n */\r\n setProperty(property, value) {\r\n const properties = set(this._getState().properties, [ property ], value);\r\n\r\n this._setState({ properties });\r\n }\r\n\r\n /**\r\n * @param {FormEvent} type\r\n * @param {Function} handler\r\n */\r\n off(type, handler) {\r\n this.get('eventBus').off(type, handler);\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {FormOptions} options\r\n * @param {Element} container\r\n *\r\n * @returns {Injector}\r\n */\r\n _createInjector(options, container) {\r\n const {\r\n additionalModules = [],\r\n modules = this._getModules()\r\n } = options;\r\n\r\n const config = {\r\n renderer: {\r\n container\r\n }\r\n };\r\n\r\n return createInjector([\r\n { config: [ 'value', config ] },\r\n { form: [ 'value', this ] },\r\n core,\r\n ...modules,\r\n ...additionalModules\r\n ]);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _emit(type, data) {\r\n this.get('eventBus').fire(type, data);\r\n }\r\n\r\n /**\r\n * @internal\r\n *\r\n * @param { { add?: boolean, field: any, remove?: number, value?: any } } update\r\n */\r\n _update(update) {\r\n const {\r\n field,\r\n value\r\n } = update;\r\n\r\n const { _path } = field;\r\n\r\n let {\r\n data,\r\n errors\r\n } = this._getState();\r\n\r\n const validator = this.get('validator');\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n set(data, _path, value);\r\n\r\n set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n\r\n this._setState({\r\n data: clone(data),\r\n errors: clone(errors)\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getState() {\r\n return this._state;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _setState(state) {\r\n this._state = {\r\n ...this._state,\r\n ...state\r\n };\r\n\r\n this._emit('changed', this._getState());\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getModules() {\r\n return [\r\n ExpressionLanguageModule,\r\n MarkdownModule,\r\n ViewerCommandsModule\r\n ];\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _onEvent(type, priority, handler) {\r\n this.get('eventBus').on(type, priority, handler);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getSubmitData() {\r\n\r\n const formFieldRegistry = this.get('formFieldRegistry');\r\n const formData = this._getState().data;\r\n\r\n const submitData = formFieldRegistry.getAll().reduce((previous, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n // do not submit disabled form fields\r\n if (disabled || !_path) {\r\n return previous;\r\n }\r\n\r\n const value = get(formData, _path);\r\n\r\n return {\r\n ...previous,\r\n [ _path[ 0 ] ]: value\r\n };\r\n }, {});\r\n\r\n const filteredSubmitData = this._applyConditions(submitData, formData);\r\n\r\n return filteredSubmitData;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _applyConditions(toFilter, data) {\r\n const conditionChecker = this.get('conditionChecker');\r\n return conditionChecker.applyConditions(toFilter, data);\r\n }\r\n}\r\n","import Form from './Form';\r\n\r\nexport { FormFieldRegistry, FormLayouter } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\nexport * from './features';\r\n\r\nconst schemaVersion = 10;\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","Object","keys","length","_getVariableNameAtPathIndex","Array","from","_smartExtractVariableNames","variableName","children","reduce","acc","child","concat","filter","Set","root","index","accessors","_deconstructPathExpression","initialDepth","accessorDepthInfos","previous","current","extractedVariables","nodeAccessors","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","ConditionChecker","formFieldRegistry","_formFieldRegistry","applyConditions","properties","conditions","_getConditions","newProperties","key","condition","shouldRemove","_checkHideCondition","check","unaryTest","hide","formFields","getAll","formField","conditional","__init__","expressionLanguage","templating","conditionChecker","showdown","setFlavor","MarkdownRenderer","_converter","Converter","render","markdown","makeHtml","markdownRenderer","CommandStack","injector","_handlerMap","_stack","_stackIdx","_currentExecution","actions","dirty","trigger","_injector","_uid","on","clear","prototype","execute","command","action","_pushAction","_internalExecute","_popAction","canExecute","handler","_getHandler","_fire","undefined","emit","undo","_getUndoAction","next","_internalUndo","id","redo","_getRedoAction","register","_setHandler","registerHandler","handlerCls","instantiate","canUndo","canRedo","_atomicDo","revert","_markDirty","_revertedAction","qualifier","event","arguments","names","createEvent","cancelBubble","_createId","fn","execution","atomic","preExecute","_executedAction","postExecute","baseAction","elements","uniqueBy","isArray","stackIdx","splice","commandStack","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","VALUES_SOURCES","STATIC","INPUT","EXPRESSION","VALUES_SOURCE_DEFAULT","VALUES_SOURCES_LABELS","VALUES_SOURCES_PATHS","VALUES_SOURCES_DEFAULTS","label","getValuesSource","field","source","values","get","createInjector","bootstrapModules","Injector","init","createFormContainer","prefix","container","document","createElement","classList","EXPRESSION_PROPERTIES","TEMPLATE_PROPERTIES","findErrors","errors","path","pathStringify","isRequired","required","pathParse","split","isNaN","parseInt","pathsEqual","a","b","every","join","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","stringify","getSchemaVariables","schema","inputs","outputs","components","component","valuesKey","forEach","prop","property","expressionVariables","templateVariables","variable","UpdateFieldValidationHandler","form","validator","_form","_validator","_path","_getState","oldErrors","fieldErrors","validateField","updatedErrors","set","_setState","ViewerCommands","_commandStack","registerHandlers","entries","getHandlers","updateFieldValidation","__depends__","commandModule","viewerCommands","FN_REF","DEFAULT_PRIORITY","EventBus","_listeners","_destroy","events","priority","callback","that","isFunction","isNumber","actualCallback","bind","self","e","_addListener","once","wrappedCallback","__isTomb","apply","off","_removeListener","InternalEvent","firstListener","returnValue","args","call","originalType","_invokeListeners","defaultPrevented","handleError","listener","_invokeListener","invokeFunction","stopPropagation","preventDefault","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","assign","countDecimals","number","num","Big","toString","toFixed","isValidNumber","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","replace","isFirstDot","isFirstMinus","keypressIsNumeric","dotIndex","indexOf","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","EMAIL_PATTERN","PHONE_PATTERN","VALIDATE_FEEL_PROPERTIES","Validator","_expressionLanguage","_conditionChecker","validate","increment","bigValue","bigIncrement","mod","cmp","minus","nextValue","plus","evaluatedValidation","evaluateFEELValues","pattern","RegExp","isUncheckedCheckbox","isUnsetValue","isNil","isEmptyMultiselect","min","max","trim","minLength","maxLength","validationType","evaluatedValidate","initialData","newData","filteredData","evaluatedValue","FormFieldRegistry","_formFields","_ids","Ids","_keys","remove","FormLayouter","_rows","addRow","formFieldId","row","rowsPerComponent","find","r","rows","getRow","allRows","getRowForField","getRows","rowsForField","nextRowId","nextPrefixed","calculateLayout","rowsInOrder","groupByRow","c","ids","groupBy","layout","formRows","flatten","Importer","formLayouter","_formLayouter","importSchema","warnings","importedSchema","importFormField","initializedData","initializeFieldValues","parentId","_parent","assigned","claim","importFormFields","defaultValue","config","fieldConfig","valueData","isUndefined","sanitizeValue","initializedFieldValue","emptyValue","importer","formFieldClasses","disabled","readonly","classNames","gridColumnClasses","columns","prefixId","formId","Button","props","_jsx","class","keyed","group","create","FormRenderContext","createContext","Empty","Children","Element","Row","Column","getService","FormContext","useService","useContext","useFilteredFormData","useMemo","useCondition","useExpressionEvaluation","formData","useKeyDownAction","targetKey","listenerElement","window","downHandler","useEffect","addEventListener","removeEventListener","useReadonly","readOnly","useTemplateEvaluation","useSingleLineTemplateEvaluation","evaluatedTemplate","Description","description","evaluatedDescription","Errors","Label","collapseOnEmpty","evaluatedLabel","_jsxs","for","Checkbox","onBlur","onChange","target","checked","errorMessageId","getValuesData","normalizeValuesData","valuesData","_isValueSomething","v","_normalizeValueData","_isAllowedValue","_isReadableType","LOAD_STATES","LOADING","LOADED","ERROR","valuesExpression","staticValues","valuesGetter","setValuesGetter","useState","state","evaluatedValues","keyedValues","buildErrorState","buildLoadedState","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","view","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","offsetString","inboundOffset","serializeDate","date","d","month","getMonth","day","getDate","year","getFullYear","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","padStart","sanitizeDateTimePickerValue","subtype","sanitizeSingleSelectValue","validValues","sanitizeMultiSelectValue","Checklist","outerDivRef","useRef","toggleCheckbox","newValue","onCheckboxBlur","contains","relatedTarget","loadState","useValuesAsync","ref","onClick","defaults","noop","FormField","FormFieldComponent","initialValue","useCallback","hidden","Default","childField","_createElement","_extends","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","Datepicker","collapseLabelOnEmpty","onDateTimeBlur","disallowPassedDates","setDate","dateInputRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","allowInput","dateFormat","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","close","onCalendarMouseDown","onOpen","onClose","onInputKeyDown","dispatchEvent","onInputFocus","onInputBlur","fullId","CalendarIcon","style","width","placeholder","autoComplete","onFocus","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","individualEntries","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","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","Logo","xmlns","viewBox","fill","Lightbox","onBackdropClick","href","rel","Link","title","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","body","FormComponent","ariaLabel","onSubmit","onReset","handleSubmit","handleReset","noValidate","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","element","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","lcTag","tagName","attributes","attribute","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Image","alt","evaluatedImageSource","safeSource","altText","ImagePlaceholder","TemplatedInputAdorner","evaluatedPre","evaluatedPost","Numberfield","appearance","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","decrement","onKeyPress","selectionStart","selectionEnd","step","AngelUpIcon","AngelDownIcon","Radio","onRadioBlur","option","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","shouldApplyFilter","setShouldApplyFilter","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","o","valueLabel","filteredOptions","keyDownEvent","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","_Fragment","XMarkIcon","SimpleSelect","selectRef","select","findIndex","Select","searchable","selectProps","Spacer","Taglist","setFilteredOptions","hasOptionsLeft","setHasOptionsLeft","onFilterChange","selectValue","at","deselectValue","onComponentBlur","onTagRemoveClick","nextTag","closest","nextSibling","shouldDisplayDropdown","Text","textLinkTarget","disableLinks","text","safeHtml","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","image","ImageIcon","NumberIcon","radio","RadioIcon","SelectIcon","spacer","SpacerIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","default","FormIcon","FormFields","Renderer","App","setState","formContext","_id","newState","update","_update","submit","reset","Provider","renderer","importModule","renderModule","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","_getSubmitData","filteredErrors","_applyConditions","parentNode","detach","appendChild","removeChild","setProperty","additionalModules","modules","_getModules","core","ExpressionLanguageModule","MarkdownModule","ViewerCommandsModule","submitData","filteredSubmitData","toFilter","schemaVersion","createForm","then"],"mappings":"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E;AACf,IAAA,OAAO,IAAI,CAACH,UAAU,CAACI,QAAQ,CAACD,QAAQ,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AAEAJ,gBAAgB,CAACjD,OAAO,GAAG,EAAE;;ACrB7B,qBAAe;EACb2C,QAAQ,EAAE,CAAE,kBAAkB,CAAE;AAChCY,EAAAA,gBAAgB,EAAE,CAAE,MAAM,EAAEN,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,SAASO,YAAYA,CAACrE,QAAQ,EAAEsE,QAAQ,EAAE;AAEvD;AACF;AACA;AACA;AACA;AACE,EAAA,IAAI,CAACC,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,GAAGR,QAAQ,CAAA;;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","x_google_ignoreList":[7,8,17]}
|