primevue
Version:
PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc
1 lines • 25.7 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/steps/BaseSteps.vue","../../src/steps/Steps.vue","../../src/steps/Steps.vue?vue&type=template&id=514a482f&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport StepsStyle from 'primevue/steps/style';\n\nexport default {\n name: 'BaseSteps',\n extends: BaseComponent,\n props: {\n id: {\n type: String\n },\n model: {\n type: Array,\n default: null\n },\n readonly: {\n type: Boolean,\n default: true\n },\n activeStep: {\n type: Number,\n default: 0\n }\n },\n style: StepsStyle,\n provide() {\n return {\n $pcSteps: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <nav :id=\"id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ol ref=\"list\" :class=\"cx('list')\" v-bind=\"ptm('list')\">\n <template v-for=\"(item, index) of model\" :key=\"label(item) + '_' + index.toString()\">\n <li\n v-if=\"visible(item)\"\n :class=\"[cx('item', { item, index }), item.class]\"\n :style=\"item.style\"\n :aria-current=\"isActive(index) ? 'step' : undefined\"\n @click=\"onItemClick($event, item, index)\"\n @keydown=\"onItemKeydown($event, item, index)\"\n v-bind=\"getPTOptions('item', item, index)\"\n :data-p-active=\"isActive(index)\"\n :data-p-disabled=\"isItemDisabled(item, index)\"\n >\n <template v-if=\"!$slots.item\">\n <span :class=\"cx('itemLink')\" v-bind=\"getPTOptions('itemLink', item, index)\">\n <span :class=\"cx('itemNumber')\" v-bind=\"getPTOptions('itemNumber', item, index)\">{{ index + 1 }}</span>\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', item, index)\">{{ label(item) }}</span>\n </span>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :index=\"index\" :active=\"index === d_activeStep\" :label=\"label(item)\" :props=\"getMenuItemProps(item, index)\"></component>\n </li>\n </template>\n </ol>\n </nav>\n</template>\n\n<script>\nimport { findSingle, find } from '@primeuix/utils/dom';\nimport { mergeProps } from 'vue';\nimport BaseSteps from './BaseSteps.vue';\n\nexport default {\n name: 'Steps',\n extends: BaseSteps,\n inheritAttrs: false,\n emits: ['update:activeStep', 'step-change'],\n data() {\n return {\n d_activeStep: this.activeStep\n };\n },\n watch: {\n activeStep(newValue) {\n this.d_activeStep = newValue;\n }\n },\n mounted() {\n const firstItem = this.findFirstItem();\n\n firstItem && (firstItem.tabIndex = '0');\n },\n methods: {\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n item,\n index,\n active: this.isActive(index),\n disabled: this.isItemDisabled(item, index)\n }\n });\n },\n onItemClick(event, item, index) {\n if (this.disabled(item) || this.readonly) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (index !== this.d_activeStep) {\n this.d_activeStep = index;\n this.$emit('update:activeStep', this.d_activeStep);\n }\n\n this.$emit('step-change', {\n originalEvent: event,\n index: index\n });\n },\n onItemKeydown(event, item) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Tab':\n //no op\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n\n case 'Space': {\n this.onItemClick(event, item);\n event.preventDefault();\n break;\n }\n\n default:\n break;\n }\n },\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n },\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n },\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem(target);\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n },\n navigateToLastItem(target) {\n const lastItem = this.findLastItem(target);\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n },\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? nextItem.children[0] : null;\n },\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? prevItem.children[0] : null;\n },\n findFirstItem() {\n const firstSibling = findSingle(this.$refs.list, '[data-pc-section=\"item\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n },\n findLastItem() {\n const siblings = find(this.$refs.list, '[data-pc-section=\"item\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n },\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n },\n isActive(index) {\n return index === this.d_activeStep;\n },\n isItemDisabled(item, index) {\n return this.disabled(item) || (this.readonly && !this.isActive(index));\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n onClick: ($event) => this.onItemClick($event, item),\n onKeyDown: ($event) => this.onItemKeydown($event, item)\n },\n this.getPTOptions('itemLink', item, index)\n ),\n step: mergeProps(\n {\n class: this.cx('itemNumber')\n },\n this.getPTOptions('itemNumber', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', item, index)\n )\n };\n }\n }\n};\n</script>\n","<template>\n <nav :id=\"id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ol ref=\"list\" :class=\"cx('list')\" v-bind=\"ptm('list')\">\n <template v-for=\"(item, index) of model\" :key=\"label(item) + '_' + index.toString()\">\n <li\n v-if=\"visible(item)\"\n :class=\"[cx('item', { item, index }), item.class]\"\n :style=\"item.style\"\n :aria-current=\"isActive(index) ? 'step' : undefined\"\n @click=\"onItemClick($event, item, index)\"\n @keydown=\"onItemKeydown($event, item, index)\"\n v-bind=\"getPTOptions('item', item, index)\"\n :data-p-active=\"isActive(index)\"\n :data-p-disabled=\"isItemDisabled(item, index)\"\n >\n <template v-if=\"!$slots.item\">\n <span :class=\"cx('itemLink')\" v-bind=\"getPTOptions('itemLink', item, index)\">\n <span :class=\"cx('itemNumber')\" v-bind=\"getPTOptions('itemNumber', item, index)\">{{ index + 1 }}</span>\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', item, index)\">{{ label(item) }}</span>\n </span>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :index=\"index\" :active=\"index === d_activeStep\" :label=\"label(item)\" :props=\"getMenuItemProps(item, index)\"></component>\n </li>\n </template>\n </ol>\n </nav>\n</template>\n\n<script>\nimport { findSingle, find } from '@primeuix/utils/dom';\nimport { mergeProps } from 'vue';\nimport BaseSteps from './BaseSteps.vue';\n\nexport default {\n name: 'Steps',\n extends: BaseSteps,\n inheritAttrs: false,\n emits: ['update:activeStep', 'step-change'],\n data() {\n return {\n d_activeStep: this.activeStep\n };\n },\n watch: {\n activeStep(newValue) {\n this.d_activeStep = newValue;\n }\n },\n mounted() {\n const firstItem = this.findFirstItem();\n\n firstItem && (firstItem.tabIndex = '0');\n },\n methods: {\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n item,\n index,\n active: this.isActive(index),\n disabled: this.isItemDisabled(item, index)\n }\n });\n },\n onItemClick(event, item, index) {\n if (this.disabled(item) || this.readonly) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (index !== this.d_activeStep) {\n this.d_activeStep = index;\n this.$emit('update:activeStep', this.d_activeStep);\n }\n\n this.$emit('step-change', {\n originalEvent: event,\n index: index\n });\n },\n onItemKeydown(event, item) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Tab':\n //no op\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n\n case 'Space': {\n this.onItemClick(event, item);\n event.preventDefault();\n break;\n }\n\n default:\n break;\n }\n },\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n },\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n },\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem(target);\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n },\n navigateToLastItem(target) {\n const lastItem = this.findLastItem(target);\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n },\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? nextItem.children[0] : null;\n },\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? prevItem.children[0] : null;\n },\n findFirstItem() {\n const firstSibling = findSingle(this.$refs.list, '[data-pc-section=\"item\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n },\n findLastItem() {\n const siblings = find(this.$refs.list, '[data-pc-section=\"item\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n },\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n },\n isActive(index) {\n return index === this.d_activeStep;\n },\n isItemDisabled(item, index) {\n return this.disabled(item) || (this.readonly && !this.isActive(index));\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n onClick: ($event) => this.onItemClick($event, item),\n onKeyDown: ($event) => this.onItemKeydown($event, item)\n },\n this.getPTOptions('itemLink', item, index)\n ),\n step: mergeProps(\n {\n class: this.cx('itemNumber')\n },\n this.getPTOptions('itemNumber', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', item, index)\n )\n };\n }\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","id","type","String","model","Array","readonly","Boolean","activeStep","Number","style","StepsStyle","provide","$pcSteps","$parentInstance","BaseSteps","inheritAttrs","emits","data","d_activeStep","watch","newValue","mounted","firstItem","findFirstItem","tabIndex","methods","getPTOptions","key","item","index","ptm","context","active","isActive","disabled","isItemDisabled","onItemClick","event","preventDefault","command","originalEvent","$emit","onItemKeydown","code","navigateToNextItem","target","navigateToPrevItem","navigateToFirstItem","navigateToLastItem","nextItem","findNextItem","setFocusToMenuitem","prevItem","findPrevItem","lastItem","findLastItem","parentElement","nextElementSibling","children","previousElementSibling","firstSibling","findSingle","$refs","list","siblings","find","length","focusableItem","focus","visible","label","getMenuItemProps","_this","action","mergeProps","cx","onClick","$event","onKeyDown","step","_openBlock","_createElementBlock","_mergeProps","_ctx","ptmi","_createElementVNode","ref","_Fragment","_renderList","$options","toString","undefined","onKeydown","$slots","_toDisplayString","_createBlock","_resolveDynamicComponent","$data"],"mappings":";;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,WAAW;AACjB,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,EAAE,EAAE;AACAC,MAAAA,IAAI,EAAEC;KACT;AACDC,IAAAA,KAAK,EAAE;AACHF,MAAAA,IAAI,EAAEG,KAAK;MACX,SAAS,EAAA;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNJ,MAAAA,IAAI,EAAEK,OAAO;MACb,SAAS,EAAA;KACZ;AACDC,IAAAA,UAAU,EAAE;AACRN,MAAAA,IAAI,EAAEO,MAAM;MACZ,SAAS,EAAA;AACb;GACH;AACDC,EAAAA,KAAK,EAAEC,UAAU;EACjBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,QAAQ,EAAE,IAAI;AACdC,MAAAA,eAAe,EAAE;KACpB;AACL;AACJ,CAAC;;ACED,aAAe;AACXhB,EAAAA,IAAI,EAAE,OAAO;AACb,EAAA,SAAA,EAASiB,QAAS;AAClBC,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,KAAK,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC;EAC3CC,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHC,YAAY,EAAE,IAAI,CAACX;KACtB;GACJ;AACDY,EAAAA,KAAK,EAAE;AACHZ,IAAAA,UAAU,EAAVA,SAAAA,UAAUA,CAACa,QAAQ,EAAE;MACjB,IAAI,CAACF,YAAa,GAAEE,QAAQ;AAChC;GACH;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACN,IAAA,IAAMC,SAAQ,GAAI,IAAI,CAACC,aAAa,EAAE;AAEtCD,IAAAA,SAAU,KAAIA,SAAS,CAACE,QAAS,GAAE,GAAG,CAAC;GAC1C;AACDC,EAAAA,OAAO,EAAE;IACLC,YAAY,EAAA,SAAZA,YAAYA,CAACC,GAAG,EAAEC,IAAI,EAAEC,KAAK,EAAE;AAC3B,MAAA,OAAO,IAAI,CAACC,GAAG,CAACH,GAAG,EAAE;AACjBI,QAAAA,OAAO,EAAE;AACLH,UAAAA,IAAI,EAAJA,IAAI;AACJC,UAAAA,KAAK,EAALA,KAAK;AACLG,UAAAA,MAAM,EAAE,IAAI,CAACC,QAAQ,CAACJ,KAAK,CAAC;AAC5BK,UAAAA,QAAQ,EAAE,IAAI,CAACC,cAAc,CAACP,IAAI,EAAEC,KAAK;AAC7C;AACJ,OAAC,CAAC;KACL;IACDO,WAAW,EAAA,SAAXA,WAAWA,CAACC,KAAK,EAAET,IAAI,EAAEC,KAAK,EAAE;MAC5B,IAAI,IAAI,CAACK,QAAQ,CAACN,IAAI,KAAK,IAAI,CAACvB,QAAQ,EAAE;QACtCgC,KAAK,CAACC,cAAc,EAAE;AAEtB,QAAA;AACJ;MAEA,IAAIV,IAAI,CAACW,OAAO,EAAE;QACdX,IAAI,CAACW,OAAO,CAAC;AACTC,UAAAA,aAAa,EAAEH,KAAK;AACpBT,UAAAA,IAAI,EAAEA;AACV,SAAC,CAAC;AACN;AAEA,MAAA,IAAIC,KAAI,KAAM,IAAI,CAACX,YAAY,EAAE;QAC7B,IAAI,CAACA,YAAW,GAAIW,KAAK;QACzB,IAAI,CAACY,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAACvB,YAAY,CAAC;AACtD;AAEA,MAAA,IAAI,CAACuB,KAAK,CAAC,aAAa,EAAE;AACtBD,QAAAA,aAAa,EAAEH,KAAK;AACpBR,QAAAA,KAAK,EAAEA;AACX,OAAC,CAAC;KACL;AACDa,IAAAA,aAAa,WAAbA,aAAaA,CAACL,KAAK,EAAET,IAAI,EAAE;MACvB,QAAQS,KAAK,CAACM,IAAI;AACd,QAAA,KAAK,YAAY;AAAE,UAAA;AACf,YAAA,IAAI,CAACC,kBAAkB,CAACP,KAAK,CAACQ,MAAM,CAAC;YACrCR,KAAK,CAACC,cAAc,EAAE;AACtB,YAAA;AACJ;AAEA,QAAA,KAAK,WAAW;AAAE,UAAA;AACd,YAAA,IAAI,CAACQ,kBAAkB,CAACT,KAAK,CAACQ,MAAM,CAAC;YACrCR,KAAK,CAACC,cAAc,EAAE;AACtB,YAAA;AACJ;AAEA,QAAA,KAAK,MAAM;AAAE,UAAA;AACT,YAAA,IAAI,CAACS,mBAAmB,CAACV,KAAK,CAACQ,MAAM,CAAC;YACtCR,KAAK,CAACC,cAAc,EAAE;AACtB,YAAA;AACJ;AAEA,QAAA,KAAK,KAAK;AAAE,UAAA;AACR,YAAA,IAAI,CAACU,kBAAkB,CAACX,KAAK,CAACQ,MAAM,CAAC;YACrCR,KAAK,CAACC,cAAc,EAAE;AACtB,YAAA;AACJ;AAEA,QAAA,KAAK,KAAK;AACN;AACA,UAAA;AAEJ,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,aAAa;AAElB,QAAA,KAAK,OAAO;AAAE,UAAA;AACV,YAAA,IAAI,CAACF,WAAW,CAACC,KAAK,EAAET,IAAI,CAAC;YAC7BS,KAAK,CAACC,cAAc,EAAE;AACtB,YAAA;AACJ;AAIJ;KACH;AACDM,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACC,MAAM,EAAE;AACvB,MAAA,IAAMI,QAAS,GAAE,IAAI,CAACC,YAAY,CAACL,MAAM,CAAC;MAE1CI,QAAO,IAAK,IAAI,CAACE,kBAAkB,CAACN,MAAM,EAAEI,QAAQ,CAAC;KACxD;AACDH,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACD,MAAM,EAAE;AACvB,MAAA,IAAMO,QAAS,GAAE,IAAI,CAACC,YAAY,CAACR,MAAM,CAAC;MAE1CO,QAAO,IAAK,IAAI,CAACD,kBAAkB,CAACN,MAAM,EAAEO,QAAQ,CAAC;KACxD;AACDL,IAAAA,mBAAmB,EAAnBA,SAAAA,mBAAmBA,CAACF,MAAM,EAAE;AACxB,MAAA,IAAMvB,SAAQ,GAAI,IAAI,CAACC,aAAa,CAACsB,MAAM,CAAC;MAE5CvB,SAAU,IAAG,IAAI,CAAC6B,kBAAkB,CAACN,MAAM,EAAEvB,SAAS,CAAC;KAC1D;AACD0B,IAAAA,kBAAkB,EAAlBA,SAAAA,kBAAkBA,CAACH,MAAM,EAAE;AACvB,MAAA,IAAMS,QAAS,GAAE,IAAI,CAACC,YAAY,CAACV,MAAM,CAAC;MAE1CS,QAAO,IAAK,IAAI,CAACH,kBAAkB,CAACN,MAAM,EAAES,QAAQ,CAAC;KACxD;AACDJ,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACtB,IAAI,EAAE;AACf,MAAA,IAAMqB,WAAWrB,IAAI,CAAC4B,aAAa,CAACC,kBAAkB;MAEtD,OAAOR,QAAO,GAAIA,QAAQ,CAACS,QAAQ,CAAC,CAAC,CAAA,GAAI,IAAI;KAChD;AACDL,IAAAA,YAAY,EAAZA,SAAAA,YAAYA,CAACzB,IAAI,EAAE;AACf,MAAA,IAAMwB,QAAO,GAAIxB,IAAI,CAAC4B,aAAa,CAACG,sBAAsB;MAE1D,OAAOP,QAAO,GAAIA,QAAQ,CAACM,QAAQ,CAAC,CAAC,CAAA,GAAI,IAAI;KAChD;IACDnC,aAAa,EAAA,SAAbA,aAAaA,GAAG;MACZ,IAAMqC,YAAW,GAAIC,UAAU,CAAC,IAAI,CAACC,KAAK,CAACC,IAAI,EAAE,0BAA0B,CAAC;MAE5E,OAAOH,eAAeA,YAAY,CAACF,QAAQ,CAAC,CAAC,IAAI,IAAI;KACxD;IACDH,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,IAAMS,QAAO,GAAIC,IAAI,CAAC,IAAI,CAACH,KAAK,CAACC,IAAI,EAAE,0BAA0B,CAAC;AAElE,MAAA,OAAOC,QAAO,GAAIA,QAAQ,CAACA,QAAQ,CAACE,MAAO,GAAE,CAAC,CAAC,CAACR,QAAQ,CAAC,CAAC,CAAA,GAAI,IAAI;KACrE;AACDP,IAAAA,kBAAkB,WAAlBA,kBAAkBA,CAACN,MAAM,EAAEsB,aAAa,EAAE;MACtCtB,MAAM,CAACrB,QAAO,GAAI,IAAI;MACtB2C,aAAa,CAAC3C,QAAS,GAAE,GAAG;MAC5B2C,aAAa,CAACC,KAAK,EAAE;KACxB;AACDnC,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACJ,KAAK,EAAE;AACZ,MAAA,OAAOA,KAAI,KAAM,IAAI,CAACX,YAAY;KACrC;AACDiB,IAAAA,cAAc,WAAdA,cAAcA,CAACP,IAAI,EAAEC,KAAK,EAAE;AACxB,MAAA,OAAO,IAAI,CAACK,QAAQ,CAACN,IAAI,CAAA,IAAM,IAAI,CAACvB,QAAS,IAAG,CAAC,IAAI,CAAC4B,QAAQ,CAACJ,KAAK,CAAE;KACzE;AACDwC,IAAAA,OAAO,EAAPA,SAAAA,OAAOA,CAACzC,IAAI,EAAE;AACV,MAAA,OAAO,OAAOA,IAAI,CAACyC,YAAY,UAAW,GAAEzC,IAAI,CAACyC,OAAO,EAAC,GAAIzC,IAAI,CAACyC,OAAQ,KAAI,KAAK;KACtF;AACDnC,IAAAA,QAAQ,EAARA,SAAAA,QAAQA,CAACN,IAAI,EAAE;AACX,MAAA,OAAO,OAAOA,IAAI,CAACM,QAAO,KAAM,UAAS,GAAIN,IAAI,CAACM,QAAQ,EAAG,GAAEN,IAAI,CAACM,QAAQ;KAC/E;AACDoC,IAAAA,KAAK,EAALA,SAAAA,KAAKA,CAAC1C,IAAI,EAAE;AACR,MAAA,OAAO,OAAOA,IAAI,CAAC0C,KAAM,KAAI,UAAW,GAAE1C,IAAI,CAAC0C,KAAK,EAAC,GAAI1C,IAAI,CAAC0C,KAAK;KACtE;AACDC,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAAC3C,IAAI,EAAEC,KAAK,EAAE;AAAA,MAAA,IAAA2C,KAAA,GAAA,IAAA;MAC1B,OAAO;QACHC,MAAM,EAAEC,UAAU,CACd;AACI,UAAA,OAAA,EAAO,IAAI,CAACC,EAAE,CAAC,UAAU,CAAC;AAC1BC,UAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGC,MAAM,EAAA;AAAA,YAAA,OAAKL,KAAI,CAACpC,WAAW,CAACyC,MAAM,EAAEjD,IAAI,CAAC;AAAA,WAAA;AACnDkD,UAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGD,MAAM,EAAA;AAAA,YAAA,OAAKL,KAAI,CAAC9B,aAAa,CAACmC,MAAM,EAAEjD,IAAI,CAAA;AAAA;SACzD,EACD,IAAI,CAACF,YAAY,CAAC,UAAU,EAAEE,IAAI,EAAEC,KAAK,CAC7C,CAAC;QACDkD,IAAI,EAAEL,UAAU,CACZ;AACI,UAAA,OAAA,EAAO,IAAI,CAACC,EAAE,CAAC,YAAY;SAC9B,EACD,IAAI,CAACjD,YAAY,CAAC,YAAY,EAAEE,IAAI,EAAEC,KAAK,CAC/C,CAAC;QACDyC,KAAK,EAAEI,UAAU,CACb;AACI,UAAA,OAAA,EAAO,IAAI,CAACC,EAAE,CAAC,WAAW;SAC7B,EACD,IAAI,CAACjD,YAAY,CAAC,WAAW,EAAEE,IAAI,EAAEC,KAAK,CAC9C;OACH;AACL;AACJ;AACJ,CAAC;;;;;ECvNG,OAAAmD,SAAA,EAAA,EAAAC,kBAAA,CAwBK,OAxBLC,UAwBK,CAAA;IAxBClF,EAAE,EAAEmF,IAAE,CAAAnF,EAAA;AAAG,IAAA,OAAA,EAAOmF,IAAE,CAAAR,EAAA,CAAA,MAAA;KAAkBQ,IAAI,CAAAC,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAC1CC,kBAAA,CAsBI,MAtBJH,UAsBI,CAAA;AAtBAI,IAAAA,GAAG,EAAC;AAAQ,IAAA,OAAA,EAAOH,IAAE,CAAAR,EAAA,CAAA,MAAA;KAAkBQ,IAAG,CAAArD,GAAA,CAAA,MAAA,CAAA,CAAA,EAAA,EAC1CkD,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAoBUM,QApBwB,EAAA,IAAA,EAAAC,UAAA,CAAAL,IAAA,CAAAhF,KAAK,EAArB,UAAAyB,IAAI,EAAEC,KAAK,EAAA;;AAAkBF,MAAAA,GAAA,EAAA8D,QAAA,CAAAnB,KAAK,CAAC1C,IAAI,CAAU,GAAA,GAAA,GAAAC,KAAK,CAAC6D,QAAQ;QAEnED,QAAA,CAAApB,OAAO,CAACzC,IAAI,CAAA,IADtBoD,SAAA,EAAA,EAAAC,kBAAA,CAkBI,MAlBJC,UAkBI,CAAA;;AAhBC,MAAA,OAAA,EAAK,CAAGC,OAAE,CAAW,MAAA,EAAA;AAAAvD,QAAAA,IAAI,EAAJA,IAAI;AAAEC,QAAAA,KAAI,EAAJA;AAAI,OAAA,CAAA,EAAMD,IAAI,CAAA,OAAA,CAAM,CAAA;MAC/CnB,KAAK,EAAEmB,IAAI,CAACnB,KAAK;MACjB,cAAY,EAAEgF,QAAA,CAAAxD,QAAQ,CAACJ,KAAK,aAAa8D,SAAS;AAClDf,MAAAA,OAAK,WAALA,OAAKA;eAAEa,QAAW,CAAArD,WAAA,CAACyC,MAAM,EAAEjD,IAAI,EAAEC,KAAK,CAAA;OAAA;AACtC+D,MAAAA,SAAO,WAAPA,SAAOA;eAAEH,QAAa,CAAA/C,aAAA,CAACmC,MAAM,EAAEjD,IAAI,EAAEC,KAAK,CAAA;OAAA;;OACnC4D,QAAY,CAAA/D,YAAA,CAAA,MAAA,EAASE,IAAI,EAAEC,KAAK,CAAA,EAAA;AACvC,MAAA,eAAa,EAAE4D,QAAQ,CAAAxD,QAAA,CAACJ,KAAK,CAAA;AAC7B,MAAA,iBAAe,EAAE4D,QAAA,CAAAtD,cAAc,CAACP,IAAI,EAAEC,KAAK;SAE3B,CAAAsD,IAAA,CAAAU,MAAM,CAACjE,IAAI,IACxBoD,SAAA,EAAA,EAAAC,kBAAA,CAGM,QAHNC,UAGM,CAAA;;AAHC,MAAA,OAAA,EAAOC,IAAE,CAAAR,EAAA,CAAA,UAAA,CAAA;;OAAsBc,QAAY,CAAA/D,YAAA,CAAA,UAAA,EAAaE,IAAI,EAAEC,KAAK,CAAA,CAAA,EAAA,CACtEwD,kBAAA,CAAsG,QAAtGH,UAAsG,CAAA;AAA/F,MAAA,OAAA,EAAOC,IAAE,CAAAR,EAAA,CAAA,YAAA,CAAA;;AAAwB,KAAA,EAAAc,QAAA,CAAA/D,YAAY,CAAe,YAAA,EAAAE,IAAI,EAAEC,KAAK,oBAAMA,iBACpFwD,kBAAA,CAAsG,QAAtGH,UAAsG,CAAA;AAA/F,MAAA,OAAA,EAAOC,IAAE,CAAAR,EAAA,CAAA,WAAA,CAAA;;KAAuB,EAAAc,QAAA,CAAA/D,YAAY,cAAcE,IAAI,EAAEC,KAAK,CAAM,CAAA,EAAAiE,eAAA,CAAAL,QAAA,CAAAnB,KAAK,CAAC1C,IAAI,CAAA,CAAA,EAAA,EAAA,CAAA,wBAGpGmE,WAAwK,CAAAC,uBAAA,CAAjJb,IAAM,CAAAU,MAAA,CAACjE,IAAI,CAAA,EAAA;;AAAGA,MAAAA,IAAI,EAAEA,IAAI;AAAGC,MAAAA,KAAK,EAAEA,KAAK;AAAGG,MAAAA,MAAM,EAAEH,KAAM,KAAIoE,KAAY,CAAA/E,YAAA;AAAGoD,MAAAA,KAAK,EAAEmB,QAAK,CAAAnB,KAAA,CAAC1C,IAAI,CAAA;AAAI7B,MAAAA,KAAK,EAAE0F,QAAA,CAAAlB,gBAAgB,CAAC3C,IAAI,EAAEC,KAAK;;;;;;;;;"}