Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/switcher/dist/ |
Upload File : |
{"version":3,"file":"ui.switcher.bundle.js","sources":["../src/air-switcher-style.js","../src/ui.switcher.js"],"sourcesContent":["export const AirSwitcherStyle = Object.freeze({\n\tSOLID: 'SOLID',\n\tTINTED: 'TINTED',\n});\n","import { bind, Dom, Loc, onCustomEvent, Tag, Type } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport 'ui.design-tokens';\nimport 'ui.design-tokens.air';\n\nimport { AirSwitcherStyle } from './air-switcher-style';\nimport './css/style.css';\nimport './css/air.css';\n\n/*\n* extraLarge, large, extraExtraSmall options supported only by the air button\n* */\nexport const SwitcherSize = Object.freeze({\n\textraLarge: 'extra-large',\n\tlarge: 'large',\n\tmedium: 'medium',\n\tsmall: 'small',\n\textraSmall: 'extra-small',\n\textraExtraSmall: 'extra-extra-small',\n});\n\nexport const SwitcherColor = Object.freeze({\n\tprimary: 'primary',\n\tgreen: 'green',\n});\n\nexport { AirSwitcherStyle } from './air-switcher-style';\n\nexport type SwitcherOptions = {\n\tattributeName: string;\n\tnode: HTMLElement;\n\tid: string;\n\tchecked: boolean;\n\tinputName: string;\n\thandlers: Object;\n\tsize: string;\n\tcolor: string;\n\tdisabled: boolean;\n\tuseAirDesign: boolean;\n\tstyle: AirSwitcherStyle;\n\tshowStateTitle?: boolean;\n}\n\nexport class Switcher\n{\n\t#classNameSize = {\n\t\t[SwitcherSize.extraExtraSmall]: 'ui-switcher-size-xss',\n\t\t[SwitcherSize.extraSmall]: 'ui-switcher-size-xs',\n\t\t[SwitcherSize.small]: 'ui-switcher-size-sm',\n\t\t[SwitcherSize.medium]: 'ui-switcher-size-md',\n\t\t[SwitcherSize.large]: 'ui-switcher-size-lg',\n\t\t[SwitcherSize.extraLarge]: 'ui-switcher-size-xl',\n\t};\n\n\t#classNameColor = {\n\t\t[SwitcherColor.primary]: '',\n\t\t[SwitcherColor.green]: 'ui-switcher-color-green',\n\t};\n\n\t#classNameStyle = {\n\t\t[AirSwitcherStyle.SOLID]: '--style-solid',\n\t\t[AirSwitcherStyle.TINTED]: '--style-tinted',\n\t};\n\n\t#useAirDesign: boolean = false;\n\n\tnode: HTMLElement | null = null;\n\tchecked: boolean = false;\n\tid: string = '';\n\t#disabled: boolean = false;\n\t#inputName: string = '';\n\t#loading: boolean;\n\tevents: Object;\n\t#classNameOff: string = 'ui-switcher-off';\n\t#classNameLock: string = 'ui-switcher-lock';\n\t#attributeName: string = 'data-switcher';\n\t#showStateTitle: boolean = true;\n\n\tstatic #attributeInitName: string = 'data-switcher-init';\n\tstatic list = [];\n\tstatic className = 'ui-switcher';\n\tstatic classNameOff = 'ui-switcher-off';\n\n\t/**\n\t * Switcher.\n\t *\n\t * @param {object} [options] - Options.\n\t * @param {string} [options.attributeName] - Name of switcher attribute.\n\t * @param {Element} [options.node] - Node.\n\t * @param {string} [options.id] - ID.\n\t * @param {123} [options.checked] - Checked.\n\t * @param {string} [options.inputName] - Input name.\n\t * @constructor\n\t */\n\tconstructor(options: SwitcherOptions)\n\t{\n\t\tthis.init(options);\n\t\tSwitcher.list.push(this);\n\t}\n\n\tstatic getById(id: string | number): Switcher | null\n\t{\n\t\treturn Switcher.list.find((item) => item.id === id) || null;\n\t}\n\n\tstatic initByClassName(): void\n\t{\n\t\tconst nodes = document.getElementsByClassName(Switcher.className);\n\t\tArray.from(nodes).forEach(function(node) {\n\t\t\tif (node.getAttribute(Switcher.#attributeInitName))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnew Switcher({ node: node });\n\t\t});\n\t}\n\n\tstatic getList(): Switcher[]\n\t{\n\t\treturn Switcher.list;\n\t}\n\n\tinit(options: SwitcherOptions = {}): void\n\t{\n\t\tthis.#attributeName = Type.isString(options.attributeName) ? options.attributeName : this.#attributeName;\n\t\tthis.handlers = Type.isPlainObject(options.handlers) ? options.handlers : {};\n\t\tthis.#inputName = Type.isString(options.inputName) ? options.inputName : '';\n\t\tthis.#loading = false;\n\t\tthis.#showStateTitle = Type.isBoolean(options.showStateTitle) ? options.showStateTitle : true;\n\t\tthis.events = {\n\t\t\ttoggled: 'toggled',\n\t\t\tchecked: 'checked',\n\t\t\tunchecked: 'unchecked',\n\t\t\tlock: 'lock',\n\t\t\tunlock: 'unlock',\n\t\t};\n\n\t\tif (options.node)\n\t\t{\n\t\t\tif (!Type.isDomNode(options.node))\n\t\t\t{\n\t\t\t\tthrow new Error('Parameter `node` DOM Node expected.');\n\t\t\t}\n\n\t\t\tthis.node = options.node;\n\t\t\tlet data = this.node.getAttribute(this.#attributeName);\n\t\t\ttry\n\t\t\t{\n\t\t\t\tdata = JSON.parse(data) || {};\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\tif (data.id)\n\t\t\t{\n\t\t\t\tthis.id = data.id;\n\t\t\t}\n\n\t\t\tthis.checked = Boolean(data.checked);\n\n\t\t\tthis.#inputName = data.inputName;\n\t\t\tif (Type.isString(data.color) && Object.values(SwitcherColor).includes(data.color))\n\t\t\t{\n\t\t\t\toptions.color = data.color;\n\t\t\t}\n\t\t\tif (Type.isString(data.size) && Object.values(SwitcherSize).includes(data.size))\n\t\t\t{\n\t\t\t\toptions.size = data.size;\n\t\t\t}\n\n\t\t\tif (Dom.hasClass(this.node, '--air'))\n\t\t\t{\n\t\t\t\toptions.useAirDesign = true;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.node = document.createElement('span');\n\t\t}\n\n\t\tthis.#useAirDesign = options.useAirDesign === true;\n\n\t\tif (this.#useAirDesign)\n\t\t{\n\t\t\tthis.setAirDesign();\n\t\t\tDom.addClass(this.node, this.#classNameStyle[options.style] ?? '');\n\t\t}\n\n\t\tif (this.#classNameSize[options.size])\n\t\t{\n\t\t\tDom.addClass(this.node, this.#classNameSize[options.size]);\n\t\t}\n\n\t\tif (this.#classNameColor[options.color] && this.#useAirDesign === false)\n\t\t{\n\t\t\tDom.addClass(this.node, this.#classNameColor[options.color]);\n\t\t}\n\n\t\tif (Type.isString(options.id) || Type.isNumber(options.id))\n\t\t{\n\t\t\tthis.id = options.id;\n\t\t}\n\t\telse if (!this.id)\n\t\t{\n\t\t\tthis.id = Math.random();\n\t\t}\n\n\t\tif (Type.isString(options.inputName))\n\t\t{\n\t\t\tthis.#inputName = options.inputName;\n\t\t}\n\t\tthis.checked = Type.isBoolean(options.checked) ? options.checked : this.checked;\n\t\tthis.#disabled = Type.isBoolean(options.disabled) ? options.disabled : this.#disabled;\n\n\t\tthis.#initNode();\n\t\tthis.check(this.checked, false);\n\t\tthis.disable(this.#disabled, false);\n\t}\n\n\t#initNode(): void\n\t{\n\t\tif (this.node.getAttribute(Switcher.#attributeInitName))\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.node.setAttribute(Switcher.#attributeInitName, 'y');\n\n\t\tDom.addClass(this.node, Switcher.className);\n\n\t\tif (this.#useAirDesign)\n\t\t{\n\t\t\tthis.setAirDesign();\n\t\t}\n\n\t\tconst element = Tag.render`\n\t\t\t<div>\n\t\t\t\t<span class=\"ui-switcher-cursor\"></span>\n\t\t\t\t<span class=\"ui-switcher-enabled\">\n\t\t\t\t\t${this.#showStateTitle ? Loc.getMessage('UI_SWITCHER_ON') : ''}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"ui-switcher-disabled\">\n\t\t\t\t\t${this.#showStateTitle ? Loc.getMessage('UI_SWITCHER_OFF') : ''}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.node.innerHTML = element.innerHTML;\n\n\t\tif (this.#inputName)\n\t\t{\n\t\t\tthis.inputNode = Tag.render`\n\t\t\t\t<input type=\"hidden\" name=\"${this.#inputName}\" />\n\t\t\t`;\n\n\t\t\tDom.append(this.inputNode, this.node);\n\t\t}\n\n\t\tbind(this.node, 'click', this.toggle.bind(this));\n\t}\n\n\tdisable(disabled: boolean, fireEvents: boolean = true, event: BaseEvent = {}): void\n\t{\n\t\tif (this.isLoading())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#disabled = disabled;\n\n\t\tfireEvents = fireEvents !== false;\n\n\t\tif (disabled)\n\t\t{\n\t\t\tDom.addClass(this.node, this.#classNameLock);\n\t\t\tfireEvents ? this.#fireEvent(this.events.lock, event) : null;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.node, this.#classNameLock);\n\t\t\tfireEvents ? this.#fireEvent(this.events.unlock, event) : null;\n\t\t}\n\t}\n\n\tcheck(checked: boolean, fireEvents: boolean = true, event: BaseEvent = {}): void\n\t{\n\t\tif (this.isLoading())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.checked = !!checked;\n\t\tif (this.inputNode)\n\t\t{\n\t\t\tthis.inputNode.value = this.checked ? 'Y' : 'N';\n\t\t}\n\n\t\tfireEvents = fireEvents !== false;\n\n\t\tif (this.checked)\n\t\t{\n\t\t\tDom.removeClass(this.node, this.#classNameOff);\n\t\t\tfireEvents ? this.#fireEvent(this.events.unchecked, event) : null;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.node, this.#classNameOff);\n\t\t\tfireEvents ? this.#fireEvent(this.events.checked, event) : null;\n\t\t}\n\n\t\tif (fireEvents)\n\t\t{\n\t\t\tthis.#fireEvent(this.events.toggled, event);\n\t\t}\n\t}\n\n\tisDisabled()\n\t{\n\t\treturn this.#disabled;\n\t}\n\n\tisChecked(): boolean\n\t{\n\t\treturn this.checked;\n\t}\n\n\ttoggle(event: BaseEvent): void\n\t{\n\t\tif (this.isDisabled())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.check(!this.isChecked(), true, event);\n\t}\n\n\tsetLoading(mode: boolean): void\n\t{\n\t\tthis.#loading = Boolean(mode);\n\n\t\tconst cursor = this.getNode().querySelector('.ui-switcher-cursor');\n\n\t\tif (this.#loading)\n\t\t{\n\t\t\tconst svg = Tag.render`\n\t\t\t\t<svg viewBox=\"25 25 50 50\">\n\t\t\t\t\t<circle\n\t\t\t\t\t\tclass=\"ui-sidepanel-wrapper-loader-path\"\n\t\t\t\t\t\tcx=\"50\"\n\t\t\t\t\t\tcy=\"50\"\n\t\t\t\t\t\tr=\"19\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke-width=\"5\"\n\t\t\t\t\t\tstroke-miterlimit=\"10\"\n\t\t\t\t\t>\n\t\t\t\t\t</circle>\n\t\t\t\t</svg>\n\t\t\t`;\n\t\t\tDom.append(svg, cursor);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcursor.innerHTML = '';\n\t\t}\n\t}\n\n\tisLoading(): boolean\n\t{\n\t\treturn this.#loading;\n\t}\n\n\tsetAirDesign(flag: boolean = true): void\n\t{\n\t\tif (flag)\n\t\t{\n\t\t\tDom.addClass(this.node, '--air');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.node, '--air');\n\t\t}\n\t}\n\n\t#fireEvent(eventName: string, event: BaseEvent): void\n\t{\n\t\tonCustomEvent(this, eventName);\n\t\tif (this.handlers[eventName])\n\t\t{\n\t\t\tthis.handlers[eventName].call(this, event);\n\t\t}\n\t}\n\n\trenderTo(targetNode: HTMLElement): HTMLElement\n\t{\n\t\tif (!Type.isDomNode(targetNode))\n\t\t{\n\t\t\tthrow new Error('Target node must be HTMLElement');\n\t\t}\n\n\t\treturn Dom.append(this.getNode(), targetNode);\n\t}\n\n\tgetNode(): HTMLElement\n\t{\n\t\treturn this.node;\n\t}\n\n\tgetAttributeName(): string\n\t{\n\t\treturn this.#attributeName;\n\t}\n\n\tgetInputName(): string\n\t{\n\t\treturn this.#inputName;\n\t}\n}\n"],"names":["AirSwitcherStyle","Object","freeze","SOLID","TINTED","SwitcherSize","extraLarge","large","medium","small","extraSmall","extraExtraSmall","SwitcherColor","primary","green","Switcher","constructor","options","node","checked","id","init","list","push","getById","find","item","initByClassName","nodes","document","getElementsByClassName","className","Array","from","forEach","getAttribute","getList","Type","isString","attributeName","handlers","isPlainObject","inputName","isBoolean","showStateTitle","events","toggled","unchecked","lock","unlock","isDomNode","Error","data","JSON","parse","e","Boolean","color","values","includes","size","Dom","hasClass","useAirDesign","createElement","setAirDesign","addClass","style","isNumber","Math","random","disabled","check","disable","fireEvents","event","isLoading","removeClass","inputNode","value","isDisabled","isChecked","toggle","setLoading","mode","cursor","getNode","querySelector","svg","Tag","render","append","innerHTML","flag","renderTo","targetNode","getAttributeName","getInputName","setAttribute","element","Loc","getMessage","bind","eventName","onCustomEvent","call","classNameOff"],"mappings":";;;;;OAAaA,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAAC;GAC7CC,KAAK,EAAE,OAAO;GACdC,MAAM,EAAE;CACT,CAAC,CAAC;;;;;;ACHF;CASA;CACA;CACA;AACA,OAAaC,YAAY,GAAGJ,MAAM,CAACC,MAAM,CAAC;GACzCI,UAAU,EAAE,aAAa;GACzBC,KAAK,EAAE,OAAO;GACdC,MAAM,EAAE,QAAQ;GAChBC,KAAK,EAAE,OAAO;GACdC,UAAU,EAAE,aAAa;GACzBC,eAAe,EAAE;CAClB,CAAC,CAAC;AAEF,OAAaC,aAAa,GAAGX,MAAM,CAACC,MAAM,CAAC;GAC1CW,OAAO,EAAE,SAAS;GAClBC,KAAK,EAAE;CACR,CAAC,CAAC;AAEF,CAAwD;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAiBxD,CAAO,MAAMC,QAAQ,CACrB;;CAwCA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;GACCC,WAAW,CAACC,OAAwB,EACpC;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;OAAA,OAlDiB;SAChB,CAACZ,YAAY,CAACM,eAAe,GAAG,sBAAsB;SACtD,CAACN,YAAY,CAACK,UAAU,GAAG,qBAAqB;SAChD,CAACL,YAAY,CAACI,KAAK,GAAG,qBAAqB;SAC3C,CAACJ,YAAY,CAACG,MAAM,GAAG,qBAAqB;SAC5C,CAACH,YAAY,CAACE,KAAK,GAAG,qBAAqB;SAC3C,CAACF,YAAY,CAACC,UAAU,GAAG;;;KAC3B;OAAA;OAAA,OAEiB;SACjB,CAACM,aAAa,CAACC,OAAO,GAAG,EAAE;SAC3B,CAACD,aAAa,CAACE,KAAK,GAAG;;;KACvB;OAAA;OAAA,OAEiB;SACjB,CAACd,gBAAgB,CAACG,KAAK,GAAG,eAAe;SACzC,CAACH,gBAAgB,CAACI,MAAM,GAAG;;;KAC3B;OAAA;OAAA,OAEwB;;KAAK,KAE9Bc,IAAI,GAAuB,IAAI;KAAA,KAC/BC,OAAO,GAAY,KAAK;KAAA,KACxBC,EAAE,GAAW,EAAE;KAAA;OAAA;OAAA,OACM;;KAAK;OAAA;OAAA,OACL;;KAAE;OAAA;OAAA;;KAAA;OAAA;OAAA,OAGC;;KAAiB;OAAA;OAAA,OAChB;;KAAkB;OAAA;OAAA,OAClB;;KAAe;OAAA;OAAA,OACb;;KAoB1B,IAAI,CAACC,IAAI,CAACJ,OAAO,CAAC;KAClBF,QAAQ,CAACO,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC;;GAGzB,OAAOC,OAAO,CAACJ,EAAmB,EAClC;KACC,OAAOL,QAAQ,CAACO,IAAI,CAACG,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACN,EAAE,KAAKA,EAAE,CAAC,IAAI,IAAI;;GAG5D,OAAOO,eAAe,GACtB;KACC,MAAMC,KAAK,GAAGC,QAAQ,CAACC,sBAAsB,CAACf,QAAQ,CAACgB,SAAS,CAAC;KACjEC,KAAK,CAACC,IAAI,CAACL,KAAK,CAAC,CAACM,OAAO,CAAC,UAAShB,IAAI,EAAE;OACxC,IAAIA,IAAI,CAACiB,YAAY,yCAACpB,QAAQ,0CAAoB,EAClD;SACC;;OAED,IAAIA,QAAQ,CAAC;SAAEG,IAAI,EAAEA;QAAM,CAAC;MAC5B,CAAC;;GAGH,OAAOkB,OAAO,GACd;KACC,OAAOrB,QAAQ,CAACO,IAAI;;GAGrBD,IAAI,CAACJ,OAAwB,GAAG,EAAE,EAClC;KACC,4CAAI,oCAAkBoB,cAAI,CAACC,QAAQ,CAACrB,OAAO,CAACsB,aAAa,CAAC,GAAGtB,OAAO,CAACsB,aAAa,2CAAG,IAAI,iCAAe;KACxG,IAAI,CAACC,QAAQ,GAAGH,cAAI,CAACI,aAAa,CAACxB,OAAO,CAACuB,QAAQ,CAAC,GAAGvB,OAAO,CAACuB,QAAQ,GAAG,EAAE;KAC5E,4CAAI,4BAAcH,cAAI,CAACC,QAAQ,CAACrB,OAAO,CAACyB,SAAS,CAAC,GAAGzB,OAAO,CAACyB,SAAS,GAAG,EAAE;KAC3E,4CAAI,wBAAY,KAAK;KACrB,4CAAI,sCAAmBL,cAAI,CAACM,SAAS,CAAC1B,OAAO,CAAC2B,cAAc,CAAC,GAAG3B,OAAO,CAAC2B,cAAc,GAAG,IAAI;KAC7F,IAAI,CAACC,MAAM,GAAG;OACbC,OAAO,EAAE,SAAS;OAClB3B,OAAO,EAAE,SAAS;OAClB4B,SAAS,EAAE,WAAW;OACtBC,IAAI,EAAE,MAAM;OACZC,MAAM,EAAE;MACR;KAED,IAAIhC,OAAO,CAACC,IAAI,EAChB;OACC,IAAI,CAACmB,cAAI,CAACa,SAAS,CAACjC,OAAO,CAACC,IAAI,CAAC,EACjC;SACC,MAAM,IAAIiC,KAAK,CAAC,qCAAqC,CAAC;;OAGvD,IAAI,CAACjC,IAAI,GAAGD,OAAO,CAACC,IAAI;OACxB,IAAIkC,IAAI,GAAG,IAAI,CAAClC,IAAI,CAACiB,YAAY,yCAAC,IAAI,kCAAgB;OACtD,IACA;SACCiB,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC,IAAI,EAAE;QAC7B,CACD,OAAOG,CAAC,EACR;SACCH,IAAI,GAAG,EAAE;;OAGV,IAAIA,IAAI,CAAChC,EAAE,EACX;SACC,IAAI,CAACA,EAAE,GAAGgC,IAAI,CAAChC,EAAE;;OAGlB,IAAI,CAACD,OAAO,GAAGqC,OAAO,CAACJ,IAAI,CAACjC,OAAO,CAAC;OAEpC,4CAAI,4BAAciC,IAAI,CAACV,SAAS;OAChC,IAAIL,cAAI,CAACC,QAAQ,CAACc,IAAI,CAACK,KAAK,CAAC,IAAIxD,MAAM,CAACyD,MAAM,CAAC9C,aAAa,CAAC,CAAC+C,QAAQ,CAACP,IAAI,CAACK,KAAK,CAAC,EAClF;SACCxC,OAAO,CAACwC,KAAK,GAAGL,IAAI,CAACK,KAAK;;OAE3B,IAAIpB,cAAI,CAACC,QAAQ,CAACc,IAAI,CAACQ,IAAI,CAAC,IAAI3D,MAAM,CAACyD,MAAM,CAACrD,YAAY,CAAC,CAACsD,QAAQ,CAACP,IAAI,CAACQ,IAAI,CAAC,EAC/E;SACC3C,OAAO,CAAC2C,IAAI,GAAGR,IAAI,CAACQ,IAAI;;OAGzB,IAAIC,aAAG,CAACC,QAAQ,CAAC,IAAI,CAAC5C,IAAI,EAAE,OAAO,CAAC,EACpC;SACCD,OAAO,CAAC8C,YAAY,GAAG,IAAI;;MAE5B,MAED;OACC,IAAI,CAAC7C,IAAI,GAAGW,QAAQ,CAACmC,aAAa,CAAC,MAAM,CAAC;;KAG3C,4CAAI,kCAAiB/C,OAAO,CAAC8C,YAAY,KAAK,IAAI;KAElD,4CAAI,IAAI,iCACR;OAAA;OACC,IAAI,CAACE,YAAY,EAAE;OACnBJ,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,2BAAE,4CAAI,oCAAiBD,OAAO,CAACkD,KAAK,CAAC,oCAAI,EAAE,CAAC;;KAGnE,IAAI,4CAAI,kCAAgBlD,OAAO,CAAC2C,IAAI,CAAC,EACrC;OACCC,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,EAAE,4CAAI,kCAAgBD,OAAO,CAAC2C,IAAI,CAAC,CAAC;;KAG3D,IAAI,4CAAI,oCAAiB3C,OAAO,CAACwC,KAAK,CAAC,IAAI,4CAAI,oCAAmB,KAAK,EACvE;OACCI,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,EAAE,4CAAI,oCAAiBD,OAAO,CAACwC,KAAK,CAAC,CAAC;;KAG7D,IAAIpB,cAAI,CAACC,QAAQ,CAACrB,OAAO,CAACG,EAAE,CAAC,IAAIiB,cAAI,CAAC+B,QAAQ,CAACnD,OAAO,CAACG,EAAE,CAAC,EAC1D;OACC,IAAI,CAACA,EAAE,GAAGH,OAAO,CAACG,EAAE;MACpB,MACI,IAAI,CAAC,IAAI,CAACA,EAAE,EACjB;OACC,IAAI,CAACA,EAAE,GAAGiD,IAAI,CAACC,MAAM,EAAE;;KAGxB,IAAIjC,cAAI,CAACC,QAAQ,CAACrB,OAAO,CAACyB,SAAS,CAAC,EACpC;OACC,4CAAI,4BAAczB,OAAO,CAACyB,SAAS;;KAEpC,IAAI,CAACvB,OAAO,GAAGkB,cAAI,CAACM,SAAS,CAAC1B,OAAO,CAACE,OAAO,CAAC,GAAGF,OAAO,CAACE,OAAO,GAAG,IAAI,CAACA,OAAO;KAC/E,4CAAI,0BAAakB,cAAI,CAACM,SAAS,CAAC1B,OAAO,CAACsD,QAAQ,CAAC,GAAGtD,OAAO,CAACsD,QAAQ,2CAAG,IAAI,uBAAU;KAErF,4CAAI;KACJ,IAAI,CAACC,KAAK,CAAC,IAAI,CAACrD,OAAO,EAAE,KAAK,CAAC;KAC/B,IAAI,CAACsD,OAAO,yCAAC,IAAI,yBAAY,KAAK,CAAC;;GA4CpCA,OAAO,CAACF,QAAiB,EAAEG,UAAmB,GAAG,IAAI,EAAEC,KAAgB,GAAG,EAAE,EAC5E;KACC,IAAI,IAAI,CAACC,SAAS,EAAE,EACpB;OACC;;KAGD,4CAAI,0BAAaL,QAAQ;KAEzBG,UAAU,GAAGA,UAAU,KAAK,KAAK;KAEjC,IAAIH,QAAQ,EACZ;OACCV,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,0CAAE,IAAI,kCAAgB;OAC5CwD,UAAU,2CAAG,IAAI,0BAAY,IAAI,CAAC7B,MAAM,CAACG,IAAI,EAAE2B,KAAK,IAAI,IAAI;MAC5D,MAED;OACCd,aAAG,CAACgB,WAAW,CAAC,IAAI,CAAC3D,IAAI,0CAAE,IAAI,kCAAgB;OAC/CwD,UAAU,2CAAG,IAAI,0BAAY,IAAI,CAAC7B,MAAM,CAACI,MAAM,EAAE0B,KAAK,IAAI,IAAI;;;GAIhEH,KAAK,CAACrD,OAAgB,EAAEuD,UAAmB,GAAG,IAAI,EAAEC,KAAgB,GAAG,EAAE,EACzE;KACC,IAAI,IAAI,CAACC,SAAS,EAAE,EACpB;OACC;;KAGD,IAAI,CAACzD,OAAO,GAAG,CAAC,CAACA,OAAO;KACxB,IAAI,IAAI,CAAC2D,SAAS,EAClB;OACC,IAAI,CAACA,SAAS,CAACC,KAAK,GAAG,IAAI,CAAC5D,OAAO,GAAG,GAAG,GAAG,GAAG;;KAGhDuD,UAAU,GAAGA,UAAU,KAAK,KAAK;KAEjC,IAAI,IAAI,CAACvD,OAAO,EAChB;OACC0C,aAAG,CAACgB,WAAW,CAAC,IAAI,CAAC3D,IAAI,0CAAE,IAAI,gCAAe;OAC9CwD,UAAU,2CAAG,IAAI,0BAAY,IAAI,CAAC7B,MAAM,CAACE,SAAS,EAAE4B,KAAK,IAAI,IAAI;MACjE,MAED;OACCd,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,0CAAE,IAAI,gCAAe;OAC3CwD,UAAU,2CAAG,IAAI,0BAAY,IAAI,CAAC7B,MAAM,CAAC1B,OAAO,EAAEwD,KAAK,IAAI,IAAI;;KAGhE,IAAID,UAAU,EACd;OACC,4CAAI,0BAAY,IAAI,CAAC7B,MAAM,CAACC,OAAO,EAAE6B,KAAK;;;GAI5CK,UAAU,GACV;KACC,+CAAO,IAAI;;GAGZC,SAAS,GACT;KACC,OAAO,IAAI,CAAC9D,OAAO;;GAGpB+D,MAAM,CAACP,KAAgB,EACvB;KACC,IAAI,IAAI,CAACK,UAAU,EAAE,EACrB;OACC;;KAGD,IAAI,CAACR,KAAK,CAAC,CAAC,IAAI,CAACS,SAAS,EAAE,EAAE,IAAI,EAAEN,KAAK,CAAC;;GAG3CQ,UAAU,CAACC,IAAa,EACxB;KACC,4CAAI,wBAAY5B,OAAO,CAAC4B,IAAI,CAAC;KAE7B,MAAMC,MAAM,GAAG,IAAI,CAACC,OAAO,EAAE,CAACC,aAAa,CAAC,qBAAqB,CAAC;KAElE,4CAAI,IAAI,uBACR;OACC,MAAMC,GAAG,GAAGC,aAAG,CAACC,MAAM,cAAC;;;;;;;;;;;;;IAavB,EAAC;OACD7B,aAAG,CAAC8B,MAAM,CAACH,GAAG,EAAEH,MAAM,CAAC;MACvB,MAED;OACCA,MAAM,CAACO,SAAS,GAAG,EAAE;;;GAIvBhB,SAAS,GACT;KACC,+CAAO,IAAI;;GAGZX,YAAY,CAAC4B,IAAa,GAAG,IAAI,EACjC;KACC,IAAIA,IAAI,EACR;OACChC,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,EAAE,OAAO,CAAC;MAChC,MAED;OACC2C,aAAG,CAACgB,WAAW,CAAC,IAAI,CAAC3D,IAAI,EAAE,OAAO,CAAC;;;GAarC4E,QAAQ,CAACC,UAAuB,EAChC;KACC,IAAI,CAAC1D,cAAI,CAACa,SAAS,CAAC6C,UAAU,CAAC,EAC/B;OACC,MAAM,IAAI5C,KAAK,CAAC,iCAAiC,CAAC;;KAGnD,OAAOU,aAAG,CAAC8B,MAAM,CAAC,IAAI,CAACL,OAAO,EAAE,EAAES,UAAU,CAAC;;GAG9CT,OAAO,GACP;KACC,OAAO,IAAI,CAACpE,IAAI;;GAGjB8E,gBAAgB,GAChB;KACC,+CAAO,IAAI;;GAGZC,YAAY,GACZ;KACC,+CAAO,IAAI;;CAEb;CAAC,sBAnMA;GACC,IAAI,IAAI,CAAC/E,IAAI,CAACiB,YAAY,yCAACpB,QAAQ,0CAAoB,EACvD;KACC;;GAED,IAAI,CAACG,IAAI,CAACgF,YAAY,yCAACnF,QAAQ,2CAAqB,GAAG,CAAC;GAExD8C,aAAG,CAACK,QAAQ,CAAC,IAAI,CAAChD,IAAI,EAAEH,QAAQ,CAACgB,SAAS,CAAC;GAE3C,4CAAI,IAAI,iCACR;KACC,IAAI,CAACkC,YAAY,EAAE;;GAGpB,MAAMkC,OAAO,GAAGV,aAAG,CAACC,MAAM,gBAAC;;;;OAIxB,CAA+D;;;OAG/D,CAAgE;;;GAGnE,GANK,4CAAI,sCAAmBU,aAAG,CAACC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAG5D,4CAAI,sCAAmBD,aAAG,CAACC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAGjE;GAED,IAAI,CAACnF,IAAI,CAAC0E,SAAS,GAAGO,OAAO,CAACP,SAAS;GAEvC,4CAAI,IAAI,2BACR;KACC,IAAI,CAACd,SAAS,GAAGW,aAAG,CAACC,MAAM,gBAAC;iCACA,CAAkB;IAC9C,2CAD8B,IAAI,0BACjC;KAED7B,aAAG,CAAC8B,MAAM,CAAC,IAAI,CAACb,SAAS,EAAE,IAAI,CAAC5D,IAAI,CAAC;;GAGtCoF,cAAI,CAAC,IAAI,CAACpF,IAAI,EAAE,OAAO,EAAE,IAAI,CAACgE,MAAM,CAACoB,IAAI,CAAC,IAAI,CAAC,CAAC;CACjD;CAAC,qBA4HUC,SAAiB,EAAE5B,KAAgB,EAC9C;GACC6B,uBAAa,CAAC,IAAI,EAAED,SAAS,CAAC;GAC9B,IAAI,IAAI,CAAC/D,QAAQ,CAAC+D,SAAS,CAAC,EAC5B;KACC,IAAI,CAAC/D,QAAQ,CAAC+D,SAAS,CAAC,CAACE,IAAI,CAAC,IAAI,EAAE9B,KAAK,CAAC;;CAE5C;CAAC,sBA5VW5D,QAAQ;GAAA;GAAA,OAmCgB;CAAoB;CAnC5CA,QAAQ,CAoCbO,IAAI,GAAG,EAAE;CApCJP,QAAQ,CAqCbgB,SAAS,GAAG,aAAa;CArCpBhB,QAAQ,CAsCb2F,YAAY,GAAG,iBAAiB;;;;;;;;;;;"}