@bpmn-io/form-js-viewer 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/form-js.css +140 -43
- package/dist/index.cjs +733 -468
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +654 -380
- package/dist/index.es.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/render/components/form-fields/Button.d.ts +1 -0
- package/dist/types/render/components/form-fields/Checkbox.d.ts +1 -0
- package/dist/types/render/components/form-fields/Checklist.d.ts +7 -1
- package/dist/types/render/components/form-fields/Datetime.d.ts +2 -0
- package/dist/types/render/components/form-fields/Default.d.ts +2 -0
- package/dist/types/render/components/form-fields/Image.d.ts +2 -0
- package/dist/types/render/components/form-fields/Number.d.ts +1 -0
- package/dist/types/render/components/form-fields/Radio.d.ts +7 -1
- package/dist/types/render/components/form-fields/Select.d.ts +7 -1
- package/dist/types/render/components/form-fields/Taglist.d.ts +7 -1
- package/dist/types/render/components/form-fields/Text.d.ts +2 -0
- package/dist/types/render/components/form-fields/Textarea.d.ts +1 -0
- package/dist/types/render/components/form-fields/Textfield.d.ts +1 -0
- package/dist/types/render/components/form-fields/parts/SearchableSelect.d.ts +1 -0
- package/dist/types/render/components/form-fields/parts/SimpleSelect.d.ts +1 -0
- package/dist/types/render/components/index.d.ts +1 -1
- package/dist/types/util/constants/ValuesSourceConstants.d.ts +4 -1
- package/dist/types/util/index.d.ts +1 -0
- package/package.json +4 -4
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/core/ConditionChecker.js","../../../node_modules/diagram-js/lib/core/EventBus.js","../src/render/components/util/numberFieldUtil.js","../src/core/Validator.js","../src/core/FormFieldRegistry.js","../src/util/feel.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/Sanitizer.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/components/Description.js","../src/render/components/Errors.js","../src/render/components/Label.js","../src/render/components/form-fields/Checkbox.js","../src/render/hooks/useService.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/hooks/useCondition.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/hooks/useKeyDownAction.js","../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/hooks/useEvaluation.js","../src/render/hooks/useExpressionValue.js","../src/render/components/form-fields/icons/ImagePlaceholder.svg","../src/render/components/form-fields/Image.js","../src/render/components/form-fields/Number.js","../src/render/components/form-fields/Radio.js","../src/render/components/form-fields/Select.js","../src/render/components/form-fields/icons/Close.svg","../src/render/components/form-fields/Taglist.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/form-fields/Text.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.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 { unaryTest, evaluate } from 'feelin';\nimport { isString } from 'min-dash';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport 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 /**\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 _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 {\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 * 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 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 * @param {string|Array<string>} events\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback\n * @param {Object} [that] Pass context (`this`) to the callback\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 executed only once.\n *\n * @param {string} event the event name to register for\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback the callback to execute\n * @param {Object} [that] Pass context (`this`) to the callback\n */\nEventBus.prototype.once = function(event, 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(event, 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(event, 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|Array<string>} events\n * @param {Function} [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 EventBus event.\n *\n * @param {Object} data\n *\n * @return {Object} event, recognized by the eventBus\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 a named event.\n *\n * @example\n *\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 * @param {string} [name] the optional event name\n * @param {Object} [event] the event object\n * @param {...Object} additional arguments to be passed to the callback functions\n *\n * @return {boolean} the events return value, if specified or false if the\n * default action was prevented by listeners\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\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\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\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 {Object} listener { priority, callback }\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\nEventBus.prototype._getListeners = function(name) {\n return this._listeners[name];\n};\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 {Array<Object>} 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 } 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\nexport default class Validator {\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 if (validate.pattern && value && !new RegExp(validate.pattern).test(value)) {\n errors = [\n ...errors,\n `Field must match pattern ${ validate.pattern }.`\n ];\n }\n\n if (validate.required && (isNil(value) || value === '')) {\n errors = [\n ...errors,\n 'Field is required.'\n ];\n }\n\n if ('min' in validate && (value || value === 0) && value < validate.min) {\n errors = [\n ...errors,\n `Field must have minimum value of ${ validate.min }.`\n ];\n }\n\n if ('max' in validate && (value || value === 0) && value > validate.max) {\n errors = [\n ...errors,\n `Field must have maximum value of ${ validate.max }.`\n ];\n }\n\n if ('minLength' in validate && value && value.trim().length < validate.minLength) {\n errors = [\n ...errors,\n `Field must have minimum length of ${ validate.minLength }.`\n ];\n }\n\n if ('maxLength' in validate && value && value.trim().length > validate.maxLength) {\n errors = [\n ...errors,\n `Field must have maximum length of ${ validate.maxLength }.`\n ];\n }\n\n if ('validationType' in validate && value && validate.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 validate && value && validate.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 = [];","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 { isString } from 'min-dash';\n\nimport { parseExpressions, parseUnaryTests } from 'feelin';\n\n/**\n * Retrieve variable names from given FEEL unary test.\n *\n * @param {string} unaryTest\n * @returns {string[]}\n */\nexport function getVariableNames(unaryTest) {\n const tree = parseUnaryTests(unaryTest);\n const cursor = tree.cursor();\n\n const variables = new Set();\n do {\n const node = cursor.node;\n\n if (node.type.name === 'VariableName') {\n variables.add(unaryTest.slice(node.from, node.to));\n }\n\n } while (cursor.next());\n\n return Array.from(variables);\n}\n\n/**\n * Retrieve variable names from given FEEL expression.\n *\n * @param {string} expression\n * @returns {string[]}\n */\nexport function getExpressionVariableNames(expression) {\n const tree = parseExpressions(expression);\n const cursor = tree.cursor();\n\n const variables = new Set();\n do {\n const node = cursor.node;\n\n if (node.type.name === 'VariableName') {\n variables.add(expression.slice(node.from, node.to));\n }\n\n } while (cursor.next());\n\n return Array.from(variables);\n}\n\nexport function isExpression(value) {\n return isString(value) && value.startsWith('=');\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};\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};\n\nexport const VALUES_SOURCES_PATHS = {\n [VALUES_SOURCES.STATIC]: [ 'values' ],\n [VALUES_SOURCES.INPUT]: [ 'valuesKey' ],\n};\n\nexport const VALUES_SOURCES_DEFAULTS = {\n [VALUES_SOURCES.STATIC]: [],\n [VALUES_SOURCES.INPUT]: '',\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 { isString } from 'min-dash';\n\nimport { getExpressionVariableNames, getVariableNames } from './feel';\n\nexport * from './constants';\nexport * from './injector';\nexport * from './form';\n\nconst EXPRESSION_PROPERTIES = [\n 'alt',\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) {\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 conditional\n } = component;\n\n if ([ 'button' ].includes(type)) {\n return variables;\n }\n\n if (key) {\n variables = [ ...variables, key ];\n }\n\n if (valuesKey) {\n variables = [ ...variables, valuesKey ];\n }\n\n if (conditional && conditional.hide) {\n\n // cut off initial '='\n const conditionVariables = getVariableNames(conditional.hide.slice(1));\n\n variables = [ ...variables, ...conditionVariables ];\n }\n\n EXPRESSION_PROPERTIES.forEach((prop) => {\n const property = component[prop];\n\n if (property && isExpression(property)) {\n\n // cut off initial '='\n const expressionVariables = getExpressionVariableNames(property.slice(1));\n\n variables = [ ...variables, ...expressionVariables ];\n }\n });\n\n return variables;\n }, []);\n\n // remove duplicates\n return Array.from(new Set(variables));\n}\n\n\n// helper ///////////////\n\nfunction isExpression(value) {\n return isString(value) && value.startsWith('=');\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 */\n constructor(formFieldRegistry, formFields) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\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 const importedSchema = this.importFormField(clone(schema)),\n initializedData = this.initializeFieldValues(clone(data));\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 fieldImplementation = this._formFields.get(type);\n let valueData = get(data, _path);\n\n if (!isUndefined(valueData) && fieldImplementation.sanitizeValue) {\n valueData = fieldImplementation.sanitizeValue({ formField, data, value: valueData });\n }\n\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldImplementation.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' ];","import Importer from './Importer';\n\nexport default {\n importer: [ 'type', Importer ]\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];\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 */\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\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}","import snarkdown from '@bpmn-io/snarkdown';\nimport classNames from 'classnames';\n\nimport { sanitizeHTML, sanitizeImageSource } from './Sanitizer';\n\nexport function formFieldClasses(type, { errors = [], disabled = 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 });\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\nexport function markdownToHTML(markdown) {\n const htmls = markdown\n .toString()\n .split(/(?:\\r?\\n){2,}/)\n .map(line =>\n /^((\\d+.)|[><\\s#-*])/.test(line)\n ? snarkdown(line)\n : `<p>${ snarkdown(line) }</p>`,\n );\n\n return htmls.join('\\n\\n');\n}\n\n// see https://github.com/developit/snarkdown/issues/70\nexport function safeMarkdown(markdown) {\n const html = markdownToHTML(markdown);\n\n return sanitizeHTML(html);\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 safeImageSource(src) {\n return sanitizeImageSource(src);\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.create = function(options = {}) {\n\n return {\n action: 'submit',\n ...options\n };\n};\n\nButton.type = type;\nButton.label = 'Button';\nButton.keyed = true;","import { createContext } from 'preact';\n\nconst FormRenderContext = createContext({\n Empty: (props) => {\n return null;\n },\n Children: (props) => {\n return props.children;\n },\n Element: (props) => {\n return props.children;\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;","export default function Description(props) {\n const { description } = props;\n\n if (!description) {\n return null;\n }\n\n return <div class=\"fjs-form-field-description\">{ description }</div>;\n}","export default function Errors(props) {\n const { errors } = props;\n\n if (!errors.length) {\n return null;\n }\n\n return <div class=\"fjs-form-field-error\">\n <ul>\n {\n errors.map(error => {\n return <li>{ error }</li>;\n })\n }\n </ul>\n </div>;\n}","import classNames from 'classnames';\n\nexport default function Label(props) {\n const {\n id,\n label,\n collapseOnEmpty = true,\n required = false\n } = props;\n\n return (\n <label for={ id } class={ classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class']) }>\n { props.children }\n { label || '' }\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 field,\n value = false\n } = props;\n\n const {\n description,\n id,\n label\n } = field;\n\n const onChange = ({ target }) => {\n props.onChange({\n field,\n value: target.checked\n });\n };\n\n const { formId } = useContext(FormContext);\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled }), { 'fjs-checked': value }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ false }>\n <input\n checked={ value }\n class=\"fjs-input\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n type=\"checkbox\"\n onChange={ onChange } />\n </Label>\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nCheckbox.create = function(options = {}) {\n return {\n ...options\n };\n};\n\nCheckbox.type = type;\nCheckbox.label = 'Checkbox';\nCheckbox.keyed = true;\nCheckbox.emptyValue = false;\nCheckbox.sanitizeValue = ({ value }) => value === true;","import {\n useContext\n} from 'preact/hooks';\n\nimport { FormContext } from '../context';\n\n\nexport default function(type, strict) {\n const {\n getService\n } = useContext(FormContext);\n\n return getService(type, strict);\n}","import { useEffect, useState } from 'preact/hooks';\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 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 useEffect(() => {\n\n let values = [];\n\n if (valuesKey !== undefined) {\n\n const keyedValues = (initialData || {})[ valuesKey ];\n\n if (keyedValues && Array.isArray(keyedValues)) {\n values = keyedValues;\n }\n }\n else if (staticValues !== undefined) {\n values = Array.isArray(staticValues) ? staticValues : [];\n }\n else {\n setValuesGetter(getErrorState('No values source defined in the form definition'));\n return;\n }\n\n setValuesGetter(buildLoadedState(values));\n\n }, [ valuesKey, staticValues, initialData ]);\n\n return valuesGetter;\n}\n\nconst getErrorState = (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?.[0]);\n const minute = parseInt(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?.[0]);\n const minute = parseInt(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 { get } from 'min-dash';\nimport { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\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 const {\n valuesKey,\n values\n } = formField;\n\n try {\n const validValues = (valuesKey ? get(data, [ valuesKey ]) : values).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 const {\n valuesKey,\n values\n } = formField;\n\n try {\n const validValues = (valuesKey ? get(data, [ valuesKey ]) : values).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 } 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 field,\n value = [],\n } = props;\n\n const {\n description,\n id,\n label\n } = field;\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 {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled })) }>\n <Label\n label={ label } />\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 id={ prefixId(`${id}-${index}`, formId) }\n type=\"checkbox\"\n onClick={ () => toggleCheckbox(v.value) } />\n </Label>\n );\n })\n }\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nChecklist.create = function(options = {}) {\n\n if (options.valuesKey) return options;\n\n return {\n values: [\n {\n label: 'Value',\n value: 'value'\n }\n ],\n ...options\n };\n};\n\nChecklist.type = type;\nChecklist.label = 'Checklist';\nChecklist.keyed = true;\nChecklist.emptyValue = [];\nChecklist.sanitizeValue = sanitizeMultiSelectValue;","import useService from './useService.js';\n\n/**\n * Check if condition is met with given variables.\n *\n * @param {string | undefined} condition\n * @param {import('../../types').Data} data\n *\n * @returns {boolean} true if condition is met or no condition or condition checker exists\n */\nexport function useCondition(condition, data) {\n const initialData = useService('form')._getState().initialData;\n const conditionChecker = useService('conditionChecker', false);\n\n if (!conditionChecker) {\n return null;\n }\n\n // make sure we do not use data from hidden fields\n const filteredData = {\n ...initialData,\n ...conditionChecker.applyConditions(data, data)\n };\n\n return conditionChecker.check(condition, filteredData);\n}\n","import { useContext } from 'preact/hooks';\n\nimport { get } from 'min-dash';\n\nimport { FormRenderContext } from '../context';\n\nimport useService from '../hooks/useService';\nimport { useCondition } from '../hooks/useCondition';\n\nimport { findErrors } from '../../util';\n\nconst noop = () => false;\n\n\nexport default function FormField(props) {\n const {\n field,\n onChange\n } = props;\n\n const { _path } = field;\n\n const formFields = useService('formFields'),\n form = useService('form');\n\n const {\n data,\n errors,\n properties\n } = form._getState();\n\n const {\n Element,\n Empty\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 value = get(data, _path);\n\n const fieldErrors = findErrors(errors, _path);\n\n const disabled = properties.readOnly || field.disabled || false;\n\n const hidden = useHideCondition(field, data);\n if (hidden) {\n return <Empty />;\n }\n\n return (\n <Element field={ field }>\n <FormFieldComponent\n { ...props }\n disabled={ disabled }\n errors={ fieldErrors }\n onChange={ disabled ? noop : onChange }\n value={ value } />\n </Element>\n );\n}\n\nfunction useHideCondition(field, data) {\n const hideCondition = field.conditional && field.conditional.hide;\n\n return useCondition(hideCondition, data) === true;\n}\n","import { useContext } from 'preact/hooks';\n\nimport FormField from '../FormField';\n\nimport { FormRenderContext } from '../../context';\n\n\nexport default function Default(props) {\n const {\n Children,\n Empty\n } = useContext(FormRenderContext);\n\n const { field } = props;\n\n const { components = [] } = field;\n\n return <Children class=\"fjs-vertical-layout\" field={ field }>\n {\n components.map(childField => {\n return (\n <FormField\n { ...props }\n key={ childField.id }\n field={ childField } />\n );\n })\n }\n {\n components.length ? null : <Empty />\n }\n </Children>;\n}\n\nDefault.create = function(options = {}) {\n return {\n components: [],\n ...options\n };\n};\n\nDefault.type = 'default';\nDefault.keyed = false;","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 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 fill: \"currentColor\"\n})));","import classNames from 'classnames';\n\nexport default function InputAdorner(props) {\n\n const {\n pre = null,\n post = null,\n rootRef,\n inputRef,\n children,\n disabled,\n hasErrors\n } = props;\n\n const onAdornmentClick = () => inputRef?.current?.focus();\n\n return <div class={ classNames('fjs-input-group', { 'disabled': disabled }, { 'hasErrors': hasErrors }) } ref={ rootRef }>\n { pre !== null && <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={ onAdornmentClick }> { pre } </span> }\n { children }\n { post !== null && <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={ onAdornmentClick }> { 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 formId,\n required,\n disabled,\n disallowPassedDates,\n date,\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 errorHandler: () => { /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */ }\n };\n\n if (disallowPassedDates) {\n config = { ...config, minDate: 'today' };\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)) return;\n\n flatpickrInstance.open();\n }, [ flatpickrInstance ]\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\n }, [ isInputDirty ]\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 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 placeholder=\"mm/dd/yyyy\"\n autoComplete=\"false\"\n onFocus={ onInputFocus }\n onKeyDown={ onInputKeyDown }\n onMouseDown={ (e) => !flatpickrInstance.isOpen && flatpickrInstance.open() }\n onBlur={ onInputBlur }\n onInput={ (e) => setIsInputDirty(true) }\n data-input />\n </div>\n </InputAdorner>\n </div>\n ;\n}\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 d: \"M13 14.41L18.59 20 20 18.59l-5-5.01V5h-2v9.41z\",\n fill: \"currentColor\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\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 fill: \"currentColor\"\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 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 keyEventsListener = 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 }, keyEventsListener);\n\n useKeyDownAction('ArrowDown', () => {\n if (values.length) {\n changeFocusedValueIndex(1);\n setMouseControl(false);\n }\n }, keyEventsListener);\n\n useKeyDownAction('Enter', () => {\n if (focusedItem) {\n onValueSelected(focusedItem);\n }\n }, keyEventsListener);\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 formId,\n required,\n disabled,\n use24h = false,\n timeInterval,\n time,\n setTime\n } = props;\n\n const timeInputRef = useRef();\n const [ dropdownIsOpen, setDropdownIsOpen ] = useState(false);\n const useDropdown = useMemo(() => timeInterval !== 1, [ timeInterval ]);\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 % timeInterval);\n setRawValue(formatTime(use24h, intervalAdjustedTime));\n\n if (intervalAdjustedTime != time) {\n setTime(intervalAdjustedTime);\n }\n\n }, [ time, setTime, use24h, timeInterval ]);\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 % timeInterval);\n\n // Enforce the raw text to be formatted properly\n setRawValue(formatTime(use24h, correctedMinutes));\n setTime(correctedMinutes);\n\n }, [ rawValue, timeInterval, use24h, setTime ]);\n\n const timeOptions = useMemo(() => {\n\n const minutesInDay = 24 * 60;\n const intervalCount = Math.floor(minutesInDay / timeInterval);\n return [ ...Array(intervalCount).keys() ].map(intervalIndex => formatTime(use24h, intervalIndex * timeInterval));\n\n }, [ timeInterval, use24h ]);\n\n const initialFocusIndex = useMemo(() => {\n\n // if there are no options, there will not be any focusing\n if (!timeOptions || !timeInterval) return null;\n\n // if there is a set minute value, we focus it in the dropdown\n if (time) return time / timeInterval;\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 % timeInterval;\n return flooredCacheTime / timeInterval;\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, timeInterval, 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 };\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 <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 placeholder={ use24h ? 'hh:mm' : 'hh:mm ?m' }\n autoComplete=\"false\"\n onFocus={ () => useDropdown && setDropdownIsOpen(true) }\n onClick={ () => 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\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 } 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 } 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 field,\n onChange,\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\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 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 datePickerProps = {\n id,\n label: dateLabel,\n collapseLabelOnEmpty: !timeLabel,\n formId,\n required,\n disabled,\n disallowPassedDates,\n date: dateTime.date,\n setDate\n };\n\n const timePickerProps = {\n id,\n label: timeLabel,\n collapseLabelOnEmpty: !dateLabel,\n formId,\n required,\n disabled,\n use24h,\n timeInterval,\n time: dateTime.time,\n setTime\n };\n\n return <div class={ formFieldClasses(type, { errors: allErrors, disabled }) }>\n <div class={ classNames('fjs-vertical-group') }>\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 } />\n </div>;\n}\n\nDatetime.create = function(options = {}) {\n const newOptions = {};\n set(newOptions, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\n set(newOptions, DATE_LABEL_PATH, 'Date');\n return { ...newOptions, ...options };\n};\n\nDatetime.type = type;\nDatetime.keyed = true;\nDatetime.emptyValue = null;\nDatetime.sanitizeValue = sanitizeDateTimePickerValue;","/**\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: #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: #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 } = form._getState();\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 noValidate\n >\n <FormField\n field={ schema }\n onChange={ onChange }\n />\n\n <PoweredBy />\n </form>\n );\n}","import useService from './useService.js';\n\n/**\n *\n * @param {string | undefined} expression\n * @param {import('../../types').Data} data\n */\nexport function useEvaluation(expression, data) {\n const initialData = useService('form')._getState().initialData;\n const conditionChecker = useService('conditionChecker', false);\n\n if (!conditionChecker) {\n return null;\n }\n\n // make sure we do not use data from hidden fields\n const filteredData = {\n ...initialData,\n ...conditionChecker.applyConditions(data, data)\n };\n\n return conditionChecker.evaluate(expression, filteredData);\n}\n","import { isString } from 'min-dash';\n\nimport useService from './useService';\nimport { useEvaluation } from './useEvaluation';\n\n/**\n *\n * @param {string} value\n */\nexport function useExpressionValue(value) {\n const formData = useService('form')._getState().data;\n\n if (!isExpression(value)) {\n return value;\n }\n\n // We can ignore this hook rule as we do not use\n // state or effects in our custom hooks\n /* eslint-disable-next-line react-hooks/rules-of-hooks */\n return useEvaluation(value, formData);\n}\n\n\n// helper ///////////////\n\nfunction isExpression(value) {\n return isString(value) && value.startsWith('=');\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 } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { useExpressionValue } from '../../hooks/useExpressionValue';\n\nimport {\n formFieldClasses,\n prefixId,\n safeImageSource\n} from '../Util';\n\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\n\nconst type = 'image';\n\n\nexport default function Image(props) {\n const {\n field\n } = props;\n\n const {\n alt,\n id,\n source\n } = field;\n\n const safeSource = safeImageSource(useExpressionValue(source));\n const altText = useExpressionValue(alt);\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.create = function(options = {}) {\n return {\n ...options\n };\n};\n\nImage.type = type;\nImage.keyed = false;","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/InputAdorner';\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 field,\n value,\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.sanitizeValue({ value, formField: field }) === Numberfield.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 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 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\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <InputAdorner disabled={ disabled } pre={ prefixAdorner } post={ suffixAdorner }>\n <div class={ classNames('fjs-vertical-group', { 'disabled': disabled }, { 'hasErrors': errors.length }) }>\n <input\n ref={ inputRef }\n class=\"fjs-input\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onKeyDown={ onKeyDown }\n onKeyPress={ onKeyPress }\n\n // @ts-ignore\n onInput={ (e) => setValue(e.target.value) }\n type=\"text\"\n autoComplete=\"off\"\n step={ arrowIncrementValue }\n value={ displayValue } />\n <div class={ classNames('fjs-number-arrow-container', { 'disabled': disabled }) }>\n { /* we're disabling tab navigation on both buttons to imitate the native browser behavior of input[type='number'] increment arrows */ }\n <button class=\"fjs-number-arrow-up\" type=\"button\" onClick={ () => increment() } tabIndex={ -1 }>˄</button>\n <div class=\"fjs-number-arrow-separator\" />\n <button class=\"fjs-number-arrow-down\" type=\"button\" onClick={ () => decrement() } tabIndex={ -1 }>˅</button>\n </div>\n </div>\n </InputAdorner>\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nNumberfield.create = (options = {}) => options;\nNumberfield.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\nNumberfield.type = type;\nNumberfield.keyed = true;\nNumberfield.label = 'Number';\nNumberfield.emptyValue = null;","import { useContext } 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 field,\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 onChange = (v) => {\n props.onChange({\n field,\n value: v\n });\n };\n\n const {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\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 id={ prefixId(`${ id }-${ index }`, formId) }\n type=\"radio\"\n onClick={ () => onChange(option.value) } />\n </Label>\n );\n })\n }\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nRadio.create = function(options = {}) {\n\n if (options.valuesKey) return options;\n\n return {\n values: [\n {\n label: 'Value',\n value: 'value'\n }\n ],\n ...options\n };\n};\n\nRadio.type = type;\nRadio.label = 'Radio';\nRadio.keyed = true;\nRadio.emptyValue = null;\nRadio.sanitizeValue = sanitizeSingleSelectValue;","import { useContext } from 'preact/hooks';\nimport useOptionsAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\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';\n\nconst type = 'select';\n\nexport default function Select(props) {\n const {\n disabled,\n errors = [],\n field,\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 onChange = ({ target }) => {\n props.onChange({\n field,\n value: target.value === '' ? null : target.value\n });\n };\n\n const {\n state: loadState,\n values: options\n } = useOptionsAsync(field);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <select\n class=\"fjs-select\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onChange={ onChange }\n value={ value || '' }>\n <option value=\"\"></option>\n {\n loadState == LOAD_STATES.LOADED && options.map((option, index) => {\n return (\n <option\n key={ `${ id }-${ index }` }\n value={ option.value }>\n { option.label }\n </option>\n );\n })\n }\n </select>\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nSelect.create = function(options = {}) {\n\n if (options.valuesKey) return options;\n\n return {\n values: [\n {\n label: 'Value',\n value: 'value'\n }\n ],\n ...options\n };\n};\n\nSelect.type = type;\nSelect.label = 'Select';\nSelect.keyed = true;\nSelect.emptyValue = null;\nSelect.sanitizeValue = sanitizeSingleSelectValue;","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 fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8 12 4.7z\",\n fill: \"currentColor\"\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 CloseIcon from './icons/Close.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 field,\n value : values = []\n } = props;\n\n const {\n description,\n id,\n label\n } = field;\n\n const { formId } = useContext(FormContext);\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 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 return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n label={ label }\n id={ prefixId(`${id}-search`, formId) } />\n <div class={ classNames('fjs-taglist', { 'disabled': disabled }) }>\n {!disabled && loadState === LOAD_STATES.LOADED &&\n <div class=\"fjs-taglist-tags\">\n {\n values.map((v) => {\n return (\n <div class=\"fjs-taglist-tag\" onMouseDown={ (e) => e.preventDefault() }>\n <span class=\"fjs-taglist-tag-label\">\n {valueToOptionMap[v] ? valueToOptionMap[v].label : `unexpected value{${v}}`}\n </span>\n <button\n type=\"button\"\n title=\"Remove tag\"\n class=\"fjs-taglist-tag-remove\"\n onClick={ (event) => onTagRemoveClick(event, v) }>\n <CloseIcon />\n </button>\n </div>\n );\n })\n }\n </div>\n }\n <input\n disabled={ disabled }\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={ 'Search' }\n autoComplete=\"off\"\n onKeyDown={ (e) => onInputKeyDown(e) }\n onMouseDown={ () => setIsEscapeClose(false) }\n onFocus={ () => setIsDropdownExpanded(true) }\n onBlur={ () => { setIsDropdownExpanded(false); setFilter(''); } } />\n </div>\n <div class=\"fjs-taglist-anchor\">\n {!disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed && <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 } />\n </div>;\n}\n\nTaglist.create = function(options = {}) {\n\n if (options.valuesKey) return options;\n\n return {\n values: [\n {\n label: 'Value',\n value: 'value'\n }\n ],\n ...options\n };\n};\n\nTaglist.type = type;\nTaglist.label = 'Taglist';\nTaglist.keyed = true;\nTaglist.emptyValue = [];\nTaglist.sanitizeValue = sanitizeMultiSelectValue;","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: \"M45 17a3 3 0 013 3v14a3 3 0 01-3 3H9a3 3 0 01-3-3V20a3 3 0 013-3h36zm-9 8.889H18v2.222h18V25.89z\"\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 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 width: \"54\",\n height: \"54\",\n fill: \"none\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\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-6zM18 36h-6v6h6v-6zm-6-2a2 2 0 00-2 2v6a2 2 0 002 2h6a2 2 0 002-2v-6a2 2 0 00-2-2h-6zM18 24h-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 fill: \"#161616\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23 14.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1zM23 26.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1zM23 38.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1z\",\n fill: \"#161616\"\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: \"none\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36c-1.132 0-2.06.928-2.06 2.06v23.549c0 1.132.928 2.06 2.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.592c.39 0 .707.317.707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\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 fill: \"#000\",\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 clipRule: \"evenodd\"\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: \"54\",\n height: \"54\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"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 fill: \"#000\"\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 fill: \"#505562\"\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 x: \"15\",\n y: \"17\",\n width: \"24\",\n height: \"4\",\n rx: \"1\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"15\",\n y: \"25\",\n width: \"24\",\n height: \"4\",\n rx: \"1\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"15\",\n y: \"33\",\n width: \"13\",\n height: \"4\",\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}, 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}, 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 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\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: \"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}, 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-.23zM44.35 28.79l2.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}, 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}, 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.848.849-6.363 6.363-.849-.848 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 width: \"54\",\n height: \"54\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"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 fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"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.754c.06-.038.116-.083.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 fill: \"#000\"\n})));","import ButtonIcon from './Button.svg';\nimport CheckboxIcon from './Checkbox.svg';\nimport ChecklistIcon from './Checklist.svg';\nimport DatetimeIcon from './Datetime.svg';\nimport TaglistIcon from './Taglist.svg';\nimport FormIcon from './Form.svg';\nimport ColumnsIcon from './Group.svg';\nimport NumberIcon from './Number.svg';\nimport RadioIcon from './Radio.svg';\nimport SelectIcon from './Select.svg';\nimport TextIcon from './Text.svg';\nimport TextfieldIcon from './Textfield.svg';\nimport TextareaIcon from './Textarea.svg';\nimport ImageIcon from './Image.svg';\n\nexport const iconsByType = {\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 taglist: TaglistIcon,\n text: TextIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n default: FormIcon\n};","import Markup from 'preact-markup';\n\nimport { isExpression } from '../../../util/feel';\n\nimport { useExpressionValue } from '../../hooks/useExpressionValue';\n\nimport { iconsByType } from '../icons';\n\nimport {\n formFieldClasses,\n safeMarkdown\n} from '../Util';\n\nconst type = 'text';\n\n\nexport default function Text(props) {\n const { field, disabled } = props;\n\n const { text = '' } = field;\n\n const textValue = useExpressionValue(text) || '';\n\n return <div class={ formFieldClasses(type) }>\n { renderText(field, textValue, disabled) }\n </div>;\n}\n\nText.create = function(options = {}) {\n return {\n text: '# Text',\n ...options\n };\n};\n\nText.type = type;\nText.keyed = false;\n\n\n// helper //////////////\n\nfunction renderText(field, content, disabled) {\n const { text } = field;\n\n const Icon = iconsByType[ 'text' ];\n\n if (disabled) {\n if (!text) {\n return <div class=\"fjs-form-field-placeholder\"><Icon viewBox=\"0 0 54 54\" />Text view is empty</div>;\n }\n\n if (isExpression(text)) {\n return <div class=\"fjs-form-field-placeholder\"><Icon viewBox=\"0 0 54 54\" />Text view is populated by an expression</div>;\n }\n }\n\n return <Markup markup={ safeMarkdown(content) } trim={ false } />;\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/InputAdorner';\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 field,\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\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <InputAdorner disabled={ disabled } pre={ prefixAdorner } post={ suffixAdorner }>\n <input\n class=\"fjs-input\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onInput={ onChange }\n type=\"text\"\n value={ value } />\n </InputAdorner>\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nTextfield.create = function(options = {}) {\n return {\n ...options\n };\n};\n\nTextfield.type = type;\nTextfield.label = 'Text field';\nTextfield.keyed = true;\nTextfield.emptyValue = '';\nTextfield.sanitizeValue = ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value);","import { isArray, isObject } from 'min-dash';\nimport { useCallback, useContext, useEffect, 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 field,\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 const autoSizeTextarea = useCallback((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 calculatedHeight = parseInt(computed.getPropertyValue('border-top-width'))\n + parseInt(computed.getPropertyValue('padding-top'))\n + textarea.scrollHeight\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, 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\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [ autoSizeTextarea, value ]);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <textarea class=\"fjs-textarea\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onInput={ onInput }\n value={ value }\n ref={ textareaRef } />\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nTextarea.create = function(options = {}) {\n return {\n ...options\n };\n};\n\nTextarea.type = type;\nTextarea.label = 'Text area';\nTextarea.keyed = true;\nTextarea.emptyValue = '';\nTextarea.sanitizeValue = ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value);","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 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 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 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 const { type } = formField;\n\n this.register(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 { ConditionChecker } from './ConditionChecker';\nimport EventBus from './EventBus';\nimport Validator from './Validator';\nimport FormFieldRegistry from './FormFieldRegistry';\n\nimport importModule from '../import';\nimport renderModule from '../render';\n\nexport { FormFieldRegistry };\n\nexport default {\n __depends__: [ importModule, renderModule ],\n conditionChecker: [ 'type', ConditionChecker ],\n eventBus: [ 'type', EventBus ],\n formFieldRegistry: [ 'type', FormFieldRegistry ],\n validator: [ 'type', Validator ]\n};","import Ids from 'ids';\r\nimport { get, isString, set } from 'min-dash';\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) {\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 = []\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 _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 } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\n\r\nconst schemaVersion = 6;\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":["ConditionChecker","constructor","formFieldRegistry","eventBus","_formFieldRegistry","_eventBus","applyConditions","properties","data","conditions","_getConditions","newProperties","key","condition","shouldRemove","_checkHideCondition","check","isString","startsWith","result","unaryTest","slice","error","fire","hide","evaluate","expression","formFields","getAll","reduce","formField","conditional","$inject","FN_REF","DEFAULT_PRIORITY","Array","prototype","EventBus","_listeners","on","_destroy","events","priority","callback","that","isArray","isFunction","isNumber","Error","actualCallback","bind","self","forEach","e","_addListener","next","once","event","wrappedCallback","__isTomb","apply","arguments","off","_removeListener","createEvent","InternalEvent","init","type","firstListener","returnValue","args","call","originalType","_invokeListeners","undefined","defaultPrevented","handleError","listener","cancelBubble","_invokeListener","invokeFunction","stopPropagation","preventDefault","console","newListener","_getListeners","previousListener","_setListeners","name","nextListener","listenerCallback","assign","fn","countDecimals","number","num","Big","toString","toFixed","split","length","isValidNumber","value","isNaN","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","replace","isFirstDot","includes","isFirstMinus","keypressIsNumeric","test","dotIndex","indexOf","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","EMAIL_PATTERN","PHONE_PATTERN","Validator","validateField","field","validate","errors","increment","bigValue","bigIncrement","offset","mod","cmp","minus","nextValue","plus","pattern","RegExp","required","isNil","min","max","trim","minLength","maxLength","validationType","FormFieldRegistry","_formFields","clear","_ids","Ids","_keys","add","id","remove","get","Object","values","getVariableNames","tree","parseUnaryTests","cursor","variables","Set","node","from","to","getExpressionVariableNames","parseExpressions","isExpression","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","getValuesSource","source","createInjector","bootstrapModules","injector","Injector","createFormContainer","prefix","container","document","createElement","classList","EXPRESSION_PROPERTIES","findErrors","path","pathStringify","isRequired","pathParse","map","parseInt","pathsEqual","a","b","every","index","join","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","parse","stringify","getSchemaVariables","schema","components","component","valuesKey","conditionVariables","prop","property","expressionVariables","Importer","importSchema","warnings","importedSchema","importFormField","initializedData","initializeFieldValues","err","parentId","_parent","assigned","claim","_path","importFormFields","defaultValue","fieldImplementation","valueData","isUndefined","sanitizeValue","initializedFieldValue","emptyValue","importer","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","body","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","lcTag","tagName","toLowerCase","attributes","i","attribute","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","formFieldClasses","disabled","classNames","prefixId","formId","markdownToHTML","markdown","htmls","line","snarkdown","safeMarkdown","safeImageSource","Button","props","action","_jsx","label","create","options","keyed","FormRenderContext","createContext","Empty","Children","children","Element","getService","strict","FormContext","Description","description","Errors","Label","collapseOnEmpty","_jsxs","Checkbox","onChange","target","checked","useContext","LOAD_STATES","LOADING","LOADED","ERROR","staticValues","valuesGetter","setValuesGetter","useState","state","initialData","useService","_getState","useEffect","keyedValues","getErrorState","buildLoadedState","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","view","window","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","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","v","sanitizeMultiSelectValue","filter","Checklist","toggleCheckbox","newValue","push","x","loadState","useValuesAsync","useCondition","conditionChecker","filteredData","noop","FormField","form","FormFieldComponent","fieldErrors","readOnly","hidden","useHideCondition","hideCondition","Default","childField","_createElement","_extends","React","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","current","Datepicker","collapseLabelOnEmpty","disallowPassedDates","setDate","dateInputRef","useRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","config","allowInput","dateFormat","static","clickOpens","errorHandler","minDate","instance","flatpickr","onCalendarFocusOut","contains","relatedTarget","close","onCalendarMouseDown","onOpen","addEventListener","onClose","removeEventListener","onInputKeyDown","useCallback","dispatchEvent","onInputFocus","onInputBlur","fullId","width","useKeyDownAction","targetKey","listenerElement","downHandler","DEFAULT_LABEL_GETTER","NOOP","DropdownList","keyEventsListener","getLabel","onValueSelected","height","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","useMemo","changeFocusedValueIndex","delta","individualEntries","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","valueIndex","userMovedCursor","screenX","y","screenY","maxHeight","scrollBehavior","Timepicker","timeInterval","setTime","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","keys","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","newOptions","set","Logo","Lightbox","onBackdropClick","Link","onClick","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","FormComponent","onSubmit","onReset","handleSubmit","handleReset","useEvaluation","useExpressionValue","formData","Image","alt","safeSource","altText","Numberfield","appearance","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","decrement","onKeyDown","onKeyPress","selectionStart","selectionEnd","Radio","option","Select","useOptionsAsync","Taglist","setFilter","filteredOptions","setFilteredOptions","isDropdownExpanded","setIsDropdownExpanded","hasOptionsLeft","setHasOptionsLeft","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","o","onFilterChange","selectValue","at","deselectValue","onTagRemoveClick","nextTag","closest","nextSibling","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","columns","ColumnsIcon","datetime","DatetimeIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","select","SelectIcon","taglist","TaglistIcon","text","TextIcon","textfield","TextfieldIcon","textarea","TextareaIcon","default","FormIcon","Text","textValue","renderText","content","Icon","Markup","Textfield","isObject","String","Textarea","textareaRef","onInput","autoSizeTextarea","style","computed","getComputedStyle","calculatedHeight","getPropertyValue","scrollHeight","minHeight","displayHeight","overflow","FormFields","register","Renderer","App","setState","formContext","_id","newState","update","_update","submit","reset","render","__init__","renderer","__depends__","importModule","renderModule","validator","ids","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","core","submitData","previous","filteredSubmitData","toFilter","schemaVersion","createForm","rest","then"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/core/ConditionChecker.js","../../../node_modules/diagram-js/lib/core/EventBus.js","../src/render/components/util/numberFieldUtil.js","../src/core/Validator.js","../src/core/FormFieldRegistry.js","../src/util/feel.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/Sanitizer.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/components/Description.js","../src/render/components/Errors.js","../src/render/components/Label.js","../src/render/components/form-fields/Checkbox.js","../src/render/hooks/useService.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/hooks/useCondition.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/hooks/useKeyDownAction.js","../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/hooks/useEvaluation.js","../src/render/hooks/useExpressionValue.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 { unaryTest, evaluate } from 'feelin';\nimport { isString } from 'min-dash';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport 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 /**\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 _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 {\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 * 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 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 * @param {string|Array<string>} events\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback\n * @param {Object} [that] Pass context (`this`) to the callback\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 executed only once.\n *\n * @param {string} event the event name to register for\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback the callback to execute\n * @param {Object} [that] Pass context (`this`) to the callback\n */\nEventBus.prototype.once = function(event, 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(event, 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(event, 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|Array<string>} events\n * @param {Function} [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 EventBus event.\n *\n * @param {Object} data\n *\n * @return {Object} event, recognized by the eventBus\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 a named event.\n *\n * @example\n *\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 * @param {string} [name] the optional event name\n * @param {Object} [event] the event object\n * @param {...Object} additional arguments to be passed to the callback functions\n *\n * @return {boolean} the events return value, if specified or false if the\n * default action was prevented by listeners\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\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\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\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 {Object} listener { priority, callback }\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\nEventBus.prototype._getListeners = function(name) {\n return this._listeners[name];\n};\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 {Array<Object>} 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 } 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\nexport default class Validator {\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 if (validate.pattern && value && !new RegExp(validate.pattern).test(value)) {\n errors = [\n ...errors,\n `Field must match pattern ${ validate.pattern }.`\n ];\n }\n\n if (validate.required && (isNil(value) || value === '')) {\n errors = [\n ...errors,\n 'Field is required.'\n ];\n }\n\n if ('min' in validate && (value || value === 0) && value < validate.min) {\n errors = [\n ...errors,\n `Field must have minimum value of ${ validate.min }.`\n ];\n }\n\n if ('max' in validate && (value || value === 0) && value > validate.max) {\n errors = [\n ...errors,\n `Field must have maximum value of ${ validate.max }.`\n ];\n }\n\n if ('minLength' in validate && value && value.trim().length < validate.minLength) {\n errors = [\n ...errors,\n `Field must have minimum length of ${ validate.minLength }.`\n ];\n }\n\n if ('maxLength' in validate && value && value.trim().length > validate.maxLength) {\n errors = [\n ...errors,\n `Field must have maximum length of ${ validate.maxLength }.`\n ];\n }\n\n if ('validationType' in validate && value && validate.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 validate && value && validate.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 = [];","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 { isString } from 'min-dash';\n\nimport { parseExpressions, parseUnaryTests } from 'feelin';\n\n/**\n * Retrieve variable names from given FEEL unary test.\n *\n * @param {string} unaryTest\n * @returns {string[]}\n */\nexport function getVariableNames(unaryTest) {\n const tree = parseUnaryTests(unaryTest);\n const cursor = tree.cursor();\n\n const variables = new Set();\n do {\n const node = cursor.node;\n\n if (node.type.name === 'VariableName') {\n variables.add(unaryTest.slice(node.from, node.to));\n }\n\n } while (cursor.next());\n\n return Array.from(variables);\n}\n\n/**\n * Retrieve variable names from given FEEL expression.\n *\n * @param {string} expression\n * @returns {string[]}\n */\nexport function getExpressionVariableNames(expression) {\n const tree = parseExpressions(expression);\n const cursor = tree.cursor();\n\n const variables = new Set();\n do {\n const node = cursor.node;\n\n if (node.type.name === 'VariableName') {\n variables.add(expression.slice(node.from, node.to));\n }\n\n } while (cursor.next());\n\n return Array.from(variables);\n}\n\nexport function isExpression(value) {\n return isString(value) && value.startsWith('=');\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};\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};\n\nexport const VALUES_SOURCES_PATHS = {\n [VALUES_SOURCES.STATIC]: [ 'values' ],\n [VALUES_SOURCES.INPUT]: [ 'valuesKey' ],\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};\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 { isExpression, getExpressionVariableNames, getVariableNames } from './feel';\n\nexport * from './constants';\nexport * from './injector';\nexport * from './form';\nexport * from './feel';\n\nconst EXPRESSION_PROPERTIES = [\n 'alt',\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) {\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 conditional\n } = component;\n\n if ([ 'button' ].includes(type)) {\n return variables;\n }\n\n if (key) {\n variables = [ ...variables, key ];\n }\n\n if (valuesKey) {\n variables = [ ...variables, valuesKey ];\n }\n\n if (conditional && conditional.hide) {\n\n // cut off initial '='\n const conditionVariables = getVariableNames(conditional.hide.slice(1));\n\n variables = [ ...variables, ...conditionVariables ];\n }\n\n EXPRESSION_PROPERTIES.forEach((prop) => {\n const property = component[prop];\n\n if (property && isExpression(property)) {\n\n // cut off initial '='\n const expressionVariables = getExpressionVariableNames(property.slice(1));\n\n variables = [ ...variables, ...expressionVariables ];\n }\n });\n\n return variables;\n }, []);\n\n // remove duplicates\n return Array.from(new Set(variables));\n}\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 */\n constructor(formFieldRegistry, formFields) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\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 const importedSchema = this.importFormField(clone(schema)),\n initializedData = this.initializeFieldValues(clone(data));\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 fieldImplementation = this._formFields.get(type);\n let valueData = get(data, _path);\n\n if (!isUndefined(valueData) && fieldImplementation.sanitizeValue) {\n valueData = fieldImplementation.sanitizeValue({ formField, data, value: valueData });\n }\n\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldImplementation.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' ];","import Importer from './Importer';\n\nexport default {\n importer: [ 'type', Importer ]\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];\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 */\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\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}","import snarkdown from '@bpmn-io/snarkdown';\nimport classNames from 'classnames';\n\nimport { sanitizeHTML, sanitizeImageSource } from './Sanitizer';\n\nexport function formFieldClasses(type, { errors = [], disabled = 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 });\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\nexport function markdownToHTML(markdown) {\n const htmls = markdown\n .toString()\n .split(/(?:\\r?\\n){2,}/)\n .map(line =>\n /^((\\d+.)|[><\\s#-*])/.test(line)\n ? snarkdown(line)\n : `<p>${ snarkdown(line) }</p>`,\n );\n\n return htmls.join('\\n\\n');\n}\n\n// see https://github.com/developit/snarkdown/issues/70\nexport function safeMarkdown(markdown) {\n const html = markdownToHTML(markdown);\n\n return sanitizeHTML(html);\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 safeImageSource(src) {\n return sanitizeImageSource(src);\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.create = (options = {}) => ({\n action: 'submit',\n ...options\n});\n\nButton.type = type;\nButton.label = 'Button';\nButton.keyed = true;\nButton.group = 'action';","import { createContext } from 'preact';\n\nconst FormRenderContext = createContext({\n Empty: (props) => {\n return null;\n },\n Children: (props) => {\n return props.children;\n },\n Element: (props) => {\n return props.children;\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;","export default function Description(props) {\n const { description } = props;\n\n if (!description) {\n return null;\n }\n\n return <div class=\"fjs-form-field-description\">{ description }</div>;\n}","export default function Errors(props) {\n const { errors } = props;\n\n if (!errors.length) {\n return null;\n }\n\n return <div class=\"fjs-form-field-error\">\n <ul>\n {\n errors.map(error => {\n return <li>{ error }</li>;\n })\n }\n </ul>\n </div>;\n}","import classNames from 'classnames';\n\nexport default function Label(props) {\n const {\n id,\n label,\n collapseOnEmpty = true,\n required = false\n } = props;\n\n return (\n <label for={ id } class={ classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class']) }>\n { props.children }\n { label || '' }\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 field,\n value = false\n } = props;\n\n const {\n description,\n id,\n label\n } = field;\n\n const onChange = ({ target }) => {\n props.onChange({\n field,\n value: target.checked\n });\n };\n\n const { formId } = useContext(FormContext);\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled }), { 'fjs-checked': value }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ false }>\n <input\n checked={ value }\n class=\"fjs-input\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n type=\"checkbox\"\n onChange={ onChange } />\n </Label>\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nCheckbox.create = (options = {}) => ({\n ...options\n});\n\nCheckbox.type = type;\nCheckbox.label = 'Checkbox';\nCheckbox.keyed = true;\nCheckbox.emptyValue = false;\nCheckbox.sanitizeValue = ({ value }) => value === true;\nCheckbox.group = 'selection';","import {\n useContext\n} from 'preact/hooks';\n\nimport { FormContext } from '../context';\n\n\nexport default function(type, strict) {\n const {\n getService\n } = useContext(FormContext);\n\n return getService(type, strict);\n}","import { useEffect, useState } from 'preact/hooks';\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 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 useEffect(() => {\n\n let values = [];\n\n if (valuesKey !== undefined) {\n\n const keyedValues = (initialData || {})[ valuesKey ];\n\n if (keyedValues && Array.isArray(keyedValues)) {\n values = keyedValues;\n }\n }\n else if (staticValues !== undefined) {\n values = Array.isArray(staticValues) ? staticValues : [];\n }\n else {\n setValuesGetter(getErrorState('No values source defined in the form definition'));\n return;\n }\n\n setValuesGetter(buildLoadedState(values));\n\n }, [ valuesKey, staticValues, initialData ]);\n\n return valuesGetter;\n}\n\nconst getErrorState = (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 { get } from 'min-dash';\nimport { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\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 const {\n valuesKey,\n values\n } = formField;\n\n try {\n const validValues = (valuesKey ? get(data, [ valuesKey ]) : values).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 const {\n valuesKey,\n values\n } = formField;\n\n try {\n const validValues = (valuesKey ? get(data, [ valuesKey ]) : values).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 } 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 field,\n value = [],\n } = props;\n\n const {\n description,\n id,\n label\n } = field;\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 {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ classNames(formFieldClasses(type, { errors, disabled })) }>\n <Label\n label={ label } />\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 id={ prefixId(`${id}-${index}`, formId) }\n type=\"checkbox\"\n onClick={ () => toggleCheckbox(v.value) } />\n </Label>\n );\n })\n }\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nChecklist.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\nChecklist.type = type;\nChecklist.label = 'Checklist';\nChecklist.keyed = true;\nChecklist.emptyValue = [];\nChecklist.sanitizeValue = sanitizeMultiSelectValue;\nChecklist.group = 'selection';","import useService from './useService.js';\n\n/**\n * Check if condition is met with given variables.\n *\n * @param {string | undefined} condition\n * @param {import('../../types').Data} data\n *\n * @returns {boolean} true if condition is met or no condition or condition checker exists\n */\nexport function useCondition(condition, data) {\n const initialData = useService('form')._getState().initialData;\n const conditionChecker = useService('conditionChecker', false);\n\n if (!conditionChecker) {\n return null;\n }\n\n // make sure we do not use data from hidden fields\n const filteredData = {\n ...initialData,\n ...conditionChecker.applyConditions(data, data)\n };\n\n return conditionChecker.check(condition, filteredData);\n}\n","import { useContext } from 'preact/hooks';\n\nimport { get } from 'min-dash';\n\nimport { FormRenderContext } from '../context';\n\nimport useService from '../hooks/useService';\nimport { useCondition } from '../hooks/useCondition';\n\nimport { findErrors } from '../../util';\n\nconst noop = () => false;\n\n\nexport default function FormField(props) {\n const {\n field,\n onChange\n } = props;\n\n const { _path } = field;\n\n const formFields = useService('formFields'),\n form = useService('form');\n\n const {\n data,\n errors,\n properties\n } = form._getState();\n\n const {\n Element,\n Empty\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 value = get(data, _path);\n\n const fieldErrors = findErrors(errors, _path);\n\n const disabled = properties.readOnly || field.disabled || false;\n\n const hidden = useHideCondition(field, data);\n if (hidden) {\n return <Empty />;\n }\n\n return (\n <Element field={ field }>\n <FormFieldComponent\n { ...props }\n disabled={ disabled }\n errors={ fieldErrors }\n onChange={ disabled ? noop : onChange }\n value={ value } />\n </Element>\n );\n}\n\nfunction useHideCondition(field, data) {\n const hideCondition = field.conditional && field.conditional.hide;\n\n return useCondition(hideCondition, data) === true;\n}\n","import { useContext } from 'preact/hooks';\n\nimport FormField from '../FormField';\n\nimport { FormRenderContext } from '../../context';\n\n\nexport default function Default(props) {\n const {\n Children,\n Empty\n } = useContext(FormRenderContext);\n\n const { field } = props;\n\n const { components = [] } = field;\n\n return <Children class=\"fjs-vertical-layout\" field={ field }>\n {\n components.map(childField => {\n return (\n <FormField\n { ...props }\n key={ childField.id }\n field={ childField } />\n );\n })\n }\n {\n components.length ? null : <Empty />\n }\n </Children>;\n}\n\nDefault.create = (options = {}) => ({\n components: [],\n ...options\n});\n\nDefault.type = 'default';\nDefault.keyed = false;\nDefault.label = null;\nDefault.group = null;","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';\n\nexport default function InputAdorner(props) {\n\n const {\n pre = null,\n post = null,\n rootRef,\n inputRef,\n children,\n disabled,\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 }, { 'hasErrors': hasErrors }) } ref={ rootRef }>\n { pre !== null && <span class=\"fjs-input-adornment border-right border-radius-left\" onClick={ onAdornmentClick }> { pre } </span> }\n { children }\n { post !== null && <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={ onAdornmentClick }> { 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 formId,\n required,\n disabled,\n disallowPassedDates,\n date,\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)) return;\n\n flatpickrInstance.open();\n }, [ flatpickrInstance ]\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\n }, [ isInputDirty ]\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 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 placeholder=\"mm/dd/yyyy\"\n autoComplete=\"off\"\n onFocus={ onInputFocus }\n onKeyDown={ onInputKeyDown }\n onMouseDown={ (e) => !flatpickrInstance.isOpen && flatpickrInstance.open() }\n onBlur={ onInputBlur }\n onInput={ (e) => setIsInputDirty(true) }\n data-input />\n </div>\n </InputAdorner>\n </div>\n ;\n}\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 { 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 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 formId,\n required,\n disabled,\n use24h = false,\n timeInterval,\n time,\n setTime\n } = props;\n\n const timeInputRef = useRef();\n const [ dropdownIsOpen, setDropdownIsOpen ] = useState(false);\n const useDropdown = useMemo(() => timeInterval !== 1, [ timeInterval ]);\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 % timeInterval);\n setRawValue(formatTime(use24h, intervalAdjustedTime));\n\n if (intervalAdjustedTime != time) {\n setTime(intervalAdjustedTime);\n }\n\n }, [ time, setTime, use24h, timeInterval ]);\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 % timeInterval);\n\n // Enforce the raw text to be formatted properly\n setRawValue(formatTime(use24h, correctedMinutes));\n setTime(correctedMinutes);\n\n }, [ rawValue, timeInterval, use24h, setTime ]);\n\n const timeOptions = useMemo(() => {\n\n const minutesInDay = 24 * 60;\n const intervalCount = Math.floor(minutesInDay / timeInterval);\n return [ ...Array(intervalCount).keys() ].map(intervalIndex => formatTime(use24h, intervalIndex * timeInterval));\n\n }, [ timeInterval, use24h ]);\n\n const initialFocusIndex = useMemo(() => {\n\n // if there are no options, there will not be any focusing\n if (!timeOptions || !timeInterval) return null;\n\n // if there is a set minute value, we focus it in the dropdown\n if (time) return time / timeInterval;\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 % timeInterval;\n return flooredCacheTime / timeInterval;\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, timeInterval, 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 };\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 <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 placeholder={ use24h ? 'hh:mm' : 'hh:mm ?m' }\n autoComplete=\"off\"\n onFocus={ () => useDropdown && setDropdownIsOpen(true) }\n onClick={ () => 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\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 } 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 } 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 field,\n onChange,\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\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 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 datePickerProps = {\n id,\n label: dateLabel,\n collapseLabelOnEmpty: !timeLabel,\n formId,\n required,\n disabled,\n disallowPassedDates,\n date: dateTime.date,\n setDate\n };\n\n const timePickerProps = {\n id,\n label: timeLabel,\n collapseLabelOnEmpty: !dateLabel,\n formId,\n required,\n disabled,\n use24h,\n timeInterval,\n time: dateTime.time,\n setTime\n };\n\n return <div class={ formFieldClasses(type, { errors: allErrors, disabled }) }>\n <div class={ classNames('fjs-vertical-group') }>\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 } />\n </div>;\n}\n\nDatetime.create = (options = {}) => {\n\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\nDatetime.type = type;\nDatetime.keyed = true;\nDatetime.emptyValue = null;\nDatetime.sanitizeValue = sanitizeDateTimePickerValue;\nDatetime.label = 'Date time';\nDatetime.group = 'basic-input';","/**\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: #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: #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 } = form._getState();\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 noValidate\n >\n <FormField\n field={ schema }\n onChange={ onChange }\n />\n\n <PoweredBy />\n </form>\n );\n}","import useService from './useService.js';\n\n/**\n *\n * @param {string | undefined} expression\n * @param {import('../../types').Data} data\n */\nexport function useEvaluation(expression, data) {\n const initialData = useService('form')._getState().initialData;\n const conditionChecker = useService('conditionChecker', false);\n\n if (!conditionChecker) {\n return null;\n }\n\n // make sure we do not use data from hidden fields\n const filteredData = {\n ...initialData,\n ...conditionChecker.applyConditions(data, data)\n };\n\n return conditionChecker.evaluate(expression, filteredData);\n}\n","import { isString } from 'min-dash';\n\nimport useService from './useService';\nimport { useEvaluation } from './useEvaluation';\n\n/**\n *\n * @param {string} value\n */\nexport function useExpressionValue(value) {\n const formData = useService('form')._getState().data;\n\n if (!isExpression(value)) {\n return value;\n }\n\n // We can ignore this hook rule as we do not use\n // state or effects in our custom hooks\n /* eslint-disable-next-line react-hooks/rules-of-hooks */\n return useEvaluation(value, formData);\n}\n\n\n// helper ///////////////\n\nfunction isExpression(value) {\n return isString(value) && value.startsWith('=');\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 } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { useExpressionValue } from '../../hooks/useExpressionValue';\n\nimport {\n formFieldClasses,\n prefixId,\n safeImageSource\n} from '../Util';\n\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\n\nconst type = 'image';\n\n\nexport default function Image(props) {\n const {\n field\n } = props;\n\n const {\n alt,\n id,\n source\n } = field;\n\n const safeSource = safeImageSource(useExpressionValue(source));\n const altText = useExpressionValue(alt);\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.create = (options = {}) => ({\n ...options\n});\n\nImage.type = type;\nImage.keyed = false;\nImage.label = 'Image view';\nImage.group = 'presentation';","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';\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/InputAdorner';\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 field,\n value,\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.sanitizeValue({ value, formField: field }) === Numberfield.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 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 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\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <InputAdorner disabled={ disabled } pre={ prefixAdorner } post={ suffixAdorner }>\n <div class={ classNames('fjs-vertical-group', { 'fjs-disabled': disabled }, { 'hasErrors': errors.length }) }>\n <input\n ref={ inputRef }\n class=\"fjs-input\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onKeyDown={ onKeyDown }\n onKeyPress={ onKeyPress }\n\n // @ts-ignore\n onInput={ (e) => setValue(e.target.value) }\n type=\"text\"\n autoComplete=\"off\"\n step={ arrowIncrementValue }\n value={ displayValue } />\n <div class={ classNames('fjs-number-arrow-container', { 'fjs-disabled': disabled }) }>\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 } />\n </div>;\n}\n\nNumberfield.create = (options = {}) => ({\n ...options\n});\n\nNumberfield.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\nNumberfield.type = type;\nNumberfield.keyed = true;\nNumberfield.label = 'Number';\nNumberfield.emptyValue = null;\nNumberfield.group = 'basic-input';","import { useContext } 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 field,\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 onChange = (v) => {\n props.onChange({\n field,\n value: v\n });\n };\n\n const {\n state: loadState,\n values: options\n } = useValuesAsync(field);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\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 id={ prefixId(`${ id }-${ index }`, formId) }\n type=\"radio\"\n onClick={ () => onChange(option.value) } />\n </Label>\n );\n })\n }\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nRadio.create = function(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\nRadio.type = type;\nRadio.label = 'Radio';\nRadio.keyed = true;\nRadio.emptyValue = null;\nRadio.sanitizeValue = sanitizeSingleSelectValue;\nRadio.group = 'selection';","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';\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 field,\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 && loadState === LOAD_STATES.LOADED;\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n ds.displayDropdown = !disabled && isDropdownExpanded && !isEscapeClosed;\n return ds;\n }, [ disabled, isDropdownExpanded, isEscapeClosed, loadState, 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 }, { 'hasErrors': errors.length }) }>\n <input\n disabled={ disabled }\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); } } />\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 field,\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 && loadState === LOAD_STATES.LOADED;\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\n ds.displayDropdown = !disabled && 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': disabled }, { 'hasErrors': errors.length }) }\n onFocus={ () => setIsDropdownExpanded(true) }\n onBlur={ () => setIsDropdownExpanded(false) }\n onMouseDown={ (e) => onMouseDown(e) }\n tabIndex={ disabled ? undefined : 0 }>\n <div class={ classNames('fjs-select-display', { 'fjs-select-placeholder' : !value }) } id={ prefixId(`${id}-display`, formId) }>{ valueLabel || 'Select' }</div>\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 field,\n onChange,\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\n const selectProps = useMemo(() => ({\n id,\n disabled,\n errors,\n field,\n value,\n onChange\n }), [ disabled, errors, field, id, value, onChange ]);\n\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n { searchable ? <SearchableSelect { ...selectProps } /> : <SimpleSelect { ...selectProps } /> }\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nSelect.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\nSelect.type = type;\nSelect.label = 'Select';\nSelect.keyed = true;\nSelect.emptyValue = null;\nSelect.sanitizeValue = sanitizeSingleSelectValue;\nSelect.group = 'selection';","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 field,\n value : values = []\n } = props;\n\n const {\n description,\n id,\n label\n } = field;\n\n const { formId } = useContext(FormContext);\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 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 class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n label={ label }\n id={ prefixId(`${id}-search`, formId) } />\n <div class={ classNames('fjs-taglist', { 'fjs-disabled': disabled }) }>\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 }) } onMouseDown={ (e) => e.preventDefault() }>\n <span class=\"fjs-taglist-tag-label\">\n {valueToOptionMap[v] ? valueToOptionMap[v].label : `unexpected value{${v}}`}\n </span>\n { !disabled && <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 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 ? '' : 'Search' }\n autoComplete=\"off\"\n onKeyDown={ (e) => onInputKeyDown(e) }\n onMouseDown={ () => setIsEscapeClose(false) }\n onFocus={ () => setIsDropdownExpanded(true) }\n onBlur={ () => { setIsDropdownExpanded(false); setFilter(''); } } />\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 } />\n </div>;\n}\n\nTaglist.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\nTaglist.type = type;\nTaglist.label = 'Tag list';\nTaglist.keyed = true;\nTaglist.emptyValue = [];\nTaglist.sanitizeValue = sanitizeMultiSelectValue;\nTaglist.group = 'selection';","import Markup from 'preact-markup';\n\nimport { useExpressionValue } from '../../hooks/useExpressionValue';\n\nimport {\n formFieldClasses,\n safeMarkdown\n} from '../Util';\n\nconst type = 'text';\n\n\nexport default function Text(props) {\n const { field, disableLinks } = props;\n\n const { text = '' } = field;\n\n const textValue = useExpressionValue(text) || '';\n\n const componentOverrides = disableLinks ? { 'a': DisabledLink } : {};\n\n return <div class={ formFieldClasses(type) }>\n <Markup markup={ safeMarkdown(textValue) } components={ componentOverrides } trim={ false } />\n </div>;\n}\n\nText.create = (options = {}) => ({\n text: '# Text',\n ...options\n});\n\nText.type = type;\nText.keyed = false;\nText.group = 'presentation';\nText.label = 'Text view';\n\nfunction DisabledLink({ href, children }) { return <a class=\"fjs-disabled-link\" href={ href } 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/InputAdorner';\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 field,\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\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <InputAdorner disabled={ disabled } pre={ prefixAdorner } post={ suffixAdorner }>\n <input\n class=\"fjs-input\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onInput={ onChange }\n type=\"text\"\n value={ value } />\n </InputAdorner>\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nTextfield.create = (options = {}) => ({\n ...options\n});\n\nTextfield.type = type;\nTextfield.label = 'Text field';\nTextfield.keyed = true;\nTextfield.emptyValue = '';\nTextfield.sanitizeValue = ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value);\nTextfield.group = 'basic-input';","import { isArray, isObject } from 'min-dash';\nimport { useCallback, useContext, useEffect, 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 field,\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 const autoSizeTextarea = useCallback((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 calculatedHeight = parseInt(computed.getPropertyValue('border-top-width'))\n + parseInt(computed.getPropertyValue('padding-top'))\n + textarea.scrollHeight\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, 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\n useEffect(() => {\n autoSizeTextarea(textareaRef.current);\n }, [ autoSizeTextarea, value ]);\n\n const { formId } = useContext(FormContext);\n\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\n <Label\n id={ prefixId(id, formId) }\n label={ label }\n required={ required } />\n <textarea class=\"fjs-textarea\"\n disabled={ disabled }\n id={ prefixId(id, formId) }\n onInput={ onInput }\n value={ value }\n ref={ textareaRef } />\n <Description description={ description } />\n <Errors errors={ errors } />\n </div>;\n}\n\nTextarea.create = (options = {}) => ({\n ...options\n});\n\nTextarea.type = type;\nTextarea.label = 'Text area';\nTextarea.keyed = true;\nTextarea.emptyValue = '';\nTextarea.sanitizeValue = ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value);\nTextarea.group = 'basic-input';","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: \"M45 17a3 3 0 013 3v14a3 3 0 01-3 3H9a3 3 0 01-3-3V20a3 3 0 013-3h36zm-9 8.889H18v2.222h18V25.89z\"\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 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 width: \"54\",\n height: \"54\",\n fill: \"none\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\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-6zM18 36h-6v6h6v-6zm-6-2a2 2 0 00-2 2v6a2 2 0 002 2h6a2 2 0 002-2v-6a2 2 0 00-2-2h-6zM18 24h-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 fill: \"#161616\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23 14.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1zM23 26.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1zM23 38.5a1 1 0 011-1h19a1 1 0 011 1v1a1 1 0 01-1 1H24a1 1 0 01-1-1v-1z\",\n fill: \"#161616\"\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: \"none\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36c-1.132 0-2.06.928-2.06 2.06v23.549c0 1.132.928 2.06 2.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.592c.39 0 .707.317.707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\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 fill: \"#000\",\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 clipRule: \"evenodd\"\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: \"54\",\n height: \"54\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"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 fill: \"#000\"\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 fill: \"#505562\"\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 x: \"15\",\n y: \"17\",\n width: \"24\",\n height: \"4\",\n rx: \"1\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"15\",\n y: \"25\",\n width: \"24\",\n height: \"4\",\n rx: \"1\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"15\",\n y: \"33\",\n width: \"13\",\n height: \"4\",\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}, 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}, 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 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\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: \"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}, 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-.23zM44.35 28.79l2.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}, 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}, 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.848.849-6.363 6.363-.849-.848 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 width: \"54\",\n height: \"54\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"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 fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"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.754c.06-.038.116-.083.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 fill: \"#000\"\n})));","import ButtonIcon from './Button.svg';\nimport CheckboxIcon from './Checkbox.svg';\nimport ChecklistIcon from './Checklist.svg';\nimport DatetimeIcon from './Datetime.svg';\nimport TaglistIcon from './Taglist.svg';\nimport FormIcon from './Form.svg';\nimport ColumnsIcon from './Group.svg';\nimport NumberIcon from './Number.svg';\nimport RadioIcon from './Radio.svg';\nimport SelectIcon from './Select.svg';\nimport TextIcon from './Text.svg';\nimport TextfieldIcon from './Textfield.svg';\nimport TextareaIcon from './Textarea.svg';\nimport ImageIcon from './Image.svg';\n\nexport const iconsByType = {\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 taglist: TaglistIcon,\n text: TextIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n default: FormIcon\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 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 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 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.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 { ConditionChecker } from './ConditionChecker';\nimport EventBus from './EventBus';\nimport Validator from './Validator';\nimport FormFieldRegistry from './FormFieldRegistry';\n\nimport importModule from '../import';\nimport renderModule from '../render';\n\nexport { FormFieldRegistry };\n\nexport default {\n __depends__: [ importModule, renderModule ],\n conditionChecker: [ 'type', ConditionChecker ],\n eventBus: [ 'type', EventBus ],\n formFieldRegistry: [ 'type', FormFieldRegistry ],\n validator: [ 'type', Validator ]\n};","import Ids from 'ids';\r\nimport { get, isString, set } from 'min-dash';\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) {\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 = []\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 _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 } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\n\r\nconst schemaVersion = 7;\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":["ConditionChecker","constructor","formFieldRegistry","eventBus","_formFieldRegistry","_eventBus","applyConditions","properties","data","conditions","_getConditions","newProperties","key","condition","shouldRemove","_checkHideCondition","check","isString","startsWith","result","unaryTest","slice","error","fire","hide","evaluate","expression","formFields","getAll","reduce","formField","conditional","$inject","FN_REF","DEFAULT_PRIORITY","Array","prototype","EventBus","_listeners","on","_destroy","events","priority","callback","that","isArray","isFunction","isNumber","Error","actualCallback","bind","self","forEach","e","_addListener","next","once","event","wrappedCallback","__isTomb","apply","arguments","off","_removeListener","createEvent","InternalEvent","init","type","firstListener","returnValue","args","call","originalType","_invokeListeners","undefined","defaultPrevented","handleError","listener","cancelBubble","_invokeListener","invokeFunction","stopPropagation","preventDefault","console","newListener","_getListeners","previousListener","_setListeners","name","nextListener","listenerCallback","assign","fn","countDecimals","number","num","Big","toString","toFixed","split","length","isValidNumber","value","isNaN","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","replace","isFirstDot","includes","isFirstMinus","keypressIsNumeric","test","dotIndex","indexOf","overflowsDecimalSpace","keypressIsAllowedChar","isNullEquivalentValue","EMAIL_PATTERN","PHONE_PATTERN","Validator","validateField","field","validate","errors","increment","bigValue","bigIncrement","offset","mod","cmp","minus","nextValue","plus","pattern","RegExp","required","isNil","min","max","trim","minLength","maxLength","validationType","FormFieldRegistry","_formFields","clear","_ids","Ids","_keys","add","id","remove","get","Object","values","getVariableNames","tree","parseUnaryTests","cursor","variables","Set","node","from","to","getExpressionVariableNames","parseExpressions","isExpression","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","findErrors","path","pathStringify","isRequired","pathParse","map","parseInt","pathsEqual","a","b","every","index","join","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","parse","stringify","getSchemaVariables","schema","components","component","valuesKey","conditionVariables","prop","property","expressionVariables","Importer","importSchema","warnings","importedSchema","importFormField","initializedData","initializeFieldValues","err","parentId","_parent","assigned","claim","_path","importFormFields","defaultValue","fieldImplementation","valueData","isUndefined","sanitizeValue","initializedFieldValue","emptyValue","importer","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","body","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","lcTag","tagName","toLowerCase","attributes","i","attribute","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","formFieldClasses","disabled","classNames","prefixId","formId","markdownToHTML","markdown","htmls","line","snarkdown","safeMarkdown","safeImageSource","Button","props","action","_jsx","create","options","keyed","group","FormRenderContext","createContext","Empty","Children","children","Element","getService","strict","FormContext","Description","description","Errors","Label","collapseOnEmpty","_jsxs","Checkbox","onChange","target","checked","useContext","LOAD_STATES","LOADING","LOADED","ERROR","staticValues","valuesGetter","setValuesGetter","useState","state","initialData","useService","_getState","useEffect","keyedValues","getErrorState","buildLoadedState","ENTER_KEYDOWN_EVENT","KeyboardEvent","code","charCode","keyCode","view","window","bubbles","focusRelevantFlatpickerDay","flatpickrInstance","isOpen","open","calendarContainer","dayToFocus","querySelector","focus","formatTime","use24h","minutes","wrappedMinutes","minute","hour","Math","floor","_getZeroPaddedString","isPM","parseInputTime","stringTime","workingString","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","v","sanitizeMultiSelectValue","filter","Checklist","toggleCheckbox","newValue","push","x","loadState","useValuesAsync","defaults","useCondition","conditionChecker","filteredData","noop","FormField","form","FormFieldComponent","fieldErrors","readOnly","hidden","useHideCondition","hideCondition","Default","childField","_createElement","_extends","InputAdorner","pre","post","rootRef","inputRef","hasErrors","onAdornmentClick","current","Datepicker","collapseLabelOnEmpty","disallowPassedDates","setDate","dateInputRef","useRef","focusScopeRef","setFlatpickrInstance","isInputDirty","setIsInputDirty","forceFocusCalendar","setForceFocusCalendar","config","allowInput","dateFormat","static","clickOpens","minDate","errorHandler","instance","flatpickr","onCalendarFocusOut","contains","relatedTarget","close","onCalendarMouseDown","onOpen","addEventListener","onClose","removeEventListener","onInputKeyDown","useCallback","dispatchEvent","onInputFocus","onInputBlur","fullId","width","useKeyDownAction","targetKey","listenerElement","downHandler","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","height","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","useMemo","changeFocusedValueIndex","delta","individualEntries","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","valueIndex","userMovedCursor","screenX","y","screenY","maxHeight","scrollBehavior","Timepicker","timeInterval","setTime","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","keys","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","Fragment","createPortal","FormComponent","onSubmit","onReset","handleSubmit","handleReset","useEvaluation","useExpressionValue","formData","Image","alt","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","onTagRemoveClick","nextTag","closest","nextSibling","shouldDisplayDropdown","Text","disableLinks","text","textValue","componentOverrides","DisabledLink","href","Textfield","isObject","String","Textarea","textareaRef","onInput","autoSizeTextarea","textarea","style","computed","getComputedStyle","calculatedHeight","getPropertyValue","scrollHeight","minHeight","displayHeight","overflow","iconsByType","button","ButtonIcon","checkbox","CheckboxIcon","checklist","ChecklistIcon","columns","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","render","__init__","renderer","__depends__","importModule","renderModule","validator","ids","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","core","submitData","previous","filteredSubmitData","toFilter","schemaVersion","createForm","rest","then"],"mappings":"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G,GAAG;AAAEC,UAAAA,SAAAA;AAAU,SAAC,CAAE,CAAA;AAC9C,OAAA;AAEA,MAAA,OAAOJ,UAAU,CAAA;KAElB,EAAE,EAAE,CAAC,CAAA;AACR,GAAA;AACF,CAAA;AAEAT,gBAAgB,CAACgC,OAAO,GAAG,CACzB,mBAAmB,EACnB,UAAU,CACX;;ACzHD,IAAIC,MAAM,GAAG,MAAM,CAAA;AAEnB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAE3B,IAAIb,KAAK,GAAGc,KAAK,CAACC,SAAS,CAACf,KAAK,CAAA;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAASgB,QAAQ,GAAG;AACjC,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;AACAH,QAAQ,CAACD,SAAS,CAACG,EAAE,GAAG,UAASE,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAEjEH,MAAM,GAAGI,eAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,IAAIK,kBAAU,CAACJ,QAAQ,CAAC,EAAE;AACxB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"}
|