@bpmn-io/form-js-viewer 0.12.0 → 0.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/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","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;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,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,IAAIK,UAAU,CAACJ,QAAQ,CAAC,EAAE;AACxBE,IAAA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"}
1
+ {"version":3,"file":"index.es.js","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';\nimport { isString } from 'min-dash';\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 }> { isString(pre) ? <span class=\"fjs-input-adornment-text\">{ pre }</span> : pre } </span> }\n { children }\n { post !== null && <span class=\"fjs-input-adornment border-left border-radius-right\" onClick={ onAdornmentClick }> { isString(post) ? <span class=\"fjs-input-adornment-text\">{ post }</span> : post } </span> }\n </div>;\n\n}","import CalendarIcon from '../icons/Calendar.svg';\nimport flatpickr from 'flatpickr';\n\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { prefixId } from '../../Util';\nimport InputAdorner from './InputAdorner';\nimport Label from '../../Label';\n\nexport default function Datepicker(props) {\n\n const {\n id,\n label,\n collapseLabelOnEmpty,\n 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 = (type) => {\n return {\n button: ButtonIcon,\n checkbox: CheckboxIcon,\n checklist: ChecklistIcon,\n columns: ColumnsIcon,\n datetime: DatetimeIcon,\n image: ImageIcon,\n number: NumberIcon,\n radio: RadioIcon,\n select: SelectIcon,\n taglist: TaglistIcon,\n text: TextIcon,\n textfield: TextfieldIcon,\n textarea: TextareaIcon,\n default: FormIcon\n }[type];\n};","import Button from './form-fields/Button';\nimport Checkbox from './form-fields/Checkbox';\nimport Checklist from './form-fields/Checklist';\nimport Default from './form-fields/Default';\nimport Datetime from './form-fields/Datetime';\nimport FormComponent from './FormComponent';\nimport Image from './form-fields/Image';\nimport Numberfield from './form-fields/Number';\nimport Radio from './form-fields/Radio';\nimport Select from './form-fields/Select';\nimport 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","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;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,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,IAAIK,UAAU,CAACJ,QAAQ,CAAC,EAAE;AACxBE,IAAA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"}