Home
last modified time | relevance | path

Searched refs:alphabet (Results 1 – 18 of 18) sorted by relevance

/plugin/combo/vendor/hidehalo/nanoid-php/src/
H A DClient.php15 * @param string $alphabet Symbols to be used in ID.
70 * @param string $alphabet default CoreInterface::SAFE_SYMBOLS
73 public function formattedId($alphabet, $size = 0, GeneratorInterface $generator = null) argument
75 $alphabet = $alphabet?:CoreInterface::SAFE_SYMBOLS;
79 return $this->core->random($generator, $size, $alphabet);
85 * @param string $alphabet
92 public function formatedId($alphabet, $size = 0, GeneratorInterface $generator = null) argument
96 return $this->formattedId($alphabet, $size, $generator);
H A DCore.php10 public function random(GeneratorInterface $generator, $size, $alphabet = CoreInterface::SAFE_SYMBOLS) argument
12 $len = strlen($alphabet);
20 if (isset($alphabet[$byte])) {
21 $id .= $alphabet[$byte];
H A DCoreInterface.php10 * Secure random string generator with custom alphabet.
15 * @param string $alphabet
18 public function random(GeneratorInterface $generator, $size, $alphabet = CoreInterface::SAFE_SYMBOLS); argument
/plugin/gtime/gtlib/util/
H A DGTBaseX.php51 * @param string $alphabet the encoding alphabet
57 public function __construct($alphabet, $caseSensitive, $pad) { argument
61 while ((1 << $this->bits) < strlen($alphabet)) {
65 if ((1 << $this->bits) != strlen($alphabet)) {
70 $this->chars = GTUtil::toArray($alphabet);
77 $this->addMinMax($alphabet);
85 $this->addChars($alphabet);
89 $this->addMinMax(strtoupper($alphabet));
90 $this->addMinMax(strtolower($alphabet));
98 $this->addChars(strtolower($alphabet));
[all …]
/plugin/latexcaption/
H A Dhelper.php20 $alphabet = '';
24 $alphabet = chr(65 + $p) . $alphabet;
26 return strtolower($alphabet);
/plugin/captcha/lang/en/audio/
H A DREADME5 These samples represent the NATO phonetical alphabet. They are protected
/plugin/extlist/css/
H A D_numbering.less56 ol.alphabet {
/plugin/twofactorgoogleauth/
H A DQRCode.php243 $alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';
267 $c1 = strpos($alphabet, substr($group, 0, 1));
268 $c2 = strpos($alphabet, substr($group, 1, 1));
282 $ch = strpos($alphabet, $group);
/plugin/combo/resources/library/combo/
H A Dcombo.min.js.map1 {"mappings":"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","sources":["node_modules/@swc/helpers/src/_async_to_generator.js","node_modules/@swc/helpers/src/_class_call_check.js","node_modules/@swc/helpers/src/_create_class.js","node_modules/@swc/helpers/src/_define_property.js","js/packages/combo/Boolean.js","js/packages/combo/Logger.js","node_modules/nanoid/index.browser.js","js/packages/combo/Html.js","js/packages/combo/FormMetaField.js","js/packages/combo/FormMetaTab.js","js/packages/combo/FormMeta.js","%3C%3Cjsx-config-pragma.js%3E%3E","bootstrap.js","js/packages/combo/ComboModal.js","node_modules/@swc/helpers/src/_type_of.js","node_modules/regenerator-runtime/runtime.js","js/packages/combo/Browser.js","js/packages/combo/DokuRequest.js","js/packages/combo/DokuUrl.js","js/packages/combo/ComboDate.js","js/packages/combo/combo.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","\n\nexport default class Boolean {\n\n static toBoolean(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n return (value === 'true');\n }\n}\n","\nlet logger;\n\n// KISS for now\n// Otherwise, see https://datacadamia.com/web/javascript/logger#library\nexport default class Logger {\n\n static getLogger(){\n if(logger===undefined){\n logger = new Logger();\n }\n return logger;\n }\n\n error(value){\n console.error(value);\n /**\n * Removed by parcel when build\n * https://parceljs.org/features/production/#development-branch-removal\n * And set by Jest to test\n * https://jestjs.io/docs/environment-variables#node_env\n */\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(value);\n }\n }\n\n\n}\n","import { urlAlphabet } from './url-alphabet/index.js'\nif (process.env.NODE_ENV !== 'production') {\n if (\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative' &&\n typeof crypto === 'undefined'\n ) {\n throw new Error(\n 'React Native does not have a built-in secure random generator. ' +\n 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' +\n 'For secure IDs, import `react-native-get-random-values` ' +\n 'before Nano ID.'\n )\n }\n if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') {\n throw new Error(\n 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' +\n ' before importing Nano ID to fix IE 11 support'\n )\n }\n if (typeof crypto === 'undefined') {\n throw new Error(\n 'Your browser does not have secure random generator. ' +\n 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.'\n )\n }\n}\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, size, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * size) / alphabet.length)\n return () => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size) => customRandom(alphabet, size, random)\nlet nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n while (size--) {\n let byte = bytes[size] & 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte < 63) {\n id += '_'\n } else {\n id += '-'\n }\n }\n return id\n}\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import {customAlphabet} from \"nanoid\";\n\nexport default class Html {\n\n static toHtmlId(s) {\n /**\n * A point is also replaced otherwise you\n * can't use the id as selector in CSS\n */\n return s\n .toString() // in case of number\n .replace(/[_.\\s:\\/\\\\]/g, \"-\");\n }\n\n static createRandomId() {\n /**\n * Shorthand selector does not support numbers\n * as first position\n * The alphabet does not allow them then\n */\n const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10)\n return nanoid();\n }\n\n static toEntities(text) {\n let entities = [];\n for (let i = 0; i < text.length; i++) {\n let entity = `&#${text.charCodeAt(i)};`\n entities.push(entity);\n }\n return entities.join('');\n }\n}\n","import Boolean from \"./Boolean\";\nimport Logger from \"./Logger\";\nimport Html from \"./Html\";\n\n\n/**\n * A form field may hold:\n * * a simple scalar value\n * * or a table (list of values)\n */\nexport default class FormMetaField {\n\n\n tab = \"unknown\";\n mutable = true;\n values = [];\n defaultValues = [];\n multiple = false;\n\n /**\n * Static const function\n * Waiting for the const keyword\n * to make them not mutable\n * @type {string}\n */\n static TABULAR_TYPE = \"tabular\";\n static DATE_TIME = \"datetime\";\n static PARAGRAPH = \"paragraph\";\n static BOOLEAN = \"boolean\";\n\n children = {};\n static JSON = \"json\";\n\n\n constructor(name) {\n this.name = name;\n }\n\n getLabelAnchor() {\n if (this.getUrl() === undefined && this.getDescription() === undefined) {\n return this.getLabel();\n }\n let url = this.getUrl();\n if (this.getUrl() === undefined) {\n url = \"#\";\n return `\n<span class=\"d-inline-block\" tabindex=\"0\" data-bs-toggle=\"tooltip\" title=\"${this.getDescription()}\">\n <a href=\"${url}\" title=\"${this.getDescription()}\" style=\"text-decoration:none;pointer-events: none;\">${this.getLabel()}</a>\n</span>`;\n } else {\n return `<a href=\"${url}\" title=\"${this.getDescription()}\" data-bs-toggle=\"tooltip\" style=\"text-decoration:none\" target=\"_blank\">${this.getLabel()}</a>`;\n }\n }\n\n /**\n * The form field type\n * @param {string} type\n * @return {FormMetaField}\n */\n setType(type) {\n this.type = type;\n return this;\n }\n\n /**\n * The global label\n * (should be not null in case of tabular data)\n * @param {string} label\n * @return {FormMetaField}\n */\n setLabel(label) {\n this.label = label;\n return this;\n }\n\n /**\n * The global Url\n * (should be not null in case of tabular data)\n * @param {string} url\n * @return {FormMetaField}\n */\n setUrl(url) {\n this.url = url;\n return this;\n }\n\n\n /**\n * @param value\n * @param defaultValue\n * @return {FormMetaField}\n */\n addValue(value, defaultValue) {\n this.values.push(value);\n this.defaultValues.push(defaultValue);\n return this;\n }\n\n\n getType() {\n return this.type;\n }\n\n getLabel() {\n if (this.label === undefined) {\n return this.getName()\n .split(/[_\\-]/)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n }\n return this.label;\n }\n\n getUrl() {\n return this.url;\n }\n\n getName() {\n return this.name;\n }\n\n getDescription() {\n return this.description;\n }\n\n getTab() {\n return this.tab;\n }\n\n /**\n *\n * @param json\n * @param {FormMetaField} parent\n * @return {FormMetaField}\n */\n static createFromJson(json, parent = null) {\n if (!json.hasOwnProperty(\"name\")) {\n Logger.getLogger().error(\"To create a form meta field, the name property is mandatory.\");\n }\n let name = json[\"name\"];\n let formMetaField = FormMetaField.createFromName(name);\n if (parent != null) {\n formMetaField.setParent(parent);\n }\n\n let value;\n let valueDefault;\n for (let property in json) {\n if (!json.hasOwnProperty(property)) {\n continue;\n }\n let jsonValue = json[property];\n switch (property) {\n case \"name\":\n continue;\n case \"label\":\n formMetaField.setLabel(jsonValue);\n continue;\n case \"tab\":\n formMetaField.setTab(jsonValue);\n continue;\n case \"type\":\n formMetaField.setType(jsonValue);\n continue;\n case \"mutable\":\n formMetaField.setMutable(jsonValue);\n continue;\n case \"description\":\n formMetaField.setDescription(jsonValue);\n continue;\n case \"url\":\n formMetaField.setUrl(jsonValue);\n continue;\n case \"value\":\n value = jsonValue;\n continue;\n case \"default\":\n valueDefault = jsonValue;\n continue;\n case \"domain-values\":\n formMetaField.setDomainValues(jsonValue);\n continue;\n case \"multiple\":\n formMetaField.setMultiple(jsonValue);\n continue;\n case \"width\":\n formMetaField.setControlWidth(jsonValue);\n continue;\n case \"children\":\n let jsonChildren = jsonValue;\n for (let jsonChildProp in jsonChildren) {\n if (!jsonChildren.hasOwnProperty(jsonChildProp)) {\n continue;\n }\n let child = FormMetaField.createFromJson(jsonChildren[jsonChildProp], formMetaField);\n formMetaField.addChild(child);\n }\n continue;\n default:\n Logger.getLogger().error(`The property (${property}) of the form (${name}) is unknown`);\n }\n }\n if (!Array.isArray(value)) {\n formMetaField.addValue(value, valueDefault);\n } else {\n value.forEach((element, index) => {\n let valueDefaultElement = valueDefault[index];\n if (valueDefaultElement !== undefined) {\n formMetaField.addValue(element, valueDefaultElement);\n } else {\n formMetaField.addValue(element);\n }\n })\n }\n return formMetaField;\n }\n\n setMultiple(multiple) {\n this.multiple = multiple;\n return this;\n }\n\n setParent(parent) {\n this.parent = parent;\n return this;\n }\n\n /**\n *\n * @param name\n * @return {FormMetaField}\n */\n static createFromName(name) {\n return new FormMetaField(name);\n }\n\n isMutable() {\n return this.mutable;\n }\n\n setTab(value) {\n this.tab = value;\n return this;\n }\n\n /**\n *\n * @param {boolean} value\n */\n setMutable(value) {\n this.mutable = Boolean.toBoolean(value);\n return this;\n }\n\n setDescription(value) {\n this.description = value;\n return this;\n }\n\n getDefaultValue() {\n return this.defaultValues[0];\n }\n\n getValue() {\n return this.values[0];\n }\n\n getDomainValues() {\n return this.domainValues;\n }\n\n setDomainValues(value) {\n if (!Array.isArray(value)) {\n console.error(`The domains values should be an array. (${value}) is not an array`);\n return;\n }\n this.domainValues = value;\n return this;\n }\n\n /**\n *\n * @param width - the width of the control, not of the label as it can be derived - in a tabular form, there is none, otherwise the {@link FormMetaTab.getWidth total width} of the tab minus this control width)\n * @return {FormMetaField}\n */\n setControlWidth(width) {\n this.width = width;\n return this;\n }\n\n getControlWidth() {\n if (this.width === undefined && this.parent !== undefined) {\n return 12 / this.parent.getChildren().length;\n }\n return this.width;\n }\n\n getValues() {\n return this.values;\n }\n\n getDefaultValues() {\n return this.defaultValues;\n }\n\n /**\n *\n * @return {FormMetaField[]}\n *\n * See also the concept of list of objects\n * https://react-jsonschema-form.readthedocs.io/en/latest/usage/arrays/#arrays-of-objects\n *\n */\n getChildren() {\n return Object.values(this.children);\n }\n\n addChild(child) {\n this.children[child.getName()] = child;\n return this;\n }\n\n toHtmlLabel(forId, customClass) {\n let label = this.getLabelAnchor();\n let classLabel;\n if (this.getType() === FormMetaField.BOOLEAN) {\n classLabel = \"form-check-label\"\n } else {\n classLabel = \"col-form-label\";\n }\n if(typeof customClass !== 'undefined'){\n classLabel =`${customClass} ${classLabel}`\n }\n return `<label for=\"${forId}\" class=\"${classLabel}\">${label}</label>`\n }\n\n toHtmlControl(id, value = null, defaultValue = null) {\n\n let metadataType = this.getType();\n let mutable = this.isMutable();\n let domainValues = this.getDomainValues();\n let disabled;\n let htmlElement;\n\n /**\n * The creation of the form element\n */\n if (domainValues !== undefined) {\n\n /**\n * Select element\n * @type {string}\n */\n htmlElement = \"select\";\n let defaultValueHtml = \"\";\n if (defaultValue !== undefined) {\n defaultValueHtml = ` (${defaultValue})`;\n }\n\n let multiple = \"\";\n if (this.getMultiple()) {\n multiple = \"multiple\";\n }\n\n htmlElement = `<select class=\"form-select\" aria-label=\"${this.getLabel()}\" name=\"${this.getName()}\" id=\"${id}\" ${multiple}>`;\n let selected = \"\";\n if (value === null) {\n selected = \"selected\";\n }\n htmlElement += `<option value=\"\" ${selected}>Default${defaultValueHtml}</option>`;\n for (let selectValue of domainValues) {\n if (selectValue === value) {\n selected = \"selected\";\n } else {\n selected = \"\";\n }\n htmlElement += `<option value=\"${selectValue}\" ${selected}>${selectValue}</option>`;\n }\n htmlElement += `</select>`;\n return htmlElement;\n\n\n } else {\n\n /**\n * Placeholder default\n * @type {string}\n */\n let placeholderValue = `No value`;\n if (mutable) {\n placeholderValue = `Enter a ${this.getLabel()}`;\n }\n // value\n if (!(defaultValue === null || defaultValue === undefined)) {\n if (typeof defaultValue === 'string' || defaultValue instanceof String) {\n // json data for instance\n placeholderValue = Html.toEntities(defaultValue);\n } else {\n placeholderValue = defaultValue;\n }\n }\n let htmlPlaceholder = `placeholder=\"${placeholderValue}\"`;\n\n let htmlValue = \"\";\n let inputType;\n let name = this.getName();\n\n /**\n * With disable, the data is not in the form\n */\n if (mutable !== undefined && mutable === false) {\n disabled = \"disabled\";\n } else {\n disabled = \"\";\n }\n\n /**\n * Input Element\n * @type {string}\n */\n let htmlTag = \"input\";\n let htmlClass = \"form-control\";\n let checked = \"\";\n /**\n * Text area\n */\n let rows = 3;\n\n /**\n * Type ?\n */\n switch (metadataType) {\n case FormMetaField.DATE_TIME:\n inputType = \"datetime-local\";\n if (value !== null) {\n value = value.slice(0, 19);\n htmlValue = `value=\"${value}\"`;\n } else {\n if (!mutable && defaultValue !== null) {\n defaultValue = defaultValue.slice(0, 19);\n htmlValue = `value=\"${defaultValue}\"`;\n }\n }\n htmlPlaceholder = \"\"; // does not apply to local date time\n\n break;\n case FormMetaField.PARAGRAPH:\n htmlTag = \"textarea\";\n if (value !== null) {\n value = Html.toEntities(value);\n htmlValue = `${value}`;\n }\n break;\n case FormMetaField.JSON:\n htmlTag = \"textarea\";\n if (value !== null) {\n if(typeof value === 'object'){\n value = JSON.stringify(value, null, 2);\n }\n value = Html.toEntities(value);\n htmlValue = `${value}`;\n }\n rows = 15;\n break;\n case FormMetaField.BOOLEAN:\n inputType = \"checkbox\";\n htmlClass = \"form-check-input\";\n if (defaultValue !== null) {\n htmlValue = `value=\"${defaultValue}\"`;\n if (value === defaultValue) {\n checked = \"checked\"\n }\n } else {\n if (value === \"on\") {\n checked = \"checked\"\n }\n }\n\n htmlPlaceholder = \"\";\n break;\n default:\n inputType = \"text\";\n if (!(value === null || value === undefined)) {\n htmlValue = `value=\"${value}\"`;\n }\n }\n\n switch (htmlTag) {\n case \"textarea\":\n htmlElement = `<textarea id=\"${id}\" name=\"${name}\" class=\"${htmlClass}\" rows=\"${rows}\" ${htmlPlaceholder} ${disabled}>${htmlValue}</textarea>`;\n break;\n default:\n case \"input\":\n htmlElement = `<input type=\"${inputType}\" name=\"${name}\" class=\"${htmlClass}\" id=\"${id}\" ${htmlPlaceholder} ${htmlValue} ${checked} ${disabled}/>`;\n break;\n\n }\n return htmlElement;\n }\n\n }\n\n /**\n * Added to be able to add metadata to the returned Json Form\n * It has not yet all properties\n * @return\n */\n toJavascriptObject() {\n return {\n \"name\": this.getName(),\n \"label\": this.getLabel(),\n \"type\": this.getType(),\n \"description\": this.getDescription(),\n \"tab\": this.getTab(),\n \"mutable\": this.isMutable(),\n \"value\": this.getValue(),\n \"default\": this.getDefaultValue(),\n \"url\": this.getUrl()\n }\n }\n\n getMultiple() {\n return this.multiple;\n }\n}\n","import Logger from \"./Logger\";\n\n\nexport default class FormMetaTab {\n\n\n constructor(name) {\n this.name = name;\n }\n\n getName() {\n return this.name;\n }\n\n setWidth(width) {\n this.width = width;\n }\n\n /**\n * The width of the tab\n */\n getWidth() {\n return this.width;\n }\n\n static createFromJson(json) {\n if (!json.hasOwnProperty(\"name\")) {\n Logger.getLogger().error(\"A name property is mandatory to create a tab and was not found in the json provided\")\n }\n let name = json[\"name\"];\n let tab = new FormMetaTab(name);\n for (let property in json) {\n if (!json.hasOwnProperty(property)) {\n continue;\n }\n let jsonValue = json[property];\n switch (property) {\n case \"name\":\n continue;\n case \"label\":\n tab.setLabel(jsonValue);\n continue;\n case \"width-field\":\n tab.setWidthField(jsonValue);\n continue;\n case \"width-label\":\n tab.setWidthLabel(jsonValue);\n continue;\n default:\n Logger.getLogger().error(`The property (${property}) of the tab (${name}) is unknown`);\n }\n }\n return tab;\n }\n\n setLabel(label) {\n this.label = label;\n return this;\n }\n\n getLabel(){\n if(this.label===undefined){\n return this.name;\n }\n return this.label;\n }\n\n setWidthField(width) {\n this.widthField = width;\n return this;\n }\n\n setWidthLabel(width) {\n this.widthLabel = width;\n return this;\n }\n\n getLabelWidth(){\n if(this.widthLabel===undefined){\n return 3;\n }\n return this.widthLabel;\n }\n\n getFieldWidth(){\n if(this.widthField===undefined){\n return 12 - this.getLabelWidth();\n }\n return this.widthField;\n }\n\n static createFromName(name) {\n return new FormMetaTab(name);\n }\n}\n","'use strict';\n\nimport FormMetaField from \"./FormMetaField\";\nimport FormMetaTab from \"./FormMetaTab\";\nimport Html from \"./Html\";\nimport Logger from \"./Logger\";\n\n/**\n * Represent the top meta\n * data from a form\n */\nexport default class FormMeta {\n\n formFields = {};\n tabs = {};\n width = 8;\n\n\n constructor(id) {\n\n if (id == null) {\n throw new Error(\"The if of the form should not be null\");\n }\n this.name = id;\n }\n\n /**\n * @return string\n */\n getLabel() {\n return this.label;\n }\n\n getUrl() {\n return this.url;\n }\n\n getId() {\n return this.name;\n }\n\n /**\n * The width of the control\n * if there is no tab\n * @return {number|*}\n */\n getControlWidth() {\n return this.width;\n }\n\n getLabelWidth() {\n return 12 - this.getControlWidth();\n }\n\n\n /**\n *\n * @param {string} formId\n * @param {Object} json\n * @return {FormMeta}\n */\n static createFromJson(formId, json) {\n let form = FormMeta.createFromId(formId);\n for (let prop in json) {\n if (!json.hasOwnProperty(prop)) {\n continue;\n }\n let value = json[prop];\n switch (prop) {\n case \"fields\":\n let fields = value;\n for (let field in fields) {\n if (fields.hasOwnProperty(field)) {\n form.addFormField(FormMetaField.createFromJson(fields[field]));\n }\n }\n continue;\n case \"tabs\":\n let tabs = value;\n for (let tab in tabs) {\n if (tabs.hasOwnProperty(tab)) {\n form.addTab(FormMetaTab.createFromJson(tabs[tab]));\n }\n }\n break;\n case \"width\":\n form.setControlWidth(value);\n break;\n case \"label\":\n form.setLabel(value);\n break;\n case \"url\":\n form.setUrl(value);\n break;\n default:\n Logger.getLogger().error(`The form property (${prop}) is unknown`);\n }\n\n\n }\n return form;\n }\n\n /**\n *\n * @param id\n * @return {FormMeta}\n */\n static createFromId(id) {\n return new FormMeta(id);\n }\n\n /**\n *\n * @param {FormMetaField} formField\n * @return {FormMeta}\n */\n addFormField(formField) {\n this.formFields[formField.getName()] = formField;\n // Be sure to have a tab for each field\n if (!this.tabs.hasOwnProperty(formField.getTab())) {\n this.tabs[formField.getTab()] = FormMetaTab.createFromName(formField.getTab());\n }\n return this;\n }\n\n /**\n *\n * @return {FormMetaField[]}\n */\n getFields() {\n return Object.values(this.formFields);\n }\n\n /**\n *\n * @return {FormMetaTab[]}\n */\n getTabs() {\n return Object.values(this.tabs);\n }\n\n addTab(formMetaTab) {\n this.tabs[formMetaTab.getName()] = formMetaTab;\n }\n\n valueOf() {\n return this.getId();\n };\n\n getFieldsForTab(tabName) {\n return this.getFields().filter(e => e.getTab() === tabName);\n }\n\n toHtmlElement() {\n\n let formId = this.getId();\n\n /**\n * Creating the Body\n * (Starting with the tabs)\n */\n let htmlTabNavs = '<ul class=\"nav nav-tabs mb-3\">';\n let activeClass;\n let ariaSelected;\n /**\n * @param {FormMetaTab} tab\n * @return string\n */\n this.getTabPaneId = function (tab) {\n let htmlId = Html.toHtmlId(tab.getName());\n return `${formId}-tab-pane-${htmlId}`;\n }\n /**\n * @param {FormMetaTab} tab\n * @return string\n */\n this.getTabNavId = function (/** @type {FormMetaTab}*/ tab) {\n let htmlId = Html.toHtmlId(tab.getName());\n return `${formId}-tab-nav-${htmlId}`;\n }\n this.getControlId = function (id) {\n let htmlId = Html.toHtmlId(id);\n return `${formId}-control-${htmlId}`;\n }\n let tabsMeta = this.getTabs();\n let defaultTab = tabsMeta[0];\n for (let tab of tabsMeta) {\n if (Object.is(tab, defaultTab)) {\n activeClass = \"active\";\n ariaSelected = \"true\";\n } else {\n activeClass = \"\";\n ariaSelected = \"false\";\n }\n let tabLabel = tab.getLabel();\n let tabPanId = this.getTabPaneId(tab);\n let tabNavId = this.getTabNavId(tab);\n htmlTabNavs += `\n<li class=\"nav-item\">\n<button\n class=\"nav-link ${activeClass}\"\n id=\"${tabNavId}\"\n type=\"button\"\n role=\"tab\"\n aria-selected = \"${ariaSelected}\"\n aria-controls = \"${tabPanId}\"\n data-bs-toggle = \"tab\"\n data-bs-target = \"#${tabPanId}\" >${tabLabel}\n </button>\n</li>`\n }\n htmlTabNavs += '</ul>';\n\n /**\n * Creating the content\n * @type {string}\n */\n let htmlTabPans = \"<div class=\\\"tab-content\\\">\";\n let rightColSize;\n let leftColSize;\n let elementIdCounter = 0;\n for (let tab of tabsMeta) {\n let tabPaneId = this.getTabPaneId(tab);\n let tabNavId = this.getTabNavId(tab);\n if (tab === defaultTab) {\n activeClass = \"active\";\n } else {\n activeClass = \"\";\n }\n htmlTabPans += `<div class=\"tab-pane ${activeClass}\" id=\"${tabPaneId}\" role=\"tabpanel\" aria-labelledby=\"${tabNavId}\">`;\n leftColSize = tab.getLabelWidth();\n rightColSize = tab.getFieldWidth();\n\n let fieldsForTab = this.getFieldsForTab(tab.getName());\n\n /**\n * Case one field without children\n * It should take the whole space\n */\n if (fieldsForTab.length === 1) {\n let formField = fieldsForTab[0];\n if (formField.getChildren().length === 0) {\n elementIdCounter++;\n let elementId = this.getControlId(elementIdCounter);\n let labelHtml = formField.toHtmlLabel(elementId);\n let value = formField.getValue();\n let defaultValue = formField.getDefaultValue();\n let controlHtml = formField.toHtmlControl(elementId, value, defaultValue)\n htmlTabPans += `\n<div class=\"row mb-3 text-center\"><div class=\"col-sm-12\">${labelHtml}</div></div>\n<div class=\"row mb-3\"><div class=\"col-sm-12\">${controlHtml}</div></div>\n`;\n htmlTabPans += \"</div>\"; // close the pan\n continue;\n }\n\n }\n\n for (let formField of fieldsForTab) {\n\n let children = formField.getChildren();\n switch (children.length) {\n case 0:\n elementIdCounter++;\n let elementId = this.getControlId(elementIdCounter);\n let labelHtml = formField.toHtmlLabel(elementId, `col-sm-${leftColSize}`);\n let value = formField.getValue();\n let defaultValue = formField.getDefaultValue();\n let controlHtml = formField.toHtmlControl(elementId, value, defaultValue)\n htmlTabPans += `\n<div class=\"row mb-3\">\n ${labelHtml}\n <div class=\"col-sm-${rightColSize}\">${controlHtml}</div>\n</div>\n`;\n break;\n default:\n let url = formField.getLabelAnchor();\n htmlTabPans += `<div class=\"row mb-3 text-center\">${url}</div>`;\n htmlTabPans += `<div class=\"row mb-3\">`;\n let rows = 0;\n for (const child of formField.getChildren()) {\n let width = child.getControlWidth();\n htmlTabPans += `<div class=\"col-sm-${width} text-center\">`;\n htmlTabPans += child.getLabelAnchor();\n htmlTabPans += `</div>`;\n let valuesLength = child.getValues().length;\n if (valuesLength > rows) {\n rows = valuesLength;\n }\n }\n htmlTabPans += `</div>`;\n\n for (let i = 0; i < rows; i++) {\n htmlTabPans += `<div class=\"row mb-3\">`;\n for (const child of formField.getChildren()) {\n let value = child.getValues()[i];\n let defaultValue = child.getDefaultValues()[i];\n elementIdCounter++;\n let elementId = this.getControlId(elementIdCounter);\n let width = child.getControlWidth();\n htmlTabPans += `<div class=\"col-sm-${width}\">`;\n htmlTabPans += child.toHtmlControl(elementId, value, defaultValue);\n htmlTabPans += `</div>`;\n }\n htmlTabPans += `</div>`;\n }\n\n break;\n\n }\n\n }\n htmlTabPans += \"</div>\";\n }\n htmlTabPans += \"</div>\";\n\n let form = document.createElement(\"form\");\n form.setAttribute(\"id\", formId);\n form.innerHTML = `${htmlTabNavs} ${htmlTabPans}`;\n return form;\n }\n\n\n setControlWidth(width) {\n this.width = width;\n return this;\n }\n\n setLabel(label) {\n this.label = label;\n }\n\n setUrl(url) {\n this.url = url;\n }\n\n}\n",null,"module.exports=bootstrap;","/**\n * A pointer to the created modals\n * Private\n */\nimport Html from \"./Html\";\nimport {Modal, Tooltip, Tab} from \"bootstrap\";\nimport Logger from \"./Logger\";\n\n/**\n *\n * @type {Object.<string, ComboModal>}\n */\nlet comboModals = {};\n\nexport default class ComboModal {\n\n\n footerButtons = [];\n bodies = [];\n isBuild = false;\n bodyStyles = {};\n dialogStyles = {};\n showFooter = true;\n dialogClasses = [];\n\n /**\n * A valid HTML id\n * @param modalId\n */\n constructor(modalId) {\n\n this.modalId = modalId;\n /**\n * We create the modal root because developers may want to add\n * event on it right away\n * @type {HTMLDivElement}\n */\n let queryElement = document.getElementById(modalId);\n if (queryElement !== null) {\n Logger.getLogger().error(`The id (${modalId}) given to create a modal was already used by an element in the DOM. We have reused it.`)\n this.modalRootHtmlElement = queryElement;\n this.reset();\n } else {\n this.modalRootHtmlElement = document.createElement(\"div\");\n this.modalRootHtmlElement.setAttribute(\"id\", this.modalId);\n this.modalRootHtmlElement.classList.add(\"modal\", \"fade\");\n // Uncaught RangeError: Maximum call stack size exceeded caused by the tabindex\n // modalRoot.setAttribute(\"tabindex\", \"-1\");\n this.modalRootHtmlElement.setAttribute(\"aria-hidden\", \"true\");\n }\n\n }\n\n setHeader(headerText) {\n this.headerText = headerText;\n return this;\n }\n\n /**\n * @param htmlBody\n * @return {ComboModal}\n */\n addBody(htmlBody) {\n\n this.bodies.push(htmlBody);\n return this;\n\n }\n\n addBodyStyle(property, value) {\n\n this.bodyStyles[property] = value;\n return this;\n\n }\n\n noFooter() {\n this.showFooter = false;\n return this;\n }\n\n addDialogStyle(property, value) {\n\n this.dialogStyles[property] = value;\n return this;\n\n }\n\n addDialogClass(value) {\n\n this.dialogClasses.push(value);\n return this;\n\n }\n\n /**\n * @return {ComboModal}\n */\n resetOnClose() {\n this.isResetOnClose = true;\n return this;\n }\n\n\n /**\n *\n * @type HTMLButtonElement|string htmlFooter\n */\n addFooterButton(htmlFooter) {\n\n this.footerButtons.push(htmlFooter);\n return this;\n }\n\n /**\n *\n * @return HTMLButtonElement the close button\n */\n addFooterCloseButton(label = \"Close\") {\n this.closeButton = document.createElement(\"button\");\n this.closeButton.classList.add(\"btn\", \"btn-secondary\")\n this.closeButton.innerHTML = label;\n let modal = this;\n this.closeButton.addEventListener(\"click\", function () {\n modal.bootStrapModal.hide();\n });\n this.addFooterButton(this.closeButton);\n return this;\n }\n\n /**\n * Center the modal\n * @return {ComboModal}\n */\n centered() {\n this.isCentered = true;\n return this;\n }\n\n show() {\n\n if (this.modalRootHtmlElement == null) {\n throw new Error(\"This modal has no HTML element, you can't use it anymore\");\n }\n\n if (!this.isBuild) {\n this.build();\n }\n\n /**\n * Reset on close ?\n * Included tabs does not work anymore\n * for whatever reason\n */\n if (this.isResetOnClose === true) {\n let comboModal = this;\n this.getElement().addEventListener('hidden.bs.modal', function () {\n /**\n * the event is only dispatch on the root element, not all modal\n */\n comboModal.reset();\n });\n }\n\n /**\n * Callback (Parent Child Relationship)\n */\n if (this.callBack !== undefined) {\n if (this.closeButton !== undefined) {\n let modal = this;\n this.closeButton.addEventListener(\"click\", function () {\n /**\n * Two modals cannot be open at the same time\n * https://getbootstrap.com/docs/5.0/components/modal/#toggle-between-modals\n */\n modal.dismissHide();\n modal.callBack();\n });\n }\n }\n\n this.bootStrapModal.show();\n\n\n }\n\n dismissHide() {\n if (this.bootStrapModal !== undefined) {\n this.bootStrapModal.hide();\n }\n }\n\n getModalId() {\n return this.modalId;\n }\n\n /**\n *\n * @param {function} callBack\n */\n setCallBackOnClose(callBack) {\n this.callBack = callBack;\n return this;\n }\n\n\n /**\n * Create a modal and return the modal content element\n * @return ComboModal\n */\n static createFromId(modalId) {\n let modal = new ComboModal(modalId);\n comboModals[modalId] = modal;\n return modal;\n }\n\n /**\n * @param modalId\n * @return {ComboModal}\n */\n static getModal = function (modalId) {\n\n if (modalId in comboModals) {\n return comboModals[modalId];\n } else {\n return null;\n }\n }\n\n /**\n * List the managed modals\n */\n static listModals = function () {\n console.log(Object.keys(comboModals).join(\", \"));\n }\n\n /**\n * Delete all modals\n */\n static resetAllModals = function () {\n for (let prop in comboModals) {\n if (comboModals.hasOwnProperty(prop)) {\n let modal = comboModals[prop];\n modal.reset();\n }\n }\n }\n\n /**\n *\n * @return {ComboModal}\n */\n static createTemporary() {\n return this.createFromId(Html.createRandomId());\n }\n\n getElement() {\n return this.modalRootHtmlElement;\n }\n\n /**\n * Calling the {@link show} function will build the\n * modal, if this is the case, you can't build it anymore\n * you need to {@link reset} it and recreate it if needed\n * @return {boolean}\n */\n wasBuild() {\n return this.isBuild;\n }\n\n setCentered(bool){\n this.isCentered = bool;\n return this;\n }\n resetIfBuild() {\n if (this.wasBuild()) {\n this.reset();\n }\n return this;\n }\n\n reset() {\n\n // DOM\n this.modalRootHtmlElement.querySelectorAll('[data-bs-toggle=\"tab\"]').forEach(tabTriggerElement => {\n let tab = Tab.getInstance(tabTriggerElement);\n if (tab !== null) {\n // tab are only created when the user click on them\n tab.dispose();\n }\n })\n\n /**\n * Bootstrap Modal\n * dispose should delete the root element\n * but it does not\n */\n if (this.bootStrapModal !== undefined) {\n this.dismissHide();\n }\n this.modalRootHtmlElement.innerHTML = \"\";\n\n /**\n * Content\n */\n this.isBuild = false;\n this.bodies = [];\n this.footerButtons = [];\n this.headerText = undefined;\n }\n\n /**\n * Build the modal\n */\n build() {\n\n this.isBuild = true;\n\n document.body.appendChild(this.modalRootHtmlElement);\n\n const modalManagerDialog = document.createElement(\"div\");\n modalManagerDialog.classList.add(\n \"modal-dialog\",\n \"modal-dialog-scrollable\",\n \"modal-lg\");\n if (this.isCentered) {\n modalManagerDialog.classList.add(\"modal-dialog-centered\")\n } else {\n // Get the modal more central but fix as we have tab and\n // we want still the mouse below the tab to be at the same position when we click\n modalManagerDialog.style.setProperty(\"margin\", \"5rem auto\");\n modalManagerDialog.style.setProperty(\"height\", \"calc(100% - 9rem)\");\n }\n for (let dialogStyleName in this.dialogStyles) {\n if (!this.dialogStyles.hasOwnProperty(dialogStyleName)) {\n continue;\n }\n modalManagerDialog.style.setProperty(dialogStyleName, this.dialogStyles[dialogStyleName]);\n }\n for (let dialogClass in this.dialogClasses){\n modalManagerDialog.classList.add(dialogClass);\n }\n this.modalRootHtmlElement.appendChild(modalManagerDialog);\n this.modalContent = document.createElement(\"div\");\n this.modalContent.classList.add(\"modal-content\");\n modalManagerDialog.appendChild(this.modalContent);\n\n this.modalBody = document.createElement(\"div\");\n this.modalBody.classList.add(\"modal-body\");\n for (let bodyStyleName in this.bodyStyles) {\n if (!this.bodyStyles.hasOwnProperty(bodyStyleName)) {\n continue;\n }\n this.modalBody.style.setProperty(bodyStyleName, this.bodyStyles[bodyStyleName]);\n }\n this.modalContent.appendChild(this.modalBody);\n\n\n /**\n * No need to use the global variable access mode (ie `bootstrap.Modal`)\n * It's created at build time\n * @type {Modal}\n */\n this.bootStrapModal = Modal.getInstance(this.modalRootHtmlElement);\n if (this.bootStrapModal === null) {\n /**\n * The bootstrap modal function\n * can only be invoked when the body element has been defined\n */\n let options = {\n \"backdrop\": true,\n \"keyboard\": true,\n \"focus\": true\n };\n this.bootStrapModal = new Modal(this.modalRootHtmlElement, options);\n }\n\n /**\n * Building the header\n */\n if (this.headerText !== undefined) {\n let headerHtml = `\n<div class=\"modal-header\">\n <h5 class=\"modal-title\">${this.headerText}</h5>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\n</div>\n`;\n this.modalContent.insertAdjacentHTML('afterbegin', headerHtml);\n }\n\n /**\n * Building the body\n */\n for (let body of this.bodies) {\n let type = typeof body;\n switch (type) {\n case \"string\":\n this.modalBody.insertAdjacentHTML('beforeend', body);\n break;\n default:\n case \"object\":\n this.modalBody.appendChild(body);\n break;\n }\n }\n\n /**\n * Footer button\n */\n if(this.showFooter) {\n let modalFooter = document.createElement(\"div\");\n modalFooter.classList.add(\"modal-footer\");\n this.modalContent.appendChild(modalFooter);\n\n if (this.footerButtons.length === 0) {\n this.addFooterCloseButton();\n }\n\n for (let footerButton of this.footerButtons) {\n if (typeof footerButton === 'string' || footerButton instanceof String) {\n modalFooter.insertAdjacentHTML('beforeend', footerButton);\n } else {\n modalFooter.appendChild(footerButton);\n }\n }\n }\n\n /**\n * Init the tooltip if any\n */\n let tooltipSelector = `#${this.modalId} [data-bs-toggle=\"tooltip\"]`;\n document.querySelectorAll(tooltipSelector).forEach(el => new Tooltip(el));\n }\n\n\n static getOrCreate(modalId) {\n let modal = ComboModal.getModal(modalId);\n if (modal === null) {\n modal = ComboModal.createFromId(modalId);\n }\n return modal;\n }\n}\n","export default function _typeof(obj) {\n \"@swc/helpers - typeof\";\n return obj && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","\n\nexport default class Browser {\n\n\n /**\n *\n * @param element\n * @return {boolean}\n */\n static hasWindowGuard(element) {\n if(!this.hasWindow(element)) {\n throw Error(\"The element has no window\")\n }\n }\n\n static hasWindow(element) {\n return !(!element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView);\n }\n\n static getWindow(element){\n this.hasWindowGuard(element);\n return element.ownerDocument.defaultView\n }\n\n static formDataToObject(formData){\n let obj = {};\n for (let entry of formData) {\n let name = entry[0];\n let value = entry[1];\n if(obj.hasOwnProperty(name)){\n let actualValue = obj[name];\n if(Array.isArray(actualValue)){\n obj[name].push(value);\n } else {\n obj[name] = [actualValue,value];\n }\n } else {\n obj[name] = value\n }\n }\n return obj;\n }\n\n}\n","/* global JSINFO */\n\n/* global DOKU_BASE */\n\nimport ComboModal from \"./ComboModal\";\nimport Browser from \"./Browser\";\n\n\n\n/**\n * Fetch wrapper\n * with\n */\nexport class HttpRequest {\n\n\n method = \"GET\";\n\n\n /**\n * @param {URL} url\n */\n constructor(url) {\n\n this.url = url;\n\n }\n\n async getJson() {\n\n let response = await this.getResponse()\n\n if (response.status !== 200) {\n return {};\n }\n\n // Parses response data to JSON\n // * response.json()\n // * response.text()\n // are promise, you need to pass them to a callback to get the value\n return response.json();\n\n }\n\n async getText() {\n\n let response = await this.getResponse();\n\n if (response.status !== 200) {\n return \"\";\n }\n\n // Parses response data to JSON\n // * response.json()\n // * response.text()\n // are promise, you need to pass them to a callback to get the value\n return response.text();\n\n }\n\n /**\n * @param {string} method\n * @return {HttpRequest}\n */\n setMethod(method) {\n this.method = method.toUpperCase();\n return this;\n }\n\n /**\n *\n * @param formData\n * @return {Promise<Response>}\n *\n * We don't send a multipart-form-data\n * because php does not support them\n * natively if the name of the input are\n * not suffixed with `[]` (shame)\n */\n sendFormDataAsJson(formData) {\n\n return fetch(this.url.toString(), {\n method: this.method,\n body: JSON.stringify(Browser.formDataToObject(formData)),\n headers: {\n 'Content-Type': 'application/json'\n },\n });\n }\n\n\n async getResponse() {\n\n let response = await fetch(this.url.toString(), {method: this.method});\n if (response.status !== 200) {\n let modal = ComboModal.createTemporary()\n modal.addBody(`Bad request: the call ${this.url} to the backend sends back the following exit code` + response.status)\n modal.show();\n }\n return response;\n }\n}\n","import {HttpRequest} from \"./DokuRequest\";\n\nexport class DokuUrl {\n\n static AJAX = \"AJAX\";\n static RUNNER = \"RUNNER\";\n static CALL = \"call\";\n static EDIT = \"edit\";\n static SHOW = 'show';\n static FETCH = 'fetch';\n\n constructor(type) {\n switch (type) {\n case DokuUrl.AJAX:\n this.url = new URL(DOKU_BASE + 'lib/exe/ajax.php', window.location.href);\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n case DokuUrl.RUNNER:\n this.url = new URL(DOKU_BASE + 'lib/exe/taskrunner.php', window.location.href);\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n case DokuUrl.FETCH:\n this.url = new URL(DOKU_BASE + 'lib/exe/fetch.php', window.location.href);\n break;\n case DokuUrl.EDIT:\n this.url = new URL(DOKU_BASE + 'doku.php', window.location.href);\n this.url.searchParams.set(\"do\", \"edit\");\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n case DokuUrl.SHOW:\n this.url = new URL(DOKU_BASE + 'doku.php', window.location.href);\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n }\n\n }\n\n setProperty(key, value) {\n this.url.searchParams.set(key, value);\n return this;\n }\n\n toString() {\n return this.url.toString();\n }\n\n getCall() {\n return this.url.searchParams.get(DokuUrl.CALL);\n }\n\n\n toRequest() {\n return new HttpRequest(this.url);\n }\n\n static createAjax(call) {\n return (new DokuUrl(this.AJAX))\n .setProperty(DokuUrl.CALL, call);\n }\n\n static createRunner() {\n return new DokuUrl(this.RUNNER);\n }\n\n static createFetch(id, drive) {\n let dokuUrl = new DokuUrl(this.FETCH);\n if (typeof id === 'undefined') {\n throw new Error(\"The media id is mandatory\")\n }\n dokuUrl.setProperty(\"media\", id);\n if (typeof drive !== 'undefined') {\n dokuUrl.setProperty(\"drive\", drive);\n }\n return dokuUrl;\n }\n\n static createEdit(id) {\n let dokuUrl = new DokuUrl(this.EDIT);\n if (typeof id !== 'undefined') {\n dokuUrl.setProperty(\"id\", id);\n }\n return dokuUrl;\n }\n}\n","export default class ComboDate {\n\n constructor(date) {\n this.date = date;\n }\n\n\n static createFromIso(isoString) {\n let date = new Date(isoString);\n return new ComboDate(date)\n }\n\n toSqlTimestampString() {\n return `${this.date.getFullYear()}-${(this.date.getMonth() + 1).toString().padStart(2, '0')}-${this.date.getDate().toString().padStart(2, '0')} ${this.date.getHours().toString().padStart(2, '0')}:${this.date.getMinutes().toString().padStart(2, '0')}:${this.date.getSeconds().toString().padStart(2, '0')}`;\n }\n\n\n}\n","import FormMeta from \"./FormMeta\";\nimport Html from \"./Html\";\nimport ComboModal from \"./ComboModal\";\nimport {DokuUrl} from \"./DokuUrl\";\nimport FormMetaField from \"./FormMetaField\";\nimport ComboDate from \"./ComboDate\";\n\nwindow['combo'] = class combo {\n\n static toHtmlId(name) {\n return Html.toHtmlId(name)\n }\n\n static comboDate = ComboDate;\n static DokuUrl = DokuUrl;\n\n static getOrCreateModal(id) {\n return ComboModal.getOrCreate(id);\n }\n\n static removeAllModals() {\n ComboModal.resetAllModals();\n }\n\n\n static createAjaxUrl(callName) {\n return DokuUrl.createAjax(callName);\n }\n\n static getRunnerUrl() {\n return DokuUrl.createRunner();\n }\n\n static createFormMetaField(name) {\n return FormMetaField.createFromName(name);\n }\n\n /**\n *\n * @param formId\n * @param json\n * @return {FormMeta}\n */\n static createFormFromJson(formId, json) {\n return FormMeta.createFromJson(formId, json);\n }\n\n /**\n * @return {ComboModal}\n */\n static createTemporaryModal() {\n return ComboModal.createTemporary();\n }\n\n}\n\n"],"names":["$14a1be0df69dff16$var$asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","$14a1be0df69dff16$export$2e2bcd8739ae039","fn","self","this","args","arguments","apply","err","undefined","$ed8f81e33dadb189$export$2e2bcd8739ae039","instance","Constructor","TypeError","$1265d6fc5c828a23$var$_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","$1265d6fc5c828a23$export$2e2bcd8739ae039","protoProps","staticProps","prototype","$9629c2fdd0ddf968$export$2e2bcd8739ae039","obj","$35baa0ecacf6ff5d$var$logger","$e705c489ba33f11b$export$2e2bcd8739ae039","$35baa0ecacf6ff5d$export$2e2bcd8739ae039","console","$787ee36cc4e85fac$export$4385e60b38654f68","bytes","crypto","getRandomValues","Uint8Array","$787ee36cc4e85fac$export$62e99e5c9f473d7f","alphabet","size","getRandom","mask","Math","log","LN2","step","id","j","$787ee36cc4e85fac$export$a5cee9e955 (…)
/plugin/combo/resources/library/combo/dist/
H A Dcombo.min.js.map1 {"mappings":"6DAAA,SAASA,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,GACpE,IACE,IAAIC,EAAOP,EAAIK,GAAKC,GAChBE,EAAQD,EAAKC,MACjB,MAAOC,GAEP,YADAP,EAAOO,GAILF,EAAKG,KACPT,EAAQO,GAERG,QAAQV,QAAQO,GAAOI,KAAKT,EAAOC,GAIxB,SAAAS,EAA2BC,GACxC,OAAO,WACL,IAAIC,EAAOC,KACTC,EAAOC,UACT,OAAO,IAAIP,SAAQ,SAAUV,EAASC,GACpC,IAAIF,EAAMc,EAAGK,MAAMJ,EAAME,GAEzB,SAASd,EAAMK,GACbT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,GAGlE,SAASJ,EAAOgB,GACdrB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASgB,GAGnEjB,OAAMkB,OC/BG,SAAAC,EAAyBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCCFxB,SAASC,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAW1B,IAAK0B,IAInC,SAAAM,EAAsBb,EAAac,EAAYC,GAG5D,OAFID,GAAYZ,EAAkBF,EAAYgB,UAAWF,GACrDC,GAAab,EAAkBF,EAAae,GACzCf,ECbM,SAAAiB,EAAyBC,EAAKrC,EAAKG,GAYhD,OAXIH,KAAOqC,EACTP,OAAOC,eAAeM,EAAKrC,EAAK,CAC9BG,MAAOA,EACPwB,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZQ,EAAIrC,GAAOG,EAGNkC,ECVM,ICDXC,EDCiBC,EAAN,iCAAMA,gCAEVvC,IAAA,kBAAP,SAAiBG,GACb,MAAqB,kBAAVA,EACAA,EAEO,SAAVA,QAND,GCGMqC,EAAN,iCAAMA,2BASjBxC,IAAA,cAAA,SAAMG,GACFsC,QAAQrC,MAAMD,QARXH,IAAA,kBAAP,WAII,YAHYgB,IAATsB,IACCA,EAAS,IAAIE,GAEVF,QANA,GCsBXI,EAAS,SAAAC,UAASC,OAAOC,gBAAgB,IAAIC,WAAWH,KAgBxDI,EAAiB,SAACC,EAAUC,UAfb,SAACD,EAAUC,EAAMC,GAClC,IAAIC,GAAQ,GAAMC,KAAKC,IAAIL,EAASvB,OAAS,GAAK2B,KAAKE,KAAQ,EAC3DC,KAAW,IAAMJ,EAAOF,EAAQD,EAASvB,QAC7C,OAAO,WAEL,IADA,IAAI+B,EAAK,KAIP,IAFA,IAAIb,EAAQO,EAAUK,GAClBE,EAAIF,EACDE,KAEL,IADAD,GAAMR,EAASL,EAAMc,GAAKN,IAAS,IAC5B1B,SAAWwB,EAAM,OAAOO,GAKEE,CAAaV,EAAUC,EAAMP,ICzCjDiB,EAAN,iCAAMA,gCAEV3D,IAAA,iBAAP,SAAgB4D,GAKZ,OAAOA,EACFC,WACAC,QAAO,eAAiB,QAG1B9D,IAAA,uBAAP,WAOI,OADe+C,EAAe,6BAA8B,GACrDgB,MAGJ/D,IAAA,mBAAP,SAAkBgE,GAEd,IADA,IAAIC,EAAW,GACNzC,EAAI,EAAGA,EAAIwC,EAAKvC,OAAQD,IAAK,CAClC,IAAI0C,EAAU,KAAyBC,OAArBH,EAAKxC,GAAG4C,aAAa,KACvCH,EAASI,KAAKH,GAElB,OAAOD,EAASK,KAAK,UA5Bd,GCQMC,EAAN,iCAAMA,EAwBLC,aArBZpC,EAAAzB,KAAA,MAAM,WACNyB,EAAAzB,KAAA,WAAU,GACVyB,EAAAzB,KAAA,SAAS,IACTyB,EAAAzB,KAAA,gBAAgB,IAChByB,EAAAzB,KAAA,YAAW,GAaXyB,EAAAzB,KAAA,WAAW,IAKPA,KAAK6D,KAAOA,eAGhBxE,IAAA,uBAAA,WACI,QAAsBgB,IAAlBL,KAAK8D,eAAoDzD,IAA1BL,KAAK+D,iBACpC,OAAO/D,KAAKgE,WAEhB,IAAIC,EAAMjE,KAAK8D,SACf,YAAsBzD,IAAlBL,KAAK8D,UACLG,EAAM,IACE,+EAELT,OAD6DxD,KAAK+D,iBAAiB,qBACpEP,OAAfS,EAAI,aAAwFT,OAA7ExD,KAAK+D,iBAAiB,yDAAuEP,OAAhBxD,KAAKgE,WAAW,kBAGvG,YAA0BR,OAAfS,EAAI,aAA2GT,OAAhGxD,KAAK+D,iBAAiB,4EAA0FP,OAAhBxD,KAAKgE,WAAW,WAS1J3E,IAAA,gBAAA,SAAQ6E,GAEJ,OADAlE,KAAKkE,KAAOA,EACLlE,QASXX,IAAA,iBAAA,SAAS8E,GAEL,OADAnE,KAAKmE,MAAQA,EACNnE,QASXX,IAAA,eAAA,SAAO4E,GAEH,OADAjE,KAAKiE,IAAMA,EACJjE,QASXX,IAAA,iBAAA,SAASG,EAAO4E,GAGZ,OAFApE,KAAKqE,OAAOX,KAAKlE,GACjBQ,KAAKsE,cAAcZ,KAAKU,GACjBpE,QAIXX,IAAA,gBAAA,WACI,OAAOW,KAAKkE,QAGhB7E,IAAA,iBAAA,WACI,YAAmBgB,IAAfL,KAAKmE,MACEnE,KAAKuE,UACPC,MAAK,OACLC,KAAI,SAAAC,UAAQA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,MACtDlB,KAAK,KAEP3D,KAAKmE,SAGhB9E,IAAA,eAAA,WACI,OAAOW,KAAKiE,OAGhB5E,IAAA,gBAAA,WACI,OAAOW,KAAK6D,QAGhBxE,IAAA,uBAAA,WACI,OAAOW,KAAK8E,eAGhBzF,IAAA,eAAA,WACI,OAAOW,KAAK+E,OA2FhB1F,IAAA,oBAAA,SAAY2F,GAER,OADAhF,KAAKgF,SAAWA,EACThF,QAGXX,IAAA,kBAAA,SAAU4F,GAEN,OADAjF,KAAKiF,OAASA,EACPjF,QAYXX,IAAA,kBAAA,WACI,OAAOW,KAAKkF,WAGhB7F,IAAA,eAAA,SAAOG,GAEH,OADAQ,KAAK+E,IAAMvF,EACJQ,QAOXX,IAAA,mBAAA,SAAWG,GAEP,OADAQ,KAAKkF,QAAUtD,EAAQuD,UAAU3F,GAC1BQ,QAGXX,IAAA,uBAAA,SAAeG,GAEX,OADAQ,KAAK8E,YAActF,EACZQ,QAGXX,IAAA,wBAAA,WACI,OAAOW,KAAKsE,cAAc,MAG9BjF,IAAA,iBAAA,WACI,OAAOW,KAAKqE,OAAO,MAGvBhF,IAAA,wBAAA,WACI,OAAOW,KAAKoF,gBAGhB/F,IAAA,wBAAA,SAAgBG,GACZ,GAAK6F,MAAMC,QAAQ9F,GAKnB,OADAQ,KAAKoF,aAAe5F,EACbQ,KAJH8B,QAAQrC,MAAO,2CAAgD+D,OAANhE,EAAM,yBAYvEH,IAAA,wBAAA,SAAgBkG,GAEZ,OADAvF,KAAKuF,MAAQA,EACNvF,QAGXX,IAAA,wBAAA,WACI,YAAmBgB,IAAfL,KAAKuF,YAAuClF,IAAhBL,KAAKiF,OAC1B,GAAKjF,KAAKiF,OAAOO,cAAc1E,OAEnCd,KAAKuF,SAGhBlG,IAAA,kBAAA,WACI,OAAOW,KAAKqE,UAGhBhF,IAAA,yBAAA,WACI,OAAOW,KAAKsE,iBAWhBjF,IAAA,oBAAA,WACI,OAAO8B,OAAOkD,OAAOrE,KAAKyF,aAG9BpG,IAAA,iBAAA,SAASqG,GAEL,OADA1F,KAAKyF,SAASC,EAAMnB,WAAamB,EAC1B1F,QAGXX,IAAA,oBAAA,SAAYsG,EAAOC,GACf,IAAIzB,EAAQnE,KAAK6F,iBACbC,EAAa,GASjB,OAPIA,EADA9F,KAAK+F,YAAcnC,EAAcoC,QACpB,mBAEA,sBAES,IAAhBJ,IACNE,EAAa,GAAiBtC,OAAfoC,EAAY,KAAcpC,OAAXsC,IAE1B,eAA+BtC,OAAjBmC,EAAM,aAA0BnC,OAAfsC,EAAW,MAAUtC,OAANW,EAAM,eAGhE9E,IAAA,sBAAA,SAAcwD,OAKNoD,EACAC,EANU1G,EAAAU,UAAAY,OAAA,QAAA,IAAAZ,UAAA,GAAYA,UAAA,GAAJ,KAAMkE,EAAAlE,UAAAY,OAAA,QAAA,IAAAZ,UAAA,GAAmBA,UAAA,GAAJ,KAEvCiG,EAAenG,KAAK+F,UACpBb,EAAUlF,KAAKoG,YACfhB,EAAepF,KAAKqG,kBAOxB,QAAqBhG,IAAjB+E,EAA4B,CAM5Bc,EAAc,SACd,IAAII,EAAmB,QACFjG,IAAjB+D,IACAkC,EAAoB,KAAiB9C,OAAbY,EAAa,MAGzC,IAAIY,EAAW,GACXhF,KAAKuG,gBACLvB,EAAW,YAGfkB,EAAe,2CAAoE1C,OAA1BxD,KAAKgE,WAAW,YAAiCR,OAAvBxD,KAAKuE,UAAU,UAAef,OAAPX,EAAG,MAAaW,OAATwB,EAAS,KAC1H,IAAIwB,EAAW,GACD,OAAVhH,IACAgH,EAAW,YAEfN,GAAgB,oBAAsC1C,OAAnBgD,EAAS,YAA2BhD,OAAjB8C,EAAiB,iBAClEG,GAAe,EAAfC,GAAe,EAAfC,OAAetG,MAApB,IAAA,IAAKuG,EAAAC,EAAmBzB,EAAY0B,OAAAC,cAA/BN,GAAAG,EAAAC,EAAeG,QAAAtH,MAAf+G,GAAe,EAAkB,CAAjC,IAAIQ,EAAJL,EAAepH,MAEZgH,EADAS,IAAgBzH,EACL,WAEA,GAEf0G,GAAgB,kBAAiC1C,OAAhByD,EAAY,MAAgBzD,OAAZgD,EAAS,KAAehD,OAAZyD,EAAY,uBANxEP,GAAe,EAAfC,EAAevG,cAAfqG,GAAe,MAAfI,EAAeK,QAAfL,EAAeK,oBAAfR,QAAAC,GASL,OADAT,GAAgB,YAUhB,IAAIiB,EAAoB,WACpBjC,IACAiC,EAAoB,WAA0B3D,OAAhBxD,KAAKgE,aAGjC,MAAAI,IAGE+C,EAFwB,iBAAjB/C,GAA6BA,aAAwBgD,OAEzCpE,EAAKqE,WAAWjD,GAEhBA,GAG3B,IAGIkD,EAHAC,EAAmB,gBAAgC/D,OAAjB2D,EAAiB,KAEnDK,EAAY,GAEZ3D,EAAO7D,KAAKuE,UAMZ0B,OADY5F,IAAZ6E,IAAqC,IAAZA,EACd,WAEA,GAOf,IAAIuC,EAAU,QACVC,EAAY,eACZC,EAAU,GAIVC,EAAO,EAKX,OAAQzB,GACJ,KAAKvC,EAAciE,UACfP,EAAY,iBACE,OAAV9H,GACAA,EAAQA,EAAMqF,MAAM,EAAG,IACvB2C,EAAa,UAAehE,OAANhE,EAAM,MAEvB0F,GAA4B,OAAjBd,IACZA,EAAeA,EAAaS,MAAM,EAAG,IACrC2C,EAAa,UAAsBhE,OAAbY,EAAa,MAG3CmD,EAAkB,GAElB,MACJ,KAAK3D,EAAckE,UACfL,EAAU,WACI,OAAVjI,IACAA,EAAQwD,EAAKqE,WAAW7H,GACxBgI,EAAa,GAAQhE,OAANhE,IAEnB,MACJ,KAAKoE,EAAcmE,KACfN,EAAU,WACI,OAAVjI,IACoB,iBAAVA,IACNA,EAAQuI,KAAKC,UAAUxI,EAAO,KAAM,IAExCA,EAAQwD,EAAKqE,WAAW7H,GACxBgI,EAAa,GAAQhE,OAANhE,IAEnBoI,EAAO,GACP,MACJ,KAAKhE,EAAcoC,QACfsB,EAAY,WACZI,EAAY,mBACS,OAAjBtD,GACAoD,EAAa,UAAsBhE,OAAbY,EAAa,KAC/B5E,IAAU4E,IACVuD,EAAU,YAGA,OAAVnI,IACAmI,EAAU,WAIlBJ,EAAkB,GAClB,MACJ,QACID,EAAY,OACN,MAAA9H,IACFgI,EAAa,UAAehE,OAANhE,EAAM,MAIxC,GACS,aADDiI,EAEAvB,EAAe,iBAA6B1C,OAAbX,EAAG,YAA0BW,OAAhBK,EAAK,aAA+BL,OAApBkE,EAAU,YAAmBlE,OAAToE,EAAK,MAAuBpE,OAAnB+D,EAAgB,KAAe/D,OAAZyC,EAAS,KAAazC,OAAVgE,EAAU,oBAIlItB,EAAe,gBAAmC1C,OAApB8D,EAAU,YAA0B9D,OAAhBK,EAAK,aAA6BL,OAAlBkE,EAAU,UAAelE,OAAPX,EAAG,MAAuBW,OAAnB+D,EAAgB,KAAgB/D,OAAbgE,EAAU,KAAchE,OAAXmE,EAAQ,KAAYnE,OAATyC,EAAS,MAIvJ,OAAOC,KAUf7G,IAAA,2BAAA,WACI,MAAO,CACHwE,KAAQ7D,KAAKuE,UACbJ,MAASnE,KAAKgE,WACdE,KAAQlE,KAAK+F,UACbjB,YAAe9E,KAAK+D,iBACpBgB,IAAO/E,KAAKiI,SACZ/C,QAAWlF,KAAKoG,YAChB5G,MAASQ,KAAKkI,WACdC,QAAWnI,KAAKoI,kBAChBnE,IAAOjE,KAAK8D,aAIpBzE,IAAA,oBAAA,WACI,OAAOW,KAAKgF,cAnYT3F,IAAA,uBAAP,SAAsBgJ,OAAMpD,EAAA/E,UAAAY,OAAA,QAAA,IAAAZ,UAAA,GAAaA,UAAA,GAAJ,KAC5BmI,EAAKC,eAAe,SACrBzG,EAAO0G,YAAY9I,MAAM,gEAE7B,IAMID,EACAgJ,EAPA3E,EAAOwE,EAAW,KAClBI,EAAgB7E,EAAc8E,eAAe7E,GAOjD,IAAK,IAAI8E,KANK,MAAV1D,GACAwD,EAAcG,UAAU3D,GAKPoD,EACjB,GAAKA,EAAKC,eAAeK,GAAzB,CAGA,IAAIE,EAAYR,EAAKM,GACrB,OAAQA,GACJ,IAAK,OACD,SACJ,IAAK,QACDF,EAAcK,SAASD,GACvB,SACJ,IAAK,MACDJ,EAAcM,OAAOF,GACrB,SACJ,IAAK,OACDJ,EAAcO,QAAQH,GACtB,SACJ,IAAK,UACDJ,EAAcQ,WAAWJ,GACzB,SACJ,IAAK,cACDJ,EAAcS,eAAeL,GAC7B,SACJ,IAAK,MACDJ,EAAcU,OAAON,GACrB,SACJ,IAAK,QACDrJ,EAAQqJ,EACR,SACJ,IAAK,UACDL,EAAeK,EACf,SACJ,IAAK,gBACDJ,EAAcW,gBAAgBP,GAC9B,SACJ,IAAK,WACDJ,EAAcY,YAAYR,GAC1B,SACJ,IAAK,QACDJ,EAAca,gBAAgBT,GAC9B,SACJ,IAAK,WACD,IAAIU,EAAeV,EACnB,IAAK,IAAIW,KAAiBD,EACtB,GAAKA,EAAajB,eAAekB,GAAjC,CAGA,IAAI9D,EAAQ9B,EAAc6F,eAAeF,EAAaC,GAAgBf,GACtEA,EAAciB,SAAShE,GAE3B,SACJ,QACI7D,EAAO0G,YAAY9I,MAAO,iBAA0C+D,OAA1BmF,EAAS,mBAAsBnF,OAALK,EAAK,kBAerF,OAZKwB,MAAMC,QAAQ9F,GAGfA,EAAMmK,SAAQ,SAACC,EAASC,GACpB,IAAIC,EAAsBtB,EAAaqB,QACXxJ,IAAxByJ,EACArB,EAAcsB,SAASH,EAASE,GAEhCrB,EAAcsB,SAASH,MAP/BnB,EAAcsB,SAASvK,EAAOgJ,GAW3BC,KAkBJpJ,IAAA,uBAAP,SAAsBwE,GAClB,OAAO,IAAID,EAAcC,SA/NlB,GAeXpC,EAfiBmC,EAeV,eAAe,WACtBnC,EAhBiBmC,EAgBV,YAAY,YACnBnC,EAjBiBmC,EAiBV,YAAY,aACnBnC,EAlBiBmC,EAkBV,UAAU,WAGjBnC,EArBiBmC,EAqBV,OAAO,QC5BH,IAAMoG,EAAN,iCAAMA,EAGLnG,aACR7D,KAAK6D,KAAOA,eAGhBxE,IAAA,gBAAA,WACI,OAAOW,KAAK6D,QAGhBxE,IAAA,iBAAA,SAASkG,GACLvF,KAAKuF,MAAQA,KAMjBlG,IAAA,iBAAA,WACI,OAAOW,KAAKuF,SAiChBlG,IAAA,iBAAA,SAAS8E,GAEL,OADAnE,KAAKmE,MAAQA,EACNnE,QAGXX,IAAA,iBAAA,WACI,YAAgBgB,IAAbL,KAAKmE,MACGnE,KAAK6D,KAET7D,KAAKmE,SAGhB9E,IAAA,sBAAA,SAAckG,GAEV,OADAvF,KAAKiK,WAAa1E,EACXvF,QAGXX,IAAA,sBAAA,SAAckG,GAEV,OADAvF,KAAKkK,WAAa3E,EACXvF,QAGXX,IAAA,sBAAA,WACI,YAAqBgB,IAAlBL,KAAKkK,WACG,EAEJlK,KAAKkK,cAGhB7K,IAAA,sBAAA,WACI,YAAqBgB,IAAlBL,KAAKiK,WACG,GAAKjK,KAAKmK,gBAEdnK,KAAKiK,gBA/DT5K,IAAA,uBAAP,SAAsBgJ,GACbA,EAAKC,eAAe,SACrBzG,EAAO0G,YAAY9I,MAAM,uFAE7B,IAAIoE,EAAOwE,EAAW,KAClBtD,EAAM,IAAIiF,EAAYnG,GAC1B,IAAK,IAAI8E,KAAYN,EACjB,GAAKA,EAAKC,eAAeK,GAAzB,CAGA,IAAIE,EAAYR,EAAKM,GACrB,OAAQA,GACJ,IAAK,OACD,SACJ,IAAK,QACD5D,EAAI+D,SAASD,GACb,SACJ,IAAK,cACD9D,EAAIqF,cAAcvB,GAClB,SACJ,IAAK,cACD9D,EAAIsF,cAAcxB,GAClB,SACJ,QACIhH,EAAO0G,YAAY9I,MAAO,iBAAyC+D,OAAzBmF,EAAS,kBAAqBnF,OAALK,EAAK,kBAGpF,OAAOkB,KAuCJ1F,IAAA,uBAAP,SAAsBwE,GAClB,OAAO,IAAImG,EAAYnG,SAzFhB,GCQMyG,ECXlB,oBDWkBA,EAOLzH,GAER,aAPJpB,EAAAzB,KAAA,aAAa,IACbyB,EAAAzB,KAAA,OAAO,IACPyB,EAAAzB,KAAA,QAAQ,GAKM,MAAN6C,EACA,MAAM,IAAI0H,MAAM,yCAEpBvK,KAAK6D,KAAOhB,eAMhBxD,IAAA,iBAAA,WACI,OAAOW,KAAKmE,SAGhB9E,IAAA,eAAA,WACI,OAAOW,KAAKiE,OAGhB5E,IAAA,cAAA,WACI,OAAOW,KAAK6D,QAQhBxE,IAAA,wBAAA,WACI,OAAOW,KAAKuF,SAGhBlG,IAAA,sBAAA,WACI,OAAO,GAAKW,KAAKwK,qBAkErBnL,IAAA,qBAAA,SAAaoL,GAMT,OALAzK,KAAK0K,WAAWD,EAAUlG,WAAakG,EAElCzK,KAAK2K,KAAKrC,eAAemC,EAAUxC,YACpCjI,KAAK2K,KAAKF,EAAUxC,UAAY+B,EAAYtB,eAAe+B,EAAUxC,WAElEjI,QAOXX,IAAA,kBAAA,WACI,OAAO8B,OAAOkD,OAAOrE,KAAK0K,eAO9BrL,IAAA,gBAAA,WACI,OAAO8B,OAAOkD,OAAOrE,KAAK2K,SAG9BtL,IAAA,eAAA,SAAOuL,GACH5K,KAAK2K,KAAKC,EAAYrG,WAAaqG,KAGvCvL,IAAA,gBAAA,WACI,OAAOW,KAAK6K,WAGhBxL,IAAA,wBAAA,SAAgByL,GACZ,OAAO9K,KAAK+K,YAAYC,QAAO,SAAAC,UAAKA,EAAEhD,WAAa6C,QAGvDzL,IAAA,sBAAA,WAEI,IAOI6L,EACAC,EARAC,EAASpL,KAAK6K,QAMdQ,EAAc,iCAOlBrL,KAAKsL,aAAe,SAAUvG,GAC1B,IAAIwG,EAASvI,EAAKwI,SAASzG,EAAIR,WAC/B,MAAQ,GAAqBf,OAAnB4H,EAAO,cAAmB5H,OAAP+H,IAMjCvL,KAAKyL,YAAc,SAAoC1G,GACnD,IAAIwG,EAASvI,EAAKwI,SAASzG,EAAIR,WAC/B,MAAQ,GAAoBf,OAAlB4H,EAAO,aAAkB5H,OAAP+H,IAEhCvL,KAAK0L,aAAe,SAAU7I,GAC1B,IAAI0I,EAASvI,EAAKwI,SAAS3I,GAC3B,MAAQ,GAAoBW,OAAlB4H,EAAO,aAAkB5H,OAAP+H,IAEhC,IAAII,EAAW3L,KAAK4L,UAChBC,EAAaF,EAAS,GACrBlF,GAAO,EAAPC,GAAO,EAAPC,OAAOtG,MAAZ,IAAA,IAAKuG,EAAAC,EAAW8E,EAAQ7E,OAAAC,cAAnBN,GAAAG,EAAAC,EAAOG,QAAAtH,MAAP+G,GAAO,EAAc,CAArB,IAAIqF,EAAJlF,EAAOpH,MACJ2B,OAAO4K,GAAGD,EAAKD,IACfX,EAAc,SACdC,EAAe,SAEfD,EAAc,GACdC,EAAe,SAEnB,IAAIa,EAAWF,EAAI9H,WACfiI,EAAWjM,KAAKsL,aAAaQ,GAC7BI,EAAWlM,KAAKyL,YAAYK,GAChCT,GAAgB,yDAIlB7H,OADY0H,EAAY,eAIX1H,OAHb0I,EAAS,+DAII1I,OADA2H,EAAa,4BAGX3H,OAFFyI,EAAS,0DAEOzI,OAAdyI,EAAS,OAAczI,OAATwI,EAAS,oCArBnCtF,GAAO,EAAPC,EAAOvG,cAAPqG,GAAO,MAAPI,EAAOK,QAAPL,EAAOK,oBAAPR,QAAAC,GAyBL0E,GAAe,QAMf,IACIc,EACAC,EAFAC,EAAc,4BAGdC,EAAmB,EAClBC,GAAO,EAAPC,GAAO,EAAPC,OAAOpM,MAAZ,IAAA,IAAKqM,EAAAC,EAAWhB,EAAQ7E,OAAAC,cAAnBwF,GAAAG,EAAAC,EAAO3F,QAAAtH,MAAP6M,GAAO,EAAc,CAArB,IAAIK,EAAJF,EAAOlN,MACJqN,EAAY7M,KAAKsL,aAAasB,GAC9BE,EAAW9M,KAAKyL,YAAYmB,GAMhCP,GAAgB,wBAA2C7I,OAJvD0H,EADA0B,IAAQf,EACM,SAEA,GAEiC,UAAuDrI,OAA/CqJ,EAAU,uCAA8CrJ,OAATsJ,EAAS,MACnHV,EAAcQ,EAAIzC,gBAClBgC,EAAeS,EAAIG,gBAEnB,IAAIC,EAAehN,KAAKiN,gBAAgBL,EAAIrI,WAM5C,GAA4B,IAAxByI,EAAalM,OAAc,CAC3B,IAAI2J,EAAYuC,EAAa,GAC7B,GAAuC,IAAnCvC,EAAUjF,cAAc1E,OAAc,CACtCwL,IACA,IAAIY,EAAYlN,KAAK0L,aAAaY,GAC9Ba,EAAY1C,EAAU2C,YAAYF,GAClC1N,EAAQiL,EAAUvC,WAClB9D,EAAeqG,EAAUrC,kBACzBiF,EAAc5C,EAAU6C,cAAcJ,EAAW1N,EAAO4E,GAC5DiI,GAAgB,8DAEW7I,OADY2J,EAAU,+DACV3J,OAAZ6J,EAAY,kBAEvChB,GAAe,SACf,cAKHkB,GAAa,EAAbC,GAAa,EAAbC,OAAapN,MAAlB,IAAA,IAAKqN,EAAAC,EAAiBX,EAAYlG,OAAAC,cAA7BwG,GAAAG,EAAAC,EAAa3G,QAAAtH,MAAb6N,GAAa,EAAkB,CAA/B,IAAIK,EAAJF,EAAalO,MAGd,GACS,IAFMoO,EAAUpI,cACR1E,OACb,CACIwL,IACA,IAAIuB,EAAY7N,KAAK0L,aAAaY,GAC9BwB,EAAYF,EAAUR,YAAYS,EAAY,UAAqBrK,OAAZ4I,IACvD2B,EAAQH,EAAU1F,WAClB8F,EAAeJ,EAAUxF,kBACzB6F,EAAcL,EAAUN,cAAcO,EAAWE,EAAOC,GAC5D3B,GAAgB,iCAGf7I,OADnBsK,EAAU,6BAC0BtK,OAAjB2I,EAAa,MAAgB3I,OAAZyK,EAAY,wBAIlC,CACI,IAAIhK,EAAM2J,EAAU/H,iBACpBwG,GAAgB,qCAAwC7I,OAAJS,EAAI,UACxDoI,GAAgB,yBAChB,IAAIzE,EAAO,EACNsG,GAAW,EAAXC,GAAW,EAAXC,OAAW/N,MAAhB,IAAA,IAAKgO,EAAAC,EAAeV,EAAUpI,cAAasB,OAAAC,cAAtCmH,GAAAG,EAAAC,EAAWtH,QAAAtH,MAAXwO,GAAW,EAA6B,CAAxC,IAAMxI,EAAN2I,EAAW7O,MACR+F,GAAQG,EAAM8E,kBAClB6B,GAAgB,sBAA2B7I,OAAN+B,GAAM,kBAC3C8G,GAAe3G,EAAMG,iBACrBwG,GAAgB,SAChB,IAAIkC,GAAe7I,EAAM8I,YAAY1N,OACjCyN,GAAe3G,IACfA,EAAO2G,cAPVJ,GAAW,EAAXC,EAAWhO,cAAX8N,GAAW,MAAXI,EAAWpH,QAAXoH,EAAWpH,oBAAXiH,QAAAC,GAUL/B,GAAgB,SAEhB,IAAK,IAAIxL,GAAI,EAAGA,GAAI+G,EAAM/G,KAAK,CAC3BwL,GAAgB,6BACXoC,IAAW,EAAXC,IAAW,EAAXC,QAAWtO,MAAhB,IAAA,IAAKuO,GAAAC,GAAejB,EAAUpI,cAAasB,OAAAC,cAAtC0H,IAAAG,GAAAC,GAAW7H,QAAAtH,MAAX+O,IAAW,EAA6B,CAAxC,IAAMK,GAANF,GAAWpP,MACRuP,GAAQD,GAAMN,YAAY3N,IAC1BmO,GAAeF,GAAMG,mBAAmBpO,IAC5CyL,IACA,IAAI4C,GAAYlP,KAAK0L,aAAaY,GAC9B6C,GAAQL,GAAMtE,kBAClB6B,GAAgB,sBAA2B7I,OAAN2L,GAAM,MAC3C9C,GAAeyC,GAAMxB,cAAc4B,GAAWH,GAAOC,IACrD3C,GAAgB,mBARfqC,IAAW,EAAXC,GAAWvO,cAAXqO,IAAW,MAAXI,GAAW3H,QAAX2H,GAAW3H,oBAAXwH,SAAAC,IAULtC,GAAgB,qBA/C3BmB,GAAa,EAAbC,EAAarN,cAAbmN,GAAa,MAAbI,EAAazG,QAAbyG,EAAazG,oBAAbsG,QAAAC,GAuDLpB,GAAe,mBA5FdG,GAAO,EAAPC,EAAOrM,cAAPmM,GAAO,MAAPI,EAAOzF,QAAPyF,EAAOzF,oBAAPsF,QAAAC,GA8FLJ,GAAe,SAEf,IAAI+C,GAAOC,SAASC,cAAc,QAGlC,OAFAF,GAAKG,aAAa,KAAMnE,GACxBgE,GAAKI,UAAa,GAAiBhM,OAAf6H,EAAY,KAAe7H,OAAZ6I,GAC5B+C,MAIX/P,IAAA,wBAAA,SAAgBkG,GAEZ,OADAvF,KAAKuF,MAAQA,EACNvF,QAGXX,IAAA,iBAAA,SAAS8E,GACLnE,KAAKmE,MAAQA,KAGjB9E,IAAA,eAAA,SAAO4E,GACHjE,KAAKiE,IAAMA,OAlRR5E,IAAA,uBAAP,SAAsB+L,EAAQ/C,GAC1B,IAAI+G,EAAO9E,EAASmF,aAAarE,GACjC,IAAK,IAAIsE,KAAQrH,EACb,GAAKA,EAAKC,eAAeoH,GAAzB,CAGA,IAAIlQ,EAAQ6I,EAAKqH,GACjB,OAAQA,GACJ,IAAK,SACD,IAAIC,EAASnQ,EACb,IAAK,IAAIoQ,KAASD,EACVA,EAAOrH,eAAesH,IACtBR,EAAKS,aAAajM,EAAc6F,eAAekG,EAAOC,KAG9D,SACJ,IAAK,OACD,IAAIjF,EAAOnL,EACX,IAAK,IAAIuF,KAAO4F,EACRA,EAAKrC,eAAevD,IACpBqK,EAAKU,OAAO9F,EAAYP,eAAekB,EAAK5F,KAGpD,MACJ,IAAK,QACDqK,EAAK9F,gBAAgB9J,GACrB,MACJ,IAAK,QACD4P,EAAKtG,SAAStJ,GACd,MACJ,IAAK,MACD4P,EAAKjG,OAAO3J,GACZ,MACJ,QACIqC,EAAO0G,YAAY9I,MAAO,sBAA0B+D,OAALkM,EAAK,kBAKhE,OAAON,KAQJ/P,IAAA,qBAAP,SAAoBwD,GAChB,OAAO,IAAIyH,EAASzH,SC7GzB,QCAHkN,EAAeC,UCYf,IAAIC,EAAc,GAEGC,EAAN,iCAAMA,EAeLC,aAZZ1O,EAAAzB,KAAA,gBAAgB,IAChByB,EAAAzB,KAAA,SAAS,IACTyB,EAAAzB,KAAA,WAAU,GACVyB,EAAAzB,KAAA,aAAa,IACbyB,EAAAzB,KAAA,eAAe,IACfyB,EAAAzB,KAAA,cAAa,GACbyB,EAAAzB,KAAA,gBAAgB,IAQZA,KAAKmQ,QAAUA,EAMf,IAAIC,EAAef,SAASgB,eAAeF,GACtB,OAAjBC,GACAvO,EAAO0G,YAAY9I,MAAO,WAAkB+D,OAAR2M,EAAQ,4FAC5CnQ,KAAKsQ,qBAAuBF,EAC5BpQ,KAAKuQ,UAELvQ,KAAKsQ,qBAAuBjB,SAASC,cAAc,OACnDtP,KAAKsQ,qBAAqBf,aAAa,KAAMvP,KAAKmQ,SAClDnQ,KAAKsQ,qBAAqBE,UAAUC,IAAI,QAAS,QAGjDzQ,KAAKsQ,qBAAqBf,aAAa,cAAe,sBAK9DlQ,IAAA,kBAAA,SAAUqR,GAEN,OADA1Q,KAAK0Q,WAAaA,EACX1Q,QAOXX,IAAA,gBAAA,SAAQsR,GAGJ,OADA3Q,KAAK4Q,OAAOlN,KAAKiN,GACV3Q,QAIXX,IAAA,qBAAA,SAAasJ,EAAUnJ,GAGnB,OADAQ,KAAK6Q,WAAWlI,GAAYnJ,EACrBQ,QAIXX,IAAA,iBAAA,WAEI,OADAW,KAAK8Q,YAAa,EACX9Q,QAGXX,IAAA,uBAAA,SAAesJ,EAAUnJ,GAGrB,OADAQ,KAAK+Q,aAAapI,GAAYnJ,EACvBQ,QAIXX,IAAA,uBAAA,SAAeG,GAGX,OADAQ,KAAKgR,cAActN,KAAKlE,GACjBQ,QAOXX,IAAA,qBAAA,WAEI,OADAW,KAAKiR,gBAAiB,EACfjR,QAQXX,IAAA,wBAAA,SAAgB6R,GAGZ,OADAlR,KAAKmR,cAAczN,KAAKwN,GACjBlR,QAOXX,IAAA,6BAAA,eAAqB8E,EAAAjE,UAAAY,OAAA,QAAA,IAAAZ,UAAA,GAAeA,UAAA,GAAP,QACzBF,KAAKoR,YAAc/B,SAASC,cAAc,UAC1CtP,KAAKoR,YAAYZ,UAAUC,IAAI,MAAO,iBACtCzQ,KAAKoR,YAAY5B,UAAYrL,EAC7B,IAAIkN,EAAQrR,KAKZ,OAJAA,KAAKoR,YAAYE,iBAAiB,SAAS,WACvCD,EAAME,eAAeC,UAEzBxR,KAAKyR,gBAAgBzR,KAAKoR,aACnBpR,QAOXX,IAAA,iBAAA,WAEI,OADAW,KAAK0R,YAAa,EACX1R,QAGXX,IAAA,aAAA,WAEI,GAAiC,MAA7BW,KAAKsQ,qBACL,MAAM,IAAI/F,MAAM,4DAYpB,GATKvK,KAAK2R,SACN3R,KAAK4R,SAQmB,IAAxB5R,KAAKiR,eAAyB,CAC9B,IAAIY,EAAa7R,KACjBA,KAAK8R,aAAaR,iBAAiB,mBAAmB,WAIlDO,EAAWtB,WAOnB,QAAsBlQ,IAAlBL,KAAK+R,eACoB1R,IAArBL,KAAKoR,YAA2B,CAChC,IAAIC,EAAQrR,KACZA,KAAKoR,YAAYE,iBAAiB,SAAS,WAKvCD,EAAMW,cACNX,EAAMU,cAKlB/R,KAAKuR,eAAeU,UAKxB5S,IAAA,oBAAA,gBACgCgB,IAAxBL,KAAKuR,gBACLvR,KAAKuR,eAAeC,UAI5BnS,IAAA,mBAAA,WACI,OAAOW,KAAKmQ,WAOhB9Q,IAAA,2BAAA,SAAmB0S,GAEf,OADA/R,KAAK+R,SAAWA,EACT/R,QAsDXX,IAAA,mBAAA,WACI,OAAOW,KAAKsQ,wBAShBjR,IAAA,iBAAA,WACI,OAAOW,KAAK2R,WAGhBtS,IAAA,oBAAA,SAAY6S,GAER,OADAlS,KAAK0R,WAAaQ,EACXlS,QAEXX,IAAA,qBAAA,WAII,OAHIW,KAAKmS,YACLnS,KAAKuQ,QAEFvQ,QAGXX,IAAA,cAAA,WAGIW,KAAKsQ,qBAAqB8B,iBAAiB,0BAA0BzI,SAAQ,SAAA0I,GACzE,IAAItN,EAAMgL,EAAAuC,IAAIC,YAAYF,GACd,OAARtN,GAEAA,EAAIyN,kBASgBnS,IAAxBL,KAAKuR,gBACLvR,KAAKgS,cAEThS,KAAKsQ,qBAAqBd,UAAY,GAKtCxP,KAAK2R,SAAU,EACf3R,KAAK4Q,OAAS,GACd5Q,KAAKmR,cAAgB,GACrBnR,KAAK0Q,gBAAarQ,KAMtBhB,IAAA,cAAA,WAEIW,KAAK2R,SAAU,EAEftC,SAASoD,KAAKC,YAAY1S,KAAKsQ,sBAE/B,IAAMqC,EAAqBtD,SAASC,cAAc,OAalD,IAAK,IAAIsD,KAZTD,EAAmBnC,UAAUC,IACzB,eACA,0BACA,YACAzQ,KAAK0R,WACLiB,EAAmBnC,UAAUC,IAAI,0BAIjCkC,EAAmBE,MAAMC,YAAY,SAAU,aAC/CH,EAAmBE,MAAMC,YAAY,SAAU,sBAEvB9S,KAAK+Q,aACxB/Q,KAAK+Q,aAAazI,eAAesK,IAGtCD,EAAmBE,MAAMC,YAAYF,EAAiB5S,KAAK+Q,aAAa6B,IAE5E,IAAK,IAAIG,KAAe/S,KAAKgR,cACzB2B,EAAmBnC,UAAUC,IAAIsC,GASrC,IAAK,IAAIC,KAPThT,KAAKsQ,qBAAqBoC,YAAYC,GACtC3S,KAAKiT,aAAe5D,SAASC,cAAc,OAC3CtP,KAAKiT,aAAazC,UAAUC,IAAI,iBAChCkC,EAAmBD,YAAY1S,KAAKiT,cAEpCjT,KAAKkT,UAAY7D,SAASC,cAAc,OACxCtP,KAAKkT,UAAU1C,UAAUC,IAAI,cACHzQ,KAAK6Q,WACtB7Q,KAAK6Q,WAAWvI,eAAe0K,IAGpChT,KAAKkT,UAAUL,MAAMC,YAAYE,EAAehT,KAAK6Q,WAAWmC,IAWpE,GATAhT,KAAKiT,aAAaP,YAAY1S,KAAKkT,WAQnClT,KAAKuR,eAAiBxB,EAAAoD,MAAMZ,YAAYvS,KAAKsQ,sBACjB,OAAxBtQ,KAAKuR,eAAyB,CAU9BvR,KAAKuR,eAAiB,IAAIxB,EAAAoD,MAAMnT,KAAKsQ,qBALvB,CACV8C,UAAY,EACZC,UAAY,EACZC,OAAS,IAQjB,QAAwBjT,IAApBL,KAAK0Q,WAA0B,CAC/B,IAAI6C,EAAc,6DAEgB/P,OAAhBxD,KAAK0Q,WAAW,qHAIlC1Q,KAAKiT,aAAaO,mBAAmB,aAAcD,OCnY/B7R,EDyYnB+E,GAAQ,EAARC,GAAQ,EAARC,OAAQtG,MAAb,IAAA,IAAKuG,EAAAC,EAAY7G,KAAK4Q,OAAM9J,OAAAC,cAAvBN,GAAAG,EAAAC,EAAQG,QAAAtH,MAAR+G,GAAQ,EAAiB,CAAzB,IAAIgM,EAAJ7L,EAAQpH,MAET,GACS,iBAFa,IAAJiT,EAAI,aC1YF/Q,ED0YF+Q,ICxYZ/Q,EAAI+R,cAAgB3M,OAAS,gBAAkBpF,GD2Y7C1B,KAAKkT,UAAUM,mBAAmB,YAAaf,QAI/CzS,KAAKkT,UAAUR,YAAYD,aARlC/L,GAAQ,EAARC,EAAQvG,cAARqG,GAAQ,MAARI,EAAQK,QAARL,EAAQK,oBAARR,QAAAC,GAgBL,GAAG3G,KAAK8Q,WAAY,CAChB,IAAI4C,EAAcrE,SAASC,cAAc,OACzCoE,EAAYlD,UAAUC,IAAI,gBAC1BzQ,KAAKiT,aAAaP,YAAYgB,GAEI,IAA9B1T,KAAKmR,cAAcrQ,QACnBd,KAAK2T,2BAGJpH,GAAgB,EAAhBC,GAAgB,EAAhBC,OAAgBpM,MAArB,IAAA,IAAKqM,EAAAC,EAAoB3M,KAAKmR,cAAarK,OAAAC,cAAtCwF,GAAAG,EAAAC,EAAgB3F,QAAAtH,MAAhB6M,GAAgB,EAAA,CAAhB,IAAIqH,EAAJlH,EAAgBlN,MACW,iBAAjBoU,GAA6BA,aAAwBxM,OAC5DsM,EAAYF,mBAAmB,YAAaI,GAE5CF,EAAYhB,YAAYkB,aAJ3BpH,GAAgB,EAAhBC,EAAgBrM,cAAhBmM,GAAgB,MAAhBI,EAAgBzF,QAAhByF,EAAgBzF,oBAAhBsF,QAAAC,IAYT,IAAIoH,EAAmB,IAAgBrQ,OAAbxD,KAAKmQ,QAAQ,+BACvCd,SAAS+C,iBAAiByB,GAAiBlK,SAAQ,SAAAmK,UAAM,IAAI/D,EAAAgE,QAAQD,WA7NlEzU,IAAA,qBAAP,SAAoB8Q,GAChB,IAAIkB,EAAQ,IAAInB,EAAWC,GAE3B,OADAF,EAAYE,GAAWkB,EAChBA,KAuCJhS,IAAA,wBAAP,WACI,OAAOW,KAAKyP,aAAazM,EAAKgR,qBAsL3B3U,IAAA,oBAAP,SAAmB8Q,GACf,IAAIkB,EAAQnB,EAAW+D,SAAS9D,GAIhC,OAHc,OAAVkB,IACAA,EAAQnB,EAAWT,aAAaU,IAE7BkB,QA1aA,GA8MX5P,EA9MiByO,EA8MV,YAAW,SAAUC,GAExB,OAAIA,KAAWF,EACJA,EAAYE,GAEZ,QAOf1O,EA1NiByO,EA0NV,cAAa,WAChBpO,QAAQY,IAAIvB,OAAO+S,KAAKjE,GAAatM,KAAK,UAM9ClC,EAjOiByO,EAiOV,kBAAiB,WACpB,IAAK,IAAIR,KAAQO,EACb,GAAIA,EAAY3H,eAAeoH,GAAO,CACtBO,EAAYP,GAClBa,qBE5OlB4D,EAAW,SAAUC,GAGvB,IAEI/T,EAFAgU,EAAKlT,OAAOK,UACZ8S,EAASD,EAAG/L,eAEZiM,EAA4B,mBAAXzN,OAAwBA,OAAS,GAClD0N,EAAiBD,EAAQxN,UAAY,aACrC0N,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAE/C,SAASC,EAAOnT,EAAKrC,EAAKG,GAOxB,OANA2B,OAAOC,eAAeM,EAAKrC,EAAK,CAC9BG,MAAOA,EACPwB,YAAY,EACZC,cAAc,EACdC,UAAU,IAELQ,EAAIrC,GAEb,IAEEwV,EAAO,GAAI,IACX,MAAOC,GACPD,EAAS,SAASnT,EAAKrC,EAAKG,GAC1B,OAAOkC,EAAIrC,GAAOG,GAItB,SAASuV,EAAKC,EAASC,EAASlV,EAAMmV,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQzT,qBAAqB4T,EAAYH,EAAUG,EAC/EC,EAAYlU,OAAOmU,OAAOH,EAAe3T,WACzC+T,EAAU,IAAIC,EAAQN,GAAe,IAMzC,OAFAG,EAAUI,QAuMZ,SAA0BT,EAASjV,EAAMwV,GACvC,IAAIG,EAAQC,EAEZ,OAAO,SAAgBC,EAAQtW,GAC7B,GAAIoW,IAAUG,EACZ,MAAM,IAAItL,MAAM,gCAGlB,GAAImL,IAAUI,EAAmB,CAC/B,GAAe,UAAXF,EACF,MAAMtW,EAKR,OAAOyW,IAMT,IAHAR,EAAQK,OAASA,EACjBL,EAAQjW,IAAMA,IAED,CACX,IAAI0W,EAAWT,EAAQS,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUT,GACnD,GAAIU,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBV,EAAQK,OAGVL,EAAQa,KAAOb,EAAQc,MAAQd,EAAQjW,SAElC,GAAuB,UAAnBiW,EAAQK,OAAoB,CACrC,GAAIF,IAAUC,EAEZ,MADAD,EAAQI,EACFP,EAAQjW,IAGhBiW,EAAQe,kBAAkBf,EAAQjW,SAEN,WAAnBiW,EAAQK,QACjBL,EAAQgB,OAAO,SAAUhB,EAAQjW,KAGnCoW,EAAQG,EAER,IAAIW,EAASC,EAASzB,EAASjV,EAAMwV,GACrC,GAAoB,WAAhBiB,EAAOtS,KAAmB,CAO5B,GAJAwR,EAAQH,EAAQ7V,KACZoW,EACAY,EAEAF,EAAOlX,MAAQ6W,EACjB,SAGF,MAAO,CACL3W,MAAOgX,EAAOlX,IACdI,KAAM6V,EAAQ7V,MAGS,UAAhB8W,EAAOtS,OAChBwR,EAAQI,EAGRP,EAAQK,OAAS,QACjBL,EAAQjW,IAAMkX,EAAOlX,OA/QPqX,CAAiB3B,EAASjV,EAAMwV,GAE7CF,EAcT,SAASoB,EAAS3W,EAAI4B,EAAKpC,GACzB,IACE,MAAO,CAAE4E,KAAM,SAAU5E,IAAKQ,EAAG8W,KAAKlV,EAAKpC,IAC3C,MAAOc,GACP,MAAO,CAAE8D,KAAM,QAAS5E,IAAKc,IAhBjCgU,EAAQW,KAAOA,EAoBf,IAAIY,EAAyB,iBACzBe,EAAyB,iBACzBb,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAASf,KACT,SAASyB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBlC,EAAOkC,EAAmBvC,GAAgB,WACxC,OAAOxU,QAGT,IAAIgX,EAAW7V,OAAO8V,eAClBC,EAA0BF,GAAYA,EAASA,EAAS3S,EAAO,MAC/D6S,GACAA,IAA4B7C,GAC5BC,EAAOsC,KAAKM,EAAyB1C,KAGvCuC,EAAoBG,GAGtB,IAAIC,EAAKL,EAA2BtV,UAClC4T,EAAU5T,UAAYL,OAAOmU,OAAOyB,GAYtC,SAASK,EAAsB5V,GAC7B,CAAC,OAAQ,QAAS,UAAUmI,SAAQ,SAASiM,GAC3Cf,EAAOrT,EAAWoU,GAAQ,SAAStW,GACjC,OAAOU,KAAKyV,QAAQG,EAAQtW,SAkClC,SAAS+X,EAAchC,EAAWiC,GAChC,SAASC,EAAO3B,EAAQtW,EAAKL,EAASC,GACpC,IAAIsX,EAASC,EAASpB,EAAUO,GAASP,EAAW/V,GACpD,GAAoB,UAAhBkX,EAAOtS,KAEJ,CACL,IAAIsT,EAAShB,EAAOlX,IAChByO,EAAQyJ,EAAOhY,MACnB,OAAIuO,GACiB,iBAAVA,GACPuG,EAAOsC,KAAK7I,EAAO,WACduJ,EAAYrY,QAAQ8O,EAAM0J,SAAS7X,MAAK,SAASJ,GACtD+X,EAAO,OAAQ/X,EAAOP,EAASC,MAC9B,SAASkB,GACVmX,EAAO,QAASnX,EAAKnB,EAASC,MAI3BoY,EAAYrY,QAAQ8O,GAAOnO,MAAK,SAAS8X,GAI9CF,EAAOhY,MAAQkY,EACfzY,EAAQuY,MACP,SAAS/X,GAGV,OAAO8X,EAAO,QAAS9X,EAAOR,EAASC,MAvBzCA,EAAOsX,EAAOlX,KA4BlB,IAAIqY,EAgCJ3X,KAAKyV,QA9BL,SAAiBG,EAAQtW,GACvB,SAASsY,IACP,OAAO,IAAIN,GAAY,SAASrY,EAASC,GACvCqY,EAAO3B,EAAQtW,EAAKL,EAASC,MAIjC,OAAOyY,EAaLA,EAAkBA,EAAgB/X,KAChCgY,EAGAA,GACEA,KAkHV,SAAS1B,EAAoBF,EAAUT,GACrC,IAAIK,EAASI,EAASjP,SAASwO,EAAQK,QACvC,GAAIA,IAAWvV,EAAW,CAKxB,GAFAkV,EAAQS,SAAW,KAEI,UAAnBT,EAAQK,OAAoB,CAE9B,GAAII,EAASjP,SAAiB,SAG5BwO,EAAQK,OAAS,SACjBL,EAAQjW,IAAMe,EACd6V,EAAoBF,EAAUT,GAEP,UAAnBA,EAAQK,QAGV,OAAOO,EAIXZ,EAAQK,OAAS,QACjBL,EAAQjW,IAAM,IAAImB,UAChB,kDAGJ,OAAO0V,EAGT,IAAIK,EAASC,EAASb,EAAQI,EAASjP,SAAUwO,EAAQjW,KAEzD,GAAoB,UAAhBkX,EAAOtS,KAIT,OAHAqR,EAAQK,OAAS,QACjBL,EAAQjW,IAAMkX,EAAOlX,IACrBiW,EAAQS,SAAW,KACZG,EAGT,IAAI5W,EAAOiX,EAAOlX,IAElB,OAAMC,EAOFA,EAAKG,MAGP6V,EAAQS,EAAS6B,YAActY,EAAKC,MAGpC+V,EAAQvO,KAAOgP,EAAS8B,QAQD,WAAnBvC,EAAQK,SACVL,EAAQK,OAAS,OACjBL,EAAQjW,IAAMe,GAUlBkV,EAAQS,SAAW,KACZG,GANE5W,GA3BPgW,EAAQK,OAAS,QACjBL,EAAQjW,IAAM,IAAImB,UAAU,oCAC5B8U,EAAQS,SAAW,KACZG,GAoDX,SAAS4B,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxBhY,KAAKsY,WAAW5U,KAAKuU,GAGvB,SAASM,EAAcN,GACrB,IAAIzB,EAASyB,EAAMO,YAAc,GACjChC,EAAOtS,KAAO,gBACPsS,EAAOlX,IACd2Y,EAAMO,WAAahC,EAGrB,SAAShB,EAAQN,GAIflV,KAAKsY,WAAa,CAAC,CAAEJ,OAAQ,SAC7BhD,EAAYvL,QAAQoO,EAAc/X,MAClCA,KAAKuQ,OAAM,GA8Bb,SAASlM,EAAOoU,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASjE,GAC9B,GAAIkE,EACF,OAAOA,EAAe9B,KAAK6B,GAG7B,GAA6B,mBAAlBA,EAASzR,KAClB,OAAOyR,EAGT,IAAKE,MAAMF,EAAS3X,QAAS,CAC3B,IAAID,GAAI,EAAI+X,EAAO,SAAS5R,IAC1B,OAASnG,EAAI4X,EAAS3X,WAChBwT,EAAOsC,KAAK6B,EAAU5X,GAGxB,OAFAmG,EAAKxH,MAAQiZ,EAAS5X,GACtBmG,EAAKtH,MAAO,EACLsH,EAOX,OAHAA,EAAKxH,MAAQa,EACb2G,EAAKtH,MAAO,EAELsH,GAGT,OAAO4R,EAAK5R,KAAO4R,GAKvB,MAAO,CAAE5R,KAAM+O,GAIjB,SAASA,IACP,MAAO,CAAEvW,MAAOa,EAAWX,MAAM,GA+MnC,OA7mBAmX,EAAkBrV,UAAYsV,EAC9BjC,EAAOsC,EAAI,cAAeL,GAC1BjC,EAAOiC,EAA4B,cAAeD,GAClDA,EAAkBgC,YAAchE,EAC9BiC,EACAnC,EACA,qBAaFP,EAAQ0E,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAOtF,YAClD,QAAOuF,IACHA,IAASnC,GAG2B,uBAAnCmC,EAAKH,aAAeG,EAAKnV,QAIhCuQ,EAAQ6E,KAAO,SAASF,GAQtB,OAPI5X,OAAO+X,eACT/X,OAAO+X,eAAeH,EAAQjC,IAE9BiC,EAAOI,UAAYrC,EACnBjC,EAAOkE,EAAQpE,EAAmB,sBAEpCoE,EAAOvX,UAAYL,OAAOmU,OAAO6B,GAC1B4B,GAOT3E,EAAQgF,MAAQ,SAAS9Z,GACvB,MAAO,CAAEmY,QAASnY,IAsEpB8X,EAAsBC,EAAc7V,WACpCqT,EAAOwC,EAAc7V,UAAWiT,GAAqB,WACnD,OAAOzU,QAEToU,EAAQiD,cAAgBA,EAKxBjD,EAAQiF,MAAQ,SAASrE,EAASC,EAASlV,EAAMmV,EAAaoC,QACxC,IAAhBA,IAAwBA,EAAc3X,SAE1C,IAAI2Z,EAAO,IAAIjC,EACbtC,EAAKC,EAASC,EAASlV,EAAMmV,GAC7BoC,GAGF,OAAOlD,EAAQ0E,oBAAoB7D,GAC/BqE,EACAA,EAAKtS,OAAOpH,MAAK,SAAS4X,GACxB,OAAOA,EAAO9X,KAAO8X,EAAOhY,MAAQ8Z,EAAKtS,WAuKjDoQ,EAAsBD,GAEtBtC,EAAOsC,EAAIxC,EAAmB,aAO9BE,EAAOsC,EAAI3C,GAAgB,WACzB,OAAOxU,QAGT6U,EAAOsC,EAAI,YAAY,WACrB,MAAO,wBAkCT/C,EAAQF,KAAO,SAASqF,GACtB,IAAIrF,EAAO,GACX,IAAK,IAAIsF,KAAOD,EACdrF,EAAKxQ,KAAK8V,GAMZ,OAJAtF,EAAKuF,UAIE,SAASzS,IACd,KAAOkN,EAAKpT,QAAQ,CAClB,IAAIzB,EAAM6U,EAAKwF,MACf,GAAIra,KAAOka,EAGT,OAFAvS,EAAKxH,MAAQH,EACb2H,EAAKtH,MAAO,EACLsH,EAQX,OADAA,EAAKtH,MAAO,EACLsH,IAsCXoN,EAAQ/P,OAASA,EAMjBmR,EAAQhU,UAAY,CAClBiS,YAAa+B,EAEbjF,MAAO,SAASoJ,GAcd,GAbA3Z,KAAK4Z,KAAO,EACZ5Z,KAAKgH,KAAO,EAGZhH,KAAKoW,KAAOpW,KAAKqW,MAAQhW,EACzBL,KAAKN,MAAO,EACZM,KAAKgW,SAAW,KAEhBhW,KAAK4V,OAAS,OACd5V,KAAKV,IAAMe,EAEXL,KAAKsY,WAAW3O,QAAQ4O,IAEnBoB,EACH,IAAK,IAAI9V,KAAQ7D,KAEQ,MAAnB6D,EAAKc,OAAO,IACZ2P,EAAOsC,KAAK5W,KAAM6D,KACjB8U,OAAO9U,EAAKgB,MAAM,MACrB7E,KAAK6D,GAAQxD,IAMrBwZ,KAAM,WACJ7Z,KAAKN,MAAO,EAEZ,IACIoa,EADY9Z,KAAKsY,WAAW,GACLE,WAC3B,GAAwB,UAApBsB,EAAW5V,KACb,MAAM4V,EAAWxa,IAGnB,OAAOU,KAAK+Z,MAGdzD,kBAAmB,SAAS0D,GAC1B,GAAIha,KAAKN,KACP,MAAMsa,EAGR,IAAIzE,EAAUvV,KACd,SAASia,EAAOC,EAAKC,GAYnB,OAXA3D,EAAOtS,KAAO,QACdsS,EAAOlX,IAAM0a,EACbzE,EAAQvO,KAAOkT,EAEXC,IAGF5E,EAAQK,OAAS,OACjBL,EAAQjW,IAAMe,KAGN8Z,EAGZ,IAAK,IAAItZ,EAAIb,KAAKsY,WAAWxX,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIoX,EAAQjY,KAAKsY,WAAWzX,GACxB2V,EAASyB,EAAMO,WAEnB,GAAqB,SAAjBP,EAAMC,OAIR,OAAO+B,EAAO,OAGhB,GAAIhC,EAAMC,QAAUlY,KAAK4Z,KAAM,CAC7B,IAAIQ,EAAW9F,EAAOsC,KAAKqB,EAAO,YAC9BoC,EAAa/F,EAAOsC,KAAKqB,EAAO,cAEpC,GAAImC,GAAYC,EAAY,CAC1B,GAAIra,KAAK4Z,KAAO3B,EAAME,SACpB,OAAO8B,EAAOhC,EAAME,UAAU,GACzB,GAAInY,KAAK4Z,KAAO3B,EAAMG,WAC3B,OAAO6B,EAAOhC,EAAMG,iBAGjB,GAAIgC,GACT,GAAIpa,KAAK4Z,KAAO3B,EAAME,SACpB,OAAO8B,EAAOhC,EAAME,UAAU,OAG3B,CAAA,IAAIkC,EAMT,MAAM,IAAI9P,MAAM,0CALhB,GAAIvK,KAAK4Z,KAAO3B,EAAMG,WACpB,OAAO6B,EAAOhC,EAAMG,gBAU9B7B,OAAQ,SAASrS,EAAM5E,GACrB,IAAK,IAAIuB,EAAIb,KAAKsY,WAAWxX,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIoX,EAAQjY,KAAKsY,WAAWzX,GAC5B,GAAIoX,EAAMC,QAAUlY,KAAK4Z,MACrBtF,EAAOsC,KAAKqB,EAAO,eACnBjY,KAAK4Z,KAAO3B,EAAMG,WAAY,CAChC,IAAIkC,EAAerC,EACnB,OAIAqC,IACU,UAATpW,GACS,aAATA,IACDoW,EAAapC,QAAU5Y,GACvBA,GAAOgb,EAAalC,aAGtBkC,EAAe,MAGjB,IAAI9D,EAAS8D,EAAeA,EAAa9B,WAAa,GAItD,OAHAhC,EAAOtS,KAAOA,EACdsS,EAAOlX,IAAMA,EAETgb,GACFta,KAAK4V,OAAS,OACd5V,KAAKgH,KAAOsT,EAAalC,WAClBjC,GAGFnW,KAAKua,SAAS/D,IAGvB+D,SAAU,SAAS/D,EAAQ6B,GACzB,GAAoB,UAAhB7B,EAAOtS,KACT,MAAMsS,EAAOlX,IAcf,MAXoB,UAAhBkX,EAAOtS,MACS,aAAhBsS,EAAOtS,KACTlE,KAAKgH,KAAOwP,EAAOlX,IACM,WAAhBkX,EAAOtS,MAChBlE,KAAK+Z,KAAO/Z,KAAKV,IAAMkX,EAAOlX,IAC9BU,KAAK4V,OAAS,SACd5V,KAAKgH,KAAO,OACa,WAAhBwP,EAAOtS,MAAqBmU,IACrCrY,KAAKgH,KAAOqR,GAGPlC,GAGTqE,OAAQ,SAASpC,GACf,IAAK,IAAIvX,EAAIb,KAAKsY,WAAWxX,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIoX,EAAQjY,KAAKsY,WAAWzX,GAC5B,GAAIoX,EAAMG,aAAeA,EAGvB,OAFApY,KAAKua,SAAStC,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACP9B,IAKbsE,MAAS,SAASvC,GAChB,IAAK,IAAIrX,EAAIb,KAAKsY,WAAWxX,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIoX,EAAQjY,KAAKsY,WAAWzX,GAC5B,GAAIoX,EAAMC,SAAWA,EAAQ,CAC3B,IAAI1B,EAASyB,EAAMO,WACnB,GAAoB,UAAhBhC,EAAOtS,KAAkB,CAC3B,IAAIwW,EAASlE,EAAOlX,IACpBiZ,EAAcN,GAEhB,OAAOyC,GAMX,MAAM,IAAInQ,MAAM,0BAGlBoQ,cAAe,SAASlC,EAAUZ,EAAYC,GAa5C,OAZA9X,KAAKgW,SAAW,CACdjP,SAAU1C,EAAOoU,GACjBZ,WAAYA,EACZC,QAASA,GAGS,SAAhB9X,KAAK4V,SAGP5V,KAAKV,IAAMe,GAGN8V,IAQJ/B,EA9sBM,CAqtBgBwG,GAG/B,IACEC,mBAAqB1G,EACrB,MAAO2G,GAWmB,iBAAfC,WACTA,WAAWF,mBAAqB1G,EAEhC6G,SAAS,IAAK,yBAAdA,CAAwC7G,GC7uB7B,IAAM8G,EAAN,iCAAMA,gCAQV5b,IAAA,uBAAP,SAAsBuK,GAClB,IAAI5J,KAAKkb,UAAUtR,GACf,MAAMW,MAAM,gCAIblL,IAAA,kBAAP,SAAiBuK,GACb,SAAUA,IACLA,EAAQuR,gBACRvR,EAAQuR,cAAcC,gBAGxB/b,IAAA,kBAAP,SAAiBuK,GAEb,OADA5J,KAAKqb,eAAezR,GACbA,EAAQuR,cAAcC,eAG1B/b,IAAA,yBAAP,SAAwBic,GACpB,IAAI5Z,EAAM,GACL+E,GAAS,EAATC,GAAS,EAATC,OAAStG,MAAd,IAAA,IAAKuG,EAAAC,EAAayU,EAAQxU,OAAAC,cAArBN,GAAAG,EAAAC,EAASG,QAAAtH,MAAT+G,GAAS,EAAc,CAAvB,IAAIwR,EAAJrR,EAASpH,MACNqE,EAAOoU,EAAM,GACbzY,EAAQyY,EAAM,GAClB,GAAGvW,EAAI4G,eAAezE,GAAM,CACxB,IAAI0X,EAAc7Z,EAAImC,GACnBwB,MAAMC,QAAQiW,GACb7Z,EAAImC,GAAMH,KAAKlE,GAEfkC,EAAImC,GAAQ,CAAC0X,EAAY/b,QAG7BkC,EAAImC,GAAQrE,YAXfkH,GAAS,EAATC,EAASvG,cAATqG,GAAS,MAATI,EAASK,QAATL,EAASK,oBAATR,QAAAC,GAcL,OAAOjF,QAzCA,GCKF8Z,EA8EV,iCA9EUA,EASGtX,GACR,iBAAQA,GACJ,KAAKsX,EAAQC,KACTzb,KAAKiE,IAAM,IAAIyX,IAAIC,UAAY,mBAAoBC,OAAOC,SAASC,MACnE9b,KAAKiE,IAAI8X,aAAaC,IAAI,KAAMC,OAAOpZ,IACvC,MACJ,KAAK2Y,EAAQU,OACTlc,KAAKiE,IAAM,IAAIyX,IAAIC,UAAY,yBAA0BC,OAAOC,SAASC,MACzE9b,KAAKiE,IAAI8X,aAAaC,IAAI,KAAMC,OAAOpZ,IACvC,MACJ,KAAK2Y,EAAQW,MACTnc,KAAKiE,IAAM,IAAIyX,IAAIC,UAAY,oBAAqBC,OAAOC,SAASC,MACpE,MACJ,KAAKN,EAAQY,KACTpc,KAAKiE,IAAM,IAAIyX,IAAIC,UAAY,WAAYC,OAAOC,SAASC,MAC3D9b,KAAKiE,IAAI8X,aAAaC,IAAI,KAAM,QAChChc,KAAKiE,IAAI8X,aAAaC,IAAI,KAAMC,OAAOpZ,IACvC,MACJ,KAAK2Y,EAAQa,KACTrc,KAAKiE,IAAM,IAAIyX,IAAIC,UAAY,WAAYC,OAAOC,SAASC,MAC3D9b,KAAKiE,IAAI8X,aAAaC,IAAI,KAAMC,OAAOpZ,kBAMnDxD,IAAA,oBAAA,SAAYA,EAAKG,GAEb,OADAQ,KAAKiE,IAAI8X,aAAaC,IAAI3c,EAAKG,GACxBQ,QAGXX,IAAA,iBAAA,WACI,OAAOW,KAAKiE,IAAIf,cAGpB7D,IAAA,gBAAA,WACI,OAAOW,KAAKiE,IAAI8X,aAAaO,IAAId,EAAQe,WAGtCld,IAAA,mBAAP,SAAkBuX,GACd,OAAQ,IAAI4E,EAAQxb,KAAKyb,MACpB3I,YAAY0I,EAAQe,KAAM3F,MAG5BvX,IAAA,qBAAP,WACI,OAAO,IAAImc,EAAQxb,KAAKkc,WAGrB7c,IAAA,oBAAP,SAAmBwD,EAAI2Z,GACnB,IAAIC,EAAU,IAAIjB,EAAQxb,KAAKmc,OAC/B,QAAkB,IAAPtZ,EACP,MAAM,IAAI0H,MAAM,6BAMpB,OAJAkS,EAAQ3J,YAAY,QAASjQ,QACR,IAAV2Z,GACPC,EAAQ3J,YAAY,QAAS0J,GAE1BC,KAGJpd,IAAA,mBAAP,SAAkBwD,GACd,IAAI4Z,EAAU,IAAIjB,EAAQxb,KAAKoc,MAI/B,YAHkB,IAAPvZ,GACP4Z,EAAQ3J,YAAY,KAAMjQ,GAEvB4Z,QAIZ,GA5EChb,EAFS+Z,EAEF,OAAO,QACd/Z,EAHS+Z,EAGF,SAAS,UAChB/Z,EAJS+Z,EAIF,OAAO,QACd/Z,EALS+Z,EAKF,OAAO,QACd/Z,EANS+Z,EAMF,OAAO,QACd/Z,EAPS+Z,EAOF,QAAQ,SAuEZ,IAAMkB,EAAN,iCAAMA,EAKG9F,aAFZnV,EAAAzB,KAAA,SAAS,OAILA,KAAKiE,IAAMuX,EAAQmB,WAAW/F,gBAI5BvX,IAAA,gBAAN,6BAAAQ,EAAA+c,EAAAhC,GAAA3B,MAAA,SAAA4D,QAEQC,oFAAiBC,EAAKC,wBAEF,OAFpBF,EAAQG,EAAA7G,MAEC8G,OAAc,yCAChB,oCAOJJ,EAASzU,kDAZpBxI,MAgBMR,IAAA,gBAAN,6BAAAQ,EAAA+c,EAAAhC,GAAA3B,MAAA,SAAA4D,QAEQC,oFAAiBC,EAAKC,wBAEF,OAFpBF,EAAQG,EAAA7G,MAEC8G,OAAc,yCAChB,oCAOJJ,EAASzZ,kDAZpBxD,MAoBAR,IAAA,kBAAA,SAAUuW,GAEN,OADA5V,KAAK4V,OAASA,EAAOhR,cACd5E,QAGXX,IAAA,oBAAA,SAAYA,EAAKG,GAEb,OADAQ,KAAKiE,IAAI6O,YAAYzT,EAAKG,GACnBQ,QAaXX,IAAA,2BAAA,SAAmBic,GAEf,OAAO6B,MAAMnd,KAAKiE,IAAIf,WAAY,CAC9B0S,OAAQ5V,KAAK4V,OACbnD,KAAM1K,KAAKC,UAAUiT,EAAQmC,iBAAiB9B,IAC9C+B,QAAS,CACL,eAAgB,yBActBhe,IAAA,oBAAN,6BAAAQ,EAAA+c,EAAAhC,GAAA3B,MAAA,SAAA4D,QAEQC,EAEIzL,oFAFa8L,MAAMJ,EAAK9Y,IAAIf,WAAY,CAAC0S,OAAQmH,EAAKnH,uBACtC,OADpBkH,EAAQG,EAAA7G,MACC8G,UACL7L,EAAQnB,EAAWoN,mBACjBC,QAAS,0BAA4C/Z,OAAnBuZ,EAAK9Y,IAAIuZ,UAAU,sDAAsDV,EAASI,QAC1H7L,EAAMY,0BAEH6K,6CARXjd,SAvFG,GAkFH4B,EAlFSib,EAkFF,qBAAoB,SAAU9F,GAEjC,OAAO,IAAI8F,EAAgB9F,MCzKpB,MAAM6G,EAAN,iCAAMA,EAELC,aACR1d,KAAK0d,KAAOA,eAShBre,IAAA,6BAAA,WACI,MAAQ,GAA6BmE,OAA3BxD,KAAK0d,KAAKC,cAAc,KAA6Dna,QAAzDxD,KAAK0d,KAAKE,WAAa,GAAG1a,WAAW2a,SAAS,EAAG,KAAK,KAAsDra,OAAnDxD,KAAK0d,KAAKI,UAAU5a,WAAW2a,SAAS,EAAG,KAAK,KAAuDra,OAApDxD,KAAK0d,KAAKK,WAAW7a,WAAW2a,SAAS,EAAG,KAAK,KAAyDra,OAAtDxD,KAAK0d,KAAKM,aAAa9a,WAAW2a,SAAS,EAAG,KAAK,KAAsDra,OAAnDxD,KAAK0d,KAAKO,aAAa/a,WAAW2a,SAAS,EAAG,WANvSxe,IAAA,sBAAP,SAAqB6e,GAEjB,OAAO,IAAIT,EADA,IAAIU,KAAKD,UARb,GCOftC,OAAc,OAMVna,EANW2c,EAAG,iCAAMC,gCAEbhf,IAAA,iBAAP,SAAgBwE,GACZ,OAAOb,EAAKwI,SAAS3H,MAMlBxE,IAAA,yBAAP,SAAwBwD,GACpB,OAAOqN,EAAWoO,YAAYzb,MAG3BxD,IAAA,wBAAP,WACI6Q,EAAWqO,oBAGRlf,IAAA,0BAAP,SAAyBmf,GACrB,OAAO9B,EAAgB+B,kBAAkBD,MAGtCnf,IAAA,qBAAP,WACI,OAAOmc,EAAQkD,kBAGZrf,IAAA,4BAAP,SAA2BwE,GACvB,OAAOD,EAAc8E,eAAe7E,MASjCxE,IAAA,2BAAP,SAA0B+L,EAAQ/C,GAC9B,OAAOiC,EAASb,eAAe2B,EAAQ/C,MAMpChJ,IAAA,6BAAP,WACI,OAAO6Q,EAAWoN,wBA3CR,GAMP,YAAYG,GACnBhc,EAAA2c,EAAO,UAAU5C,GAAQ4C","sources":["node_modules/@swc/helpers/src/_async_to_generator.js","node_modules/@swc/helpers/src/_class_call_check.js","node_modules/@swc/helpers/src/_create_class.js","node_modules/@swc/helpers/src/_define_property.js","resources/library/combo/Boolean.js","resources/library/combo/Logger.js","node_modules/nanoid/index.browser.js","resources/library/combo/Html.js","resources/library/combo/FormMetaField.js","resources/library/combo/FormMetaTab.js","resources/library/combo/FormMeta.js","%3C%3Cjsx-config-pragma.js%3E%3E","bootstrap.js","resources/library/combo/ComboModal.js","node_modules/@swc/helpers/src/_type_of.js","node_modules/regenerator-runtime/runtime.js","resources/library/combo/Browser.js","resources/library/combo/DokuRequest.js","resources/library/combo/ComboDate.js","resources/library/combo/combo.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","\n\nexport default class Boolean {\n\n static toBoolean(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n return (value === 'true');\n }\n}\n","\nlet logger;\n\n// KISS for now\n// Otherwise, see https://datacadamia.com/web/javascript/logger#library\nexport default class Logger {\n\n static getLogger(){\n if(logger===undefined){\n logger = new Logger();\n }\n return logger;\n }\n\n error(value){\n console.error(value);\n /**\n * Removed by parcel when build\n * https://parceljs.org/features/production/#development-branch-removal\n * And set by Jest to test\n * https://jestjs.io/docs/environment-variables#node_env\n */\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(value);\n }\n }\n\n\n}\n","import { urlAlphabet } from './url-alphabet/index.js'\nif (process.env.NODE_ENV !== 'production') {\n if (\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative' &&\n typeof crypto === 'undefined'\n ) {\n throw new Error(\n 'React Native does not have a built-in secure random generator. ' +\n 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' +\n 'For secure IDs, import `react-native-get-random-values` ' +\n 'before Nano ID.'\n )\n }\n if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') {\n throw new Error(\n 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' +\n ' before importing Nano ID to fix IE 11 support'\n )\n }\n if (typeof crypto === 'undefined') {\n throw new Error(\n 'Your browser does not have secure random generator. ' +\n 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.'\n )\n }\n}\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, size, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * size) / alphabet.length)\n return () => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size) => customRandom(alphabet, size, random)\nlet nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array(size))\n while (size--) {\n let byte = bytes[size] & 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte < 63) {\n id += '_'\n } else {\n id += '-'\n }\n }\n return id\n}\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import {customAlphabet, nanoid} from \"nanoid\";\n\nexport default class Html {\n\n static toHtmlId(s) {\n /**\n * A point is also replaced otherwise you\n * can't use the id as selector in CSS\n */\n return s\n .toString() // in case of number\n .replace(/[_.\\s:\\/\\\\]/g, \"-\");\n }\n\n static createRandomId() {\n /**\n * Shorthand selector does not support numbers\n * as first position\n * The alphabet does not allow them then\n */\n const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10)\n return nanoid();\n }\n\n static toEntities(text) {\n let entities = [];\n for (let i = 0; i < text.length; i++) {\n let entity = `&#${text[i].charCodeAt()};`\n entities.push(entity);\n }\n return entities.join('');\n }\n}\n","import Boolean from \"./Boolean\";\nimport Logger from \"./Logger\";\nimport Html from \"./Html\";\n\n\n/**\n * A form field may hold:\n * * a simple scalar value\n * * or a table (list of values)\n */\nexport default class FormMetaField {\n\n\n tab = \"unknown\";\n mutable = true;\n values = [];\n defaultValues = [];\n multiple = false;\n\n /**\n * Static const function\n * Waiting for the const keyword\n * to make them not mutable\n * @type {string}\n */\n static TABULAR_TYPE = \"tabular\";\n static DATE_TIME = \"datetime\";\n static PARAGRAPH = \"paragraph\";\n static BOOLEAN = \"boolean\";\n\n children = {};\n static JSON = \"json\";\n\n\n constructor(name) {\n this.name = name;\n }\n\n getLabelAnchor() {\n if (this.getUrl() === undefined && this.getDescription() === undefined) {\n return this.getLabel();\n }\n let url = this.getUrl();\n if (this.getUrl() === undefined) {\n url = \"#\";\n return `\n<span class=\"d-inline-block\" tabindex=\"0\" data-bs-toggle=\"tooltip\" title=\"${this.getDescription()}\">\n <a href=\"${url}\" title=\"${this.getDescription()}\" style=\"text-decoration:none;pointer-events: none;\">${this.getLabel()}</a>\n</span>`;\n } else {\n return `<a href=\"${url}\" title=\"${this.getDescription()}\" data-bs-toggle=\"tooltip\" style=\"text-decoration:none\" target=\"_blank\">${this.getLabel()}</a>`;\n }\n }\n\n /**\n * The form field type\n * @param {string} type\n * @return {FormMetaField}\n */\n setType(type) {\n this.type = type;\n return this;\n }\n\n /**\n * The global label\n * (should be not null in case of tabular data)\n * @param {string} label\n * @return {FormMetaField}\n */\n setLabel(label) {\n this.label = label;\n return this;\n }\n\n /**\n * The global Url\n * (should be not null in case of tabular data)\n * @param {string} url\n * @return {FormMetaField}\n */\n setUrl(url) {\n this.url = url;\n return this;\n }\n\n\n /**\n * @param value\n * @param defaultValue\n * @return {FormMetaField}\n */\n addValue(value, defaultValue) {\n this.values.push(value);\n this.defaultValues.push(defaultValue);\n return this;\n }\n\n\n getType() {\n return this.type;\n }\n\n getLabel() {\n if (this.label === undefined) {\n return this.getName()\n .split(/_|-/)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n }\n return this.label;\n }\n\n getUrl() {\n return this.url;\n }\n\n getName() {\n return this.name;\n }\n\n getDescription() {\n return this.description;\n }\n\n getTab() {\n return this.tab;\n }\n\n /**\n *\n * @param json\n * @param {FormMetaField} parent\n * @return {FormMetaField}\n */\n static createFromJson(json, parent = null) {\n if (!json.hasOwnProperty(\"name\")) {\n Logger.getLogger().error(\"To create a form meta field, the name property is mandatory.\");\n }\n let name = json[\"name\"];\n let formMetaField = FormMetaField.createFromName(name);\n if (parent != null) {\n formMetaField.setParent(parent);\n }\n\n let value;\n let valueDefault;\n for (let property in json) {\n if (!json.hasOwnProperty(property)) {\n continue;\n }\n let jsonValue = json[property];\n switch (property) {\n case \"name\":\n continue;\n case \"label\":\n formMetaField.setLabel(jsonValue);\n continue;\n case \"tab\":\n formMetaField.setTab(jsonValue);\n continue;\n case \"type\":\n formMetaField.setType(jsonValue);\n continue;\n case \"mutable\":\n formMetaField.setMutable(jsonValue);\n continue;\n case \"description\":\n formMetaField.setDescription(jsonValue);\n continue;\n case \"url\":\n formMetaField.setUrl(jsonValue);\n continue;\n case \"value\":\n value = jsonValue;\n continue;\n case \"default\":\n valueDefault = jsonValue;\n continue;\n case \"domain-values\":\n formMetaField.setDomainValues(jsonValue);\n continue;\n case \"multiple\":\n formMetaField.setMultiple(jsonValue);\n continue;\n case \"width\":\n formMetaField.setControlWidth(jsonValue);\n continue;\n case \"children\":\n let jsonChildren = jsonValue;\n for (let jsonChildProp in jsonChildren) {\n if (!jsonChildren.hasOwnProperty(jsonChildProp)) {\n continue;\n }\n let child = FormMetaField.createFromJson(jsonChildren[jsonChildProp], formMetaField);\n formMetaField.addChild(child);\n }\n continue;\n default:\n Logger.getLogger().error(`The property (${property}) of the form (${name}) is unknown`);\n }\n }\n if (!Array.isArray(value)) {\n formMetaField.addValue(value, valueDefault);\n } else {\n value.forEach((element, index) => {\n let valueDefaultElement = valueDefault[index];\n if (valueDefaultElement !== undefined) {\n formMetaField.addValue(element, valueDefaultElement);\n } else {\n formMetaField.addValue(element);\n }\n })\n }\n return formMetaField;\n }\n\n setMultiple(multiple) {\n this.multiple = multiple;\n return this;\n }\n\n setParent(parent) {\n this.parent = parent;\n return this;\n }\n\n /**\n *\n * @param name\n * @return {FormMetaField}\n */\n static createFromName(name) {\n return new FormMetaField(name);\n }\n\n isMutable() {\n return this.mutable;\n }\n\n setTab(value) {\n this.tab = value;\n return this;\n }\n\n /**\n *\n * @param {boolean} value\n */\n setMutable(value) {\n this.mutable = Boolean.toBoolean(value);\n return this;\n }\n\n setDescription(value) {\n this.description = value;\n return this;\n }\n\n getDefaultValue() {\n return this.defaultValues[0];\n }\n\n getValue() {\n return this.values[0];\n }\n\n getDomainValues() {\n return this.domainValues;\n }\n\n setDomainValues(value) {\n if (!Array.isArray(value)) {\n console.error(`The domains values should be an array. (${value}) is not an array`);\n return;\n }\n this.domainValues = value;\n return this;\n }\n\n /**\n *\n * @param width - the width of the control, not of the label as it can be derived - in a tabular form, there is none, otherwise the {@link FormMetaTab.getWidth total width} of the tab minus this control width)\n * @return {FormMetaField}\n */\n setControlWidth(width) {\n this.width = width;\n return this;\n }\n\n getControlWidth() {\n if (this.width === undefined && this.parent !== undefined) {\n return 12 / this.parent.getChildren().length;\n }\n return this.width;\n }\n\n getValues() {\n return this.values;\n }\n\n getDefaultValues() {\n return this.defaultValues;\n }\n\n /**\n *\n * @return {FormMetaField[]}\n *\n * See also the concept of list of objects\n * https://react-jsonschema-form.readthedocs.io/en/latest/usage/arrays/#arrays-of-objects\n *\n */\n getChildren() {\n return Object.values(this.children);\n }\n\n addChild(child) {\n this.children[child.getName()] = child;\n return this;\n }\n\n toHtmlLabel(forId, customClass) {\n let label = this.getLabelAnchor();\n let classLabel = \"\";\n if (this.getType() === FormMetaField.BOOLEAN) {\n classLabel = \"form-check-label\"\n } else {\n classLabel = \"col-form-label\";\n }\n if(typeof customClass !== 'undefined'){\n classLabel =`${customClass} ${classLabel}`\n }\n return `<label for=\"${forId}\" class=\"${classLabel}\">${label}</label>`\n }\n\n toHtmlControl(id, value = null, defaultValue = null) {\n\n let metadataType = this.getType();\n let mutable = this.isMutable();\n let domainValues = this.getDomainValues();\n let disabled;\n let htmlElement;\n\n /**\n * The creation of the form element\n */\n if (domainValues !== undefined) {\n\n /**\n * Select element\n * @type {string}\n */\n htmlElement = \"select\";\n let defaultValueHtml = \"\";\n if (defaultValue !== undefined) {\n defaultValueHtml = ` (${defaultValue})`;\n }\n\n let multiple = \"\";\n if (this.getMultiple()) {\n multiple = \"multiple\";\n }\n\n htmlElement = `<select class=\"form-select\" aria-label=\"${this.getLabel()}\" name=\"${this.getName()}\" id=\"${id}\" ${multiple}>`;\n let selected = \"\";\n if (value === null) {\n selected = \"selected\";\n }\n htmlElement += `<option value=\"\" ${selected}>Default${defaultValueHtml}</option>`;\n for (let selectValue of domainValues) {\n if (selectValue === value) {\n selected = \"selected\";\n } else {\n selected = \"\";\n }\n htmlElement += `<option value=\"${selectValue}\" ${selected}>${selectValue}</option>`;\n }\n htmlElement += `</select>`;\n return htmlElement;\n\n\n } else {\n\n /**\n * Placeholder default\n * @type {string}\n */\n let placeholderValue = `No value`;\n if (mutable) {\n placeholderValue = `Enter a ${this.getLabel()}`;\n }\n // value\n if (!(defaultValue === null || defaultValue === undefined)) {\n if (typeof defaultValue === 'string' || defaultValue instanceof String) {\n // json data for instance\n placeholderValue = Html.toEntities(defaultValue);\n } else {\n placeholderValue = defaultValue;\n }\n }\n let htmlPlaceholder = `placeholder=\"${placeholderValue}\"`;\n\n let htmlValue = \"\";\n let inputType;\n let name = this.getName();\n\n /**\n * With disable, the data is not in the form\n */\n if (mutable !== undefined && mutable === false) {\n disabled = \"disabled\";\n } else {\n disabled = \"\";\n }\n\n /**\n * Input Element\n * @type {string}\n */\n let htmlTag = \"input\";\n let htmlClass = \"form-control\";\n let checked = \"\";\n /**\n * Text area\n */\n let rows = 3;\n\n /**\n * Type ?\n */\n switch (metadataType) {\n case FormMetaField.DATE_TIME:\n inputType = \"datetime-local\";\n if (value !== null) {\n value = value.slice(0, 19);\n htmlValue = `value=\"${value}\"`;\n } else {\n if (!mutable && defaultValue !== null) {\n defaultValue = defaultValue.slice(0, 19);\n htmlValue = `value=\"${defaultValue}\"`;\n }\n }\n htmlPlaceholder = \"\"; // does not apply to local date time\n\n break;\n case FormMetaField.PARAGRAPH:\n htmlTag = \"textarea\";\n if (value !== null) {\n value = Html.toEntities(value);\n htmlValue = `${value}`;\n }\n break;\n case FormMetaField.JSON:\n htmlTag = \"textarea\";\n if (value !== null) {\n if(typeof value === 'object'){\n value = JSON.stringify(value, null, 2);\n }\n value = Html.toEntities(value);\n htmlValue = `${value}`;\n }\n rows = 15;\n break;\n case FormMetaField.BOOLEAN:\n inputType = \"checkbox\";\n htmlClass = \"form-check-input\";\n if (defaultValue !== null) {\n htmlValue = `value=\"${defaultValue}\"`;\n if (value === defaultValue) {\n checked = \"checked\"\n }\n } else {\n if (value === \"on\") {\n checked = \"checked\"\n }\n }\n\n htmlPlaceholder = \"\";\n break;\n default:\n inputType = \"text\";\n if (!(value === null || value === undefined)) {\n htmlValue = `value=\"${value}\"`;\n }\n }\n\n switch (htmlTag) {\n case \"textarea\":\n htmlElement = `<textarea id=\"${id}\" name=\"${name}\" class=\"${htmlClass}\" rows=\"${rows}\" ${htmlPlaceholder} ${disabled}>${htmlValue}</textarea>`;\n break;\n default:\n case \"input\":\n htmlElement = `<input type=\"${inputType}\" name=\"${name}\" class=\"${htmlClass}\" id=\"${id}\" ${htmlPlaceholder} ${htmlValue} ${checked} ${disabled}/>`;\n break;\n\n }\n return htmlElement;\n }\n\n }\n\n /**\n * Added to be able to add metadata to the returned Json Form\n * It has not yet all properties\n * @return\n */\n toJavascriptObject() {\n return {\n \"name\": this.getName(),\n \"label\": this.getLabel(),\n \"type\": this.getType(),\n \"description\": this.getDescription(),\n \"tab\": this.getTab(),\n \"mutable\": this.isMutable(),\n \"value\": this.getValue(),\n \"default\": this.getDefaultValue(),\n \"url\": this.getUrl()\n }\n }\n\n getMultiple() {\n return this.multiple;\n }\n}\n","import Logger from \"./Logger\";\n\n\nexport default class FormMetaTab {\n\n\n constructor(name) {\n this.name = name;\n }\n\n getName() {\n return this.name;\n }\n\n setWidth(width) {\n this.width = width;\n }\n\n /**\n * The width of the tab\n */\n getWidth() {\n return this.width;\n }\n\n static createFromJson(json) {\n if (!json.hasOwnProperty(\"name\")) {\n Logger.getLogger().error(\"A name property is mandatory to create a tab and was not found in the json provided\")\n }\n let name = json[\"name\"];\n let tab = new FormMetaTab(name);\n for (let property in json) {\n if (!json.hasOwnProperty(property)) {\n continue;\n }\n let jsonValue = json[property];\n switch (property) {\n case \"name\":\n continue;\n case \"label\":\n tab.setLabel(jsonValue);\n continue;\n case \"width-field\":\n tab.setWidthField(jsonValue);\n continue;\n case \"width-label\":\n tab.setWidthLabel(jsonValue);\n continue;\n default:\n Logger.getLogger().error(`The property (${property}) of the tab (${name}) is unknown`);\n }\n }\n return tab;\n }\n\n setLabel(label) {\n this.label = label;\n return this;\n }\n\n getLabel(){\n if(this.label===undefined){\n return this.name;\n }\n return this.label;\n }\n\n setWidthField(width) {\n this.widthField = width;\n return this;\n }\n\n setWidthLabel(width) {\n this.widthLabel = width;\n return this;\n }\n\n getLabelWidth(){\n if(this.widthLabel===undefined){\n return 3;\n }\n return this.widthLabel;\n }\n\n getFieldWidth(){\n if(this.widthField===undefined){\n return 12 - this.getLabelWidth();\n }\n return this.widthField;\n }\n\n static createFromName(name) {\n return new FormMetaTab(name);\n }\n}\n","'use strict';\n\nimport FormMetaField from \"./FormMetaField\";\nimport FormMetaTab from \"./FormMetaTab\";\nimport Html from \"./Html\";\nimport Logger from \"./Logger\";\n\n/**\n * Represent the top meta\n * data from a form\n */\nexport default class FormMeta {\n\n formFields = {};\n tabs = {};\n width = 8;\n\n\n constructor(id) {\n\n if (id == null) {\n throw new Error(\"The if of the form should not be null\");\n }\n this.name = id;\n }\n\n /**\n * @return string\n */\n getLabel() {\n return this.label;\n }\n\n getUrl() {\n return this.url;\n }\n\n getId() {\n return this.name;\n }\n\n /**\n * The width of the control\n * if there is no tab\n * @return {number|*}\n */\n getControlWidth() {\n return this.width;\n }\n\n getLabelWidth() {\n return 12 - this.getControlWidth();\n }\n\n\n /**\n *\n * @param {string} formId\n * @param {Object} json\n * @return {FormMeta}\n */\n static createFromJson(formId, json) {\n let form = FormMeta.createFromId(formId);\n for (let prop in json) {\n if (!json.hasOwnProperty(prop)) {\n continue;\n }\n let value = json[prop];\n switch (prop) {\n case \"fields\":\n let fields = value;\n for (let field in fields) {\n if (fields.hasOwnProperty(field)) {\n form.addFormField(FormMetaField.createFromJson(fields[field]));\n }\n }\n continue;\n case \"tabs\":\n let tabs = value;\n for (let tab in tabs) {\n if (tabs.hasOwnProperty(tab)) {\n form.addTab(FormMetaTab.createFromJson(tabs[tab]));\n }\n }\n break;\n case \"width\":\n form.setControlWidth(value);\n break;\n case \"label\":\n form.setLabel(value);\n break;\n case \"url\":\n form.setUrl(value);\n break;\n default:\n Logger.getLogger().error(`The form property (${prop}) is unknown`);\n }\n\n\n }\n return form;\n }\n\n /**\n *\n * @param id\n * @return {FormMeta}\n */\n static createFromId(id) {\n return new FormMeta(id);\n }\n\n /**\n *\n * @param {FormMetaField} formField\n * @return {FormMeta}\n */\n addFormField(formField) {\n this.formFields[formField.getName()] = formField;\n // Be sure to have a tab for each field\n if (!this.tabs.hasOwnProperty(formField.getTab())) {\n this.tabs[formField.getTab()] = FormMetaTab.createFromName(formField.getTab());\n }\n return this;\n }\n\n /**\n *\n * @return {FormMetaField[]}\n */\n getFields() {\n return Object.values(this.formFields);\n }\n\n /**\n *\n * @return {FormMetaTab[]}\n */\n getTabs() {\n return Object.values(this.tabs);\n }\n\n addTab(formMetaTab) {\n this.tabs[formMetaTab.getName()] = formMetaTab;\n }\n\n valueOf() {\n return this.getId();\n };\n\n getFieldsForTab(tabName) {\n return this.getFields().filter(e => e.getTab() === tabName);\n }\n\n toHtmlElement() {\n\n let formId = this.getId();\n\n /**\n * Creating the Body\n * (Starting with the tabs)\n */\n let htmlTabNavs = '<ul class=\"nav nav-tabs mb-3\">';\n let activeClass;\n let ariaSelected;\n /**\n * @param {FormMetaTab} tab\n * @return string\n */\n this.getTabPaneId = function (tab) {\n let htmlId = Html.toHtmlId(tab.getName());\n return `${formId}-tab-pane-${htmlId}`;\n }\n /**\n * @param {FormMetaTab} tab\n * @return string\n */\n this.getTabNavId = function (/** @type {FormMetaTab}*/ tab) {\n let htmlId = Html.toHtmlId(tab.getName());\n return `${formId}-tab-nav-${htmlId}`;\n }\n this.getControlId = function (id) {\n let htmlId = Html.toHtmlId(id);\n return `${formId}-control-${htmlId}`;\n }\n let tabsMeta = this.getTabs();\n let defaultTab = tabsMeta[0];\n for (let tab of tabsMeta) {\n if (Object.is(tab, defaultTab)) {\n activeClass = \"active\";\n ariaSelected = \"true\";\n } else {\n activeClass = \"\";\n ariaSelected = \"false\";\n }\n let tabLabel = tab.getLabel();\n let tabPanId = this.getTabPaneId(tab);\n let tabNavId = this.getTabNavId(tab);\n htmlTabNavs += `\n<li class=\"nav-item\">\n<button\n class=\"nav-link ${activeClass}\"\n id=\"${tabNavId}\"\n type=\"button\"\n role=\"tab\"\n aria-selected = \"${ariaSelected}\"\n aria-controls = \"${tabPanId}\"\n data-bs-toggle = \"tab\"\n data-bs-target = \"#${tabPanId}\" >${tabLabel}\n </button>\n</li>`\n }\n htmlTabNavs += '</ul>';\n\n /**\n * Creating the content\n * @type {string}\n */\n let htmlTabPans = \"<div class=\\\"tab-content\\\">\";\n let rightColSize;\n let leftColSize;\n let elementIdCounter = 0;\n for (let tab of tabsMeta) {\n let tabPaneId = this.getTabPaneId(tab);\n let tabNavId = this.getTabNavId(tab);\n if (tab === defaultTab) {\n activeClass = \"active\";\n } else {\n activeClass = \"\";\n }\n htmlTabPans += `<div class=\"tab-pane ${activeClass}\" id=\"${tabPaneId}\" role=\"tabpanel\" aria-labelledby=\"${tabNavId}\">`;\n leftColSize = tab.getLabelWidth();\n rightColSize = tab.getFieldWidth();\n\n let fieldsForTab = this.getFieldsForTab(tab.getName());\n\n /**\n * Case one field without children\n * It should take the whole space\n */\n if (fieldsForTab.length === 1) {\n let formField = fieldsForTab[0];\n if (formField.getChildren().length === 0) {\n elementIdCounter++;\n let elementId = this.getControlId(elementIdCounter);\n let labelHtml = formField.toHtmlLabel(elementId);\n let value = formField.getValue();\n let defaultValue = formField.getDefaultValue();\n let controlHtml = formField.toHtmlControl(elementId, value, defaultValue)\n htmlTabPans += `\n<div class=\"row mb-3 text-center\"><div class=\"col-sm-12\">${labelHtml}</div></div>\n<div class=\"row mb-3\"><div class=\"col-sm-12\">${controlHtml}</div></div>\n`;\n htmlTabPans += \"</div>\"; // close the pan\n continue;\n }\n\n }\n\n for (let formField of fieldsForTab) {\n\n let children = formField.getChildren();\n switch (children.length) {\n case 0:\n elementIdCounter++;\n let elementId = this.getControlId(elementIdCounter);\n let labelHtml = formField.toHtmlLabel(elementId, `col-sm-${leftColSize}`);\n let value = formField.getValue();\n let defaultValue = formField.getDefaultValue();\n let controlHtml = formField.toHtmlControl(elementId, value, defaultValue)\n htmlTabPans += `\n<div class=\"row mb-3\">\n ${labelHtml}\n <div class=\"col-sm-${rightColSize}\">${controlHtml}</div>\n</div>\n`;\n break;\n default:\n let url = formField.getLabelAnchor();\n htmlTabPans += `<div class=\"row mb-3 text-center\">${url}</div>`;\n htmlTabPans += `<div class=\"row mb-3\">`;\n let rows = 0;\n for (const child of formField.getChildren()) {\n let width = child.getControlWidth();\n htmlTabPans += `<div class=\"col-sm-${width} text-center\">`;\n htmlTabPans += child.getLabelAnchor();\n htmlTabPans += `</div>`;\n let valuesLength = child.getValues().length;\n if (valuesLength > rows) {\n rows = valuesLength;\n }\n }\n htmlTabPans += `</div>`;\n\n for (let i = 0; i < rows; i++) {\n htmlTabPans += `<div class=\"row mb-3\">`;\n for (const child of formField.getChildren()) {\n let value = child.getValues()[i];\n let defaultValue = child.getDefaultValues()[i];\n elementIdCounter++;\n let elementId = this.getControlId(elementIdCounter);\n let width = child.getControlWidth();\n htmlTabPans += `<div class=\"col-sm-${width}\">`;\n htmlTabPans += child.toHtmlControl(elementId, value, defaultValue);\n htmlTabPans += `</div>`;\n }\n htmlTabPans += `</div>`;\n }\n\n break;\n\n }\n\n }\n htmlTabPans += \"</div>\";\n }\n htmlTabPans += \"</div>\";\n\n let form = document.createElement(\"form\");\n form.setAttribute(\"id\", formId);\n form.innerHTML = `${htmlTabNavs} ${htmlTabPans}`;\n return form;\n }\n\n\n setControlWidth(width) {\n this.width = width;\n return this;\n }\n\n setLabel(label) {\n this.label = label;\n }\n\n setUrl(url) {\n this.url = url;\n }\n\n}\n",null,"module.exports=bootstrap;","/**\n * A pointer to the created modals\n * Private\n */\nimport Html from \"./Html\";\nimport {Modal, Tooltip, Tab} from \"bootstrap\";\nimport Logger from \"./Logger\";\n\n/**\n *\n * @type {Object.<string, ComboModal>}\n */\nlet comboModals = {};\n\nexport default class ComboModal {\n\n\n footerButtons = [];\n bodies = [];\n isBuild = false;\n bodyStyles = {};\n dialogStyles = {};\n showFooter = true;\n dialogClasses = [];\n\n /**\n * A valid HTML id\n * @param modalId\n */\n constructor(modalId) {\n\n this.modalId = modalId;\n /**\n * We create the modal root because developers may want to add\n * event on it right away\n * @type {HTMLDivElement}\n */\n let queryElement = document.getElementById(modalId);\n if (queryElement !== null) {\n Logger.getLogger().error(`The id (${modalId}) given to create a modal was already used by an element in the DOM. We have reused it.`)\n this.modalRootHtmlElement = queryElement;\n this.reset();\n } else {\n this.modalRootHtmlElement = document.createElement(\"div\");\n this.modalRootHtmlElement.setAttribute(\"id\", this.modalId);\n this.modalRootHtmlElement.classList.add(\"modal\", \"fade\");\n // Uncaught RangeError: Maximum call stack size exceeded caused by the tabindex\n // modalRoot.setAttribute(\"tabindex\", \"-1\");\n this.modalRootHtmlElement.setAttribute(\"aria-hidden\", \"true\");\n }\n\n }\n\n setHeader(headerText) {\n this.headerText = headerText;\n return this;\n }\n\n /**\n * @param htmlBody\n * @return {ComboModal}\n */\n addBody(htmlBody) {\n\n this.bodies.push(htmlBody);\n return this;\n\n }\n\n addBodyStyle(property, value) {\n\n this.bodyStyles[property] = value;\n return this;\n\n }\n\n noFooter() {\n this.showFooter = false;\n return this;\n }\n\n addDialogStyle(property, value) {\n\n this.dialogStyles[property] = value;\n return this;\n\n }\n\n addDialogClass(value) {\n\n this.dialogClasses.push(value);\n return this;\n\n }\n\n /**\n * @return {ComboModal}\n */\n resetOnClose() {\n this.isResetOnClose = true;\n return this;\n }\n\n\n /**\n *\n * @type HTMLButtonElement|string htmlFooter\n */\n addFooterButton(htmlFooter) {\n\n this.footerButtons.push(htmlFooter);\n return this;\n }\n\n /**\n *\n * @return HTMLButtonElement the close button\n */\n addFooterCloseButton(label = \"Close\") {\n this.closeButton = document.createElement(\"button\");\n this.closeButton.classList.add(\"btn\", \"btn-secondary\")\n this.closeButton.innerHTML = label;\n let modal = this;\n this.closeButton.addEventListener(\"click\", function () {\n modal.bootStrapModal.hide();\n });\n this.addFooterButton(this.closeButton);\n return this;\n }\n\n /**\n * Center the modal\n * @return {ComboModal}\n */\n centered() {\n this.isCentered = true;\n return this;\n }\n\n show() {\n\n if (this.modalRootHtmlElement == null) {\n throw new Error(\"This modal has no HTML element, you can't use it anymore\");\n }\n\n if (!this.isBuild) {\n this.build();\n }\n\n /**\n * Reset on close ?\n * Included tabs does not work anymore\n * for whatever reason\n */\n if (this.isResetOnClose === true) {\n let comboModal = this;\n this.getElement().addEventListener('hidden.bs.modal', function () {\n /**\n * the event is only dispatch on the root element, not all modal\n */\n comboModal.reset();\n });\n }\n\n /**\n * Callback (Parent Child Relationship)\n */\n if (this.callBack !== undefined) {\n if (this.closeButton !== undefined) {\n let modal = this;\n this.closeButton.addEventListener(\"click\", function () {\n /**\n * Two modals cannot be open at the same time\n * https://getbootstrap.com/docs/5.0/components/modal/#toggle-between-modals\n */\n modal.dismissHide();\n modal.callBack();\n });\n }\n }\n\n this.bootStrapModal.show();\n\n\n }\n\n dismissHide() {\n if (this.bootStrapModal !== undefined) {\n this.bootStrapModal.hide();\n }\n }\n\n getModalId() {\n return this.modalId;\n }\n\n /**\n *\n * @param {function} callBack\n */\n setCallBackOnClose(callBack) {\n this.callBack = callBack;\n return this;\n }\n\n\n /**\n * Create a modal and return the modal content element\n * @return ComboModal\n */\n static createFromId(modalId) {\n let modal = new ComboModal(modalId);\n comboModals[modalId] = modal;\n return modal;\n }\n\n /**\n * @param modalId\n * @return {ComboModal}\n */\n static getModal = function (modalId) {\n\n if (modalId in comboModals) {\n return comboModals[modalId];\n } else {\n return null;\n }\n }\n\n /**\n * List the managed modals\n */\n static listModals = function () {\n console.log(Object.keys(comboModals).join(\", \"));\n }\n\n /**\n * Delete all modals\n */\n static resetAllModals = function () {\n for (let prop in comboModals) {\n if (comboModals.hasOwnProperty(prop)) {\n let modal = comboModals[prop];\n modal.reset();\n }\n }\n }\n\n /**\n *\n * @return {ComboModal}\n */\n static createTemporary() {\n return this.createFromId(Html.createRandomId());\n }\n\n getElement() {\n return this.modalRootHtmlElement;\n }\n\n /**\n * Calling the {@link show} function will build the\n * modal, if this is the case, you can't build it anymore\n * you need to {@link reset} it and recreate it if needed\n * @return {boolean}\n */\n wasBuild() {\n return this.isBuild;\n }\n\n setCentered(bool){\n this.isCentered = bool;\n return this;\n }\n resetIfBuild() {\n if (this.wasBuild()) {\n this.reset();\n }\n return this;\n }\n\n reset() {\n\n // DOM\n this.modalRootHtmlElement.querySelectorAll('[data-bs-toggle=\"tab\"]').forEach(tabTriggerElement => {\n let tab = Tab.getInstance(tabTriggerElement);\n if (tab !== null) {\n // tab are only created when the user click on them\n tab.dispose();\n }\n })\n\n /**\n * Bootstrap Modal\n * dispose should delete the root element\n * but it does not\n */\n if (this.bootStrapModal !== undefined) {\n this.dismissHide();\n }\n this.modalRootHtmlElement.innerHTML = \"\";\n\n /**\n * Content\n */\n this.isBuild = false;\n this.bodies = [];\n this.footerButtons = [];\n this.headerText = undefined;\n }\n\n /**\n * Build the modal\n */\n build() {\n\n this.isBuild = true;\n\n document.body.appendChild(this.modalRootHtmlElement);\n\n const modalManagerDialog = document.createElement(\"div\");\n modalManagerDialog.classList.add(\n \"modal-dialog\",\n \"modal-dialog-scrollable\",\n \"modal-lg\");\n if (this.isCentered) {\n modalManagerDialog.classList.add(\"modal-dialog-centered\")\n } else {\n // Get the modal more central but fix as we have tab and\n // we want still the mouse below the tab to be at the same position when we click\n modalManagerDialog.style.setProperty(\"margin\", \"5rem auto\");\n modalManagerDialog.style.setProperty(\"height\", \"calc(100% - 9rem)\");\n }\n for (let dialogStyleName in this.dialogStyles) {\n if (!this.dialogStyles.hasOwnProperty(dialogStyleName)) {\n continue;\n }\n modalManagerDialog.style.setProperty(dialogStyleName, this.dialogStyles[dialogStyleName]);\n }\n for (let dialogClass in this.dialogClasses){\n modalManagerDialog.classList.add(dialogClass);\n }\n this.modalRootHtmlElement.appendChild(modalManagerDialog);\n this.modalContent = document.createElement(\"div\");\n this.modalContent.classList.add(\"modal-content\");\n modalManagerDialog.appendChild(this.modalContent);\n\n this.modalBody = document.createElement(\"div\");\n this.modalBody.classList.add(\"modal-body\");\n for (let bodyStyleName in this.bodyStyles) {\n if (!this.bodyStyles.hasOwnProperty(bodyStyleName)) {\n continue;\n }\n this.modalBody.style.setProperty(bodyStyleName, this.bodyStyles[bodyStyleName]);\n }\n this.modalContent.appendChild(this.modalBody);\n\n\n /**\n * No need to use the global variable access mode (ie `bootstrap.Modal`)\n * It's created at build time\n * @type {Modal}\n */\n this.bootStrapModal = Modal.getInstance(this.modalRootHtmlElement);\n if (this.bootStrapModal === null) {\n /**\n * The bootstrap modal function\n * can only be invoked when the body element has been defined\n */\n let options = {\n \"backdrop\": true,\n \"keyboard\": true,\n \"focus\": true\n };\n this.bootStrapModal = new Modal(this.modalRootHtmlElement, options);\n }\n\n /**\n * Building the header\n */\n if (this.headerText !== undefined) {\n let headerHtml = `\n<div class=\"modal-header\">\n <h5 class=\"modal-title\">${this.headerText}</h5>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\n</div>\n`;\n this.modalContent.insertAdjacentHTML('afterbegin', headerHtml);\n }\n\n /**\n * Building the body\n */\n for (let body of this.bodies) {\n let type = typeof body;\n switch (type) {\n case \"string\":\n this.modalBody.insertAdjacentHTML('beforeend', body);\n break;\n default:\n case \"object\":\n this.modalBody.appendChild(body);\n break;\n }\n }\n\n /**\n * Footer button\n */\n if(this.showFooter) {\n let modalFooter = document.createElement(\"div\");\n modalFooter.classList.add(\"modal-footer\");\n this.modalContent.appendChild(modalFooter);\n\n if (this.footerButtons.length === 0) {\n this.addFooterCloseButton();\n }\n\n for (let footerButton of this.footerButtons) {\n if (typeof footerButton === 'string' || footerButton instanceof String) {\n modalFooter.insertAdjacentHTML('beforeend', footerButton);\n } else {\n modalFooter.appendChild(footerButton);\n }\n }\n }\n\n /**\n * Init the tooltip if any\n */\n let tooltipSelector = `#${this.modalId} [data-bs-toggle=\"tooltip\"]`;\n document.querySelectorAll(tooltipSelector).forEach(el => new Tooltip(el));\n }\n\n\n static getOrCreate(modalId) {\n let modal = ComboModal.getModal(modalId);\n if (modal === null) {\n modal = ComboModal.createFromId(modalId);\n }\n return modal;\n }\n}\n","export default function _typeof(obj) {\n \"@swc/helpers - typeof\";\n return obj && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","\n\nexport default class Browser {\n\n\n /**\n *\n * @param element\n * @return {boolean}\n */\n static hasWindowGuard(element) {\n if(!this.hasWindow(element)) {\n throw Error(\"The element has no window\")\n }\n }\n\n static hasWindow(element) {\n return !(!element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView);\n }\n\n static getWindow(element){\n this.hasWindowGuard(element);\n return element.ownerDocument.defaultView\n }\n\n static formDataToObject(formData){\n let obj = {};\n for (let entry of formData) {\n let name = entry[0];\n let value = entry[1];\n if(obj.hasOwnProperty(name)){\n let actualValue = obj[name];\n if(Array.isArray(actualValue)){\n obj[name].push(value);\n } else {\n obj[name] = [actualValue,value];\n }\n } else {\n obj[name] = value\n }\n }\n return obj;\n }\n\n}\n","/* global JSINFO */\n\n/* global DOKU_BASE */\n\nimport ComboModal from \"./ComboModal\";\nimport Browser from \"./Browser\";\n\nexport class DokuUrl {\n\n static AJAX = \"AJAX\";\n static RUNNER = \"RUNNER\";\n static CALL = \"call\";\n static EDIT = \"edit\";\n static SHOW = 'show';\n static FETCH = 'fetch';\n\n constructor(type) {\n switch (type) {\n case DokuUrl.AJAX:\n this.url = new URL(DOKU_BASE + 'lib/exe/ajax.php', window.location.href);\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n case DokuUrl.RUNNER:\n this.url = new URL(DOKU_BASE + 'lib/exe/taskrunner.php', window.location.href);\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n case DokuUrl.FETCH:\n this.url = new URL(DOKU_BASE + 'lib/exe/fetch.php', window.location.href);\n break;\n case DokuUrl.EDIT:\n this.url = new URL(DOKU_BASE + 'doku.php', window.location.href);\n this.url.searchParams.set(\"do\", \"edit\");\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n case DokuUrl.SHOW:\n this.url = new URL(DOKU_BASE + 'doku.php', window.location.href);\n this.url.searchParams.set(\"id\", JSINFO.id);\n break;\n }\n\n }\n\n setProperty(key, value) {\n this.url.searchParams.set(key, value);\n return this;\n }\n\n toString() {\n return this.url.toString();\n }\n\n getCall() {\n return this.url.searchParams.get(DokuUrl.CALL);\n }\n\n static createAjax(call) {\n return (new DokuUrl(this.AJAX))\n .setProperty(DokuUrl.CALL, call);\n }\n\n static createRunner() {\n return new DokuUrl(this.RUNNER);\n }\n\n static createFetch(id, drive) {\n let dokuUrl = new DokuUrl(this.FETCH);\n if (typeof id === 'undefined') {\n throw new Error(\"The media id is mandatory\")\n }\n dokuUrl.setProperty(\"media\", id);\n if (typeof drive !== 'undefined') {\n dokuUrl.setProperty(\"drive\", drive);\n }\n return dokuUrl;\n }\n\n static createEdit(id) {\n let dokuUrl = new DokuUrl(this.EDIT);\n if (typeof id !== 'undefined') {\n dokuUrl.setProperty(\"id\", id);\n }\n return dokuUrl;\n }\n}\n\nexport class DokuAjaxRequest {\n\n\n method = \"GET\";\n\n constructor(call) {\n\n this.url = DokuUrl.createAjax(call);\n\n }\n\n async getJson() {\n\n let response = await this.getResponse()\n\n if (response.status !== 200) {\n return {};\n }\n\n // Parses response data to JSON\n // * response.json()\n // * response.text()\n // are promise, you need to pass them to a callback to get the value\n return response.json();\n\n }\n\n async getText() {\n\n let response = await this.getResponse();\n\n if (response.status !== 200) {\n return \"\";\n }\n\n // Parses response data to JSON\n // * response.json()\n // * response.text()\n // are promise, you need to pass them to a callback to get the value\n return response.text();\n\n }\n\n /**\n * @param {string} method\n * @return {DokuAjaxRequest}\n */\n setMethod(method) {\n this.method = method.toUpperCase();\n return this;\n }\n\n setProperty(key, value) {\n this.url.setProperty(key, value);\n return this;\n }\n\n /**\n *\n * @param formData\n * @return {Promise<Response>}\n *\n * We don't send a multipart-form-data\n * because php does not support them\n * natively if the name of the input are\n * not suffixed with `[]` (shame)\n */\n sendFormDataAsJson(formData) {\n\n return fetch(this.url.toString(), {\n method: this.method,\n body: JSON.stringify(Browser.formDataToObject(formData)),\n headers: {\n 'Content-Type': 'application/json'\n },\n });\n }\n\n /**\n * Create a ajax call\n * @return DokuAjaxRequest\n */\n static createDokuRequest = function (call) {\n\n return new DokuAjaxRequest(call);\n }\n\n async getResponse() {\n\n let response = await fetch(this.url.toString(), {method: this.method});\n if (response.status !== 200) {\n let modal = ComboModal.createTemporary()\n modal.addBody(`Bad request: the call ${this.url.getCall()} to the backend sends back the following exit code` + response.status)\n modal.show();\n }\n return response;\n }\n}\n","export default class ComboDate {\n\n constructor(date) {\n this.date = date;\n }\n\n\n static createFromIso(isoString) {\n let date = new Date(isoString);\n return new ComboDate(date)\n }\n\n toSqlTimestampString() {\n return `${this.date.getFullYear()}-${(this.date.getMonth() + 1).toString().padStart(2, '0')}-${this.date.getDate().toString().padStart(2, '0')} ${this.date.getHours().toString().padStart(2, '0')}:${this.date.getMinutes().toString().padStart(2, '0')}:${this.date.getSeconds().toString().padStart(2, '0')}`;\n }\n\n\n}\n","import FormMeta from \"./FormMeta\";\nimport Html from \"./Html\";\nimport ComboModal from \"./ComboModal\";\nimport {DokuAjaxRequest, DokuUrl} from \"./DokuRequest\";\nimport FormMetaField from \"./FormMetaField\";\nimport ComboDate from \"./ComboDate\";\n\nwindow['combo'] = class combo {\n\n static toHtmlId(name) {\n return Html.toHtmlId(name)\n }\n\n static comboDate = ComboDate;\n static DokuUrl = DokuUrl;\n\n static getOrCreateModal(id) {\n return ComboModal.getOrCreate(id);\n }\n\n static removeAllModals() {\n ComboModal.resetAllModals();\n }\n\n static createDokuRequest(callName) {\n return DokuAjaxRequest.createDokuRequest(callName);\n }\n\n static getRunnerUrl() {\n return DokuUrl.createRunner();\n }\n\n static createFormMetaField(name) {\n return FormMetaField.createFromName(name);\n }\n\n /**\n *\n * @param formId\n * @param json\n * @return {FormMeta}\n */\n static createFormFromJson(formId, json) {\n return FormMeta.createFromJson(formId, json);\n }\n\n /**\n * @return {ComboModal}\n */\n static createTemporaryModal() {\n return ComboModal.createTemporary();\n }\n\n}\n\n"],"names":["$dfa183d8cc942563$var$asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","$dfa183d8cc942563$export$2e2bcd8739ae039","fn","self","this","args","arguments","apply","err","undefined","$b07b5082a7b10ea2$export$2e2bcd8739ae039","instance","Constructor","TypeError","$e5f9bd0c37e9914c$var$_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","$e5f9bd0c37e9914c$export$2e2bcd8739ae039","protoProps","staticProps","prototype","$7dbcf7086e8d10dc$export$2e2bcd8739ae039","obj","$81336ccb420cf272$var$logger","$714074a4fb796cc0$export$2e2bcd8739ae039","$81336ccb420cf272$export$2e2bcd8739ae039","console","$8069ef7e6126e429$export$4385e60b38654f68","bytes","crypto","getRandomValues","Uint8Array","$8069ef7e6126e429$export$62e99e5c9f473d7f","alphabet","size","getRandom","mask","Math","log","LN2","step","id","j","$8069ef7e6126e429$export$a5cee9e955 (…)
/plugin/findologicxmlexport/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/
H A Dbootstrap.min.css5 …sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-
/plugin/amcharts/assets/amcharts/plugins/export/libs/pdfmake/
H A Dpdfmake.js30135 var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;
30136 alphabet = 'abcdefghijklmnopqrstuvwxyz';
30137 length = alphabet.length;
30143 index = alphabet.indexOf(last.toLowerCase());
30148 next = alphabet.charAt((index + 1) % length);
H A Dpdfmake.min.js.map1alphabet","carry","isUpperCase","revision","checkSumAdjustment","magicNumber","created","modified"…
/plugin/passpolicy/
H A D10k-common-passwords.txt4951 alphabet
/plugin/pgn4web/pgn4web/
H A Dpgn-standard.txt694 using the ASCII Latin alphabet.
/plugin/tuxquote/
H A Dquotes.txt821 …d either by 'k' or 's', and likewise 'x' would no longer be part of the alphabet. The only kase in…
1250 If you wish to learn the highest truths, begin with the alphabet. <BR> -- Japanese proverb
3979 Why is the alphabet in that order? Is it because of that song?
/plugin/codemirror/dist/keymaps/
H A Dvim.min.js.map1 …rue if punctuation count as part of the word.\n * False if only alphabet characters count …
/plugin/xlsx2dw/packages/exceljs/
H A Dexceljs.js41796 var alphabet = 'abcdefghijklmnopqrst';
41798 alphabet.split('').forEach(function (chr) { B[chr] = chr; });
41799 return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;