@bpmn-io/form-js-viewer 0.13.1 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -22
- package/README.md +164 -164
- package/dist/assets/form-js-base.css +781 -780
- package/dist/assets/form-js.css +3 -2
- package/dist/index.cjs +232 -213
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +232 -213
- package/dist/index.es.js.map +1 -1
- package/dist/types/Form.d.ts +0 -22
- package/dist/types/types.d.ts +35 -35
- package/package.json +2 -3
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/features/expression-language/FeelExpressionLanguage.js","../src/features/expression-language/FeelersTemplating.js","../src/features/expression-language/ConditionChecker.js","../src/features/expression-language/index.js","../src/features/markdown/MarkdownRenderer.js","../src/features/markdown/index.js","../../../node_modules/diagram-js/lib/core/EventBus.js","../src/render/components/util/numberFieldUtil.js","../src/core/Validator.js","../src/core/FormFieldRegistry.js","../src/core/FormLayouter.js","../src/util/constants/DatetimeConstants.js","../src/util/constants/ValuesSourceConstants.js","../src/util/injector.js","../src/util/form.js","../src/util/index.js","../src/import/Importer.js","../src/import/index.js","../src/render/components/Util.js","../src/render/components/form-fields/Button.js","../src/render/context/FormRenderContext.js","../src/render/context/FormContext.js","../src/render/components/Description.js","../src/render/components/Errors.js","../src/render/components/Label.js","../src/render/components/form-fields/Checkbox.js","../src/render/components/util/valuesUtil.js","../src/render/hooks/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/useFilteredFormData.js","../src/render/hooks/useCondition.js","../src/render/hooks/useExpressionEvaluation.js","../src/render/hooks/useKeyDownAction.js","../src/render/hooks/useTemplateEvaluation.js","../src/render/components/FormField.js","../src/render/components/form-fields/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/icons/ImagePlaceholder.svg","../src/render/components/form-fields/Image.js","../src/render/components/form-fields/icons/AngelDown.svg","../src/render/components/form-fields/icons/AngelUp.svg","../src/render/components/form-fields/Number.js","../src/render/components/form-fields/Radio.js","../src/render/components/form-fields/icons/XMark.svg","../src/render/components/form-fields/parts/SearchableSelect.js","../src/render/components/form-fields/parts/SimpleSelect.js","../src/render/components/form-fields/Select.js","../src/render/components/form-fields/Taglist.js","../src/render/components/form-fields/Text.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.js","../src/render/components/icons/Button.svg","../src/render/components/icons/Checkbox.svg","../src/render/components/icons/Checklist.svg","../src/render/components/icons/Datetime.svg","../src/render/components/icons/Taglist.svg","../src/render/components/icons/Form.svg","../src/render/components/icons/Group.svg","../src/render/components/icons/Number.svg","../src/render/components/icons/Radio.svg","../src/render/components/icons/Select.svg","../src/render/components/icons/Text.svg","../src/render/components/icons/Textfield.svg","../src/render/components/icons/Textarea.svg","../src/render/components/icons/Image.svg","../src/render/components/icons/index.js","../src/render/components/index.js","../src/render/FormFields.js","../src/render/Renderer.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { evaluate, parseExpressions, parseUnaryTests } from 'feelin';\nimport { isString } from 'min-dash';\n\nexport default class FeelExpressionLanguage {\n constructor(eventBus) {\n this._eventBus = eventBus;\n }\n\n /**\n * Determines if the given string is a FEEL expression.\n *\n * @param {string} value\n * @returns {boolean}\n *\n */\n isExpression(value) { return isString(value) && value.startsWith('='); }\n\n /**\n * Retrieve variable names from a given FEEL expression.\n *\n * @param {string} expression\n * @param {object} [options]\n * @param {string} [options.type]\n *\n * @returns {string[]}\n */\n getVariableNames(expression, options = {}) {\n\n const {\n type = 'expression'\n } = options;\n\n if (!this.isExpression(expression)) {\n return [];\n }\n\n if (type === 'unaryTest') {\n return this._getUnaryVariableNames(expression);\n }\n else if (type === 'expression') {\n return this._getExpressionVariableNames(expression);\n }\n\n throw new Error('Unknown expression type: ' + options.type);\n }\n\n /**\n * Evaluate an expression.\n *\n * @param {string} expression\n * @param {import('../../types').Data} [data]\n *\n * @returns {any}\n */\n evaluate(expression, data = {}) {\n if (!expression) {\n return null;\n }\n\n if (!isString(expression) || !expression.startsWith('=')) {\n return null;\n }\n\n try {\n const result = evaluate(expression.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n\n _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\n _getUnaryVariableNames(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\nFeelExpressionLanguage.$inject = [\n 'eventBus'\n];","import { evaluate as evaluateFeelers } from 'feelers';\nimport { isString } from 'min-dash';\n\nexport default class FeelersTemplating {\n\n constructor() { }\n\n isTemplate(value) { return isString(value) && (value.startsWith('=') || /{{/.test(value)); }\n\n /**\n * Evaluate a template.\n *\n * @param {string} template\n * @param {Object<string, any>} context\n * @param {Object} options\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.buildDebugString]\n *\n * @returns\n */\n evaluate(template, context = {}, options = {}) {\n\n const {\n debug = false,\n strict = false,\n buildDebugString = (err) => ' {{⚠}} '\n } = options;\n\n return evaluateFeelers(template, context, { debug, strict, buildDebugString });\n }\n}\n\nFeelersTemplating.$inject = [];","import { unaryTest } from 'feelin';\nimport { isString } from 'min-dash';\n\n/**\n * @typedef {object} Condition\n * @property {string} [hide]\n */\n\nexport default class ConditionChecker {\n constructor(formFieldRegistry, eventBus) {\n this._formFieldRegistry = formFieldRegistry;\n this._eventBus = eventBus;\n }\n\n /**\n * For given data, remove properties based on condition.\n *\n * @param {Object<string, any>} properties\n * @param {Object<string, any>} data\n */\n applyConditions(properties, data = {}) {\n\n const conditions = this._getConditions();\n\n const newProperties = { ...properties };\n\n for (const { key, condition } of conditions) {\n const shouldRemove = this._checkHideCondition(condition, data);\n\n if (shouldRemove) {\n delete newProperties[ key ];\n }\n }\n\n return newProperties;\n }\n\n /**\n * Check if given condition is met. Returns null for invalid/missing conditions.\n *\n * @param {string} condition\n * @param {import('../../types').Data} [data]\n *\n * @returns {boolean|null}\n */\n check(condition, data = {}) {\n if (!condition) {\n return null;\n }\n\n if (!isString(condition) || !condition.startsWith('=')) {\n return null;\n }\n\n try {\n\n // cut off initial '='\n const result = unaryTest(condition.slice(1), data);\n\n return result;\n } catch (error) {\n this._eventBus.fire('error', { error });\n return null;\n }\n }\n\n /**\n * Check if hide condition is met.\n *\n * @param {Condition} condition\n * @param {Object<string, any>} data\n * @returns {boolean}\n */\n _checkHideCondition(condition, data) {\n if (!condition.hide) {\n return false;\n }\n\n const result = this.check(condition.hide, data);\n\n return result === true;\n }\n\n _getConditions() {\n const formFields = this._formFieldRegistry.getAll();\n\n return formFields.reduce((conditions, formField) => {\n const { key, conditional: condition } = formField;\n\n if (key && condition) {\n return [ ...conditions, { key, condition } ];\n }\n\n return conditions;\n\n }, []);\n }\n}\n\nConditionChecker.$inject = [\n 'formFieldRegistry',\n 'eventBus'\n];\n","import FeelExpressionLanguage from './FeelExpressionLanguage';\nimport FeelersTemplating from './FeelersTemplating';\nimport ConditionChecker from './ConditionChecker';\n\nexport default {\n __init__: [ 'expressionLanguage', 'templating', 'conditionChecker' ],\n expressionLanguage: [ 'type', FeelExpressionLanguage ],\n templating: [ 'type', FeelersTemplating ],\n conditionChecker: [ 'type', ConditionChecker ]\n};\n\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };","import showdown from 'showdown';\n\n// bootstrap showdown to support github flavored markdown\nshowdown.setFlavor('github');\n\nexport default class MarkdownRenderer {\n\n constructor() {\n this._converter = new showdown.Converter();\n }\n\n /**\n * Render markdown to HTML.\n *\n * @param {string} markdown - The markdown to render\n *\n * @returns {string} HTML\n */\n render(markdown) {\n return this._converter.makeHtml(markdown);\n }\n}\n\nMarkdownRenderer.$inject = [];","import MarkdownRenderer from './MarkdownRenderer';\n\nexport default {\n __init__: [ 'markdownRenderer' ],\n markdownRenderer: [ 'type', MarkdownRenderer ],\n};\n\nexport { MarkdownRenderer };","import {\n 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 Ids from 'ids';\n\nimport { groupBy, flatten } from 'min-dash';\n\n\n/**\n * @typedef { { id: String, components: Array<String> } } FormRow\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\n */\n\n/**\n * Maintains the Form layout in a given structure, for example\n *\n * [\n * {\n * formFieldId: 'FormField_1',\n * rows: [\n * { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ] }\n * ]\n * }\n * ]\n *\n */\nexport default class FormLayouter {\n\n constructor(eventBus) {\n\n /** @type Array<FormRows> */\n this._rows = [];\n this._ids = new Ids([ 32, 36, 1 ]);\n\n this._eventBus = eventBus;\n }\n\n /**\n * @param {FormRow} row\n */\n addRow(formFieldId, row) {\n let rowsPerComponent = this._rows.find(r => r.formFieldId === formFieldId);\n\n if (!rowsPerComponent) {\n rowsPerComponent = {\n formFieldId,\n rows: []\n };\n\n this._rows.push(rowsPerComponent);\n }\n\n rowsPerComponent.rows.push(row);\n }\n\n /**\n * @param {String} id\n * @returns {FormRow}\n */\n getRow(id) {\n const rows = allRows(this._rows);\n return rows.find(r => r.id === id);\n }\n\n /**\n * @param {any} formField\n * @returns {FormRow}\n */\n getRowForField(formField) {\n return allRows(this._rows).find(r => {\n const { components } = r;\n\n return components.includes(formField.id);\n });\n }\n\n /**\n * @param {String} formFieldId\n * @returns { Array<FormRow> }\n */\n getRows(formFieldId) {\n const rowsForField = this._rows.find(r => formFieldId === r.formFieldId);\n\n if (!rowsForField) {\n return [];\n }\n\n return rowsForField.rows;\n }\n\n /**\n * @returns {string}\n */\n nextRowId() {\n return this._ids.nextPrefixed('Row_');\n }\n\n /**\n * @param {any} formField\n */\n calculateLayout(formField) {\n\n const {\n type,\n components\n } = formField;\n\n if (type !== 'default' || !components) {\n return;\n }\n\n // (1) calculate rows order (by component order)\n const rowsInOrder = groupByRow(components, this._ids);\n\n Object.entries(rowsInOrder).forEach(([ id, components ]) => {\n\n // (2) add fields to rows\n this.addRow(formField.id, {\n id: id,\n components: components.map(c => c.id)\n });\n });\n\n // (3) traverse through nested components\n components.forEach(field => this.calculateLayout(field));\n\n // (4) fire event to notify interested parties\n this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\n }\n\n clear() {\n this._rows = [];\n this._ids.clear();\n\n // fire event to notify interested parties\n this._eventBus.fire('form.layoutCleared');\n }\n}\n\nFormLayouter.$inject = [ 'eventBus' ];\n\n\n// helpers //////\n\nfunction groupByRow(components, ids) {\n return groupBy(components, c => {\n\n // mitigate missing row by creating new (handle legacy)\n const { layout } = c;\n\n if (!layout || !layout.row) {\n return ids.nextPrefixed('Row_');\n }\n\n return layout.row;\n });\n}\n\n/**\n * @param {Array<FormRows>} formRows\n * @returns {Array<FormRow>}\n */\nfunction allRows(formRows) {\n return flatten(formRows.map(c => c.rows));\n}","// 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 FeelExpressionLanguage from '../features/expression-language/FeelExpressionLanguage.js';\n\nexport * from './constants';\nexport * from './injector';\nexport * from './form';\n\nconst EXPRESSION_PROPERTIES = [\n 'alt',\n 'source',\n 'text'\n];\n\nexport function findErrors(errors, path) {\n return errors[ pathStringify(path) ];\n}\n\nexport function isRequired(field) {\n return field.required;\n}\n\nexport function pathParse(path) {\n if (!path) {\n return [];\n }\n\n return path.split('.').map(key => {\n return isNaN(parseInt(key)) ? key : parseInt(key);\n });\n}\n\nexport function pathsEqual(a, b) {\n return (\n a &&\n b &&\n a.length === b.length &&\n a.every((value, index) => value === b[ index ])\n );\n}\n\nexport function pathStringify(path) {\n if (!path) {\n return '';\n }\n\n return path.join('.');\n}\n\nconst indices = {};\n\nexport function generateIndexForType(type) {\n if (type in indices) {\n indices[ type ]++;\n } else {\n indices[ type ] = 1;\n }\n\n return indices[ type ];\n}\n\nexport function generateIdForType(type) {\n return `${ type }${ generateIndexForType(type) }`;\n}\n\n/**\n * @template T\n * @param {T} data\n * @param {(this: any, key: string, value: any) => any} [replacer]\n * @return {T}\n */\nexport function clone(data, replacer) {\n return JSON.parse(JSON.stringify(data, replacer));\n}\n\n/**\n * Parse the schema for input variables a form might make use of\n *\n * @param {any} schema\n *\n * @return {string[]}\n */\nexport function getSchemaVariables(schema, expressionLanguage = new FeelExpressionLanguage(null)) {\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 const conditionVariables = expressionLanguage.getVariableNames(conditional.hide, { type: 'unaryTest' });\n\n variables = [ ...variables, ...conditionVariables ];\n }\n\n EXPRESSION_PROPERTIES.forEach((prop) => {\n const property = component[prop];\n\n if (property && expressionLanguage.isExpression(property)) {\n\n const expressionVariables = expressionLanguage.getVariableNames(property, { type: 'expression' });\n\n variables = [ ...variables, ...expressionVariables ];\n }\n });\n\n 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 * @param { import('../core').FormLayouter } formLayouter\n */\n constructor(formFieldRegistry, formFields, formLayouter) {\n this._formFieldRegistry = formFieldRegistry;\n this._formFields = formFields;\n this._formLayouter = formLayouter;\n }\n\n /**\n * Import schema adding `id`, `_parent` and `_path`\n * information to each field and adding it to the\n * form field registry.\n *\n * @param {any} schema\n * @param {any} [data]\n *\n * @return { { warnings: Array<any>, schema: any, data: any } }\n */\n importSchema(schema, data = {}) {\n\n // TODO: Add warnings - https://github.com/bpmn-io/form-js/issues/289\n const warnings = [];\n\n try {\n\n this._formLayouter.clear();\n\n const importedSchema = this.importFormField(clone(schema)),\n initializedData = this.initializeFieldValues(clone(data));\n\n this._formLayouter.calculateLayout(clone(importedSchema));\n\n return {\n warnings,\n schema: importedSchema,\n data: initializedData\n };\n } catch (err) {\n err.warnings = warnings;\n\n throw err;\n }\n }\n\n /**\n * @param {any} formField\n * @param {string} [parentId]\n *\n * @return {any} importedField\n */\n importFormField(formField, parentId) {\n const {\n components,\n key,\n type,\n id = generateIdForType(type)\n } = formField;\n\n if (parentId) {\n\n // set form field parent\n formField._parent = parentId;\n }\n\n if (!this._formFields.get(type)) {\n throw new Error(`form field of type <${ type }> not supported`);\n }\n\n if (key) {\n\n // validate <key> uniqueness\n if (this._formFieldRegistry._keys.assigned(key)) {\n throw new Error(`form field with key <${ key }> already exists`);\n }\n\n this._formFieldRegistry._keys.claim(key, formField);\n\n // TODO: buttons should not have key\n if (type !== 'button') {\n\n // set form field path\n formField._path = [ key ];\n }\n }\n\n if (id) {\n\n // validate <id> uniqueness\n if (this._formFieldRegistry._ids.assigned(id)) {\n throw new Error(`form field with id <${ id }> already exists`);\n }\n\n this._formFieldRegistry._ids.claim(id, formField);\n }\n\n // set form field ID\n formField.id = id;\n\n this._formFieldRegistry.add(formField);\n\n if (components) {\n this.importFormFields(components, id);\n }\n\n return formField;\n }\n\n importFormFields(components, parentId) {\n components.forEach((component) => {\n this.importFormField(component, parentId);\n });\n }\n\n /**\n * @param {Object} data\n *\n * @return {Object} initializedData\n */\n initializeFieldValues(data) {\n return this._formFieldRegistry.getAll().reduce((initializedData, formField) => {\n const {\n defaultValue,\n _path,\n type\n } = formField;\n\n // try to get value from data\n // if unavailable - try to get default value from form field\n // if unavailable - get empty value from form field\n\n if (_path) {\n\n const 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', 'formLayouter' ];","import Importer from './Importer';\n\nexport default {\n importer: [ 'type', Importer ]\n};","import classNames from 'classnames';\n\nexport function formFieldClasses(type, { errors = [], disabled = false } = {}) {\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\nexport function gridColumnClasses(formField) {\n const {\n layout = {}\n } = formField;\n\n const {\n columns\n } = layout;\n\n return classNames(\n 'fjs-layout-column',\n `cds--col${columns ? '-lg-' + columns : ''}`,\n\n // always fall back to top-down on smallest screens\n 'cds--col-sm-16',\n 'cds--col-md-16'\n );\n}\n\n\nexport function prefixId(id, formId) {\n if (formId) {\n return `fjs-form-${ formId }-${ id }`;\n }\n\n return `fjs-form-${ id }`;\n}\n","import { formFieldClasses } from '../Util';\n\nconst type = 'button';\n\n\nexport default function Button(props) {\n const {\n disabled,\n field\n } = props;\n\n const { action = 'submit' } = field;\n\n return <div class={ formFieldClasses(type) }>\n <button class=\"fjs-button\" type={ action } disabled={ disabled }>{ field.label }</button>\n </div>;\n}\n\nButton.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 <div class={ props.class }>{ props.children }</div>;\n },\n Element: (props) => {\n return <div class={ props.class }>{ props.children }</div>;\n },\n Row: (props) => {\n return <div class={ props.class }>{ props.children }</div>;\n },\n Column: (props) => {\n if (props.field.type === 'default') {\n return props.children;\n }\n\n return <div class={ props.class }>{ props.children }</div>;\n }\n});\n\nexport default FormRenderContext;","import { createContext } from 'preact';\n\n/**\n * @param {string} type\n * @param {boolean} [strict]\n *\n * @returns {any}\n */\nfunction getService(type, strict) {}\n\nconst FormContext = createContext({\n getService,\n formId: null\n});\n\nexport default FormContext;","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 { get } from 'min-dash';\n\n// parses the options data from the provided form field and form data\nexport function getValuesData(formField, formData) {\n const { valuesKey, values } = formField;\n return valuesKey ? get(formData, [ valuesKey ]) : values;\n}\n\n// transforms the provided options into a normalized format, trimming invalid options\nexport function normalizeValuesData(valuesData) {\n return valuesData.filter(_isValueSomething).map(v => _normalizeValueData(v)).filter(v => v);\n}\n\nfunction _normalizeValueData(valueData) {\n\n if (_isAllowedValue(valueData)) {\n\n // if a primitive is provided, use it as label and value\n return { value: valueData, label: `${ valueData }` };\n }\n\n if (typeof (valueData) === 'object') {\n if (!valueData.label && _isAllowedValue(valueData.value)) {\n\n // if no label is provided, use the value as label\n return { value: valueData.value, label: `${ valueData.value }` };\n }\n\n if (_isValueSomething(valueData.value) && _isAllowedValue(valueData.label)) {\n\n // if both value and label are provided, use them as is, in this scenario, the value may also be an object\n return valueData;\n }\n }\n\n return null;\n}\n\nfunction _isAllowedValue(value) {\n return _isReadableType(value) && _isValueSomething(value);\n}\n\nfunction _isReadableType(value) {\n return [ 'number', 'string', 'boolean' ].includes(typeof(value));\n}\n\nfunction _isValueSomething(value) {\n return value || value === 0 || value === false;\n}","import {\n useContext\n} from 'preact/hooks';\n\nimport { FormContext } from '../context';\n\nexport default function useService(type, strict) {\n const {\n getService\n } = useContext(FormContext);\n\n return getService(type, strict);\n}","import { useEffect, useState } from 'preact/hooks';\nimport { normalizeValuesData } from '../components/util/valuesUtil';\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 // dynamic values\n if (valuesKey !== undefined) {\n const keyedValues = (initialData || {})[ valuesKey ];\n\n if (keyedValues && Array.isArray(keyedValues)) {\n values = keyedValues;\n }\n }\n\n // static values\n else if (staticValues !== undefined) {\n values = Array.isArray(staticValues) ? staticValues : [];\n }\n else {\n setValuesGetter(buildErrorState('No values source defined in the form definition'));\n return;\n }\n\n // normalize data to support primitives and partially defined objects\n values = normalizeValuesData(values);\n\n setValuesGetter(buildLoadedState(values));\n\n }, [ valuesKey, staticValues, initialData ]);\n\n return valuesGetter;\n}\n\nconst buildErrorState = (error) => ({ values: [], error, state: LOAD_STATES.ERROR });\n\nconst buildLoadedState = (values) => ({ values, error: undefined, state: LOAD_STATES.LOADED });\n","import { isNumber } from 'min-dash';\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\n\nexport const ENTER_KEYDOWN_EVENT = new KeyboardEvent('keydown', {\n code: 'Enter',\n key: 'Enter',\n charCode: 13,\n keyCode: 13,\n view: window,\n bubbles: true\n});\n\nexport function focusRelevantFlatpickerDay(flatpickrInstance) {\n\n if (!flatpickrInstance) return;\n\n !flatpickrInstance.isOpen && flatpickrInstance.open();\n\n const container = flatpickrInstance.calendarContainer;\n const dayToFocus =\n container.querySelector('.flatpickr-day.selected') ||\n container.querySelector('.flatpickr-day.today') ||\n container.querySelector('.flatpickr-day');\n\n dayToFocus && dayToFocus.focus();\n}\n\nexport function formatTime(use24h, minutes) {\n\n if (minutes === null) return null;\n\n const wrappedMinutes = minutes % (24 * 60);\n\n const minute = minutes % 60;\n let hour = Math.floor(wrappedMinutes / 60);\n\n if (use24h) {\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute);\n }\n\n hour = (hour % 12 || 12);\n\n const isPM = (wrappedMinutes >= 12 * 60);\n\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute) + ' ' + (isPM ? 'PM' : 'AM');\n}\n\nexport function parseInputTime(stringTime) {\n\n let workingString = stringTime.toLowerCase();\n const is12h = workingString.includes('am') || workingString.includes('pm');\n\n if (is12h) {\n const isPM = workingString.includes('pm');\n const digits = workingString.match(/\\d+/g);\n const displayHour = parseInt(digits && digits[0]);\n const minute = parseInt(digits && digits[1]) || 0;\n\n const isValidDisplayHour = isNumber(displayHour) && (displayHour >= 1) && (displayHour <= 12);\n const isValidMinute = (minute >= 0) && (minute <= 59);\n\n if (!isValidDisplayHour || !isValidMinute) return null;\n\n const hour = (displayHour % 12) + (isPM ? 12 : 0);\n\n return hour * 60 + minute;\n }\n else {\n const digits = workingString.match(/\\d+/g);\n const hour = parseInt(digits && digits[0]);\n const minute = parseInt(digits && digits[1]);\n\n const isValidHour = isNumber(hour) && (hour >= 0) && (hour <= 23);\n const isValidMinute = isNumber(minute) && (minute >= 0) && (minute <= 59);\n\n if (!isValidHour || !isValidMinute) return null;\n\n return hour * 60 + minute;\n }\n}\n\nexport function serializeTime(minutes, offset, timeSerializingFormat) {\n\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n return _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) + ':' + _getZeroPaddedString(normalizedMinutes % 60) + 'Z';\n }\n\n const baseTime = _getZeroPaddedString(Math.floor(minutes / 60)) + ':' + _getZeroPaddedString(minutes % 60);\n const addUTCOffset = timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_OFFSET;\n\n return baseTime + (addUTCOffset ? formatTimezoneOffset(offset) : '');\n}\n\nexport function parseIsoTime(isoTimeString) {\n\n if (!isoTimeString) return null;\n\n const parseBasicMinutes = (timeString) => {\n const timeSegments = timeString.split(':');\n const hour = parseInt(timeSegments[0]);\n const minute = timeSegments.length > 1 ? parseInt(timeSegments[1]) : 0;\n if (isNaN(hour) || hour < 0 || hour > 24 || isNaN(minute) || minute < 0 || minute > 60) return null;\n return hour * 60 + minute;\n };\n\n const localOffset = new Date().getTimezoneOffset();\n\n // Parse normalized time\n if (isoTimeString.includes('Z')) {\n isoTimeString = isoTimeString.replace('Z', '');\n const minutes = parseBasicMinutes(isoTimeString);\n if (minutes === null) return null;\n return (minutes - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Parse offset positive time\n else if (isoTimeString.includes('+')) {\n const [ timeString, offsetString ] = isoTimeString.split('+');\n\n const minutes = parseBasicMinutes(timeString);\n let inboundOffset = parseBasicMinutes(offsetString);\n\n if (minutes === null || inboundOffset === null) return null;\n\n // The offset is flipped for consistency with javascript\n inboundOffset = -inboundOffset;\n\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Parse offset negative time\n else if (isoTimeString.includes('-')) {\n const [ timeString, offsetString ] = isoTimeString.split('-');\n\n const minutes = parseBasicMinutes(timeString);\n let inboundOffset = parseBasicMinutes(offsetString);\n\n if (minutes === null || inboundOffset === null) return null;\n\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\n }\n\n // Default to local parsing\n else {\n return parseBasicMinutes(isoTimeString);\n }\n}\n\nexport function serializeDate(date) {\n var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [ year, month, day ].join('-');\n}\n\n// this method is used to make the `new Date(value)` parsing behavior stricter\nexport function isDateTimeInputInformationSufficient(value) {\n\n if (!value || typeof value !== 'string') return false;\n\n const segments = value.split('T');\n if (segments.length != 2) return false;\n\n const dateNumbers = segments[0].split('-');\n if (dateNumbers.length != 3) return false;\n\n return true;\n\n}\n\n// this method checks if the date isn't a datetime, or a partial date\nexport function isDateInputInformationMatching(value) {\n\n if (!value || typeof value !== 'string') return false;\n\n if (value.includes('T')) return false;\n\n const dateNumbers = value.split('-');\n if (dateNumbers.length != 3) return false;\n\n return true;\n}\n\nexport function serializeDateTime(date, time, timeSerializingFormat) {\n\n const workingDate = new Date();\n workingDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n workingDate.setHours(Math.floor(time / 60), time % 60, 0, 0);\n\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\n\n const timezoneOffsetMinutes = workingDate.getTimezoneOffset();\n const dayOffset = (time + timezoneOffsetMinutes < 0) ? -1 : (((time + timezoneOffsetMinutes) > MINUTES_IN_DAY) ? 1 : 0);\n\n // Apply the date rollover pre-emptively\n workingDate.setHours(workingDate.getHours() + dayOffset * 24);\n }\n\n return serializeDate(workingDate) + 'T' + serializeTime(time, workingDate.getTimezoneOffset(), timeSerializingFormat);\n\n}\n\nexport function formatTimezoneOffset(minutes) {\n return _getSignedPaddedHours(minutes) + ':' + _getZeroPaddedString(Math.abs(minutes % 60));\n}\n\nexport function isInvalidDateString(value) {\n return isNaN(new Date(Date.parse(value)).getTime());\n}\n\nfunction _getSignedPaddedHours(minutes) {\n if (minutes > 0) {\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\n }\n else {\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\n }\n}\n\nfunction _getZeroPaddedString(time) {\n return time.toString().padStart(2, '0');\n}","import { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\nimport { getValuesData, normalizeValuesData } from './valuesUtil';\n\nexport function sanitizeDateTimePickerValue(options) {\n const {\n formField,\n value\n } = options;\n\n const { subtype } = formField;\n\n if (typeof value !== 'string') return null;\n\n if (subtype === DATETIME_SUBTYPES.DATE && (isInvalidDateString(value) || !isDateInputInformationMatching(value))) return null;\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\n if (subtype === DATETIME_SUBTYPES.DATETIME && (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))) return null;\n\n return value;\n}\n\nexport function sanitizeSingleSelectValue(options) {\n const {\n formField,\n data,\n value\n } = options;\n\n try {\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\n return validValues.includes(value) ? value : null;\n } catch (error) {\n\n // use default value in case of formatting error\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\n return null;\n }\n}\n\nexport function sanitizeMultiSelectValue(options) {\n const {\n formField,\n data,\n value\n } = options;\n\n try {\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\n return value.filter(v => validValues.includes(v));\n } catch (error) {\n\n // use default value in case of formatting error\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\n return [];\n }\n}\n\n\n","import { useContext } 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';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Returns the conditionally filtered data of a form reactively.\n * Memoised to minimize re-renders\n *\n */\nexport default function useFilteredFormData() {\n const { initialData, data } = useService('form')._getState();\n const conditionChecker = useService('conditionChecker', false);\n\n return useMemo(() => {\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\n return { ...initialData, ...newData };\n }, [ conditionChecker, data, initialData ]);\n\n}\n","import useService from './useService.js';\nimport useFilteredFormData from './useFilteredFormData.js';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\n *\n * @param {string | undefined} condition\n *\n * @returns {boolean} true if condition is met or no condition or condition checker exists\n */\nexport default function useCondition(condition) {\n const conditionChecker = useService('conditionChecker', false);\n const filteredData = useFilteredFormData();\n\n return useMemo(() => {\n return conditionChecker ? conditionChecker.check(condition, filteredData) : null;\n }, [ conditionChecker, condition, filteredData ]);\n}\n","import useService from './useService';\nimport useFilteredFormData from './useFilteredFormData';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Evaluate a string reactively based on the expressionLanguage and form data.\n * If the string is not an expression, it is returned as is.\n * Memoised to minimize re-renders.\n *\n * @param {string} value\n *\n */\nexport default function useExpressionEvaluation(value) {\n const formData = useFilteredFormData();\n const expressionLanguage = useService('expressionLanguage');\n\n return useMemo(() => {\n\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\n return expressionLanguage.evaluate(value, formData);\n }\n\n return value;\n\n }, [ expressionLanguage, formData, value ]);\n}\n","import { useEffect } from 'preact/hooks';\n\nexport default function useKeyDownAction(targetKey, action, listenerElement = window) {\n\n function downHandler({ key }) {\n if (key === targetKey) {\n action();\n }\n }\n\n useEffect(() => {\n listenerElement.addEventListener('keydown', downHandler);\n\n return () => {\n listenerElement.removeEventListener('keydown', downHandler);\n };\n });\n}","import useService from './useService';\nimport useFilteredFormData from './useFilteredFormData';\nimport { useMemo } from 'preact/hooks';\n\n/**\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\n * Memoised to minimize re-renders\n *\n * @param {string} value\n * @param {Object} options\n * @param {boolean} [options.debug = false]\n * @param {boolean} [options.strict = false]\n * @param {Function} [options.buildDebugString]\n *\n */\nexport default function useTemplateEvaluation(value, options) {\n const filteredData = useFilteredFormData();\n const templating = useService('templating');\n\n return useMemo(() => {\n\n if (templating.isTemplate(value)) {\n return templating.evaluate(value, filteredData, options);\n }\n\n return value;\n\n }, [ filteredData, templating, value, options ]);\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';\n\nimport { findErrors } from '../../util';\n\nimport { gridColumnClasses } from './Util';\n\nconst noop = () => false;\n\n\nexport default function FormField(props) {\n const {\n field,\n onChange\n } = props;\n\n const { _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 Column\n } = useContext(FormRenderContext);\n\n const FormFieldComponent = formFields.get(field.type);\n\n if (!FormFieldComponent) {\n throw new Error(`cannot render field <${field.type}>`);\n }\n\n const value = get(data, _path);\n\n const fieldErrors = findErrors(errors, _path);\n\n const disabled = properties.readOnly || field.disabled || false;\n\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\n\n if (hidden) {\n return <Empty />;\n }\n\n return (\n <Column field={ field } class={ gridColumnClasses(field) }>\n <Element class=\"fjs-element\" field={ field }>\n <FormFieldComponent\n { ...props }\n disabled={ disabled }\n errors={ fieldErrors }\n onChange={ disabled ? noop : onChange }\n value={ value } />\n </Element>\n </Column>\n );\n}\n","import { useContext } from 'preact/hooks';\n\nimport useService from '../../hooks/useService';\n\nimport FormField from '../FormField';\n\nimport { FormRenderContext } from '../../context';\n\nexport default function Default(props) {\n const {\n Children,\n Empty,\n Row\n } = useContext(FormRenderContext);\n\n const { field } = props;\n\n const { id, components = [] } = field;\n\n const formLayouter = useService('formLayouter');\n const formFieldRegistry = useService('formFieldRegistry');\n const rows = formLayouter.getRows(id);\n\n return <Children class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\n {\n\n rows.map(row => {\n const {\n components = []\n } = row;\n\n if (!components.length) {\n return null;\n }\n\n return (\n <Row row={ row } class=\"fjs-layout-row cds--row\">\n {\n components.map(id => {\n\n const childField = formFieldRegistry.get(id);\n\n if (!childField) {\n return null;\n }\n\n return (\n <FormField\n { ...props }\n key={ childField.id }\n field={ childField } />\n );\n })\n }\n </Row>\n );\n })\n }\n {\n components.length ? null : <Empty />\n }\n </Children>;\n}\n\nDefault.create = (options = {}) => ({\n components: [],\n ...options\n});\n\nDefault.type = 'default';\nDefault.keyed = false;\nDefault.label = null;\nDefault.group = null;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"14\",\n height: \"15\",\n viewBox: \"0 0 28 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n d: \"M19 2H9V0H7v2H2a2 2 0 00-2 2v24a2 2 0 002 2h24a2 2 0 002-2V4a2 2 0 00-2-2h-5V0h-2v2zM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7zm-5 4v17h24V11H2z\"\n})));","import classNames from 'classnames';\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 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}","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 */\n\n// see https://github.com/developit/snarkdown/issues/70\nexport function sanitizeHTML(html) {\n\n const doc = new DOMParser().parseFromString(\n `<!DOCTYPE html>\\n<html><body><div>${ html }`,\n 'text/html'\n );\n\n doc.normalize();\n\n const element = doc.body.firstChild;\n\n if (element) {\n sanitizeNode(/** @type Element */ (element));\n\n return new XMLSerializer().serializeToString(element);\n } else {\n\n // handle the case that document parsing\n // does not work at all, due to HTML gibberish\n return '';\n }\n}\n\n/**\n * Sanitizes an image source to ensure we only allow for data URI and links\n * that start with http(s).\n *\n * Note: Most browsers anyway do not support script execution in <img> elements.\n *\n * @param {string} src\n * @returns {string}\n */\nexport function sanitizeImageSource(src) {\n const valid = ALLOWED_IMAGE_SRC_PATTERN.test(src);\n\n return valid ? src : '';\n}\n\n/**\n * Recursively sanitize a HTML node, potentially\n * removing it, its children or attributes.\n *\n * Inspired by https://github.com/developit/snarkdown/issues/70\n * and https://github.com/cure53/DOMPurify. Simplified\n * for our use-case.\n *\n * @param {Element} node\n */\nfunction sanitizeNode(node) {\n\n // allow text nodes\n if (node.nodeType === NODE_TYPE_TEXT) {\n return;\n }\n\n // disallow all other nodes but Element\n if (node.nodeType !== NODE_TYPE_ELEMENT) {\n return node.remove();\n }\n\n const lcTag = node.tagName.toLowerCase();\n\n // disallow non-whitelisted tags\n if (!ALLOWED_NODES.includes(lcTag)) {\n return node.remove();\n }\n\n const attributes = node.attributes;\n\n // clean attributes\n for (let i = attributes.length; i--;) {\n const attribute = attributes[i];\n\n const name = attribute.name;\n const lcName = name.toLowerCase();\n\n // normalize node value\n const value = attribute.value.trim();\n\n node.removeAttribute(name);\n\n const valid = isValidAttribute(lcTag, lcName, value);\n\n if (valid) {\n node.setAttribute(name, value);\n }\n\n }\n\n // force noopener on target=\"_blank\" links\n if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\n node.setAttribute('rel', 'noopener');\n }\n\n for (let i = node.childNodes.length; i--;) {\n sanitizeNode(/** @type Element */ (node.childNodes[i]));\n }\n}\n\n\n/**\n * Validates attributes for validity.\n *\n * @param {string} lcTag\n * @param {string} lcName\n * @param {string} value\n * @return {boolean}\n */\nfunction isValidAttribute(lcTag, lcName, value) {\n\n // disallow most attributes based on whitelist\n if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\n return false;\n }\n\n // disallow \"DOM clobbering\" / polution of document and wrapping form elements\n if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\n return false;\n }\n\n if (lcName === 'target' && value !== '_blank') {\n return false;\n }\n\n // allow valid url links only\n if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\n return false;\n }\n\n return true;\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"64\",\n height: \"64\",\n viewBox: \"0 0 1280 1280\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: \"2\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e5e9ed\",\n d: \"M0 0h1280v1280H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\",\n fill: \"#cad3db\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M810 770H480v-60l100-170 130 170 100-65v125z\",\n fill: \"#cad3db\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"750\",\n cy: \"550\",\n r: \"50\",\n fill: \"#cad3db\",\n transform: \"translate(10 10)\"\n})));","import { useContext, useMemo } from 'preact/hooks';\n\nimport { FormContext } from '../../context';\n\nimport { useExpressionEvaluation } from '../../hooks';\nimport { sanitizeImageSource } from '../Sanitizer';\n\nimport {\n formFieldClasses,\n prefixId\n} from '../Util';\n\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\n\nconst type = 'image';\n\n\nexport default function Image(props) {\n const {\n field\n } = props;\n\n const {\n alt,\n id,\n source\n } = field;\n\n\n const evaluatedImageSource = useExpressionEvaluation(source);\n\n const safeSource = useMemo(() => sanitizeImageSource(evaluatedImageSource), [ evaluatedImageSource ]);\n\n const altText = useExpressionEvaluation(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';\nimport { useMemo } from 'preact/hooks';\nimport { useService, useTemplateEvaluation } from '../../hooks';\nimport { sanitizeHTML } from '../Sanitizer';\n\nimport {\n formFieldClasses\n} from '../Util';\n\nconst type = 'text';\n\n\nexport default function Text(props) {\n const { field, disableLinks } = props;\n\n const { text = '', strict = false } = field;\n\n const markdownRenderer = useService('markdownRenderer');\n\n // feelers => pure markdown\n const markdown = useTemplateEvaluation(text, { debug: true, strict });\n\n // markdown => safe HTML\n const safeHtml = useMemo(() => {\n const html = markdownRenderer.render(markdown);\n return sanitizeHTML(html);\n }, [ markdownRenderer, markdown ]);\n\n const componentOverrides = useMemo(() => disableLinks ? { 'a': DisabledLink } : {}, [ disableLinks ]);\n\n return <div class={ formFieldClasses(type) }>\n <Markup markup={ safeHtml } 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 EventBus from './EventBus';\nimport Validator from './Validator';\nimport FormFieldRegistry from './FormFieldRegistry';\nimport FormLayouter from './FormLayouter';\n\nimport importModule from '../import';\nimport renderModule from '../render';\n\nexport { FormFieldRegistry, FormLayouter };\n\nexport default {\n __depends__: [ importModule, renderModule ],\n eventBus: [ 'type', EventBus ],\n formFieldRegistry: [ 'type', FormFieldRegistry ],\n formLayouter: [ 'type', FormLayouter ],\n validator: [ 'type', Validator ]\n};","import Ids from 'ids';\r\nimport { get, isString, set } from 'min-dash';\r\n\r\nimport ExpressionLanguageModule from './features/expression-language';\r\nimport MarkdownModule from './features/markdown';\r\n\r\nimport core from './core';\r\n\r\nimport { clone, createFormContainer, createInjector, pathStringify } from './util';\r\n\r\n/**\r\n * @typedef { import('./types').Injector } Injector\r\n * @typedef { import('./types').Data } Data\r\n * @typedef { import('./types').Errors } Errors\r\n * @typedef { import('./types').Schema } Schema\r\n * @typedef { import('./types').FormProperties } FormProperties\r\n * @typedef { import('./types').FormProperty } FormProperty\r\n * @typedef { import('./types').FormEvent } FormEvent\r\n * @typedef { import('./types').FormOptions } FormOptions\r\n *\r\n * @typedef { {\r\n * data: Data,\r\n * initialData: Data,\r\n * errors: Errors,\r\n * properties: FormProperties,\r\n * schema: Schema\r\n * } } State\r\n *\r\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\r\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\r\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\r\n */\r\n\r\nconst ids = new Ids([ 32, 36, 1 ]);\r\n\r\n/**\r\n * The form.\r\n */\r\nexport default class Form {\r\n\r\n /**\r\n * @constructor\r\n * @param {FormOptions} options\r\n */\r\n constructor(options = {}) {\r\n\r\n /**\r\n * @public\r\n * @type {OnEventType}\r\n */\r\n this.on = this._onEvent;\r\n\r\n /**\r\n * @public\r\n * @type {String}\r\n */\r\n this._id = ids.next();\r\n\r\n /**\r\n * @private\r\n * @type {Element}\r\n */\r\n this._container = createFormContainer();\r\n\r\n const {\r\n container,\r\n injector = this._createInjector(options, this._container),\r\n properties = {}\r\n } = options;\r\n\r\n /**\r\n * @private\r\n * @type {State}\r\n */\r\n this._state = {\r\n initialData: null,\r\n data: null,\r\n properties,\r\n errors: {},\r\n schema: null\r\n };\r\n\r\n this.get = injector.get;\r\n\r\n this.invoke = injector.invoke;\r\n\r\n this.get('eventBus').fire('form.init');\r\n\r\n if (container) {\r\n this.attachTo(container);\r\n }\r\n }\r\n\r\n clear() {\r\n\r\n // clear form services\r\n this._emit('diagram.clear');\r\n\r\n // clear diagram services (e.g. EventBus)\r\n this._emit('form.clear');\r\n }\r\n\r\n /**\r\n * Destroy the form, removing it from DOM,\r\n * if attached.\r\n */\r\n destroy() {\r\n\r\n // destroy form services\r\n this.get('eventBus').fire('form.destroy');\r\n\r\n // destroy diagram services (e.g. EventBus)\r\n this.get('eventBus').fire('diagram.destroy');\r\n\r\n this._detach(false);\r\n }\r\n\r\n /**\r\n * Open a form schema with the given initial data.\r\n *\r\n * @param {Schema} schema\r\n * @param {Data} [data]\r\n *\r\n * @return Promise<{ warnings: Array<any> }>\r\n */\r\n importSchema(schema, data = {}) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.clear();\r\n\r\n const {\r\n schema: importedSchema,\r\n data: initializedData,\r\n warnings\r\n } = this.get('importer').importSchema(schema, data);\r\n\r\n this._setState({\r\n data: initializedData,\r\n errors: {},\r\n schema: importedSchema,\r\n initialData: clone(initializedData)\r\n });\r\n\r\n this._emit('import.done', { warnings });\r\n\r\n return resolve({ warnings });\r\n } catch (error) {\r\n this._emit('import.done', {\r\n error,\r\n warnings: error.warnings || []\r\n });\r\n\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Submit the form, triggering all field validations.\r\n *\r\n * @returns { { data: Data, errors: Errors } }\r\n */\r\n submit() {\r\n\r\n const {\r\n properties\r\n } = this._getState();\r\n\r\n if (properties.readOnly) {\r\n throw new Error('form is read-only');\r\n }\r\n\r\n const data = this._getSubmitData();\r\n\r\n const errors = this.validate();\r\n const filteredErrors = this._applyConditions(errors, data);\r\n\r\n const result = {\r\n data,\r\n errors: filteredErrors\r\n };\r\n\r\n this._emit('submit', result);\r\n\r\n return result;\r\n }\r\n\r\n reset() {\r\n this._emit('reset');\r\n\r\n this._setState({\r\n data: clone(this._state.initialData),\r\n errors: {}\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Errors}\r\n */\r\n validate() {\r\n const formFieldRegistry = this.get('formFieldRegistry'),\r\n validator = this.get('validator');\r\n\r\n const { data } = this._getState();\r\n\r\n const errors = formFieldRegistry.getAll().reduce((errors, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n if (disabled) {\r\n return errors;\r\n }\r\n\r\n const value = get(data, _path);\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n return set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n }, /** @type {Errors} */ ({}));\r\n\r\n this._setState({ errors });\r\n\r\n return errors;\r\n }\r\n\r\n /**\r\n * @param {Element|string} parentNode\r\n */\r\n attachTo(parentNode) {\r\n if (!parentNode) {\r\n throw new Error('parentNode required');\r\n }\r\n\r\n this.detach();\r\n\r\n if (isString(parentNode)) {\r\n parentNode = document.querySelector(parentNode);\r\n }\r\n\r\n const container = this._container;\r\n\r\n parentNode.appendChild(container);\r\n\r\n this._emit('attach');\r\n }\r\n\r\n detach() {\r\n this._detach();\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {boolean} [emit]\r\n */\r\n _detach(emit = true) {\r\n const container = this._container,\r\n parentNode = container.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n if (emit) {\r\n this._emit('detach');\r\n }\r\n\r\n parentNode.removeChild(container);\r\n }\r\n\r\n /**\r\n * @param {FormProperty} property\r\n * @param {any} value\r\n */\r\n setProperty(property, value) {\r\n const properties = set(this._getState().properties, [ property ], value);\r\n\r\n this._setState({ properties });\r\n }\r\n\r\n /**\r\n * @param {FormEvent} type\r\n * @param {Function} handler\r\n */\r\n off(type, handler) {\r\n this.get('eventBus').off(type, handler);\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {FormOptions} options\r\n * @param {Element} container\r\n *\r\n * @returns {Injector}\r\n */\r\n _createInjector(options, container) {\r\n const {\r\n additionalModules = [],\r\n modules = this._getModules()\r\n } = options;\r\n\r\n const config = {\r\n renderer: {\r\n container\r\n }\r\n };\r\n\r\n return createInjector([\r\n { config: [ 'value', config ] },\r\n { form: [ 'value', this ] },\r\n core,\r\n ...modules,\r\n ...additionalModules\r\n ]);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _emit(type, data) {\r\n this.get('eventBus').fire(type, data);\r\n }\r\n\r\n /**\r\n * @internal\r\n *\r\n * @param { { add?: boolean, field: any, remove?: number, value?: any } } update\r\n */\r\n _update(update) {\r\n const {\r\n field,\r\n value\r\n } = update;\r\n\r\n const { _path } = field;\r\n\r\n let {\r\n data,\r\n errors\r\n } = this._getState();\r\n\r\n const validator = this.get('validator');\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n set(data, _path, value);\r\n\r\n set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n\r\n this._setState({\r\n data: clone(data),\r\n errors: clone(errors)\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getState() {\r\n return this._state;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _setState(state) {\r\n this._state = {\r\n ...this._state,\r\n ...state\r\n };\r\n\r\n this._emit('changed', this._getState());\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getModules() {\r\n return [\r\n ExpressionLanguageModule,\r\n MarkdownModule\r\n ];\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _onEvent(type, priority, handler) {\r\n this.get('eventBus').on(type, priority, handler);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getSubmitData() {\r\n\r\n const formFieldRegistry = this.get('formFieldRegistry');\r\n const formData = this._getState().data;\r\n\r\n const submitData = formFieldRegistry.getAll().reduce((previous, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n // do not submit disabled form fields\r\n if (disabled || !_path) {\r\n return previous;\r\n }\r\n\r\n const value = get(formData, _path);\r\n\r\n return {\r\n ...previous,\r\n [ _path[ 0 ] ]: value\r\n };\r\n }, {});\r\n\r\n const filteredSubmitData = this._applyConditions(submitData, formData);\r\n\r\n return filteredSubmitData;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _applyConditions(toFilter, data) {\r\n const conditionChecker = this.get('conditionChecker');\r\n return conditionChecker.applyConditions(toFilter, data);\r\n }\r\n}\r\n","import Form from './Form';\r\n\r\nexport { FormFieldRegistry, FormLayouter } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\nexport * from './features';\r\n\r\nconst schemaVersion = 8;\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":["FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","options","type","_getUnaryVariableNames","_getExpressionVariableNames","Error","evaluate","data","result","slice","error","fire","tree","parseExpressions","cursor","variables","Set","node","name","add","from","to","next","Array","unaryTest","parseUnaryTests","$inject","FeelersTemplating","isTemplate","test","template","context","debug","strict","buildDebugString","err","evaluateFeelers","ConditionChecker","formFieldRegistry","_formFieldRegistry","applyConditions","properties","conditions","_getConditions","newProperties","key","condition","shouldRemove","_checkHideCondition","check","hide","formFields","getAll","reduce","formField","conditional","__init__","expressionLanguage","templating","conditionChecker","showdown","setFlavor","MarkdownRenderer","_converter","Converter","render","markdown","makeHtml","markdownRenderer","FN_REF","DEFAULT_PRIORITY","prototype","EventBus","_listeners","on","_destroy","events","priority","callback","that","isArray","isFunction","isNumber","actualCallback","bind","self","forEach","e","_addListener","once","event","wrappedCallback","__isTomb","apply","arguments","off","_removeListener","createEvent","InternalEvent","init","firstListener","returnValue","args","call","originalType","_invokeListeners","undefined","defaultPrevented","handleError","listener","cancelBubble","_invokeListener","invokeFunction","stopPropagation","preventDefault","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","assign","fn","countDecimals","number","num","Big","toString","toFixed","split","length","isValidNumber","isNaN","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","replace","isFirstDot","includes","isFirstMinus","keypressIsNumeric","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","id","remove","get","Object","values","FormLayouter","_rows","addRow","formFieldId","row","rowsPerComponent","find","r","rows","push","getRow","allRows","getRowForField","components","getRows","rowsForField","nextRowId","nextPrefixed","calculateLayout","rowsInOrder","groupByRow","entries","map","c","ids","groupBy","layout","formRows","flatten","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","VALUES_SOURCES","STATIC","INPUT","VALUES_SOURCE_DEFAULT","VALUES_SOURCES_LABELS","VALUES_SOURCES_PATHS","VALUES_SOURCES_DEFAULTS","label","getValuesSource","source","createInjector","bootstrapModules","injector","Injector","createFormContainer","prefix","container","document","createElement","classList","EXPRESSION_PROPERTIES","findErrors","path","pathStringify","isRequired","pathParse","parseInt","pathsEqual","a","b","every","index","join","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","parse","stringify","getSchemaVariables","schema","component","valuesKey","conditionVariables","prop","property","expressionVariables","Importer","formLayouter","_formLayouter","importSchema","warnings","importedSchema","importFormField","initializedData","initializeFieldValues","parentId","_parent","assigned","claim","_path","importFormFields","defaultValue","fieldImplementation","valueData","isUndefined","sanitizeValue","initializedFieldValue","emptyValue","importer","formFieldClasses","disabled","classNames","gridColumnClasses","columns","prefixId","formId","Button","props","action","_jsx","create","keyed","group","FormRenderContext","createContext","Empty","Children","class","children","Element","Row","Column","getService","FormContext","Description","description","Errors","Label","collapseOnEmpty","_jsxs","Checkbox","onChange","target","checked","useContext","getValuesData","formData","normalizeValuesData","valuesData","filter","_isValueSomething","v","_normalizeValueData","_isAllowedValue","_isReadableType","useService","LOAD_STATES","LOADING","LOADED","ERROR","staticValues","valuesGetter","setValuesGetter","useState","state","initialData","_getState","useEffect","keyedValues","buildErrorState","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","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","offsetString","inboundOffset","serializeDate","date","d","month","getMonth","day","getDate","year","getFullYear","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","padStart","sanitizeDateTimePickerValue","subtype","sanitizeSingleSelectValue","validValues","sanitizeMultiSelectValue","Checklist","toggleCheckbox","newValue","x","loadState","useValuesAsync","defaults","useFilteredFormData","useMemo","newData","useCondition","filteredData","useExpressionEvaluation","useKeyDownAction","targetKey","listenerElement","downHandler","addEventListener","removeEventListener","useTemplateEvaluation","noop","FormField","form","FormFieldComponent","fieldErrors","readOnly","hidden","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","onClose","onInputKeyDown","useCallback","dispatchEvent","onInputFocus","onInputBlur","fullId","width","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","height","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","individualEntries","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","valueIndex","userMovedCursor","screenX","y","screenY","maxHeight","scrollBehavior","i","Timepicker","timeInterval","setTime","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","keys","intervalIndex","cacheTime","flooredCacheTime","onDropdownValueSelected","Datetime","dateLabel","timeLabel","getNullDateTime","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","isValidDate","isValidTime","useDatePicker","useTimePicker","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","set","Logo","Lightbox","onBackdropClick","Link","onClick","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","body","FormComponent","onSubmit","onReset","handleSubmit","handleReset","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","element","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","lcTag","tagName","attributes","attribute","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Image","alt","evaluatedImageSource","safeSource","altText","Numberfield","appearance","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","decrement","onKeyDown","onKeyPress","selectionStart","selectionEnd","Radio","option","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","shouldApplyFilter","setShouldApplyFilter","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","o","valueLabel","filteredOptions","keyDownEvent","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","_Fragment","SimpleSelect","selectRef","onMouseDown","select","findIndex","Select","searchable","selectProps","Taglist","setFilteredOptions","hasOptionsLeft","setHasOptionsLeft","onFilterChange","selectValue","at","deselectValue","onTagRemoveClick","nextTag","closest","nextSibling","shouldDisplayDropdown","Text","disableLinks","text","safeHtml","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","ColumnsIcon","datetime","DatetimeIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","SelectIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","default","FormIcon","FormFields","register","Renderer","App","setState","formContext","_id","newState","update","_update","submit","reset","renderer","__depends__","importModule","renderModule","validator","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","_setState","_getSubmitData","filteredErrors","_applyConditions","parentNode","detach","appendChild","emit","removeChild","setProperty","handler","additionalModules","modules","_getModules","core","ExpressionLanguageModule","MarkdownModule","submitData","previous","filteredSubmitData","toFilter","schemaVersion","createForm","rest","then"],"mappings":";;;;;;;;;;;;;;;;;AAGe,MAAMA,sBAAsB,CAAC;EAC1CC,WAAW,CAACC,QAAQ,EAAE;IACpB,IAAI,CAACC,SAAS,GAAGD,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,YAAY,CAACC,KAAK,EAAE;IAAE,OAAOC,gBAAQ,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,UAAU,CAAC,GAAG,CAAC,CAAA;AAAE,GAAA;;AAEvE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,gBAAgB,CAACC,UAAU,EAAEC,OAAO,GAAG,EAAE,EAAE;IAEzC,MAAM;AACJC,MAAAA,IAAI,GAAG,YAAA;AACT,KAAC,GAAGD,OAAO,CAAA;AAEX,IAAA,IAAI,CAAC,IAAI,CAACN,YAAY,CAACK,UAAU,CAAC,EAAE;AAClC,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;IAEA,IAAIE,IAAI,KAAK,WAAW,EAAE;AACxB,MAAA,OAAO,IAAI,CAACC,sBAAsB,CAACH,UAAU,CAAC,CAAA;AAChD,KAAC,MACI,IAAIE,IAAI,KAAK,YAAY,EAAE;AAC9B,MAAA,OAAO,IAAI,CAACE,2BAA2B,CAACJ,UAAU,CAAC,CAAA;AACrD,KAAA;IAEA,MAAM,IAAIK,KAAK,CAAC,2BAA2B,GAAGJ,OAAO,CAACC,IAAI,CAAC,CAAA;AAC7D,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEI,EAAAA,QAAQ,CAACN,UAAU,EAAEO,IAAI,GAAG,EAAE,EAAE;IAC9B,IAAI,CAACP,UAAU,EAAE;AACf,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,CAACH,gBAAQ,CAACG,UAAU,CAAC,IAAI,CAACA,UAAU,CAACF,UAAU,CAAC,GAAG,CAAC,EAAE;AACxD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,IAAI;AACF,MAAA,MAAMU,MAAM,GAAGF,eAAQ,CAACN,UAAU,CAACS,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAAC,CAAA;AAElD,MAAA,OAAOC,MAAM,CAAA;KACd,CAAC,OAAOE,KAAK,EAAE;AACd,MAAA,IAAI,CAAChB,SAAS,CAACiB,IAAI,CAAC,OAAO,EAAE;AAAED,QAAAA,KAAAA;AAAM,OAAC,CAAC,CAAA;AACvC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACF,GAAA;EAEAN,2BAA2B,CAACJ,UAAU,EAAE;AACtC,IAAA,MAAMY,IAAI,GAAGC,uBAAgB,CAACb,UAAU,CAAC,CAAA;AACzC,IAAA,MAAMc,MAAM,GAAGF,IAAI,CAACE,MAAM,EAAE,CAAA;AAE5B,IAAA,MAAMC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC3B,GAAG;AACD,MAAA,MAAMC,IAAI,GAAGH,MAAM,CAACG,IAAI,CAAA;AAExB,MAAA,IAAIA,IAAI,CAACf,IAAI,CAACgB,IAAI,KAAK,cAAc,EAAE;AACrCH,QAAAA,SAAS,CAACI,GAAG,CAACnB,UAAU,CAACS,KAAK,CAACQ,IAAI,CAACG,IAAI,EAAEH,IAAI,CAACI,EAAE,CAAC,CAAC,CAAA;AACrD,OAAA;AAEF,KAAC,QAAQP,MAAM,CAACQ,IAAI,EAAE,EAAA;AAEtB,IAAA,OAAOC,KAAK,CAACH,IAAI,CAACL,SAAS,CAAC,CAAA;AAC9B,GAAA;EAEAZ,sBAAsB,CAACqB,SAAS,EAAE;AAChC,IAAA,MAAMZ,IAAI,GAAGa,sBAAe,CAACD,SAAS,CAAC,CAAA;AACvC,IAAA,MAAMV,MAAM,GAAGF,IAAI,CAACE,MAAM,EAAE,CAAA;AAE5B,IAAA,MAAMC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC3B,GAAG;AACD,MAAA,MAAMC,IAAI,GAAGH,MAAM,CAACG,IAAI,CAAA;AAExB,MAAA,IAAIA,IAAI,CAACf,IAAI,CAACgB,IAAI,KAAK,cAAc,EAAE;AACrCH,QAAAA,SAAS,CAACI,GAAG,CAACK,SAAS,CAACf,KAAK,CAACQ,IAAI,CAACG,IAAI,EAAEH,IAAI,CAACI,EAAE,CAAC,CAAC,CAAA;AACpD,OAAA;AAEF,KAAC,QAAQP,MAAM,CAACQ,IAAI,EAAE,EAAA;AAEtB,IAAA,OAAOC,KAAK,CAACH,IAAI,CAACL,SAAS,CAAC,CAAA;AAC9B,GAAA;AACF,CAAA;AAEAxB,sBAAsB,CAACmC,OAAO,GAAG,CAC/B,UAAU,CACX;;AC3Gc,MAAMC,iBAAiB,CAAC;AAErCnC,EAAAA,WAAW,GAAG,EAAE;EAEhBoC,UAAU,CAAChC,KAAK,EAAE;AAAE,IAAA,OAAOC,gBAAQ,CAACD,KAAK,CAAC,KAAKA,KAAK,CAACE,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC+B,IAAI,CAACjC,KAAK,CAAC,CAAC,CAAA;AAAE,GAAA;;AAE3F;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEU,EAAAA,QAAQ,CAACwB,QAAQ,EAAEC,OAAO,GAAG,EAAE,EAAE9B,OAAO,GAAG,EAAE,EAAE;IAE7C,MAAM;AACJ+B,MAAAA,KAAK,GAAG,KAAK;AACbC,MAAAA,MAAM,GAAG,KAAK;MACdC,gBAAgB,GAAIC,GAAG,IAAK,SAAA;AAC9B,KAAC,GAAGlC,OAAO,CAAA;AAEX,IAAA,OAAOmC,gBAAe,CAACN,QAAQ,EAAEC,OAAO,EAAE;MAAEC,KAAK;MAAEC,MAAM;AAAEC,MAAAA,gBAAAA;AAAiB,KAAC,CAAC,CAAA;AAChF,GAAA;AACF,CAAA;AAEAP,iBAAiB,CAACD,OAAO,GAAG,EAAE;;AC9B9B;AACA;AACA;AACA;;AAEe,MAAMW,gBAAgB,CAAC;AACpC7C,EAAAA,WAAW,CAAC8C,iBAAiB,EAAE7C,QAAQ,EAAE;IACvC,IAAI,CAAC8C,kBAAkB,GAAGD,iBAAiB,CAAA;IAC3C,IAAI,CAAC5C,SAAS,GAAGD,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACE+C,EAAAA,eAAe,CAACC,UAAU,EAAElC,IAAI,GAAG,EAAE,EAAE;AAErC,IAAA,MAAMmC,UAAU,GAAG,IAAI,CAACC,cAAc,EAAE,CAAA;AAExC,IAAA,MAAMC,aAAa,GAAG;MAAE,GAAGH,UAAAA;KAAY,CAAA;AAEvC,IAAA,KAAK,MAAM;MAAEI,GAAG;AAAEC,MAAAA,SAAAA;KAAW,IAAIJ,UAAU,EAAE;MAC3C,MAAMK,YAAY,GAAG,IAAI,CAACC,mBAAmB,CAACF,SAAS,EAAEvC,IAAI,CAAC,CAAA;AAE9D,MAAA,IAAIwC,YAAY,EAAE;QAChB,OAAOH,aAAa,CAAEC,GAAG,CAAE,CAAA;AAC7B,OAAA;AACF,KAAA;AAEA,IAAA,OAAOD,aAAa,CAAA;AACtB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEK,EAAAA,KAAK,CAACH,SAAS,EAAEvC,IAAI,GAAG,EAAE,EAAE;IAC1B,IAAI,CAACuC,SAAS,EAAE;AACd,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI,CAACjD,gBAAQ,CAACiD,SAAS,CAAC,IAAI,CAACA,SAAS,CAAChD,UAAU,CAAC,GAAG,CAAC,EAAE;AACtD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,IAAI;AAEF;AACA,MAAA,MAAMU,MAAM,GAAGgB,gBAAS,CAACsB,SAAS,CAACrC,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAAC,CAAA;AAElD,MAAA,OAAOC,MAAM,CAAA;KACd,CAAC,OAAOE,KAAK,EAAE;AACd,MAAA,IAAI,CAAChB,SAAS,CAACiB,IAAI,CAAC,OAAO,EAAE;AAAED,QAAAA,KAAAA;AAAM,OAAC,CAAC,CAAA;AACvC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEsC,EAAAA,mBAAmB,CAACF,SAAS,EAAEvC,IAAI,EAAE;AACnC,IAAA,IAAI,CAACuC,SAAS,CAACI,IAAI,EAAE;AACnB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,MAAM1C,MAAM,GAAG,IAAI,CAACyC,KAAK,CAACH,SAAS,CAACI,IAAI,EAAE3C,IAAI,CAAC,CAAA;IAE/C,OAAOC,MAAM,KAAK,IAAI,CAAA;AACxB,GAAA;AAEAmC,EAAAA,cAAc,GAAG;AACf,IAAA,MAAMQ,UAAU,GAAG,IAAI,CAACZ,kBAAkB,CAACa,MAAM,EAAE,CAAA;IAEnD,OAAOD,UAAU,CAACE,MAAM,CAAC,CAACX,UAAU,EAAEY,SAAS,KAAK;MAClD,MAAM;QAAET,GAAG;AAAEU,QAAAA,WAAW,EAAET,SAAAA;AAAU,OAAC,GAAGQ,SAAS,CAAA;MAEjD,IAAIT,GAAG,IAAIC,SAAS,EAAE;QACpB,OAAO,CAAE,GAAGJ,UAAU,EAAE;UAAEG,GAAG;AAAEC,UAAAA,SAAAA;AAAU,SAAC,CAAE,CAAA;AAC9C,OAAA;AAEA,MAAA,OAAOJ,UAAU,CAAA;KAElB,EAAE,EAAE,CAAC,CAAA;AACR,GAAA;AACF,CAAA;AAEAL,gBAAgB,CAACX,OAAO,GAAG,CACzB,mBAAmB,EACnB,UAAU,CACX;;AClGD,+BAAe;AACb8B,EAAAA,QAAQ,EAAE,CAAE,oBAAoB,EAAE,YAAY,EAAE,kBAAkB,CAAE;AACpEC,EAAAA,kBAAkB,EAAE,CAAE,MAAM,EAAElE,sBAAsB,CAAE;AACtDmE,EAAAA,UAAU,EAAE,CAAE,MAAM,EAAE/B,iBAAiB,CAAE;AACzCgC,EAAAA,gBAAgB,EAAE,CAAE,MAAM,EAAEtB,gBAAgB,CAAA;AAC9C,CAAC;;ACPD;AACAuB,QAAQ,CAACC,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEb,MAAMC,gBAAgB,CAAC;AAEpCtE,EAAAA,WAAW,GAAG;AACZ,IAAA,IAAI,CAACuE,UAAU,GAAG,IAAIH,QAAQ,CAACI,SAAS,EAAE,CAAA;AAC5C,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,MAAM,CAACC,QAAQ,EAAE;AACf,IAAA,OAAO,IAAI,CAACH,UAAU,CAACI,QAAQ,CAACD,QAAQ,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AAEAJ,gBAAgB,CAACpC,OAAO,GAAG,EAAE;;ACrB7B,qBAAe;EACb8B,QAAQ,EAAE,CAAE,kBAAkB,CAAE;AAChCY,EAAAA,gBAAgB,EAAE,CAAE,MAAM,EAAEN,gBAAgB,CAAA;AAC9C,CAAC;;ACGD,IAAIO,MAAM,GAAG,MAAM,CAAA;AAEnB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAE3B,IAAI7D,KAAK,GAAGc,KAAK,CAACgD,SAAS,CAAC9D,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,SAAS+D,QAAQ,GAAG;AACjC,EAAA,IAAI,CAACC,UAAU,GAAG,EAAE,CAAA;;AAEpB;AACA;AACA,EAAA,IAAI,CAACC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAACC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACpD,CAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAH,QAAQ,CAACD,SAAS,CAACG,EAAE,GAAG,UAASE,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAEjEH,MAAM,GAAGI,eAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;AAE9C,EAAA,IAAIK,kBAAU,CAACJ,QAAQ,CAAC,EAAE;AACxBE,IAAAA,IAAI,GAAGD,QAAQ,CAAA;AACfA,IAAAA,QAAQ,GAAGD,QAAQ,CAAA;AACnBA,IAAAA,QAAQ,GAAGP,gBAAgB,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAI,CAACY,gBAAQ,CAACL,QAAQ,CAAC,EAAE;AACvB,IAAA,MAAM,IAAIxE,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,GAAA;EAEA,IAAI8E,cAAc,GAAGL,QAAQ,CAAA;AAE7B,EAAA,IAAIC,IAAI,EAAE;AACRI,IAAAA,cAAc,GAAGC,YAAI,CAACN,QAAQ,EAAEC,IAAI,CAAC,CAAA;;AAErC;AACA;AACA;IACAI,cAAc,CAACd,MAAM,CAAC,GAAGS,QAAQ,CAACT,MAAM,CAAC,IAAIS,QAAQ,CAAA;AACvD,GAAA;EAEA,IAAIO,IAAI,GAAG,IAAI,CAAA;AAEfT,EAAAA,MAAM,CAACU,OAAO,CAAC,UAASC,CAAC,EAAE;AACzBF,IAAAA,IAAI,CAACG,YAAY,CAACD,CAAC,EAAE;AACnBV,MAAAA,QAAQ,EAAEA,QAAQ;AAClBC,MAAAA,QAAQ,EAAEK,cAAc;AACxB7D,MAAAA,IAAI,EAAE,IAAA;AACR,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AACJ,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAkD,QAAQ,CAACD,SAAS,CAACkB,IAAI,GAAG,UAASC,KAAK,EAAEb,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAE;EAClE,IAAIM,IAAI,GAAG,IAAI,CAAA;AAEf,EAAA,IAAIJ,kBAAU,CAACJ,QAAQ,CAAC,EAAE;AACxBE,IAAAA,IAAI,GAAGD,QAAQ,CAAA;AACfA,IAAAA,QAAQ,GAAGD,QAAQ,CAAA;AACnBA,IAAAA,QAAQ,GAAGP,gBAAgB,CAAA;AAC7B,GAAA;AAEA,EAAA,IAAI,CAACY,gBAAQ,CAACL,QAAQ,CAAC,EAAE;AACvB,IAAA,MAAM,IAAIxE,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,GAAA;AAEA,EAAA,SAASsF,eAAe,GAAG;IACzBA,eAAe,CAACC,QAAQ,GAAG,IAAI,CAAA;IAE/B,IAAIpF,MAAM,GAAGsE,QAAQ,CAACe,KAAK,CAACd,IAAI,EAAEe,SAAS,CAAC,CAAA;AAE5CT,IAAAA,IAAI,CAACU,GAAG,CAACL,KAAK,EAAEC,eAAe,CAAC,CAAA;AAEhC,IAAA,OAAOnF,MAAM,CAAA;AACf,GAAA;;AAEA;AACA;AACA;AACAmF,EAAAA,eAAe,CAACtB,MAAM,CAAC,GAAGS,QAAQ,CAAA;EAElC,IAAI,CAACJ,EAAE,CAACgB,KAAK,EAAEb,QAAQ,EAAEc,eAAe,CAAC,CAAA;AAC3C,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAnB,QAAQ,CAACD,SAAS,CAACwB,GAAG,GAAG,UAASnB,MAAM,EAAEE,QAAQ,EAAE;EAElDF,MAAM,GAAGI,eAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAE,CAAA;EAE9C,IAAIS,IAAI,GAAG,IAAI,CAAA;AAEfT,EAAAA,MAAM,CAACU,OAAO,CAAC,UAASI,KAAK,EAAE;AAC7BL,IAAAA,IAAI,CAACW,eAAe,CAACN,KAAK,EAAEZ,QAAQ,CAAC,CAAA;AACvC,GAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACAN,QAAQ,CAACD,SAAS,CAAC0B,WAAW,GAAG,UAAS1F,IAAI,EAAE;AAC9C,EAAA,IAAImF,KAAK,GAAG,IAAIQ,aAAa,EAAE,CAAA;AAE/BR,EAAAA,KAAK,CAACS,IAAI,CAAC5F,IAAI,CAAC,CAAA;AAEhB,EAAA,OAAOmF,KAAK,CAAA;AACd,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAlB,QAAQ,CAACD,SAAS,CAAC5D,IAAI,GAAG,UAAST,IAAI,EAAEK,IAAI,EAAE;AAC7C,EAAA,IAAImF,KAAK,EACLU,aAAa,EACbC,WAAW,EACXC,IAAI,CAAA;AAERA,EAAAA,IAAI,GAAG7F,KAAK,CAAC8F,IAAI,CAACT,SAAS,CAAC,CAAA;AAE5B,EAAA,IAAI,OAAO5F,IAAI,KAAK,QAAQ,EAAE;AAC5BK,IAAAA,IAAI,GAAGL,IAAI,CAAA;IACXA,IAAI,GAAGK,IAAI,CAACL,IAAI,CAAA;AAClB,GAAA;EAEA,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,MAAM,IAAIG,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC5C,GAAA;AAEA+F,EAAAA,aAAa,GAAG,IAAI,CAAC3B,UAAU,CAACvE,IAAI,CAAC,CAAA;EAErC,IAAI,CAACkG,aAAa,EAAE;AAClB,IAAA,OAAA;AACF,GAAA;;AAEA;AACA;EACA,IAAI7F,IAAI,YAAY2F,aAAa,EAAE;AAEjC;AACAR,IAAAA,KAAK,GAAGnF,IAAI,CAAA;AACd,GAAC,MAAM;AACLmF,IAAAA,KAAK,GAAG,IAAI,CAACO,WAAW,CAAC1F,IAAI,CAAC,CAAA;AAChC,GAAA;;AAEA;AACA+F,EAAAA,IAAI,CAAC,CAAC,CAAC,GAAGZ,KAAK,CAAA;;AAEf;AACA,EAAA,IAAIc,YAAY,GAAGd,KAAK,CAACxF,IAAI,CAAA;;AAE7B;EACA,IAAIA,IAAI,KAAKsG,YAAY,EAAE;IACzBd,KAAK,CAACxF,IAAI,GAAGA,IAAI,CAAA;AACnB,GAAA;EAEA,IAAI;IACFmG,WAAW,GAAG,IAAI,CAACI,gBAAgB,CAACf,KAAK,EAAEY,IAAI,EAAEF,aAAa,CAAC,CAAA;AACjE,GAAC,SAAS;AAER;IACA,IAAIlG,IAAI,KAAKsG,YAAY,EAAE;MACzBd,KAAK,CAACxF,IAAI,GAAGsG,YAAY,CAAA;AAC3B,KAAA;AACF,GAAA;;AAEA;AACA;AACA,EAAA,IAAIH,WAAW,KAAKK,SAAS,IAAIhB,KAAK,CAACiB,gBAAgB,EAAE;AACvDN,IAAAA,WAAW,GAAG,KAAK,CAAA;AACrB,GAAA;AAEA,EAAA,OAAOA,WAAW,CAAA;AACpB,CAAC,CAAA;AAGD7B,QAAQ,CAACD,SAAS,CAACqC,WAAW,GAAG,UAASlG,KAAK,EAAE;AAC/C,EAAA,OAAO,IAAI,CAACC,IAAI,CAAC,OAAO,EAAE;AAAED,IAAAA,KAAK,EAAEA,KAAAA;GAAO,CAAC,KAAK,KAAK,CAAA;AACvD,CAAC,CAAA;AAGD8D,QAAQ,CAACD,SAAS,CAACI,QAAQ,GAAG,YAAW;AACvC,EAAA,IAAI,CAACF,UAAU,GAAG,EAAE,CAAA;AACtB,CAAC,CAAA;AAEDD,QAAQ,CAACD,SAAS,CAACkC,gBAAgB,GAAG,UAASf,KAAK,EAAEY,IAAI,EAAEO,QAAQ,EAAE;AAEpE,EAAA,IAAIR,WAAW,CAAA;AAEf,EAAA,OAAOQ,QAAQ,EAAE;AAEf;IACA,IAAInB,KAAK,CAACoB,YAAY,EAAE;AACtB,MAAA,MAAA;AACF,KAAA;IAEAT,WAAW,GAAG,IAAI,CAACU,eAAe,CAACrB,KAAK,EAAEY,IAAI,EAAEO,QAAQ,CAAC,CAAA;IAEzDA,QAAQ,GAAGA,QAAQ,CAACvF,IAAI,CAAA;AAC1B,GAAA;AAEA,EAAA,OAAO+E,WAAW,CAAA;AACpB,CAAC,CAAA;AAED7B,QAAQ,CAACD,SAAS,CAACwC,eAAe,GAAG,UAASrB,KAAK,EAAEY,IAAI,EAAEO,QAAQ,EAAE;AAEnE,EAAA,IAAIR,WAAW,CAAA;AAEf,EAAA,IAAIQ,QAAQ,CAAC/B,QAAQ,CAACc,QAAQ,EAAE;AAC9B,IAAA,OAAOS,WAAW,CAAA;AACpB,GAAA;EAEA,IAAI;AAEF;IACAA,WAAW,GAAGW,cAAc,CAACH,QAAQ,CAAC/B,QAAQ,EAAEwB,IAAI,CAAC,CAAA;;AAErD;IACA,IAAID,WAAW,KAAKK,SAAS,EAAE;MAC7BhB,KAAK,CAACW,WAAW,GAAGA,WAAW,CAAA;MAC/BX,KAAK,CAACuB,eAAe,EAAE,CAAA;AACzB,KAAA;;AAEA;IACA,IAAIZ,WAAW,KAAK,KAAK,EAAE;MACzBX,KAAK,CAACwB,cAAc,EAAE,CAAA;AACxB,KAAA;GACD,CAAC,OAAOxG,KAAK,EAAE;AACd,IAAA,IAAI,CAAC,IAAI,CAACkG,WAAW,CAAClG,KAAK,CAAC,EAAE;AAC5ByG,MAAAA,OAAO,CAACzG,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC,CAAA;AAEzD,MAAA,MAAMA,KAAK,CAAA;AACb,KAAA;AACF,GAAA;AAEA,EAAA,OAAO2F,WAAW,CAAA;AACpB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA7B,QAAQ,CAACD,SAAS,CAACiB,YAAY,GAAG,UAASE,KAAK,EAAE0B,WAAW,EAAE;AAE7D,EAAA,IAAIP,QAAQ,GAAG,IAAI,CAACQ,aAAa,CAAC3B,KAAK,CAAC;IACpC4B,gBAAgB,CAAA;;AAEpB;EACA,IAAI,CAACT,QAAQ,EAAE;AACb,IAAA,IAAI,CAACU,aAAa,CAAC7B,KAAK,EAAE0B,WAAW,CAAC,CAAA;AAEtC,IAAA,OAAA;AACF,GAAA;;AAEA;AACA;AACA,EAAA,OAAOP,QAAQ,EAAE;AAEf,IAAA,IAAIA,QAAQ,CAAChC,QAAQ,GAAGuC,WAAW,CAACvC,QAAQ,EAAE;MAE5CuC,WAAW,CAAC9F,IAAI,GAAGuF,QAAQ,CAAA;AAE3B,MAAA,IAAIS,gBAAgB,EAAE;QACpBA,gBAAgB,CAAChG,IAAI,GAAG8F,WAAW,CAAA;AACrC,OAAC,MAAM;AACL,QAAA,IAAI,CAACG,aAAa,CAAC7B,KAAK,EAAE0B,WAAW,CAAC,CAAA;AACxC,OAAA;AAEA,MAAA,OAAA;AACF,KAAA;AAEAE,IAAAA,gBAAgB,GAAGT,QAAQ,CAAA;IAC3BA,QAAQ,GAAGA,QAAQ,CAACvF,IAAI,CAAA;AAC1B,GAAA;;AAEA;EACAgG,gBAAgB,CAAChG,IAAI,GAAG8F,WAAW,CAAA;AACrC,CAAC,CAAA;AAGD5C,QAAQ,CAACD,SAAS,CAAC8C,aAAa,GAAG,UAASnG,IAAI,EAAE;AAChD,EAAA,OAAO,IAAI,CAACuD,UAAU,CAACvD,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAA;AAEDsD,QAAQ,CAACD,SAAS,CAACgD,aAAa,GAAG,UAASrG,IAAI,EAAE2F,QAAQ,EAAE;AAC1D,EAAA,IAAI,CAACpC,UAAU,CAACvD,IAAI,CAAC,GAAG2F,QAAQ,CAAA;AAClC,CAAC,CAAA;AAEDrC,QAAQ,CAACD,SAAS,CAACyB,eAAe,GAAG,UAASN,KAAK,EAAEZ,QAAQ,EAAE;AAE7D,EAAA,IAAI+B,QAAQ,GAAG,IAAI,CAACQ,aAAa,CAAC3B,KAAK,CAAC;IACpC8B,YAAY;IACZF,gBAAgB;IAChBG,gBAAgB,CAAA;EAEpB,IAAI,CAAC3C,QAAQ,EAAE;AAEb;AACA,IAAA,IAAI,CAACyC,aAAa,CAAC7B,KAAK,EAAE,IAAI,CAAC,CAAA;AAE/B,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,OAAOmB,QAAQ,EAAE;IAEfW,YAAY,GAAGX,QAAQ,CAACvF,IAAI,CAAA;IAE5BmG,gBAAgB,GAAGZ,QAAQ,CAAC/B,QAAQ,CAAA;IAEpC,IAAI2C,gBAAgB,KAAK3C,QAAQ,IAAI2C,gBAAgB,CAACpD,MAAM,CAAC,KAAKS,QAAQ,EAAE;AAC1E,MAAA,IAAIwC,gBAAgB,EAAE;QACpBA,gBAAgB,CAAChG,IAAI,GAAGkG,YAAY,CAAA;AACtC,OAAC,MAAM;AAEL;AACA,QAAA,IAAI,CAACD,aAAa,CAAC7B,KAAK,EAAE8B,YAAY,CAAC,CAAA;AACzC,OAAA;AACF,KAAA;AAEAF,IAAAA,gBAAgB,GAAGT,QAAQ,CAAA;AAC3BA,IAAAA,QAAQ,GAAGW,YAAY,CAAA;AACzB,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;AACA,SAAStB,aAAa,GAAG,EAAE;AAE3BA,aAAa,CAAC3B,SAAS,CAAC0C,eAAe,GAAG,YAAW;EACnD,IAAI,CAACH,YAAY,GAAG,IAAI,CAAA;AAC1B,CAAC,CAAA;AAEDZ,aAAa,CAAC3B,SAAS,CAAC2C,cAAc,GAAG,YAAW;EAClD,IAAI,CAACP,gBAAgB,GAAG,IAAI,CAAA;AAC9B,CAAC,CAAA;AAEDT,aAAa,CAAC3B,SAAS,CAAC4B,IAAI,GAAG,UAAS5F,IAAI,EAAE;AAC5CmH,EAAAA,cAAM,CAAC,IAAI,EAAEnH,IAAI,IAAI,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASyG,cAAc,CAACW,EAAE,EAAErB,IAAI,EAAE;AAChC,EAAA,OAAOqB,EAAE,CAAC9B,KAAK,CAAC,IAAI,EAAES,IAAI,CAAC,CAAA;AAC7B;;ACrgBO,SAASsB,aAAa,CAACC,MAAM,EAAE;AACpC,EAAA,MAAMC,GAAG,GAAGC,GAAG,CAACF,MAAM,CAAC,CAAA;AACvB,EAAA,IAAIC,GAAG,CAACE,QAAQ,EAAE,KAAKF,GAAG,CAACG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAC/C,EAAA,OAAOH,GAAG,CAACG,OAAO,EAAE,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,MAAM,IAAI,CAAC,CAAA;AAChD,CAAA;AAEO,SAASC,aAAa,CAACxI,KAAK,EAAE;EACnC,OAAO,CAAC,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,KAAKA,KAAK,KAAK,EAAE,IAAI,CAACyI,KAAK,CAACC,MAAM,CAAC1I,KAAK,CAAC,CAAC,CAAA;AAC1G,CAAA;AAEO,SAAS2I,yBAAyB,CAAC1F,GAAG,EAAE2F,aAAa,EAAEC,UAAU,EAAEC,cAAc,EAAEC,aAAa,EAAE;AAEvG;EACAH,aAAa,GAAGA,aAAa,CAACI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC/C,EAAA,MAAMC,UAAU,GAAG,CAACL,aAAa,CAACM,QAAQ,CAAC,GAAG,CAAC,KAAKjG,GAAG,KAAK,GAAG,IAAIA,GAAG,KAAK,GAAG,CAAC,CAAA;AAC/E,EAAA,MAAMkG,YAAY,GAAG,CAACP,aAAa,CAACM,QAAQ,CAAC,GAAG,CAAC,IAAIjG,GAAG,KAAK,GAAG,IAAI4F,UAAU,KAAK,CAAC,CAAA;AAEpF,EAAA,MAAMO,iBAAiB,GAAG,UAAU,CAACnH,IAAI,CAACgB,GAAG,CAAC,CAAA;AAC9C,EAAA,MAAMoG,QAAQ,GAAGT,aAAa,KAAK9B,SAAS,GAAG,CAAC,CAAC,GAAG8B,aAAa,CAACU,OAAO,CAAC,GAAG,CAAC,CAAA;;AAE9E;AACA,EAAA,MAAMC,qBAAqB,GAAG,OAAOR,aAAc,KAAK,QAAQ,IAC3DD,cAAc,KAAK,CAAC,IACpBO,QAAQ,KAAK,CAAC,CAAC,IACfT,aAAa,CAACM,QAAQ,CAAC,GAAG,CAAC,IAC3BN,aAAa,CAACN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,MAAM,IAAIQ,aAAa,IACnDF,UAAU,GAAGQ,QAAQ,CAAA;EAE1B,MAAMG,qBAAqB,GAAGJ,iBAAiB,IAAML,aAAa,KAAK,CAAC,IAAKE,UAAW,IAAIE,YAAY,CAAA;EAExG,OAAOK,qBAAqB,IAAI,CAACD,qBAAqB,CAAA;AAExD,CAAA;AAEO,SAASE,qBAAqB,CAACzJ,KAAK,EAAE;EAC3C,OAAOA,KAAK,KAAK8G,SAAS,IAAI9G,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,CAAA;AAC9D;;AClCA,MAAM0J,aAAa,GAAG,sIAAsI,CAAA;AAC5J,MAAMC,aAAa,GAAG,wmCAAwmC,CAAA;AAE/mC,MAAMC,SAAS,CAAC;AAE7BC,EAAAA,aAAa,CAACC,KAAK,EAAE9J,KAAK,EAAE;IAE1B,MAAM;MAAEM,IAAI;AAAEyJ,MAAAA,QAAAA;AAAS,KAAC,GAAGD,KAAK,CAAA;IAEhC,IAAIE,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI1J,IAAI,KAAK,QAAQ,EAAE;MAErB,MAAM;QAAEyI,aAAa;AAAEkB,QAAAA,SAAAA;AAAU,OAAC,GAAGH,KAAK,CAAA;MAE1C,IAAI9J,KAAK,KAAK,KAAK,EAAE;AAEnBgK,QAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,wBAAwB,CACzB,CAAA;OAEF,MACI,IAAIhK,KAAK,EAAE;QAEd,IAAI+I,aAAa,IAAI,CAAC,IAAIf,aAAa,CAAChI,KAAK,CAAC,GAAG+I,aAAa,EAAE;UAC9DiB,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,uBAAuB,IACtBjB,aAAa,KAAK,CAAC,GAChB,eAAe,GACd,CAAeA,aAAAA,EAAAA,aAAc,CAAgBA,cAAAA,EAAAA,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG,EAAG,CAAC,CAAA,CAC/E,GAAG,GAAG,CACR,CAAA;AACH,SAAA;AAEA,QAAA,IAAIkB,SAAS,EAAE;AAEb,UAAA,MAAMC,QAAQ,GAAG/B,GAAG,CAACnI,KAAK,CAAC,CAAA;AAC3B,UAAA,MAAMmK,YAAY,GAAGhC,GAAG,CAAC8B,SAAS,CAAC,CAAA;AAEnC,UAAA,MAAMG,MAAM,GAAGF,QAAQ,CAACG,GAAG,CAACF,YAAY,CAAC,CAAA;UAEzC,IAAIC,MAAM,CAACE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,MAAM1B,aAAa,GAAGsB,QAAQ,CAACK,KAAK,CAACH,MAAM,CAAC,CAAA;AAC5C,YAAA,MAAMI,SAAS,GAAG5B,aAAa,CAAC6B,IAAI,CAACN,YAAY,CAAC,CAAA;YAElDH,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,iEAAgEpB,aAAc,CAAA,KAAA,EAAO4B,SAAU,CAAA,CAAA,CAAE,CACnG,CAAA;AACH,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;IAEA,IAAI,CAACT,QAAQ,EAAE;AACb,MAAA,OAAOC,MAAM,CAAA;AACf,KAAA;AAEA,IAAA,IAAID,QAAQ,CAACW,OAAO,IAAI1K,KAAK,IAAI,CAAC,IAAI2K,MAAM,CAACZ,QAAQ,CAACW,OAAO,CAAC,CAACzI,IAAI,CAACjC,KAAK,CAAC,EAAE;MAC1EgK,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,4BAA4BD,QAAQ,CAACW,OAAS,CAAA,CAAA,CAAE,CAClD,CAAA;AACH,KAAA;AAEA,IAAA,IAAIX,QAAQ,CAACa,QAAQ,KAAKC,aAAK,CAAC7K,KAAK,CAAC,IAAIA,KAAK,KAAK,EAAE,CAAC,EAAE;AACvDgK,MAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,oBAAoB,CACrB,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,KAAK,IAAID,QAAQ,KAAK/J,KAAK,IAAIA,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,GAAG+J,QAAQ,CAACe,GAAG,EAAE;MACvEd,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,oCAAoCD,QAAQ,CAACe,GAAK,CAAA,CAAA,CAAE,CACtD,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,KAAK,IAAIf,QAAQ,KAAK/J,KAAK,IAAIA,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,GAAG+J,QAAQ,CAACgB,GAAG,EAAE;MACvEf,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,oCAAoCD,QAAQ,CAACgB,GAAK,CAAA,CAAA,CAAE,CACtD,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,WAAW,IAAIhB,QAAQ,IAAI/J,KAAK,IAAIA,KAAK,CAACgL,IAAI,EAAE,CAACzC,MAAM,GAAGwB,QAAQ,CAACkB,SAAS,EAAE;MAChFjB,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,qCAAqCD,QAAQ,CAACkB,SAAW,CAAA,CAAA,CAAE,CAC7D,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,WAAW,IAAIlB,QAAQ,IAAI/J,KAAK,IAAIA,KAAK,CAACgL,IAAI,EAAE,CAACzC,MAAM,GAAGwB,QAAQ,CAACmB,SAAS,EAAE;MAChFlB,MAAM,GAAG,CACP,GAAGA,MAAM,EACR,qCAAqCD,QAAQ,CAACmB,SAAW,CAAA,CAAA,CAAE,CAC7D,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,gBAAgB,IAAInB,QAAQ,IAAI/J,KAAK,IAAI+J,QAAQ,CAACoB,cAAc,KAAK,OAAO,IAAI,CAACxB,aAAa,CAAC1H,IAAI,CAACjC,KAAK,CAAC,EAAE;AAC9GgK,MAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,0EAA0E,CAC3E,CAAA;AACH,KAAA;AAEA,IAAA,IAAI,gBAAgB,IAAID,QAAQ,IAAI/J,KAAK,IAAI+J,QAAQ,CAACoB,cAAc,KAAK,OAAO,IAAI,CAACzB,aAAa,CAACzH,IAAI,CAACjC,KAAK,CAAC,EAAE;AAC9GgK,MAAAA,MAAM,GAAG,CACP,GAAGA,MAAM,EACT,8BAA8B,CAC/B,CAAA;AACH,KAAA;AAEA,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AACF,CAAA;AAEAJ,SAAS,CAAC9H,OAAO,GAAG,EAAE;;AC1HP,MAAMsJ,iBAAiB,CAAC;EACrCxL,WAAW,CAACC,QAAQ,EAAE;IACpB,IAAI,CAACC,SAAS,GAAGD,QAAQ,CAAA;AAEzB,IAAA,IAAI,CAACwL,WAAW,GAAG,EAAE,CAAA;IAErBxL,QAAQ,CAACiF,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,CAACwG,KAAK,EAAE,CAAC,CAAA;AAE7C,IAAA,IAAI,CAACC,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;AAClC,IAAA,IAAI,CAACC,KAAK,GAAG,IAAID,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;AACrC,GAAA;EAEAjK,GAAG,CAACmC,SAAS,EAAE;IACb,MAAM;AAAEgI,MAAAA,EAAAA;AAAG,KAAC,GAAGhI,SAAS,CAAA;AAExB,IAAA,IAAI,IAAI,CAAC2H,WAAW,CAAEK,EAAE,CAAE,EAAE;AAC1B,MAAA,MAAM,IAAIjL,KAAK,CAAE,CAAsBiL,mBAAAA,EAAAA,EAAI,iBAAgB,CAAC,CAAA;AAC9D,KAAA;AAEA,IAAA,IAAI,CAAC5L,SAAS,CAACiB,IAAI,CAAC,eAAe,EAAE;AAAE2C,MAAAA,SAAAA;AAAU,KAAC,CAAC,CAAA;AAEnD,IAAA,IAAI,CAAC2H,WAAW,CAAEK,EAAE,CAAE,GAAGhI,SAAS,CAAA;AACpC,GAAA;EAEAiI,MAAM,CAACjI,SAAS,EAAE;IAChB,MAAM;AAAEgI,MAAAA,EAAAA;AAAG,KAAC,GAAGhI,SAAS,CAAA;AAExB,IAAA,IAAI,CAAC,IAAI,CAAC2H,WAAW,CAAEK,EAAE,CAAE,EAAE;AAC3B,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC5L,SAAS,CAACiB,IAAI,CAAC,kBAAkB,EAAE;AAAE2C,MAAAA,SAAAA;AAAU,KAAC,CAAC,CAAA;AAEtD,IAAA,OAAO,IAAI,CAAC2H,WAAW,CAAEK,EAAE,CAAE,CAAA;AAC/B,GAAA;EAEAE,GAAG,CAACF,EAAE,EAAE;AACN,IAAA,OAAO,IAAI,CAACL,WAAW,CAAEK,EAAE,CAAE,CAAA;AAC/B,GAAA;AAEAlI,EAAAA,MAAM,GAAG;AACP,IAAA,OAAOqI,MAAM,CAACC,MAAM,CAAC,IAAI,CAACT,WAAW,CAAC,CAAA;AACxC,GAAA;EAEA3F,OAAO,CAACR,QAAQ,EAAE;AAChB,IAAA,IAAI,CAAC1B,MAAM,EAAE,CAACkC,OAAO,CAAEhC,SAAS,IAAKwB,QAAQ,CAACxB,SAAS,CAAC,CAAC,CAAA;AAC3D,GAAA;AAEA4H,EAAAA,KAAK,GAAG;AACN,IAAA,IAAI,CAACD,WAAW,GAAG,EAAE,CAAA;AAErB,IAAA,IAAI,CAACE,IAAI,CAACD,KAAK,EAAE,CAAA;AACjB,IAAA,IAAI,CAACG,KAAK,CAACH,KAAK,EAAE,CAAA;AACpB,GAAA;AAEF,CAAA;AAEAF,iBAAiB,CAACtJ,OAAO,GAAG,CAAE,UAAU,CAAE;;ACtD1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,MAAMiK,YAAY,CAAC;EAEhCnM,WAAW,CAACC,QAAQ,EAAE;AAEpB;IACA,IAAI,CAACmM,KAAK,GAAG,EAAE,CAAA;AACf,IAAA,IAAI,CAACT,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;IAElC,IAAI,CAAC1L,SAAS,GAAGD,QAAQ,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACEoM,EAAAA,MAAM,CAACC,WAAW,EAAEC,GAAG,EAAE;AACvB,IAAA,IAAIC,gBAAgB,GAAG,IAAI,CAACJ,KAAK,CAACK,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACJ,WAAW,KAAKA,WAAW,CAAC,CAAA;IAE1E,IAAI,CAACE,gBAAgB,EAAE;AACrBA,MAAAA,gBAAgB,GAAG;QACjBF,WAAW;AACXK,QAAAA,IAAI,EAAE,EAAA;OACP,CAAA;AAED,MAAA,IAAI,CAACP,KAAK,CAACQ,IAAI,CAACJ,gBAAgB,CAAC,CAAA;AACnC,KAAA;AAEAA,IAAAA,gBAAgB,CAACG,IAAI,CAACC,IAAI,CAACL,GAAG,CAAC,CAAA;AACjC,GAAA;;AAEA;AACF;AACA;AACA;EACEM,MAAM,CAACf,EAAE,EAAE;AACT,IAAA,MAAMa,IAAI,GAAGG,OAAO,CAAC,IAAI,CAACV,KAAK,CAAC,CAAA;IAChC,OAAOO,IAAI,CAACF,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACZ,EAAE,KAAKA,EAAE,CAAC,CAAA;AACpC,GAAA;;AAEA;AACF;AACA;AACA;EACEiB,cAAc,CAACjJ,SAAS,EAAE;IACxB,OAAOgJ,OAAO,CAAC,IAAI,CAACV,KAAK,CAAC,CAACK,IAAI,CAACC,CAAC,IAAI;MACnC,MAAM;AAAEM,QAAAA,UAAAA;AAAW,OAAC,GAAGN,CAAC,CAAA;AAExB,MAAA,OAAOM,UAAU,CAAC1D,QAAQ,CAACxF,SAAS,CAACgI,EAAE,CAAC,CAAA;AAC1C,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACA;EACEmB,OAAO,CAACX,WAAW,EAAE;AACnB,IAAA,MAAMY,YAAY,GAAG,IAAI,CAACd,KAAK,CAACK,IAAI,CAACC,CAAC,IAAIJ,WAAW,KAAKI,CAAC,CAACJ,WAAW,CAAC,CAAA;IAExE,IAAI,CAACY,YAAY,EAAE;AACjB,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;IAEA,OAAOA,YAAY,CAACP,IAAI,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACEQ,EAAAA,SAAS,GAAG;AACV,IAAA,OAAO,IAAI,CAACxB,IAAI,CAACyB,YAAY,CAAC,MAAM,CAAC,CAAA;AACvC,GAAA;;AAEA;AACF;AACA;EACEC,eAAe,CAACvJ,SAAS,EAAE;IAEzB,MAAM;MACJpD,IAAI;AACJsM,MAAAA,UAAAA;AACF,KAAC,GAAGlJ,SAAS,CAAA;AAEb,IAAA,IAAIpD,IAAI,KAAK,SAAS,IAAI,CAACsM,UAAU,EAAE;AACrC,MAAA,OAAA;AACF,KAAA;;AAEA;IACA,MAAMM,WAAW,GAAGC,UAAU,CAACP,UAAU,EAAE,IAAI,CAACrB,IAAI,CAAC,CAAA;AAErDM,IAAAA,MAAM,CAACuB,OAAO,CAACF,WAAW,CAAC,CAACxH,OAAO,CAAC,CAAC,CAAEgG,EAAE,EAAEkB,UAAU,CAAE,KAAK;AAE1D;AACA,MAAA,IAAI,CAACX,MAAM,CAACvI,SAAS,CAACgI,EAAE,EAAE;AACxBA,QAAAA,EAAE,EAAEA,EAAE;QACNkB,UAAU,EAAEA,UAAU,CAACS,GAAG,CAACC,CAAC,IAAIA,CAAC,CAAC5B,EAAE,CAAA;AACtC,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;;AAEF;IACAkB,UAAU,CAAClH,OAAO,CAACoE,KAAK,IAAI,IAAI,CAACmD,eAAe,CAACnD,KAAK,CAAC,CAAC,CAAA;;AAExD;AACA,IAAA,IAAI,CAAChK,SAAS,CAACiB,IAAI,CAAC,uBAAuB,EAAE;MAAEwL,IAAI,EAAE,IAAI,CAACP,KAAAA;AAAM,KAAC,CAAC,CAAA;AACpE,GAAA;AAEAV,EAAAA,KAAK,GAAG;IACN,IAAI,CAACU,KAAK,GAAG,EAAE,CAAA;AACf,IAAA,IAAI,CAACT,IAAI,CAACD,KAAK,EAAE,CAAA;;AAEjB;AACA,IAAA,IAAI,CAACxL,SAAS,CAACiB,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AAEAgL,YAAY,CAACjK,OAAO,GAAG,CAAE,UAAU,CAAE,CAAA;;AAGrC;;AAEA,SAASqL,UAAU,CAACP,UAAU,EAAEW,GAAG,EAAE;AACnC,EAAA,OAAOC,eAAO,CAACZ,UAAU,EAAEU,CAAC,IAAI;AAE9B;IACA,MAAM;AAAEG,MAAAA,MAAAA;AAAO,KAAC,GAAGH,CAAC,CAAA;AAEpB,IAAA,IAAI,CAACG,MAAM,IAAI,CAACA,MAAM,CAACtB,GAAG,EAAE;AAC1B,MAAA,OAAOoB,GAAG,CAACP,YAAY,CAAC,MAAM,CAAC,CAAA;AACjC,KAAA;IAEA,OAAOS,MAAM,CAACtB,GAAG,CAAA;AACnB,GAAC,CAAC,CAAA;AACJ,CAAA;;AAEA;AACA;AACA;AACA;AACA,SAASO,OAAO,CAACgB,QAAQ,EAAE;AACzB,EAAA,OAAOC,eAAO,CAACD,QAAQ,CAACL,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACf,IAAI,CAAC,CAAC,CAAA;AAC3C;;ACjKA;;AAEaqB,MAAAA,cAAc,GAAG,EAAE,GAAG,GAAE;AAE9B,MAAMC,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,UAAA;AACZ,EAAC;AAEM,MAAMC,wBAAwB,GAAG;AACtCC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,WAAW,EAAE,aAAA;AACf,EAAC;AAEM,MAAMC,wBAAwB,GAAG;AACtC,EAAA,CAACR,iBAAiB,CAACC,IAAI,GAAG,MAAM;AAChC,EAAA,CAACD,iBAAiB,CAACE,IAAI,GAAG,MAAM;EAChC,CAACF,iBAAiB,CAACG,QAAQ,GAAG,aAAA;AAChC,EAAC;AAEM,MAAMM,6BAA6B,GAAG;AAC3C,EAAA,CAACL,wBAAwB,CAACC,UAAU,GAAG,YAAY;AACnD,EAAA,CAACD,wBAAwB,CAACE,cAAc,GAAG,gBAAgB;EAC3D,CAACF,wBAAwB,CAACG,WAAW,GAAG,aAAA;AAC1C,EAAC;AAEYG,MAAAA,qBAAqB,GAAG,CAAE,SAAS,EAAE;AACrCC,MAAAA,eAAe,GAAG,CAAE,WAAW,EAAE;AACjCC,MAAAA,uBAAuB,GAAG,CAAE,qBAAqB,EAAE;AACnDC,MAAAA,eAAe,GAAG,CAAE,WAAW,EAAE;AACjCC,MAAAA,gBAAgB,GAAG,CAAE,QAAQ,EAAE;AAC/BC,MAAAA,kBAAkB,GAAG,CAAE,cAAc,EAAE;AACvCC,MAAAA,4BAA4B,GAAG,CAAE,uBAAuB;;AChCrE;;AAEO,MAAMC,cAAc,GAAG;AAC5BC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT,EAAC;AAEYC,MAAAA,qBAAqB,GAAGH,cAAc,CAACC,OAAM;AAEnD,MAAMG,qBAAqB,GAAG;AACnC,EAAA,CAACJ,cAAc,CAACC,MAAM,GAAG,QAAQ;EACjC,CAACD,cAAc,CAACE,KAAK,GAAG,YAAA;AAC1B,EAAC;AAEM,MAAMG,oBAAoB,GAAG;AAClC,EAAA,CAACL,cAAc,CAACC,MAAM,GAAG,CAAE,QAAQ,CAAE;AACrC,EAAA,CAACD,cAAc,CAACE,KAAK,GAAG,CAAE,WAAW,CAAA;AACvC,EAAC;AAEM,MAAMI,uBAAuB,GAAG;AACrC,EAAA,CAACN,cAAc,CAACC,MAAM,GAAG,CACvB;AACEM,IAAAA,KAAK,EAAE,OAAO;AACdrP,IAAAA,KAAK,EAAE,OAAA;AACT,GAAC,CACF;EACD,CAAC8O,cAAc,CAACE,KAAK,GAAG,EAAA;AAC1B,EAAC;;AAED;;AAEO,SAASM,eAAe,CAACxF,KAAK,EAAE;EAErC,KAAK,MAAMyF,MAAM,IAAI1D,MAAM,CAACC,MAAM,CAACgD,cAAc,CAAC,EAAE;IAClD,IAAIlD,WAAG,CAAC9B,KAAK,EAAEqF,oBAAoB,CAACI,MAAM,CAAC,CAAC,KAAKzI,SAAS,EAAE;AAC1D,MAAA,OAAOyI,MAAM,CAAA;AACf,KAAA;AACF,GAAA;AAEA,EAAA,OAAON,qBAAqB,CAAA;AAC9B;;ACxCO,SAASO,cAAc,CAACC,gBAAgB,EAAE;AAE/C,EAAA,MAAMC,QAAQ,GAAG,IAAIC,aAAQ,CAACF,gBAAgB,CAAC,CAAA;EAE/CC,QAAQ,CAACnJ,IAAI,EAAE,CAAA;AAEf,EAAA,OAAOmJ,QAAQ,CAAA;AACjB;;ACTA;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmB,CAACC,MAAM,GAAG,KAAK,EAAE;AAClD,EAAA,MAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC,CAAA;EAE/CF,SAAS,CAACG,SAAS,CAAC1O,GAAG,CAAE,CAAGsO,EAAAA,MAAQ,YAAW,CAAC,CAAA;AAEhD,EAAA,OAAOC,SAAS,CAAA;AAClB;;ACLA,MAAMI,qBAAqB,GAAG,CAC5B,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAA;AAEM,SAASC,UAAU,CAACnG,MAAM,EAAEoG,IAAI,EAAE;AACvC,EAAA,OAAOpG,MAAM,CAAEqG,aAAa,CAACD,IAAI,CAAC,CAAE,CAAA;AACtC,CAAA;AAEO,SAASE,UAAU,CAACxG,KAAK,EAAE;EAChC,OAAOA,KAAK,CAACc,QAAQ,CAAA;AACvB,CAAA;AAEO,SAAS2F,SAAS,CAACH,IAAI,EAAE;EAC9B,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;EAEA,OAAOA,IAAI,CAAC9H,KAAK,CAAC,GAAG,CAAC,CAAC+E,GAAG,CAACpK,GAAG,IAAI;AAChC,IAAA,OAAOwF,KAAK,CAAC+H,QAAQ,CAACvN,GAAG,CAAC,CAAC,GAAGA,GAAG,GAAGuN,QAAQ,CAACvN,GAAG,CAAC,CAAA;AACnD,GAAC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASwN,UAAU,CAACC,CAAC,EAAEC,CAAC,EAAE;EAC/B,OACED,CAAC,IACDC,CAAC,IACDD,CAAC,CAACnI,MAAM,KAAKoI,CAAC,CAACpI,MAAM,IACrBmI,CAAC,CAACE,KAAK,CAAC,CAAC5Q,KAAK,EAAE6Q,KAAK,KAAK7Q,KAAK,KAAK2Q,CAAC,CAAEE,KAAK,CAAE,CAAC,CAAA;AAEnD,CAAA;AAEO,SAASR,aAAa,CAACD,IAAI,EAAE;EAClC,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AAEA,EAAA,OAAOA,IAAI,CAACU,IAAI,CAAC,GAAG,CAAC,CAAA;AACvB,CAAA;AAEA,MAAMC,OAAO,GAAG,EAAE,CAAA;AAEX,SAASC,oBAAoB,CAAC1Q,IAAI,EAAE;EACzC,IAAIA,IAAI,IAAIyQ,OAAO,EAAE;IACnBA,OAAO,CAAEzQ,IAAI,CAAE,EAAE,CAAA;AACnB,GAAC,MAAM;AACLyQ,IAAAA,OAAO,CAAEzQ,IAAI,CAAE,GAAG,CAAC,CAAA;AACrB,GAAA;EAEA,OAAOyQ,OAAO,CAAEzQ,IAAI,CAAE,CAAA;AACxB,CAAA;AAEO,SAAS2Q,iBAAiB,CAAC3Q,IAAI,EAAE;AACtC,EAAA,OAAQ,GAAGA,IAAM,CAAA,EAAG0Q,oBAAoB,CAAC1Q,IAAI,CAAG,CAAC,CAAA,CAAA;AACnD,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS4Q,KAAK,CAACvQ,IAAI,EAAEwQ,QAAQ,EAAE;AACpC,EAAA,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAC3Q,IAAI,EAAEwQ,QAAQ,CAAC,CAAC,CAAA;AACnD,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,kBAAkB,CAACC,MAAM,EAAE3N,kBAAkB,GAAG,IAAIlE,sBAAsB,CAAC,IAAI,CAAC,EAAE;AAEhG,EAAA,IAAI,CAAC6R,MAAM,CAAC5E,UAAU,EAAE;AACtB,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AAEA,EAAA,MAAMzL,SAAS,GAAGqQ,MAAM,CAAC5E,UAAU,CAACnJ,MAAM,CAAC,CAACtC,SAAS,EAAEsQ,SAAS,KAAK;IAEnE,MAAM;MACJxO,GAAG;MACHyO,SAAS;MACTpR,IAAI;AACJqD,MAAAA,WAAAA;AACF,KAAC,GAAG8N,SAAS,CAAA;IAEb,IAAI,CAAE,QAAQ,CAAE,CAACvI,QAAQ,CAAC5I,IAAI,CAAC,EAAE;AAC/B,MAAA,OAAOa,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,IAAI8B,GAAG,EAAE;AACP9B,MAAAA,SAAS,GAAG,CAAE,GAAGA,SAAS,EAAE8B,GAAG,CAAE,CAAA;AACnC,KAAA;AAEA,IAAA,IAAIyO,SAAS,EAAE;AACbvQ,MAAAA,SAAS,GAAG,CAAE,GAAGA,SAAS,EAAEuQ,SAAS,CAAE,CAAA;AACzC,KAAA;AAEA,IAAA,IAAI/N,WAAW,IAAIA,WAAW,CAACL,IAAI,EAAE;MAEnC,MAAMqO,kBAAkB,GAAG9N,kBAAkB,CAAC1D,gBAAgB,CAACwD,WAAW,CAACL,IAAI,EAAE;AAAEhD,QAAAA,IAAI,EAAE,WAAA;AAAY,OAAC,CAAC,CAAA;AAEvGa,MAAAA,SAAS,GAAG,CAAE,GAAGA,SAAS,EAAE,GAAGwQ,kBAAkB,CAAE,CAAA;AACrD,KAAA;AAEAzB,IAAAA,qBAAqB,CAACxK,OAAO,CAAEkM,IAAI,IAAK;AACtC,MAAA,MAAMC,QAAQ,GAAGJ,SAAS,CAACG,IAAI,CAAC,CAAA;MAEhC,IAAIC,QAAQ,IAAIhO,kBAAkB,CAAC9D,YAAY,CAAC8R,QAAQ,CAAC,EAAE;AAEzD,QAAA,MAAMC,mBAAmB,GAAGjO,kBAAkB,CAAC1D,gBAAgB,CAAC0R,QAAQ,EAAE;AAAEvR,UAAAA,IAAI,EAAE,YAAA;AAAa,SAAC,CAAC,CAAA;AAEjGa,QAAAA,SAAS,GAAG,CAAE,GAAGA,SAAS,EAAE,GAAG2Q,mBAAmB,CAAE,CAAA;AACtD,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO3Q,SAAS,CAAA;GACjB,EAAE,EAAE,CAAC,CAAA;;AAEN;EACA,OAAOQ,KAAK,CAACH,IAAI,CAAC,IAAIJ,GAAG,CAACD,SAAS,CAAC,CAAC,CAAA;AACvC;;ACvHe,MAAM4Q,QAAQ,CAAC;AAE5B;AACF;AACA;AACA;AACA;AACA;AACEnS,EAAAA,WAAW,CAAC8C,iBAAiB,EAAEa,UAAU,EAAEyO,YAAY,EAAE;IACvD,IAAI,CAACrP,kBAAkB,GAAGD,iBAAiB,CAAA;IAC3C,IAAI,CAAC2I,WAAW,GAAG9H,UAAU,CAAA;IAC7B,IAAI,CAAC0O,aAAa,GAAGD,YAAY,CAAA;AACnC,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEE,EAAAA,YAAY,CAACV,MAAM,EAAE7Q,IAAI,GAAG,EAAE,EAAE;AAE9B;IACA,MAAMwR,QAAQ,GAAG,EAAE,CAAA;IAEnB,IAAI;AAEF,MAAA,IAAI,CAACF,aAAa,CAAC3G,KAAK,EAAE,CAAA;MAE1B,MAAM8G,cAAc,GAAG,IAAI,CAACC,eAAe,CAACnB,KAAK,CAACM,MAAM,CAAC,CAAC;QACpDc,eAAe,GAAG,IAAI,CAACC,qBAAqB,CAACrB,KAAK,CAACvQ,IAAI,CAAC,CAAC,CAAA;MAE/D,IAAI,CAACsR,aAAa,CAAChF,eAAe,CAACiE,KAAK,CAACkB,cAAc,CAAC,CAAC,CAAA;MAEzD,OAAO;QACLD,QAAQ;AACRX,QAAAA,MAAM,EAAEY,cAAc;AACtBzR,QAAAA,IAAI,EAAE2R,eAAAA;OACP,CAAA;KACF,CAAC,OAAO/P,GAAG,EAAE;MACZA,GAAG,CAAC4P,QAAQ,GAAGA,QAAQ,CAAA;AAEvB,MAAA,MAAM5P,GAAG,CAAA;AACX,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACE8P,EAAAA,eAAe,CAAC3O,SAAS,EAAE8O,QAAQ,EAAE;IACnC,MAAM;MACJ5F,UAAU;MACV3J,GAAG;MACH3C,IAAI;MACJoL,EAAE,GAAGuF,iBAAiB,CAAC3Q,IAAI,CAAA;AAC7B,KAAC,GAAGoD,SAAS,CAAA;AAEb,IAAA,IAAI8O,QAAQ,EAAE;AAEZ;MACA9O,SAAS,CAAC+O,OAAO,GAAGD,QAAQ,CAAA;AAC9B,KAAA;IAEA,IAAI,CAAC,IAAI,CAACnH,WAAW,CAACO,GAAG,CAACtL,IAAI,CAAC,EAAE;AAC/B,MAAA,MAAM,IAAIG,KAAK,CAAE,CAAuBH,oBAAAA,EAAAA,IAAM,iBAAgB,CAAC,CAAA;AACjE,KAAA;AAEA,IAAA,IAAI2C,GAAG,EAAE;AAEP;MACA,IAAI,IAAI,CAACN,kBAAkB,CAAC8I,KAAK,CAACiH,QAAQ,CAACzP,GAAG,CAAC,EAAE;AAC/C,QAAA,MAAM,IAAIxC,KAAK,CAAE,CAAwBwC,qBAAAA,EAAAA,GAAK,kBAAiB,CAAC,CAAA;AAClE,OAAA;MAEA,IAAI,CAACN,kBAAkB,CAAC8I,KAAK,CAACkH,KAAK,CAAC1P,GAAG,EAAES,SAAS,CAAC,CAAA;;AAEnD;MACA,IAAIpD,IAAI,KAAK,QAAQ,EAAE;AAErB;AACAoD,QAAAA,SAAS,CAACkP,KAAK,GAAG,CAAE3P,GAAG,CAAE,CAAA;AAC3B,OAAA;AACF,KAAA;AAEA,IAAA,IAAIyI,EAAE,EAAE;AAEN;MACA,IAAI,IAAI,CAAC/I,kBAAkB,CAAC4I,IAAI,CAACmH,QAAQ,CAAChH,EAAE,CAAC,EAAE;AAC7C,QAAA,MAAM,IAAIjL,KAAK,CAAE,CAAuBiL,oBAAAA,EAAAA,EAAI,kBAAiB,CAAC,CAAA;AAChE,OAAA;MAEA,IAAI,CAAC/I,kBAAkB,CAAC4I,IAAI,CAACoH,KAAK,CAACjH,EAAE,EAAEhI,SAAS,CAAC,CAAA;AACnD,KAAA;;AAEA;IACAA,SAAS,CAACgI,EAAE,GAAGA,EAAE,CAAA;AAEjB,IAAA,IAAI,CAAC/I,kBAAkB,CAACpB,GAAG,CAACmC,SAAS,CAAC,CAAA;AAEtC,IAAA,IAAIkJ,UAAU,EAAE;AACd,MAAA,IAAI,CAACiG,gBAAgB,CAACjG,UAAU,EAAElB,EAAE,CAAC,CAAA;AACvC,KAAA;AAEA,IAAA,OAAOhI,SAAS,CAAA;AAClB,GAAA;AAEAmP,EAAAA,gBAAgB,CAACjG,UAAU,EAAE4F,QAAQ,EAAE;AACrC5F,IAAAA,UAAU,CAAClH,OAAO,CAAE+L,SAAS,IAAK;AAChC,MAAA,IAAI,CAACY,eAAe,CAACZ,SAAS,EAAEe,QAAQ,CAAC,CAAA;AAC3C,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACED,qBAAqB,CAAC5R,IAAI,EAAE;AAC1B,IAAA,OAAO,IAAI,CAACgC,kBAAkB,CAACa,MAAM,EAAE,CAACC,MAAM,CAAC,CAAC6O,eAAe,EAAE5O,SAAS,KAAK;MAC7E,MAAM;QACJoP,YAAY;QACZF,KAAK;AACLtS,QAAAA,IAAAA;AACF,OAAC,GAAGoD,SAAS,CAAA;;AAEb;AACA;AACA;;AAEA,MAAA,IAAIkP,KAAK,EAAE;QAET,MAAMG,mBAAmB,GAAG,IAAI,CAAC1H,WAAW,CAACO,GAAG,CAACtL,IAAI,CAAC,CAAA;AACtD,QAAA,IAAI0S,SAAS,GAAGpH,WAAG,CAACjL,IAAI,EAAEiS,KAAK,CAAC,CAAA;QAEhC,IAAI,CAACK,mBAAW,CAACD,SAAS,CAAC,IAAID,mBAAmB,CAACG,aAAa,EAAE;AAChEF,UAAAA,SAAS,GAAGD,mBAAmB,CAACG,aAAa,CAAC;YAAExP,SAAS;YAAE/C,IAAI;AAAEX,YAAAA,KAAK,EAAEgT,SAAAA;AAAU,WAAC,CAAC,CAAA;AACtF,SAAA;QAEA,MAAMG,qBAAqB,GAAG,CAACF,mBAAW,CAACD,SAAS,CAAC,GAAGA,SAAS,GAAI,CAACC,mBAAW,CAACH,YAAY,CAAC,GAAGA,YAAY,GAAGC,mBAAmB,CAACK,UAAW,CAAA;AAEhJd,QAAAA,eAAe,GAAG;AAChB,UAAA,GAAGA,eAAe;AAClB,UAAA,CAACM,KAAK,CAAC,CAAC,CAAC,GAAGO,qBAAAA;SACb,CAAA;AAEH,OAAA;AAEA,MAAA,OAAOb,eAAe,CAAA;KAEvB,EAAE3R,IAAI,CAAC,CAAA;AACV,GAAA;AACF,CAAA;AAEAoR,QAAQ,CAACjQ,OAAO,GAAG,CAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,CAAE;;ACzKxE,mBAAe;AACbuR,EAAAA,QAAQ,EAAE,CAAE,MAAM,EAAEtB,QAAQ,CAAA;AAC9B,CAAC;;ACFM,SAASuB,gBAAgB,CAAChT,IAAI,EAAE;AAAE0J,EAAAA,MAAM,GAAG,EAAE;AAAEuJ,EAAAA,QAAQ,GAAG,KAAA;AAAM,CAAC,GAAG,EAAE,EAAE;EAC7E,IAAI,CAACjT,IAAI,EAAE;AACT,IAAA,MAAM,IAAIG,KAAK,CAAC,eAAe,CAAC,CAAA;AAClC,GAAA;AAEA,EAAA,OAAO+S,UAAU,CAAC,gBAAgB,EAAG,CAAiBlT,eAAAA,EAAAA,IAAK,EAAC,EAAE;AAC5D,IAAA,gBAAgB,EAAE0J,MAAM,CAACzB,MAAM,GAAG,CAAC;AACnC,IAAA,cAAc,EAAEgL,QAAAA;AAClB,GAAC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASE,iBAAiB,CAAC/P,SAAS,EAAE;EAC3C,MAAM;AACJ+J,IAAAA,MAAM,GAAG,EAAC;AACZ,GAAC,GAAG/J,SAAS,CAAA;EAEb,MAAM;AACJgQ,IAAAA,OAAAA;AACF,GAAC,GAAGjG,MAAM,CAAA;AAEV,EAAA,OAAO+F,UAAU,CACf,mBAAmB,EAClB,CAAUE,QAAAA,EAAAA,OAAO,GAAG,MAAM,GAAGA,OAAO,GAAG,EAAG,CAAC,CAAA;AAE5C;EACA,gBAAgB,EAChB,gBAAgB,CACjB,CAAA;AACH,CAAA;AAGO,SAASC,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,EAAE;AACnC,EAAA,IAAIA,MAAM,EAAE;AACV,IAAA,OAAQ,CAAYA,SAAAA,EAAAA,MAAQ,CAAIlI,CAAAA,EAAAA,EAAI,CAAC,CAAA,CAAA;AACvC,GAAA;EAEA,OAAQ,CAAA,SAAA,EAAYA,EAAI,CAAC,CAAA,CAAA;AAC3B;;ACrCA,MAAMpL,MAAI,GAAG,QAAQ,CAAA;AAGN,SAASuT,MAAM,CAACC,KAAK,EAAE;EACpC,MAAM;IACJP,QAAQ;AACRzJ,IAAAA,KAAAA;AACF,GAAC,GAAGgK,KAAK,CAAA;EAET,MAAM;AAAEC,IAAAA,MAAM,GAAG,QAAA;AAAS,GAAC,GAAGjK,KAAK,CAAA;EAEnC,OAAOkK,cAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAGV,gBAAgB,CAAChT,MAAI,CAAG;IAAA,QAC1C,EAAA0T,cAAA,CAAA,QAAA,EAAA;AAAQ,MAAA,KAAK,EAAC,YAAY;AAAC,MAAA,IAAI,EAAGD,MAAQ;AAAC,MAAA,QAAQ,EAAGR,QAAU;AAAA,MAAA,QAAA,EAAGzJ,KAAK,CAACuF,KAAAA;AAAK,KAAA,CAAA;GAC1E,CAAA,CAAA;AACR,CAAA;AAEAwE,MAAM,CAACI,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;AACjC0T,EAAAA,MAAM,EAAE,QAAQ;EAChB,GAAG1T,OAAAA;AACL,CAAC,CAAC,CAAA;AAEFwT,MAAM,CAACvT,IAAI,GAAGA,MAAI,CAAA;AAClBuT,MAAM,CAACxE,KAAK,GAAG,QAAQ,CAAA;AACvBwE,MAAM,CAACK,KAAK,GAAG,IAAI,CAAA;AACnBL,MAAM,CAACM,KAAK,GAAG,QAAQ;;ACxBvB,MAAMC,iBAAiB,GAAGC,oBAAa,CAAC;EACtCC,KAAK,EAAGR,KAAK,IAAK;AAChB,IAAA,OAAO,IAAI,CAAA;GACZ;EACDS,QAAQ,EAAGT,KAAK,IAAK;IACnB,OAAOE,cAAA,CAAA,KAAA,EAAA;MAAK,KAAK,EAAGF,KAAK,CAACU,KAAO;AAAA,MAAA,QAAA,EAAGV,KAAK,CAACW,QAAAA;KAAgB,CAAA,CAAA;GAC3D;EACDC,OAAO,EAAGZ,KAAK,IAAK;IAClB,OAAOE,cAAA,CAAA,KAAA,EAAA;MAAK,KAAK,EAAGF,KAAK,CAACU,KAAO;AAAA,MAAA,QAAA,EAAGV,KAAK,CAACW,QAAAA;KAAgB,CAAA,CAAA;GAC3D;EACDE,GAAG,EAAGb,KAAK,IAAK;IACd,OAAOE,cAAA,CAAA,KAAA,EAAA;MAAK,KAAK,EAAGF,KAAK,CAACU,KAAO;AAAA,MAAA,QAAA,EAAGV,KAAK,CAACW,QAAAA;KAAgB,CAAA,CAAA;GAC3D;EACDG,MAAM,EAAGd,KAAK,IAAK;AACjB,IAAA,IAAIA,KAAK,CAAChK,KAAK,CAACxJ,IAAI,KAAK,SAAS,EAAE;MAClC,OAAOwT,KAAK,CAACW,QAAQ,CAAA;AACvB,KAAA;IAEA,OAAOT,cAAA,CAAA,KAAA,EAAA;MAAK,KAAK,EAAGF,KAAK,CAACU,KAAO;AAAA,MAAA,QAAA,EAAGV,KAAK,CAACW,QAAAA;KAAgB,CAAA,CAAA;AAC5D,GAAA;AACF,CAAC,CAAC,CAAA;AAEF,0BAAeL,iBAAiB;;ACtBhC;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,UAAU,CAACvU,IAAI,EAAE+B,MAAM,EAAE,EAAC;AAEnC,MAAMyS,WAAW,GAAGT,oBAAa,CAAC;EAChCQ,UAAU;AACVjB,EAAAA,MAAM,EAAE,IAAA;AACV,CAAC,CAAC,CAAA;AAEF,oBAAekB,WAAW;;ACfX,SAASC,WAAW,CAACjB,KAAK,EAAE;EACzC,MAAM;AAAEkB,IAAAA,WAAAA;AAAY,GAAC,GAAGlB,KAAK,CAAA;EAE7B,IAAI,CAACkB,WAAW,EAAE;AAChB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAOhB,cAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,4BAA4B;IAAA,QAAGgB,EAAAA,WAAAA;GAAmB,CAAA,CAAA;AACtE;;ACRe,SAASC,MAAM,CAACnB,KAAK,EAAE;EACpC,MAAM;AAAE9J,IAAAA,MAAAA;AAAO,GAAC,GAAG8J,KAAK,CAAA;AAExB,EAAA,IAAI,CAAC9J,MAAM,CAACzB,MAAM,EAAE;AAClB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAOyL,cAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,sBAAsB;IAAA,QACtC,EAAAA,cAAA,CAAA,IAAA,EAAA;AAAA,MAAA,QAAA,EAEIhK,MAAM,CAACqD,GAAG,CAACvM,KAAK,IAAI;QAClB,OAAOkT,cAAA,CAAA,IAAA,EAAA;UAAA,QAAMlT,EAAAA,KAAAA;SAAY,CAAA,CAAA;OAC1B,CAAA;AAAC,KAAA,CAAA;GAGF,CAAA,CAAA;AACR;;ACde,SAASoU,KAAK,CAACpB,KAAK,EAAE;EACnC,MAAM;IACJpI,EAAE;IACF2D,KAAK;AACL8F,IAAAA,eAAe,GAAG,IAAI;AACtBvK,IAAAA,QAAQ,GAAG,KAAA;AACb,GAAC,GAAGkJ,KAAK,CAAA;EAET,OACEsB,eAAA,CAAA,OAAA,EAAA;AAAO,IAAA,GAAG,EAAG1J,EAAI;AAAC,IAAA,KAAK,EAAG8H,UAAU,CAAC,sBAAsB,EAAE;AAAE,MAAA,yBAAyB,EAAE,CAAC2B,eAAAA;AAAgB,KAAC,EAAErB,KAAK,CAAC,OAAO,CAAC,CAAG;IAAA,QAC3HA,EAAAA,CAAAA,KAAK,CAACW,QAAQ,EACdpF,KAAK,IAAI,EAAE,EAEXzE,QAAQ,IAAIoJ,cAAA,CAAA,MAAA,EAAA;AAAM,MAAA,KAAK,EAAC,aAAa;AAAA,MAAA,QAAA,EAAA,GAAA;KAAS,CAAA,CAAA;GAE1C,CAAA,CAAA;AAEZ;;ACLA,MAAM1T,MAAI,GAAG,UAAU,CAAA;AAGR,SAAS+U,QAAQ,CAACvB,KAAK,EAAE;EACtC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;AACL9J,IAAAA,KAAK,GAAG,KAAA;AACV,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;AACF2D,IAAAA,KAAAA;AACF,GAAC,GAAGvF,KAAK,CAAA;EAET,MAAMwL,QAAQ,GAAG,CAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,KAAK;IAC/BzB,KAAK,CAACwB,QAAQ,CAAC;MACbxL,KAAK;MACL9J,KAAK,EAAEuV,MAAM,CAACC,OAAAA;AAChB,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAM;AAAE5B,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOM,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG5B,UAAU,CAACF,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAC,EAAE;AAAE,MAAA,aAAa,EAAEvT,KAAAA;AAAM,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CACtGgU,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGL,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,MAAA,KAAK,EAAGvE,KAAO;AACf,MAAA,QAAQ,EAAG,KAAO;MAAA,QAClB,EAAA2E,cAAA,CAAA,OAAA,EAAA;AACE,QAAA,OAAO,EAAGhU,KAAO;AACjB,QAAA,KAAK,EAAC,WAAW;AACjB,QAAA,QAAQ,EAAGuT,QAAU;AACrB,QAAA,EAAE,EAAGI,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,QAAA,IAAI,EAAC,UAAU;AACf,QAAA,QAAQ,EAAG0B,QAAAA;AAAU,OAAA,CAAA;KACjB,CAAA,EACRtB,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEAqL,QAAQ,CAACpB,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;EACnC,GAAGA,OAAAA;AACL,CAAC,CAAC,CAAA;AAEFgV,QAAQ,CAAC/U,IAAI,GAAGA,MAAI,CAAA;AACpB+U,QAAQ,CAAChG,KAAK,GAAG,UAAU,CAAA;AAC3BgG,QAAQ,CAACnB,KAAK,GAAG,IAAI,CAAA;AACrBmB,QAAQ,CAACjC,UAAU,GAAG,KAAK,CAAA;AAC3BiC,QAAQ,CAACnC,aAAa,GAAG,CAAC;AAAElT,EAAAA,KAAAA;AAAM,CAAC,KAAKA,KAAK,KAAK,IAAI,CAAA;AACtDqV,QAAQ,CAAClB,KAAK,GAAG,WAAW;;ACjE5B;AACO,SAASuB,aAAa,CAAChS,SAAS,EAAEiS,QAAQ,EAAE;EACjD,MAAM;IAAEjE,SAAS;AAAE5F,IAAAA,MAAAA;AAAO,GAAC,GAAGpI,SAAS,CAAA;EACvC,OAAOgO,SAAS,GAAG9F,WAAG,CAAC+J,QAAQ,EAAE,CAAEjE,SAAS,CAAE,CAAC,GAAG5F,MAAM,CAAA;AAC1D,CAAA;;AAEA;AACO,SAAS8J,mBAAmB,CAACC,UAAU,EAAE;EAC9C,OAAOA,UAAU,CAACC,MAAM,CAACC,iBAAiB,CAAC,CAAC1I,GAAG,CAAC2I,CAAC,IAAIC,mBAAmB,CAACD,CAAC,CAAC,CAAC,CAACF,MAAM,CAACE,CAAC,IAAIA,CAAC,CAAC,CAAA;AAC7F,CAAA;AAEA,SAASC,mBAAmB,CAACjD,SAAS,EAAE;AAEtC,EAAA,IAAIkD,eAAe,CAAClD,SAAS,CAAC,EAAE;AAE9B;IACA,OAAO;AAAEhT,MAAAA,KAAK,EAAEgT,SAAS;MAAE3D,KAAK,EAAG,GAAG2D,SAAW,CAAA,CAAA;KAAG,CAAA;AACtD,GAAA;AAEA,EAAA,IAAI,OAAQA,SAAU,KAAK,QAAQ,EAAE;IACnC,IAAI,CAACA,SAAS,CAAC3D,KAAK,IAAI6G,eAAe,CAAClD,SAAS,CAAChT,KAAK,CAAC,EAAE;AAExD;MACA,OAAO;QAAEA,KAAK,EAAEgT,SAAS,CAAChT,KAAK;AAAEqP,QAAAA,KAAK,EAAG,CAAA,EAAG2D,SAAS,CAAChT,KAAO,CAAA,CAAA;OAAG,CAAA;AAClE,KAAA;AAEA,IAAA,IAAI+V,iBAAiB,CAAC/C,SAAS,CAAChT,KAAK,CAAC,IAAIkW,eAAe,CAAClD,SAAS,CAAC3D,KAAK,CAAC,EAAE;AAE1E;AACA,MAAA,OAAO2D,SAAS,CAAA;AAClB,KAAA;AACF,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACb,CAAA;AAEA,SAASkD,eAAe,CAAClW,KAAK,EAAE;EAC9B,OAAOmW,eAAe,CAACnW,KAAK,CAAC,IAAI+V,iBAAiB,CAAC/V,KAAK,CAAC,CAAA;AAC3D,CAAA;AAEA,SAASmW,eAAe,CAACnW,KAAK,EAAE;AAC9B,EAAA,OAAO,CAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAE,CAACkJ,QAAQ,CAAC,OAAOlJ,KAAM,CAAC,CAAA;AAClE,CAAA;AAEA,SAAS+V,iBAAiB,CAAC/V,KAAK,EAAE;EAChC,OAAOA,KAAK,IAAIA,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAK,KAAK,CAAA;AAChD;;AC1Ce,SAASoW,UAAU,CAAC9V,IAAI,EAAE+B,MAAM,EAAE;EAC/C,MAAM;AACJwS,IAAAA,UAAAA;AACF,GAAC,GAAGY,gBAAU,CAACX,aAAW,CAAC,CAAA;AAE3B,EAAA,OAAOD,UAAU,CAACvU,IAAI,EAAE+B,MAAM,CAAC,CAAA;AACjC;;ACRA;AACA;AACA;AACO,MAAMgU,WAAW,GAAG;AACzBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACe,uBAAA,EAAS1M,KAAK,EAAE;EAC7B,MAAM;IACJ4H,SAAS;AACT5F,IAAAA,MAAM,EAAE2K,YAAAA;AACV,GAAC,GAAG3M,KAAK,CAAA;AAET,EAAA,MAAM,CAAE4M,YAAY,EAAEC,eAAe,CAAE,GAAGC,cAAQ,CAAC;AAAE9K,IAAAA,MAAM,EAAE,EAAE;AAAEhL,IAAAA,KAAK,EAAEgG,SAAS;IAAE+P,KAAK,EAAER,WAAW,CAACC,OAAAA;AAAQ,GAAC,CAAC,CAAA;EAChH,MAAMQ,WAAW,GAAGV,UAAU,CAAC,MAAM,CAAC,CAACW,SAAS,EAAE,CAACD,WAAW,CAAA;AAE9DE,EAAAA,eAAS,CAAC,MAAM;IAEd,IAAIlL,MAAM,GAAG,EAAE,CAAA;;AAEf;IACA,IAAI4F,SAAS,KAAK5K,SAAS,EAAE;MAC3B,MAAMmQ,WAAW,GAAG,CAACH,WAAW,IAAI,EAAE,EAAGpF,SAAS,CAAE,CAAA;MAEpD,IAAIuF,WAAW,IAAItV,KAAK,CAACyD,OAAO,CAAC6R,WAAW,CAAC,EAAE;AAC7CnL,QAAAA,MAAM,GAAGmL,WAAW,CAAA;AACtB,OAAA;AACF,KAAA;;AAEA;AAAA,SACK,IAAIR,YAAY,KAAK3P,SAAS,EAAE;MACnCgF,MAAM,GAAGnK,KAAK,CAACyD,OAAO,CAACqR,YAAY,CAAC,GAAGA,YAAY,GAAG,EAAE,CAAA;AAC1D,KAAC,MACI;AACHE,MAAAA,eAAe,CAACO,eAAe,CAAC,iDAAiD,CAAC,CAAC,CAAA;AACnF,MAAA,OAAA;AACF,KAAA;;AAEA;AACApL,IAAAA,MAAM,GAAG8J,mBAAmB,CAAC9J,MAAM,CAAC,CAAA;AAEpC6K,IAAAA,eAAe,CAACQ,gBAAgB,CAACrL,MAAM,CAAC,CAAC,CAAA;GAE1C,EAAE,CAAE4F,SAAS,EAAE+E,YAAY,EAAEK,WAAW,CAAE,CAAC,CAAA;AAE5C,EAAA,OAAOJ,YAAY,CAAA;AACrB,CAAA;AAEA,MAAMQ,eAAe,GAAIpW,KAAK,KAAM;AAAEgL,EAAAA,MAAM,EAAE,EAAE;EAAEhL,KAAK;EAAE+V,KAAK,EAAER,WAAW,CAACG,KAAAA;AAAM,CAAC,CAAC,CAAA;AAEpF,MAAMW,gBAAgB,GAAIrL,MAAM,KAAM;EAAEA,MAAM;AAAEhL,EAAAA,KAAK,EAAEgG,SAAS;EAAE+P,KAAK,EAAER,WAAW,CAACE,MAAAA;AAAO,CAAC,CAAC;;ACjEvF,MAAMa,mBAAmB,GAAG,IAAIC,aAAa,CAAC,SAAS,EAAE;AAC9DC,EAAAA,IAAI,EAAE,OAAO;AACbrU,EAAAA,GAAG,EAAE,OAAO;AACZsU,EAAAA,QAAQ,EAAE,EAAE;AACZC,EAAAA,OAAO,EAAE,EAAE;AACXC,EAAAA,IAAI,EAAEC,MAAM;AACZC,EAAAA,OAAO,EAAE,IAAA;AACX,CAAC,CAAC,CAAA;AAEK,SAASC,0BAA0B,CAACC,iBAAiB,EAAE;EAE5D,IAAI,CAACA,iBAAiB,EAAE,OAAA;AAExB,EAAA,CAACA,iBAAiB,CAACC,MAAM,IAAID,iBAAiB,CAACE,IAAI,EAAE,CAAA;AAErD,EAAA,MAAMjI,SAAS,GAAG+H,iBAAiB,CAACG,iBAAiB,CAAA;EACrD,MAAMC,UAAU,GACdnI,SAAS,CAACoI,aAAa,CAAC,yBAAyB,CAAC,IAClDpI,SAAS,CAACoI,aAAa,CAAC,sBAAsB,CAAC,IAC/CpI,SAAS,CAACoI,aAAa,CAAC,gBAAgB,CAAC,CAAA;AAE3CD,EAAAA,UAAU,IAAIA,UAAU,CAACE,KAAK,EAAE,CAAA;AAClC,CAAA;AAEO,SAASC,UAAU,CAACC,MAAM,EAAEC,OAAO,EAAE;AAE1C,EAAA,IAAIA,OAAO,KAAK,IAAI,EAAE,OAAO,IAAI,CAAA;AAEjC,EAAA,MAAMC,cAAc,GAAGD,OAAO,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;AAE1C,EAAA,MAAME,MAAM,GAAGF,OAAO,GAAG,EAAE,CAAA;EAC3B,IAAIG,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACJ,cAAc,GAAG,EAAE,CAAC,CAAA;AAE1C,EAAA,IAAIF,MAAM,EAAE;IACV,OAAOO,oBAAoB,CAACH,IAAI,CAAC,GAAG,GAAG,GAAGG,oBAAoB,CAACJ,MAAM,CAAC,CAAA;AACxE,GAAA;AAEAC,EAAAA,IAAI,GAAIA,IAAI,GAAG,EAAE,IAAI,EAAG,CAAA;AAExB,EAAA,MAAMI,IAAI,GAAIN,cAAc,IAAI,EAAE,GAAG,EAAG,CAAA;AAExC,EAAA,OAAOK,oBAAoB,CAACH,IAAI,CAAC,GAAG,GAAG,GAAGG,oBAAoB,CAACJ,MAAM,CAAC,GAAG,GAAG,IAAIK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;AACrG,CAAA;AAEO,SAASC,cAAc,CAACC,UAAU,EAAE;AAEzC,EAAA,IAAIC,aAAa,GAAGD,UAAU,CAACE,WAAW,EAAE,CAAA;AAC5C,EAAA,MAAMC,KAAK,GAAGF,aAAa,CAAC9P,QAAQ,CAAC,IAAI,CAAC,IAAI8P,aAAa,CAAC9P,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE1E,EAAA,IAAIgQ,KAAK,EAAE;AACT,IAAA,MAAML,IAAI,GAAGG,aAAa,CAAC9P,QAAQ,CAAC,IAAI,CAAC,CAAA;AACzC,IAAA,MAAMiQ,MAAM,GAAGH,aAAa,CAACI,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAMC,WAAW,GAAG7I,QAAQ,CAAC2I,MAAM,IAAIA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACjD,IAAA,MAAMX,MAAM,GAAGhI,QAAQ,CAAC2I,MAAM,IAAIA,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAEjD,IAAA,MAAMG,kBAAkB,GAAGhU,gBAAQ,CAAC+T,WAAW,CAAC,IAAKA,WAAW,IAAI,CAAE,IAAKA,WAAW,IAAI,EAAG,CAAA;IAC7F,MAAME,aAAa,GAAIf,MAAM,IAAI,CAAC,IAAMA,MAAM,IAAI,EAAG,CAAA;AAErD,IAAA,IAAI,CAACc,kBAAkB,IAAI,CAACC,aAAa,EAAE,OAAO,IAAI,CAAA;IAEtD,MAAMd,IAAI,GAAIY,WAAW,GAAG,EAAE,IAAKR,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAEjD,IAAA,OAAOJ,IAAI,GAAG,EAAE,GAAGD,MAAM,CAAA;AAC3B,GAAC,MACI;AACH,IAAA,MAAMW,MAAM,GAAGH,aAAa,CAACI,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAMX,IAAI,GAAGjI,QAAQ,CAAC2I,MAAM,IAAIA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,MAAMX,MAAM,GAAGhI,QAAQ,CAAC2I,MAAM,IAAIA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5C,IAAA,MAAMK,WAAW,GAAGlU,gBAAQ,CAACmT,IAAI,CAAC,IAAKA,IAAI,IAAI,CAAE,IAAKA,IAAI,IAAI,EAAG,CAAA;AACjE,IAAA,MAAMc,aAAa,GAAGjU,gBAAQ,CAACkT,MAAM,CAAC,IAAKA,MAAM,IAAI,CAAE,IAAKA,MAAM,IAAI,EAAG,CAAA;AAEzE,IAAA,IAAI,CAACgB,WAAW,IAAI,CAACD,aAAa,EAAE,OAAO,IAAI,CAAA;AAE/C,IAAA,OAAOd,IAAI,GAAG,EAAE,GAAGD,MAAM,CAAA;AAC3B,GAAA;AACF,CAAA;AAEO,SAASiB,aAAa,CAACnB,OAAO,EAAElO,MAAM,EAAEsP,qBAAqB,EAAE;AAEpE,EAAA,IAAIA,qBAAqB,KAAKzL,wBAAwB,CAACE,cAAc,EAAE;IACrE,MAAMwL,iBAAiB,GAAG,CAACrB,OAAO,GAAGlO,MAAM,GAAGwD,cAAc,IAAIA,cAAc,CAAA;IAC9E,OAAOgL,oBAAoB,CAACF,IAAI,CAACC,KAAK,CAACgB,iBAAiB,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAGf,oBAAoB,CAACe,iBAAiB,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;AAC5H,GAAA;EAEA,MAAMC,QAAQ,GAAGhB,oBAAoB,CAACF,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAGM,oBAAoB,CAACN,OAAO,GAAG,EAAE,CAAC,CAAA;AAC1G,EAAA,MAAMuB,YAAY,GAAGH,qBAAqB,KAAKzL,wBAAwB,CAACC,UAAU,CAAA;EAElF,OAAO0L,QAAQ,IAAIC,YAAY,GAAGC,oBAAoB,CAAC1P,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;AACtE,CAAA;AAEO,SAAS2P,YAAY,CAACC,aAAa,EAAE;AAE1C,EAAA,IAAI,CAACA,aAAa,EAAE,OAAO,IAAI,CAAA;EAE/B,MAAMC,iBAAiB,GAAIC,UAAU,IAAK;AACxC,IAAA,MAAMC,YAAY,GAAGD,UAAU,CAAC5R,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAMmQ,IAAI,GAAGjI,QAAQ,CAAC2J,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,IAAA,MAAM3B,MAAM,GAAG2B,YAAY,CAAC5R,MAAM,GAAG,CAAC,GAAGiI,QAAQ,CAAC2J,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACtE,IAAI1R,KAAK,CAACgQ,IAAI,CAAC,IAAIA,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,EAAE,IAAIhQ,KAAK,CAAC+P,MAAM,CAAC,IAAIA,MAAM,GAAG,CAAC,IAAIA,MAAM,GAAG,EAAE,EAAE,OAAO,IAAI,CAAA;AACnG,IAAA,OAAOC,IAAI,GAAG,EAAE,GAAGD,MAAM,CAAA;GAC1B,CAAA;AAED,EAAA,MAAM4B,WAAW,GAAG,IAAIC,IAAI,EAAE,CAACC,iBAAiB,EAAE,CAAA;;AAElD;AACA,EAAA,IAAIN,aAAa,CAAC9Q,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC/B8Q,aAAa,GAAGA,aAAa,CAAChR,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC9C,IAAA,MAAMsP,OAAO,GAAG2B,iBAAiB,CAACD,aAAa,CAAC,CAAA;AAChD,IAAA,IAAI1B,OAAO,KAAK,IAAI,EAAE,OAAO,IAAI,CAAA;AACjC,IAAA,OAAO,CAACA,OAAO,GAAG8B,WAAW,GAAGxM,cAAc,IAAIA,cAAc,CAAA;AAClE,GAAA;;AAEA;AAAA,OACK,IAAIoM,aAAa,CAAC9Q,QAAQ,CAAC,GAAG,CAAC,EAAE;IACpC,MAAM,CAAEgR,UAAU,EAAEK,YAAY,CAAE,GAAGP,aAAa,CAAC1R,KAAK,CAAC,GAAG,CAAC,CAAA;AAE7D,IAAA,MAAMgQ,OAAO,GAAG2B,iBAAiB,CAACC,UAAU,CAAC,CAAA;AAC7C,IAAA,IAAIM,aAAa,GAAGP,iBAAiB,CAACM,YAAY,CAAC,CAAA;IAEnD,IAAIjC,OAAO,KAAK,IAAI,IAAIkC,aAAa,KAAK,IAAI,EAAE,OAAO,IAAI,CAAA;;AAE3D;IACAA,aAAa,GAAG,CAACA,aAAa,CAAA;IAE9B,OAAO,CAAClC,OAAO,GAAGkC,aAAa,GAAGJ,WAAW,GAAGxM,cAAc,IAAIA,cAAc,CAAA;AAClF,GAAA;;AAEA;AAAA,OACK,IAAIoM,aAAa,CAAC9Q,QAAQ,CAAC,GAAG,CAAC,EAAE;IACpC,MAAM,CAAEgR,UAAU,EAAEK,YAAY,CAAE,GAAGP,aAAa,CAAC1R,KAAK,CAAC,GAAG,CAAC,CAAA;AAE7D,IAAA,MAAMgQ,OAAO,GAAG2B,iBAAiB,CAACC,UAAU,CAAC,CAAA;AAC7C,IAAA,IAAIM,aAAa,GAAGP,iBAAiB,CAACM,YAAY,CAAC,CAAA;IAEnD,IAAIjC,OAAO,KAAK,IAAI,IAAIkC,aAAa,KAAK,IAAI,EAAE,OAAO,IAAI,CAAA;IAE3D,OAAO,CAAClC,OAAO,GAAGkC,aAAa,GAAGJ,WAAW,GAAGxM,cAAc,IAAIA,cAAc,CAAA;AAClF,GAAA;;AAEA;OACK;IACH,OAAOqM,iBAAiB,CAACD,aAAa,CAAC,CAAA;AACzC,GAAA;AACF,CAAA;AAEO,SAASS,aAAa,CAACC,IAAI,EAAE;AAClC,EAAA,IAAIC,CAAC,GAAG,IAAIN,IAAI,CAACK,IAAI,CAAC;IAAEE,KAAK,GAAG,EAAE,IAAID,CAAC,CAACE,QAAQ,EAAE,GAAG,CAAC,CAAC;AAAEC,IAAAA,GAAG,GAAG,EAAE,GAAGH,CAAC,CAACI,OAAO,EAAE;AAAEC,IAAAA,IAAI,GAAGL,CAAC,CAACM,WAAW,EAAE,CAAA;EAEvG,IAAIL,KAAK,CAACrS,MAAM,GAAG,CAAC,EAClBqS,KAAK,GAAG,GAAG,GAAGA,KAAK,CAAA;EACrB,IAAIE,GAAG,CAACvS,MAAM,GAAG,CAAC,EAChBuS,GAAG,GAAG,GAAG,GAAGA,GAAG,CAAA;EAEjB,OAAO,CAAEE,IAAI,EAAEJ,KAAK,EAAEE,GAAG,CAAE,CAAChK,IAAI,CAAC,GAAG,CAAC,CAAA;AACvC,CAAA;;AAEA;AACO,SAASoK,oCAAoC,CAAClb,KAAK,EAAE;EAE1D,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK,CAAA;AAErD,EAAA,MAAMmb,QAAQ,GAAGnb,KAAK,CAACsI,KAAK,CAAC,GAAG,CAAC,CAAA;AACjC,EAAA,IAAI6S,QAAQ,CAAC5S,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK,CAAA;EAEtC,MAAM6S,WAAW,GAAGD,QAAQ,CAAC,CAAC,CAAC,CAAC7S,KAAK,CAAC,GAAG,CAAC,CAAA;AAC1C,EAAA,IAAI8S,WAAW,CAAC7S,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK,CAAA;AAEzC,EAAA,OAAO,IAAI,CAAA;AAEb,CAAA;;AAEA;AACO,SAAS8S,8BAA8B,CAACrb,KAAK,EAAE;EAEpD,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK,CAAA;EAErD,IAAIA,KAAK,CAACkJ,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAA;AAErC,EAAA,MAAMkS,WAAW,GAAGpb,KAAK,CAACsI,KAAK,CAAC,GAAG,CAAC,CAAA;AACpC,EAAA,IAAI8S,WAAW,CAAC7S,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK,CAAA;AAEzC,EAAA,OAAO,IAAI,CAAA;AACb,CAAA;AAEO,SAAS+S,iBAAiB,CAACZ,IAAI,EAAEa,IAAI,EAAE7B,qBAAqB,EAAE;AAEnE,EAAA,MAAM8B,WAAW,GAAG,IAAInB,IAAI,EAAE,CAAA;AAC9BmB,EAAAA,WAAW,CAACC,WAAW,CAACf,IAAI,CAACO,WAAW,EAAE,EAAEP,IAAI,CAACG,QAAQ,EAAE,EAAEH,IAAI,CAACK,OAAO,EAAE,CAAC,CAAA;AAC5ES,EAAAA,WAAW,CAACE,QAAQ,CAAChD,IAAI,CAACC,KAAK,CAAC4C,IAAI,GAAG,EAAE,CAAC,EAAEA,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAE5D,EAAA,IAAI7B,qBAAqB,KAAKzL,wBAAwB,CAACE,cAAc,EAAE;AAErE,IAAA,MAAMwN,qBAAqB,GAAGH,WAAW,CAAClB,iBAAiB,EAAE,CAAA;AAC7D,IAAA,MAAMsB,SAAS,GAAIL,IAAI,GAAGI,qBAAqB,GAAG,CAAC,GAAI,CAAC,CAAC,GAAMJ,IAAI,GAAGI,qBAAqB,GAAI/N,cAAc,GAAI,CAAC,GAAG,CAAE,CAAA;;AAEvH;IACA4N,WAAW,CAACE,QAAQ,CAACF,WAAW,CAACK,QAAQ,EAAE,GAAGD,SAAS,GAAG,EAAE,CAAC,CAAA;AAC/D,GAAA;AAEA,EAAA,OAAOnB,aAAa,CAACe,WAAW,CAAC,GAAG,GAAG,GAAG/B,aAAa,CAAC8B,IAAI,EAAEC,WAAW,CAAClB,iBAAiB,EAAE,EAAEZ,qBAAqB,CAAC,CAAA;AAEvH,CAAA;AAEO,SAASI,oBAAoB,CAACxB,OAAO,EAAE;AAC5C,EAAA,OAAOwD,qBAAqB,CAACxD,OAAO,CAAC,GAAG,GAAG,GAAGM,oBAAoB,CAACF,IAAI,CAACqD,GAAG,CAACzD,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;AAC5F,CAAA;AAEO,SAAS0D,mBAAmB,CAAChc,KAAK,EAAE;AACzC,EAAA,OAAOyI,KAAK,CAAC,IAAI4R,IAAI,CAACA,IAAI,CAAChJ,KAAK,CAACrR,KAAK,CAAC,CAAC,CAACic,OAAO,EAAE,CAAC,CAAA;AACrD,CAAA;AAEA,SAASH,qBAAqB,CAACxD,OAAO,EAAE;EACtC,IAAIA,OAAO,GAAG,CAAC,EAAE;AACf,IAAA,OAAO,GAAG,GAAGM,oBAAoB,CAACF,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;AAC7D,GAAC,MACI;AACH,IAAA,OAAO,GAAG,GAAGM,oBAAoB,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,GAAGL,OAAO,IAAI,EAAE,CAAC,CAAC,CAAA;AACnE,GAAA;AACF,CAAA;AAEA,SAASM,oBAAoB,CAAC2C,IAAI,EAAE;EAClC,OAAOA,IAAI,CAACnT,QAAQ,EAAE,CAAC8T,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACzC;;AC9NO,SAASC,2BAA2B,CAAC9b,OAAO,EAAE;EACnD,MAAM;IACJqD,SAAS;AACT1D,IAAAA,KAAAA;AACF,GAAC,GAAGK,OAAO,CAAA;EAEX,MAAM;AAAE+b,IAAAA,OAAAA;AAAQ,GAAC,GAAG1Y,SAAS,CAAA;AAE7B,EAAA,IAAI,OAAO1D,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAA;AAE1C,EAAA,IAAIoc,OAAO,KAAKvO,iBAAiB,CAACC,IAAI,KAAKkO,mBAAmB,CAAChc,KAAK,CAAC,IAAI,CAACqb,8BAA8B,CAACrb,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,CAAA;AAC7H,EAAA,IAAIoc,OAAO,KAAKvO,iBAAiB,CAACE,IAAI,IAAIgM,YAAY,CAAC/Z,KAAK,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI,CAAA;AACnF,EAAA,IAAIoc,OAAO,KAAKvO,iBAAiB,CAACG,QAAQ,KAAKgO,mBAAmB,CAAChc,KAAK,CAAC,IAAI,CAACkb,oCAAoC,CAAClb,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,CAAA;AAEvI,EAAA,OAAOA,KAAK,CAAA;AACd,CAAA;AAEO,SAASqc,yBAAyB,CAAChc,OAAO,EAAE;EACjD,MAAM;IACJqD,SAAS;IACT/C,IAAI;AACJX,IAAAA,KAAAA;AACF,GAAC,GAAGK,OAAO,CAAA;EAEX,IAAI;AACF,IAAA,MAAMic,WAAW,GAAG1G,mBAAmB,CAACF,aAAa,CAAChS,SAAS,EAAE/C,IAAI,CAAC,CAAC,CAAC0M,GAAG,CAAC2I,CAAC,IAAIA,CAAC,CAAChW,KAAK,CAAC,CAAA;IACzF,OAAOsc,WAAW,CAACpT,QAAQ,CAAClJ,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAI,CAAA;GAClD,CAAC,OAAOc,KAAK,EAAE;AAEd;AACA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACF,CAAA;AAEO,SAASyb,wBAAwB,CAAClc,OAAO,EAAE;EAChD,MAAM;IACJqD,SAAS;IACT/C,IAAI;AACJX,IAAAA,KAAAA;AACF,GAAC,GAAGK,OAAO,CAAA;EAEX,IAAI;AACF,IAAA,MAAMic,WAAW,GAAG1G,mBAAmB,CAACF,aAAa,CAAChS,SAAS,EAAE/C,IAAI,CAAC,CAAC,CAAC0M,GAAG,CAAC2I,CAAC,IAAIA,CAAC,CAAChW,KAAK,CAAC,CAAA;AACzF,IAAA,OAAOA,KAAK,CAAC8V,MAAM,CAACE,CAAC,IAAIsG,WAAW,CAACpT,QAAQ,CAAC8M,CAAC,CAAC,CAAC,CAAA;GAClD,CAAC,OAAOlV,KAAK,EAAE;AAEd;AACA;AACA,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF;;ACxCA,MAAMR,MAAI,GAAG,WAAW,CAAA;AAGT,SAASkc,SAAS,CAAC1I,KAAK,EAAE;EACvC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;AACL9J,IAAAA,KAAK,GAAG,EAAA;AACV,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;AACF2D,IAAAA,KAAAA;AACF,GAAC,GAAGvF,KAAK,CAAA;EAET,MAAM2S,cAAc,GAAIzG,CAAC,IAAK;AAE5B,IAAA,IAAI0G,QAAQ,GAAG,CAAE,GAAG1c,KAAK,CAAE,CAAA;AAE3B,IAAA,IAAI,CAAC0c,QAAQ,CAACxT,QAAQ,CAAC8M,CAAC,CAAC,EAAE;AACzB0G,MAAAA,QAAQ,CAAClQ,IAAI,CAACwJ,CAAC,CAAC,CAAA;AAClB,KAAC,MAAM;MACL0G,QAAQ,GAAGA,QAAQ,CAAC5G,MAAM,CAAC6G,CAAC,IAAIA,CAAC,IAAI3G,CAAC,CAAC,CAAA;AACzC,KAAA;IAEAlC,KAAK,CAACwB,QAAQ,CAAC;MACbxL,KAAK;AACL9J,MAAAA,KAAK,EAAE0c,QAAAA;AACT,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAM;AACJ7F,IAAAA,KAAK,EAAE+F,SAAS;AAChB9Q,IAAAA,MAAM,EAAEzL,OAAAA;AACV,GAAC,GAAGwc,cAAc,CAAC/S,KAAK,CAAC,CAAA;EAEzB,MAAM;AAAE8J,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOM,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG5B,UAAU,CAACF,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAC5ES,eAAC,KAAK,EAAA;AACJ,MAAA,KAAK,EAAG3E,KAAAA;AAAO,KAAA,CAAG,EAElBuN,SAAS,IAAIvG,WAAW,CAACE,MAAM,IAAIlW,OAAO,CAACgN,GAAG,CAAC,CAAC2I,CAAC,EAAEnF,KAAK,KAAK;AAC3D,MAAA,OACEmD,eAAC,KAAK,EAAA;QACJ,EAAE,EAAGL,QAAQ,CAAE,CAAEjI,EAAAA,EAAG,IAAGmF,KAAM,CAAA,CAAC,EAAE+C,MAAM,CAAG;QAEzC,KAAK,EAAGoC,CAAC,CAAC3G,KAAO;QACjB,KAAK,EAAGmE,UAAU,CAAC;AACjB,UAAA,aAAa,EAAExT,KAAK,CAACkJ,QAAQ,CAAC8M,CAAC,CAAChW,KAAK,CAAA;AACvC,SAAC,CAAG;AACJ,QAAA,QAAQ,EAAG,KAAO;QAAA,QAClB,EAAAgU,cAAA,CAAA,OAAA,EAAA;UACE,OAAO,EAAGhU,KAAK,CAACkJ,QAAQ,CAAC8M,CAAC,CAAChW,KAAK,CAAG;AACnC,UAAA,KAAK,EAAC,WAAW;AACjB,UAAA,QAAQ,EAAGuT,QAAU;UACrB,EAAE,EAAGI,QAAQ,CAAE,CAAEjI,EAAAA,EAAG,IAAGmF,KAAM,CAAA,CAAC,EAAE+C,MAAM,CAAG;AACzC,UAAA,IAAI,EAAC,UAAU;AACf,UAAA,OAAO,EAAG,MAAM6I,cAAc,CAACzG,CAAC,CAAChW,KAAK,CAAA;AAAG,SAAA,CAAA;AAAG,OAAA,EAZvC,CAAE0L,EAAAA,EAAG,CAAGmF,CAAAA,EAAAA,KAAM,EAAC,CAahB,CAAA;KAEX,CAAC,EAEJmD,cAAA,CAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEAwS,SAAS,CAACvI,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,KAAK;EAEnC,MAAMyc,QAAQ,GAAG,EAAE,CAAA;;AAEnB;AACA,EAAA,IAAI,CAACzc,OAAO,CAACqR,SAAS,EAAE;IACtBoL,QAAQ,CAAChR,MAAM,GAAG,CAChB;AACEuD,MAAAA,KAAK,EAAE,OAAO;AACdrP,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CACF,CAAA;AACH,GAAA;EAEA,OAAO;AACL,IAAA,GAAG8c,QAAQ;IACX,GAAGzc,OAAAA;GACJ,CAAA;AACH,CAAC,CAAA;AAEDmc,SAAS,CAAClc,IAAI,GAAGA,MAAI,CAAA;AACrBkc,SAAS,CAACnN,KAAK,GAAG,WAAW,CAAA;AAC7BmN,SAAS,CAACtI,KAAK,GAAG,IAAI,CAAA;AACtBsI,SAAS,CAACpJ,UAAU,GAAG,EAAE,CAAA;AACzBoJ,SAAS,CAACtJ,aAAa,GAAGqJ,wBAAwB,CAAA;AAClDC,SAAS,CAACrI,KAAK,GAAG,WAAW;;AC3G7B;AACA;AACA;AACA;AACA;AACe,SAAS4I,mBAAmB,GAAG;EAC5C,MAAM;IAAEjG,WAAW;AAAEnW,IAAAA,IAAAA;AAAK,GAAC,GAAGyV,UAAU,CAAC,MAAM,CAAC,CAACW,SAAS,EAAE,CAAA;AAC5D,EAAA,MAAMhT,gBAAgB,GAAGqS,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;EAE9D,OAAO4G,aAAO,CAAC,MAAM;AACnB,IAAA,MAAMC,OAAO,GAAGlZ,gBAAgB,GAAGA,gBAAgB,CAACnB,eAAe,CAACjC,IAAI,EAAEA,IAAI,CAAC,GAAGA,IAAI,CAAA;IACtF,OAAO;AAAE,MAAA,GAAGmW,WAAW;MAAE,GAAGmG,OAAAA;KAAS,CAAA;GACtC,EAAE,CAAElZ,gBAAgB,EAAEpD,IAAI,EAAEmW,WAAW,CAAE,CAAC,CAAA;AAE7C;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASoG,YAAY,CAACha,SAAS,EAAE;AAC9C,EAAA,MAAMa,gBAAgB,GAAGqS,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;EAC9D,MAAM+G,YAAY,GAAGJ,mBAAmB,EAAE,CAAA;EAE1C,OAAOC,aAAO,CAAC,MAAM;IACnB,OAAOjZ,gBAAgB,GAAGA,gBAAgB,CAACV,KAAK,CAACH,SAAS,EAAEia,YAAY,CAAC,GAAG,IAAI,CAAA;GACjF,EAAE,CAAEpZ,gBAAgB,EAAEb,SAAS,EAAEia,YAAY,CAAE,CAAC,CAAA;AACnD;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,uBAAuB,CAACpd,KAAK,EAAE;EACrD,MAAM2V,QAAQ,GAAGoH,mBAAmB,EAAE,CAAA;AACtC,EAAA,MAAMlZ,kBAAkB,GAAGuS,UAAU,CAAC,oBAAoB,CAAC,CAAA;EAE3D,OAAO4G,aAAO,CAAC,MAAM;IAEnB,IAAInZ,kBAAkB,IAAIA,kBAAkB,CAAC9D,YAAY,CAACC,KAAK,CAAC,EAAE;AAChE,MAAA,OAAO6D,kBAAkB,CAACnD,QAAQ,CAACV,KAAK,EAAE2V,QAAQ,CAAC,CAAA;AACrD,KAAA;AAEA,IAAA,OAAO3V,KAAK,CAAA;GAEb,EAAE,CAAE6D,kBAAkB,EAAE8R,QAAQ,EAAE3V,KAAK,CAAE,CAAC,CAAA;AAC7C;;ACvBe,SAASqd,gBAAgB,CAACC,SAAS,EAAEvJ,MAAM,EAAEwJ,eAAe,GAAG7F,MAAM,EAAE;AAEpF,EAAA,SAAS8F,WAAW,CAAC;AAAEva,IAAAA,GAAAA;AAAI,GAAC,EAAE;IAC5B,IAAIA,GAAG,KAAKqa,SAAS,EAAE;AACrBvJ,MAAAA,MAAM,EAAE,CAAA;AACV,KAAA;AACF,GAAA;AAEAiD,EAAAA,eAAS,CAAC,MAAM;AACduG,IAAAA,eAAe,CAACE,gBAAgB,CAAC,SAAS,EAAED,WAAW,CAAC,CAAA;AAExD,IAAA,OAAO,MAAM;AACXD,MAAAA,eAAe,CAACG,mBAAmB,CAAC,SAAS,EAAEF,WAAW,CAAC,CAAA;KAC5D,CAAA;AACH,GAAC,CAAC,CAAA;AACJ;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,qBAAqB,CAAC3d,KAAK,EAAEK,OAAO,EAAE;EAC5D,MAAM8c,YAAY,GAAGJ,mBAAmB,EAAE,CAAA;AAC1C,EAAA,MAAMjZ,UAAU,GAAGsS,UAAU,CAAC,YAAY,CAAC,CAAA;EAE3C,OAAO4G,aAAO,CAAC,MAAM;AAEnB,IAAA,IAAIlZ,UAAU,CAAC9B,UAAU,CAAChC,KAAK,CAAC,EAAE;MAChC,OAAO8D,UAAU,CAACpD,QAAQ,CAACV,KAAK,EAAEmd,YAAY,EAAE9c,OAAO,CAAC,CAAA;AAC1D,KAAA;AAEA,IAAA,OAAOL,KAAK,CAAA;GAEb,EAAE,CAAEmd,YAAY,EAAErZ,UAAU,EAAE9D,KAAK,EAAEK,OAAO,CAAE,CAAC,CAAA;AAClD;;ACfA,MAAMud,MAAI,GAAG,MAAM,KAAK,CAAA;AAGT,SAASC,SAAS,CAAC/J,KAAK,EAAE;EACvC,MAAM;IACJhK,KAAK;AACLwL,IAAAA,QAAAA;AACF,GAAC,GAAGxB,KAAK,CAAA;EAET,MAAM;AAAElB,IAAAA,KAAAA;AAAM,GAAC,GAAG9I,KAAK,CAAA;AAEvB,EAAA,MAAMvG,UAAU,GAAG6S,UAAU,CAAC,YAAY,CAAC;AACrC0H,IAAAA,IAAI,GAAG1H,UAAU,CAAC,MAAM,CAAC,CAAA;EAE/B,MAAM;IACJzV,IAAI;IACJqJ,MAAM;AACNnH,IAAAA,UAAAA;AACF,GAAC,GAAGib,IAAI,CAAC/G,SAAS,EAAE,CAAA;EAEpB,MAAM;IACJrC,OAAO;IACPJ,KAAK;AACLM,IAAAA,MAAAA;AACF,GAAC,GAAGa,gBAAU,CAACrB,mBAAiB,CAAC,CAAA;EAEjC,MAAM2J,kBAAkB,GAAGxa,UAAU,CAACqI,GAAG,CAAC9B,KAAK,CAACxJ,IAAI,CAAC,CAAA;EAErD,IAAI,CAACyd,kBAAkB,EAAE;IACvB,MAAM,IAAItd,KAAK,CAAE,CAAA,qBAAA,EAAuBqJ,KAAK,CAACxJ,IAAK,GAAE,CAAC,CAAA;AACxD,GAAA;AAEA,EAAA,MAAMN,KAAK,GAAG4L,WAAG,CAACjL,IAAI,EAAEiS,KAAK,CAAC,CAAA;AAE9B,EAAA,MAAMoL,WAAW,GAAG7N,UAAU,CAACnG,MAAM,EAAE4I,KAAK,CAAC,CAAA;EAE7C,MAAMW,QAAQ,GAAG1Q,UAAU,CAACob,QAAQ,IAAInU,KAAK,CAACyJ,QAAQ,IAAI,KAAK,CAAA;AAE/D,EAAA,MAAM2K,MAAM,GAAGhB,YAAY,CAACpT,KAAK,CAACnG,WAAW,IAAImG,KAAK,CAACnG,WAAW,CAACL,IAAI,IAAI,IAAI,CAAC,CAAA;AAEhF,EAAA,IAAI4a,MAAM,EAAE;IACV,OAAOlK,cAAA,CAAC,KAAK,EAAG,EAAA,CAAA,CAAA;AAClB,GAAA;AAEA,EAAA,OACEA,eAAC,MAAM,EAAA;AAAC,IAAA,KAAK,EAAGlK,KAAO;AAAC,IAAA,KAAK,EAAG2J,iBAAiB,CAAC3J,KAAK,CAAG;AAAA,IAAA,QAAA,EACxDkK,eAAC,OAAO,EAAA;AAAC,MAAA,KAAK,EAAC,aAAa;AAAC,MAAA,KAAK,EAAGlK,KAAO;AAAA,MAAA,QAAA,EAC1CkK,eAAC,kBAAkB,EAAA;AAAA,QAAA,GACZF,KAAK;AACV,QAAA,QAAQ,EAAGP,QAAU;AACrB,QAAA,MAAM,EAAGyK,WAAa;AACtB,QAAA,QAAQ,EAAGzK,QAAQ,GAAGqK,MAAI,GAAGtI,QAAU;AACvC,QAAA,KAAK,EAAGtV,KAAAA;AAAO,OAAA,CAAA;AAAG,KAAA,CAAA;GAEf,CAAA,CAAA;AAEb;;AC7De,SAASme,OAAO,CAACrK,KAAK,EAAE;EACrC,MAAM;IACJS,QAAQ;IACRD,KAAK;AACLK,IAAAA,GAAAA;AACF,GAAC,GAAGc,gBAAU,CAACrB,mBAAiB,CAAC,CAAA;EAEjC,MAAM;AAAEtK,IAAAA,KAAAA;AAAM,GAAC,GAAGgK,KAAK,CAAA;EAEvB,MAAM;IAAEpI,EAAE;AAAEkB,IAAAA,UAAU,GAAG,EAAA;AAAG,GAAC,GAAG9C,KAAK,CAAA;AAErC,EAAA,MAAMkI,YAAY,GAAGoE,UAAU,CAAC,cAAc,CAAC,CAAA;AAC/C,EAAA,MAAM1T,iBAAiB,GAAG0T,UAAU,CAAC,mBAAmB,CAAC,CAAA;AACzD,EAAA,MAAM7J,IAAI,GAAGyF,YAAY,CAACnF,OAAO,CAACnB,EAAE,CAAC,CAAA;AAErC,EAAA,OAAO0J,gBAAC,QAAQ,EAAA;AAAC,IAAA,KAAK,EAAC,iEAAiE;AAAC,IAAA,KAAK,EAAGtL,KAAO;AAAA,IAAA,QAAA,EAAA,CAGpGyC,IAAI,CAACc,GAAG,CAAClB,GAAG,IAAI;MACd,MAAM;AACJS,QAAAA,UAAU,GAAG,EAAA;AACf,OAAC,GAAGT,GAAG,CAAA;AAEP,MAAA,IAAI,CAACS,UAAU,CAACrE,MAAM,EAAE;AACtB,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAEA,MAAA,OACEyL,eAAC,GAAG,EAAA;AAAC,QAAA,GAAG,EAAG7H,GAAK;AAAC,QAAA,KAAK,EAAC,yBAAyB;AAAA,QAAA,QAAA,EAE5CS,UAAU,CAACS,GAAG,CAAC3B,EAAE,IAAI;AAEnB,UAAA,MAAM0S,UAAU,GAAG1b,iBAAiB,CAACkJ,GAAG,CAACF,EAAE,CAAC,CAAA;UAE5C,IAAI,CAAC0S,UAAU,EAAE;AACf,YAAA,OAAO,IAAI,CAAA;AACb,WAAA;AAEA,UAAA,OACEC,qBAAC,SAAS,EAAA;AAAA,YAAA,GACHvK,KAAK;YACV,GAAG,EAAGsK,UAAU,CAAC1S,EAAI;AACrB,YAAA,KAAK,EAAG0S,UAAAA;WAAe,CAAA,CAAA;SAE5B,CAAA;OAEC,CAAA,CAAA;KAET,CAAC,EAGFxR,UAAU,CAACrE,MAAM,GAAG,IAAI,GAAGyL,cAAC,CAAA,KAAK,EAAG,EAAA,CAAA,CAAA;GAE7B,CAAA,CAAA;AACb,CAAA;AAEAmK,OAAO,CAAClK,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;AAClCuM,EAAAA,UAAU,EAAE,EAAE;EACd,GAAGvM,OAAAA;AACL,CAAC,CAAC,CAAA;AAEF8d,OAAO,CAAC7d,IAAI,GAAG,SAAS,CAAA;AACxB6d,OAAO,CAACjK,KAAK,GAAG,KAAK,CAAA;AACrBiK,OAAO,CAAC9O,KAAK,GAAG,IAAI,CAAA;AACpB8O,OAAO,CAAChK,KAAK,GAAG,IAAI;;ACxEpB,SAASmK,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,mBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,OAAO,EAAE,WAAW;AACtB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,4BAA4B;AACrC,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,CAAC,EAAE,uIAAuI;AAC5I,CAAC,CAAC,CAAC;;ACbY,SAASC,YAAY,CAACzK,KAAK,EAAE;EAE1C,MAAM;AACJ0K,IAAAA,GAAG,GAAG,IAAI;AACVC,IAAAA,IAAI,GAAG,IAAI;IACXC,OAAO;IACPC,QAAQ;IACRlK,QAAQ;IACRlB,QAAQ;AACRqL,IAAAA,SAAAA;AACF,GAAC,GAAG9K,KAAK,CAAA;AAET,EAAA,MAAM+K,gBAAgB,GAAG,MAAMF,QAAQ,IAAIA,QAAQ,CAACG,OAAO,IAAIH,QAAQ,CAACG,OAAO,CAAC3G,KAAK,EAAE,CAAA;EAEvF,OAAO/C,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG5B,UAAU,CAAC,iBAAiB,EAAE;AAAE,MAAA,cAAc,EAAED,QAAAA;AAAS,KAAC,EAAE;AAAE,MAAA,WAAW,EAAEqL,SAAAA;AAAU,KAAC,CAAG;AAAC,IAAA,GAAG,EAAGF,OAAS;IAAA,QACzHF,EAAAA,CAAAA,GAAG,KAAK,IAAI,IAAIpJ,eAAA,CAAA,MAAA,EAAA;AAAM,MAAA,KAAK,EAAC,qDAAqD;AAAC,MAAA,OAAO,EAAGyJ,gBAAkB;AAAA,MAAA,QAAA,EAAA,CAAA,GAAA,EAAI5e,gBAAQ,CAACue,GAAG,CAAC,GAAGxK,cAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,0BAA0B;QAAA,QAAGwK,EAAAA,GAAAA;AAAG,OAAA,CAAS,GAAGA,GAAG,EAAA,GAAA,CAAA;AAAA,KAAA,CAAU,EACvM/J,QAAQ,EACRgK,IAAI,KAAK,IAAI,IAAIrJ,eAAA,CAAA,MAAA,EAAA;AAAM,MAAA,KAAK,EAAC,qDAAqD;AAAC,MAAA,OAAO,EAAGyJ,gBAAkB;AAAA,MAAA,QAAA,EAAA,CAAA,GAAA,EAAI5e,gBAAQ,CAACwe,IAAI,CAAC,GAAGzK,cAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,0BAA0B;QAAA,QAAGyK,EAAAA,IAAAA;AAAI,OAAA,CAAS,GAAGA,IAAI,EAAA,GAAA,CAAA;KAAU,CAAA,CAAA;GACzM,CAAA,CAAA;AAER;;ACde,SAASM,UAAU,CAACjL,KAAK,EAAE;EAExC,MAAM;IACJpI,EAAE;IACF2D,KAAK;IACL2P,oBAAoB;IACpBpL,MAAM;IACNhJ,QAAQ;IACR2I,QAAQ;IACR0L,mBAAmB;IACnBvE,IAAI;AACJwE,IAAAA,OAAAA;AACF,GAAC,GAAGpL,KAAK,CAAA;EAET,MAAMqL,YAAY,GAAGC,YAAM,EAAE,CAAA;EAC7B,MAAMC,aAAa,GAAGD,YAAM,EAAE,CAAA;EAC9B,MAAM,CAAEvH,iBAAiB,EAAEyH,oBAAoB,CAAE,GAAG1I,cAAQ,CAAC,IAAI,CAAC,CAAA;EAClE,MAAM,CAAE2I,YAAY,EAAEC,eAAe,CAAE,GAAG5I,cAAQ,CAAC,KAAK,CAAC,CAAA;EAEzD,MAAM,CAAE6I,kBAAkB,EAAEC,qBAAqB,CAAE,GAAG9I,cAAQ,CAAC,KAAK,CAAC,CAAA;;AAErE;AACAI,EAAAA,eAAS,CAAC,MAAM;AAEd,IAAA,IAAI,CAACa,iBAAiB,IAAI,CAACA,iBAAiB,CAAC8H,MAAM,EAAE,OAAA;AAErD9H,IAAAA,iBAAiB,CAACqH,OAAO,CAACxE,IAAI,EAAE,IAAI,CAAC,CAAA;IACrC8E,eAAe,CAAC,KAAK,CAAC,CAAA;GAEvB,EAAE,CAAE3H,iBAAiB,EAAE6C,IAAI,CAACtS,QAAQ,EAAE,CAAE,CAAC,CAAA;AAE1C4O,EAAAA,eAAS,CAAC,MAAM;IAEd,IAAI,CAACyI,kBAAkB,EAAE,OAAA;IAEzB7H,0BAA0B,CAACC,iBAAiB,CAAC,CAAA;IAC7C6H,qBAAqB,CAAC,KAAK,CAAC,CAAA;AAE9B,GAAC,EAAE,CAAE7H,iBAAiB,EAAE4H,kBAAkB,CAAE,CAAC,CAAA;;AAE7C;AACAzI,EAAAA,eAAS,CAAC,MAAM;AAEd,IAAA,IAAI2I,MAAM,GAAG;AACXC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,UAAU,EAAE,OAAO;AACnBC,MAAAA,MAAM,EAAE,IAAI;AACZC,MAAAA,UAAU,EAAE,KAAK;AAEjB;AACAC,MAAAA,OAAO,EAAEf,mBAAmB,GAAG,OAAO,GAAG,YAAY;MACrDgB,YAAY,EAAE,MAAM,kHAAE;KACvB,CAAA;IAED,MAAMC,QAAQ,GAAGC,SAAS,CAAChB,YAAY,CAACL,OAAO,EAAEa,MAAM,CAAC,CAAA;IAExDL,oBAAoB,CAACY,QAAQ,CAAC,CAAA;IAE9B,MAAME,kBAAkB,GAAIza,CAAC,IAAK;AAChC,MAAA,IAAI,CAACua,QAAQ,CAAClI,iBAAiB,CAACqI,QAAQ,CAAC1a,CAAC,CAAC2a,aAAa,CAAC,IAAI3a,CAAC,CAAC2a,aAAa,IAAInB,YAAY,CAACL,OAAO,EAAE;QACpGoB,QAAQ,CAACK,KAAK,EAAE,CAAA;AAClB,OAAA;KACD,CAAA;;AAED;IACA,MAAMC,mBAAmB,GAAI7a,CAAC,IAAK;MACjC,IAAIA,CAAC,CAAC4P,MAAM,CAACtF,SAAS,CAACoQ,QAAQ,CAAC,eAAe,CAAC,EAAE;QAChDb,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,OAAA;KACD,CAAA;;AAED;AACA;AACAU,IAAAA,QAAQ,CAACP,MAAM,CAACc,MAAM,GAAG,CACvB,MAAMP,QAAQ,CAAClI,iBAAiB,CAACyF,gBAAgB,CAAC,UAAU,EAAE2C,kBAAkB,CAAC,EACjF,MAAMF,QAAQ,CAAClI,iBAAiB,CAACyF,gBAAgB,CAAC,WAAW,EAAE+C,mBAAmB,CAAC,CACpF,CAAA;AAEDN,IAAAA,QAAQ,CAACP,MAAM,CAACe,OAAO,GAAG,CACxB,MAAMR,QAAQ,CAAClI,iBAAiB,CAAC0F,mBAAmB,CAAC,UAAU,EAAE0C,kBAAkB,CAAC,EACpF,MAAMF,QAAQ,CAAClI,iBAAiB,CAAC0F,mBAAmB,CAAC,WAAW,EAAE8C,mBAAmB,CAAC,CACvF,CAAA;AAEH,GAAC,EAAE,CAAEvB,mBAAmB,CAAE,CAAC,CAAA;;AAE3B;AACAjI,EAAAA,eAAS,CAAC,MAAM;AAEd,IAAA,IAAI,CAACa,iBAAiB,IAAI,CAACA,iBAAiB,CAAC8H,MAAM,EAAE,OAAA;IAErD9H,iBAAiB,CAAC8H,MAAM,CAACrK,QAAQ,GAAG,CAAGoF,IAAI,IAAKwE,OAAO,CAAC,IAAI7E,IAAI,CAACK,IAAI,CAAC,CAAC,EAAE,MAAM8E,eAAe,CAAC,KAAK,CAAC,CAAE,CAAA;AAEzG,GAAC,EAAE,CAAE3H,iBAAiB,EAAEqH,OAAO,CAAE,CAAC,CAAA;AAElC,EAAA,MAAMyB,cAAc,GAAGC,iBAAW,CAC/Bjb,CAAC,IAAK;IAEL,IAAI,CAACkS,iBAAiB,EAAE,OAAA;AAExB,IAAA,IAAIlS,CAAC,CAAC2R,IAAI,KAAK,QAAQ,EAAE;MACvBO,iBAAiB,CAAC0I,KAAK,EAAE,CAAA;AAC3B,KAAA;AAEA,IAAA,IAAI5a,CAAC,CAAC2R,IAAI,KAAK,WAAW,EAAE;AAE1B,MAAA,IAAIiI,YAAY,EAAE;AAEhB;AACAJ,QAAAA,YAAY,CAACL,OAAO,CAAC+B,aAAa,CAACzJ,mBAAmB,CAAC,CAAA;QACvDoI,eAAe,CAAC,KAAK,CAAC,CAAA;QACtBE,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7B,OAAC,MACI;AAEH;QACA9H,0BAA0B,CAACC,iBAAiB,CAAC,CAAA;AAC/C,OAAA;MAEAlS,CAAC,CAAC2B,cAAc,EAAE,CAAA;AACpB,KAAA;AAEA,IAAA,IAAI3B,CAAC,CAAC2R,IAAI,KAAK,OAAO,EAAE;MACtBkI,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,KAAA;AACF,GAAC,EACD,CAAE3H,iBAAiB,EAAE0H,YAAY,CAAE,CACpC,CAAA;AAED,EAAA,MAAMuB,YAAY,GAAGF,iBAAW,CAC7Bjb,CAAC,IAAK;AAEL,IAAA,IAAI,CAACkS,iBAAiB,IAAIwH,aAAa,CAACP,OAAO,CAACuB,QAAQ,CAAC1a,CAAC,CAAC2a,aAAa,CAAC,EAAE,OAAA;IAE3EzI,iBAAiB,CAACE,IAAI,EAAE,CAAA;AAC1B,GAAC,EAAE,CAAEF,iBAAiB,CAAE,CACzB,CAAA;;AAED;AACA,EAAA,MAAMkJ,WAAW,GAAGH,iBAAW,CAC5Bjb,CAAC,IAAK;AAEL,IAAA,IAAI,CAAC4Z,YAAY,IAAI5Z,CAAC,CAAC2a,aAAa,IAAI3a,CAAC,CAAC2a,aAAa,CAACrQ,SAAS,CAACoQ,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAA;AAC7FlB,IAAAA,YAAY,CAACL,OAAO,CAAC+B,aAAa,CAACzJ,mBAAmB,CAAC,CAAA;IACvDoI,eAAe,CAAC,KAAK,CAAC,CAAA;AAExB,GAAC,EAAE,CAAED,YAAY,CAAE,CACpB,CAAA;EAED,MAAMyB,MAAM,GAAI,CAAErN,EAAAA,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAE,CAAO,MAAA,CAAA,CAAA;EAE9C,OAAOwB,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,yBAAyB;AAAA,IAAA,QAAA,EAAA,CACzCpB,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGgN,MAAQ;AACb,MAAA,KAAK,EAAG3R,KAAO;AACf,MAAA,eAAe,EAAG2P,oBAAsB;AACxC,MAAA,QAAQ,EAAGpU,QAAAA;KAAa,CAAA,EAC1BoJ,eAAC,YAAY,EAAA;MACX,GAAG,EAAGA,cAAC,CAAA,YAAY,EAAK,EAAA,CAAA;AACxB,MAAA,QAAQ,EAAGT,QAAU;AACrB,MAAA,OAAO,EAAG8L,aAAe;AACzB,MAAA,QAAQ,EAAGF,YAAc;MAAA,QACzB,EAAAnL,cAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,gBAAgB;AAAC,QAAA,KAAK,EAAG;AAAEiN,UAAAA,KAAK,EAAE,MAAA;SAAU;QAAA,QACrD,EAAAjN,cAAA,CAAA,OAAA,EAAA;AAAO,UAAA,GAAG,EAAGmL,YAAc;AACzB,UAAA,IAAI,EAAC,MAAM;AACX,UAAA,EAAE,EAAG6B,MAAQ;AACb,UAAA,KAAK,EAAG,WAAa;AACrB,UAAA,QAAQ,EAAGzN,QAAU;AACrB,UAAA,WAAW,EAAC,YAAY;AACxB,UAAA,YAAY,EAAC,KAAK;AAClB,UAAA,OAAO,EAAGuN,YAAc;AACxB,UAAA,SAAS,EAAGH,cAAgB;UAC5B,WAAW,EAAIhb,CAAC,IAAK,CAACkS,iBAAiB,CAACC,MAAM,IAAID,iBAAiB,CAACE,IAAI,EAAI;AAC5E,UAAA,MAAM,EAAGgJ,WAAa;AACtB,UAAA,OAAO,EAAIpb,CAAC,IAAK6Z,eAAe,CAAC,IAAI,CAAG;AACxC,UAAA,YAAA,EAAA,IAAA;AAAU,SAAA,CAAA;AAAG,OAAA,CAAA;KAEJ,CAAA,CAAA;GACX,CAAA,CAAA;AAER;;AC5LA,SAASlB,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,gBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,OAAO,EAAE,WAAW;AACtB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,4BAA4B;AACrC,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,CAAC,EAAE,gDAAgD;AACrD,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,CAAC,EAAE,sHAAsH;AAC3H,CAAC,CAAC,CAAC;;ACfH,MAAM4C,oBAAoB,GAAIlhB,KAAK,IAAKA,KAAK,CAAA;AAC7C,MAAMmhB,IAAI,GAAG,MAAM,EAAE,CAAA;AAEN,SAASC,YAAY,CAACtN,KAAK,EAAE;EAE1C,MAAM;AACJyJ,IAAAA,eAAe,GAAG7F,MAAM;AACxB5L,IAAAA,MAAM,GAAG,EAAE;AACXuV,IAAAA,QAAQ,GAAGH,oBAAoB;AAC/BI,IAAAA,eAAe,GAAGH,IAAI;AACtBI,IAAAA,MAAM,GAAG,GAAG;AACZC,IAAAA,gBAAgB,GAAG,YAAY;AAC/BC,IAAAA,iBAAiB,GAAG,CAAA;AACtB,GAAC,GAAG3N,KAAK,CAAA;EAET,MAAM,CAAE4N,YAAY,EAAEC,eAAe,CAAE,GAAG/K,cAAQ,CAAC,KAAK,CAAC,CAAA;EACzD,MAAM,CAAEgL,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGjL,cAAQ,CAAC6K,iBAAiB,CAAC,CAAA;EAC/E,MAAM,CAAEK,eAAe,EAAEC,kBAAkB,CAAE,GAAGnL,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC/D,MAAMoL,iBAAiB,GAAG5C,YAAM,EAAE,CAAA;EAClC,MAAM6C,cAAc,GAAG7C,YAAM,EAAE,CAAA;EAE/B,MAAM8C,WAAW,GAAGlF,aAAO,CAAC,MAAMlR,MAAM,CAACvD,MAAM,GAAGuD,MAAM,CAAC8V,iBAAiB,CAAC,GAAG,IAAI,EAAE,CAAEA,iBAAiB,EAAE9V,MAAM,CAAE,CAAC,CAAA;AAElH,EAAA,MAAMqW,uBAAuB,GAAGvB,iBAAW,CAAEwB,KAAK,IAAK;IACrDP,oBAAoB,CAAClF,CAAC,IAAIjE,IAAI,CAAC5N,GAAG,CAAC4N,IAAI,CAAC3N,GAAG,CAAC,CAAC,EAAE4R,CAAC,GAAGyF,KAAK,CAAC,EAAEtW,MAAM,CAACvD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAChF,GAAC,EAAE,CAAEuD,MAAM,CAACvD,MAAM,CAAE,CAAC,CAAA;AAErByO,EAAAA,eAAS,CAAC,MAAM;IACd,IAAI4K,iBAAiB,KAAK,CAAC,EAAE,OAAA;AAE7B,IAAA,IAAI,CAACA,iBAAiB,IAAI,CAAC9V,MAAM,CAACvD,MAAM,EAAE;MACxCsZ,oBAAoB,CAAC,CAAC,CAAC,CAAA;AACzB,KAAC,MACI,IAAID,iBAAiB,IAAI9V,MAAM,CAACvD,MAAM,EAAE;AAC3CsZ,MAAAA,oBAAoB,CAAC/V,MAAM,CAACvD,MAAM,GAAG,CAAC,CAAC,CAAA;AACzC,KAAA;GACD,EAAE,CAAEqZ,iBAAiB,EAAE9V,MAAM,CAACvD,MAAM,CAAE,CAAC,CAAA;EAExC8U,gBAAgB,CAAC,SAAS,EAAE,MAAM;IAChC,IAAIvR,MAAM,CAACvD,MAAM,EAAE;MACjB4Z,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAA;MAC3BR,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,KAAA;GACD,EAAEpE,eAAe,CAAC,CAAA;EAEnBF,gBAAgB,CAAC,WAAW,EAAE,MAAM;IAClC,IAAIvR,MAAM,CAACvD,MAAM,EAAE;MACjB4Z,uBAAuB,CAAC,CAAC,CAAC,CAAA;MAC1BR,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,KAAA;GACD,EAAEpE,eAAe,CAAC,CAAA;EAEnBF,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC9B,IAAA,IAAI6E,WAAW,EAAE;MACfZ,eAAe,CAACY,WAAW,CAAC,CAAA;AAC9B,KAAA;GACD,EAAE3E,eAAe,CAAC,CAAA;AAEnBvG,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMqL,iBAAiB,GAAGL,iBAAiB,CAAClD,OAAO,CAACrK,QAAQ,CAAA;AAC5D,IAAA,IAAI4N,iBAAiB,CAAC9Z,MAAM,IAAI,CAACmZ,YAAY,EAAE;AAC7CW,MAAAA,iBAAiB,CAACT,iBAAiB,CAAC,CAACU,cAAc,CAAC;AAAEC,QAAAA,KAAK,EAAE,SAAS;AAAEC,QAAAA,MAAM,EAAE,SAAA;AAAU,OAAC,CAAC,CAAA;AAC9F,KAAA;AACF,GAAC,EAAE,CAAEZ,iBAAiB,EAAEF,YAAY,CAAE,CAAC,CAAA;AAEvC1K,EAAAA,eAAS,CAAC,MAAM;IACd+K,kBAAkB,CAAC,IAAI,CAAC,CAAA;GACzB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMU,0BAA0B,GAAG,CAAC3c,KAAK,EAAE4c,UAAU,KAAK;IAExD,MAAMC,eAAe,GAAG,CAACV,cAAc,CAACnD,OAAO,IAAImD,cAAc,CAACnD,OAAO,CAACnC,CAAC,KAAK7W,KAAK,CAAC8c,OAAO,IAAIX,cAAc,CAACnD,OAAO,CAAC+D,CAAC,KAAK/c,KAAK,CAACgd,OAAO,CAAA;AAE3I,IAAA,IAAIH,eAAe,EAAE;MACnBV,cAAc,CAACnD,OAAO,GAAG;QAAEnC,CAAC,EAAE7W,KAAK,CAAC8c,OAAO;QAAEC,CAAC,EAAE/c,KAAK,CAACgd,OAAAA;OAAS,CAAA;MAC/DnB,eAAe,CAAC,IAAI,CAAC,CAAA;MACrBE,oBAAoB,CAACa,UAAU,CAAC,CAAA;AAClC,KAAA;GAED,CAAA;EAED,OAAOtN,eAAA,CAAA,KAAA,EAAA;AACL,IAAA,GAAG,EAAG4M,iBAAmB;IACzB,QAAQ,EAAG,CAAC,CAAG;AACf,IAAA,KAAK,EAAC,kBAAkB;AACxB,IAAA,WAAW,EAAIrc,CAAC,IAAKA,CAAC,CAAC2B,cAAc,EAAI;AACzC,IAAA,KAAK,EAAG;AAAEyb,MAAAA,SAAS,EAAExB,MAAM;AAAEyB,MAAAA,cAAc,EAAElB,eAAe,GAAG,QAAQ,GAAG,MAAA;KAAU;AAAA,IAAA,QAAA,EAAA,CAElFhW,MAAM,CAACvD,MAAM,GAAG,CAAC,IAAIuD,MAAM,CAACuB,GAAG,CAAC,CAAC2I,CAAC,EAAEiN,CAAC,KAAK;MACxC,OACEjP,cAAA,CAAA,KAAA,EAAA;AACE,QAAA,KAAK,EAAGR,UAAU,CAAC,uBAAuB,EAAE;UAAE,SAAS,EAAEoO,iBAAiB,KAAKqB,CAAAA;AAAE,SAAC,CAAG;AACrF,QAAA,WAAW,EAAGvB,YAAY,GAAG5a,SAAS,GAAInB,CAAC,IAAK8c,0BAA0B,CAAC9c,CAAC,EAAEsd,CAAC,CAAG;QAClF,YAAY,EAAGvB,YAAY,GAAG,MAAMG,oBAAoB,CAACoB,CAAC,CAAC,GAAGnc,SAAW;AACzE,QAAA,WAAW,EAAInB,CAAC,IAAK2b,eAAe,CAACtL,CAAC,CAAG;QAAA,QACxCqL,EAAAA,QAAQ,CAACrL,CAAC,CAAA;OACP,CAAA,CAAA;AAEV,KAAC,CAAC,EAGF,CAAClK,MAAM,CAACvD,MAAM,IAAIyL,cAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,wBAAwB;MAAA,QAAGwN,EAAAA,gBAAAA;KAAwB,CAAA,CAAA;GAE9E,CAAA,CAAA;AACR;;AClGe,SAAS0B,UAAU,CAACpP,KAAK,EAAE;EAExC,MAAM;IACJpI,EAAE;IACF2D,KAAK;IACL2P,oBAAoB;IACpBpL,MAAM;IACNhJ,QAAQ;IACR2I,QAAQ;AACR8E,IAAAA,MAAM,GAAG,KAAK;IACd8K,YAAY;IACZ5H,IAAI;AACJ6H,IAAAA,OAAAA;AACF,GAAC,GAAGtP,KAAK,CAAA;EAET,MAAMuP,YAAY,GAAGjE,YAAM,EAAE,CAAA;EAC7B,MAAM,CAAEkE,cAAc,EAAEC,iBAAiB,CAAE,GAAG3M,cAAQ,CAAC,KAAK,CAAC,CAAA;AAC7D,EAAA,MAAM4M,WAAW,GAAGxG,aAAO,CAAC,MAAMmG,YAAY,KAAK,CAAC,EAAE,CAAEA,YAAY,CAAE,CAAC,CAAA;EAEvE,MAAM,CAAEM,QAAQ,EAAEC,WAAW,CAAE,GAAG9M,cAAQ,CAAC,EAAE,CAAC,CAAA;;AAE9C;AACAI,EAAAA,eAAS,CAAC,MAAM;IACd,IAAIuE,IAAI,KAAK,IAAI,EAAE;MACjBmI,WAAW,CAAC,EAAE,CAAC,CAAA;AACf,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMC,oBAAoB,GAAGpI,IAAI,GAAIA,IAAI,GAAG4H,YAAa,CAAA;AACzDO,IAAAA,WAAW,CAACtL,UAAU,CAACC,MAAM,EAAEsL,oBAAoB,CAAC,CAAC,CAAA;IAErD,IAAIA,oBAAoB,IAAIpI,IAAI,EAAE;MAChC6H,OAAO,CAACO,oBAAoB,CAAC,CAAA;AAC/B,KAAA;GAED,EAAE,CAAEpI,IAAI,EAAE6H,OAAO,EAAE/K,MAAM,EAAE8K,YAAY,CAAE,CAAC,CAAA;AAE3C,EAAA,MAAMS,oBAAoB,GAAGhD,iBAAW,CAAEiD,WAAW,IAAK;AAExD,IAAA,MAAMC,aAAa,GAAGD,WAAW,IAAIJ,QAAQ,CAAA;;AAE7C;IACA,IAAI,CAACK,aAAa,EAAE;MAClBV,OAAO,CAAC,IAAI,CAAC,CAAA;AACb,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAM9K,OAAO,GAAGQ,cAAc,CAACgL,aAAa,CAAC,CAAA;;AAE7C;AACA,IAAA,IAAI,CAACxe,gBAAQ,CAACgT,OAAO,CAAC,EAAE;MACtBoL,WAAW,CAAC,EAAE,CAAC,CAAA;MACfN,OAAO,CAAC,IAAI,CAAC,CAAA;AACb,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,MAAMW,gBAAgB,GAAGzL,OAAO,GAAIA,OAAO,GAAG6K,YAAa,CAAA;;AAE3D;AACAO,IAAAA,WAAW,CAACtL,UAAU,CAACC,MAAM,EAAE0L,gBAAgB,CAAC,CAAC,CAAA;IACjDX,OAAO,CAACW,gBAAgB,CAAC,CAAA;GAE1B,EAAE,CAAEN,QAAQ,EAAEN,YAAY,EAAE9K,MAAM,EAAE+K,OAAO,CAAE,CAAC,CAAA;AAE/C,EAAA,MAAMY,WAAW,GAAGhH,aAAO,CAAC,MAAM;AAEhC,IAAA,MAAMiH,YAAY,GAAG,EAAE,GAAG,EAAE,CAAA;IAC5B,MAAMC,aAAa,GAAGxL,IAAI,CAACC,KAAK,CAACsL,YAAY,GAAGd,YAAY,CAAC,CAAA;IAC7D,OAAO,CAAE,GAAGxhB,KAAK,CAACuiB,aAAa,CAAC,CAACC,IAAI,EAAE,CAAE,CAAC9W,GAAG,CAAC+W,aAAa,IAAIhM,UAAU,CAACC,MAAM,EAAE+L,aAAa,GAAGjB,YAAY,CAAC,CAAC,CAAA;AAElH,GAAC,EAAE,CAAEA,YAAY,EAAE9K,MAAM,CAAE,CAAC,CAAA;AAE5B,EAAA,MAAMoJ,iBAAiB,GAAGzE,aAAO,CAAC,MAAM;AAEtC;AACA,IAAA,IAAI,CAACgH,WAAW,IAAI,CAACb,YAAY,EAAE,OAAO,IAAI,CAAA;;AAE9C;AACA,IAAA,IAAI5H,IAAI,EAAE,OAAOA,IAAI,GAAG4H,YAAY,CAAA;AAEpC,IAAA,MAAMkB,SAAS,GAAGvL,cAAc,CAAC2K,QAAQ,CAAC,CAAA;;AAE1C;AACA,IAAA,IAAIY,SAAS,EAAE;AACb,MAAA,MAAMC,gBAAgB,GAAGD,SAAS,GAAGA,SAAS,GAAGlB,YAAY,CAAA;MAC7D,OAAOmB,gBAAgB,GAAGnB,YAAY,CAAA;AACxC,KAAA;;AAEA;IACA,OAAOzK,IAAI,CAACC,KAAK,CAACqL,WAAW,CAACzb,MAAM,GAAG,CAAC,CAAC,CAAA;GAE1C,EAAE,CAAEkb,QAAQ,EAAElI,IAAI,EAAE4H,YAAY,EAAEa,WAAW,CAAE,CAAC,CAAA;EAEjD,MAAMrD,cAAc,GAAIhb,CAAC,IAAK;IAC5B,QAAQA,CAAC,CAAC1C,GAAG;AACb,MAAA,KAAK,SAAS;QACZ0C,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAClB,QAAA,MAAA;AACF,MAAA,KAAK,WAAW;AACdkc,QAAAA,WAAW,IAAID,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACtC5d,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAClB,QAAA,MAAA;AACF,MAAA,KAAK,QAAQ;AACXkc,QAAAA,WAAW,IAAID,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACvC,QAAA,MAAA;AACF,MAAA,KAAK,OAAO;QACV,CAACD,cAAc,IAAIM,oBAAoB,EAAE,CAAA;AACzC,QAAA,MAAA;AAAM,KAAA;GAET,CAAA;EAED,MAAM7C,WAAW,GAAIpb,CAAC,IAAK;IACzB4d,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACxBK,IAAAA,oBAAoB,EAAE,CAAA;GACvB,CAAA;EAED,MAAMW,uBAAuB,GAAIvkB,KAAK,IAAK;IACzCujB,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACxBK,oBAAoB,CAAC5jB,KAAK,CAAC,CAAA;GAC5B,CAAA;EAED,MAAMghB,MAAM,GAAI,CAAErN,EAAAA,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAE,CAAO,MAAA,CAAA,CAAA;EAE9C,OAAOwB,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,yBAAyB;AAAA,IAAA,QAAA,EAAA,CACzCpB,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGgN,MAAQ;AACb,MAAA,KAAK,EAAG3R,KAAO;AACf,MAAA,eAAe,EAAG2P,oBAAsB;AACxC,MAAA,QAAQ,EAAGpU,QAAAA;KAAa,CAAA,EAC1BoJ,eAAC,YAAY,EAAA;MACX,GAAG,EAAGA,cAAC,CAAA,SAAS,EAAK,EAAA,CAAA;AACrB,MAAA,QAAQ,EAAGqP,YAAc;AACzB,MAAA,QAAQ,EAAG9P,QAAU;MAAA,QACrB,EAAA6B,eAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,sCAAsC;QAAA,QAC/C,EAAA,CAAApB,cAAA,CAAA,OAAA,EAAA;AAAO,UAAA,GAAG,EAAGqP,YAAc;AACzB,UAAA,IAAI,EAAC,MAAM;AACX,UAAA,EAAE,EAAGrC,MAAQ;AACb,UAAA,KAAK,EAAC,WAAW;AACjB,UAAA,KAAK,EAAGyC,QAAU;AAClB,UAAA,QAAQ,EAAGlQ,QAAU;AACrB,UAAA,WAAW,EAAG8E,MAAM,GAAG,OAAO,GAAG,UAAY;AAC7C,UAAA,YAAY,EAAC,KAAK;AAClB,UAAA,OAAO,EAAG,MAAMmL,WAAW,IAAID,iBAAiB,CAAC,IAAI,CAAG;AACxD,UAAA,OAAO,EAAG,MAAMC,WAAW,IAAID,iBAAiB,CAAC,IAAI,CAAA;;AAErD;AAAA;UACA,OAAO,EAAI5d,CAAC,IAAK;AAAE+d,YAAAA,WAAW,CAAC/d,CAAC,CAAC4P,MAAM,CAACvV,KAAK,CAAC,CAAA;AAAEwjB,YAAAA,WAAW,IAAID,iBAAiB,CAAC,KAAK,CAAC,CAAA;WAAK;AAC5F,UAAA,MAAM,EAAGxC,WAAa;AACtB,UAAA,SAAS,EAAGJ,cAAgB;AAC5B,UAAA,YAAA,EAAA,IAAA;AAAU,SAAA,CAAG,EAEb2C,cAAc,IAAItP,cAAA,CAAC,YAAY,EAAA;AAC/B,UAAA,MAAM,EAAGgQ,WAAa;AACtB,UAAA,MAAM,EAAG,GAAK;AACd,UAAA,eAAe,EAAGO,uBAAyB;UAC3C,eAAe,EAAGlB,YAAY,CAACvE,OAAS;AACxC,UAAA,iBAAiB,EAAG2C,iBAAAA;SAAsB,CAAA,CAAA;AAAA,OAAA,CAAA;KAGjC,CAAA,CAAA;GACX,CAAA,CAAA;AACR;;ACzJA,MAAMnhB,MAAI,GAAG,UAAU,CAAA;AAER,SAASkkB,QAAQ,CAAC1Q,KAAK,EAAE;EACtC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;IACLwL,QAAQ;AACRtV,IAAAA,KAAK,GAAG,EAAA;AACV,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;IACF+Y,SAAS;IACTC,SAAS;IACT3a,QAAQ,GAAG,EAAE;IACbqS,OAAO;IACP/D,MAAM;IACN4G,mBAAmB;IACnBkE,YAAY;AACZzJ,IAAAA,qBAAAA;AACF,GAAC,GAAG5P,KAAK,CAAA;EAET,MAAM;AAAEc,IAAAA,QAAAA;AAAS,GAAC,GAAGb,QAAQ,CAAA;EAC7B,MAAM;AAAE6J,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,MAAM6P,eAAe,GAAG,OAAO;IAAEjK,IAAI,EAAE,IAAIL,IAAI,CAACA,IAAI,CAAChJ,KAAK,CAAC,IAAI,CAAC,CAAC;AAAEkK,IAAAA,IAAI,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;EAEhF,MAAM,CAAEqJ,QAAQ,EAAEC,WAAW,CAAE,GAAGjO,cAAQ,CAAC+N,eAAe,EAAE,CAAC,CAAA;EAC7D,MAAM,CAAEG,qBAAqB,EAAEC,wBAAwB,CAAE,GAAGnO,cAAQ,CAAC,IAAI,CAAC,CAAA;AAE1E,EAAA,MAAMoO,WAAW,GAAItK,IAAI,IAAKA,IAAI,IAAI,CAACjS,KAAK,CAACiS,IAAI,CAACuB,OAAO,EAAE,CAAC,CAAA;EAC5D,MAAMgJ,WAAW,GAAI1J,IAAI,IAAK,CAAC9S,KAAK,CAAC+H,QAAQ,CAAC+K,IAAI,CAAC,CAAC,CAAA;EAEpD,MAAM2J,aAAa,GAAGlI,aAAO,CAAC,MAAMZ,OAAO,KAAKvO,iBAAiB,CAACC,IAAI,IAAIsO,OAAO,KAAKvO,iBAAiB,CAACG,QAAQ,EAAE,CAAEoO,OAAO,CAAE,CAAC,CAAA;EAC9H,MAAM+I,aAAa,GAAGnI,aAAO,CAAC,MAAMZ,OAAO,KAAKvO,iBAAiB,CAACE,IAAI,IAAIqO,OAAO,KAAKvO,iBAAiB,CAACG,QAAQ,EAAE,CAAEoO,OAAO,CAAE,CAAC,CAAA;AAE9HpF,EAAAA,eAAS,CAAC,MAAM;IAEd,IAAI;MAAE0D,IAAI;AAAEa,MAAAA,IAAAA;KAAM,GAAGoJ,eAAe,EAAE,CAAA;AAEtC,IAAA,QAAQvI,OAAO;MACf,KAAKvO,iBAAiB,CAACC,IAAI;AAAE,QAAA;UAC3B4M,IAAI,GAAG,IAAIL,IAAI,CAACA,IAAI,CAAChJ,KAAK,CAACrR,KAAK,CAAC,CAAC,CAAA;AAClC,UAAA,MAAA;AACF,SAAA;MACA,KAAK6N,iBAAiB,CAACE,IAAI;AAAE,QAAA;AAC3BwN,UAAAA,IAAI,GAAGxB,YAAY,CAAC/Z,KAAK,CAAC,CAAA;AAC1B,UAAA,MAAA;AACF,SAAA;MACA,KAAK6N,iBAAiB,CAACG,QAAQ;AAAE,QAAA;UAC/B0M,IAAI,GAAG,IAAIL,IAAI,CAACA,IAAI,CAAChJ,KAAK,CAACrR,KAAK,CAAC,CAAC,CAAA;AAClCub,UAAAA,IAAI,GAAGyJ,WAAW,CAACtK,IAAI,CAAC,GAAG,EAAE,GAAGA,IAAI,CAACmB,QAAQ,EAAE,GAAGnB,IAAI,CAAC0K,UAAU,EAAE,GAAG,IAAI,CAAA;AAC1E,UAAA,MAAA;AACF,SAAA;AAAC,KAAA;AAEDP,IAAAA,WAAW,CAAC;MAAEnK,IAAI;AAAEa,MAAAA,IAAAA;AAAK,KAAC,CAAC,CAAA;AAE7B,GAAC,EAAE,CAAEa,OAAO,EAAEpc,KAAK,CAAE,CAAC,CAAA;AAEtB,EAAA,MAAMqlB,kBAAkB,GAAGzE,iBAAW,CAAC,CAAC;IAAElG,IAAI;AAAEa,IAAAA,IAAAA;AAAK,GAAC,KAAK;IAEzD,IAAI+J,gBAAgB,GAAG,IAAI,CAAA;IAE3B,IAAIlJ,OAAO,KAAKvO,iBAAiB,CAACC,IAAI,IAAIkX,WAAW,CAACtK,IAAI,CAAC,EAAE;AAC3D4K,MAAAA,gBAAgB,GAAG7K,aAAa,CAACC,IAAI,CAAC,CAAA;AACxC,KAAC,MACI,IAAI0B,OAAO,KAAKvO,iBAAiB,CAACE,IAAI,IAAIkX,WAAW,CAAC1J,IAAI,CAAC,EAAE;AAChE+J,MAAAA,gBAAgB,GAAG7L,aAAa,CAAC8B,IAAI,EAAE,IAAIlB,IAAI,EAAE,CAACC,iBAAiB,EAAE,EAAEZ,qBAAqB,CAAC,CAAA;AAC/F,KAAC,MACI,IAAI0C,OAAO,KAAKvO,iBAAiB,CAACG,QAAQ,IAAIgX,WAAW,CAACtK,IAAI,CAAC,IAAIuK,WAAW,CAAC1J,IAAI,CAAC,EAAE;MACzF+J,gBAAgB,GAAGhK,iBAAiB,CAACZ,IAAI,EAAEa,IAAI,EAAE7B,qBAAqB,CAAC,CAAA;AACzE,KAAA;AAEApE,IAAAA,QAAQ,CAAC;AAAEtV,MAAAA,KAAK,EAAEslB,gBAAgB;AAAExb,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;GAE7C,EAAE,CAAEA,KAAK,EAAEwL,QAAQ,EAAE8G,OAAO,EAAE1C,qBAAqB,CAAE,CAAC,CAAA;AAEvD1C,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI8N,qBAAqB,EAAE;MACzB,IAAIA,qBAAqB,CAACS,WAAW,EAAE;QACrCF,kBAAkB,CAACT,QAAQ,CAAC,CAAA;AAC9B,OAAC,MACI;AACH,QAAA,MAAMY,WAAW,GAAG;AAAE,UAAA,GAAGZ,QAAQ;UAAE,GAAGE,qBAAAA;SAAuB,CAAA;QAC7DD,WAAW,CAACW,WAAW,CAAC,CAAA;QACxBH,kBAAkB,CAACG,WAAW,CAAC,CAAA;AACjC,OAAA;MACAT,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChC,KAAA;GACD,EAAE,CAAEM,kBAAkB,EAAET,QAAQ,EAAEE,qBAAqB,CAAE,CAAC,CAAA;AAE3D9N,EAAAA,eAAS,CAAC,MAAM;AACd+N,IAAAA,wBAAwB,CAAC;AAAEQ,MAAAA,WAAW,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AACjD,GAAC,EAAE,CAAE7L,qBAAqB,CAAE,CAAC,CAAA;AAE7B,EAAA,MAAM+L,SAAS,GAAGzI,aAAO,CAAC,MAAM;IAC9B,IAAIpS,QAAQ,IAAIwR,OAAO,KAAKvO,iBAAiB,CAACG,QAAQ,EAAE,OAAOhE,MAAM,CAAA;AACrE,IAAA,MAAM0b,iBAAiB,GAAIV,WAAW,CAACJ,QAAQ,CAAClK,IAAI,CAAC,IAAI,CAACuK,WAAW,CAACL,QAAQ,CAACrJ,IAAI,CAAC,IAAM,CAACyJ,WAAW,CAACJ,QAAQ,CAAClK,IAAI,CAAC,IAAIuK,WAAW,CAACL,QAAQ,CAACrJ,IAAI,CAAE,CAAA;IACpJ,OAAOmK,iBAAiB,GAAG,CAAE,qCAAqC,EAAE,GAAG1b,MAAM,CAAE,GAAGA,MAAM,CAAA;GACzF,EAAE,CAAEY,QAAQ,EAAEwR,OAAO,EAAEwI,QAAQ,EAAE5a,MAAM,CAAE,CAAC,CAAA;AAE3C,EAAA,MAAMkV,OAAO,GAAG0B,iBAAW,CAAElG,IAAI,IAAK;AACpCqK,IAAAA,wBAAwB,CAAEY,IAAI,IAAMA,IAAI,GAAG;AAAE,MAAA,GAAGA,IAAI;AAAEjL,MAAAA,IAAAA;AAAK,KAAC,GAAG;AAAEA,MAAAA,IAAAA;AAAK,KAAE,CAAC,CAAA;GAC1E,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAM0I,OAAO,GAAGxC,iBAAW,CAAErF,IAAI,IAAK;AACpCwJ,IAAAA,wBAAwB,CAAEY,IAAI,IAAMA,IAAI,GAAG;AAAE,MAAA,GAAGA,IAAI;AAAEpK,MAAAA,IAAAA;AAAK,KAAC,GAAG;AAAEA,MAAAA,IAAAA;AAAK,KAAE,CAAC,CAAA;GAC1E,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMqK,eAAe,GAAG;IACtBla,EAAE;AACF2D,IAAAA,KAAK,EAAEoV,SAAS;IAChBzF,oBAAoB,EAAE,CAAC0F,SAAS;IAChC9Q,MAAM;IACNhJ,QAAQ;IACR2I,QAAQ;IACR0L,mBAAmB;IACnBvE,IAAI,EAAEkK,QAAQ,CAAClK,IAAI;AACnBwE,IAAAA,OAAAA;GACD,CAAA;AAED,EAAA,MAAM2G,eAAe,GAAG;IACtBna,EAAE;AACF2D,IAAAA,KAAK,EAAEqV,SAAS;IAChB1F,oBAAoB,EAAE,CAACyF,SAAS;IAChC7Q,MAAM;IACNhJ,QAAQ;IACR2I,QAAQ;IACR8E,MAAM;IACN8K,YAAY;IACZ5H,IAAI,EAAEqJ,QAAQ,CAACrJ,IAAI;AACnB6H,IAAAA,OAAAA;GACD,CAAA;EAED,OAAOhO,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,MAAI,EAAE;AAAE0J,MAAAA,MAAM,EAAEyb,SAAS;AAAElS,MAAAA,QAAAA;AAAS,KAAC,CAAG;IAAA,QAC3E,EAAA,CAAA6B,eAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAG5B,UAAU,CAAC,oBAAoB,CAAG;MAAA,QAC3C0R,EAAAA,CAAAA,aAAa,IAAIlR,cAAA,CAAC,UAAU,EAAA;QAAA,GAAM4R,eAAAA;AAAe,OAAA,CAAK,EACtDT,aAAa,IAAID,aAAa,IAAIlR,cAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,wBAAA;AAAwB,OAAA,CAAG,EACxEmR,aAAa,IAAInR,cAAA,CAAC,UAAU,EAAA;QAAA,GAAM6R,eAAAA;OAAoB,CAAA,CAAA;KACpD,CAAA,EACN7R,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGyR,SAAAA;KAAc,CAAA,CAAA;GAC3B,CAAA,CAAA;AACR,CAAA;AAEAjB,QAAQ,CAACvQ,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,KAAK;EAElC,MAAMyc,QAAQ,GAAG,EAAE,CAAA;EACnBgJ,WAAG,CAAChJ,QAAQ,EAAEvO,qBAAqB,EAAEV,iBAAiB,CAACC,IAAI,CAAC,CAAA;AAC5DgY,EAAAA,WAAG,CAAChJ,QAAQ,EAAEtO,eAAe,EAAE,MAAM,CAAC,CAAA;EAEtC,OAAO;AAAE,IAAA,GAAGsO,QAAQ;IAAE,GAAGzc,OAAAA;GAAS,CAAA;AACpC,CAAC,CAAA;AAEDmkB,QAAQ,CAAClkB,IAAI,GAAGA,MAAI,CAAA;AACpBkkB,QAAQ,CAACtQ,KAAK,GAAG,IAAI,CAAA;AACrBsQ,QAAQ,CAACpR,UAAU,GAAG,IAAI,CAAA;AAC1BoR,QAAQ,CAACtR,aAAa,GAAGiJ,2BAA2B,CAAA;AACpDqI,QAAQ,CAACnV,KAAK,GAAG,WAAW,CAAA;AAC5BmV,QAAQ,CAACrQ,KAAK,GAAG,aAAa;;ACpL9B;AACA;AACA;AACA;AACA;AAKA,SAAS4R,IAAI,GAAG;EACd,OAAO3Q,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,4BAA4B;AAAC,IAAA,OAAO,EAAC,gBAAgB;AAAC,IAAA,KAAK,EAAC,IAAI;AAAC,IAAA,MAAM,EAAC,IAAI;AAAC,IAAA,KAAK,EAAC,uBAAuB;IAAA,QAAC,EAAA,CAAApB,cAAA,CAAA,MAAA,EAAA;AAAM,MAAA,IAAI,EAAC,cAAc;AAAC,MAAA,CAAC,EAAC,qpBAAA;KAAwpB,CAAA,EAAAA,cAAA,CAAA,MAAA,EAAA;AAAM,MAAA,IAAI,EAAC,cAAc;AAAC,MAAA,CAAC,EAAC,gEAAA;KAAmE,CAAA,CAAA;GAAM,CAAA,CAAA;AACx5B,CAAA;AAEA,SAASgS,QAAQ,CAAClS,KAAK,EAAE;EACvB,MAAM;AAAEiE,IAAAA,IAAAA;AAAK,GAAC,GAAGjE,KAAK,CAAA;EAEtB,IAAI,CAACiE,IAAI,EAAE;AACT,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OACE3C,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,yBAAyB;AAAC,IAAA,KAAK,EAAC,oEAAoE;IAAA,QAC7G,EAAA,CAAApB,cAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,UAAU;AAAC,MAAA,KAAK,EAAC,6DAA6D;MAAC,OAAO,EAAGF,KAAK,CAACmS,eAAAA;AAAiB,KAAA,CAAO,EAClI7Q,eAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,QAAQ;AAAC,MAAA,KAAK,EAAC,4PAA4P;MAAA,QACpR,EAAA,CAAApB,cAAA,CAAA,GAAA,EAAA;AAAG,QAAA,IAAI,EAAC,iBAAiB;AAAC,QAAA,MAAM,EAAC,QAAQ;AAAC,QAAA,GAAG,EAAC,UAAU;AAAC,QAAA,KAAK,EAAC,iEAAiE;AAAA,QAAA,QAAA,EAC9HA,eAAC,IAAI,EAAA,EAAA,CAAA;AAAG,OAAA,CACN,EACJoB,eAAA,CAAA,MAAA,EAAA;QAAA,QAEa,EAAA,CAAA,wDAAA,EAAApB,cAAA,CAAA,GAAA,EAAA;AAAG,UAAA,IAAI,EAAC,iBAAiB;AAAC,UAAA,MAAM,EAAC,QAAQ;AAAC,UAAA,GAAG,EAAC,UAAU;AAAA,UAAA,QAAA,EAAA,SAAA;SAAY,CAAA,EAAA,GAAA,CAAA;OAC1E,CAAA,CAAA;KACH,CAAA,CAAA;GACF,CAAA,CAAA;AAEV,CAAA;AAEA,SAASkS,IAAI,CAACpS,KAAK,EAAE;EACnB,OACEE,cAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,+BAA+B;AAAC,IAAA,KAAK,EAAC,mBAAmB;IAAA,QAClE,EAAAA,cAAA,CAAA,GAAA,EAAA;AAAG,MAAA,IAAI,EAAC,iBAAiB;AAAC,MAAA,MAAM,EAAC,QAAQ;AAAC,MAAA,GAAG,EAAC,UAAU;AAAC,MAAA,KAAK,EAAC,qBAAqB;AAAC,MAAA,KAAK,EAAC,oBAAoB;AAAC,MAAA,KAAK,EAAC,gBAAgB;MAAC,OAAO,EAAGF,KAAK,CAACqS,OAAS;AAAA,MAAA,QAAA,EAACnS,eAAC,IAAI,EAAA,EAAA,CAAA;AAAG,KAAA,CAAA;GACrK,CAAA,CAAA;AAEV,CAAA;AAEe,SAASoS,SAAS,CAACtS,KAAK,EAAE;EAEvC,MAAM,CAAEiE,IAAI,EAAEsO,OAAO,CAAE,GAAGzP,cAAQ,CAAC,KAAK,CAAC,CAAA;EAEzC,SAAS0P,UAAU,CAACvO,IAAI,EAAE;AACxB,IAAA,OAAQjS,KAAK,IAAK;MAChBA,KAAK,CAACwB,cAAc,EAAE,CAAA;MAEtB+e,OAAO,CAACtO,IAAI,CAAC,CAAA;KACd,CAAA;AACH,GAAA;AAEA,EAAA,OACE3C,gBAACmR,eAAQ,EAAA;IAAA,QAELC,EAAAA,CAAAA,kBAAY,CACVxS,cAAA,CAAC,QAAQ,EAAA;AAAC,MAAA,IAAI,EAAG+D,IAAM;MAAC,eAAe,EAAGuO,UAAU,CAAC,KAAK,CAAA;AAAG,KAAA,CAAG,EAChEvW,QAAQ,CAAC0W,IAAI,CACd,EAEHzS,eAAC,IAAI,EAAA;MAAC,OAAO,EAAGsS,UAAU,CAAC,IAAI,CAAA;KAAM,CAAA,CAAA;GAC5B,CAAA,CAAA;AAEf;;AC7DA,MAAM1I,IAAI,GAAG,MAAM,EAAE,CAAA;AAEN,SAAS8I,aAAa,CAAC5S,KAAK,EAAE;AAC3C,EAAA,MAAMgK,IAAI,GAAG1H,UAAU,CAAC,MAAM,CAAC,CAAA;EAE/B,MAAM;AAAE5E,IAAAA,MAAAA;AAAO,GAAC,GAAGsM,IAAI,CAAC/G,SAAS,EAAE,CAAA;EAEnC,MAAM;AACJ4P,IAAAA,QAAQ,GAAG/I,IAAI;AACfgJ,IAAAA,OAAO,GAAGhJ,IAAI;AACdtI,IAAAA,QAAQ,GAAGsI,IAAAA;AACb,GAAC,GAAG9J,KAAK,CAAA;EAET,MAAM+S,YAAY,GAAI/gB,KAAK,IAAK;IAC9BA,KAAK,CAACwB,cAAc,EAAE,CAAA;AAEtBqf,IAAAA,QAAQ,EAAE,CAAA;GACX,CAAA;EAED,MAAMG,WAAW,GAAIhhB,KAAK,IAAK;IAC7BA,KAAK,CAACwB,cAAc,EAAE,CAAA;AAEtBsf,IAAAA,OAAO,EAAE,CAAA;GACV,CAAA;EAED,OACExR,eAAA,CAAA,MAAA,EAAA;AACE,IAAA,KAAK,EAAC,UAAU;AAChB,IAAA,QAAQ,EAAGyR,YAAc;AACzB,IAAA,OAAO,EAAGC,WAAa;IACvB,UAAU,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,CAEV9S,eAAC,SAAS,EAAA;AACR,MAAA,KAAK,EAAGxC,MAAQ;AAChB,MAAA,QAAQ,EAAG8D,QAAAA;KACX,CAAA,EAEFtB,cAAC,CAAA,SAAS,EAAG,EAAA,CAAA,CAAA;GACR,CAAA,CAAA;AAEX;;AC9CA,MAAM+S,cAAc,GAAG,CAAC;AAClBC,EAAAA,iBAAiB,GAAG,CAAC,CAAA;AAE3B,MAAMC,aAAa,GAAG,CACpB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,GAAG,EACH,GAAG,EACH,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,QAAQ,CACT,CAAA;AAED,MAAMC,kBAAkB,GAAG,CACzB,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,CACN,CAAA;AAED,MAAMC,mBAAmB,GAAG,uFAAuF,CAAC;AACpH,MAAMC,yBAAyB,GAAG,oBAAoB,CAAC;AACvD,MAAMC,uBAAuB,GAAG,6DAA6D,CAAC;;AAE9F,MAAMC,YAAY,GAAGvX,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC,CAAA;;AAEnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,SAASuX,YAAY,CAACC,IAAI,EAAE;AAEjC,EAAA,MAAMC,GAAG,GAAG,IAAIC,SAAS,EAAE,CAACC,eAAe,CACxC,CAAqCH,kCAAAA,EAAAA,IAAM,CAAC,CAAA,EAC7C,WAAW,CACZ,CAAA;EAEDC,GAAG,CAACG,SAAS,EAAE,CAAA;AAEf,EAAA,MAAMC,OAAO,GAAGJ,GAAG,CAAChB,IAAI,CAACqB,UAAU,CAAA;AAEnC,EAAA,IAAID,OAAO,EAAE;IACXE,YAAY,sBAAuBF,OAAO,CAAE,CAAA;AAE5C,IAAA,OAAO,IAAIG,aAAa,EAAE,CAACC,iBAAiB,CAACJ,OAAO,CAAC,CAAA;AACvD,GAAC,MAAM;AAEL;AACA;AACA,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,mBAAmB,CAACC,GAAG,EAAE;AACvC,EAAA,MAAMC,KAAK,GAAGhB,yBAAyB,CAACnlB,IAAI,CAACkmB,GAAG,CAAC,CAAA;AAEjD,EAAA,OAAOC,KAAK,GAAGD,GAAG,GAAG,EAAE,CAAA;AACzB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASJ,YAAY,CAAC1mB,IAAI,EAAE;AAE1B;AACA,EAAA,IAAIA,IAAI,CAACgnB,QAAQ,KAAKtB,cAAc,EAAE;AACpC,IAAA,OAAA;AACF,GAAA;;AAEA;AACA,EAAA,IAAI1lB,IAAI,CAACgnB,QAAQ,KAAKrB,iBAAiB,EAAE;IACvC,OAAO3lB,IAAI,CAACsK,MAAM,EAAE,CAAA;AACtB,GAAA;AAEA,EAAA,MAAM2c,KAAK,GAAGjnB,IAAI,CAACknB,OAAO,CAACtP,WAAW,EAAE,CAAA;;AAExC;AACA,EAAA,IAAI,CAACgO,aAAa,CAAC/d,QAAQ,CAACof,KAAK,CAAC,EAAE;IAClC,OAAOjnB,IAAI,CAACsK,MAAM,EAAE,CAAA;AACtB,GAAA;AAEA,EAAA,MAAM6c,UAAU,GAAGnnB,IAAI,CAACmnB,UAAU,CAAA;;AAElC;EACA,KAAK,IAAIvF,CAAC,GAAGuF,UAAU,CAACjgB,MAAM,EAAE0a,CAAC,EAAE,GAAG;AACpC,IAAA,MAAMwF,SAAS,GAAGD,UAAU,CAACvF,CAAC,CAAC,CAAA;AAE/B,IAAA,MAAM3hB,IAAI,GAAGmnB,SAAS,CAACnnB,IAAI,CAAA;AAC3B,IAAA,MAAMonB,MAAM,GAAGpnB,IAAI,CAAC2X,WAAW,EAAE,CAAA;;AAEjC;AACA,IAAA,MAAMjZ,KAAK,GAAGyoB,SAAS,CAACzoB,KAAK,CAACgL,IAAI,EAAE,CAAA;AAEpC3J,IAAAA,IAAI,CAACsnB,eAAe,CAACrnB,IAAI,CAAC,CAAA;IAE1B,MAAM8mB,KAAK,GAAGQ,gBAAgB,CAACN,KAAK,EAAEI,MAAM,EAAE1oB,KAAK,CAAC,CAAA;AAEpD,IAAA,IAAIooB,KAAK,EAAE;AACT/mB,MAAAA,IAAI,CAACwnB,YAAY,CAACvnB,IAAI,EAAEtB,KAAK,CAAC,CAAA;AAChC,KAAA;AAEF,GAAA;;AAEA;EACA,IAAIsoB,KAAK,KAAK,GAAG,IAAIjnB,IAAI,CAACynB,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAIznB,IAAI,CAACynB,YAAY,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE;AACxGznB,IAAAA,IAAI,CAACwnB,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;AACtC,GAAA;EAEA,KAAK,IAAI5F,CAAC,GAAG5hB,IAAI,CAAC0nB,UAAU,CAACxgB,MAAM,EAAE0a,CAAC,EAAE,GAAG;IACzC8E,YAAY,sBAAuB1mB,IAAI,CAAC0nB,UAAU,CAAC9F,CAAC,CAAC,CAAE,CAAA;AACzD,GAAA;AACF,CAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2F,gBAAgB,CAACN,KAAK,EAAEI,MAAM,EAAE1oB,KAAK,EAAE;AAE9C;AACA,EAAA,IAAI,CAACknB,kBAAkB,CAAChe,QAAQ,CAACwf,MAAM,CAAC,EAAE;AACxC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;;AAEA;AACA,EAAA,IAAI,CAACA,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,MAAM,MAAM1oB,KAAK,IAAI+P,QAAQ,IAAI/P,KAAK,IAAIsnB,YAAY,CAAC,EAAE;AAC1F,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,IAAIoB,MAAM,KAAK,QAAQ,IAAI1oB,KAAK,KAAK,QAAQ,EAAE;AAC7C,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;;AAEA;AACA,EAAA,IAAI0oB,MAAM,KAAK,MAAM,IAAI,CAACvB,mBAAmB,CAACllB,IAAI,CAACjC,KAAK,CAACgJ,OAAO,CAACqe,uBAAuB,EAAE,EAAE,CAAC,CAAC,EAAE;AAC9F,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACb;;ACvLA,SAAS/I,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,uBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,OAAO,EAAE,eAAe;AAC1B,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,cAAc,EAAE,OAAO;AACzB,EAAE,gBAAgB,EAAE,GAAG;AACvB,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,CAAC,EAAE,mBAAmB;AACxB,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,CAAC,EAAE,2EAA2E;AAChF,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,CAAC,EAAE,8CAA8C;AACnD,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/C,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,SAAS,EAAE,kBAAkB;AAC/B,CAAC,CAAC,CAAC;;ACfH,MAAMhe,MAAI,GAAG,OAAO,CAAA;AAGL,SAAS0oB,KAAK,CAAClV,KAAK,EAAE;EACnC,MAAM;AACJhK,IAAAA,KAAAA;AACF,GAAC,GAAGgK,KAAK,CAAA;EAET,MAAM;IACJmV,GAAG;IACHvd,EAAE;AACF6D,IAAAA,MAAAA;AACF,GAAC,GAAGzF,KAAK,CAAA;AAGT,EAAA,MAAMof,oBAAoB,GAAG9L,uBAAuB,CAAC7N,MAAM,CAAC,CAAA;AAE5D,EAAA,MAAM4Z,UAAU,GAAGnM,aAAO,CAAC,MAAMkL,mBAAmB,CAACgB,oBAAoB,CAAC,EAAE,CAAEA,oBAAoB,CAAE,CAAC,CAAA;AAErG,EAAA,MAAME,OAAO,GAAGhM,uBAAuB,CAAC6L,GAAG,CAAC,CAAA;EAE5C,MAAM;AAAErV,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOd,cAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAGV,gBAAgB,CAAChT,MAAI,CAAG;IAAA,QAC1C,EAAA8U,eAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,qBAAqB;AAAA,MAAA,QAAA,EAAA,CAE5B+T,UAAU,IACVnV,cAAA,CAAA,KAAA,EAAA;AACE,QAAA,GAAG,EAAGoV,OAAS;AACf,QAAA,GAAG,EAAGD,UAAY;AAClB,QAAA,KAAK,EAAC,WAAW;AACjB,QAAA,EAAE,EAAGxV,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAA;OAAM,CAAA,EAEhC,CAACuV,UAAU,IACXnV,cAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,uBAAuB;AAAA,QAAA,QAAA,EAChCA,eAAC,gBAAgB,EAAA;AAAC,UAAA,GAAG,EAAC,8BAAA;AAA8B,SAAA,CAAA;OAChD,CAAA,CAAA;AAAA,KAAA,CAAA;GAGN,CAAA,CAAA;AACR,CAAA;AAEAgV,KAAK,CAAC/U,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;EAChC,GAAGA,OAAAA;AACL,CAAC,CAAC,CAAA;AAEF2oB,KAAK,CAAC1oB,IAAI,GAAGA,MAAI,CAAA;AACjB0oB,KAAK,CAAC9U,KAAK,GAAG,KAAK,CAAA;AACnB8U,KAAK,CAAC3Z,KAAK,GAAG,YAAY,CAAA;AAC1B2Z,KAAK,CAAC7U,KAAK,GAAG,cAAc;;AC/D5B,SAASmK,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,oBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,MAAM,EAAE,cAAc;AACxB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,CAAC,EAAE,0DAA0D;AAC/D,CAAC,CAAC,CAAC;;AChBH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,kBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,MAAM,EAAE,cAAc;AACxB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,CAAC,EAAE,0DAA0D;AAC/D,CAAC,CAAC,CAAC;;ACSH,MAAMhe,MAAI,GAAG,QAAQ,CAAA;AAGN,SAAS+oB,WAAW,CAACvV,KAAK,EAAE;EACzC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;IACL9J,KAAK;AACLsV,IAAAA,QAAAA;AACF,GAAC,GAAGxB,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;IACF2D,KAAK;IACLia,UAAU,GAAG,EAAE;IACfvf,QAAQ,GAAG,EAAE;IACbhB,aAAa;AACbkf,IAAAA,iBAAiB,GAAG,KAAK;AACzBhe,IAAAA,SAAS,EAAEsf,cAAAA;AACb,GAAC,GAAGzf,KAAK,CAAA;EAET,MAAM;IACJ0f,aAAa;AACbC,IAAAA,aAAAA;AACF,GAAC,GAAGH,UAAU,CAAA;EAEd,MAAM;AAAE1e,IAAAA,QAAAA;AAAS,GAAC,GAAGb,QAAQ,CAAA;EAE7B,MAAM4U,QAAQ,GAAGS,YAAM,EAAE,CAAA;EAEzB,MAAM,CAAEsK,gBAAgB,EAAEC,mBAAmB,CAAE,GAAG/S,cAAQ,CAAC,EAAE,CAAC,CAAA;;AAE9D;AACA;EACA,MAAMgT,sBAAsB,GAAG5M,aAAO,CAAC,MAAMqM,WAAW,CAACnW,aAAa,CAAC;IAAElT,KAAK;AAAE0D,IAAAA,SAAS,EAAEoG,KAAAA;AAAM,GAAC,CAAC,KAAKuf,WAAW,CAACnW,aAAa,CAAC;AAAElT,IAAAA,KAAK,EAAE0pB,gBAAgB;AAAEhmB,IAAAA,SAAS,EAAEoG,KAAAA;GAAO,CAAC,EAAE,CAAE4f,gBAAgB,EAAE1pB,KAAK,EAAE8J,KAAK,CAAE,CAAC,CAAA;AAErN,EAAA,MAAM+f,YAAY,GAAG7M,aAAO,CAAC,MAAM;AAEjC,IAAA,IAAIhd,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAA;AACjC,IAAA,IAAI0pB,gBAAgB,KAAK,GAAG,EAAE,OAAO,GAAG,CAAA;AACxC,IAAA,OAAOE,sBAAsB,GAAGF,gBAAgB,GAAK1pB,KAAK,IAAIA,KAAK,KAAK,CAAC,GAAImI,GAAG,CAACnI,KAAK,CAAC,CAACqI,OAAO,EAAE,GAAG,EAAG,CAAA;GAExG,EAAE,CAAEqhB,gBAAgB,EAAE1pB,KAAK,EAAE4pB,sBAAsB,CAAE,CAAC,CAAA;AAEvD,EAAA,MAAME,mBAAmB,GAAG9M,aAAO,CAAC,MAAM;AAExC,IAAA,IAAIuM,cAAc,EAAE,OAAOphB,GAAG,CAACohB,cAAc,CAAC,CAAA;IAC9C,IAAIxgB,aAAa,EAAE,OAAOZ,GAAG,CAAE,CAAKY,GAAAA,EAAAA,aAAc,EAAC,CAAC,CAAA;IACpD,OAAOZ,GAAG,CAAC,GAAG,CAAC,CAAA;AAEjB,GAAC,EAAE,CAAEY,aAAa,EAAEwgB,cAAc,CAAE,CAAC,CAAA;AAGrC,EAAA,MAAMQ,QAAQ,GAAGnJ,iBAAW,CAAEoJ,WAAW,IAAK;AAE5C,IAAA,IAAIvgB,qBAAqB,CAACugB,WAAW,CAAC,EAAE;MACtCL,mBAAmB,CAAC,EAAE,CAAC,CAAA;AACvBrU,MAAAA,QAAQ,CAAC;QAAExL,KAAK;AAAE9J,QAAAA,KAAK,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAChC,MAAA,OAAA;AACF,KAAA;;AAEA;IACAgqB,WAAW,GAAGA,WAAW,CAACC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAE9C,IAAID,WAAW,KAAK,GAAG,EAAE;MACvBL,mBAAmB,CAAC,GAAG,CAAC,CAAA;AACxB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIlhB,KAAK,CAACC,MAAM,CAACshB,WAAW,CAAC,CAAC,EAAE;MAC9BL,mBAAmB,CAAC,KAAK,CAAC,CAAA;AAC1BrU,MAAAA,QAAQ,CAAC;QAAExL,KAAK;AAAE9J,QAAAA,KAAK,EAAE,KAAA;AAAM,OAAC,CAAC,CAAA;AACjC,MAAA,OAAA;AACF,KAAA;IAEA2pB,mBAAmB,CAACK,WAAW,CAAC,CAAA;AAChC1U,IAAAA,QAAQ,CAAC;MAAExL,KAAK;AAAE9J,MAAAA,KAAK,EAAEioB,iBAAiB,GAAG+B,WAAW,GAAGthB,MAAM,CAACshB,WAAW,CAAA;AAAE,KAAC,CAAC,CAAA;GAElF,EAAE,CAAElgB,KAAK,EAAEwL,QAAQ,EAAE2S,iBAAiB,CAAE,CAAC,CAAA;EAE1C,MAAMhe,SAAS,GAAG,MAAM;AACtB,IAAA,MAAMigB,IAAI,GAAG1hB,aAAa,CAACxI,KAAK,CAAC,GAAGmI,GAAG,CAACnI,KAAK,CAAC,GAAGmI,GAAG,CAAC,CAAC,CAAC,CAAA;AACvD,IAAA,MAAMgiB,gBAAgB,GAAGD,IAAI,CAAC3f,KAAK,CAAC2f,IAAI,CAAC7f,GAAG,CAACyf,mBAAmB,CAAC,CAAC,CAAA;;AAElE;IACAC,QAAQ,CAACI,gBAAgB,CAAC1f,IAAI,CAACqf,mBAAmB,CAAC,CAACzhB,OAAO,EAAE,CAAC,CAAA;GAC/D,CAAA;EAED,MAAM+hB,SAAS,GAAG,MAAM;AACtB,IAAA,MAAMF,IAAI,GAAG1hB,aAAa,CAACxI,KAAK,CAAC,GAAGmI,GAAG,CAACnI,KAAK,CAAC,GAAGmI,GAAG,CAAC,CAAC,CAAC,CAAA;AACvD,IAAA,MAAMiC,MAAM,GAAG8f,IAAI,CAAC7f,GAAG,CAACyf,mBAAmB,CAAC,CAAA;IAE5C,IAAI1f,MAAM,CAACE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAEvB;MACAyf,QAAQ,CAACG,IAAI,CAAC3f,KAAK,CAACuf,mBAAmB,CAAC,CAACzhB,OAAO,EAAE,CAAC,CAAA;AACrD,KAAC,MACI;AAEH;AACA,MAAA,MAAM8hB,gBAAgB,GAAGD,IAAI,CAAC3f,KAAK,CAAC2f,IAAI,CAAC7f,GAAG,CAACyf,mBAAmB,CAAC,CAAC,CAAA;AAClEC,MAAAA,QAAQ,CAACI,gBAAgB,CAAC9hB,OAAO,EAAE,CAAC,CAAA;AACtC,KAAA;GACD,CAAA;EAED,MAAMgiB,SAAS,GAAI1kB,CAAC,IAAK;AAEvB;AACA,IAAA,IAAI3F,KAAK,KAAK,KAAK,KAAK2F,CAAC,CAAC2R,IAAI,KAAK,WAAW,IAAI3R,CAAC,CAAC2R,IAAI,KAAK,QAAQ,CAAC,EAAE;MACtEyS,QAAQ,CAAC,IAAI,CAAC,CAAA;MACdpkB,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAClB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI3B,CAAC,CAAC2R,IAAI,KAAK,SAAS,EAAE;AACxBrN,MAAAA,SAAS,EAAE,CAAA;MACXtE,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAClB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI3B,CAAC,CAAC2R,IAAI,KAAK,WAAW,EAAE;AAC1B8S,MAAAA,SAAS,EAAE,CAAA;MACXzkB,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAClB,MAAA,OAAA;AACF,KAAA;GAED,CAAA;;AAED;EACA,MAAMgjB,UAAU,GAAI3kB,CAAC,IAAK;AACxB,IAAA,MAAMkD,UAAU,GAAG8V,QAAQ,CAACG,OAAO,CAACyL,cAAc,CAAA;AAClD,IAAA,MAAMzhB,cAAc,GAAG6V,QAAQ,CAACG,OAAO,CAACyL,cAAc,GAAG5L,QAAQ,CAACG,OAAO,CAAC0L,YAAY,CAAA;AACtF,IAAA,MAAM5hB,aAAa,GAAG+V,QAAQ,CAACG,OAAO,CAAC9e,KAAK,CAAA;AAE5C,IAAA,IAAI,CAAC2I,yBAAyB,CAAChD,CAAC,CAAC1C,GAAG,EAAE2F,aAAa,EAAEC,UAAU,EAAEC,cAAc,EAAEC,aAAa,CAAC,EAAE;MAC/FpD,CAAC,CAAC2B,cAAc,EAAE,CAAA;AACpB,KAAA;GACD,CAAA;EAED,MAAM;AAAEsM,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOM,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAChES,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGL,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,MAAA,KAAK,EAAGvE,KAAO;AACf,MAAA,QAAQ,EAAGzE,QAAAA;KAAa,CAAA,EAC1BoJ,eAAC,YAAY,EAAA;AAAC,MAAA,QAAQ,EAAGT,QAAU;AAAC,MAAA,GAAG,EAAGiW,aAAe;AAAC,MAAA,IAAI,EAAGC,aAAe;MAAA,QAC9E,EAAArU,eAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAG5B,UAAU,CAAC,oBAAoB,EAAE;AAAE,UAAA,cAAc,EAAED,QAAAA;AAAS,SAAC,EAAE;UAAE,WAAW,EAAEvJ,MAAM,CAACzB,MAAAA;AAAO,SAAC,CAAG;QAAA,QAC3G,EAAA,CAAAyL,cAAA,CAAA,OAAA,EAAA;AACE,UAAA,GAAG,EAAG2K,QAAU;AAChB,UAAA,KAAK,EAAC,WAAW;AACjB,UAAA,QAAQ,EAAGpL,QAAU;AACrB,UAAA,EAAE,EAAGI,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,UAAA,SAAS,EAAGyW,SAAW;AACvB,UAAA,UAAU,EAAGC,UAAAA;;AAEb;AAAA;UACA,OAAO,EAAI3kB,CAAC,IAAKokB,QAAQ,CAACpkB,CAAC,CAAC4P,MAAM,CAACvV,KAAK,CAAG;AAC3C,UAAA,IAAI,EAAC,MAAM;AACX,UAAA,YAAY,EAAC,KAAK;AAClB,UAAA,IAAI,EAAG8pB,mBAAqB;AAC5B,UAAA,KAAK,EAAGD,YAAAA;AAAc,SAAA,CAAG,EAC3BzU,eAAA,CAAA,KAAA,EAAA;AAAK,UAAA,KAAK,EAAG5B,UAAU,CAAC,4BAA4B,EAAE;AAAE,YAAA,cAAc,EAAED,QAAAA;AAAS,WAAC,CAAG;UAAA,QAEnF,EAAA,CAAAS,cAAA,CAAA,QAAA,EAAA;AACE,YAAA,KAAK,EAAC,qBAAqB;AAC3B,YAAA,IAAI,EAAC,QAAQ;AACb,YAAA,YAAA,EAAW,WAAW;YACtB,OAAO,EAAG,MAAM/J,SAAS,EAAI;YAC7B,QAAQ,EAAG,CAAC,CAAG;AAAA,YAAA,QAAA,EAAC+J,eAAC,WAAW,EAAA,EAAA,CAAA;AAAG,WAAA,CAAS,EAC1CA,cAAA,CAAA,KAAA,EAAA;AAAK,YAAA,KAAK,EAAC,4BAAA;AAA4B,WAAA,CAAG,EAC1CA,cAAA,CAAA,QAAA,EAAA;AACE,YAAA,KAAK,EAAC,uBAAuB;AAC7B,YAAA,IAAI,EAAC,QAAQ;AACb,YAAA,YAAA,EAAW,WAAW;YACtB,OAAO,EAAG,MAAMoW,SAAS,EAAI;YAC7B,QAAQ,EAAG,CAAC,CAAG;AAAA,YAAA,QAAA,EAACpW,eAAC,aAAa,EAAA,EAAA,CAAA;WAAY,CAAA,CAAA;SACxC,CAAA,CAAA;AAAA,OAAA,CAAA;KAEK,CAAA,EACfA,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEAqf,WAAW,CAACpV,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;EACtC,GAAGA,OAAAA;AACL,CAAC,CAAC,CAAA;AAEFgpB,WAAW,CAACnW,aAAa,GAAG,CAAC;EAAElT,KAAK;AAAE0D,EAAAA,SAAAA;AAAU,CAAC,KAAK;AAEpD;AACA,EAAA,IAAI+F,qBAAqB,CAACzJ,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;;AAE7C;AACA,EAAA,IAAI,CAACwI,aAAa,CAACxI,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;;AAEvC;AACA,EAAA,OAAO0D,SAAS,CAACukB,iBAAiB,GAAGjoB,KAAK,CAACoI,QAAQ,EAAE,GAAGM,MAAM,CAAC1I,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAEDqpB,WAAW,CAAC/oB,IAAI,GAAGA,MAAI,CAAA;AACvB+oB,WAAW,CAACnV,KAAK,GAAG,IAAI,CAAA;AACxBmV,WAAW,CAACha,KAAK,GAAG,QAAQ,CAAA;AAC5Bga,WAAW,CAACjW,UAAU,GAAG,IAAI,CAAA;AAC7BiW,WAAW,CAAClV,KAAK,GAAG,aAAa;;ACzNjC,MAAM7T,MAAI,GAAG,OAAO,CAAA;AAGL,SAASmqB,KAAK,CAAC3W,KAAK,EAAE;EACnC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;AACL9J,IAAAA,KAAAA;AACF,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;IACF2D,KAAK;AACLtF,IAAAA,QAAQ,GAAG,EAAC;AACd,GAAC,GAAGD,KAAK,CAAA;EAET,MAAM;AAAEc,IAAAA,QAAAA;AAAS,GAAC,GAAGb,QAAQ,CAAA;EAE7B,MAAMuL,QAAQ,GAAIU,CAAC,IAAK;IACtBlC,KAAK,CAACwB,QAAQ,CAAC;MACbxL,KAAK;AACL9J,MAAAA,KAAK,EAAEgW,CAAAA;AACT,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAM;AACJa,IAAAA,KAAK,EAAE+F,SAAS;AAChB9Q,IAAAA,MAAM,EAAEzL,OAAAA;AACV,GAAC,GAAGwc,cAAc,CAAC/S,KAAK,CAAC,CAAA;EAEzB,MAAM;AAAE8J,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOM,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAChES,eAAC,KAAK,EAAA;AACJ,MAAA,KAAK,EAAG3E,KAAO;AACf,MAAA,QAAQ,EAAGzE,QAAAA;AAAU,KAAA,CAAG,EAExBgS,SAAS,IAAIvG,WAAW,CAACE,MAAM,IAAIlW,OAAO,CAACgN,GAAG,CAAC,CAACqd,MAAM,EAAE7Z,KAAK,KAAK;AAChE,MAAA,OACEmD,eAAC,KAAK,EAAA;QACJ,EAAE,EAAGL,QAAQ,CAAE,CAAGjI,EAAAA,EAAI,IAAImF,KAAO,CAAA,CAAC,EAAE+C,MAAM,CAAG;QAE7C,KAAK,EAAG8W,MAAM,CAACrb,KAAO;QACtB,KAAK,EAAGmE,UAAU,CAAC;AAAE,UAAA,aAAa,EAAEkX,MAAM,CAAC1qB,KAAK,KAAKA,KAAAA;AAAM,SAAC,CAAG;AAC/D,QAAA,QAAQ,EAAG,KAAO;QAAA,QAClB,EAAAgU,cAAA,CAAA,OAAA,EAAA;AACE,UAAA,OAAO,EAAG0W,MAAM,CAAC1qB,KAAK,KAAKA,KAAO;AAClC,UAAA,KAAK,EAAC,WAAW;AACjB,UAAA,QAAQ,EAAGuT,QAAU;UACrB,EAAE,EAAGI,QAAQ,CAAE,CAAGjI,EAAAA,EAAI,IAAImF,KAAO,CAAA,CAAC,EAAE+C,MAAM,CAAG;AAC7C,UAAA,IAAI,EAAC,OAAO;AACZ,UAAA,OAAO,EAAG,MAAM0B,QAAQ,CAACoV,MAAM,CAAC1qB,KAAK,CAAA;AAAG,SAAA,CAAA;AAAG,OAAA,EAVtC,CAAG0L,EAAAA,EAAI,CAAImF,CAAAA,EAAAA,KAAO,EAAC,CAWpB,CAAA;KAEX,CAAC,EAEJmD,cAAA,CAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEAygB,KAAK,CAACxW,MAAM,GAAG,UAAS5T,OAAO,GAAG,EAAE,EAAE;EAEpC,MAAMyc,QAAQ,GAAG,EAAG,CAAA;;AAEpB;AACA,EAAA,IAAI,CAACzc,OAAO,CAACqR,SAAS,EAAE;IACtBoL,QAAQ,CAAChR,MAAM,GAAG,CAChB;AACEuD,MAAAA,KAAK,EAAE,OAAO;AACdrP,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CACF,CAAA;AACH,GAAA;EAEA,OAAO;AACL,IAAA,GAAG8c,QAAQ;IACX,GAAGzc,OAAAA;GACJ,CAAA;AACH,CAAC,CAAA;AAEDoqB,KAAK,CAACnqB,IAAI,GAAGA,MAAI,CAAA;AACjBmqB,KAAK,CAACpb,KAAK,GAAG,OAAO,CAAA;AACrBob,KAAK,CAACvW,KAAK,GAAG,IAAI,CAAA;AAClBuW,KAAK,CAACrX,UAAU,GAAG,IAAI,CAAA;AACvBqX,KAAK,CAACvX,aAAa,GAAGmJ,yBAAyB,CAAA;AAC/CoO,KAAK,CAACtW,KAAK,GAAG,WAAW;;ACvGzB,SAASmK,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,gBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,MAAM,EAAE,cAAc;AACxB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,CAAC,EAAE,6GAA6G;AAClH,CAAC,CAAC,CAAC;;ACCY,SAASqM,gBAAgB,CAAC7W,KAAK,EAAE;EAC9C,MAAM;IACJpI,EAAE;IACF6H,QAAQ;IACRvJ,MAAM;IACNF,KAAK;AACL9J,IAAAA,KAAAA;AACF,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;AAAEF,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAC1C,MAAM,CAAEgB,MAAM,EAAE8U,SAAS,CAAE,GAAGhU,cAAQ,CAAC,EAAE,CAAC,CAAA;EAC1C,MAAM,CAAEiU,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGlU,cAAQ,CAAC,KAAK,CAAC,CAAA;EACrE,MAAM,CAAEmU,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGpU,cAAQ,CAAC,IAAI,CAAC,CAAA;EAClE,MAAM,CAAEqU,cAAc,EAAEC,gBAAgB,CAAE,GAAGtU,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC5D,MAAMuU,YAAY,GAAG/L,YAAM,EAAE,CAAA;EAE7B,MAAM;AACJvI,IAAAA,KAAK,EAAE+F,SAAS;AAChB9Q,IAAAA,MAAM,EAAEzL,OAAAA;AACV,GAAC,GAAGwc,cAAc,CAAC/S,KAAK,CAAC,CAAA;;AAEzB;EACA,MAAMshB,gBAAgB,GAAGpO,aAAO,CAAC,MAAMnR,MAAM,CAAC/D,MAAM,CAAC,EAAE,EAAE,GAAGzH,OAAO,CAACgN,GAAG,CAAC,CAACge,CAAC,EAAE1O,CAAC,MAAM;AAAE,IAAA,CAAC0O,CAAC,CAACrrB,KAAK,GAAGK,OAAO,CAACsc,CAAC,CAAA;AAAE,GAAC,CAAC,CAAC,CAAC,EAAE,CAAEtc,OAAO,CAAE,CAAC,CAAA;EAE7H,MAAMirB,UAAU,GAAGtO,aAAO,CAAC,MAAMhd,KAAK,IAAIorB,gBAAgB,CAACprB,KAAK,CAAC,IAAIorB,gBAAgB,CAACprB,KAAK,CAAC,CAACqP,KAAK,IAAI,EAAE,EAAE,CAAErP,KAAK,EAAEorB,gBAAgB,CAAE,CAAC,CAAA;;AAEtI;AACApU,EAAAA,eAAS,CAAC,MAAM;IAAE4T,SAAS,CAACU,UAAU,CAAC,CAAA;AAAE,GAAC,EAAE,CAAEA,UAAU,CAAE,CAAC,CAAA;AAE3D,EAAA,MAAMC,eAAe,GAAGvO,aAAO,CAAC,MAAM;AAEpC,IAAA,IAAIJ,SAAS,KAAKvG,WAAW,CAACE,MAAM,EAAE;AACpC,MAAA,OAAOwU,iBAAiB,GAAG1qB,OAAO,CAACyV,MAAM,CAAEuV,CAAC,IAAKA,CAAC,CAAChc,KAAK,IAAIgc,CAAC,CAACrrB,KAAK,IAAKqrB,CAAC,CAAChc,KAAK,CAAC4J,WAAW,EAAE,CAAC/P,QAAQ,CAAC4M,MAAM,CAACmD,WAAW,EAAE,CAAE,CAAC,GAAG5Y,OAAO,CAAA;AAC1I,KAAA;AAEA,IAAA,OAAO,EAAE,CAAA;GAEV,EAAE,CAAEyV,MAAM,EAAE8G,SAAS,EAAEvc,OAAO,EAAE0qB,iBAAiB,CAAE,CAAC,CAAA;EAErD,MAAMzV,QAAQ,GAAG,CAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,KAAK;IAC/B2V,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACvBJ,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC3BE,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC1BJ,IAAAA,SAAS,CAACrV,MAAM,CAACvV,KAAK,IAAI,EAAE,CAAC,CAAA;GAC9B,CAAA;AAED,EAAA,MAAM+pB,QAAQ,GAAGnJ,iBAAW,CAAE8J,MAAM,IAAK;IACvCE,SAAS,CAACF,MAAM,IAAIA,MAAM,CAACrb,KAAK,IAAI,EAAE,CAAC,CAAA;IACvCyE,KAAK,CAACwB,QAAQ,CAAC;AAAEtV,MAAAA,KAAK,EAAE0qB,MAAM,IAAIA,MAAM,CAAC1qB,KAAK,IAAI,IAAI;AAAE8J,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAClE,GAAC,EAAE,CAAEA,KAAK,EAAEgK,KAAK,CAAE,CAAC,CAAA;AAEpB,EAAA,MAAM6M,cAAc,GAAGC,iBAAW,CAAE4K,YAAY,IAAK;IAEnD,QAAQA,YAAY,CAACvoB,GAAG;AACxB,MAAA,KAAK,SAAS;QACZuoB,YAAY,CAAClkB,cAAc,EAAE,CAAA;AAC7B,QAAA,MAAA;AACF,MAAA,KAAK,WAAW;AAAE,QAAA;UAChB,IAAI,CAACujB,kBAAkB,EAAE;YACvBC,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAC3BE,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAC7B,WAAA;UAEAQ,YAAY,CAAClkB,cAAc,EAAE,CAAA;AAC7B,UAAA,MAAA;AACF,SAAA;AACA,MAAA,KAAK,QAAQ;QACX4jB,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACtB,QAAA,MAAA;AACF,MAAA,KAAK,OAAO;AACV,QAAA,IAAID,cAAc,EAAE;UAClBC,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;AAEV,GAAC,EAAE,CAAEL,kBAAkB,EAAEI,cAAc,CAAE,CAAC,CAAA;AAE1C,EAAA,MAAMQ,YAAY,GAAGzO,aAAO,CAAC,MAAM;IACjC,MAAM0O,EAAE,GAAG,EAAE,CAAA;IACbA,EAAE,CAACC,cAAc,GAAG,CAACpY,QAAQ,IAAIqJ,SAAS,KAAKvG,WAAW,CAACE,MAAM,CAAA;AACjEmV,IAAAA,EAAE,CAACE,YAAY,GAAGF,EAAE,CAACC,cAAc,IAAI3rB,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK8G,SAAS,CAAA;IAC5E4kB,EAAE,CAACG,eAAe,GAAG,CAACtY,QAAQ,IAAIsX,kBAAkB,IAAI,CAACI,cAAc,CAAA;AACvE,IAAA,OAAOS,EAAE,CAAA;AACX,GAAC,EAAE,CAAEnY,QAAQ,EAAEsX,kBAAkB,EAAEI,cAAc,EAAErO,SAAS,EAAE5c,KAAK,CAAE,CAAC,CAAA;AAEtE,EAAA,MAAM8rB,gBAAgB,GAAGlL,iBAAW,CAAEjb,CAAC,IAAK;IAC1CulB,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACvBJ,qBAAqB,CAAC,CAACD,kBAAkB,CAAC,CAAA;AAE1C,IAAA,MAAMkB,SAAS,GAAGZ,YAAY,CAACrM,OAAO,CAAA;IACtC+L,kBAAkB,GAAGkB,SAAS,CAACC,IAAI,EAAE,GAAGD,SAAS,CAAC5T,KAAK,EAAE,CAAA;IAEzDxS,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAEpB,GAAC,EAAE,CAAEujB,kBAAkB,CAAE,CAAC,CAAA;EAE1B,OAAOzV,eAAA,CAAA6W,mBAAA,EAAA;IAAA,QACL,EAAA,CAAA7W,eAAA,CAAA,KAAA,EAAA;MAAK,EAAE,EAAGzB,QAAQ,CAAE,CAAA,EAAEjI,EAAG,CAAC,CAAA,EAAEkI,MAAM,CAAG;AACnC,MAAA,KAAK,EAAGJ,UAAU,CAAC,iBAAiB,EAAE;AAAE,QAAA,UAAU,EAAED,QAAAA;AAAS,OAAC,EAAE;QAAE,WAAW,EAAEvJ,MAAM,CAACzB,MAAAA;AAAO,OAAC,CAAG;MAAA,QACjG,EAAA,CAAAyL,cAAA,CAAA,OAAA,EAAA;AACE,QAAA,QAAQ,EAAGT,QAAU;AACrB,QAAA,KAAK,EAAC,WAAW;AACjB,QAAA,GAAG,EAAG4X,YAAc;QACpB,EAAE,EAAGxX,QAAQ,CAAE,CAAA,EAAEjI,EAAG,CAAQ,OAAA,CAAA,EAAEkI,MAAM,CAAG;AACvC,QAAA,QAAQ,EAAG0B,QAAU;AACrB,QAAA,IAAI,EAAC,MAAM;AACX,QAAA,KAAK,EAAGQ,MAAQ;AAChB,QAAA,WAAW,EAAG,QAAU;AACxB,QAAA,YAAY,EAAC,KAAK;AAClB,QAAA,SAAS,EAAInQ,CAAC,IAAKgb,cAAc,CAAChb,CAAC,CAAG;AACtC,QAAA,WAAW,EAAG,MAAM;UAAEulB,gBAAgB,CAAC,KAAK,CAAC,CAAA;UAAEJ,qBAAqB,CAAC,IAAI,CAAC,CAAA;UAAEE,oBAAoB,CAAC,KAAK,CAAC,CAAA;SAAK;AAC5G,QAAA,OAAO,EAAG,MAAM;UAAEF,qBAAqB,CAAC,IAAI,CAAC,CAAA;UAAEE,oBAAoB,CAAC,KAAK,CAAC,CAAA;SAAK;AAC/E,QAAA,MAAM,EAAG,MAAM;UAAEF,qBAAqB,CAAC,KAAK,CAAC,CAAA;UAAEF,SAAS,CAACU,UAAU,CAAC,CAAA;AAAE,SAAA;AAAG,OAAA,CAAG,EAC5EG,YAAY,CAACG,YAAY,IAAIxW,eAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,kBAAkB;QAAC,WAAW,EAAIzP,CAAC,IAAK;UAAEokB,QAAQ,CAAC,IAAI,CAAC,CAAA;UAAEpkB,CAAC,CAAC2B,cAAc,EAAE,CAAA;SAAK;QAAA,QAAC,EAAA,CAAA0M,cAAA,CAAC,SAAS,EAAG,EAAA,CAAA,EAAA,GAAA,CAAA;AAAA,OAAA,CAAQ,EAClJA,cAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,kBAAkB;AAAC,QAAA,WAAW,EAAIrO,CAAC,IAAKmmB,gBAAgB,CAACnmB,CAAC,CAAG;QAAA,QAAG8lB,EAAAA,YAAY,CAACI,eAAe,GAAG7X,eAAC,WAAW,EAAA,EAAA,CAAG,GAAGA,cAAA,CAAC,aAAa,EAAA,EAAA,CAAA;OAAY,CAAA,CAAA;AAAA,KAAA,CACnJ,EACNA,cAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,mBAAmB;AAAA,MAAA,QAAA,EAC1ByX,YAAY,CAACI,eAAe,IAAI7X,eAAC,YAAY,EAAA;AAC7C,QAAA,MAAM,EAAGuX,eAAiB;AAC1B,QAAA,QAAQ,EAAIF,CAAC,IAAKA,CAAC,CAAChc,KAAO;QAC3B,eAAe,EAAIgc,CAAC,IAAK;UAAEtB,QAAQ,CAACsB,CAAC,CAAC,CAAA;UAAEP,qBAAqB,CAAC,KAAK,CAAC,CAAA;SAAK;QACzE,eAAe,EAAGK,YAAY,CAACrM,OAAAA;AAAS,OAAA,CAAA;KACtC,CAAA,CAAA;GACL,CAAA,CAAA;AACL;;AC3He,SAASoN,YAAY,CAACpY,KAAK,EAAE;EAC1C,MAAM;IACJpI,EAAE;IACF6H,QAAQ;IACRvJ,MAAM;IACNF,KAAK;AACL9J,IAAAA,KAAAA;AACF,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;AAAEF,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAC1C,MAAM,CAAE+V,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGlU,cAAQ,CAAC,KAAK,CAAC,CAAA;EACrE,MAAMuV,SAAS,GAAG/M,YAAM,EAAE,CAAA;EAE1B,MAAM;AACJvI,IAAAA,KAAK,EAAE+F,SAAS;AAChB9Q,IAAAA,MAAM,EAAEzL,OAAAA;AACV,GAAC,GAAGwc,cAAc,CAAC/S,KAAK,CAAC,CAAA;;AAEzB;EACA,MAAMshB,gBAAgB,GAAGpO,aAAO,CAAC,MAAMnR,MAAM,CAAC/D,MAAM,CAAC,EAAE,EAAE,GAAGzH,OAAO,CAACgN,GAAG,CAAC,CAACge,CAAC,EAAE1O,CAAC,MAAM;AAAE,IAAA,CAAC0O,CAAC,CAACrrB,KAAK,GAAGK,OAAO,CAACsc,CAAC,CAAA;AAAE,GAAC,CAAC,CAAC,CAAC,EAAE,CAAEtc,OAAO,CAAE,CAAC,CAAA;EAE7H,MAAMirB,UAAU,GAAGtO,aAAO,CAAC,MAAMhd,KAAK,IAAIorB,gBAAgB,CAACprB,KAAK,CAAC,IAAIorB,gBAAgB,CAACprB,KAAK,CAAC,CAACqP,KAAK,IAAI,EAAE,EAAE,CAAErP,KAAK,EAAEorB,gBAAgB,CAAE,CAAC,CAAA;AAEtI,EAAA,MAAMrB,QAAQ,GAAGnJ,iBAAW,CAAE8J,MAAM,IAAK;IACvC5W,KAAK,CAACwB,QAAQ,CAAC;AAAEtV,MAAAA,KAAK,EAAE0qB,MAAM,IAAIA,MAAM,CAAC1qB,KAAK,IAAI,IAAI;AAAE8J,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAClE,GAAC,EAAE,CAAEA,KAAK,EAAEgK,KAAK,CAAE,CAAC,CAAA;AAEpB,EAAA,MAAM2X,YAAY,GAAGzO,aAAO,CAAC,MAAM;IACjC,MAAM0O,EAAE,GAAG,EAAE,CAAA;IACbA,EAAE,CAACC,cAAc,GAAG,CAACpY,QAAQ,IAAIqJ,SAAS,KAAKvG,WAAW,CAACE,MAAM,CAAA;AACjEmV,IAAAA,EAAE,CAACE,YAAY,GAAGF,EAAE,CAACC,cAAc,IAAI3rB,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK8G,SAAS,CAAA;AAC5E4kB,IAAAA,EAAE,CAACG,eAAe,GAAG,CAACtY,QAAQ,IAAIsX,kBAAkB,CAAA;AACpD,IAAA,OAAOa,EAAE,CAAA;GACV,EAAE,CAAEnY,QAAQ,EAAEsX,kBAAkB,EAAEjO,SAAS,EAAE5c,KAAK,CAAE,CAAC,CAAA;AAEtD,EAAA,MAAMosB,WAAW,GAAGxL,iBAAW,CAAEjb,CAAC,IAAK;AACrC,IAAA,MAAM0mB,MAAM,GAAGF,SAAS,CAACrN,OAAO,CAAA;IAChCgM,qBAAqB,CAAC,CAACD,kBAAkB,CAAC,CAAA;AAE1C,IAAA,IAAIA,kBAAkB,EAAE;MACtBwB,MAAM,CAACL,IAAI,EAAE,CAAA;AACf,KAAC,MACI;MACHK,MAAM,CAAClU,KAAK,EAAE,CAAA;AAChB,KAAA;IAEAxS,CAAC,CAAC2B,cAAc,EAAE,CAAA;AACpB,GAAC,EAAE,CAAEujB,kBAAkB,CAAE,CAAC,CAAA;EAE1B,MAAMpJ,iBAAiB,GAAGzE,aAAO,CAAC,MAAMhd,KAAK,IAAIssB,iBAAS,CAACjsB,OAAO,EAAGgrB,CAAC,IAAKA,CAAC,CAACrrB,KAAK,KAAKA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAEK,OAAO,EAAEL,KAAK,CAAE,CAAC,CAAA;EAEvH,OAAOoV,eAAA,CAAA6W,mBAAA,EAAA;IAAA,QACL,EAAA,CAAA7W,eAAA,CAAA,KAAA,EAAA;AAAK,MAAA,GAAG,EAAG+W,SAAW;MACpB,EAAE,EAAGxY,QAAQ,CAAE,CAAA,EAAEjI,EAAG,CAAC,CAAA,EAAEkI,MAAM,CAAG;AAChC,MAAA,KAAK,EAAGJ,UAAU,CAAC,iBAAiB,EAAE;AAAE,QAAA,UAAU,EAAED,QAAAA;AAAS,OAAC,EAAE;QAAE,WAAW,EAAEvJ,MAAM,CAACzB,MAAAA;AAAO,OAAC,CAAG;AACjG,MAAA,OAAO,EAAG,MAAMuiB,qBAAqB,CAAC,IAAI,CAAG;AAC7C,MAAA,MAAM,EAAG,MAAMA,qBAAqB,CAAC,KAAK,CAAG;AAC7C,MAAA,WAAW,EAAInlB,CAAC,IAAKymB,WAAW,CAACzmB,CAAC,CAAG;AACrC,MAAA,QAAQ,EAAG4N,QAAQ,GAAGzM,SAAS,GAAG,CAAG;MAAA,QACrC,EAAA,CAAAkN,cAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAGR,UAAU,CAAC,oBAAoB,EAAE;AAAE,UAAA,wBAAwB,EAAG,CAACxT,KAAAA;AAAM,SAAC,CAAG;QAAC,EAAE,EAAG2T,QAAQ,CAAE,CAAA,EAAEjI,EAAG,CAAS,QAAA,CAAA,EAAEkI,MAAM,CAAG;AAAA,QAAA,QAAA,EAAG0X,UAAU,IAAI,QAAA;AAAQ,OAAA,CAAQ,EAC9JG,YAAY,CAACG,YAAY,IAAI5X,cAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,kBAAkB;QAAC,WAAW,EAAIrO,CAAC,IAAK;UAAEokB,QAAQ,CAAC,IAAI,CAAC,CAAA;UAAEpkB,CAAC,CAAC0B,eAAe,EAAE,CAAA;SAAK;AAAA,QAAA,QAAA,EAAC2M,eAAC,SAAS,EAAA,EAAA,CAAA;AAAG,OAAA,CAAO,EAClJA,cAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,kBAAkB;QAAA,QAAGyX,EAAAA,YAAY,CAACI,eAAe,GAAG7X,eAAC,WAAW,EAAA,EAAA,CAAG,GAAGA,cAAA,CAAC,aAAa,EAAA,EAAA,CAAA;OAAY,CAAA,CAAA;AAAA,KAAA,CACxG,EACNA,cAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,mBAAmB;AAAA,MAAA,QAAA,EAC3ByX,YAAY,CAACI,eAAe,IAAI7X,eAAC,YAAY,EAAA;AAC5C,QAAA,MAAM,EAAG3T,OAAS;AAClB,QAAA,QAAQ,EAAIgrB,CAAC,IAAKA,CAAC,CAAChc,KAAO;AAC3B,QAAA,iBAAiB,EAAGoS,iBAAmB;QACvC,eAAe,EAAI4J,CAAC,IAAK;UAAEtB,QAAQ,CAACsB,CAAC,CAAC,CAAA;UAAEP,qBAAqB,CAAC,KAAK,CAAC,CAAA;SAAK;QACzE,eAAe,EAAGqB,SAAS,CAACrN,OAAAA;AAAS,OAAA,CAAA;KACnC,CAAA,CAAA;GACL,CAAA,CAAA;AACL;;AC1EA,MAAMxe,MAAI,GAAG,QAAQ,CAAA;AAEN,SAASisB,MAAM,CAACzY,KAAK,EAAE;EACpC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;IACLwL,QAAQ;AACRtV,IAAAA,KAAAA;AACF,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;IACF2D,KAAK;AACLmd,IAAAA,UAAU,GAAG,KAAK;AAClBziB,IAAAA,QAAQ,GAAG,EAAC;AACd,GAAC,GAAGD,KAAK,CAAA;EAET,MAAM;AAAEc,IAAAA,QAAAA;AAAS,GAAC,GAAGb,QAAQ,CAAA;EAE7B,MAAM;AAAE6J,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;AAE1C,EAAA,MAAM2X,WAAW,GAAGzP,aAAO,CAAC,OAAO;IACjCtR,EAAE;IACF6H,QAAQ;IACRvJ,MAAM;IACNF,KAAK;IACL9J,KAAK;AACLsV,IAAAA,QAAAA;AACF,GAAC,CAAC,EAAE,CAAE/B,QAAQ,EAAEvJ,MAAM,EAAEF,KAAK,EAAE4B,EAAE,EAAE1L,KAAK,EAAEsV,QAAQ,CAAE,CAAC,CAAA;EAErD,OAAOF,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAChES,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGL,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,MAAA,KAAK,EAAGvE,KAAO;AACf,MAAA,QAAQ,EAAGzE,QAAAA;AAAU,KAAA,CAAG,EACxB4hB,UAAU,GAAGxY,cAAA,CAAC,gBAAgB,EAAA;MAAA,GAAMyY,WAAAA;KAAgB,CAAA,GAAGzY,eAAC,YAAY,EAAA;MAAA,GAAMyY,WAAAA;KAAgB,CAAA,EAC5FzY,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEAuiB,MAAM,CAACtY,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,KAAK;EAEhC,MAAMyc,QAAQ,GAAG,EAAG,CAAA;;AAEpB;AACA,EAAA,IAAI,CAACzc,OAAO,CAACqR,SAAS,EAAE;IACtBoL,QAAQ,CAAChR,MAAM,GAAG,CAChB;AACEuD,MAAAA,KAAK,EAAE,OAAO;AACdrP,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CACF,CAAA;AACH,GAAA;EAEA,OAAO;AACL,IAAA,GAAG8c,QAAQ;IACX,GAAGzc,OAAAA;GACJ,CAAA;AACH,CAAC,CAAA;AAEDksB,MAAM,CAACjsB,IAAI,GAAGA,MAAI,CAAA;AAClBisB,MAAM,CAACld,KAAK,GAAG,QAAQ,CAAA;AACvBkd,MAAM,CAACrY,KAAK,GAAG,IAAI,CAAA;AACnBqY,MAAM,CAACnZ,UAAU,GAAG,IAAI,CAAA;AACxBmZ,MAAM,CAACrZ,aAAa,GAAGmJ,yBAAyB,CAAA;AAChDkQ,MAAM,CAACpY,KAAK,GAAG,WAAW;;AChE1B,MAAM7T,MAAI,GAAG,SAAS,CAAA;AAEP,SAASosB,OAAO,CAAC5Y,KAAK,EAAE;EACrC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;IACL9J,KAAK,EAAG8L,MAAM,GAAG,EAAA;AACnB,GAAC,GAAGgI,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;AACF2D,IAAAA,KAAAA;AACF,GAAC,GAAGvF,KAAK,CAAA;EAET,MAAM;AAAE8J,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAC1C,MAAM,CAAEgB,MAAM,EAAE8U,SAAS,CAAE,GAAGhU,cAAQ,CAAC,EAAE,CAAC,CAAA;EAC1C,MAAM,CAAE2U,eAAe,EAAEoB,kBAAkB,CAAE,GAAG/V,cAAQ,CAAC,EAAE,CAAC,CAAA;EAC5D,MAAM,CAAEiU,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGlU,cAAQ,CAAC,KAAK,CAAC,CAAA;EACrE,MAAM,CAAEgW,cAAc,EAAEC,iBAAiB,CAAE,GAAGjW,cAAQ,CAAC,IAAI,CAAC,CAAA;EAC5D,MAAM,CAAEqU,cAAc,EAAEC,gBAAgB,CAAE,GAAGtU,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC5D,MAAMuU,YAAY,GAAG/L,YAAM,EAAE,CAAA;EAE7B,MAAM;AACJvI,IAAAA,KAAK,EAAE+F,SAAS;AAChB9Q,IAAAA,MAAM,EAAEzL,OAAAA;AACV,GAAC,GAAGwc,cAAc,CAAC/S,KAAK,CAAC,CAAA;;AAEzB;EACA,MAAMshB,gBAAgB,GAAGpO,aAAO,CAAC,MAAMnR,MAAM,CAAC/D,MAAM,CAAC,EAAE,EAAE,GAAGzH,OAAO,CAACgN,GAAG,CAAC,CAACge,CAAC,EAAE1O,CAAC,MAAM;AAAE,IAAA,CAAC0O,CAAC,CAACrrB,KAAK,GAAIK,OAAO,CAACsc,CAAC,CAAA;AAAE,GAAC,CAAC,CAAC,CAAC,EAAE,CAAEtc,OAAO,CAAE,CAAC,CAAA;;AAE9H;AACA2W,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI4F,SAAS,KAAKvG,WAAW,CAACE,MAAM,EAAE;AACpCoW,MAAAA,kBAAkB,CAACtsB,OAAO,CAACyV,MAAM,CAAEuV,CAAC,IAAKA,CAAC,CAAChc,KAAK,IAAIgc,CAAC,CAACrrB,KAAK,IAAKqrB,CAAC,CAAChc,KAAK,CAAC4J,WAAW,EAAE,CAAC/P,QAAQ,CAAC4M,MAAM,CAACmD,WAAW,EAAE,CAAE,IAAI,CAACnN,MAAM,CAAC5C,QAAQ,CAACmiB,CAAC,CAACrrB,KAAK,CAAC,CAAC,CAAC,CAAA;AACtJ,KAAC,MACI;MACH2sB,kBAAkB,CAAC,EAAE,CAAC,CAAA;AACxB,KAAA;AACF,GAAC,EAAE,CAAE7W,MAAM,EAAE1E,IAAI,CAACE,SAAS,CAACxF,MAAM,CAAC,EAAEzL,OAAO,EAAEuc,SAAS,CAAE,CAAC,CAAA;AAE1D5F,EAAAA,eAAS,CAAC,MAAM;IACd6V,iBAAiB,CAACxsB,OAAO,CAACkI,MAAM,GAAGuD,MAAM,CAACvD,MAAM,CAAC,CAAA;GAClD,EAAE,CAAElI,OAAO,CAACkI,MAAM,EAAEuD,MAAM,CAACvD,MAAM,CAAE,CAAC,CAAA;EAErC,MAAMukB,cAAc,GAAG,CAAC;AAAEvX,IAAAA,MAAAA;AAAO,GAAC,KAAK;IACrC2V,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACvBN,IAAAA,SAAS,CAACrV,MAAM,CAACvV,KAAK,CAAC,CAAA;GACxB,CAAA;EAED,MAAM+sB,WAAW,GAAI/sB,KAAK,IAAK;AAC7B,IAAA,IAAI8V,MAAM,EAAE;MACV8U,SAAS,CAAC,EAAE,CAAC,CAAA;AACf,KAAA;;AAEA;IACA,IAAI9e,MAAM,CAACkhB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAKhtB,KAAK,EAAE;AAC3B,MAAA,OAAA;AACF,KAAA;IAEA8T,KAAK,CAACwB,QAAQ,CAAC;AAAEtV,MAAAA,KAAK,EAAE,CAAE,GAAG8L,MAAM,EAAE9L,KAAK,CAAE;AAAE8J,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;GACvD,CAAA;EAED,MAAMmjB,aAAa,GAAIjtB,KAAK,IAAK;IAC/B8T,KAAK,CAACwB,QAAQ,CAAC;MAAEtV,KAAK,EAAE8L,MAAM,CAACgK,MAAM,CAAEE,CAAC,IAAKA,CAAC,IAAIhW,KAAK,CAAC;AAAE8J,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;GACnE,CAAA;EAED,MAAM6W,cAAc,GAAIhb,CAAC,IAAK;IAE5B,QAAQA,CAAC,CAAC1C,GAAG;AACb,MAAA,KAAK,SAAS,CAAA;AACd,MAAA,KAAK,WAAW;AAEd;QACA0C,CAAC,CAAC2B,cAAc,EAAE,CAAA;AAClB,QAAA,MAAA;AACF,MAAA,KAAK,WAAW;AACd,QAAA,IAAI,CAACwO,MAAM,IAAIhK,MAAM,CAACvD,MAAM,EAAE;UAC5B0kB,aAAa,CAACnhB,MAAM,CAACA,MAAM,CAACvD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1C,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,QAAQ;QACX2iB,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACtB,QAAA,MAAA;AACF,MAAA,KAAK,OAAO;AACV,QAAA,IAAID,cAAc,EAAE;UAClBC,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;GAET,CAAA;AAED,EAAA,MAAMgC,gBAAgB,GAAG,CAACpnB,KAAK,EAAE9F,KAAK,KAAK;IACzC,MAAM;AAAEuV,MAAAA,MAAAA;AAAO,KAAC,GAAGzP,KAAK,CAAA;IAExBmnB,aAAa,CAACjtB,KAAK,CAAC,CAAA;;AAEpB;IACA,MAAMmtB,OAAO,GAAG5X,MAAM,CAAC6X,OAAO,CAAC,kBAAkB,CAAC,CAACC,WAAW,CAAA;IAC9D,IAAI,CAACF,OAAO,EAAE;AACZhC,MAAAA,YAAY,CAACrM,OAAO,CAAC3G,KAAK,EAAE,CAAA;AAC9B,KAAA;GACD,CAAA;AAED,EAAA,MAAMmV,qBAAqB,GAAGtQ,aAAO,CAAC,MAAM,CAACzJ,QAAQ,IAAIqJ,SAAS,KAAKvG,WAAW,CAACE,MAAM,IAAIsU,kBAAkB,IAAI,CAACI,cAAc,EAAE,CAAE1X,QAAQ,EAAEsX,kBAAkB,EAAEI,cAAc,EAAErO,SAAS,CAAE,CAAC,CAAA;EAEhM,OAAOxH,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAChES,eAAC,KAAK,EAAA;AACJ,MAAA,KAAK,EAAG3E,KAAO;AACf,MAAA,EAAE,EAAGsE,QAAQ,CAAE,GAAEjI,EAAG,CAAA,OAAA,CAAQ,EAAEkI,MAAM,CAAA;AAAG,KAAA,CAAG,EAC5CwB,eAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAG5B,UAAU,CAAC,aAAa,EAAE;AAAE,QAAA,cAAc,EAAED,QAAAA;AAAS,OAAC,CAAG;AAAA,MAAA,QAAA,EAAA,CAClEqJ,SAAS,KAAKvG,WAAW,CAACE,MAAM,IAChCvC,cAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,kBAAkB;AAAA,QAAA,QAAA,EAEzBlI,MAAM,CAACuB,GAAG,CAAE2I,CAAC,IAAK;UAChB,OACEZ,eAAA,CAAA,KAAA,EAAA;AAAK,YAAA,KAAK,EAAG5B,UAAU,CAAC,iBAAiB,EAAE;AAAE,cAAA,cAAc,EAAED,QAAAA;AAAS,aAAC,CAAG;AAAC,YAAA,WAAW,EAAI5N,CAAC,IAAKA,CAAC,CAAC2B,cAAc,EAAI;YAAA,QAClH,EAAA,CAAA0M,cAAA,CAAA,MAAA,EAAA;AAAM,cAAA,KAAK,EAAC,uBAAuB;AAAA,cAAA,QAAA,EAChCoX,gBAAgB,CAACpV,CAAC,CAAC,GAAGoV,gBAAgB,CAACpV,CAAC,CAAC,CAAC3G,KAAK,GAAI,oBAAmB2G,CAAE,CAAA,CAAA,CAAA;aACpE,CAAA,EACL,CAACzC,QAAQ,IAAIS,cAAA,CAAA,QAAA,EAAA;AACb,cAAA,IAAI,EAAC,QAAQ;AACb,cAAA,KAAK,EAAC,YAAY;AAClB,cAAA,KAAK,EAAC,wBAAwB;cAC9B,OAAO,EAAIlO,KAAK,IAAKonB,gBAAgB,CAACpnB,KAAK,EAAEkQ,CAAC,CAAG;AAAA,cAAA,QAAA,EAEjDhC,eAAC,SAAS,EAAA,EAAA,CAAA;aACH,CAAA,CAAA;WACL,CAAA,CAAA;SAET,CAAA;AAAC,OAAA,CAEA,EAERA,cAAA,CAAA,OAAA,EAAA;AACE,QAAA,QAAQ,EAAGT,QAAU;AACrB,QAAA,KAAK,EAAC,mBAAmB;AACzB,QAAA,GAAG,EAAG4X,YAAc;QACpB,EAAE,EAAGxX,QAAQ,CAAE,CAAA,EAAEjI,EAAG,CAAQ,OAAA,CAAA,EAAEkI,MAAM,CAAG;AACvC,QAAA,QAAQ,EAAGkZ,cAAgB;AAC3B,QAAA,IAAI,EAAC,MAAM;AACX,QAAA,KAAK,EAAGhX,MAAQ;AAChB,QAAA,WAAW,EAAGvC,QAAQ,GAAG,EAAE,GAAG,QAAU;AACxC,QAAA,YAAY,EAAC,KAAK;AAClB,QAAA,SAAS,EAAI5N,CAAC,IAAKgb,cAAc,CAAChb,CAAC,CAAG;AACtC,QAAA,WAAW,EAAG,MAAMulB,gBAAgB,CAAC,KAAK,CAAG;AAC7C,QAAA,OAAO,EAAG,MAAMJ,qBAAqB,CAAC,IAAI,CAAG;AAC7C,QAAA,MAAM,EAAG,MAAM;UAAEA,qBAAqB,CAAC,KAAK,CAAC,CAAA;UAAEF,SAAS,CAAC,EAAE,CAAC,CAAA;AAAE,SAAA;OAAM,CAAA,CAAA;AAAA,KAAA,CAClE,EACN5W,cAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,oBAAoB;MAAA,QAC3BsZ,EAAAA,qBAAqB,IAAItZ,cAAA,CAAC,YAAY,EAAA;AACtC,QAAA,MAAM,EAAGuX,eAAiB;AAC1B,QAAA,QAAQ,EAAIF,CAAC,IAAKA,CAAC,CAAChc,KAAO;QAC3B,eAAe,EAAIgc,CAAC,IAAK0B,WAAW,CAAC1B,CAAC,CAACrrB,KAAK,CAAG;AAC/C,QAAA,gBAAgB,EAAG4sB,cAAc,GAAG,YAAY,GAAG,qBAAuB;QAC1E,eAAe,EAAGzB,YAAY,CAACrM,OAAAA;AAAS,OAAA,CAAA;KACtC,CAAA,EACN9K,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEA0iB,OAAO,CAACzY,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,KAAK;EAEjC,MAAMyc,QAAQ,GAAG,EAAE,CAAA;;AAEnB;AACA,EAAA,IAAI,CAACzc,OAAO,CAACqR,SAAS,EAAE;IACtBoL,QAAQ,CAAChR,MAAM,GAAG,CAChB;AACEuD,MAAAA,KAAK,EAAE,OAAO;AACdrP,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CACF,CAAA;AACH,GAAA;EAEA,OAAO;AACL,IAAA,GAAG8c,QAAQ;IACX,GAAGzc,OAAAA;GACJ,CAAA;AACH,CAAC,CAAA;AAEDqsB,OAAO,CAACpsB,IAAI,GAAGA,MAAI,CAAA;AACnBosB,OAAO,CAACrd,KAAK,GAAG,UAAU,CAAA;AAC1Bqd,OAAO,CAACxY,KAAK,GAAG,IAAI,CAAA;AACpBwY,OAAO,CAACtZ,UAAU,GAAG,EAAE,CAAA;AACvBsZ,OAAO,CAACxZ,aAAa,GAAGqJ,wBAAwB,CAAA;AAChDmQ,OAAO,CAACvY,KAAK,GAAG,WAAW;;ACvM3B,MAAM7T,MAAI,GAAG,MAAM,CAAA;AAGJ,SAASitB,IAAI,CAACzZ,KAAK,EAAE;EAClC,MAAM;IAAEhK,KAAK;AAAE0jB,IAAAA,YAAAA;AAAa,GAAC,GAAG1Z,KAAK,CAAA;EAErC,MAAM;AAAE2Z,IAAAA,IAAI,GAAG,EAAE;AAAEprB,IAAAA,MAAM,GAAG,KAAA;AAAM,GAAC,GAAGyH,KAAK,CAAA;AAE3C,EAAA,MAAMtF,gBAAgB,GAAG4R,UAAU,CAAC,kBAAkB,CAAC,CAAA;;AAEvD;AACA,EAAA,MAAM9R,QAAQ,GAAGqZ,qBAAqB,CAAC8P,IAAI,EAAE;AAAErrB,IAAAA,KAAK,EAAE,IAAI;AAAEC,IAAAA,MAAAA;AAAO,GAAC,CAAC,CAAA;;AAErE;AACA,EAAA,MAAMqrB,QAAQ,GAAG1Q,aAAO,CAAC,MAAM;AAC7B,IAAA,MAAMwK,IAAI,GAAGhjB,gBAAgB,CAACH,MAAM,CAACC,QAAQ,CAAC,CAAA;IAC9C,OAAOijB,YAAY,CAACC,IAAI,CAAC,CAAA;AAC3B,GAAC,EAAE,CAAEhjB,gBAAgB,EAAEF,QAAQ,CAAE,CAAC,CAAA;AAElC,EAAA,MAAMqpB,kBAAkB,GAAG3Q,aAAO,CAAC,MAAMwQ,YAAY,GAAG;AAAE,IAAA,GAAG,EAAEI,YAAAA;AAAa,GAAC,GAAG,EAAE,EAAE,CAAEJ,YAAY,CAAE,CAAC,CAAA;EAErG,OAAOxZ,cAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAGV,gBAAgB,CAAChT,MAAI,CAAG;AAAA,IAAA,QAAA,EAC1C0T,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAG0Z,QAAU;AAAC,MAAA,UAAU,EAAGC,kBAAoB;AAAC,MAAA,IAAI,EAAG,KAAA;AAAO,KAAA,CAAA;GACxE,CAAA,CAAA;AACR,CAAA;AAEAJ,IAAI,CAACtZ,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;AAC/BotB,EAAAA,IAAI,EAAE,QAAQ;EACd,GAAGptB,OAAAA;AACL,CAAC,CAAC,CAAA;AAEFktB,IAAI,CAACjtB,IAAI,GAAGA,MAAI,CAAA;AAChBitB,IAAI,CAACrZ,KAAK,GAAG,KAAK,CAAA;AAClBqZ,IAAI,CAACpZ,KAAK,GAAG,cAAc,CAAA;AAC3BoZ,IAAI,CAACle,KAAK,GAAG,WAAW,CAAA;AAExB,SAASue,YAAY,CAAC;EAAEC,IAAI;AAAEpZ,EAAAA,QAAAA;AAAS,CAAC,EAAE;EAAE,OAAOT,cAAA,CAAA,GAAA,EAAA;AAAG,IAAA,KAAK,EAAC,mBAAmB;AAAC,IAAA,IAAI,EAAG6Z,IAAM;IAAC,QAAQ,EAAG,CAAC,CAAG;IAAA,QAAGpZ,EAAAA,QAAAA;GAAc,CAAA,CAAA;AAAE;;AC9BhI,MAAMnU,MAAI,GAAG,WAAW,CAAA;AAGT,SAASwtB,SAAS,CAACha,KAAK,EAAE;EACvC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;AACL9J,IAAAA,KAAK,GAAG,EAAA;AACV,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;IACF2D,KAAK;IACLia,UAAU,GAAG,EAAE;AACfvf,IAAAA,QAAQ,GAAG,EAAC;AACd,GAAC,GAAGD,KAAK,CAAA;EAET,MAAM;IACJ0f,aAAa;AACbC,IAAAA,aAAAA;AACF,GAAC,GAAGH,UAAU,CAAA;EAEd,MAAM;AAAE1e,IAAAA,QAAAA;AAAS,GAAC,GAAGb,QAAQ,CAAA;EAE7B,MAAMuL,QAAQ,GAAG,CAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,KAAK;IAC/BzB,KAAK,CAACwB,QAAQ,CAAC;MACbxL,KAAK;MACL9J,KAAK,EAAEuV,MAAM,CAACvV,KAAAA;AAChB,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAM;AAAE4T,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOM,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,MAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAChES,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGL,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,MAAA,KAAK,EAAGvE,KAAO;AACf,MAAA,QAAQ,EAAGzE,QAAAA;KAAa,CAAA,EAC1BoJ,eAAC,YAAY,EAAA;AAAC,MAAA,QAAQ,EAAGT,QAAU;AAAC,MAAA,GAAG,EAAGiW,aAAe;AAAC,MAAA,IAAI,EAAGC,aAAe;MAAA,QAC9E,EAAAzV,cAAA,CAAA,OAAA,EAAA;AACE,QAAA,KAAK,EAAC,WAAW;AACjB,QAAA,QAAQ,EAAGT,QAAU;AACrB,QAAA,EAAE,EAAGI,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,QAAA,OAAO,EAAG0B,QAAU;AACpB,QAAA,IAAI,EAAC,MAAM;AACX,QAAA,KAAK,EAAGtV,KAAAA;AAAO,OAAA,CAAA;KACJ,CAAA,EACfgU,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEA8jB,SAAS,CAAC7Z,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;EACpC,GAAGA,OAAAA;AACL,CAAC,CAAC,CAAA;AAEFytB,SAAS,CAACxtB,IAAI,GAAGA,MAAI,CAAA;AACrBwtB,SAAS,CAACze,KAAK,GAAG,YAAY,CAAA;AAC9Bye,SAAS,CAAC5Z,KAAK,GAAG,IAAI,CAAA;AACtB4Z,SAAS,CAAC1a,UAAU,GAAG,EAAE,CAAA;AACzB0a,SAAS,CAAC5a,aAAa,GAAG,CAAC;AAAElT,EAAAA,KAAAA;AAAM,CAAC,KAAMoF,eAAO,CAACpF,KAAK,CAAC,IAAI+tB,gBAAQ,CAAC/tB,KAAK,CAAC,GAAI,EAAE,GAAGguB,MAAM,CAAChuB,KAAK,CAAC,CAAA;AACjG8tB,SAAS,CAAC3Z,KAAK,GAAG,aAAa;;AChE/B,MAAM7T,IAAI,GAAG,UAAU,CAAA;AAGR,SAAS2tB,QAAQ,CAACna,KAAK,EAAE;EACtC,MAAM;IACJP,QAAQ;AACRvJ,IAAAA,MAAM,GAAG,EAAE;IACXF,KAAK;AACL9J,IAAAA,KAAK,GAAG,EAAA;AACV,GAAC,GAAG8T,KAAK,CAAA;EAET,MAAM;IACJkB,WAAW;IACXtJ,EAAE;IACF2D,KAAK;AACLtF,IAAAA,QAAQ,GAAG,EAAC;AACd,GAAC,GAAGD,KAAK,CAAA;EAET,MAAM;AAAEc,IAAAA,QAAAA;AAAS,GAAC,GAAGb,QAAQ,CAAA;EAE7B,MAAMmkB,WAAW,GAAG9O,YAAM,EAAE,CAAA;EAE5B,MAAM+O,OAAO,GAAG,CAAC;AAAE5Y,IAAAA,MAAAA;AAAO,GAAC,KAAK;IAC9BzB,KAAK,CAACwB,QAAQ,CAAC;MACbxL,KAAK;MACL9J,KAAK,EAAEuV,MAAM,CAACvV,KAAAA;AAChB,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,MAAMouB,gBAAgB,GAAGxN,iBAAW,CAAEyN,QAAQ,IAAK;AAEjD;AACAA,IAAAA,QAAQ,CAACC,KAAK,CAAC/M,MAAM,GAAG,KAAK,CAAA;AAE7B,IAAA,MAAMgN,QAAQ,GAAG7W,MAAM,CAAC8W,gBAAgB,CAACH,QAAQ,CAAC,CAAA;IAElD,MAAMI,gBAAgB,GAAGje,QAAQ,CAAC+d,QAAQ,CAACG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,GAC5Ele,QAAQ,CAAC+d,QAAQ,CAACG,gBAAgB,CAAC,aAAa,CAAC,CAAC,GAClDL,QAAQ,CAACM,YAAY,GACrBne,QAAQ,CAAC+d,QAAQ,CAACG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,GACrDle,QAAQ,CAAC+d,QAAQ,CAACG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE9D,MAAME,SAAS,GAAG,EAAE,CAAA;IACpB,MAAM7L,SAAS,GAAG,GAAG,CAAA;AACrB,IAAA,MAAM8L,aAAa,GAAGnW,IAAI,CAAC3N,GAAG,CAAC2N,IAAI,CAAC5N,GAAG,CAAC2jB,gBAAgB,EAAE1L,SAAS,CAAC,EAAE6L,SAAS,CAAC,CAAA;AAEhFP,IAAAA,QAAQ,CAACC,KAAK,CAAC/M,MAAM,GAAI,CAAA,EAAEsN,aAAc,CAAG,EAAA,CAAA,CAAA;;AAE5C;IACAR,QAAQ,CAACC,KAAK,CAACQ,QAAQ,GAAGL,gBAAgB,GAAG1L,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;GAE9E,EAAE,EAAG,CAAC,CAAA;AAEP/L,EAAAA,eAAS,CAAC,MAAM;AACdoX,IAAAA,gBAAgB,CAACF,WAAW,CAACpP,OAAO,CAAC,CAAA;AACvC,GAAC,EAAE,CAAEsP,gBAAgB,EAAEpuB,KAAK,CAAE,CAAC,CAAA;EAE/B,MAAM;AAAE4T,IAAAA,MAAAA;AAAO,GAAC,GAAG6B,gBAAU,CAACX,aAAW,CAAC,CAAA;EAE1C,OAAOM,eAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG9B,gBAAgB,CAAChT,IAAI,EAAE;MAAE0J,MAAM;AAAEuJ,MAAAA,QAAAA;AAAS,KAAC,CAAG;AAAA,IAAA,QAAA,EAAA,CAChES,eAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAGL,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,MAAA,KAAK,EAAGvE,KAAO;AACf,MAAA,QAAQ,EAAGzE,QAAAA;AAAU,KAAA,CAAG,EAC1BoJ,cAAA,CAAA,UAAA,EAAA;AAAU,MAAA,KAAK,EAAC,cAAc;AAC5B,MAAA,QAAQ,EAAGT,QAAU;AACrB,MAAA,EAAE,EAAGI,QAAQ,CAACjI,EAAE,EAAEkI,MAAM,CAAG;AAC3B,MAAA,OAAO,EAAGua,OAAS;AACnB,MAAA,KAAK,EAAGnuB,KAAO;AACf,MAAA,GAAG,EAAGkuB,WAAAA;KAAgB,CAAA,EACxBla,eAAC,WAAW,EAAA;AAAC,MAAA,WAAW,EAAGgB,WAAAA;KAAgB,CAAA,EAC3ChB,eAAC,MAAM,EAAA;AAAC,MAAA,MAAM,EAAGhK,MAAAA;KAAW,CAAA,CAAA;GACxB,CAAA,CAAA;AACR,CAAA;AAEAikB,QAAQ,CAACha,MAAM,GAAG,CAAC5T,OAAO,GAAG,EAAE,MAAM;EACnC,GAAGA,OAAAA;AACL,CAAC,CAAC,CAAA;AAEF4tB,QAAQ,CAAC3tB,IAAI,GAAGA,IAAI,CAAA;AACpB2tB,QAAQ,CAAC5e,KAAK,GAAG,WAAW,CAAA;AAC5B4e,QAAQ,CAAC/Z,KAAK,GAAG,IAAI,CAAA;AACrB+Z,QAAQ,CAAC7a,UAAU,GAAG,EAAE,CAAA;AACxB6a,QAAQ,CAAC/a,aAAa,GAAG,CAAC;AAAElT,EAAAA,KAAAA;AAAM,CAAC,KAAMoF,eAAO,CAACpF,KAAK,CAAC,IAAI+tB,gBAAQ,CAAC/tB,KAAK,CAAC,GAAI,EAAE,GAAGguB,MAAM,CAAChuB,KAAK,CAAC,CAAA;AAChGiuB,QAAQ,CAAC9Z,KAAK,GAAG,aAAa;;AClG9B,SAASmK,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,iBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,kGAAkG;AACvG,CAAC,CAAC,CAAC;;ACZH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,mBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,CAAC,EAAE,2HAA2H;AAChI,CAAC,CAAC,CAAC;;ACXH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,oBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,2PAA2P;AAChQ,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,CAAC,EAAE,oNAAoN;AACzN,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC,CAAC;;AClBH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,mBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,iVAAiV;AACtV,EAAE,QAAQ,EAAE,SAAS;AACrB,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,CAAC,EAAE,wEAAwE;AAC7E,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,iJAAiJ;AACtJ,EAAE,QAAQ,EAAE,SAAS;AACrB,CAAC,CAAC,CAAC;;ACvBH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,kBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,4BAA4B;AACrC,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,wIAAwI;AAC7I,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,CAAC,EAAE,uEAAuE;AAC5E,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC,CAAC;;AClBH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,eAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,EAAE,EAAE,GAAG;AACT,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,EAAE,EAAE,GAAG;AACT,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,CAAC,EAAE,IAAI;AACT,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,EAAE,EAAE,GAAG;AACT,CAAC,CAAC,CAAC;;AC3BH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,kBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,6TAA6T;AAClU,CAAC,CAAC,CAAC;;ACZH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,iBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,wLAAwL;AAC7L,CAAC,CAAC,CAAC;;ACZH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,gBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,CAAC,EAAE,4LAA4L;AACjM,CAAC,CAAC,CAAC;;ACXH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,iBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,8JAA8J;AACnK,CAAC,CAAC,CAAC;;ACZH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,eAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,CAAC,EAAE,s8BAAs8B;AAC38B,CAAC,CAAC,CAAC;;ACXH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,oBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,0JAA0J;AAC/J,CAAC,CAAC,CAAC;;ACZH,SAASA,UAAQ,GAAG,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,mBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,4BAA4B;AACrC,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,qQAAqQ;AAC1Q,CAAC,CAAC,CAAC;;ACZH,SAAS,QAAQ,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,gBAAe,CAAC,CAAC;AACjB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,KAAK;AACV,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AACvD,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,4BAA4B;AACrC,CAAC,EAAE,KAAK,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,0HAA0H;AAC/H,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,CAAC,eAAe,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7C,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,CAAC,EAAE,gUAAgU;AACrU,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,CAAC,CAAC;;ACLUyQ,MAAAA,WAAW,GAAIzuB,IAAI,IAAK;EACnC,OAAO;AACL0uB,IAAAA,MAAM,EAAEC,UAAU;AAClBC,IAAAA,QAAQ,EAAEC,YAAY;AACtBC,IAAAA,SAAS,EAAEC,aAAa;AACxB3b,IAAAA,OAAO,EAAE4b,WAAW;AACpBC,IAAAA,QAAQ,EAAEC,YAAY;AACtBC,IAAAA,KAAK,EAAEC,SAAS;AAChBznB,IAAAA,MAAM,EAAE0nB,UAAU;AAClBC,IAAAA,KAAK,EAAEC,SAAS;AAChBxD,IAAAA,MAAM,EAAEyD,UAAU;AAClBC,IAAAA,OAAO,EAAEC,WAAW;AACpBvC,IAAAA,IAAI,EAAEwC,QAAQ;AACdC,IAAAA,SAAS,EAAEC,aAAa;AACxB9B,IAAAA,QAAQ,EAAE+B,YAAY;AACtBC,IAAAA,OAAO,EAAEC,QAAAA;GACV,CAAChwB,IAAI,CAAC,CAAA;AACT;;ACAaiD,MAAAA,UAAU,GAAG,CACxBsQ,MAAM,EACNwB,QAAQ,EACRmH,SAAS,EACT2B,OAAO,EACP6K,KAAK,EACLK,WAAW,EACX7E,QAAQ,EACRiG,KAAK,EACL8B,MAAM,EACNG,OAAO,EACPa,IAAI,EACJO,SAAS,EACTG,QAAQ;;AC3CK,MAAMsC,UAAU,CAAC;AAC9B3wB,EAAAA,WAAW,GAAG;AACZ,IAAA,IAAI,CAACyL,WAAW,GAAG,EAAE,CAAA;AAErB9H,IAAAA,UAAU,CAACmC,OAAO,CAAEhC,SAAS,IAAK;MAChC,IAAI,CAAC8sB,QAAQ,CAAC9sB,SAAS,CAACpD,IAAI,EAAEoD,SAAS,CAAC,CAAA;AAC1C,KAAC,CAAC,CAAA;AACJ,GAAA;AAEA8sB,EAAAA,QAAQ,CAAClwB,IAAI,EAAEoD,SAAS,EAAE;AACxB,IAAA,IAAI,CAAC2H,WAAW,CAAE/K,IAAI,CAAE,GAAGoD,SAAS,CAAA;AACtC,GAAA;EAEAkI,GAAG,CAACtL,IAAI,EAAE;AACR,IAAA,OAAO,IAAI,CAAC+K,WAAW,CAAE/K,IAAI,CAAE,CAAA;AACjC,GAAA;AACF;;ACEe,SAASmwB,QAAQ,CAAC9Q,MAAM,EAAE9f,QAAQ,EAAEie,IAAI,EAAEpO,QAAQ,EAAE;EAEjE,MAAMghB,GAAG,GAAG,MAAM;AAChB,IAAA,MAAM,CAAE7Z,KAAK,EAAE8Z,QAAQ,CAAE,GAAG/Z,cAAQ,CAACkH,IAAI,CAAC/G,SAAS,EAAE,CAAC,CAAA;AAEtD,IAAA,MAAM6Z,WAAW,GAAG;AAClB/b,MAAAA,UAAU,CAACvU,IAAI,EAAE+B,MAAM,GAAG,IAAI,EAAE;AAC9B,QAAA,OAAOqN,QAAQ,CAAC9D,GAAG,CAACtL,IAAI,EAAE+B,MAAM,CAAC,CAAA;OAClC;MACDuR,MAAM,EAAEkK,IAAI,CAAC+S,GAAAA;KACd,CAAA;AAEDhxB,IAAAA,QAAQ,CAACiF,EAAE,CAAC,SAAS,EAAGgsB,QAAQ,IAAK;MACnCH,QAAQ,CAACG,QAAQ,CAAC,CAAA;AACpB,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMxb,QAAQ,GAAGsL,iBAAW,CAAEmQ,MAAM,IAAKjT,IAAI,CAACkT,OAAO,CAACD,MAAM,CAAC,EAAE,CAAEjT,IAAI,CAAE,CAAC,CAAA;IAExE,MAAM;AAAEjb,MAAAA,UAAAA;AAAW,KAAC,GAAGgU,KAAK,CAAA;IAE5B,MAAM;AAAEoH,MAAAA,QAAAA;AAAS,KAAC,GAAGpb,UAAU,CAAA;AAE/B,IAAA,MAAM8jB,QAAQ,GAAG/F,iBAAW,CAAC,MAAM;MACjC,IAAI,CAAC3C,QAAQ,EAAE;QACbH,IAAI,CAACmT,MAAM,EAAE,CAAA;AACf,OAAA;AACF,KAAC,EAAE,CAAEnT,IAAI,EAAEG,QAAQ,CAAE,CAAC,CAAA;AAEtB,IAAA,MAAM2I,OAAO,GAAGhG,iBAAW,CAAC,MAAM9C,IAAI,CAACoT,KAAK,EAAE,EAAE,CAAEpT,IAAI,CAAE,CAAC,CAAA;IAEzD,MAAM;AAAEtM,MAAAA,MAAAA;AAAO,KAAC,GAAGqF,KAAK,CAAA;IAExB,IAAI,CAACrF,MAAM,EAAE;AACX,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,OACEwC,cAAA,CAACc,aAAW,CAAC,QAAQ,EAAA;AAAC,MAAA,KAAK,EAAG8b,WAAa;AAAA,MAAA,QAAA,EACzC5c,eAAC,aAAa,EAAA;AACZ,QAAA,QAAQ,EAAGsB,QAAU;AACrB,QAAA,QAAQ,EAAGqR,QAAU;AACrB,QAAA,OAAO,EAAGC,OAAAA;AAAS,OAAA,CAAA;KACA,CAAA,CAAA;GAE1B,CAAA;EAED,MAAM;AAAE9W,IAAAA,SAAAA;AAAU,GAAC,GAAG6P,MAAM,CAAA;AAE5B9f,EAAAA,QAAQ,CAACiF,EAAE,CAAC,WAAW,EAAE,MAAM;AAC7BT,IAAAA,aAAM,CAAC2P,cAAC,CAAA,GAAG,EAAG,EAAA,CAAA,EAAElE,SAAS,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEFjQ,EAAAA,QAAQ,CAACiF,EAAE,CAAC,cAAc,EAAE,MAAM;AAChCT,IAAAA,aAAM,CAAC,IAAI,EAAEyL,SAAS,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AACJ,CAAA;AAEA2gB,QAAQ,CAAC3uB,OAAO,GAAG,CAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAE;;ACrExE,mBAAe;AACb8B,EAAAA,QAAQ,EAAE,CAAE,YAAY,EAAE,UAAU,CAAE;AACtCL,EAAAA,UAAU,EAAE,CAAE,MAAM,EAAEgtB,UAAU,CAAE;AAClCY,EAAAA,QAAQ,EAAE,CAAE,MAAM,EAAEV,QAAQ,CAAA;AAC9B,CAAC;;ACFD,WAAe;AACbW,EAAAA,WAAW,EAAE,CAAEC,YAAY,EAAEC,YAAY,CAAE;AAC3CzxB,EAAAA,QAAQ,EAAE,CAAE,MAAM,EAAE+E,QAAQ,CAAE;AAC9BlC,EAAAA,iBAAiB,EAAE,CAAE,MAAM,EAAE0I,iBAAiB,CAAE;AAChD4G,EAAAA,YAAY,EAAE,CAAE,MAAM,EAAEjG,YAAY,CAAE;AACtCwlB,EAAAA,SAAS,EAAE,CAAE,MAAM,EAAE3nB,SAAS,CAAA;AAChC,CAAC;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM2D,GAAG,GAAG,IAAI/B,GAAG,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAC,CAAA;;AAElC;AACA;AACA;AACe,MAAMgmB,IAAI,CAAC;AAExB;AACF;AACA;AACA;AACE5xB,EAAAA,WAAW,CAACS,OAAO,GAAG,EAAE,EAAE;AAExB;AACJ;AACA;AACA;AACI,IAAA,IAAI,CAACyE,EAAE,GAAG,IAAI,CAAC2sB,QAAQ,CAAA;;AAEvB;AACJ;AACA;AACA;AACI,IAAA,IAAI,CAACZ,GAAG,GAAGtjB,GAAG,CAAC7L,IAAI,EAAE,CAAA;;AAErB;AACJ;AACA;AACA;AACI,IAAA,IAAI,CAACgwB,UAAU,GAAG9hB,mBAAmB,EAAE,CAAA;IAEvC,MAAM;MACJE,SAAS;MACTJ,QAAQ,GAAG,IAAI,CAACiiB,eAAe,CAACtxB,OAAO,EAAE,IAAI,CAACqxB,UAAU,CAAC;AACzD7uB,MAAAA,UAAU,GAAG,EAAC;AAChB,KAAC,GAAGxC,OAAO,CAAA;;AAEX;AACJ;AACA;AACA;IACI,IAAI,CAACuxB,MAAM,GAAG;AACZ9a,MAAAA,WAAW,EAAE,IAAI;AACjBnW,MAAAA,IAAI,EAAE,IAAI;MACVkC,UAAU;MACVmH,MAAM,EAAE,EAAE;AACVwH,MAAAA,MAAM,EAAE,IAAA;KACT,CAAA;AAED,IAAA,IAAI,CAAC5F,GAAG,GAAG8D,QAAQ,CAAC9D,GAAG,CAAA;AAEvB,IAAA,IAAI,CAACimB,MAAM,GAAGniB,QAAQ,CAACmiB,MAAM,CAAA;IAE7B,IAAI,CAACjmB,GAAG,CAAC,UAAU,CAAC,CAAC7K,IAAI,CAAC,WAAW,CAAC,CAAA;AAEtC,IAAA,IAAI+O,SAAS,EAAE;AACb,MAAA,IAAI,CAACgiB,QAAQ,CAAChiB,SAAS,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;AAEAxE,EAAAA,KAAK,GAAG;AAEN;AACA,IAAA,IAAI,CAACymB,KAAK,CAAC,eAAe,CAAC,CAAA;;AAE3B;AACA,IAAA,IAAI,CAACA,KAAK,CAAC,YAAY,CAAC,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACA;AACEC,EAAAA,OAAO,GAAG;AAER;IACA,IAAI,CAACpmB,GAAG,CAAC,UAAU,CAAC,CAAC7K,IAAI,CAAC,cAAc,CAAC,CAAA;;AAEzC;IACA,IAAI,CAAC6K,GAAG,CAAC,UAAU,CAAC,CAAC7K,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAE5C,IAAA,IAAI,CAACkxB,OAAO,CAAC,KAAK,CAAC,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACE/f,EAAAA,YAAY,CAACV,MAAM,EAAE7Q,IAAI,GAAG,EAAE,EAAE;AAC9B,IAAA,OAAO,IAAIuxB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,IAAI;QACF,IAAI,CAAC9mB,KAAK,EAAE,CAAA;QAEZ,MAAM;AACJkG,UAAAA,MAAM,EAAEY,cAAc;AACtBzR,UAAAA,IAAI,EAAE2R,eAAe;AACrBH,UAAAA,QAAAA;AACF,SAAC,GAAG,IAAI,CAACvG,GAAG,CAAC,UAAU,CAAC,CAACsG,YAAY,CAACV,MAAM,EAAE7Q,IAAI,CAAC,CAAA;QAEnD,IAAI,CAAC0xB,SAAS,CAAC;AACb1xB,UAAAA,IAAI,EAAE2R,eAAe;UACrBtI,MAAM,EAAE,EAAE;AACVwH,UAAAA,MAAM,EAAEY,cAAc;UACtB0E,WAAW,EAAE5F,KAAK,CAACoB,eAAe,CAAA;AACpC,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAACyf,KAAK,CAAC,aAAa,EAAE;AAAE5f,UAAAA,QAAAA;AAAS,SAAC,CAAC,CAAA;AAEvC,QAAA,OAAOggB,OAAO,CAAC;AAAEhgB,UAAAA,QAAAA;AAAS,SAAC,CAAC,CAAA;OAC7B,CAAC,OAAOrR,KAAK,EAAE;AACd,QAAA,IAAI,CAACixB,KAAK,CAAC,aAAa,EAAE;UACxBjxB,KAAK;AACLqR,UAAAA,QAAQ,EAAErR,KAAK,CAACqR,QAAQ,IAAI,EAAA;AAC9B,SAAC,CAAC,CAAA;QAEF,OAAOigB,MAAM,CAACtxB,KAAK,CAAC,CAAA;AACtB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEmwB,EAAAA,MAAM,GAAG;IAEP,MAAM;AACJpuB,MAAAA,UAAAA;AACF,KAAC,GAAG,IAAI,CAACkU,SAAS,EAAE,CAAA;IAEpB,IAAIlU,UAAU,CAACob,QAAQ,EAAE;AACvB,MAAA,MAAM,IAAIxd,KAAK,CAAC,mBAAmB,CAAC,CAAA;AACtC,KAAA;AAEA,IAAA,MAAME,IAAI,GAAG,IAAI,CAAC2xB,cAAc,EAAE,CAAA;AAElC,IAAA,MAAMtoB,MAAM,GAAG,IAAI,CAACD,QAAQ,EAAE,CAAA;IAC9B,MAAMwoB,cAAc,GAAG,IAAI,CAACC,gBAAgB,CAACxoB,MAAM,EAAErJ,IAAI,CAAC,CAAA;AAE1D,IAAA,MAAMC,MAAM,GAAG;MACbD,IAAI;AACJqJ,MAAAA,MAAM,EAAEuoB,cAAAA;KACT,CAAA;AAED,IAAA,IAAI,CAACR,KAAK,CAAC,QAAQ,EAAEnxB,MAAM,CAAC,CAAA;AAE5B,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AAEAswB,EAAAA,KAAK,GAAG;AACN,IAAA,IAAI,CAACa,KAAK,CAAC,OAAO,CAAC,CAAA;IAEnB,IAAI,CAACM,SAAS,CAAC;MACb1xB,IAAI,EAAEuQ,KAAK,CAAC,IAAI,CAAC0gB,MAAM,CAAC9a,WAAW,CAAC;AACpC9M,MAAAA,MAAM,EAAE,EAAC;AACX,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACED,EAAAA,QAAQ,GAAG;AACT,IAAA,MAAMrH,iBAAiB,GAAG,IAAI,CAACkJ,GAAG,CAAC,mBAAmB,CAAC;AACjD2lB,MAAAA,SAAS,GAAG,IAAI,CAAC3lB,GAAG,CAAC,WAAW,CAAC,CAAA;IAEvC,MAAM;AAAEjL,MAAAA,IAAAA;AAAK,KAAC,GAAG,IAAI,CAACoW,SAAS,EAAE,CAAA;AAEjC,IAAA,MAAM/M,MAAM,GAAGtH,iBAAiB,CAACc,MAAM,EAAE,CAACC,MAAM,CAAC,CAACuG,MAAM,EAAEF,KAAK,KAAK;MAClE,MAAM;QACJyJ,QAAQ;AACRX,QAAAA,KAAAA;AACF,OAAC,GAAG9I,KAAK,CAAA;AAET,MAAA,IAAIyJ,QAAQ,EAAE;AACZ,QAAA,OAAOvJ,MAAM,CAAA;AACf,OAAA;AAEA,MAAA,MAAMhK,KAAK,GAAG4L,WAAG,CAACjL,IAAI,EAAEiS,KAAK,CAAC,CAAA;MAE9B,MAAMoL,WAAW,GAAGuT,SAAS,CAAC1nB,aAAa,CAACC,KAAK,EAAE9J,KAAK,CAAC,CAAA;AAEzD,MAAA,OAAO8lB,WAAG,CAAC9b,MAAM,EAAE,CAAEqG,aAAa,CAACuC,KAAK,CAAC,CAAE,EAAEoL,WAAW,CAACzV,MAAM,GAAGyV,WAAW,GAAGlX,SAAS,CAAC,CAAA;AAC5F,KAAC,uBAAyB,EAAE,CAAE,CAAA;IAE9B,IAAI,CAACurB,SAAS,CAAC;AAAEroB,MAAAA,MAAAA;AAAO,KAAC,CAAC,CAAA;AAE1B,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;;AAEA;AACF;AACA;EACE8nB,QAAQ,CAACW,UAAU,EAAE;IACnB,IAAI,CAACA,UAAU,EAAE;AACf,MAAA,MAAM,IAAIhyB,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACxC,KAAA;IAEA,IAAI,CAACiyB,MAAM,EAAE,CAAA;AAEb,IAAA,IAAIzyB,gBAAQ,CAACwyB,UAAU,CAAC,EAAE;AACxBA,MAAAA,UAAU,GAAG1iB,QAAQ,CAACmI,aAAa,CAACua,UAAU,CAAC,CAAA;AACjD,KAAA;AAEA,IAAA,MAAM3iB,SAAS,GAAG,IAAI,CAAC4hB,UAAU,CAAA;AAEjCe,IAAAA,UAAU,CAACE,WAAW,CAAC7iB,SAAS,CAAC,CAAA;AAEjC,IAAA,IAAI,CAACiiB,KAAK,CAAC,QAAQ,CAAC,CAAA;AACtB,GAAA;AAEAW,EAAAA,MAAM,GAAG;IACP,IAAI,CAACT,OAAO,EAAE,CAAA;AAChB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEA,EAAAA,OAAO,CAACW,IAAI,GAAG,IAAI,EAAE;AACnB,IAAA,MAAM9iB,SAAS,GAAG,IAAI,CAAC4hB,UAAU;MAC3Be,UAAU,GAAG3iB,SAAS,CAAC2iB,UAAU,CAAA;IAEvC,IAAI,CAACA,UAAU,EAAE;AACf,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIG,IAAI,EAAE;AACR,MAAA,IAAI,CAACb,KAAK,CAAC,QAAQ,CAAC,CAAA;AACtB,KAAA;AAEAU,IAAAA,UAAU,CAACI,WAAW,CAAC/iB,SAAS,CAAC,CAAA;AACnC,GAAA;;AAEA;AACF;AACA;AACA;AACEgjB,EAAAA,WAAW,CAACjhB,QAAQ,EAAE7R,KAAK,EAAE;AAC3B,IAAA,MAAM6C,UAAU,GAAGijB,WAAG,CAAC,IAAI,CAAC/O,SAAS,EAAE,CAAClU,UAAU,EAAE,CAAEgP,QAAQ,CAAE,EAAE7R,KAAK,CAAC,CAAA;IAExE,IAAI,CAACqyB,SAAS,CAAC;AAAExvB,MAAAA,UAAAA;AAAW,KAAC,CAAC,CAAA;AAChC,GAAA;;AAEA;AACF;AACA;AACA;AACEsD,EAAAA,GAAG,CAAC7F,IAAI,EAAEyyB,OAAO,EAAE;IACjB,IAAI,CAACnnB,GAAG,CAAC,UAAU,CAAC,CAACzF,GAAG,CAAC7F,IAAI,EAAEyyB,OAAO,CAAC,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEpB,EAAAA,eAAe,CAACtxB,OAAO,EAAEyP,SAAS,EAAE;IAClC,MAAM;AACJkjB,MAAAA,iBAAiB,GAAG,EAAE;MACtBC,OAAO,GAAG,IAAI,CAACC,WAAW,EAAA;AAC5B,KAAC,GAAG7yB,OAAO,CAAA;AAEX,IAAA,MAAMsf,MAAM,GAAG;AACbwR,MAAAA,QAAQ,EAAE;AACRrhB,QAAAA,SAAAA;AACF,OAAA;KACD,CAAA;IAED,OAAON,cAAc,CAAC,CACpB;AAAEmQ,MAAAA,MAAM,EAAE,CAAE,OAAO,EAAEA,MAAM,CAAA;AAAG,KAAC,EAC/B;AAAE7B,MAAAA,IAAI,EAAE,CAAE,OAAO,EAAE,IAAI,CAAA;KAAI,EAC3BqV,IAAI,EACJ,GAAGF,OAAO,EACV,GAAGD,iBAAiB,CACrB,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACEjB,EAAAA,KAAK,CAACzxB,IAAI,EAAEK,IAAI,EAAE;IAChB,IAAI,CAACiL,GAAG,CAAC,UAAU,CAAC,CAAC7K,IAAI,CAACT,IAAI,EAAEK,IAAI,CAAC,CAAA;AACvC,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACEqwB,OAAO,CAACD,MAAM,EAAE;IACd,MAAM;MACJjnB,KAAK;AACL9J,MAAAA,KAAAA;AACF,KAAC,GAAG+wB,MAAM,CAAA;IAEV,MAAM;AAAEne,MAAAA,KAAAA;AAAM,KAAC,GAAG9I,KAAK,CAAA;IAEvB,IAAI;MACFnJ,IAAI;AACJqJ,MAAAA,MAAAA;AACF,KAAC,GAAG,IAAI,CAAC+M,SAAS,EAAE,CAAA;AAEpB,IAAA,MAAMwa,SAAS,GAAG,IAAI,CAAC3lB,GAAG,CAAC,WAAW,CAAC,CAAA;IAEvC,MAAMoS,WAAW,GAAGuT,SAAS,CAAC1nB,aAAa,CAACC,KAAK,EAAE9J,KAAK,CAAC,CAAA;AAEzD8lB,IAAAA,WAAG,CAACnlB,IAAI,EAAEiS,KAAK,EAAE5S,KAAK,CAAC,CAAA;AAEvB8lB,IAAAA,WAAG,CAAC9b,MAAM,EAAE,CAAEqG,aAAa,CAACuC,KAAK,CAAC,CAAE,EAAEoL,WAAW,CAACzV,MAAM,GAAGyV,WAAW,GAAGlX,SAAS,CAAC,CAAA;IAEnF,IAAI,CAACurB,SAAS,CAAC;AACb1xB,MAAAA,IAAI,EAAEuQ,KAAK,CAACvQ,IAAI,CAAC;MACjBqJ,MAAM,EAAEkH,KAAK,CAAClH,MAAM,CAAA;AACtB,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACE+M,EAAAA,SAAS,GAAG;IACV,OAAO,IAAI,CAAC6a,MAAM,CAAA;AACpB,GAAA;;AAEA;AACF;AACA;EACES,SAAS,CAACxb,KAAK,EAAE;IACf,IAAI,CAAC+a,MAAM,GAAG;MACZ,GAAG,IAAI,CAACA,MAAM;MACd,GAAG/a,KAAAA;KACJ,CAAA;IAED,IAAI,CAACkb,KAAK,CAAC,SAAS,EAAE,IAAI,CAAChb,SAAS,EAAE,CAAC,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACEmc,EAAAA,WAAW,GAAG;AACZ,IAAA,OAAO,CACLE,wBAAwB,EACxBC,cAAc,CACf,CAAA;AACH,GAAA;;AAEA;AACF;AACA;AACE5B,EAAAA,QAAQ,CAACnxB,IAAI,EAAE2E,QAAQ,EAAE8tB,OAAO,EAAE;AAChC,IAAA,IAAI,CAACnnB,GAAG,CAAC,UAAU,CAAC,CAAC9G,EAAE,CAACxE,IAAI,EAAE2E,QAAQ,EAAE8tB,OAAO,CAAC,CAAA;AAClD,GAAA;;AAEA;AACF;AACA;AACET,EAAAA,cAAc,GAAG;AAEf,IAAA,MAAM5vB,iBAAiB,GAAG,IAAI,CAACkJ,GAAG,CAAC,mBAAmB,CAAC,CAAA;AACvD,IAAA,MAAM+J,QAAQ,GAAG,IAAI,CAACoB,SAAS,EAAE,CAACpW,IAAI,CAAA;AAEtC,IAAA,MAAM2yB,UAAU,GAAG5wB,iBAAiB,CAACc,MAAM,EAAE,CAACC,MAAM,CAAC,CAAC8vB,QAAQ,EAAEzpB,KAAK,KAAK;MACxE,MAAM;QACJyJ,QAAQ;AACRX,QAAAA,KAAAA;AACF,OAAC,GAAG9I,KAAK,CAAA;;AAET;AACA,MAAA,IAAIyJ,QAAQ,IAAI,CAACX,KAAK,EAAE;AACtB,QAAA,OAAO2gB,QAAQ,CAAA;AACjB,OAAA;AAEA,MAAA,MAAMvzB,KAAK,GAAG4L,WAAG,CAAC+J,QAAQ,EAAE/C,KAAK,CAAC,CAAA;MAElC,OAAO;AACL,QAAA,GAAG2gB,QAAQ;AACX,QAAA,CAAE3gB,KAAK,CAAE,CAAC,CAAE,GAAI5S,KAAAA;OACjB,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;IAEN,MAAMwzB,kBAAkB,GAAG,IAAI,CAAChB,gBAAgB,CAACc,UAAU,EAAE3d,QAAQ,CAAC,CAAA;AAEtE,IAAA,OAAO6d,kBAAkB,CAAA;AAC3B,GAAA;;AAEA;AACF;AACA;AACEhB,EAAAA,gBAAgB,CAACiB,QAAQ,EAAE9yB,IAAI,EAAE;AAC/B,IAAA,MAAMoD,gBAAgB,GAAG,IAAI,CAAC6H,GAAG,CAAC,kBAAkB,CAAC,CAAA;AACrD,IAAA,OAAO7H,gBAAgB,CAACnB,eAAe,CAAC6wB,QAAQ,EAAE9yB,IAAI,CAAC,CAAA;AACzD,GAAA;AACF;;AC1aM+yB,MAAAA,aAAa,GAAG,EAAC;;AAOvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAU,CAACtzB,OAAO,EAAE;EAClC,MAAM;IACJM,IAAI;IACJ6Q,MAAM;IACN,GAAGoiB,IAAAA;AACL,GAAC,GAAGvzB,OAAO,CAAA;AAEX,EAAA,MAAMyd,IAAI,GAAG,IAAI0T,IAAI,CAACoC,IAAI,CAAC,CAAA;EAE3B,OAAO9V,IAAI,CAAC5L,YAAY,CAACV,MAAM,EAAE7Q,IAAI,CAAC,CAACkzB,IAAI,CAAC,YAAW;AACrD,IAAA,OAAO/V,IAAI,CAAA;AACb,GAAC,CAAC,CAAA;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/features/expression-language/FeelExpressionLanguage.js","../src/features/expression-language/FeelersTemplating.js","../src/features/expression-language/ConditionChecker.js","../src/features/expression-language/index.js","../src/features/markdown/MarkdownRenderer.js","../src/features/markdown/index.js","../../../node_modules/diagram-js/lib/core/EventBus.js","../src/render/components/util/numberFieldUtil.js","../src/core/Validator.js","../src/core/FormFieldRegistry.js","../src/core/FormLayouter.js","../src/util/constants/DatetimeConstants.js","../src/util/constants/ValuesSourceConstants.js","../src/util/injector.js","../src/util/form.js","../src/util/index.js","../src/import/Importer.js","../src/import/index.js","../src/render/components/Util.js","../src/render/components/form-fields/Button.js","../src/render/context/FormRenderContext.js","../src/render/context/FormContext.js","../src/render/components/Description.js","../src/render/components/Errors.js","../src/render/components/Label.js","../src/render/components/form-fields/Checkbox.js","../src/render/components/util/valuesUtil.js","../src/render/hooks/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/useFilteredFormData.js","../src/render/hooks/useCondition.js","../src/render/hooks/useExpressionEvaluation.js","../src/render/hooks/useKeyDownAction.js","../src/render/hooks/useTemplateEvaluation.js","../src/render/components/FormField.js","../src/render/components/form-fields/Default.js","../src/render/components/form-fields/icons/Calendar.svg","../src/render/components/form-fields/parts/InputAdorner.js","../src/render/components/form-fields/parts/Datepicker.js","../src/render/components/form-fields/icons/Clock.svg","../src/render/components/form-fields/parts/DropdownList.js","../src/render/components/form-fields/parts/Timepicker.js","../src/render/components/form-fields/Datetime.js","../src/render/components/PoweredBy.js","../src/render/components/FormComponent.js","../src/render/components/Sanitizer.js","../src/render/components/form-fields/icons/ImagePlaceholder.svg","../src/render/components/form-fields/Image.js","../src/render/components/form-fields/icons/AngelDown.svg","../src/render/components/form-fields/icons/AngelUp.svg","../src/render/components/form-fields/Number.js","../src/render/components/form-fields/Radio.js","../src/render/components/form-fields/icons/XMark.svg","../src/render/components/form-fields/parts/SearchableSelect.js","../src/render/components/form-fields/parts/SimpleSelect.js","../src/render/components/form-fields/Select.js","../src/render/components/form-fields/Taglist.js","../src/render/components/form-fields/Text.js","../src/render/components/form-fields/Textfield.js","../src/render/components/form-fields/Textarea.js","../src/render/components/icons/Button.svg","../src/render/components/icons/Checkbox.svg","../src/render/components/icons/Checklist.svg","../src/render/components/icons/Datetime.svg","../src/render/components/icons/Taglist.svg","../src/render/components/icons/Form.svg","../src/render/components/icons/Group.svg","../src/render/components/icons/Number.svg","../src/render/components/icons/Radio.svg","../src/render/components/icons/Select.svg","../src/render/components/icons/Text.svg","../src/render/components/icons/Textfield.svg","../src/render/components/icons/Textarea.svg","../src/render/components/icons/Image.svg","../src/render/components/icons/index.js","../src/render/components/index.js","../src/render/FormFields.js","../src/render/Renderer.js","../src/render/index.js","../src/core/index.js","../src/Form.js","../src/index.js"],"sourcesContent":["import { evaluate, parseExpressions, parseUnaryTests } from 'feelin';\r\nimport { isString } from 'min-dash';\r\n\r\nexport default class FeelExpressionLanguage {\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * Determines if the given string is a FEEL expression.\r\n *\r\n * @param {string} value\r\n * @returns {boolean}\r\n *\r\n */\r\n isExpression(value) { return isString(value) && value.startsWith('='); }\r\n\r\n /**\r\n * Retrieve variable names from a given FEEL expression.\r\n *\r\n * @param {string} expression\r\n * @param {object} [options]\r\n * @param {string} [options.type]\r\n *\r\n * @returns {string[]}\r\n */\r\n getVariableNames(expression, options = {}) {\r\n\r\n const {\r\n type = 'expression'\r\n } = options;\r\n\r\n if (!this.isExpression(expression)) {\r\n return [];\r\n }\r\n\r\n if (type === 'unaryTest') {\r\n return this._getUnaryVariableNames(expression);\r\n }\r\n else if (type === 'expression') {\r\n return this._getExpressionVariableNames(expression);\r\n }\r\n\r\n throw new Error('Unknown expression type: ' + options.type);\r\n }\r\n\r\n /**\r\n * Evaluate an expression.\r\n *\r\n * @param {string} expression\r\n * @param {import('../../types').Data} [data]\r\n *\r\n * @returns {any}\r\n */\r\n evaluate(expression, data = {}) {\r\n if (!expression) {\r\n return null;\r\n }\r\n\r\n if (!isString(expression) || !expression.startsWith('=')) {\r\n return null;\r\n }\r\n\r\n try {\r\n const result = evaluate(expression.slice(1), data);\r\n\r\n return result;\r\n } catch (error) {\r\n this._eventBus.fire('error', { error });\r\n return null;\r\n }\r\n }\r\n\r\n _getExpressionVariableNames(expression) {\r\n const tree = parseExpressions(expression);\r\n const cursor = tree.cursor();\r\n\r\n const variables = new Set();\r\n do {\r\n const node = cursor.node;\r\n\r\n if (node.type.name === 'VariableName') {\r\n variables.add(expression.slice(node.from, node.to));\r\n }\r\n\r\n } while (cursor.next());\r\n\r\n return Array.from(variables);\r\n }\r\n\r\n _getUnaryVariableNames(unaryTest) {\r\n const tree = parseUnaryTests(unaryTest);\r\n const cursor = tree.cursor();\r\n\r\n const variables = new Set();\r\n do {\r\n const node = cursor.node;\r\n\r\n if (node.type.name === 'VariableName') {\r\n variables.add(unaryTest.slice(node.from, node.to));\r\n }\r\n\r\n } while (cursor.next());\r\n\r\n return Array.from(variables);\r\n }\r\n}\r\n\r\nFeelExpressionLanguage.$inject = [\r\n 'eventBus'\r\n];","import { evaluate as evaluateFeelers } from 'feelers';\r\nimport { isString } from 'min-dash';\r\n\r\nexport default class FeelersTemplating {\r\n\r\n constructor() { }\r\n\r\n isTemplate(value) { return isString(value) && (value.startsWith('=') || /{{/.test(value)); }\r\n\r\n /**\r\n * Evaluate a template.\r\n *\r\n * @param {string} template\r\n * @param {Object<string, any>} context\r\n * @param {Object} options\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n * @returns\r\n */\r\n evaluate(template, context = {}, options = {}) {\r\n\r\n const {\r\n debug = false,\r\n strict = false,\r\n buildDebugString = (err) => ' {{⚠}} '\r\n } = options;\r\n\r\n return evaluateFeelers(template, context, { debug, strict, buildDebugString });\r\n }\r\n}\r\n\r\nFeelersTemplating.$inject = [];","import { unaryTest } from 'feelin';\r\nimport { isString } from 'min-dash';\r\n\r\n/**\r\n * @typedef {object} Condition\r\n * @property {string} [hide]\r\n */\r\n\r\nexport default class ConditionChecker {\r\n constructor(formFieldRegistry, eventBus) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * For given data, remove properties based on condition.\r\n *\r\n * @param {Object<string, any>} properties\r\n * @param {Object<string, any>} data\r\n */\r\n applyConditions(properties, data = {}) {\r\n\r\n const conditions = this._getConditions();\r\n\r\n const newProperties = { ...properties };\r\n\r\n for (const { key, condition } of conditions) {\r\n const shouldRemove = this._checkHideCondition(condition, data);\r\n\r\n if (shouldRemove) {\r\n delete newProperties[ key ];\r\n }\r\n }\r\n\r\n return newProperties;\r\n }\r\n\r\n /**\r\n * Check if given condition is met. Returns null for invalid/missing conditions.\r\n *\r\n * @param {string} condition\r\n * @param {import('../../types').Data} [data]\r\n *\r\n * @returns {boolean|null}\r\n */\r\n check(condition, data = {}) {\r\n if (!condition) {\r\n return null;\r\n }\r\n\r\n if (!isString(condition) || !condition.startsWith('=')) {\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n // cut off initial '='\r\n const result = unaryTest(condition.slice(1), data);\r\n\r\n return result;\r\n } catch (error) {\r\n this._eventBus.fire('error', { error });\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Check if hide condition is met.\r\n *\r\n * @param {Condition} condition\r\n * @param {Object<string, any>} data\r\n * @returns {boolean}\r\n */\r\n _checkHideCondition(condition, data) {\r\n if (!condition.hide) {\r\n return false;\r\n }\r\n\r\n const result = this.check(condition.hide, data);\r\n\r\n return result === true;\r\n }\r\n\r\n _getConditions() {\r\n const formFields = this._formFieldRegistry.getAll();\r\n\r\n return formFields.reduce((conditions, formField) => {\r\n const { key, conditional: condition } = formField;\r\n\r\n if (key && condition) {\r\n return [ ...conditions, { key, condition } ];\r\n }\r\n\r\n return conditions;\r\n\r\n }, []);\r\n }\r\n}\r\n\r\nConditionChecker.$inject = [\r\n 'formFieldRegistry',\r\n 'eventBus'\r\n];\r\n","import FeelExpressionLanguage from './FeelExpressionLanguage';\r\nimport FeelersTemplating from './FeelersTemplating';\r\nimport ConditionChecker from './ConditionChecker';\r\n\r\nexport default {\r\n __init__: [ 'expressionLanguage', 'templating', 'conditionChecker' ],\r\n expressionLanguage: [ 'type', FeelExpressionLanguage ],\r\n templating: [ 'type', FeelersTemplating ],\r\n conditionChecker: [ 'type', ConditionChecker ]\r\n};\r\n\r\nexport { FeelExpressionLanguage, FeelersTemplating, ConditionChecker };","import showdown from 'showdown';\r\n\r\n// bootstrap showdown to support github flavored markdown\r\nshowdown.setFlavor('github');\r\n\r\nexport default class MarkdownRenderer {\r\n\r\n constructor() {\r\n this._converter = new showdown.Converter();\r\n }\r\n\r\n /**\r\n * Render markdown to HTML.\r\n *\r\n * @param {string} markdown - The markdown to render\r\n *\r\n * @returns {string} HTML\r\n */\r\n render(markdown) {\r\n return this._converter.makeHtml(markdown);\r\n }\r\n}\r\n\r\nMarkdownRenderer.$inject = [];","import MarkdownRenderer from './MarkdownRenderer';\r\n\r\nexport default {\r\n __init__: [ 'markdownRenderer' ],\r\n markdownRenderer: [ 'type', MarkdownRenderer ],\r\n};\r\n\r\nexport { MarkdownRenderer };","import {\n isFunction,\n isArray,\n isNumber,\n bind,\n assign\n} from 'min-dash';\n\nvar FN_REF = '__fn';\n\nvar DEFAULT_PRIORITY = 1000;\n\nvar slice = Array.prototype.slice;\n\n/**\n * 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';\r\n\r\nexport function countDecimals(number) {\r\n const num = Big(number);\r\n if (num.toString() === num.toFixed(0)) return 0;\r\n return num.toFixed().split('.')[1].length || 0;\r\n}\r\n\r\nexport function isValidNumber(value) {\r\n return (typeof value === 'number' || typeof value === 'string') && value !== '' && !isNaN(Number(value));\r\n}\r\n\r\nexport function willKeyProduceValidNumber(key, previousValue, caretIndex, selectionWidth, decimalDigits) {\r\n\r\n // Dot and comma are both treated as dot\r\n previousValue = previousValue.replace(',', '.');\r\n const isFirstDot = !previousValue.includes('.') && (key === '.' || key === ',');\r\n const isFirstMinus = !previousValue.includes('-') && key === '-' && caretIndex === 0;\r\n\r\n const keypressIsNumeric = /^[0-9]$/i.test(key);\r\n const dotIndex = previousValue === undefined ? -1 : previousValue.indexOf('.');\r\n\r\n // If the caret is positioned after a dot, and the current decimal digits count is equal or greater to the maximum, disallow the key press\r\n const overflowsDecimalSpace = typeof(decimalDigits) === 'number'\r\n && selectionWidth === 0\r\n && dotIndex !== -1\r\n && previousValue.includes('.')\r\n && previousValue.split('.')[1].length >= decimalDigits\r\n && caretIndex > dotIndex;\r\n\r\n const keypressIsAllowedChar = keypressIsNumeric || ((decimalDigits !== 0) && isFirstDot) || isFirstMinus;\r\n\r\n return keypressIsAllowedChar && !overflowsDecimalSpace;\r\n\r\n}\r\n\r\nexport function isNullEquivalentValue(value) {\r\n return value === undefined || value === null || value === '';\r\n}\r\n","import { isNil } from 'min-dash';\r\nimport { countDecimals } from '../render/components/util/numberFieldUtil';\r\nimport Big from 'big.js';\r\n\r\nconst EMAIL_PATTERN = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\nconst PHONE_PATTERN = /(\\+|00)(297|93|244|1264|358|355|376|971|54|374|1684|1268|61|43|994|257|32|229|226|880|359|973|1242|387|590|375|501|1441|591|55|1246|673|975|267|236|1|61|41|56|86|225|237|243|242|682|57|269|238|506|53|5999|61|1345|357|420|49|253|1767|45|1809|1829|1849|213|593|20|291|212|34|372|251|358|679|500|33|298|691|241|44|995|44|233|350|224|590|220|245|240|30|1473|299|502|594|1671|592|852|504|385|509|36|62|44|91|246|353|98|964|354|972|39|1876|44|962|81|76|77|254|996|855|686|1869|82|383|965|856|961|231|218|1758|423|94|266|370|352|371|853|590|212|377|373|261|960|52|692|389|223|356|95|382|976|1670|258|222|1664|596|230|265|60|262|264|687|227|672|234|505|683|31|47|977|674|64|968|92|507|64|51|63|680|675|48|1787|1939|850|351|595|970|689|974|262|40|7|250|966|249|221|65|500|4779|677|232|503|378|252|508|381|211|239|597|421|386|46|268|1721|248|963|1649|235|228|66|992|690|993|670|676|1868|216|90|688|886|255|256|380|598|1|998|3906698|379|1784|58|1284|1340|84|678|681|685|967|27|260|263)(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{4,20}$/;\r\n\r\nexport default class Validator {\r\n\r\n validateField(field, value) {\r\n\r\n const { type, validate } = field;\r\n\r\n let errors = [];\r\n\r\n if (type === 'number') {\r\n\r\n const { decimalDigits, increment } = field;\r\n\r\n if (value === 'NaN') {\r\n\r\n errors = [\r\n ...errors,\r\n 'Value is not a number.'\r\n ];\r\n\r\n }\r\n else if (value) {\r\n\r\n if (decimalDigits >= 0 && countDecimals(value) > decimalDigits) {\r\n errors = [\r\n ...errors,\r\n 'Value is expected to ' +\r\n (decimalDigits === 0\r\n ? 'be an integer'\r\n : `have at most ${decimalDigits} decimal digit${decimalDigits > 1 ? 's' : ''}`\r\n ) + '.'\r\n ];\r\n }\r\n\r\n if (increment) {\r\n\r\n const bigValue = Big(value);\r\n const bigIncrement = Big(increment);\r\n\r\n const offset = bigValue.mod(bigIncrement);\r\n\r\n if (offset.cmp(0) !== 0) {\r\n const previousValue = bigValue.minus(offset);\r\n const nextValue = previousValue.plus(bigIncrement);\r\n\r\n errors = [\r\n ...errors,\r\n `Please select a valid value, the two nearest valid values are ${previousValue} and ${nextValue}.`\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!validate) {\r\n return errors;\r\n }\r\n\r\n if (validate.pattern && value && !new RegExp(validate.pattern).test(value)) {\r\n errors = [\r\n ...errors,\r\n `Field must match pattern ${ validate.pattern }.`\r\n ];\r\n }\r\n\r\n if (validate.required) {\r\n const isUncheckedCheckbox = type === 'checkbox' && value === false;\r\n const isUnsetValue = isNil(value) || value === '';\r\n const isEmptyMultiselect = Array.isArray(value) && value.length === 0;\r\n\r\n if (isUncheckedCheckbox || isUnsetValue || isEmptyMultiselect) {\r\n errors = [\r\n ...errors,\r\n 'Field is required.'\r\n ];\r\n }\r\n }\r\n\r\n if ('min' in validate && (value || value === 0) && value < validate.min) {\r\n errors = [\r\n ...errors,\r\n `Field must have minimum value of ${ validate.min }.`\r\n ];\r\n }\r\n\r\n if ('max' in validate && (value || value === 0) && value > validate.max) {\r\n errors = [\r\n ...errors,\r\n `Field must have maximum value of ${ validate.max }.`\r\n ];\r\n }\r\n\r\n if ('minLength' in validate && value && value.trim().length < validate.minLength) {\r\n errors = [\r\n ...errors,\r\n `Field must have minimum length of ${ validate.minLength }.`\r\n ];\r\n }\r\n\r\n if ('maxLength' in validate && value && value.trim().length > validate.maxLength) {\r\n errors = [\r\n ...errors,\r\n `Field must have maximum length of ${ validate.maxLength }.`\r\n ];\r\n }\r\n\r\n if ('validationType' in validate && value && validate.validationType === 'phone' && !PHONE_PATTERN.test(value)) {\r\n errors = [\r\n ...errors,\r\n 'Field must be a valid international phone number. (e.g. +4930664040900)'\r\n ];\r\n }\r\n\r\n if ('validationType' in validate && value && validate.validationType === 'email' && !EMAIL_PATTERN.test(value)) {\r\n errors = [\r\n ...errors,\r\n 'Field must be a valid email.'\r\n ];\r\n }\r\n\r\n return errors;\r\n }\r\n}\r\n\r\nValidator.$inject = [];","import Ids from 'ids';\r\n\r\nexport default class FormFieldRegistry {\r\n constructor(eventBus) {\r\n this._eventBus = eventBus;\r\n\r\n this._formFields = {};\r\n\r\n eventBus.on('form.clear', () => this.clear());\r\n\r\n this._ids = new Ids([ 32, 36, 1 ]);\r\n this._keys = new Ids([ 32, 36, 1 ]);\r\n }\r\n\r\n add(formField) {\r\n const { id } = formField;\r\n\r\n if (this._formFields[ id ]) {\r\n throw new Error(`form field with ID ${ id } already exists`);\r\n }\r\n\r\n this._eventBus.fire('formField.add', { formField });\r\n\r\n this._formFields[ id ] = formField;\r\n }\r\n\r\n remove(formField) {\r\n const { id } = formField;\r\n\r\n if (!this._formFields[ id ]) {\r\n return;\r\n }\r\n\r\n this._eventBus.fire('formField.remove', { formField });\r\n\r\n delete this._formFields[ id ];\r\n }\r\n\r\n get(id) {\r\n return this._formFields[ id ];\r\n }\r\n\r\n getAll() {\r\n return Object.values(this._formFields);\r\n }\r\n\r\n forEach(callback) {\r\n this.getAll().forEach((formField) => callback(formField));\r\n }\r\n\r\n clear() {\r\n this._formFields = {};\r\n\r\n this._ids.clear();\r\n this._keys.clear();\r\n }\r\n\r\n}\r\n\r\nFormFieldRegistry.$inject = [ 'eventBus' ];","import Ids from 'ids';\r\n\r\nimport { groupBy, flatten } from 'min-dash';\r\n\r\n\r\n/**\r\n * @typedef { { id: String, components: Array<String> } } FormRow\r\n * @typedef { { formFieldId: String, rows: Array<FormRow> } } FormRows\r\n */\r\n\r\n/**\r\n * Maintains the Form layout in a given structure, for example\r\n *\r\n * [\r\n * {\r\n * formFieldId: 'FormField_1',\r\n * rows: [\r\n * { id: 'Row_1', components: [ 'Text_1', 'Textdield_1', ... ] }\r\n * ]\r\n * }\r\n * ]\r\n *\r\n */\r\nexport default class FormLayouter {\r\n\r\n constructor(eventBus) {\r\n\r\n /** @type Array<FormRows> */\r\n this._rows = [];\r\n this._ids = new Ids([ 32, 36, 1 ]);\r\n\r\n this._eventBus = eventBus;\r\n }\r\n\r\n /**\r\n * @param {FormRow} row\r\n */\r\n addRow(formFieldId, row) {\r\n let rowsPerComponent = this._rows.find(r => r.formFieldId === formFieldId);\r\n\r\n if (!rowsPerComponent) {\r\n rowsPerComponent = {\r\n formFieldId,\r\n rows: []\r\n };\r\n\r\n this._rows.push(rowsPerComponent);\r\n }\r\n\r\n rowsPerComponent.rows.push(row);\r\n }\r\n\r\n /**\r\n * @param {String} id\r\n * @returns {FormRow}\r\n */\r\n getRow(id) {\r\n const rows = allRows(this._rows);\r\n return rows.find(r => r.id === id);\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n * @returns {FormRow}\r\n */\r\n getRowForField(formField) {\r\n return allRows(this._rows).find(r => {\r\n const { components } = r;\r\n\r\n return components.includes(formField.id);\r\n });\r\n }\r\n\r\n /**\r\n * @param {String} formFieldId\r\n * @returns { Array<FormRow> }\r\n */\r\n getRows(formFieldId) {\r\n const rowsForField = this._rows.find(r => formFieldId === r.formFieldId);\r\n\r\n if (!rowsForField) {\r\n return [];\r\n }\r\n\r\n return rowsForField.rows;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n nextRowId() {\r\n return this._ids.nextPrefixed('Row_');\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n */\r\n calculateLayout(formField) {\r\n\r\n const {\r\n type,\r\n components\r\n } = formField;\r\n\r\n if (type !== 'default' || !components) {\r\n return;\r\n }\r\n\r\n // (1) calculate rows order (by component order)\r\n const rowsInOrder = groupByRow(components, this._ids);\r\n\r\n Object.entries(rowsInOrder).forEach(([ id, components ]) => {\r\n\r\n // (2) add fields to rows\r\n this.addRow(formField.id, {\r\n id: id,\r\n components: components.map(c => c.id)\r\n });\r\n });\r\n\r\n // (3) traverse through nested components\r\n components.forEach(field => this.calculateLayout(field));\r\n\r\n // (4) fire event to notify interested parties\r\n this._eventBus.fire('form.layoutCalculated', { rows: this._rows });\r\n }\r\n\r\n clear() {\r\n this._rows = [];\r\n this._ids.clear();\r\n\r\n // fire event to notify interested parties\r\n this._eventBus.fire('form.layoutCleared');\r\n }\r\n}\r\n\r\nFormLayouter.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////\r\n\r\nfunction groupByRow(components, ids) {\r\n return groupBy(components, c => {\r\n\r\n // mitigate missing row by creating new (handle legacy)\r\n const { layout } = c;\r\n\r\n if (!layout || !layout.row) {\r\n return ids.nextPrefixed('Row_');\r\n }\r\n\r\n return layout.row;\r\n });\r\n}\r\n\r\n/**\r\n * @param {Array<FormRows>} formRows\r\n * @returns {Array<FormRow>}\r\n */\r\nfunction allRows(formRows) {\r\n return flatten(formRows.map(c => c.rows));\r\n}","// config ///////////////////\r\n\r\nexport const MINUTES_IN_DAY = 60 * 24;\r\n\r\nexport const DATETIME_SUBTYPES = {\r\n DATE: 'date',\r\n TIME: 'time',\r\n DATETIME: 'datetime'\r\n};\r\n\r\nexport const TIME_SERIALISING_FORMATS = {\r\n UTC_OFFSET: 'utc_offset',\r\n UTC_NORMALIZED: 'utc_normalized',\r\n NO_TIMEZONE: 'no_timezone'\r\n};\r\n\r\nexport const DATETIME_SUBTYPES_LABELS = {\r\n [DATETIME_SUBTYPES.DATE]: 'Date',\r\n [DATETIME_SUBTYPES.TIME]: 'Time',\r\n [DATETIME_SUBTYPES.DATETIME]: 'Date & Time'\r\n};\r\n\r\nexport const TIME_SERIALISINGFORMAT_LABELS = {\r\n [TIME_SERIALISING_FORMATS.UTC_OFFSET]: 'UTC offset',\r\n [TIME_SERIALISING_FORMATS.UTC_NORMALIZED]: 'UTC normalized',\r\n [TIME_SERIALISING_FORMATS.NO_TIMEZONE]: 'No timezone'\r\n};\r\n\r\nexport const DATETIME_SUBTYPE_PATH = [ 'subtype' ];\r\nexport const DATE_LABEL_PATH = [ 'dateLabel' ];\r\nexport const DATE_DISALLOW_PAST_PATH = [ 'disallowPassedDates' ];\r\nexport const TIME_LABEL_PATH = [ 'timeLabel' ];\r\nexport const TIME_USE24H_PATH = [ 'use24h' ];\r\nexport const TIME_INTERVAL_PATH = [ 'timeInterval' ];\r\nexport const TIME_SERIALISING_FORMAT_PATH = [ 'timeSerializingFormat' ];\r\n","import { get } from 'min-dash';\r\n\r\n// config ///////////////////\r\n\r\nexport const VALUES_SOURCES = {\r\n STATIC: 'static',\r\n INPUT: 'input'\r\n};\r\n\r\nexport const VALUES_SOURCE_DEFAULT = VALUES_SOURCES.STATIC;\r\n\r\nexport const VALUES_SOURCES_LABELS = {\r\n [VALUES_SOURCES.STATIC]: 'Static',\r\n [VALUES_SOURCES.INPUT]: 'Input data',\r\n};\r\n\r\nexport const VALUES_SOURCES_PATHS = {\r\n [VALUES_SOURCES.STATIC]: [ 'values' ],\r\n [VALUES_SOURCES.INPUT]: [ 'valuesKey' ],\r\n};\r\n\r\nexport const VALUES_SOURCES_DEFAULTS = {\r\n [VALUES_SOURCES.STATIC]: [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ],\r\n [VALUES_SOURCES.INPUT]: '',\r\n};\r\n\r\n// helpers ///////////////////\r\n\r\nexport function getValuesSource(field) {\r\n\r\n for (const source of Object.values(VALUES_SOURCES)) {\r\n if (get(field, VALUES_SOURCES_PATHS[source]) !== undefined) {\r\n return source;\r\n }\r\n }\r\n\r\n return VALUES_SOURCE_DEFAULT;\r\n}\r\n","import { Injector } from 'didi';\r\n\r\nexport function createInjector(bootstrapModules) {\r\n\r\n const injector = new Injector(bootstrapModules);\r\n\r\n injector.init();\r\n\r\n return injector;\r\n}","/**\r\n * @param {string?} prefix\r\n *\r\n * @returns Element\r\n */\r\nexport function createFormContainer(prefix = 'fjs') {\r\n const container = document.createElement('div');\r\n\r\n container.classList.add(`${ prefix }-container`);\r\n\r\n return container;\r\n}","import FeelExpressionLanguage from '../features/expression-language/FeelExpressionLanguage.js';\r\n\r\nexport * from './constants';\r\nexport * from './injector';\r\nexport * from './form';\r\n\r\nconst EXPRESSION_PROPERTIES = [\r\n 'alt',\r\n 'source',\r\n 'text'\r\n];\r\n\r\nexport function findErrors(errors, path) {\r\n return errors[ pathStringify(path) ];\r\n}\r\n\r\nexport function isRequired(field) {\r\n return field.required;\r\n}\r\n\r\nexport function pathParse(path) {\r\n if (!path) {\r\n return [];\r\n }\r\n\r\n return path.split('.').map(key => {\r\n return isNaN(parseInt(key)) ? key : parseInt(key);\r\n });\r\n}\r\n\r\nexport function pathsEqual(a, b) {\r\n return (\r\n a &&\r\n b &&\r\n a.length === b.length &&\r\n a.every((value, index) => value === b[ index ])\r\n );\r\n}\r\n\r\nexport function pathStringify(path) {\r\n if (!path) {\r\n return '';\r\n }\r\n\r\n return path.join('.');\r\n}\r\n\r\nconst indices = {};\r\n\r\nexport function generateIndexForType(type) {\r\n if (type in indices) {\r\n indices[ type ]++;\r\n } else {\r\n indices[ type ] = 1;\r\n }\r\n\r\n return indices[ type ];\r\n}\r\n\r\nexport function generateIdForType(type) {\r\n return `${ type }${ generateIndexForType(type) }`;\r\n}\r\n\r\n/**\r\n * @template T\r\n * @param {T} data\r\n * @param {(this: any, key: string, value: any) => any} [replacer]\r\n * @return {T}\r\n */\r\nexport function clone(data, replacer) {\r\n return JSON.parse(JSON.stringify(data, replacer));\r\n}\r\n\r\n/**\r\n * Parse the schema for input variables a form might make use of\r\n *\r\n * @param {any} schema\r\n *\r\n * @return {string[]}\r\n */\r\nexport function getSchemaVariables(schema, expressionLanguage = new FeelExpressionLanguage(null)) {\r\n\r\n if (!schema.components) {\r\n return [];\r\n }\r\n\r\n const variables = schema.components.reduce((variables, component) => {\r\n\r\n const {\r\n key,\r\n valuesKey,\r\n type,\r\n conditional\r\n } = component;\r\n\r\n if ([ 'button' ].includes(type)) {\r\n return variables;\r\n }\r\n\r\n if (key) {\r\n variables = [ ...variables, key ];\r\n }\r\n\r\n if (valuesKey) {\r\n variables = [ ...variables, valuesKey ];\r\n }\r\n\r\n if (conditional && conditional.hide) {\r\n\r\n const conditionVariables = expressionLanguage.getVariableNames(conditional.hide, { type: 'unaryTest' });\r\n\r\n variables = [ ...variables, ...conditionVariables ];\r\n }\r\n\r\n EXPRESSION_PROPERTIES.forEach((prop) => {\r\n const property = component[prop];\r\n\r\n if (property && expressionLanguage.isExpression(property)) {\r\n\r\n const expressionVariables = expressionLanguage.getVariableNames(property, { type: 'expression' });\r\n\r\n variables = [ ...variables, ...expressionVariables ];\r\n }\r\n });\r\n\r\n return variables;\r\n }, []);\r\n\r\n // remove duplicates\r\n return Array.from(new Set(variables));\r\n}\r\n","import {\r\n get,\r\n isUndefined\r\n} from 'min-dash';\r\n\r\nimport {\r\n clone,\r\n generateIdForType\r\n} from '../util';\r\n\r\n\r\nexport default class Importer {\r\n\r\n /**\r\n * @constructor\r\n * @param { import('../core').FormFieldRegistry } formFieldRegistry\r\n * @param { import('../render/FormFields').default } formFields\r\n * @param { import('../core').FormLayouter } formLayouter\r\n */\r\n constructor(formFieldRegistry, formFields, formLayouter) {\r\n this._formFieldRegistry = formFieldRegistry;\r\n this._formFields = formFields;\r\n this._formLayouter = formLayouter;\r\n }\r\n\r\n /**\r\n * Import schema adding `id`, `_parent` and `_path`\r\n * information to each field and adding it to the\r\n * form field registry.\r\n *\r\n * @param {any} schema\r\n * @param {any} [data]\r\n *\r\n * @return { { warnings: Array<any>, schema: any, data: any } }\r\n */\r\n importSchema(schema, data = {}) {\r\n\r\n // TODO: Add warnings - https://github.com/bpmn-io/form-js/issues/289\r\n const warnings = [];\r\n\r\n try {\r\n\r\n this._formLayouter.clear();\r\n\r\n const importedSchema = this.importFormField(clone(schema)),\r\n initializedData = this.initializeFieldValues(clone(data));\r\n\r\n this._formLayouter.calculateLayout(clone(importedSchema));\r\n\r\n return {\r\n warnings,\r\n schema: importedSchema,\r\n data: initializedData\r\n };\r\n } catch (err) {\r\n err.warnings = warnings;\r\n\r\n throw err;\r\n }\r\n }\r\n\r\n /**\r\n * @param {any} formField\r\n * @param {string} [parentId]\r\n *\r\n * @return {any} importedField\r\n */\r\n importFormField(formField, parentId) {\r\n const {\r\n components,\r\n key,\r\n type,\r\n id = generateIdForType(type)\r\n } = formField;\r\n\r\n if (parentId) {\r\n\r\n // set form field parent\r\n formField._parent = parentId;\r\n }\r\n\r\n if (!this._formFields.get(type)) {\r\n throw new Error(`form field of type <${ type }> not supported`);\r\n }\r\n\r\n if (key) {\r\n\r\n // validate <key> uniqueness\r\n if (this._formFieldRegistry._keys.assigned(key)) {\r\n throw new Error(`form field with key <${ key }> already exists`);\r\n }\r\n\r\n this._formFieldRegistry._keys.claim(key, formField);\r\n\r\n // TODO: buttons should not have key\r\n if (type !== 'button') {\r\n\r\n // set form field path\r\n formField._path = [ key ];\r\n }\r\n }\r\n\r\n if (id) {\r\n\r\n // validate <id> uniqueness\r\n if (this._formFieldRegistry._ids.assigned(id)) {\r\n throw new Error(`form field with id <${ id }> already exists`);\r\n }\r\n\r\n this._formFieldRegistry._ids.claim(id, formField);\r\n }\r\n\r\n // set form field ID\r\n formField.id = id;\r\n\r\n this._formFieldRegistry.add(formField);\r\n\r\n if (components) {\r\n this.importFormFields(components, id);\r\n }\r\n\r\n return formField;\r\n }\r\n\r\n importFormFields(components, parentId) {\r\n components.forEach((component) => {\r\n this.importFormField(component, parentId);\r\n });\r\n }\r\n\r\n /**\r\n * @param {Object} data\r\n *\r\n * @return {Object} initializedData\r\n */\r\n initializeFieldValues(data) {\r\n return this._formFieldRegistry.getAll().reduce((initializedData, formField) => {\r\n const {\r\n defaultValue,\r\n _path,\r\n type\r\n } = formField;\r\n\r\n // try to get value from data\r\n // if unavailable - try to get default value from form field\r\n // if unavailable - get empty value from form field\r\n\r\n if (_path) {\r\n\r\n const fieldImplementation = this._formFields.get(type);\r\n let valueData = get(data, _path);\r\n\r\n if (!isUndefined(valueData) && fieldImplementation.sanitizeValue) {\r\n valueData = fieldImplementation.sanitizeValue({ formField, data, value: valueData });\r\n }\r\n\r\n const initializedFieldValue = !isUndefined(valueData) ? valueData : (!isUndefined(defaultValue) ? defaultValue : fieldImplementation.emptyValue);\r\n\r\n initializedData = {\r\n ...initializedData,\r\n [_path[0]]: initializedFieldValue,\r\n };\r\n\r\n }\r\n\r\n return initializedData;\r\n\r\n }, data);\r\n }\r\n}\r\n\r\nImporter.$inject = [ 'formFieldRegistry', 'formFields', 'formLayouter' ];","import Importer from './Importer';\r\n\r\nexport default {\r\n importer: [ 'type', Importer ]\r\n};","import classNames from 'classnames';\r\n\r\nexport function formFieldClasses(type, { errors = [], disabled = false } = {}) {\r\n if (!type) {\r\n throw new Error('type required');\r\n }\r\n\r\n return classNames('fjs-form-field', `fjs-form-field-${type}`, {\r\n 'fjs-has-errors': errors.length > 0,\r\n 'fjs-disabled': disabled\r\n });\r\n}\r\n\r\nexport function gridColumnClasses(formField) {\r\n const {\r\n layout = {}\r\n } = formField;\r\n\r\n const {\r\n columns\r\n } = layout;\r\n\r\n return classNames(\r\n 'fjs-layout-column',\r\n `cds--col${columns ? '-lg-' + columns : ''}`,\r\n\r\n // always fall back to top-down on smallest screens\r\n 'cds--col-sm-16',\r\n 'cds--col-md-16'\r\n );\r\n}\r\n\r\n\r\nexport function prefixId(id, formId) {\r\n if (formId) {\r\n return `fjs-form-${ formId }-${ id }`;\r\n }\r\n\r\n return `fjs-form-${ id }`;\r\n}\r\n","import { formFieldClasses } from '../Util';\r\n\r\nconst type = 'button';\r\n\r\n\r\nexport default function Button(props) {\r\n const {\r\n disabled,\r\n field\r\n } = props;\r\n\r\n const { action = 'submit' } = field;\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <button class=\"fjs-button\" type={ action } disabled={ disabled }>{ field.label }</button>\r\n </div>;\r\n}\r\n\r\nButton.create = (options = {}) => ({\r\n action: 'submit',\r\n ...options\r\n});\r\n\r\nButton.type = type;\r\nButton.label = 'Button';\r\nButton.keyed = true;\r\nButton.group = 'action';","import { createContext } from 'preact';\r\n\r\nconst FormRenderContext = createContext({\r\n Empty: (props) => {\r\n return null;\r\n },\r\n Children: (props) => {\r\n return <div class={ props.class }>{ props.children }</div>;\r\n },\r\n Element: (props) => {\r\n return <div class={ props.class }>{ props.children }</div>;\r\n },\r\n Row: (props) => {\r\n return <div class={ props.class }>{ props.children }</div>;\r\n },\r\n Column: (props) => {\r\n if (props.field.type === 'default') {\r\n return props.children;\r\n }\r\n\r\n return <div class={ props.class }>{ props.children }</div>;\r\n }\r\n});\r\n\r\nexport default FormRenderContext;","import { createContext } from 'preact';\r\n\r\n/**\r\n * @param {string} type\r\n * @param {boolean} [strict]\r\n *\r\n * @returns {any}\r\n */\r\nfunction getService(type, strict) {}\r\n\r\nconst FormContext = createContext({\r\n getService,\r\n formId: null\r\n});\r\n\r\nexport default FormContext;","export default function Description(props) {\r\n const { description } = props;\r\n\r\n if (!description) {\r\n return null;\r\n }\r\n\r\n return <div class=\"fjs-form-field-description\">{ description }</div>;\r\n}","export default function Errors(props) {\r\n const { errors } = props;\r\n\r\n if (!errors.length) {\r\n return null;\r\n }\r\n\r\n return <div class=\"fjs-form-field-error\">\r\n <ul>\r\n {\r\n errors.map(error => {\r\n return <li>{ error }</li>;\r\n })\r\n }\r\n </ul>\r\n </div>;\r\n}","import classNames from 'classnames';\r\n\r\nexport default function Label(props) {\r\n const {\r\n id,\r\n label,\r\n collapseOnEmpty = true,\r\n required = false\r\n } = props;\r\n\r\n return (\r\n <label for={ id } class={ classNames('fjs-form-field-label', { 'fjs-incollapsible-label': !collapseOnEmpty }, props['class']) }>\r\n { props.children }\r\n { label || '' }\r\n {\r\n required && <span class=\"fjs-asterix\">*</span>\r\n }\r\n </label>\r\n );\r\n}","import { useContext } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\nimport classNames from 'classnames';\r\n\r\nconst type = 'checkbox';\r\n\r\n\r\nexport default function Checkbox(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value = false\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.checked\r\n });\r\n };\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ classNames(formFieldClasses(type, { errors, disabled }), { 'fjs-checked': value }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required }>\r\n <input\r\n checked={ value }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n id={ prefixId(id, formId) }\r\n type=\"checkbox\"\r\n onChange={ onChange } />\r\n </Label>\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nCheckbox.create = (options = {}) => ({\r\n ...options\r\n});\r\n\r\nCheckbox.type = type;\r\nCheckbox.label = 'Checkbox';\r\nCheckbox.keyed = true;\r\nCheckbox.emptyValue = false;\r\nCheckbox.sanitizeValue = ({ value }) => value === true;\r\nCheckbox.group = 'selection';","import { get } from 'min-dash';\r\n\r\n// parses the options data from the provided form field and form data\r\nexport function getValuesData(formField, formData) {\r\n const { valuesKey, values } = formField;\r\n return valuesKey ? get(formData, [ valuesKey ]) : values;\r\n}\r\n\r\n// transforms the provided options into a normalized format, trimming invalid options\r\nexport function normalizeValuesData(valuesData) {\r\n return valuesData.filter(_isValueSomething).map(v => _normalizeValueData(v)).filter(v => v);\r\n}\r\n\r\nfunction _normalizeValueData(valueData) {\r\n\r\n if (_isAllowedValue(valueData)) {\r\n\r\n // if a primitive is provided, use it as label and value\r\n return { value: valueData, label: `${ valueData }` };\r\n }\r\n\r\n if (typeof (valueData) === 'object') {\r\n if (!valueData.label && _isAllowedValue(valueData.value)) {\r\n\r\n // if no label is provided, use the value as label\r\n return { value: valueData.value, label: `${ valueData.value }` };\r\n }\r\n\r\n if (_isValueSomething(valueData.value) && _isAllowedValue(valueData.label)) {\r\n\r\n // if both value and label are provided, use them as is, in this scenario, the value may also be an object\r\n return valueData;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _isAllowedValue(value) {\r\n return _isReadableType(value) && _isValueSomething(value);\r\n}\r\n\r\nfunction _isReadableType(value) {\r\n return [ 'number', 'string', 'boolean' ].includes(typeof(value));\r\n}\r\n\r\nfunction _isValueSomething(value) {\r\n return value || value === 0 || value === false;\r\n}","import {\r\n useContext\r\n} from 'preact/hooks';\r\n\r\nimport { FormContext } from '../context';\r\n\r\nexport default function useService(type, strict) {\r\n const {\r\n getService\r\n } = useContext(FormContext);\r\n\r\n return getService(type, strict);\r\n}","import { useEffect, useState } from 'preact/hooks';\r\nimport { normalizeValuesData } from '../components/util/valuesUtil';\r\nimport useService from './useService';\r\n\r\n/**\r\n * @enum { String }\r\n */\r\nexport const LOAD_STATES = {\r\n LOADING: 'loading',\r\n LOADED: 'loaded',\r\n ERROR: 'error'\r\n};\r\n\r\n/**\r\n * @typedef {Object} ValuesGetter\r\n * @property {Object[]} values - The values data\r\n * @property {(LOAD_STATES)} state - The values data's loading state, to use for conditional rendering\r\n */\r\n\r\n/**\r\n * A hook to load values for single and multiselect components.\r\n *\r\n * @param {Object} field - The form field to handle values for\r\n * @return {ValuesGetter} valuesGetter - A values getter object providing loading state and values\r\n */\r\nexport default function(field) {\r\n const {\r\n valuesKey,\r\n values: staticValues\r\n } = field;\r\n\r\n const [ valuesGetter, setValuesGetter ] = useState({ values: [], error: undefined, state: LOAD_STATES.LOADING });\r\n const initialData = useService('form')._getState().initialData;\r\n\r\n useEffect(() => {\r\n\r\n let values = [];\r\n\r\n // dynamic values\r\n if (valuesKey !== undefined) {\r\n const keyedValues = (initialData || {})[ valuesKey ];\r\n\r\n if (keyedValues && Array.isArray(keyedValues)) {\r\n values = keyedValues;\r\n }\r\n }\r\n\r\n // static values\r\n else if (staticValues !== undefined) {\r\n values = Array.isArray(staticValues) ? staticValues : [];\r\n }\r\n else {\r\n setValuesGetter(buildErrorState('No values source defined in the form definition'));\r\n return;\r\n }\r\n\r\n // normalize data to support primitives and partially defined objects\r\n values = normalizeValuesData(values);\r\n\r\n setValuesGetter(buildLoadedState(values));\r\n\r\n }, [ valuesKey, staticValues, initialData ]);\r\n\r\n return valuesGetter;\r\n}\r\n\r\nconst buildErrorState = (error) => ({ values: [], error, state: LOAD_STATES.ERROR });\r\n\r\nconst buildLoadedState = (values) => ({ values, error: undefined, state: LOAD_STATES.LOADED });\r\n","import { isNumber } from 'min-dash';\r\nimport { MINUTES_IN_DAY, TIME_SERIALISING_FORMATS } from '../../../util/constants/DatetimeConstants';\r\n\r\nexport const ENTER_KEYDOWN_EVENT = new KeyboardEvent('keydown', {\r\n code: 'Enter',\r\n key: 'Enter',\r\n charCode: 13,\r\n keyCode: 13,\r\n view: window,\r\n bubbles: true\r\n});\r\n\r\nexport function focusRelevantFlatpickerDay(flatpickrInstance) {\r\n\r\n if (!flatpickrInstance) return;\r\n\r\n !flatpickrInstance.isOpen && flatpickrInstance.open();\r\n\r\n const container = flatpickrInstance.calendarContainer;\r\n const dayToFocus =\r\n container.querySelector('.flatpickr-day.selected') ||\r\n container.querySelector('.flatpickr-day.today') ||\r\n container.querySelector('.flatpickr-day');\r\n\r\n dayToFocus && dayToFocus.focus();\r\n}\r\n\r\nexport function formatTime(use24h, minutes) {\r\n\r\n if (minutes === null) return null;\r\n\r\n const wrappedMinutes = minutes % (24 * 60);\r\n\r\n const minute = minutes % 60;\r\n let hour = Math.floor(wrappedMinutes / 60);\r\n\r\n if (use24h) {\r\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute);\r\n }\r\n\r\n hour = (hour % 12 || 12);\r\n\r\n const isPM = (wrappedMinutes >= 12 * 60);\r\n\r\n return _getZeroPaddedString(hour) + ':' + _getZeroPaddedString(minute) + ' ' + (isPM ? 'PM' : 'AM');\r\n}\r\n\r\nexport function parseInputTime(stringTime) {\r\n\r\n let workingString = stringTime.toLowerCase();\r\n const is12h = workingString.includes('am') || workingString.includes('pm');\r\n\r\n if (is12h) {\r\n const isPM = workingString.includes('pm');\r\n const digits = workingString.match(/\\d+/g);\r\n const displayHour = parseInt(digits && digits[0]);\r\n const minute = parseInt(digits && digits[1]) || 0;\r\n\r\n const isValidDisplayHour = isNumber(displayHour) && (displayHour >= 1) && (displayHour <= 12);\r\n const isValidMinute = (minute >= 0) && (minute <= 59);\r\n\r\n if (!isValidDisplayHour || !isValidMinute) return null;\r\n\r\n const hour = (displayHour % 12) + (isPM ? 12 : 0);\r\n\r\n return hour * 60 + minute;\r\n }\r\n else {\r\n const digits = workingString.match(/\\d+/g);\r\n const hour = parseInt(digits && digits[0]);\r\n const minute = parseInt(digits && digits[1]);\r\n\r\n const isValidHour = isNumber(hour) && (hour >= 0) && (hour <= 23);\r\n const isValidMinute = isNumber(minute) && (minute >= 0) && (minute <= 59);\r\n\r\n if (!isValidHour || !isValidMinute) return null;\r\n\r\n return hour * 60 + minute;\r\n }\r\n}\r\n\r\nexport function serializeTime(minutes, offset, timeSerializingFormat) {\r\n\r\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\r\n const normalizedMinutes = (minutes + offset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n return _getZeroPaddedString(Math.floor(normalizedMinutes / 60)) + ':' + _getZeroPaddedString(normalizedMinutes % 60) + 'Z';\r\n }\r\n\r\n const baseTime = _getZeroPaddedString(Math.floor(minutes / 60)) + ':' + _getZeroPaddedString(minutes % 60);\r\n const addUTCOffset = timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_OFFSET;\r\n\r\n return baseTime + (addUTCOffset ? formatTimezoneOffset(offset) : '');\r\n}\r\n\r\nexport function parseIsoTime(isoTimeString) {\r\n\r\n if (!isoTimeString) return null;\r\n\r\n const parseBasicMinutes = (timeString) => {\r\n const timeSegments = timeString.split(':');\r\n const hour = parseInt(timeSegments[0]);\r\n const minute = timeSegments.length > 1 ? parseInt(timeSegments[1]) : 0;\r\n if (isNaN(hour) || hour < 0 || hour > 24 || isNaN(minute) || minute < 0 || minute > 60) return null;\r\n return hour * 60 + minute;\r\n };\r\n\r\n const localOffset = new Date().getTimezoneOffset();\r\n\r\n // Parse normalized time\r\n if (isoTimeString.includes('Z')) {\r\n isoTimeString = isoTimeString.replace('Z', '');\r\n const minutes = parseBasicMinutes(isoTimeString);\r\n if (minutes === null) return null;\r\n return (minutes - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Parse offset positive time\r\n else if (isoTimeString.includes('+')) {\r\n const [ timeString, offsetString ] = isoTimeString.split('+');\r\n\r\n const minutes = parseBasicMinutes(timeString);\r\n let inboundOffset = parseBasicMinutes(offsetString);\r\n\r\n if (minutes === null || inboundOffset === null) return null;\r\n\r\n // The offset is flipped for consistency with javascript\r\n inboundOffset = -inboundOffset;\r\n\r\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Parse offset negative time\r\n else if (isoTimeString.includes('-')) {\r\n const [ timeString, offsetString ] = isoTimeString.split('-');\r\n\r\n const minutes = parseBasicMinutes(timeString);\r\n let inboundOffset = parseBasicMinutes(offsetString);\r\n\r\n if (minutes === null || inboundOffset === null) return null;\r\n\r\n return (minutes + inboundOffset - localOffset + MINUTES_IN_DAY) % MINUTES_IN_DAY;\r\n }\r\n\r\n // Default to local parsing\r\n else {\r\n return parseBasicMinutes(isoTimeString);\r\n }\r\n}\r\n\r\nexport function serializeDate(date) {\r\n var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n if (day.length < 2)\r\n day = '0' + day;\r\n\r\n return [ year, month, day ].join('-');\r\n}\r\n\r\n// this method is used to make the `new Date(value)` parsing behavior stricter\r\nexport function isDateTimeInputInformationSufficient(value) {\r\n\r\n if (!value || typeof value !== 'string') return false;\r\n\r\n const segments = value.split('T');\r\n if (segments.length != 2) return false;\r\n\r\n const dateNumbers = segments[0].split('-');\r\n if (dateNumbers.length != 3) return false;\r\n\r\n return true;\r\n\r\n}\r\n\r\n// this method checks if the date isn't a datetime, or a partial date\r\nexport function isDateInputInformationMatching(value) {\r\n\r\n if (!value || typeof value !== 'string') return false;\r\n\r\n if (value.includes('T')) return false;\r\n\r\n const dateNumbers = value.split('-');\r\n if (dateNumbers.length != 3) return false;\r\n\r\n return true;\r\n}\r\n\r\nexport function serializeDateTime(date, time, timeSerializingFormat) {\r\n\r\n const workingDate = new Date();\r\n workingDate.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\r\n workingDate.setHours(Math.floor(time / 60), time % 60, 0, 0);\r\n\r\n if (timeSerializingFormat === TIME_SERIALISING_FORMATS.UTC_NORMALIZED) {\r\n\r\n const timezoneOffsetMinutes = workingDate.getTimezoneOffset();\r\n const dayOffset = (time + timezoneOffsetMinutes < 0) ? -1 : (((time + timezoneOffsetMinutes) > MINUTES_IN_DAY) ? 1 : 0);\r\n\r\n // Apply the date rollover pre-emptively\r\n workingDate.setHours(workingDate.getHours() + dayOffset * 24);\r\n }\r\n\r\n return serializeDate(workingDate) + 'T' + serializeTime(time, workingDate.getTimezoneOffset(), timeSerializingFormat);\r\n\r\n}\r\n\r\nexport function formatTimezoneOffset(minutes) {\r\n return _getSignedPaddedHours(minutes) + ':' + _getZeroPaddedString(Math.abs(minutes % 60));\r\n}\r\n\r\nexport function isInvalidDateString(value) {\r\n return isNaN(new Date(Date.parse(value)).getTime());\r\n}\r\n\r\nfunction _getSignedPaddedHours(minutes) {\r\n if (minutes > 0) {\r\n return '-' + _getZeroPaddedString(Math.floor(minutes / 60));\r\n }\r\n else {\r\n return '+' + _getZeroPaddedString(Math.floor((0 - minutes) / 60));\r\n }\r\n}\r\n\r\nfunction _getZeroPaddedString(time) {\r\n return time.toString().padStart(2, '0');\r\n}","import { DATETIME_SUBTYPES } from '../../../util/constants/DatetimeConstants';\r\nimport { isDateInputInformationMatching, isDateTimeInputInformationSufficient, isInvalidDateString, parseIsoTime } from './dateTimeUtil';\r\nimport { getValuesData, normalizeValuesData } from './valuesUtil';\r\n\r\nexport function sanitizeDateTimePickerValue(options) {\r\n const {\r\n formField,\r\n value\r\n } = options;\r\n\r\n const { subtype } = formField;\r\n\r\n if (typeof value !== 'string') return null;\r\n\r\n if (subtype === DATETIME_SUBTYPES.DATE && (isInvalidDateString(value) || !isDateInputInformationMatching(value))) return null;\r\n if (subtype === DATETIME_SUBTYPES.TIME && parseIsoTime(value) === null) return null;\r\n if (subtype === DATETIME_SUBTYPES.DATETIME && (isInvalidDateString(value) || !isDateTimeInputInformationSufficient(value))) return null;\r\n\r\n return value;\r\n}\r\n\r\nexport function sanitizeSingleSelectValue(options) {\r\n const {\r\n formField,\r\n data,\r\n value\r\n } = options;\r\n\r\n try {\r\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\r\n return validValues.includes(value) ? value : null;\r\n } catch (error) {\r\n\r\n // use default value in case of formatting error\r\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\r\n return null;\r\n }\r\n}\r\n\r\nexport function sanitizeMultiSelectValue(options) {\r\n const {\r\n formField,\r\n data,\r\n value\r\n } = options;\r\n\r\n try {\r\n const validValues = normalizeValuesData(getValuesData(formField, data)).map(v => v.value);\r\n return value.filter(v => validValues.includes(v));\r\n } catch (error) {\r\n\r\n // use default value in case of formatting error\r\n // TODO(@Skaiir): log a warning when this happens - https://github.com/bpmn-io/form-js/issues/289\r\n return [];\r\n }\r\n}\r\n\r\n\r\n","import { useContext } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\r\nimport classNames from 'classnames';\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'checklist';\r\n\r\n\r\nexport default function Checklist(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value = [],\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const toggleCheckbox = (v) => {\r\n\r\n let newValue = [ ...value ];\r\n\r\n if (!newValue.includes(v)) {\r\n newValue.push(v);\r\n } else {\r\n newValue = newValue.filter(x => x != v);\r\n }\r\n\r\n props.onChange({\r\n field,\r\n value: newValue,\r\n });\r\n };\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ classNames(formFieldClasses(type, { errors, disabled })) }>\r\n <Label\r\n label={ label }\r\n required={ required } />\r\n {\r\n loadState == LOAD_STATES.LOADED && options.map((v, index) => {\r\n return (\r\n <Label\r\n id={ prefixId(`${id}-${index}`, formId) }\r\n key={ `${id}-${index}` }\r\n label={ v.label }\r\n class={ classNames({\r\n 'fjs-checked': value.includes(v.value)\r\n }) }\r\n required={ false }>\r\n <input\r\n checked={ value.includes(v.value) }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n id={ prefixId(`${id}-${index}`, formId) }\r\n type=\"checkbox\"\r\n onClick={ () => toggleCheckbox(v.value) } />\r\n </Label>\r\n );\r\n })\r\n }\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nChecklist.create = (options = {}) => {\r\n\r\n const defaults = {};\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n};\r\n\r\nChecklist.type = type;\r\nChecklist.label = 'Checklist';\r\nChecklist.keyed = true;\r\nChecklist.emptyValue = [];\r\nChecklist.sanitizeValue = sanitizeMultiSelectValue;\r\nChecklist.group = 'selection';","import useService from './useService.js';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Returns the conditionally filtered data of a form reactively.\r\n * Memoised to minimize re-renders\r\n *\r\n */\r\nexport default function useFilteredFormData() {\r\n const { initialData, data } = useService('form')._getState();\r\n const conditionChecker = useService('conditionChecker', false);\r\n\r\n return useMemo(() => {\r\n const newData = conditionChecker ? conditionChecker.applyConditions(data, data) : data;\r\n return { ...initialData, ...newData };\r\n }, [ conditionChecker, data, initialData ]);\r\n\r\n}\r\n","import useService from './useService.js';\r\nimport useFilteredFormData from './useFilteredFormData.js';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Evaluate if condition is met reactively based on the conditionChecker and form data.\r\n *\r\n * @param {string | undefined} condition\r\n *\r\n * @returns {boolean} true if condition is met or no condition or condition checker exists\r\n */\r\nexport default function useCondition(condition) {\r\n const conditionChecker = useService('conditionChecker', false);\r\n const filteredData = useFilteredFormData();\r\n\r\n return useMemo(() => {\r\n return conditionChecker ? conditionChecker.check(condition, filteredData) : null;\r\n }, [ conditionChecker, condition, filteredData ]);\r\n}\r\n","import useService from './useService';\r\nimport useFilteredFormData from './useFilteredFormData';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Evaluate a string reactively based on the expressionLanguage and form data.\r\n * If the string is not an expression, it is returned as is.\r\n * Memoised to minimize re-renders.\r\n *\r\n * @param {string} value\r\n *\r\n */\r\nexport default function useExpressionEvaluation(value) {\r\n const formData = useFilteredFormData();\r\n const expressionLanguage = useService('expressionLanguage');\r\n\r\n return useMemo(() => {\r\n\r\n if (expressionLanguage && expressionLanguage.isExpression(value)) {\r\n return expressionLanguage.evaluate(value, formData);\r\n }\r\n\r\n return value;\r\n\r\n }, [ expressionLanguage, formData, value ]);\r\n}\r\n","import { useEffect } from 'preact/hooks';\r\n\r\nexport default function useKeyDownAction(targetKey, action, listenerElement = window) {\r\n\r\n function downHandler({ key }) {\r\n if (key === targetKey) {\r\n action();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n listenerElement.addEventListener('keydown', downHandler);\r\n\r\n return () => {\r\n listenerElement.removeEventListener('keydown', downHandler);\r\n };\r\n });\r\n}","import useService from './useService';\r\nimport useFilteredFormData from './useFilteredFormData';\r\nimport { useMemo } from 'preact/hooks';\r\n\r\n/**\r\n * Template a string reactively based on form data. If the string is not a template, it is returned as is.\r\n * Memoised to minimize re-renders\r\n *\r\n * @param {string} value\r\n * @param {Object} options\r\n * @param {boolean} [options.debug = false]\r\n * @param {boolean} [options.strict = false]\r\n * @param {Function} [options.buildDebugString]\r\n *\r\n */\r\nexport default function useTemplateEvaluation(value, options) {\r\n const filteredData = useFilteredFormData();\r\n const templating = useService('templating');\r\n\r\n return useMemo(() => {\r\n\r\n if (templating.isTemplate(value)) {\r\n return templating.evaluate(value, filteredData, options);\r\n }\r\n\r\n return value;\r\n\r\n }, [ filteredData, templating, value, options ]);\r\n}\r\n","import { useContext } from 'preact/hooks';\r\n\r\nimport { get } from 'min-dash';\r\n\r\nimport { FormRenderContext } from '../context';\r\n\r\nimport useService from '../hooks/useService';\r\nimport { useCondition } from '../hooks';\r\n\r\nimport { findErrors } from '../../util';\r\n\r\nimport { gridColumnClasses } from './Util';\r\n\r\nconst noop = () => false;\r\n\r\n\r\nexport default function FormField(props) {\r\n const {\r\n field,\r\n onChange\r\n } = props;\r\n\r\n const { _path } = field;\r\n\r\n const formFields = useService('formFields'),\r\n form = useService('form');\r\n\r\n const {\r\n data,\r\n errors,\r\n properties\r\n } = form._getState();\r\n\r\n const {\r\n Element,\r\n Empty,\r\n Column\r\n } = useContext(FormRenderContext);\r\n\r\n const FormFieldComponent = formFields.get(field.type);\r\n\r\n if (!FormFieldComponent) {\r\n throw new Error(`cannot render field <${field.type}>`);\r\n }\r\n\r\n const value = get(data, _path);\r\n\r\n const fieldErrors = findErrors(errors, _path);\r\n\r\n const disabled = properties.readOnly || field.disabled || false;\r\n\r\n const hidden = useCondition(field.conditional && field.conditional.hide || null);\r\n\r\n if (hidden) {\r\n return <Empty />;\r\n }\r\n\r\n return (\r\n <Column field={ field } class={ gridColumnClasses(field) }>\r\n <Element class=\"fjs-element\" field={ field }>\r\n <FormFieldComponent\r\n { ...props }\r\n disabled={ disabled }\r\n errors={ fieldErrors }\r\n onChange={ disabled ? noop : onChange }\r\n value={ value } />\r\n </Element>\r\n </Column>\r\n );\r\n}\r\n","import { useContext } from 'preact/hooks';\r\n\r\nimport useService from '../../hooks/useService';\r\n\r\nimport FormField from '../FormField';\r\n\r\nimport { FormRenderContext } from '../../context';\r\n\r\nexport default function Default(props) {\r\n const {\r\n Children,\r\n Empty,\r\n Row\r\n } = useContext(FormRenderContext);\r\n\r\n const { field } = props;\r\n\r\n const { id, components = [] } = field;\r\n\r\n const formLayouter = useService('formLayouter');\r\n const formFieldRegistry = useService('formFieldRegistry');\r\n const rows = formLayouter.getRows(id);\r\n\r\n return <Children class=\"fjs-vertical-layout fjs-children cds--grid cds--grid--condensed\" field={ field }>\r\n {\r\n\r\n rows.map(row => {\r\n const {\r\n components = []\r\n } = row;\r\n\r\n if (!components.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Row row={ row } class=\"fjs-layout-row cds--row\">\r\n {\r\n components.map(id => {\r\n\r\n const childField = formFieldRegistry.get(id);\r\n\r\n if (!childField) {\r\n return null;\r\n }\r\n\r\n return (\r\n <FormField\r\n { ...props }\r\n key={ childField.id }\r\n field={ childField } />\r\n );\r\n })\r\n }\r\n </Row>\r\n );\r\n })\r\n }\r\n {\r\n components.length ? null : <Empty />\r\n }\r\n </Children>;\r\n}\r\n\r\nDefault.create = (options = {}) => ({\r\n components: [],\r\n ...options\r\n});\r\n\r\nDefault.type = 'default';\r\nDefault.keyed = false;\r\nDefault.label = null;\r\nDefault.group = null;\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"14\",\n height: \"15\",\n viewBox: \"0 0 28 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n d: \"M19 2H9V0H7v2H2a2 2 0 00-2 2v24a2 2 0 002 2h24a2 2 0 002-2V4a2 2 0 00-2-2h-5V0h-2v2zM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7zm-5 4v17h24V11H2z\"\n})));","import classNames from 'classnames';\r\nimport { isString } from 'min-dash';\r\n\r\nexport default function InputAdorner(props) {\r\n\r\n const {\r\n pre = null,\r\n post = null,\r\n rootRef,\r\n inputRef,\r\n children,\r\n disabled,\r\n hasErrors\r\n } = props;\r\n\r\n const onAdornmentClick = () => inputRef && inputRef.current && inputRef.current.focus();\r\n\r\n return <div class={ classNames('fjs-input-group', { 'fjs-disabled': disabled }, { 'hasErrors': hasErrors }) } ref={ rootRef }>\r\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> }\r\n { children }\r\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> }\r\n </div>;\r\n\r\n}","import CalendarIcon from '../icons/Calendar.svg';\r\nimport flatpickr from 'flatpickr';\r\n\r\nimport { ENTER_KEYDOWN_EVENT, focusRelevantFlatpickerDay } from '../../util/dateTimeUtil';\r\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\r\nimport { prefixId } from '../../Util';\r\nimport InputAdorner from './InputAdorner';\r\nimport Label from '../../Label';\r\n\r\nexport default function Datepicker(props) {\r\n\r\n const {\r\n id,\r\n label,\r\n collapseLabelOnEmpty,\r\n formId,\r\n required,\r\n disabled,\r\n disallowPassedDates,\r\n date,\r\n setDate\r\n } = props;\r\n\r\n const dateInputRef = useRef();\r\n const focusScopeRef = useRef();\r\n const [ flatpickrInstance, setFlatpickrInstance ] = useState(null);\r\n const [ isInputDirty, setIsInputDirty ] = useState(false);\r\n\r\n const [ forceFocusCalendar, setForceFocusCalendar ] = useState(false);\r\n\r\n // shorts the date value back to the source\r\n useEffect(() => {\r\n\r\n if (!flatpickrInstance || !flatpickrInstance.config) return;\r\n\r\n flatpickrInstance.setDate(date, true);\r\n setIsInputDirty(false);\r\n\r\n }, [ flatpickrInstance, date.toString() ]);\r\n\r\n useEffect(() => {\r\n\r\n if (!forceFocusCalendar) return;\r\n\r\n focusRelevantFlatpickerDay(flatpickrInstance);\r\n setForceFocusCalendar(false);\r\n\r\n }, [ flatpickrInstance, forceFocusCalendar ]);\r\n\r\n // setup flatpickr instance\r\n useEffect(() => {\r\n\r\n let config = {\r\n allowInput: true,\r\n dateFormat: 'm/d/Y',\r\n static: true,\r\n clickOpens: false,\r\n\r\n // TODO: support dates prior to 1900 (https://github.com/bpmn-io/form-js/issues/533)\r\n minDate: disallowPassedDates ? 'today' : '01/01/1900',\r\n errorHandler: () => { /* do nothing, we expect the values to sometimes be erronous and we don't want warnings polluting the console */ }\r\n };\r\n\r\n const instance = flatpickr(dateInputRef.current, config);\r\n\r\n setFlatpickrInstance(instance);\r\n\r\n const onCalendarFocusOut = (e) => {\r\n if (!instance.calendarContainer.contains(e.relatedTarget) && e.relatedTarget != dateInputRef.current) {\r\n instance.close();\r\n }\r\n };\r\n\r\n // remove dirty tag to have mouse day selection prioritize input blur\r\n const onCalendarMouseDown = (e) => {\r\n if (e.target.classList.contains('flatpickr-day')) {\r\n setIsInputDirty(false);\r\n }\r\n };\r\n\r\n // when the dropdown of the datepickr opens, we register a few event handlers to re-implement some of the\r\n // flatpicker logic that was lost when setting allowInput to true\r\n instance.config.onOpen = [\r\n () => instance.calendarContainer.addEventListener('focusout', onCalendarFocusOut),\r\n () => instance.calendarContainer.addEventListener('mousedown', onCalendarMouseDown),\r\n ];\r\n\r\n instance.config.onClose = [\r\n () => instance.calendarContainer.removeEventListener('focusout', onCalendarFocusOut),\r\n () => instance.calendarContainer.removeEventListener('mousedown', onCalendarMouseDown),\r\n ];\r\n\r\n }, [ disallowPassedDates ]);\r\n\r\n // onChange is updated dynamically, so not to re-render the flatpicker every time it changes\r\n useEffect(() => {\r\n\r\n if (!flatpickrInstance || !flatpickrInstance.config) return;\r\n\r\n flatpickrInstance.config.onChange = [ (date) => setDate(new Date(date)), () => setIsInputDirty(false) ];\r\n\r\n }, [ flatpickrInstance, setDate ]);\r\n\r\n const onInputKeyDown = useCallback(\r\n (e) => {\r\n\r\n if (!flatpickrInstance) return;\r\n\r\n if (e.code === 'Escape') {\r\n flatpickrInstance.close();\r\n }\r\n\r\n if (e.code === 'ArrowDown') {\r\n\r\n if (isInputDirty) {\r\n\r\n // trigger an enter keypress to submit the new input, then focus calendar day on the next render cycle\r\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\r\n setIsInputDirty(false);\r\n setForceFocusCalendar(true);\r\n }\r\n else {\r\n\r\n // focus calendar day immediately\r\n focusRelevantFlatpickerDay(flatpickrInstance);\r\n }\r\n\r\n e.preventDefault();\r\n }\r\n\r\n if (e.code === 'Enter') {\r\n setIsInputDirty(false);\r\n }\r\n },\r\n [ flatpickrInstance, isInputDirty ],\r\n );\r\n\r\n const onInputFocus = useCallback(\r\n (e) => {\r\n\r\n if (!flatpickrInstance || focusScopeRef.current.contains(e.relatedTarget)) return;\r\n\r\n flatpickrInstance.open();\r\n }, [ flatpickrInstance ]\r\n );\r\n\r\n // simulate an enter press on blur to make sure the date value is submitted in all scenarios\r\n const onInputBlur = useCallback(\r\n (e) => {\r\n\r\n if (!isInputDirty || e.relatedTarget && e.relatedTarget.classList.contains('flatpickr-day')) return;\r\n dateInputRef.current.dispatchEvent(ENTER_KEYDOWN_EVENT);\r\n setIsInputDirty(false);\r\n\r\n }, [ isInputDirty ]\r\n );\r\n\r\n const fullId = `${prefixId(id, formId)}--date`;\r\n\r\n return <div class=\"fjs-datetime-subsection\">\r\n <Label\r\n id={ fullId }\r\n label={ label }\r\n collapseOnEmpty={ collapseLabelOnEmpty }\r\n required={ required } />\r\n <InputAdorner\r\n pre={ <CalendarIcon /> }\r\n disabled={ disabled }\r\n rootRef={ focusScopeRef }\r\n inputRef={ dateInputRef }>\r\n <div class=\"fjs-datepicker\" style={ { width: '100%' } }>\r\n <input ref={ dateInputRef }\r\n type=\"text\"\r\n id={ fullId }\r\n class={ 'fjs-input' }\r\n disabled={ disabled }\r\n placeholder=\"mm/dd/yyyy\"\r\n autoComplete=\"off\"\r\n onFocus={ onInputFocus }\r\n onKeyDown={ onInputKeyDown }\r\n onMouseDown={ (e) => !flatpickrInstance.isOpen && flatpickrInstance.open() }\r\n onBlur={ onInputBlur }\r\n onInput={ (e) => setIsInputDirty(true) }\r\n data-input />\r\n </div>\r\n </InputAdorner>\r\n </div>\r\n ;\r\n}\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 28 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M13 14.41L18.59 20 20 18.59l-5-5.01V5h-2v9.41z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"currentColor\",\n d: \"M6.222 25.64A14 14 0 1021.778 2.36 14 14 0 006.222 25.64zM7.333 4.023a12 12 0 1113.334 19.955A12 12 0 017.333 4.022z\"\n})));","import classNames from 'classnames';\r\nimport { useState, useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\r\nimport useKeyDownAction from '../../../hooks/useKeyDownAction';\r\n\r\nconst DEFAULT_LABEL_GETTER = (value) => value;\r\nconst NOOP = () => {};\r\n\r\nexport default function DropdownList(props) {\r\n\r\n const {\r\n listenerElement = window,\r\n values = [],\r\n getLabel = DEFAULT_LABEL_GETTER,\r\n onValueSelected = NOOP,\r\n height = 235,\r\n emptyListMessage = 'No results',\r\n initialFocusIndex = 0\r\n } = props;\r\n\r\n const [ mouseControl, setMouseControl ] = useState(false);\r\n const [ focusedValueIndex, setFocusedValueIndex ] = useState(initialFocusIndex);\r\n const [ smoothScrolling, setSmoothScrolling ] = useState(false);\r\n const dropdownContainer = useRef();\r\n const mouseScreenPos = useRef();\r\n\r\n const focusedItem = useMemo(() => values.length ? values[focusedValueIndex] : null, [ focusedValueIndex, values ]);\r\n\r\n const changeFocusedValueIndex = useCallback((delta) => {\r\n setFocusedValueIndex(x => Math.min(Math.max(0, x + delta), values.length - 1));\r\n }, [ values.length ]);\r\n\r\n useEffect(() => {\r\n if (focusedValueIndex === 0) return;\r\n\r\n if (!focusedValueIndex || !values.length) {\r\n setFocusedValueIndex(0);\r\n }\r\n else if (focusedValueIndex >= values.length) {\r\n setFocusedValueIndex(values.length - 1);\r\n }\r\n }, [ focusedValueIndex, values.length ]);\r\n\r\n useKeyDownAction('ArrowUp', () => {\r\n if (values.length) {\r\n changeFocusedValueIndex(-1);\r\n setMouseControl(false);\r\n }\r\n }, listenerElement);\r\n\r\n useKeyDownAction('ArrowDown', () => {\r\n if (values.length) {\r\n changeFocusedValueIndex(1);\r\n setMouseControl(false);\r\n }\r\n }, listenerElement);\r\n\r\n useKeyDownAction('Enter', () => {\r\n if (focusedItem) {\r\n onValueSelected(focusedItem);\r\n }\r\n }, listenerElement);\r\n\r\n useEffect(() => {\r\n const individualEntries = dropdownContainer.current.children;\r\n if (individualEntries.length && !mouseControl) {\r\n individualEntries[focusedValueIndex].scrollIntoView({ block: 'nearest', inline: 'nearest' });\r\n }\r\n }, [ focusedValueIndex, mouseControl ]);\r\n\r\n useEffect(() => {\r\n setSmoothScrolling(true);\r\n }, []);\r\n\r\n const onMouseMovedInKeyboardMode = (event, valueIndex) => {\r\n\r\n const userMovedCursor = !mouseScreenPos.current || mouseScreenPos.current.x !== event.screenX && mouseScreenPos.current.y !== event.screenY;\r\n\r\n if (userMovedCursor) {\r\n mouseScreenPos.current = { x: event.screenX, y: event.screenY };\r\n setMouseControl(true);\r\n setFocusedValueIndex(valueIndex);\r\n }\r\n\r\n };\r\n\r\n return <div\r\n ref={ dropdownContainer }\r\n tabIndex={ -1 }\r\n class=\"fjs-dropdownlist\"\r\n onMouseDown={ (e) => e.preventDefault() }\r\n style={ { maxHeight: height, scrollBehavior: smoothScrolling ? 'smooth' : 'auto' } }>\r\n {\r\n values.length > 0 && values.map((v, i) => {\r\n return (\r\n <div\r\n class={ classNames('fjs-dropdownlist-item', { 'focused': focusedValueIndex === i }) }\r\n onMouseMove={ mouseControl ? undefined : (e) => onMouseMovedInKeyboardMode(e, i) }\r\n onMouseEnter={ mouseControl ? () => setFocusedValueIndex(i) : undefined }\r\n onMouseDown={ (e) => onValueSelected(v) }>\r\n {getLabel(v)}\r\n </div>\r\n );\r\n })\r\n }\r\n {\r\n !values.length && <div class=\"fjs-dropdownlist-empty\">{ emptyListMessage }</div>\r\n }\r\n </div>;\r\n}","import ClockIcon from '../icons/Clock.svg';\r\n\r\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport { prefixId } from '../../Util';\r\nimport DropdownList from './DropdownList';\r\nimport { isNumber } from 'min-dash';\r\nimport InputAdorner from './InputAdorner';\r\nimport { formatTime, parseInputTime } from '../../util/dateTimeUtil';\r\nimport Label from '../../Label';\r\n\r\nexport default function Timepicker(props) {\r\n\r\n const {\r\n id,\r\n label,\r\n collapseLabelOnEmpty,\r\n formId,\r\n required,\r\n disabled,\r\n use24h = false,\r\n timeInterval,\r\n time,\r\n setTime\r\n } = props;\r\n\r\n const timeInputRef = useRef();\r\n const [ dropdownIsOpen, setDropdownIsOpen ] = useState(false);\r\n const useDropdown = useMemo(() => timeInterval !== 1, [ timeInterval ]);\r\n\r\n const [ rawValue, setRawValue ] = useState('');\r\n\r\n // populates values from source\r\n useEffect(() => {\r\n if (time === null) {\r\n setRawValue('');\r\n return;\r\n }\r\n\r\n const intervalAdjustedTime = time - (time % timeInterval);\r\n setRawValue(formatTime(use24h, intervalAdjustedTime));\r\n\r\n if (intervalAdjustedTime != time) {\r\n setTime(intervalAdjustedTime);\r\n }\r\n\r\n }, [ time, setTime, use24h, timeInterval ]);\r\n\r\n const propagateRawToMinute = useCallback((newRawValue) => {\r\n\r\n const localRawValue = newRawValue || rawValue;\r\n\r\n // If no raw value exists, set the minute to null\r\n if (!localRawValue) {\r\n setTime(null);\r\n return;\r\n }\r\n\r\n const minutes = parseInputTime(localRawValue);\r\n\r\n // If raw string couldn't be parsed, clean everything up\r\n if (!isNumber(minutes)) {\r\n setRawValue('');\r\n setTime(null);\r\n return;\r\n }\r\n\r\n // Enforce the minutes to match the timeInterval\r\n const correctedMinutes = minutes - (minutes % timeInterval);\r\n\r\n // Enforce the raw text to be formatted properly\r\n setRawValue(formatTime(use24h, correctedMinutes));\r\n setTime(correctedMinutes);\r\n\r\n }, [ rawValue, timeInterval, use24h, setTime ]);\r\n\r\n const timeOptions = useMemo(() => {\r\n\r\n const minutesInDay = 24 * 60;\r\n const intervalCount = Math.floor(minutesInDay / timeInterval);\r\n return [ ...Array(intervalCount).keys() ].map(intervalIndex => formatTime(use24h, intervalIndex * timeInterval));\r\n\r\n }, [ timeInterval, use24h ]);\r\n\r\n const initialFocusIndex = useMemo(() => {\r\n\r\n // if there are no options, there will not be any focusing\r\n if (!timeOptions || !timeInterval) return null;\r\n\r\n // if there is a set minute value, we focus it in the dropdown\r\n if (time) return time / timeInterval;\r\n\r\n const cacheTime = parseInputTime(rawValue);\r\n\r\n // if there is a valid value in the input cache, we try and focus close to it\r\n if (cacheTime) {\r\n const flooredCacheTime = cacheTime - cacheTime % timeInterval;\r\n return flooredCacheTime / timeInterval;\r\n }\r\n\r\n // If there is no set value, simply focus the middle of the dropdown (12:00)\r\n return Math.floor(timeOptions.length / 2);\r\n\r\n }, [ rawValue, time, timeInterval, timeOptions ]);\r\n\r\n const onInputKeyDown = (e) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n break;\r\n case 'ArrowDown':\r\n useDropdown && setDropdownIsOpen(true);\r\n e.preventDefault();\r\n break;\r\n case 'Escape':\r\n useDropdown && setDropdownIsOpen(false);\r\n break;\r\n case 'Enter':\r\n !dropdownIsOpen && propagateRawToMinute();\r\n break;\r\n }\r\n };\r\n\r\n const onInputBlur = (e) => {\r\n setDropdownIsOpen(false);\r\n propagateRawToMinute();\r\n };\r\n\r\n const onDropdownValueSelected = (value) => {\r\n setDropdownIsOpen(false);\r\n propagateRawToMinute(value);\r\n };\r\n\r\n const fullId = `${prefixId(id, formId)}--time`;\r\n\r\n return <div class=\"fjs-datetime-subsection\">\r\n <Label\r\n id={ fullId }\r\n label={ label }\r\n collapseOnEmpty={ collapseLabelOnEmpty }\r\n required={ required } />\r\n <InputAdorner\r\n pre={ <ClockIcon /> }\r\n inputRef={ timeInputRef }\r\n disabled={ disabled }>\r\n <div class=\"fjs-timepicker fjs-timepicker-anchor\">\r\n <input ref={ timeInputRef }\r\n type=\"text\"\r\n id={ fullId }\r\n class=\"fjs-input\"\r\n value={ rawValue }\r\n disabled={ disabled }\r\n placeholder={ use24h ? 'hh:mm' : 'hh:mm ?m' }\r\n autoComplete=\"off\"\r\n onFocus={ () => useDropdown && setDropdownIsOpen(true) }\r\n onClick={ () => useDropdown && setDropdownIsOpen(true) }\r\n\r\n // @ts-ignore\r\n onInput={ (e) => { setRawValue(e.target.value); useDropdown && setDropdownIsOpen(false); } }\r\n onBlur={ onInputBlur }\r\n onKeyDown={ onInputKeyDown }\r\n data-input />\r\n\r\n { dropdownIsOpen && <DropdownList\r\n values={ timeOptions }\r\n height={ 150 }\r\n onValueSelected={ onDropdownValueSelected }\r\n listenerElement={ timeInputRef.current }\r\n initialFocusIndex={ initialFocusIndex } /> }\r\n\r\n </div>\r\n </InputAdorner>\r\n </div>;\r\n}\r\n","import { useCallback, useContext, useMemo, useState, useEffect } from 'preact/hooks';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { set } from 'min-dash';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { DATETIME_SUBTYPES, DATETIME_SUBTYPE_PATH, DATE_LABEL_PATH } from '../../../util/constants/DatetimeConstants';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Datepicker from './parts/Datepicker';\r\nimport Timepicker from './parts/Timepicker';\r\n\r\nimport { formFieldClasses } from '../Util';\r\nimport { sanitizeDateTimePickerValue } from '../util/sanitizerUtil';\r\nimport { parseIsoTime, serializeDate, serializeDateTime, serializeTime } from '../util/dateTimeUtil';\r\n\r\nconst type = 'datetime';\r\n\r\nexport default function Datetime(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n onChange,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n dateLabel,\r\n timeLabel,\r\n validate = {},\r\n subtype,\r\n use24h,\r\n disallowPassedDates,\r\n timeInterval,\r\n timeSerializingFormat\r\n } = field;\r\n\r\n const { required } = validate;\r\n const { formId } = useContext(FormContext);\r\n\r\n const getNullDateTime = () => ({ date: new Date(Date.parse(null)), time: null });\r\n\r\n const [ dateTime, setDateTime ] = useState(getNullDateTime());\r\n const [ dateTimeUpdateRequest, setDateTimeUpdateRequest ] = useState(null);\r\n\r\n const isValidDate = (date) => date && !isNaN(date.getTime());\r\n const isValidTime = (time) => !isNaN(parseInt(time));\r\n\r\n const useDatePicker = useMemo(() => subtype === DATETIME_SUBTYPES.DATE || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\r\n const useTimePicker = useMemo(() => subtype === DATETIME_SUBTYPES.TIME || subtype === DATETIME_SUBTYPES.DATETIME, [ subtype ]);\r\n\r\n useEffect(() => {\r\n\r\n let { date, time } = getNullDateTime();\r\n\r\n switch (subtype) {\r\n case DATETIME_SUBTYPES.DATE: {\r\n date = new Date(Date.parse(value));\r\n break;\r\n }\r\n case DATETIME_SUBTYPES.TIME: {\r\n time = parseIsoTime(value);\r\n break;\r\n }\r\n case DATETIME_SUBTYPES.DATETIME: {\r\n date = new Date(Date.parse(value));\r\n time = isValidDate(date) ? 60 * date.getHours() + date.getMinutes() : null;\r\n break;\r\n }}\r\n\r\n setDateTime({ date, time });\r\n\r\n }, [ subtype, value ]);\r\n\r\n const computeAndSetState = useCallback(({ date, time }) => {\r\n\r\n let newDateTimeValue = null;\r\n\r\n if (subtype === DATETIME_SUBTYPES.DATE && isValidDate(date)) {\r\n newDateTimeValue = serializeDate(date);\r\n }\r\n else if (subtype === DATETIME_SUBTYPES.TIME && isValidTime(time)) {\r\n newDateTimeValue = serializeTime(time, new Date().getTimezoneOffset(), timeSerializingFormat);\r\n }\r\n else if (subtype === DATETIME_SUBTYPES.DATETIME && isValidDate(date) && isValidTime(time)) {\r\n newDateTimeValue = serializeDateTime(date, time, timeSerializingFormat);\r\n }\r\n\r\n onChange({ value: newDateTimeValue, field });\r\n\r\n }, [ field, onChange, subtype, timeSerializingFormat ]);\r\n\r\n useEffect(() => {\r\n if (dateTimeUpdateRequest) {\r\n if (dateTimeUpdateRequest.refreshOnly) {\r\n computeAndSetState(dateTime);\r\n }\r\n else {\r\n const newDateTime = { ...dateTime, ...dateTimeUpdateRequest };\r\n setDateTime(newDateTime);\r\n computeAndSetState(newDateTime);\r\n }\r\n setDateTimeUpdateRequest(null);\r\n }\r\n }, [ computeAndSetState, dateTime, dateTimeUpdateRequest ]);\r\n\r\n useEffect(() => {\r\n setDateTimeUpdateRequest({ refreshOnly: true });\r\n }, [ timeSerializingFormat ]);\r\n\r\n const allErrors = useMemo(() => {\r\n if (required || subtype !== DATETIME_SUBTYPES.DATETIME) return errors;\r\n const isOnlyOneFieldSet = (isValidDate(dateTime.date) && !isValidTime(dateTime.time)) || (!isValidDate(dateTime.date) && isValidTime(dateTime.time));\r\n return isOnlyOneFieldSet ? [ 'Date and time must both be entered.', ...errors ] : errors;\r\n }, [ required, subtype, dateTime, errors ]);\r\n\r\n const setDate = useCallback((date) => {\r\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, date } : { date }));\r\n }, []);\r\n\r\n const setTime = useCallback((time) => {\r\n setDateTimeUpdateRequest((prev) => (prev ? { ...prev, time } : { time }));\r\n }, []);\r\n\r\n const datePickerProps = {\r\n id,\r\n label: dateLabel,\r\n collapseLabelOnEmpty: !timeLabel,\r\n formId,\r\n required,\r\n disabled,\r\n disallowPassedDates,\r\n date: dateTime.date,\r\n setDate\r\n };\r\n\r\n const timePickerProps = {\r\n id,\r\n label: timeLabel,\r\n collapseLabelOnEmpty: !dateLabel,\r\n formId,\r\n required,\r\n disabled,\r\n use24h,\r\n timeInterval,\r\n time: dateTime.time,\r\n setTime\r\n };\r\n\r\n return <div class={ formFieldClasses(type, { errors: allErrors, disabled }) }>\r\n <div class={ classNames('fjs-vertical-group') }>\r\n { useDatePicker && <Datepicker { ...datePickerProps } /> }\r\n { useTimePicker && useDatePicker && <div class=\"fjs-datetime-separator\" /> }\r\n { useTimePicker && <Timepicker { ...timePickerProps } /> }\r\n </div>\r\n <Description description={ description } />\r\n <Errors errors={ allErrors } />\r\n </div>;\r\n}\r\n\r\nDatetime.create = (options = {}) => {\r\n\r\n const defaults = {};\r\n set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);\r\n set(defaults, DATE_LABEL_PATH, 'Date');\r\n\r\n return { ...defaults, ...options };\r\n};\r\n\r\nDatetime.type = type;\r\nDatetime.keyed = true;\r\nDatetime.emptyValue = null;\r\nDatetime.sanitizeValue = sanitizeDateTimePickerValue;\r\nDatetime.label = 'Date time';\r\nDatetime.group = 'basic-input';","/**\r\n * This file must not be changed or exchanged.\r\n *\r\n * @see http://bpmn.io/license for more information.\r\n */\r\nimport { Fragment } from 'preact';\r\nimport { useState } from 'preact/hooks';\r\nimport { createPortal } from 'preact/compat';\r\n\r\nfunction Logo() {\r\n return <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14.02 5.57\" width=\"53\" height=\"21\" style=\"vertical-align:middle\"><path fill=\"currentColor\" d=\"M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z\" /><path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\" /></svg>;\r\n}\r\n\r\nfunction Lightbox(props) {\r\n const { open } = props;\r\n\r\n if (!open) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div class=\"fjs-powered-by-lightbox\" style=\"z-index: 100; position: fixed; top: 0; left: 0;right: 0; bottom: 0\">\r\n <div class=\"backdrop\" style=\"width: 100%; height: 100%; background: rgba(40 40 40 / 20%)\" onClick={ props.onBackdropClick }></div>\r\n <div class=\"notice\" style=\"position: absolute; left: 50%; top: 40%; transform: translate(-50%); width: 260px; padding: 10px; background: white; box-shadow: 0 1px 4px rgba(0 0 0 / 30%); font-family: Helvetica, Arial, sans-serif; font-size: 14px; display: flex; line-height: 1.3\">\r\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" style=\"margin: 15px 20px 15px 10px; align-self: center; color: #404040\">\r\n <Logo />\r\n </a>\r\n <span>\r\n Web-based tooling for BPMN, DMN, and forms\r\n powered by <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">bpmn.io</a>.\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Link(props) {\r\n return (\r\n <div class=\"fjs-powered-by fjs-form-field\" style=\"text-align: right\">\r\n <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" class=\"fjs-powered-by-link\" title=\"Powered by bpmn.io\" style=\"color: #404040\" onClick={ props.onClick }><Logo /></a>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function PoweredBy(props) {\r\n\r\n const [ open, setOpen ] = useState(false);\r\n\r\n function toggleOpen(open) {\r\n return (event) => {\r\n event.preventDefault();\r\n\r\n setOpen(open);\r\n };\r\n }\r\n\r\n return (\r\n <Fragment>\r\n {\r\n createPortal(\r\n <Lightbox open={ open } onBackdropClick={ toggleOpen(false) } />,\r\n document.body\r\n )\r\n }\r\n <Link onClick={ toggleOpen(true) } />\r\n </Fragment>\r\n );\r\n}","import FormField from './FormField';\r\n\r\nimport PoweredBy from './PoweredBy';\r\n\r\nimport useService from '../hooks/useService';\r\n\r\nconst noop = () => {};\r\n\r\nexport default function FormComponent(props) {\r\n const form = useService('form');\r\n\r\n const { schema } = form._getState();\r\n\r\n const {\r\n onSubmit = noop,\r\n onReset = noop,\r\n onChange = noop,\r\n } = props;\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n onSubmit();\r\n };\r\n\r\n const handleReset = (event) => {\r\n event.preventDefault();\r\n\r\n onReset();\r\n };\r\n\r\n return (\r\n <form\r\n class=\"fjs-form\"\r\n onSubmit={ handleSubmit }\r\n onReset={ handleReset }\r\n noValidate\r\n >\r\n <FormField\r\n field={ schema }\r\n onChange={ onChange }\r\n />\r\n\r\n <PoweredBy />\r\n </form>\r\n );\r\n}","const NODE_TYPE_TEXT = 3,\r\n NODE_TYPE_ELEMENT = 1;\r\n\r\nconst ALLOWED_NODES = [\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'span',\r\n 'em',\r\n 'a',\r\n 'p',\r\n 'div',\r\n 'ul',\r\n 'ol',\r\n 'li',\r\n 'hr',\r\n 'blockquote',\r\n 'img',\r\n 'pre',\r\n 'code',\r\n 'br',\r\n 'strong'\r\n];\r\n\r\nconst ALLOWED_ATTRIBUTES = [\r\n 'align',\r\n 'alt',\r\n 'class',\r\n 'href',\r\n 'id',\r\n 'name',\r\n 'rel',\r\n 'target',\r\n 'src'\r\n];\r\n\r\nconst ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\r\nconst ALLOWED_IMAGE_SRC_PATTERN = /^(https?|data):.*/i; // eslint-disable-line no-useless-escape\r\nconst ATTR_WHITESPACE_PATTERN = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g; // eslint-disable-line no-control-regex\r\n\r\nconst FORM_ELEMENT = document.createElement('form');\r\n\r\n/**\r\n * Sanitize a HTML string and return the cleaned, safe version.\r\n *\r\n * @param {string} html\r\n * @return {string}\r\n */\r\n\r\n// see https://github.com/developit/snarkdown/issues/70\r\nexport function sanitizeHTML(html) {\r\n\r\n const doc = new DOMParser().parseFromString(\r\n `<!DOCTYPE html>\\n<html><body><div>${ html }`,\r\n 'text/html'\r\n );\r\n\r\n doc.normalize();\r\n\r\n const element = doc.body.firstChild;\r\n\r\n if (element) {\r\n sanitizeNode(/** @type Element */ (element));\r\n\r\n return new XMLSerializer().serializeToString(element);\r\n } else {\r\n\r\n // handle the case that document parsing\r\n // does not work at all, due to HTML gibberish\r\n return '';\r\n }\r\n}\r\n\r\n/**\r\n * Sanitizes an image source to ensure we only allow for data URI and links\r\n * that start with http(s).\r\n *\r\n * Note: Most browsers anyway do not support script execution in <img> elements.\r\n *\r\n * @param {string} src\r\n * @returns {string}\r\n */\r\nexport function sanitizeImageSource(src) {\r\n const valid = ALLOWED_IMAGE_SRC_PATTERN.test(src);\r\n\r\n return valid ? src : '';\r\n}\r\n\r\n/**\r\n * Recursively sanitize a HTML node, potentially\r\n * removing it, its children or attributes.\r\n *\r\n * Inspired by https://github.com/developit/snarkdown/issues/70\r\n * and https://github.com/cure53/DOMPurify. Simplified\r\n * for our use-case.\r\n *\r\n * @param {Element} node\r\n */\r\nfunction sanitizeNode(node) {\r\n\r\n // allow text nodes\r\n if (node.nodeType === NODE_TYPE_TEXT) {\r\n return;\r\n }\r\n\r\n // disallow all other nodes but Element\r\n if (node.nodeType !== NODE_TYPE_ELEMENT) {\r\n return node.remove();\r\n }\r\n\r\n const lcTag = node.tagName.toLowerCase();\r\n\r\n // disallow non-whitelisted tags\r\n if (!ALLOWED_NODES.includes(lcTag)) {\r\n return node.remove();\r\n }\r\n\r\n const attributes = node.attributes;\r\n\r\n // clean attributes\r\n for (let i = attributes.length; i--;) {\r\n const attribute = attributes[i];\r\n\r\n const name = attribute.name;\r\n const lcName = name.toLowerCase();\r\n\r\n // normalize node value\r\n const value = attribute.value.trim();\r\n\r\n node.removeAttribute(name);\r\n\r\n const valid = isValidAttribute(lcTag, lcName, value);\r\n\r\n if (valid) {\r\n node.setAttribute(name, value);\r\n }\r\n\r\n }\r\n\r\n // force noopener on target=\"_blank\" links\r\n if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {\r\n node.setAttribute('rel', 'noopener');\r\n }\r\n\r\n for (let i = node.childNodes.length; i--;) {\r\n sanitizeNode(/** @type Element */ (node.childNodes[i]));\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Validates attributes for validity.\r\n *\r\n * @param {string} lcTag\r\n * @param {string} lcName\r\n * @param {string} value\r\n * @return {boolean}\r\n */\r\nfunction isValidAttribute(lcTag, lcName, value) {\r\n\r\n // disallow most attributes based on whitelist\r\n if (!ALLOWED_ATTRIBUTES.includes(lcName)) {\r\n return false;\r\n }\r\n\r\n // disallow \"DOM clobbering\" / polution of document and wrapping form elements\r\n if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {\r\n return false;\r\n }\r\n\r\n if (lcName === 'target' && value !== '_blank') {\r\n return false;\r\n }\r\n\r\n // allow valid url links only\r\n if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"64\",\n height: \"64\",\n viewBox: \"0 0 1280 1280\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: \"2\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e5e9ed\",\n d: \"M0 0h1280v1280H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\",\n fill: \"#cad3db\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M810 770H480v-60l100-170 130 170 100-65v125z\",\n fill: \"#cad3db\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"750\",\n cy: \"550\",\n r: \"50\",\n fill: \"#cad3db\",\n transform: \"translate(10 10)\"\n})));","import { useContext, useMemo } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport { useExpressionEvaluation } from '../../hooks';\r\nimport { sanitizeImageSource } from '../Sanitizer';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nimport ImagePlaceholder from './icons/ImagePlaceholder.svg';\r\n\r\nconst type = 'image';\r\n\r\n\r\nexport default function Image(props) {\r\n const {\r\n field\r\n } = props;\r\n\r\n const {\r\n alt,\r\n id,\r\n source\r\n } = field;\r\n\r\n\r\n const evaluatedImageSource = useExpressionEvaluation(source);\r\n\r\n const safeSource = useMemo(() => sanitizeImageSource(evaluatedImageSource), [ evaluatedImageSource ]);\r\n\r\n const altText = useExpressionEvaluation(alt);\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <div class=\"fjs-image-container\">\r\n {\r\n safeSource &&\r\n <img\r\n alt={ altText }\r\n src={ safeSource }\r\n class=\"fjs-image\"\r\n id={ prefixId(id, formId) } />\r\n }\r\n { !safeSource &&\r\n <div class=\"fjs-image-placeholder\">\r\n <ImagePlaceholder alt=\"This is an image placeholder\" />\r\n </div>\r\n }\r\n </div>\r\n </div>;\r\n}\r\n\r\nImage.create = (options = {}) => ({\r\n ...options\r\n});\r\n\r\nImage.type = type;\r\nImage.keyed = false;\r\nImage.label = 'Image view';\r\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';\r\nimport classNames from 'classnames';\r\nimport { useCallback, useContext, useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport InputAdorner from './parts/InputAdorner';\r\n\r\nimport AngelDownIcon from './icons/AngelDown.svg';\r\nimport AngelUpIcon from './icons/AngelUp.svg';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nimport {\r\n isNullEquivalentValue,\r\n isValidNumber,\r\n willKeyProduceValidNumber\r\n} from '../util/numberFieldUtil';\r\n\r\nconst type = 'number';\r\n\r\n\r\nexport default function Numberfield(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value,\r\n onChange\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n appearance = {},\r\n validate = {},\r\n decimalDigits,\r\n serializeToString = false,\r\n increment: incrementValue\r\n } = field;\r\n\r\n const {\r\n prefixAdorner,\r\n suffixAdorner\r\n } = appearance;\r\n\r\n const { required } = validate;\r\n\r\n const inputRef = useRef();\r\n\r\n const [ stringValueCache, setStringValueCache ] = useState('');\r\n\r\n // checks whether the value currently in the form data is practically different from the one in the input field cache\r\n // this allows us to guarantee the field always displays valid form data, but without auto-simplifying values like 1.000 to 1\r\n const cacheValueMatchesState = useMemo(() => Numberfield.sanitizeValue({ value, formField: field }) === Numberfield.sanitizeValue({ value: stringValueCache, formField: field }), [ stringValueCache, value, field ]);\r\n\r\n const displayValue = useMemo(() => {\r\n\r\n if (value === 'NaN') return 'NaN';\r\n if (stringValueCache === '-') return '-';\r\n return cacheValueMatchesState ? stringValueCache : ((value || value === 0) ? Big(value).toFixed() : '');\r\n\r\n }, [ stringValueCache, value, cacheValueMatchesState ]);\r\n\r\n const arrowIncrementValue = useMemo(() => {\r\n\r\n if (incrementValue) return Big(incrementValue);\r\n if (decimalDigits) return Big(`1e-${decimalDigits}`);\r\n return Big('1');\r\n\r\n }, [ decimalDigits, incrementValue ]);\r\n\r\n\r\n const setValue = useCallback((stringValue) => {\r\n\r\n if (isNullEquivalentValue(stringValue)) {\r\n setStringValueCache('');\r\n onChange({ field, value: null });\r\n return;\r\n }\r\n\r\n // treat commas as dots\r\n stringValue = stringValue.replaceAll(',', '.');\r\n\r\n if (stringValue === '-') {\r\n setStringValueCache('-');\r\n return;\r\n }\r\n\r\n if (isNaN(Number(stringValue))) {\r\n setStringValueCache('NaN');\r\n onChange({ field, value: 'NaN' });\r\n return;\r\n }\r\n\r\n setStringValueCache(stringValue);\r\n onChange({ field, value: serializeToString ? stringValue : Number(stringValue) });\r\n\r\n }, [ field, onChange, serializeToString ]);\r\n\r\n const increment = () => {\r\n const base = isValidNumber(value) ? Big(value) : Big(0);\r\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\r\n\r\n // note: toFixed() behaves differently in big.js\r\n setValue(stepFlooredValue.plus(arrowIncrementValue).toFixed());\r\n };\r\n\r\n const decrement = () => {\r\n const base = isValidNumber(value) ? Big(value) : Big(0);\r\n const offset = base.mod(arrowIncrementValue);\r\n\r\n if (offset.cmp(0) === 0) {\r\n\r\n // if we're already on a valid step, decrement\r\n setValue(base.minus(arrowIncrementValue).toFixed());\r\n }\r\n else {\r\n\r\n // otherwise floor to the step\r\n const stepFlooredValue = base.minus(base.mod(arrowIncrementValue));\r\n setValue(stepFlooredValue.toFixed());\r\n }\r\n };\r\n\r\n const onKeyDown = (e) => {\r\n\r\n // delete the NaN state all at once on backspace or delete\r\n if (value === 'NaN' && (e.code === 'Backspace' || e.code === 'Delete')) {\r\n setValue(null);\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.code === 'ArrowUp') {\r\n increment();\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.code === 'ArrowDown') {\r\n decrement();\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n };\r\n\r\n // intercept key presses which would lead to an invalid number\r\n const onKeyPress = (e) => {\r\n const caretIndex = inputRef.current.selectionStart;\r\n const selectionWidth = inputRef.current.selectionStart - inputRef.current.selectionEnd;\r\n const previousValue = inputRef.current.value;\r\n\r\n if (!willKeyProduceValidNumber(e.key, previousValue, caretIndex, selectionWidth, decimalDigits)) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n <InputAdorner disabled={ disabled } pre={ prefixAdorner } post={ suffixAdorner }>\r\n <div class={ classNames('fjs-vertical-group', { 'fjs-disabled': disabled }, { 'hasErrors': errors.length }) }>\r\n <input\r\n ref={ inputRef }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n id={ prefixId(id, formId) }\r\n onKeyDown={ onKeyDown }\r\n onKeyPress={ onKeyPress }\r\n\r\n // @ts-ignore\r\n onInput={ (e) => setValue(e.target.value) }\r\n type=\"text\"\r\n autoComplete=\"off\"\r\n step={ arrowIncrementValue }\r\n value={ displayValue } />\r\n <div class={ classNames('fjs-number-arrow-container', { 'fjs-disabled': disabled }) }>\r\n { /* we're disabling tab navigation on both buttons to imitate the native browser behavior of input[type='number'] increment arrows */ }\r\n <button\r\n class=\"fjs-number-arrow-up\"\r\n type=\"button\"\r\n aria-label=\"Increment\"\r\n onClick={ () => increment() }\r\n tabIndex={ -1 }><AngelUpIcon /></button>\r\n <div class=\"fjs-number-arrow-separator\" />\r\n <button\r\n class=\"fjs-number-arrow-down\"\r\n type=\"button\"\r\n aria-label=\"Decrement\"\r\n onClick={ () => decrement() }\r\n tabIndex={ -1 }><AngelDownIcon /></button>\r\n </div>\r\n </div>\r\n </InputAdorner>\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nNumberfield.create = (options = {}) => ({\r\n ...options\r\n});\r\n\r\nNumberfield.sanitizeValue = ({ value, formField }) => {\r\n\r\n // null state is allowed\r\n if (isNullEquivalentValue(value)) return null;\r\n\r\n // if data cannot be parsed as a valid number, go into invalid NaN state\r\n if (!isValidNumber(value)) return 'NaN';\r\n\r\n // otherwise parse to formatting type\r\n return formField.serializeToString ? value.toString() : Number(value);\r\n};\r\n\r\nNumberfield.type = type;\r\nNumberfield.keyed = true;\r\nNumberfield.label = 'Number';\r\nNumberfield.emptyValue = null;\r\nNumberfield.group = 'basic-input';","import { useContext } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\r\nimport classNames from 'classnames';\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'radio';\r\n\r\n\r\nexport default function Radio(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = (v) => {\r\n props.onChange({\r\n field,\r\n value: v\r\n });\r\n };\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\r\n <Label\r\n label={ label }\r\n required={ required } />\r\n {\r\n loadState == LOAD_STATES.LOADED && options.map((option, index) => {\r\n return (\r\n <Label\r\n id={ prefixId(`${ id }-${ index }`, formId) }\r\n key={ `${ id }-${ index }` }\r\n label={ option.label }\r\n class={ classNames({ 'fjs-checked': option.value === value }) }\r\n required={ false }>\r\n <input\r\n checked={ option.value === value }\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n id={ prefixId(`${ id }-${ index }`, formId) }\r\n type=\"radio\"\r\n onClick={ () => onChange(option.value) } />\r\n </Label>\r\n );\r\n })\r\n }\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nRadio.create = function(options = {}) {\r\n\r\n const defaults = { };\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n};\r\n\r\nRadio.type = type;\r\nRadio.label = 'Radio';\r\nRadio.keyed = true;\r\nRadio.emptyValue = null;\r\nRadio.sanitizeValue = sanitizeSingleSelectValue;\r\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';\r\nimport useValuesAsync, { LOAD_STATES } from '../../../hooks/useValuesAsync';\r\n\r\nimport { FormContext } from '../../../context';\r\n\r\nimport XMarkIcon from '../icons/XMark.svg';\r\nimport AngelDownIcon from '../icons/AngelDown.svg';\r\nimport AngelUpIcon from '../icons/AngelUp.svg';\r\n\r\nimport {\r\n prefixId,\r\n} from '../../Util';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport DropdownList from './DropdownList';\r\n\r\nexport default function SearchableSelect(props) {\r\n const {\r\n id,\r\n disabled,\r\n errors,\r\n field,\r\n value\r\n } = props;\r\n\r\n const { formId } = useContext(FormContext);\r\n const [ filter, setFilter ] = useState('');\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const [ shouldApplyFilter, setShouldApplyFilter ] = useState(true);\r\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\r\n const searchbarRef = useRef();\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\r\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\r\n\r\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\r\n\r\n // whenever we change the underlying value, set the label to it\r\n useEffect(() => { setFilter(valueLabel); }, [ valueLabel ]);\r\n\r\n const filteredOptions = useMemo(() => {\r\n\r\n if (loadState === LOAD_STATES.LOADED) {\r\n return shouldApplyFilter ? options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase()))) : options;\r\n }\r\n\r\n return [];\r\n\r\n }, [ filter, loadState, options, shouldApplyFilter ]);\r\n\r\n const onChange = ({ target }) => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(true);\r\n setShouldApplyFilter(true);\r\n setFilter(target.value || '');\r\n };\r\n\r\n const setValue = useCallback((option) => {\r\n setFilter(option && option.label || '');\r\n props.onChange({ value: option && option.value || null, field });\r\n }, [ field, props ]);\r\n\r\n const onInputKeyDown = useCallback((keyDownEvent) => {\r\n\r\n switch (keyDownEvent.key) {\r\n case 'ArrowUp':\r\n keyDownEvent.preventDefault();\r\n break;\r\n case 'ArrowDown': {\r\n if (!isDropdownExpanded) {\r\n setIsDropdownExpanded(true);\r\n setShouldApplyFilter(false);\r\n }\r\n\r\n keyDownEvent.preventDefault();\r\n break;\r\n }\r\n case 'Escape':\r\n setIsEscapeClose(true);\r\n break;\r\n case 'Enter':\r\n if (isEscapeClosed) {\r\n setIsEscapeClose(false);\r\n }\r\n break;\r\n }\r\n }, [ isDropdownExpanded, isEscapeClosed ]);\r\n\r\n const displayState = useMemo(() => {\r\n const ds = {};\r\n ds.componentReady = !disabled && loadState === LOAD_STATES.LOADED;\r\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\r\n ds.displayDropdown = !disabled && isDropdownExpanded && !isEscapeClosed;\r\n return ds;\r\n }, [ disabled, isDropdownExpanded, isEscapeClosed, loadState, value ]);\r\n\r\n const onAngelMouseDown = useCallback((e) => {\r\n setIsEscapeClose(false);\r\n setIsDropdownExpanded(!isDropdownExpanded);\r\n\r\n const searchbar = searchbarRef.current;\r\n isDropdownExpanded ? searchbar.blur() : searchbar.focus();\r\n\r\n e.preventDefault();\r\n\r\n }, [ isDropdownExpanded ]);\r\n\r\n return <>\r\n <div id={ prefixId(`${id}`, formId) }\r\n class={ classNames('fjs-input-group', { 'disabled': disabled }, { 'hasErrors': errors.length }) }>\r\n <input\r\n disabled={ disabled }\r\n class=\"fjs-input\"\r\n ref={ searchbarRef }\r\n id={ prefixId(`${id}-search`, formId) }\r\n onChange={ onChange }\r\n type=\"text\"\r\n value={ filter }\r\n placeholder={ 'Search' }\r\n autoComplete=\"off\"\r\n onKeyDown={ (e) => onInputKeyDown(e) }\r\n onMouseDown={ () => { setIsEscapeClose(false); setIsDropdownExpanded(true); setShouldApplyFilter(false); } }\r\n onFocus={ () => { setIsDropdownExpanded(true); setShouldApplyFilter(false); } }\r\n onBlur={ () => { setIsDropdownExpanded(false); setFilter(valueLabel); } } />\r\n { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.preventDefault(); } }><XMarkIcon /> </span> }\r\n <span class=\"fjs-select-arrow\" onMouseDown={ (e) => onAngelMouseDown(e) }>{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\r\n </div>\r\n <div class=\"fjs-select-anchor\">\r\n { displayState.displayDropdown && <DropdownList\r\n values={ filteredOptions }\r\n getLabel={ (o) => o.label }\r\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\r\n listenerElement={ searchbarRef.current } />}\r\n </div>\r\n </>;\r\n}\r\n","import { useCallback, useContext, useMemo, useRef, useState } from 'preact/hooks';\r\nimport useValuesAsync, { LOAD_STATES } from '../../../hooks/useValuesAsync';\r\n\r\nimport { FormContext } from '../../../context';\r\n\r\nimport XMarkIcon from '../icons/XMark.svg';\r\nimport AngelDownIcon from '../icons/AngelDown.svg';\r\nimport AngelUpIcon from '../icons/AngelUp.svg';\r\n\r\nimport {\r\n prefixId,\r\n} from '../../Util';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport DropdownList from './DropdownList';\r\nimport { findIndex } from 'min-dash';\r\n\r\nexport default function SimpleSelect(props) {\r\n const {\r\n id,\r\n disabled,\r\n errors,\r\n field,\r\n value\r\n } = props;\r\n\r\n const { formId } = useContext(FormContext);\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const selectRef = useRef();\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\r\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\r\n\r\n const valueLabel = useMemo(() => value && valueToOptionMap[value] && valueToOptionMap[value].label || '', [ value, valueToOptionMap ]);\r\n\r\n const setValue = useCallback((option) => {\r\n props.onChange({ value: option && option.value || null, field });\r\n }, [ field, props ]);\r\n\r\n const displayState = useMemo(() => {\r\n const ds = {};\r\n ds.componentReady = !disabled && loadState === LOAD_STATES.LOADED;\r\n ds.displayCross = ds.componentReady && value !== null && value !== undefined;\r\n ds.displayDropdown = !disabled && isDropdownExpanded;\r\n return ds;\r\n }, [ disabled, isDropdownExpanded, loadState, value ]);\r\n\r\n const onMouseDown = useCallback((e) => {\r\n const select = selectRef.current;\r\n setIsDropdownExpanded(!isDropdownExpanded);\r\n\r\n if (isDropdownExpanded) {\r\n select.blur();\r\n }\r\n else {\r\n select.focus();\r\n }\r\n\r\n e.preventDefault();\r\n }, [ isDropdownExpanded ]);\r\n\r\n const initialFocusIndex = useMemo(() => value && findIndex(options, (o) => o.value === value) || 0, [ options, value ]);\r\n\r\n return <>\r\n <div ref={ selectRef }\r\n id={ prefixId(`${id}`, formId) }\r\n class={ classNames('fjs-input-group', { 'disabled': disabled }, { 'hasErrors': errors.length }) }\r\n onFocus={ () => setIsDropdownExpanded(true) }\r\n onBlur={ () => setIsDropdownExpanded(false) }\r\n onMouseDown={ (e) => onMouseDown(e) }\r\n tabIndex={ disabled ? undefined : 0 }>\r\n <div class={ classNames('fjs-select-display', { 'fjs-select-placeholder' : !value }) } id={ prefixId(`${id}-display`, formId) }>{ valueLabel || 'Select' }</div>\r\n { displayState.displayCross && <span class=\"fjs-select-cross\" onMouseDown={ (e) => { setValue(null); e.stopPropagation(); } }><XMarkIcon /></span> }\r\n <span class=\"fjs-select-arrow\">{ displayState.displayDropdown ? <AngelUpIcon /> : <AngelDownIcon /> }</span>\r\n </div>\r\n <div class=\"fjs-select-anchor\">\r\n {displayState.displayDropdown && <DropdownList\r\n values={ options }\r\n getLabel={ (o) => o.label }\r\n initialFocusIndex={ initialFocusIndex }\r\n onValueSelected={ (o) => { setValue(o); setIsDropdownExpanded(false); } }\r\n listenerElement={ selectRef.current } />}\r\n </div>\r\n </>;\r\n}\r\n","import { useContext, useMemo } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeSingleSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\nimport SearchableSelect from './parts/SearchableSelect';\r\nimport SimpleSelect from './parts/SimpleSelect';\r\n\r\nconst type = 'select';\r\n\r\nexport default function Select(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n onChange,\r\n value\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n searchable = false,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n const selectProps = useMemo(() => ({\r\n id,\r\n disabled,\r\n errors,\r\n field,\r\n value,\r\n onChange\r\n }), [ disabled, errors, field, id, value, onChange ]);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n { searchable ? <SearchableSelect { ...selectProps } /> : <SimpleSelect { ...selectProps } /> }\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nSelect.create = (options = {}) => {\r\n\r\n const defaults = { };\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n};\r\n\r\nSelect.type = type;\r\nSelect.label = 'Select';\r\nSelect.keyed = true;\r\nSelect.emptyValue = null;\r\nSelect.sanitizeValue = sanitizeSingleSelectValue;\r\nSelect.group = 'selection';","import { useContext, useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport useValuesAsync, { LOAD_STATES } from '../../hooks/useValuesAsync';\r\n\r\nimport { FormContext } from '../../context';\r\nimport classNames from 'classnames';\r\n\r\nimport XMarkIcon from './icons/XMark.svg';\r\n\r\nimport DropdownList from './parts/DropdownList';\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport { sanitizeMultiSelectValue } from '../util/sanitizerUtil';\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'taglist';\r\n\r\nexport default function Taglist(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value : values = []\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const { formId } = useContext(FormContext);\r\n const [ filter, setFilter ] = useState('');\r\n const [ filteredOptions, setFilteredOptions ] = useState([]);\r\n const [ isDropdownExpanded, setIsDropdownExpanded ] = useState(false);\r\n const [ hasOptionsLeft, setHasOptionsLeft ] = useState(true);\r\n const [ isEscapeClosed, setIsEscapeClose ] = useState(false);\r\n const searchbarRef = useRef();\r\n\r\n const {\r\n state: loadState,\r\n values: options\r\n } = useValuesAsync(field);\r\n\r\n // We cache a map of option values to their index so that we don't need to search the whole options array every time to correlate the label\r\n const valueToOptionMap = useMemo(() => Object.assign({}, ...options.map((o, x) => ({ [o.value]: options[x] }))), [ options ]);\r\n\r\n // Usage of stringify is necessary here because we want this effect to only trigger when there is a value change to the array\r\n useEffect(() => {\r\n if (loadState === LOAD_STATES.LOADED) {\r\n setFilteredOptions(options.filter((o) => o.label && o.value && (o.label.toLowerCase().includes(filter.toLowerCase())) && !values.includes(o.value)));\r\n }\r\n else {\r\n setFilteredOptions([]);\r\n }\r\n }, [ filter, JSON.stringify(values), options, loadState ]);\r\n\r\n useEffect(() => {\r\n setHasOptionsLeft(options.length > values.length);\r\n }, [ options.length, values.length ]);\r\n\r\n const onFilterChange = ({ target }) => {\r\n setIsEscapeClose(false);\r\n setFilter(target.value);\r\n };\r\n\r\n const selectValue = (value) => {\r\n if (filter) {\r\n setFilter('');\r\n }\r\n\r\n // Ensure values cannot be double selected due to latency\r\n if (values.at(-1) === value) {\r\n return;\r\n }\r\n\r\n props.onChange({ value: [ ...values, value ], field });\r\n };\r\n\r\n const deselectValue = (value) => {\r\n props.onChange({ value: values.filter((v) => v != value), field });\r\n };\r\n\r\n const onInputKeyDown = (e) => {\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n case 'ArrowDown':\r\n\r\n // We do not want the cursor to seek in the search field when we press up and down\r\n e.preventDefault();\r\n break;\r\n case 'Backspace':\r\n if (!filter && values.length) {\r\n deselectValue(values[values.length - 1]);\r\n }\r\n break;\r\n case 'Escape':\r\n setIsEscapeClose(true);\r\n break;\r\n case 'Enter':\r\n if (isEscapeClosed) {\r\n setIsEscapeClose(false);\r\n }\r\n break;\r\n }\r\n };\r\n\r\n const onTagRemoveClick = (event, value) => {\r\n const { target } = event;\r\n\r\n deselectValue(value);\r\n\r\n // restore focus if there is no next sibling to focus\r\n const nextTag = target.closest('.fjs-taglist-tag').nextSibling;\r\n if (!nextTag) {\r\n searchbarRef.current.focus();\r\n }\r\n };\r\n\r\n const shouldDisplayDropdown = useMemo(() => !disabled && loadState === LOAD_STATES.LOADED && isDropdownExpanded && !isEscapeClosed, [ disabled, isDropdownExpanded, isEscapeClosed, loadState ]);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\r\n <Label\r\n label={ label }\r\n required={ required }\r\n id={ prefixId(`${id}-search`, formId) } />\r\n <div class={ classNames('fjs-taglist', { 'fjs-disabled': disabled }) }>\r\n { loadState === LOAD_STATES.LOADED &&\r\n <div class=\"fjs-taglist-tags\">\r\n {\r\n values.map((v) => {\r\n return (\r\n <div class={ classNames('fjs-taglist-tag', { 'fjs-disabled': disabled }) } onMouseDown={ (e) => e.preventDefault() }>\r\n <span class=\"fjs-taglist-tag-label\">\r\n {valueToOptionMap[v] ? valueToOptionMap[v].label : `unexpected value{${v}}`}\r\n </span>\r\n { !disabled && <button\r\n type=\"button\"\r\n title=\"Remove tag\"\r\n class=\"fjs-taglist-tag-remove\"\r\n onClick={ (event) => onTagRemoveClick(event, v) }>\r\n\r\n <XMarkIcon />\r\n </button> }\r\n </div>\r\n );\r\n })\r\n }\r\n </div>\r\n }\r\n <input\r\n disabled={ disabled }\r\n class=\"fjs-taglist-input\"\r\n ref={ searchbarRef }\r\n id={ prefixId(`${id}-search`, formId) }\r\n onChange={ onFilterChange }\r\n type=\"text\"\r\n value={ filter }\r\n placeholder={ disabled ? '' : 'Search' }\r\n autoComplete=\"off\"\r\n onKeyDown={ (e) => onInputKeyDown(e) }\r\n onMouseDown={ () => setIsEscapeClose(false) }\r\n onFocus={ () => setIsDropdownExpanded(true) }\r\n onBlur={ () => { setIsDropdownExpanded(false); setFilter(''); } } />\r\n </div>\r\n <div class=\"fjs-taglist-anchor\">\r\n { shouldDisplayDropdown && <DropdownList\r\n values={ filteredOptions }\r\n getLabel={ (o) => o.label }\r\n onValueSelected={ (o) => selectValue(o.value) }\r\n emptyListMessage={ hasOptionsLeft ? 'No results' : 'All values selected' }\r\n listenerElement={ searchbarRef.current } /> }\r\n </div>\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nTaglist.create = (options = {}) => {\r\n\r\n const defaults = {};\r\n\r\n // provide default values if valuesKey isn't set\r\n if (!options.valuesKey) {\r\n defaults.values = [\r\n {\r\n label: 'Value',\r\n value: 'value'\r\n }\r\n ];\r\n }\r\n\r\n return {\r\n ...defaults,\r\n ...options\r\n };\r\n};\r\n\r\nTaglist.type = type;\r\nTaglist.label = 'Tag list';\r\nTaglist.keyed = true;\r\nTaglist.emptyValue = [];\r\nTaglist.sanitizeValue = sanitizeMultiSelectValue;\r\nTaglist.group = 'selection';","import Markup from 'preact-markup';\r\nimport { useMemo } from 'preact/hooks';\r\nimport { useService, useTemplateEvaluation } from '../../hooks';\r\nimport { sanitizeHTML } from '../Sanitizer';\r\n\r\nimport {\r\n formFieldClasses\r\n} from '../Util';\r\n\r\nconst type = 'text';\r\n\r\n\r\nexport default function Text(props) {\r\n const { field, disableLinks } = props;\r\n\r\n const { text = '', strict = false } = field;\r\n\r\n const markdownRenderer = useService('markdownRenderer');\r\n\r\n // feelers => pure markdown\r\n const markdown = useTemplateEvaluation(text, { debug: true, strict });\r\n\r\n // markdown => safe HTML\r\n const safeHtml = useMemo(() => {\r\n const html = markdownRenderer.render(markdown);\r\n return sanitizeHTML(html);\r\n }, [ markdownRenderer, markdown ]);\r\n\r\n const componentOverrides = useMemo(() => disableLinks ? { 'a': DisabledLink } : {}, [ disableLinks ]);\r\n\r\n return <div class={ formFieldClasses(type) }>\r\n <Markup markup={ safeHtml } components={ componentOverrides } trim={ false } />\r\n </div>;\r\n}\r\n\r\nText.create = (options = {}) => ({\r\n text: '# Text',\r\n ...options\r\n});\r\n\r\nText.type = type;\r\nText.keyed = false;\r\nText.group = 'presentation';\r\nText.label = 'Text view';\r\n\r\nfunction DisabledLink({ href, children }) { return <a class=\"fjs-disabled-link\" href={ href } tabIndex={ -1 }>{ children }</a>; }\r\n","import { isArray, isObject } from 'min-dash';\r\nimport { useContext } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\nimport InputAdorner from './parts/InputAdorner';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'textfield';\r\n\r\n\r\nexport default function Textfield(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n appearance = {},\r\n validate = {}\r\n } = field;\r\n\r\n const {\r\n prefixAdorner,\r\n suffixAdorner\r\n } = appearance;\r\n\r\n const { required } = validate;\r\n\r\n const onChange = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.value\r\n });\r\n };\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n <InputAdorner disabled={ disabled } pre={ prefixAdorner } post={ suffixAdorner }>\r\n <input\r\n class=\"fjs-input\"\r\n disabled={ disabled }\r\n id={ prefixId(id, formId) }\r\n onInput={ onChange }\r\n type=\"text\"\r\n value={ value } />\r\n </InputAdorner>\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nTextfield.create = (options = {}) => ({\r\n ...options\r\n});\r\n\r\nTextfield.type = type;\r\nTextfield.label = 'Text field';\r\nTextfield.keyed = true;\r\nTextfield.emptyValue = '';\r\nTextfield.sanitizeValue = ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value);\r\nTextfield.group = 'basic-input';","import { isArray, isObject } from 'min-dash';\r\nimport { useCallback, useContext, useEffect, useRef } from 'preact/hooks';\r\n\r\nimport { FormContext } from '../../context';\r\n\r\nimport Description from '../Description';\r\nimport Errors from '../Errors';\r\nimport Label from '../Label';\r\n\r\nimport {\r\n formFieldClasses,\r\n prefixId\r\n} from '../Util';\r\n\r\nconst type = 'textarea';\r\n\r\n\r\nexport default function Textarea(props) {\r\n const {\r\n disabled,\r\n errors = [],\r\n field,\r\n value = ''\r\n } = props;\r\n\r\n const {\r\n description,\r\n id,\r\n label,\r\n validate = {}\r\n } = field;\r\n\r\n const { required } = validate;\r\n\r\n const textareaRef = useRef();\r\n\r\n const onInput = ({ target }) => {\r\n props.onChange({\r\n field,\r\n value: target.value\r\n });\r\n };\r\n\r\n const autoSizeTextarea = useCallback((textarea) => {\r\n\r\n // Ensures the textarea shrinks back, and improves resizing behavior consistency\r\n textarea.style.height = '0px';\r\n\r\n const computed = window.getComputedStyle(textarea);\r\n\r\n const calculatedHeight = parseInt(computed.getPropertyValue('border-top-width'))\r\n + parseInt(computed.getPropertyValue('padding-top'))\r\n + textarea.scrollHeight\r\n + parseInt(computed.getPropertyValue('padding-bottom'))\r\n + parseInt(computed.getPropertyValue('border-bottom-width'));\r\n\r\n const minHeight = 75;\r\n const maxHeight = 350;\r\n const displayHeight = Math.max(Math.min(calculatedHeight, maxHeight), minHeight);\r\n\r\n textarea.style.height = `${displayHeight}px`;\r\n\r\n // Overflow is hidden by default to hide scrollbar flickering\r\n textarea.style.overflow = calculatedHeight > maxHeight ? 'visible' : 'hidden';\r\n\r\n }, [ ]);\r\n\r\n useEffect(() => {\r\n autoSizeTextarea(textareaRef.current);\r\n }, [ autoSizeTextarea, value ]);\r\n\r\n const { formId } = useContext(FormContext);\r\n\r\n return <div class={ formFieldClasses(type, { errors, disabled }) }>\r\n <Label\r\n id={ prefixId(id, formId) }\r\n label={ label }\r\n required={ required } />\r\n <textarea class=\"fjs-textarea\"\r\n disabled={ disabled }\r\n id={ prefixId(id, formId) }\r\n onInput={ onInput }\r\n value={ value }\r\n ref={ textareaRef } />\r\n <Description description={ description } />\r\n <Errors errors={ errors } />\r\n </div>;\r\n}\r\n\r\nTextarea.create = (options = {}) => ({\r\n ...options\r\n});\r\n\r\nTextarea.type = type;\r\nTextarea.label = 'Text area';\r\nTextarea.keyed = true;\r\nTextarea.emptyValue = '';\r\nTextarea.sanitizeValue = ({ value }) => (isArray(value) || isObject(value)) ? '' : String(value);\r\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';\r\nimport CheckboxIcon from './Checkbox.svg';\r\nimport ChecklistIcon from './Checklist.svg';\r\nimport DatetimeIcon from './Datetime.svg';\r\nimport TaglistIcon from './Taglist.svg';\r\nimport FormIcon from './Form.svg';\r\nimport ColumnsIcon from './Group.svg';\r\nimport NumberIcon from './Number.svg';\r\nimport RadioIcon from './Radio.svg';\r\nimport SelectIcon from './Select.svg';\r\nimport TextIcon from './Text.svg';\r\nimport TextfieldIcon from './Textfield.svg';\r\nimport TextareaIcon from './Textarea.svg';\r\nimport ImageIcon from './Image.svg';\r\n\r\nexport const iconsByType = (type) => {\r\n return {\r\n button: ButtonIcon,\r\n checkbox: CheckboxIcon,\r\n checklist: ChecklistIcon,\r\n columns: ColumnsIcon,\r\n datetime: DatetimeIcon,\r\n image: ImageIcon,\r\n number: NumberIcon,\r\n radio: RadioIcon,\r\n select: SelectIcon,\r\n taglist: TaglistIcon,\r\n text: TextIcon,\r\n textfield: TextfieldIcon,\r\n textarea: TextareaIcon,\r\n default: FormIcon\r\n }[type];\r\n};","import Button from './form-fields/Button';\r\nimport Checkbox from './form-fields/Checkbox';\r\nimport Checklist from './form-fields/Checklist';\r\nimport Default from './form-fields/Default';\r\nimport Datetime from './form-fields/Datetime';\r\nimport FormComponent from './FormComponent';\r\nimport Image from './form-fields/Image';\r\nimport Numberfield from './form-fields/Number';\r\nimport Radio from './form-fields/Radio';\r\nimport Select from './form-fields/Select';\r\nimport Taglist from './form-fields/Taglist';\r\nimport Text from './form-fields/Text';\r\nimport Textfield from './form-fields/Textfield';\r\nimport Textarea from './form-fields/Textarea';\r\n\r\nexport {\r\n Button,\r\n Checkbox,\r\n Checklist,\r\n Default,\r\n Datetime,\r\n FormComponent,\r\n Image,\r\n Numberfield,\r\n Radio,\r\n Select,\r\n Taglist,\r\n Text,\r\n Textfield,\r\n Textarea\r\n};\r\n\r\nexport const formFields = [\r\n Button,\r\n Checkbox,\r\n Checklist,\r\n Default,\r\n Image,\r\n Numberfield,\r\n Datetime,\r\n Radio,\r\n Select,\r\n Taglist,\r\n Text,\r\n Textfield,\r\n Textarea\r\n];\r\n\r\nexport * from './icons';","import { formFields } from './components';\r\n\r\nexport default class FormFields {\r\n constructor() {\r\n this._formFields = {};\r\n\r\n formFields.forEach((formField) => {\r\n this.register(formField.type, formField);\r\n });\r\n }\r\n\r\n register(type, formField) {\r\n this._formFields[ type ] = formField;\r\n }\r\n\r\n get(type) {\r\n return this._formFields[ type ];\r\n }\r\n}","import { render } from 'preact';\r\nimport { useCallback, useState } from 'preact/hooks';\r\n\r\nimport FormComponent from './components/FormComponent';\r\n\r\nimport { FormContext } from './context';\r\n\r\n/**\r\n * @typedef { { container } } Config\r\n * @typedef { import('didi').Injector } Injector\r\n * @typedef { import('../core/EventBus').default } EventBus\r\n * @typedef { import('../Form').default } Form\r\n */\r\n\r\n/**\r\n * @param {Config} config\r\n * @param {EventBus} eventBus\r\n * @param {Form} form\r\n * @param {Injector} injector\r\n */\r\nexport default function Renderer(config, eventBus, form, injector) {\r\n\r\n const App = () => {\r\n const [ state, setState ] = useState(form._getState());\r\n\r\n const formContext = {\r\n getService(type, strict = true) {\r\n return injector.get(type, strict);\r\n },\r\n formId: form._id\r\n };\r\n\r\n eventBus.on('changed', (newState) => {\r\n setState(newState);\r\n });\r\n\r\n const onChange = useCallback((update) => form._update(update), [ form ]);\r\n\r\n const { properties } = state;\r\n\r\n const { readOnly } = properties;\r\n\r\n const onSubmit = useCallback(() => {\r\n if (!readOnly) {\r\n form.submit();\r\n }\r\n }, [ form, readOnly ]);\r\n\r\n const onReset = useCallback(() => form.reset(), [ form ]);\r\n\r\n const { schema } = state;\r\n\r\n if (!schema) {\r\n return null;\r\n }\r\n\r\n return (\r\n <FormContext.Provider value={ formContext }>\r\n <FormComponent\r\n onChange={ onChange }\r\n onSubmit={ onSubmit }\r\n onReset={ onReset } />\r\n </FormContext.Provider>\r\n );\r\n };\r\n\r\n const { container } = config;\r\n\r\n eventBus.on('form.init', () => {\r\n render(<App />, container);\r\n });\r\n\r\n eventBus.on('form.destroy', () => {\r\n render(null, container);\r\n });\r\n}\r\n\r\nRenderer.$inject = [ 'config.renderer', 'eventBus', 'form', 'injector' ];","import FormFields from './FormFields';\r\nimport Renderer from './Renderer';\r\n\r\nexport { FormFields };\r\n\r\nexport * from './components';\r\nexport * from './context';\r\n\r\nexport default {\r\n __init__: [ 'formFields', 'renderer' ],\r\n formFields: [ 'type', FormFields ],\r\n renderer: [ 'type', Renderer ]\r\n};","import EventBus from './EventBus';\r\nimport Validator from './Validator';\r\nimport FormFieldRegistry from './FormFieldRegistry';\r\nimport FormLayouter from './FormLayouter';\r\n\r\nimport importModule from '../import';\r\nimport renderModule from '../render';\r\n\r\nexport { FormFieldRegistry, FormLayouter };\r\n\r\nexport default {\r\n __depends__: [ importModule, renderModule ],\r\n eventBus: [ 'type', EventBus ],\r\n formFieldRegistry: [ 'type', FormFieldRegistry ],\r\n formLayouter: [ 'type', FormLayouter ],\r\n validator: [ 'type', Validator ]\r\n};","import Ids from 'ids';\r\nimport { get, isString, set } from 'min-dash';\r\n\r\nimport ExpressionLanguageModule from './features/expression-language';\r\nimport MarkdownModule from './features/markdown';\r\n\r\nimport core from './core';\r\n\r\nimport { clone, createFormContainer, createInjector, pathStringify } from './util';\r\n\r\n/**\r\n * @typedef { import('./types').Injector } Injector\r\n * @typedef { import('./types').Data } Data\r\n * @typedef { import('./types').Errors } Errors\r\n * @typedef { import('./types').Schema } Schema\r\n * @typedef { import('./types').FormProperties } FormProperties\r\n * @typedef { import('./types').FormProperty } FormProperty\r\n * @typedef { import('./types').FormEvent } FormEvent\r\n * @typedef { import('./types').FormOptions } FormOptions\r\n *\r\n * @typedef { {\r\n * data: Data,\r\n * initialData: Data,\r\n * errors: Errors,\r\n * properties: FormProperties,\r\n * schema: Schema\r\n * } } State\r\n *\r\n * @typedef { (type:FormEvent, priority:number, handler:Function) => void } OnEventWithPriority\r\n * @typedef { (type:FormEvent, handler:Function) => void } OnEventWithOutPriority\r\n * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType\r\n */\r\n\r\nconst ids = new Ids([ 32, 36, 1 ]);\r\n\r\n/**\r\n * The form.\r\n */\r\nexport default class Form {\r\n\r\n /**\r\n * @constructor\r\n * @param {FormOptions} options\r\n */\r\n constructor(options = {}) {\r\n\r\n /**\r\n * @public\r\n * @type {OnEventType}\r\n */\r\n this.on = this._onEvent;\r\n\r\n /**\r\n * @public\r\n * @type {String}\r\n */\r\n this._id = ids.next();\r\n\r\n /**\r\n * @private\r\n * @type {Element}\r\n */\r\n this._container = createFormContainer();\r\n\r\n const {\r\n container,\r\n injector = this._createInjector(options, this._container),\r\n properties = {}\r\n } = options;\r\n\r\n /**\r\n * @private\r\n * @type {State}\r\n */\r\n this._state = {\r\n initialData: null,\r\n data: null,\r\n properties,\r\n errors: {},\r\n schema: null\r\n };\r\n\r\n this.get = injector.get;\r\n\r\n this.invoke = injector.invoke;\r\n\r\n this.get('eventBus').fire('form.init');\r\n\r\n if (container) {\r\n this.attachTo(container);\r\n }\r\n }\r\n\r\n clear() {\r\n\r\n // clear form services\r\n this._emit('diagram.clear');\r\n\r\n // clear diagram services (e.g. EventBus)\r\n this._emit('form.clear');\r\n }\r\n\r\n /**\r\n * Destroy the form, removing it from DOM,\r\n * if attached.\r\n */\r\n destroy() {\r\n\r\n // destroy form services\r\n this.get('eventBus').fire('form.destroy');\r\n\r\n // destroy diagram services (e.g. EventBus)\r\n this.get('eventBus').fire('diagram.destroy');\r\n\r\n this._detach(false);\r\n }\r\n\r\n /**\r\n * Open a form schema with the given initial data.\r\n *\r\n * @param {Schema} schema\r\n * @param {Data} [data]\r\n *\r\n * @return Promise<{ warnings: Array<any> }>\r\n */\r\n importSchema(schema, data = {}) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.clear();\r\n\r\n const {\r\n schema: importedSchema,\r\n data: initializedData,\r\n warnings\r\n } = this.get('importer').importSchema(schema, data);\r\n\r\n this._setState({\r\n data: initializedData,\r\n errors: {},\r\n schema: importedSchema,\r\n initialData: clone(initializedData)\r\n });\r\n\r\n this._emit('import.done', { warnings });\r\n\r\n return resolve({ warnings });\r\n } catch (error) {\r\n this._emit('import.done', {\r\n error,\r\n warnings: error.warnings || []\r\n });\r\n\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Submit the form, triggering all field validations.\r\n *\r\n * @returns { { data: Data, errors: Errors } }\r\n */\r\n submit() {\r\n\r\n const {\r\n properties\r\n } = this._getState();\r\n\r\n if (properties.readOnly) {\r\n throw new Error('form is read-only');\r\n }\r\n\r\n const data = this._getSubmitData();\r\n\r\n const errors = this.validate();\r\n const filteredErrors = this._applyConditions(errors, data);\r\n\r\n const result = {\r\n data,\r\n errors: filteredErrors\r\n };\r\n\r\n this._emit('submit', result);\r\n\r\n return result;\r\n }\r\n\r\n reset() {\r\n this._emit('reset');\r\n\r\n this._setState({\r\n data: clone(this._state.initialData),\r\n errors: {}\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Errors}\r\n */\r\n validate() {\r\n const formFieldRegistry = this.get('formFieldRegistry'),\r\n validator = this.get('validator');\r\n\r\n const { data } = this._getState();\r\n\r\n const errors = formFieldRegistry.getAll().reduce((errors, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n if (disabled) {\r\n return errors;\r\n }\r\n\r\n const value = get(data, _path);\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n return set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n }, /** @type {Errors} */ ({}));\r\n\r\n this._setState({ errors });\r\n\r\n return errors;\r\n }\r\n\r\n /**\r\n * @param {Element|string} parentNode\r\n */\r\n attachTo(parentNode) {\r\n if (!parentNode) {\r\n throw new Error('parentNode required');\r\n }\r\n\r\n this.detach();\r\n\r\n if (isString(parentNode)) {\r\n parentNode = document.querySelector(parentNode);\r\n }\r\n\r\n const container = this._container;\r\n\r\n parentNode.appendChild(container);\r\n\r\n this._emit('attach');\r\n }\r\n\r\n detach() {\r\n this._detach();\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {boolean} [emit]\r\n */\r\n _detach(emit = true) {\r\n const container = this._container,\r\n parentNode = container.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n if (emit) {\r\n this._emit('detach');\r\n }\r\n\r\n parentNode.removeChild(container);\r\n }\r\n\r\n /**\r\n * @param {FormProperty} property\r\n * @param {any} value\r\n */\r\n setProperty(property, value) {\r\n const properties = set(this._getState().properties, [ property ], value);\r\n\r\n this._setState({ properties });\r\n }\r\n\r\n /**\r\n * @param {FormEvent} type\r\n * @param {Function} handler\r\n */\r\n off(type, handler) {\r\n this.get('eventBus').off(type, handler);\r\n }\r\n\r\n /**\r\n * @private\r\n *\r\n * @param {FormOptions} options\r\n * @param {Element} container\r\n *\r\n * @returns {Injector}\r\n */\r\n _createInjector(options, container) {\r\n const {\r\n additionalModules = [],\r\n modules = this._getModules()\r\n } = options;\r\n\r\n const config = {\r\n renderer: {\r\n container\r\n }\r\n };\r\n\r\n return createInjector([\r\n { config: [ 'value', config ] },\r\n { form: [ 'value', this ] },\r\n core,\r\n ...modules,\r\n ...additionalModules\r\n ]);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _emit(type, data) {\r\n this.get('eventBus').fire(type, data);\r\n }\r\n\r\n /**\r\n * @internal\r\n *\r\n * @param { { add?: boolean, field: any, remove?: number, value?: any } } update\r\n */\r\n _update(update) {\r\n const {\r\n field,\r\n value\r\n } = update;\r\n\r\n const { _path } = field;\r\n\r\n let {\r\n data,\r\n errors\r\n } = this._getState();\r\n\r\n const validator = this.get('validator');\r\n\r\n const fieldErrors = validator.validateField(field, value);\r\n\r\n set(data, _path, value);\r\n\r\n set(errors, [ pathStringify(_path) ], fieldErrors.length ? fieldErrors : undefined);\r\n\r\n this._setState({\r\n data: clone(data),\r\n errors: clone(errors)\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getState() {\r\n return this._state;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _setState(state) {\r\n this._state = {\r\n ...this._state,\r\n ...state\r\n };\r\n\r\n this._emit('changed', this._getState());\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getModules() {\r\n return [\r\n ExpressionLanguageModule,\r\n MarkdownModule\r\n ];\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _onEvent(type, priority, handler) {\r\n this.get('eventBus').on(type, priority, handler);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getSubmitData() {\r\n\r\n const formFieldRegistry = this.get('formFieldRegistry');\r\n const formData = this._getState().data;\r\n\r\n const submitData = formFieldRegistry.getAll().reduce((previous, field) => {\r\n const {\r\n disabled,\r\n _path\r\n } = field;\r\n\r\n // do not submit disabled form fields\r\n if (disabled || !_path) {\r\n return previous;\r\n }\r\n\r\n const value = get(formData, _path);\r\n\r\n return {\r\n ...previous,\r\n [ _path[ 0 ] ]: value\r\n };\r\n }, {});\r\n\r\n const filteredSubmitData = this._applyConditions(submitData, formData);\r\n\r\n return filteredSubmitData;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _applyConditions(toFilter, data) {\r\n const conditionChecker = this.get('conditionChecker');\r\n return conditionChecker.applyConditions(toFilter, data);\r\n }\r\n}\r\n","import Form from './Form';\r\n\r\nexport { FormFieldRegistry, FormLayouter } from './core';\r\nexport * from './render';\r\nexport * from './util';\r\nexport * from './features';\r\n\r\nconst schemaVersion = 8;\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":["FeelExpressionLanguage","constructor","eventBus","_eventBus","isExpression","value","isString","startsWith","getVariableNames","expression","options","type","_getUnaryVariableNames","_getExpressionVariableNames","Error","evaluate","data","result","slice","error","fire","tree","parseExpressions","cursor","variables","Set","node","name","add","from","to","next","Array","unaryTest","parseUnaryTests","$inject","FeelersTemplating","isTemplate","test","template","context","debug","strict","buildDebugString","err","evaluateFeelers","ConditionChecker","formFieldRegistry","_formFieldRegistry","applyConditions","properties","conditions","_getConditions","newProperties","key","condition","shouldRemove","_checkHideCondition","check","hide","formFields","getAll","reduce","formField","conditional","__init__","expressionLanguage","templating","conditionChecker","showdown","setFlavor","MarkdownRenderer","_converter","Converter","render","markdown","makeHtml","markdownRenderer","FN_REF","DEFAULT_PRIORITY","prototype","EventBus","_listeners","on","_destroy","events","priority","callback","that","isArray","isFunction","isNumber","actualCallback","bind","self","forEach","e","_addListener","once","event","wrappedCallback","__isTomb","apply","arguments","off","_removeListener","createEvent","InternalEvent","init","firstListener","returnValue","args","call","originalType","_invokeListeners","undefined","defaultPrevented","handleError","listener","cancelBubble","_invokeListener","invokeFunction","stopPropagation","preventDefault","console","newListener","_getListeners","previousListener","_setListeners","nextListener","listenerCallback","assign","fn","countDecimals","number","num","Big","toString","toFixed","split","length","isValidNumber","isNaN","Number","willKeyProduceValidNumber","previousValue","caretIndex","selectionWidth","decimalDigits","replace","isFirstDot","includes","isFirstMinus","keypressIsNumeric","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","isUncheckedCheckbox","isUnsetValue","isNil","isEmptyMultiselect","min","max","trim","minLength","maxLength","validationType","FormFieldRegistry","_formFields","clear","_ids","Ids","_keys","id","remove","get","Object","values","FormLayouter","_rows","addRow","formFieldId","row","rowsPerComponent","find","r","rows","push","getRow","allRows","getRowForField","components","getRows","rowsForField","nextRowId","nextPrefixed","calculateLayout","rowsInOrder","groupByRow","entries","map","c","ids","groupBy","layout","formRows","flatten","MINUTES_IN_DAY","DATETIME_SUBTYPES","DATE","TIME","DATETIME","TIME_SERIALISING_FORMATS","UTC_OFFSET","UTC_NORMALIZED","NO_TIMEZONE","DATETIME_SUBTYPES_LABELS","TIME_SERIALISINGFORMAT_LABELS","DATETIME_SUBTYPE_PATH","DATE_LABEL_PATH","DATE_DISALLOW_PAST_PATH","TIME_LABEL_PATH","TIME_USE24H_PATH","TIME_INTERVAL_PATH","TIME_SERIALISING_FORMAT_PATH","VALUES_SOURCES","STATIC","INPUT","VALUES_SOURCE_DEFAULT","VALUES_SOURCES_LABELS","VALUES_SOURCES_PATHS","VALUES_SOURCES_DEFAULTS","label","getValuesSource","source","createInjector","bootstrapModules","injector","Injector","createFormContainer","prefix","container","document","createElement","classList","EXPRESSION_PROPERTIES","findErrors","path","pathStringify","isRequired","pathParse","parseInt","pathsEqual","a","b","every","index","join","indices","generateIndexForType","generateIdForType","clone","replacer","JSON","parse","stringify","getSchemaVariables","schema","component","valuesKey","conditionVariables","prop","property","expressionVariables","Importer","formLayouter","_formLayouter","importSchema","warnings","importedSchema","importFormField","initializedData","initializeFieldValues","parentId","_parent","assigned","claim","_path","importFormFields","defaultValue","fieldImplementation","valueData","isUndefined","sanitizeValue","initializedFieldValue","emptyValue","importer","formFieldClasses","disabled","classNames","gridColumnClasses","columns","prefixId","formId","Button","props","action","_jsx","create","keyed","group","FormRenderContext","createContext","Empty","Children","class","children","Element","Row","Column","getService","FormContext","Description","description","Errors","Label","collapseOnEmpty","_jsxs","Checkbox","onChange","target","checked","useContext","getValuesData","formData","normalizeValuesData","valuesData","filter","_isValueSomething","v","_normalizeValueData","_isAllowedValue","_isReadableType","useService","LOAD_STATES","LOADING","LOADED","ERROR","staticValues","valuesGetter","setValuesGetter","useState","state","initialData","_getState","useEffect","keyedValues","buildErrorState","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","toLowerCase","is12h","digits","match","displayHour","isValidDisplayHour","isValidMinute","isValidHour","serializeTime","timeSerializingFormat","normalizedMinutes","baseTime","addUTCOffset","formatTimezoneOffset","parseIsoTime","isoTimeString","parseBasicMinutes","timeString","timeSegments","localOffset","Date","getTimezoneOffset","offsetString","inboundOffset","serializeDate","date","d","month","getMonth","day","getDate","year","getFullYear","isDateTimeInputInformationSufficient","segments","dateNumbers","isDateInputInformationMatching","serializeDateTime","time","workingDate","setFullYear","setHours","timezoneOffsetMinutes","dayOffset","getHours","_getSignedPaddedHours","abs","isInvalidDateString","getTime","padStart","sanitizeDateTimePickerValue","subtype","sanitizeSingleSelectValue","validValues","sanitizeMultiSelectValue","Checklist","toggleCheckbox","newValue","x","loadState","useValuesAsync","defaults","useFilteredFormData","useMemo","newData","useCondition","filteredData","useExpressionEvaluation","useKeyDownAction","targetKey","listenerElement","downHandler","addEventListener","removeEventListener","useTemplateEvaluation","noop","FormField","form","FormFieldComponent","fieldErrors","readOnly","hidden","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","onClose","onInputKeyDown","useCallback","dispatchEvent","onInputFocus","onInputBlur","fullId","width","DEFAULT_LABEL_GETTER","NOOP","DropdownList","getLabel","onValueSelected","height","emptyListMessage","initialFocusIndex","mouseControl","setMouseControl","focusedValueIndex","setFocusedValueIndex","smoothScrolling","setSmoothScrolling","dropdownContainer","mouseScreenPos","focusedItem","changeFocusedValueIndex","delta","individualEntries","scrollIntoView","block","inline","onMouseMovedInKeyboardMode","valueIndex","userMovedCursor","screenX","y","screenY","maxHeight","scrollBehavior","i","Timepicker","timeInterval","setTime","timeInputRef","dropdownIsOpen","setDropdownIsOpen","useDropdown","rawValue","setRawValue","intervalAdjustedTime","propagateRawToMinute","newRawValue","localRawValue","correctedMinutes","timeOptions","minutesInDay","intervalCount","keys","intervalIndex","cacheTime","flooredCacheTime","onDropdownValueSelected","Datetime","dateLabel","timeLabel","getNullDateTime","dateTime","setDateTime","dateTimeUpdateRequest","setDateTimeUpdateRequest","isValidDate","isValidTime","useDatePicker","useTimePicker","getMinutes","computeAndSetState","newDateTimeValue","refreshOnly","newDateTime","allErrors","isOnlyOneFieldSet","prev","datePickerProps","timePickerProps","set","Logo","Lightbox","onBackdropClick","Link","onClick","PoweredBy","setOpen","toggleOpen","Fragment","createPortal","body","FormComponent","onSubmit","onReset","handleSubmit","handleReset","NODE_TYPE_TEXT","NODE_TYPE_ELEMENT","ALLOWED_NODES","ALLOWED_ATTRIBUTES","ALLOWED_URI_PATTERN","ALLOWED_IMAGE_SRC_PATTERN","ATTR_WHITESPACE_PATTERN","FORM_ELEMENT","sanitizeHTML","html","doc","DOMParser","parseFromString","normalize","element","firstChild","sanitizeNode","XMLSerializer","serializeToString","sanitizeImageSource","src","valid","nodeType","lcTag","tagName","attributes","attribute","lcName","removeAttribute","isValidAttribute","setAttribute","getAttribute","childNodes","Image","alt","evaluatedImageSource","safeSource","altText","Numberfield","appearance","incrementValue","prefixAdorner","suffixAdorner","stringValueCache","setStringValueCache","cacheValueMatchesState","displayValue","arrowIncrementValue","setValue","stringValue","replaceAll","base","stepFlooredValue","decrement","onKeyDown","onKeyPress","selectionStart","selectionEnd","Radio","option","SearchableSelect","setFilter","isDropdownExpanded","setIsDropdownExpanded","shouldApplyFilter","setShouldApplyFilter","isEscapeClosed","setIsEscapeClose","searchbarRef","valueToOptionMap","o","valueLabel","filteredOptions","keyDownEvent","displayState","ds","componentReady","displayCross","displayDropdown","onAngelMouseDown","searchbar","blur","_Fragment","SimpleSelect","selectRef","onMouseDown","select","findIndex","Select","searchable","selectProps","Taglist","setFilteredOptions","hasOptionsLeft","setHasOptionsLeft","onFilterChange","selectValue","at","deselectValue","onTagRemoveClick","nextTag","closest","nextSibling","shouldDisplayDropdown","Text","disableLinks","text","safeHtml","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","ColumnsIcon","datetime","DatetimeIcon","image","ImageIcon","NumberIcon","radio","RadioIcon","SelectIcon","taglist","TaglistIcon","TextIcon","textfield","TextfieldIcon","TextareaIcon","default","FormIcon","FormFields","register","Renderer","App","setState","formContext","_id","newState","update","_update","submit","reset","renderer","__depends__","importModule","renderModule","validator","Form","_onEvent","_container","_createInjector","_state","invoke","attachTo","_emit","destroy","_detach","Promise","resolve","reject","_setState","_getSubmitData","filteredErrors","_applyConditions","parentNode","detach","appendChild","emit","removeChild","setProperty","handler","additionalModules","modules","_getModules","core","ExpressionLanguageModule","MarkdownModule","submitData","previous","filteredSubmitData","toFilter","schemaVersion","createForm","rest","then"],"mappings":"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"}
|