UNPKG

@dialpad/dialtone

Version:

Dialpad's Dialtone design system monorepo

1 lines 25.6 kB
{"version":3,"file":"toast.cjs","sources":["../../../components/toast/layouts/toast_layout_default.vue","../../../components/toast/layouts/toast_layout_alternate_icon.vue","../../../components/toast/layouts/toast_layout_alternate.vue","../../../components/toast/toast.vue"],"sourcesContent":["<template>\n <div\n v-if=\"isShown\"\n :class=\"[\n 'd-toast',\n kindClass,\n { 'd-toast--important': important },\n ]\"\n data-qa=\"dt-toast\"\n :aria-hidden=\"(!isShown).toString()\"\n >\n <div class=\"d-toast__dialog\">\n <dt-notice-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n v-bind=\"$attrs\"\n >\n <!-- @slot Slot for custom icon -->\n <slot name=\"icon\" />\n </dt-notice-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :role=\"role\"\n v-bind=\"$attrs\"\n >\n <template #titleOverride>\n <!-- @slot Allows you to override the title, only use this if you need to override\n with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the toast -->\n <slot>\n {{ message }}\n </slot>\n </dt-notice-content>\n <dt-notice-action\n :hide-action=\"hideAction\"\n :hide-close=\"hideClose\"\n :close-button-props=\"closeButtonProps\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n v-bind=\"$attrs\"\n @close=\"$emit('close')\"\n >\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <slot name=\"action\" />\n </dt-notice-action>\n </div>\n </div>\n</template>\n\n<script>\nimport utils from '@/common/utils';\nimport { DtNoticeIcon, DtNoticeContent, DtNoticeAction, NOTICE_KINDS } from '@/components/notice';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport { TOAST_ROLES } from '../toast_constants.js';\nexport default {\n name: 'ToastLayoutDefault',\n\n components: {\n DtNoticeIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n inheritAttrs: false,\n\n props: {\n isShown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n validator: (role) => {\n return TOAST_ROLES.includes(role);\n },\n },\n\n /**\n * Severity level of the toast, sets the icon and background\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validator: (kind) => {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Props for the toast close button.\n */\n closeButtonProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: ['close'],\n\n computed: {\n kindClass () {\n const kindClasses = {\n error: 'd-toast--error',\n info: 'd-toast--info',\n success: 'd-toast--success',\n warning: 'd-toast--warning',\n base: 'd-toast--base',\n };\n\n return kindClasses[this.kind];\n },\n },\n};\n</script>\n","<template>\n <div\n aria-hidden=\"true\"\n class=\"d-toast-layout-alternate__icon\"\n >\n <slot>\n <component\n :is=\"defaultIcon\"\n v-if=\"defaultIcon\"\n :size=\"size\"\n />\n </slot>\n </div>\n</template>\n\n<script>\nimport {\n DtIconInfo,\n DtIconAlertTriangle,\n DtIconBell,\n DtIconSparkle,\n} from '@dialpad/dialtone-icons/vue3';\nimport { TOAST_ALTERNATE_KINDS } from '../toast_constants.js';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\n\nconst kindToIcon = new Map([\n ['info', DtIconInfo],\n ['success', DtIconInfo],\n ['warning', DtIconAlertTriangle],\n ['error', DtIconInfo],\n ['base', DtIconBell],\n ['gradient', DtIconSparkle],\n]);\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtToastLayoutAlternateIcon',\n\n components: {\n DtIconInfo,\n DtIconAlertTriangle,\n DtIconBell,\n DtIconSparkle,\n },\n\n props: {\n /**\n * Kind of icon\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return TOAST_ALTERNATE_KINDS.includes(kind);\n },\n },\n\n size: {\n type: String,\n default: '400',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n\n computed: {\n defaultIcon () {\n return kindToIcon.get(this.kind);\n },\n },\n};\n</script>\n","<template>\n <div\n v-if=\"isShown\"\n :class=\"[\n 'd-toast-alternate',\n kindClass,\n ]\"\n data-qa=\"dt-toast\"\n :aria-hidden=\"(!isShown).toString()\"\n >\n <div class=\"d-toast-alternate__dialog\">\n <div class=\"d-toast-alternate__header\">\n <dt-toast-layout-alternate-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n size=\"200\"\n v-bind=\"$attrs\"\n >\n <slot name=\"icon\" />\n </dt-toast-layout-alternate-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :role=\"role\"\n v-bind=\"$attrs\"\n >\n <template #titleOverride>\n <slot name=\"titleOverride\" />\n </template>\n </dt-notice-content>\n\n <!-- Close Button -->\n <dt-notice-action\n :hide-action=\"true\"\n :hide-close=\"hideClose\"\n button-size=\"xs\"\n :close-button-props=\"closeButtonProps\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n v-bind=\"$attrs\"\n @close=\"$emit('close')\"\n />\n </div>\n\n <!-- Content Section -->\n <div class=\"d-toast-alternate__content\">\n <slot>\n {{ message }}\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport utils from '@/common/utils';\nimport { DtNoticeContent, DtNoticeAction } from '@/components/notice';\nimport DtToastLayoutAlternateIcon from './toast_layout_alternate_icon.vue';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport { TOAST_ROLES, TOAST_ALTERNATE_KINDS } from '../toast_constants.js';\nexport default {\n name: 'ToastLayoutAlternate',\n\n components: {\n DtToastLayoutAlternateIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n inheritAttrs: false,\n\n props: {\n isShown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n validator: (role) => {\n return TOAST_ROLES.includes(role);\n },\n },\n\n /**\n * Severity level of the toast, sets the icon and background\n * @values base, error, info, success, warning, gradient\n */\n kind: {\n type: String,\n default: 'base',\n validator: (kind) => {\n return TOAST_ALTERNATE_KINDS.includes(kind);\n },\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Props for the toast close button.\n */\n closeButtonProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: ['close'],\n\n computed: {\n kindClass () {\n const kindClasses = {\n error: 'd-toast-alternate--error',\n info: 'd-toast-alternate--info',\n success: 'd-toast-alternate--success',\n warning: 'd-toast-alternate--warning',\n gradient: 'd-toast-alternate--gradient',\n };\n\n return kindClasses[this.kind];\n },\n },\n};\n</script>\n","<template>\n <component\n :is=\"selectedLayout\"\n :is-shown=\"isShown\"\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :message=\"message\"\n :role=\"role\"\n :kind=\"kind\"\n :important=\"important\"\n :close-button-props=\"closeButtonProps\"\n :hide-close=\"hideClose\"\n :hide-icon=\"hideIcon\"\n :hide-action=\"hideAction\"\n v-bind=\"$attrs\"\n @close=\"handleClose\"\n >\n <!-- @slot Slot for custom icon -->\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #titleOverride>\n <!-- @slot Allows you to override the title, only use this if you need to override\n with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the toast -->\n <slot>\n {{ message }}\n </slot>\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <template #action>\n <slot name=\"action\" />\n </template>\n </component>\n</template>\n\n<script>\nimport { TOAST_MIN_DURATION, TOAST_LAYOUTS } from './toast_constants.js';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport ToastLayoutDefault from './layouts/toast_layout_default.vue';\nimport ToastLayoutAlternate from './layouts/toast_layout_alternate.vue';\n\n/**\n * A toast notice, sometimes called a snackbar, is a time-based message that appears based on users' actions.\n * It contains at-a-glance information about outcomes and can be paired with actions.\n * @see https://dialtone.dialpad.com/components/toast.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtToast',\n\n components: {\n ToastLayoutDefault,\n ToastLayoutAlternate,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: undefined,\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: undefined,\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n },\n\n /**\n * Severity level of the toast, could be different depending on which toast layout is used.\n * @values base, error, info, success, warning, gradient\n */\n kind: {\n type: String,\n default: undefined,\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls whether the toast is shown. If a valid duration is provided, the toast will disappear\n * after reaching the duration time, so it's convenient to use `v-model` with this prop to update\n * the data in your component.\n * Supports v-model\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Props for the toast close button.\n */\n closeButtonProps: {\n type: Object,\n default: undefined,\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * The duration in ms the toast will display before disappearing.\n * The toast won't disappear if the duration is not provided.\n * If it's provided, it should be equal to or greater than 6000.\n */\n duration: {\n type: Number,\n default: null,\n validator: (duration) => {\n return duration >= TOAST_MIN_DURATION;\n },\n },\n\n /**\n * The layout / styling you wish to use for the toast.\n * @values default, alternate\n */\n layout: {\n type: String,\n default: 'default',\n validator: (layout) => {\n return TOAST_LAYOUTS.includes(layout);\n },\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n\n /**\n * Sync show value\n *\n * @event update:show\n */\n 'update:show',\n ],\n\n data () {\n return {\n isShown: false,\n minDuration: TOAST_MIN_DURATION,\n };\n },\n\n computed: {\n shouldSetTimeout () {\n return !!this.duration && this.duration >= this.minDuration;\n },\n\n selectedLayout () {\n return this.layout === 'alternate' ? ToastLayoutAlternate : ToastLayoutDefault;\n },\n },\n\n watch: {\n show: {\n handler: function (show) {\n this.isShown = show;\n if (show) {\n this.setTimeout();\n } else {\n clearTimeout(this.displayTimer);\n }\n },\n\n immediate: true,\n },\n },\n\n unmounted () {\n clearTimeout(this.displayTimer);\n },\n\n methods: {\n closeToast (event) {\n this.$emit('update:show', false);\n this.$emit('close', event);\n },\n\n setTimeout () {\n if (this.shouldSetTimeout) {\n this.displayTimer = setTimeout(() => {\n this.isShown = false;\n this.$emit('update:show', false);\n }, this.duration);\n }\n },\n\n handleClose () {\n this.isShown = false;\n this.$emit('close');\n this.$emit('update:show', false);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtNoticeIcon","DtNoticeContent","DtNoticeAction","SrOnlyCloseButtonMixin","utils","role","TOAST_ROLES","kind","NOTICE_KINDS","_hoisted_1","_hoisted_2","$props","_createElementBlock","_normalizeClass","$options","_createElementVNode","_createCommentVNode","_openBlock","_createBlock","_component_dt_notice_icon","_mergeProps","_ctx","_withCtx","_renderSlot","_createVNode","_component_dt_notice_content","_createTextVNode","_toDisplayString","_component_dt_notice_action","kindToIcon","DtIconInfo","DtIconAlertTriangle","DtIconBell","DtIconSparkle","TOAST_ALTERNATE_KINDS","s","ICON_SIZE_MODIFIERS","_resolveDynamicComponent","DtToastLayoutAlternateIcon","_hoisted_3","_hoisted_4","_component_dt_toast_layout_alternate_icon","ToastLayoutDefault","ToastLayoutAlternate","duration","TOAST_MIN_DURATION","layout","TOAST_LAYOUTS","show","event","$data"],"mappings":"4jBA0DKA,EAAU,CACb,KAAM,qBAEN,WAAY,cACVC,EAAY,QACZ,gBAAAC,EAAe,QACf,eAAAC,EAAc,OACf,EAED,OAAQ,CAACC,EAAAA,OAAsB,EAE/B,aAAc,GAEd,MAAO,CACL,QAAS,CACP,KAAM,QACN,QAAS,EACV,EAMD,QAAS,CACP,KAAM,OACN,SAAW,CAAE,OAAOC,UAAM,gBAAiB,CAAG,CAC/C,EAMD,UAAW,CACT,KAAM,OACN,SAAW,CAAE,OAAOA,UAAM,gBAAiB,CAAG,CAC/C,EAKD,MAAO,CACL,KAAM,OACN,QAAS,EACV,EAKD,QAAS,CACP,KAAM,OACN,QAAS,EACV,EAOD,KAAM,CACJ,KAAM,OACN,QAAS,SACT,UAAYC,GACHC,EAAW,YAAC,SAASD,CAAI,CAEnC,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,OACT,UAAYE,GACHC,EAAY,aAAC,SAASD,CAAI,CAEpC,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAMD,WAAY,CACV,KAAM,QACN,QAAS,EACV,CACF,EAED,MAAO,CAAC,OAAO,EAEf,SAAU,CACR,WAAa,CASX,MARoB,CAClB,MAAO,iBACP,KAAM,gBACN,QAAS,mBACT,QAAS,mBACT,KAAM,iBAGW,KAAK,IAAI,CAC7B,CACF,CACH,EApMAE,EAAA,CAAA,aAAA,EAWSC,EAAA,CAAA,MAAM,iBAAiB,iKATtBC,EAAO,uBADfC,EAiDM,mBAAA,MAAA,CAlDR,IAAA,EAGK,MAHLC,EAAAA,eAAA,WAGqCC,EAAS,gCAAgCH,EAAS,SAAA,IAKnF,UAAQ,WACP,eAAW,CAAIA,EAAO,SAAE,SAAQ,IAEjCI,EAAA,mBAsCM,MAtCNL,EAsCM,CApCKC,EAAQ,SAbvBK,EAAA,mBAAA,GAAA,EAAA,GAYMC,EAAAA,YAAAC,EAAAA,YAOiBC,EAPjBC,aAOiB,CAnBvB,IAAA,EAcS,KAAMT,EAAI,MACHU,EAAM,MAAA,EAAA,CAftB,QAAAC,EAAA,QAkBQ,IAAoB,CAApBC,aAAoBF,EAAA,OAAA,MAAA,IAlB5B,EAAA,iBAoBMG,EAAA,YAgBoBC,EAhBpBL,aAgBoB,CAfjB,WAAUT,EAAO,QACjB,aAAYA,EAAS,UACrB,MAAOA,EAAK,MACZ,KAAMA,EAAI,MACHU,EAAM,MAAA,EAAA,CAEH,wBAGT,IAA6B,CAA7BE,aAA6BF,EAAA,OAAA,eAAA,IA9BvC,QAAAC,EAAA,QAiCQ,IAEO,CAFPC,EAAAA,WAEOF,sBAFP,IAEO,CAnCfK,EAAAA,gBAAAC,EAAAA,gBAkCahB,EAAO,OAAA,EAAA,CAAA,MAlCpB,EAAA,gDAqCMa,EAAA,YAWmBI,EAXnBR,aAWmB,CAVhB,cAAaT,EAAU,WACvB,aAAYA,EAAS,UACrB,qBAAoBA,EAAgB,iBACpC,wBAAuBU,EAAmB,oBAC1C,8BAA6BA,EAAwB,0BAC9CA,EAAM,OAAA,CACb,uBAAOA,EAAK,MAAA,OAAA,MA5CrB,QAAAC,EAAA,QA+CQ,IAAsB,CAAtBC,aAAsBF,EAAA,OAAA,QAAA,IA/C9B,EAAA,gHAAA,EAAA,GAAAZ,CAAA,GAAAO,EAAA,mBAAA,GAAA,EAAA,gCCyBMa,EAAa,IAAI,IAAI,CACzB,CAAC,OAAQC,EAAAA,UAAU,EACnB,CAAC,UAAWA,EAAAA,UAAU,EACtB,CAAC,UAAWC,EAAAA,mBAAmB,EAC/B,CAAC,QAASD,EAAAA,UAAU,EACpB,CAAC,OAAQE,EAAAA,UAAU,EACnB,CAAC,WAAYC,EAAAA,aAAa,CAC5B,CAAC,EAEIlC,EAAU,CACb,aAAc,CAAE,KAAM,CAAG,EACzB,KAAM,6BAEN,WAAY,YACV+B,EAAU,WACV,oBAAAC,EAAmB,+BACnBC,EAAU,yBACVC,EAAa,aACd,EAED,MAAO,CAKL,KAAM,CACJ,KAAM,OACN,QAAS,OACT,SAAU1B,EAAM,CACd,OAAO2B,EAAqB,sBAAC,SAAS3B,CAAI,CAC3C,CACF,EAED,KAAM,CACJ,KAAM,OACN,QAAS,MACT,UAAY4B,GAAM,OAAO,KAAKC,qBAAmB,EAAE,SAASD,CAAC,CAC9D,CACF,EAED,SAAU,CACR,aAAe,CACb,OAAON,EAAW,IAAI,KAAK,IAAI,CAChC,CACF,CACH,KApEI,cAAY,OACZ,MAAM,0DAFR,OAAAZ,YAAA,EAAAL,qBAWM,MAXNH,EAWM,CAPJc,EAAAA,WAMOF,sBANP,IAMO,CAHGP,EAAW,2BAFnBI,EAIE,YAVRmB,0BAOavB,EAAW,WAAA,EAAA,CAPxB,IAAA,EASS,KAAMH,EAAI,wBATnBK,EAAA,mBAAA,GAAA,EAAA,oCC6DKjB,EAAU,CACb,KAAM,uBAEN,WAAY,CACV,2BAAAuC,EACA,gBAAArC,EAAe,QACf,eAAAC,EAAc,OACf,EAED,OAAQ,CAACC,EAAAA,OAAsB,EAE/B,aAAc,GAEd,MAAO,CACL,QAAS,CACP,KAAM,QACN,QAAS,EACV,EAMD,QAAS,CACP,KAAM,OACN,SAAW,CAAE,OAAOC,UAAM,gBAAiB,CAAG,CAC/C,EAMD,UAAW,CACT,KAAM,OACN,SAAW,CAAE,OAAOA,UAAM,gBAAiB,CAAG,CAC/C,EAKD,MAAO,CACL,KAAM,OACN,QAAS,EACV,EAKD,QAAS,CACP,KAAM,OACN,QAAS,EACV,EAOD,KAAM,CACJ,KAAM,OACN,QAAS,SACT,UAAYC,GACHC,EAAW,YAAC,SAASD,CAAI,CAEnC,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,OACT,UAAYE,GACH2B,EAAqB,sBAAC,SAAS3B,CAAI,CAE7C,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,CACF,EAED,MAAO,CAAC,OAAO,EAEf,SAAU,CACR,WAAa,CASX,MARoB,CAClB,MAAO,2BACP,KAAM,0BACN,QAAS,6BACT,QAAS,6BACT,SAAU,+BAGO,KAAK,IAAI,CAC7B,CACF,CACH,EA9LAE,EAAA,CAAA,aAAA,EAUSC,EAAA,CAAA,MAAM,2BAA2B,EAC/B6B,EAAA,CAAA,MAAM,2BAA2B,EAmCjCC,EAAA,CAAA,MAAM,4BAA4B,iLA5CnC7B,EAAO,uBADfC,EAmDM,mBAAA,MAAA,CApDR,IAAA,EAGK,MAHLC,EAAAA,eAAA,qBAG+CC,EAAS,YAIpD,UAAQ,WACP,eAAW,CAAIH,EAAO,SAAE,SAAQ,IAEjCI,EAAA,mBAyCM,MAzCNL,EAyCM,CAxCJK,EAAA,mBAgCM,MAhCNwB,EAgCM,CA9BK5B,EAAQ,SAbzBK,EAAA,mBAAA,GAAA,EAAA,GAYQC,EAAAA,YAAAC,EAAAA,YAOiCuB,EAPjCrB,aAOiC,CAnBzC,IAAA,EAcW,KAAMT,EAAI,KACX,KAAK,OACGU,EAAM,MAAA,EAAA,CAhBxB,QAAAC,EAAA,QAkBU,IAAoB,CAApBC,aAAoBF,EAAA,OAAA,MAAA,IAlB9B,EAAA,iBAoBQG,EAAA,YAUoBC,EAVpBL,aAUoB,CATjB,WAAUT,EAAO,QACjB,aAAYA,EAAS,UACrB,MAAOA,EAAK,MACZ,KAAMA,EAAI,MACHU,EAAM,MAAA,EAAA,CAEH,wBACT,IAA6B,CAA7BE,aAA6BF,EAAA,OAAA,eAAA,IA5BzC,EAAA,gDAiCQG,EAAA,YASEI,EATFR,aASE,CARC,cAAa,GACb,aAAYT,EAAS,UACtB,cAAY,KACX,qBAAoBA,EAAgB,iBACpC,wBAAuBU,EAAmB,oBAC1C,8BAA6BA,EAAwB,0BAC9CA,EAAM,OAAA,CACb,uBAAOA,EAAK,MAAA,OAAA,0GAKjBN,EAAA,mBAIM,MAJNyB,EAIM,CAHJjB,EAAAA,WAEOF,sBAFP,IAEO,CAjDfK,EAAAA,gBAAAC,EAAAA,gBAgDahB,EAAO,OAAA,EAAA,CAAA,OAhDpB,EAAA,GAAAF,CAAA,GAAAO,EAAA,mBAAA,GAAA,EAAA,gCCiDKjB,EAAU,CACb,aAAc,CAAE,KAAM,CAAG,EACzB,KAAM,UAEN,WAAY,CACV,mBAAA2C,EACA,qBAAAC,CACD,EAED,OAAQ,CAACxC,EAAAA,OAAsB,EAE/B,aAAc,GAEd,MAAO,CAKL,QAAS,CACP,KAAM,OACN,QAAS,MACV,EAMD,UAAW,CACT,KAAM,OACN,QAAS,MACV,EAKD,MAAO,CACL,KAAM,OACN,QAAS,MACV,EAKD,QAAS,CACP,KAAM,OACN,QAAS,MACV,EAOD,KAAM,CACJ,KAAM,OACN,QAAS,QACV,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,MACV,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EASD,KAAM,CACJ,KAAM,QACN,QAAS,EACV,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,MACV,EAMD,UAAW,CACT,KAAM,QACN,QAAS,MACV,EAMD,SAAU,CACR,KAAM,QACN,QAAS,MACV,EAMD,WAAY,CACV,KAAM,QACN,QAAS,MACV,EAOD,SAAU,CACR,KAAM,OACN,QAAS,KACT,UAAYyC,GACHA,GAAYC,EAAAA,kBAEtB,EAMD,OAAQ,CACN,KAAM,OACN,QAAS,UACT,UAAYC,GACHC,EAAa,cAAC,SAASD,CAAM,CAEvC,CACF,EAED,MAAO,CAML,QAOA,aACD,EAED,MAAQ,CACN,MAAO,CACL,QAAS,GACT,YAAaD,EAAkB,mBAElC,EAED,SAAU,CACR,kBAAoB,CAClB,MAAO,CAAC,CAAC,KAAK,UAAY,KAAK,UAAY,KAAK,WACjD,EAED,gBAAkB,CAChB,OAAO,KAAK,SAAW,YAAcF,EAAuBD,CAC7D,CACF,EAED,MAAO,CACL,KAAM,CACJ,QAAS,SAAUM,EAAM,CACvB,KAAK,QAAUA,EACXA,EACF,KAAK,WAAU,EAEf,aAAa,KAAK,YAAY,CAEjC,EAED,UAAW,EACZ,CACF,EAED,WAAa,CACX,aAAa,KAAK,YAAY,CAC/B,EAED,QAAS,CACP,WAAYC,EAAO,CACjB,KAAK,MAAM,cAAe,EAAK,EAC/B,KAAK,MAAM,QAASA,CAAK,CAC1B,EAED,YAAc,CACR,KAAK,mBACP,KAAK,aAAe,WAAW,IAAM,CACnC,KAAK,QAAU,GACf,KAAK,MAAM,cAAe,EAAK,CACjC,EAAG,KAAK,QAAQ,EAEnB,EAED,aAAe,CACb,KAAK,QAAU,GACf,KAAK,MAAM,OAAO,EAClB,KAAK,MAAM,cAAe,EAAK,CAChC,CACF,CACH,0BA9QE,OAAAhC,EAAAA,UAAA,EAAAC,cAkCYmB,EAAAA,wBAjCLvB,EAAc,cAAA,EADrBM,aAkCY,CAhCT,WAAU8B,EAAO,QACjB,WAAUvC,EAAO,QACjB,aAAYA,EAAS,UACrB,MAAOA,EAAK,MACZ,QAASA,EAAO,QAChB,KAAMA,EAAI,KACV,KAAMA,EAAI,KACV,UAAWA,EAAS,UACpB,qBAAoBA,EAAgB,iBACpC,aAAYA,EAAS,UACrB,YAAWA,EAAQ,SACnB,cAAaA,EAAU,YAChBU,EAAM,OAAA,CACb,QAAOP,EAAW,WAAA,CAAA,EAAA,CAGR,eACT,IAAoB,CAApBS,aAAoBF,EAAA,OAAA,MAAA,IAEX,wBAGT,IAA6B,CAA7BE,aAA6BF,EAAA,OAAA,eAAA,IAOpB,iBACT,IAAsB,CAAtBE,aAAsBF,EAAA,OAAA,QAAA,IAjC5B,QAAAC,EAAA,QA4BI,IAEO,CAFPC,EAAAA,WAEOF,sBAFP,IAEO,CA9BXK,EAAAA,gBAAAC,EAAAA,gBA6BShB,EAAO,OAAA,EAAA,CAAA,MA7BhB,EAAA"}