{"version":3,"file":"drawer.vue2.cjs","sources":["../../../components/drawer/drawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Button } from '@/components/button'\nimport { Icon } from '@/components/icon'\nimport { Masker } from '@/components/masker'\nimport { Renderer } from '@/components/renderer'\n\nimport { computed, nextTick, reactive, ref, shallowReadonly, toRef, watch } from 'vue'\n\nimport {\n  createSizeProp,\n  emitEvent,\n  useIcons,\n  useId,\n  useLocale,\n  useNameHelper,\n  useProps,\n} from '@vexip-ui/config'\nimport { useMoving } from '@vexip-ui/hooks'\nimport { isPromise, toNumber } from '@vexip-ui/utils'\nimport { drawerProps } from './props'\nimport { drawerPlacements } from './symbol'\n\nimport type { DrawerSlots } from './symbol'\n\ndefineOptions({ name: 'Drawer' })\n\nconst _props = defineProps(drawerProps)\nconst props = useProps('drawer', _props, {\n  locale: null,\n  transfer: false,\n  active: {\n    default: false,\n    static: true,\n  },\n  width: {\n    default: 280,\n    validator: value => typeof value === 'string' || value > 0,\n  },\n  height: {\n    default: 280,\n    validator: value => typeof value === 'string' || value > 0,\n  },\n  placement: {\n    default: 'right',\n    validator: value => drawerPlacements.includes(value),\n  },\n  title: '',\n  closable: true,\n  inner: false,\n  maskClose: true,\n  drawerClass: null,\n  hideMask: false,\n  onBeforeClose: {\n    default: null,\n    isFunc: true,\n  },\n  resizable: false,\n  autoRemove: false,\n  footer: false,\n  confirmText: null,\n  confirmProps: null,\n  cancelText: null,\n  cancelProps: null,\n  loading: false,\n  confirmType: 'primary',\n  cancelType: 'default',\n  actionSize: createSizeProp('small'),\n  undivided: false,\n  disableEsc: false,\n  slots: () => ({}),\n})\n\nconst emit = defineEmits(['update:active'])\n\nconst slots = defineSlots<DrawerSlots>()\n\nconst nh = useNameHelper('drawer')\nconst icons = useIcons()\nconst locale = useLocale('drawer', toRef(props, 'locale'))\n\nconst currentActive = ref(props.active)\nconst currentWidth = ref(props.width)\nconst currentHeight = ref(props.height)\n\nconst wrapper = ref<HTMLElement>()\n\nconst { target: resizer, moving: resizing } = useMoving({\n  onStart: (state, event) => {\n    if (!props.resizable || event.button > 0 || !wrapper.value) {\n      return false\n    }\n\n    const width = `${currentWidth.value}`.endsWith('%')\n      ? wrapper.value.offsetWidth\n      : toNumber(currentWidth.value)\n    const height = `${currentHeight.value}`.endsWith('%')\n      ? wrapper.value.offsetHeight\n      : toNumber(currentHeight.value)\n\n    state.xStart = width\n    state.yStart = height\n\n    emitEvent(props.onResizeStart, { width, height })\n  },\n  onMove: (state, event) => {\n    const deltaX = event.clientX - state.clientX\n    const deltaY = event.clientY - state.clientY\n\n    let width = toNumber(currentWidth.value)\n    let height = toNumber(currentHeight.value)\n\n    switch (props.placement) {\n      case 'top': {\n        height = state.yStart + deltaY\n        break\n      }\n      case 'right': {\n        width = state.xStart - deltaX\n        break\n      }\n      case 'bottom': {\n        height = state.yStart - deltaY\n        break\n      }\n      default: {\n        width = state.xStart + deltaX\n      }\n    }\n\n    currentWidth.value = Math.max(width, 100)\n    currentHeight.value = Math.max(height, 100)\n\n    emitEvent(props.onResizeMove, {\n      width: toNumber(currentWidth.value),\n      height: toNumber(currentHeight.value),\n    })\n  },\n  onEnd: () => {\n    emitEvent(props.onResizeEnd, {\n      width: toNumber(currentWidth.value),\n      height: toNumber(currentHeight.value),\n    })\n  },\n})\n\nconst className = computed(() => {\n  return [\n    nh.b(),\n    nh.bs('vars'),\n    {\n      [nh.bm('inherit')]: props.inherit,\n      [nh.bm('inner')]: props.inner,\n      [nh.bm('closable')]: props.closable,\n      [nh.bm('resizable')]: props.resizable,\n      [nh.bm('undivided')]: props.undivided,\n    },\n  ]\n})\nconst moveTransition = computed(() => {\n  return nh.ns(`move-${props.placement}`)\n})\nconst wrapperClass = computed(() => {\n  return [\n    nh.be('wrapper'),\n    nh.bem('wrapper', props.placement),\n    {\n      [nh.bem('wrapper', 'hide-mask')]: props.hideMask,\n      [nh.bem('wrapper', 'resizing')]: resizing.value,\n    },\n    props.drawerClass,\n  ]\n})\nconst wrapperStyle = computed(() => {\n  const placement = props.placement\n\n  if (placement === 'top' || placement === 'bottom') {\n    const height = currentHeight.value\n\n    return {\n      height: `${height}`.endsWith('%') ? height : `${height}px`,\n    }\n  }\n\n  const width = currentWidth.value\n\n  return {\n    width: `${width}`.endsWith('%') ? width : `${width}px`,\n  }\n})\nconst hasTitle = computed(() => {\n  return !!(slots.header || slots.title || props.title || props.slots.header || props.slots.title)\n})\nconst titleId = useId()\nconst bodyId = useId()\n\nwatch(\n  () => props.active,\n  value => {\n    currentActive.value = value\n  },\n)\nwatch(\n  () => props.width,\n  value => {\n    currentWidth.value = value\n  },\n)\nwatch(\n  () => props.height,\n  value => {\n    currentHeight.value = value\n  },\n)\n\ndefineExpose({\n  resizing,\n  titleId,\n  bodyId,\n  wrapper,\n  resizer,\n  handleConfirm,\n  handleCancel,\n  handleClose,\n})\n\nconst slotParams = shallowReadonly(\n  reactive({\n    resizing,\n    handleConfirm,\n    handleCancel,\n    handleClose,\n  }),\n)\n\nfunction setActive(active: boolean) {\n  if (currentActive.value === active) return\n\n  currentActive.value = active\n\n  emit('update:active', active)\n  emitEvent(props.onToggle, active)\n}\n\nasync function handleClose(isConfirm = false) {\n  let result: unknown = true\n\n  if (typeof props.onBeforeClose === 'function') {\n    result = props.onBeforeClose(isConfirm)\n\n    if (isPromise(result)) {\n      result = await result\n    }\n  }\n\n  if (result !== false) {\n    nextTick(() => {\n      setActive(false)\n      emitEvent(props.onClose)\n    })\n  }\n\n  return result\n}\n\nfunction handleMaskClose() {\n  if (props.maskClose) {\n    return handleClose()\n  }\n}\n\nfunction handleShow() {\n  emitEvent(props.onShow)\n}\n\nfunction handleHide() {\n  emitEvent(props.onHide)\n}\n\nfunction handleConfirm() {\n  handleClose(true)\n  emitEvent(props.onConfirm)\n}\n\nfunction handleCancel() {\n  handleClose(false)\n  emitEvent(props.onCancel)\n}\n</script>\n\n<template>\n  <Masker\n    v-model:active=\"currentActive\"\n    :inherit=\"props.inherit\"\n    :class=\"className\"\n    :inner=\"props.inner\"\n    :transition-name=\"moveTransition\"\n    :closable=\"props.maskClose\"\n    :disabled=\"props.hideMask\"\n    :on-before-close=\"handleMaskClose\"\n    :transfer=\"props.transfer\"\n    :auto-remove=\"props.autoRemove\"\n    :disable-esc=\"props.disableEsc\"\n    @show=\"handleShow\"\n    @hide=\"handleHide\"\n  >\n    <template #default=\"{ show }\">\n      <section\n        v-show=\"show\"\n        ref=\"wrapper\"\n        :class=\"wrapperClass\"\n        :style=\"wrapperStyle\"\n        role=\"dialog\"\n        :aria-modal=\"show ? 'true' : undefined\"\n        :aria-labelledby=\"titleId\"\n        :aria-describedby=\"bodyId\"\n      >\n        <div v-if=\"hasTitle\" :class=\"nh.be('header')\">\n          <slot name=\"header\" v-bind=\"slotParams\">\n            <Renderer :renderer=\"props.slots.header\" :data=\"slotParams\">\n              <div :id=\"titleId\" :class=\"nh.be('title')\">\n                <slot name=\"title\" v-bind=\"slotParams\">\n                  <Renderer :renderer=\"props.slots.title\" :data=\"slotParams\">\n                    {{ props.title }}\n                  </Renderer>\n                </slot>\n              </div>\n              <button\n                v-if=\"props.closable\"\n                type=\"button\"\n                :class=\"nh.be('close')\"\n                @click=\"handleClose()\"\n              >\n                <slot name=\"close\" v-bind=\"slotParams\">\n                  <Renderer :renderer=\"props.slots.close\" :data=\"slotParams\">\n                    <Icon\n                      v-bind=\"icons.close\"\n                      :scale=\"+(icons.close.scale || 1) * 1.2\"\n                      label=\"close\"\n                    ></Icon>\n                  </Renderer>\n                </slot>\n              </button>\n            </Renderer>\n          </slot>\n        </div>\n        <div :id=\"bodyId\" :class=\"nh.be('content')\">\n          <slot v-bind=\"slotParams\">\n            <Renderer :renderer=\"props.slots.default\" :data=\"slotParams\"></Renderer>\n          </slot>\n        </div>\n        <div v-if=\"props.footer || slots.footer || props.slots.footer\" :class=\"nh.be('footer')\">\n          <slot name=\"footer\" v-bind=\"slotParams\">\n            <Renderer :renderer=\"props.slots.footer\" :data=\"slotParams\">\n              <Button\n                :class=\"[nh.be('button'), nh.bem('button', 'cancel')]\"\n                inherit\n                text\n                :type=\"props.cancelType\"\n                :size=\"props.actionSize\"\n                v-bind=\"props.cancelProps\"\n                @click=\"handleCancel\"\n              >\n                {{ props.cancelText || locale.cancel }}\n              </Button>\n              <Button\n                :class=\"[nh.be('button'), nh.bem('button', 'confirm')]\"\n                inherit\n                :type=\"props.confirmType\"\n                :size=\"props.actionSize\"\n                :loading=\"props.loading\"\n                v-bind=\"props.confirmProps\"\n                @click=\"handleConfirm\"\n              >\n                {{ props.confirmText || locale.confirm }}\n              </Button>\n            </Renderer>\n          </slot>\n        </div>\n        <div\n          v-if=\"props.resizable\"\n          ref=\"resizer\"\n          :class=\"[\n            nh.be('handler'),\n            nh.bem('handler', props.placement),\n            {\n              [nh.bem('handler', 'resizing')]: resizing\n            }\n          ]\"\n        >\n          <slot name=\"handler\" v-bind=\"slotParams\">\n            <Renderer :renderer=\"props.slots.handler\" :data=\"slotParams\"></Renderer>\n          </slot>\n        </div>\n      </section>\n    </template>\n  </Masker>\n</template>\n"],"names":["_props","__props","props","useProps","value","drawerPlacements","createSizeProp","emit","__emit","slots","_useSlots","nh","useNameHelper","icons","useIcons","locale","useLocale","toRef","currentActive","ref","currentWidth","currentHeight","wrapper","resizer","resizing","useMoving","state","event","width","toNumber","height","emitEvent","deltaX","deltaY","className","computed","moveTransition","wrapperClass","wrapperStyle","placement","hasTitle","titleId","useId","bodyId","watch","__expose","handleConfirm","handleCancel","handleClose","slotParams","shallowReadonly","reactive","setActive","active","isConfirm","result","isPromise","nextTick","handleMaskClose","handleShow","handleHide","_createBlock","_unref","Masker","$event","_withCtx","show","_createElementVNode","_createElementBlock","_normalizeClass","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","_createVNode","Renderer","_createTextVNode","_toDisplayString","Icon","_mergeProps"],"mappings":"goBA0BA,MAAMA,EAASC,EACTC,EAAQC,EAAAA,SAAS,SAAUH,EAAQ,CACvC,OAAQ,KACR,SAAU,GACV,OAAQ,CACN,QAAS,GACT,OAAQ,EACV,EACA,MAAO,CACL,QAAS,IACT,UAAWI,GAAS,OAAOA,GAAU,UAAYA,EAAQ,CAC3D,EACA,OAAQ,CACN,QAAS,IACT,UAAWA,GAAS,OAAOA,GAAU,UAAYA,EAAQ,CAC3D,EACA,UAAW,CACT,QAAS,QACT,UAAWA,GAASC,EAAiB,iBAAA,SAASD,CAAK,CACrD,EACA,MAAO,GACP,SAAU,GACV,MAAO,GACP,UAAW,GACX,YAAa,KACb,SAAU,GACV,cAAe,CACb,QAAS,KACT,OAAQ,EACV,EACA,UAAW,GACX,WAAY,GACZ,OAAQ,GACR,YAAa,KACb,aAAc,KACd,WAAY,KACZ,YAAa,KACb,QAAS,GACT,YAAa,UACb,WAAY,UACZ,WAAYE,iBAAe,OAAO,EAClC,UAAW,GACX,WAAY,GACZ,MAAO,KAAO,CAAC,EAAA,CAChB,EAEKC,EAAOC,EAEPC,EAAQC,EAAAA,SAAA,EAERC,EAAKC,gBAAc,QAAQ,EAC3BC,EAAQC,EAAAA,SAAS,EACjBC,EAASC,EAAAA,UAAU,SAAUC,EAAAA,MAAMf,EAAO,QAAQ,CAAC,EAEnDgB,EAAgBC,EAAAA,IAAIjB,EAAM,MAAM,EAChCkB,EAAeD,EAAAA,IAAIjB,EAAM,KAAK,EAC9BmB,EAAgBF,EAAAA,IAAIjB,EAAM,MAAM,EAEhCoB,EAAUH,EAAAA,IAAiB,EAE3B,CAAE,OAAQI,EAAS,OAAQC,CAAA,EAAaC,EAAAA,UAAU,CACtD,QAAS,CAACC,EAAOC,IAAU,CACrB,GAAA,CAACzB,EAAM,WAAayB,EAAM,OAAS,GAAK,CAACL,EAAQ,MAC5C,MAAA,GAGT,MAAMM,EAAQ,GAAGR,EAAa,KAAK,GAAG,SAAS,GAAG,EAC9CE,EAAQ,MAAM,YACdO,EAAAA,SAAST,EAAa,KAAK,EACzBU,EAAS,GAAGT,EAAc,KAAK,GAAG,SAAS,GAAG,EAChDC,EAAQ,MAAM,aACdO,EAAAA,SAASR,EAAc,KAAK,EAEhCK,EAAM,OAASE,EACfF,EAAM,OAASI,EAEfC,EAAAA,UAAU7B,EAAM,cAAe,CAAE,MAAA0B,EAAO,OAAAE,EAAQ,CAClD,EACA,OAAQ,CAACJ,EAAOC,IAAU,CAClB,MAAAK,EAASL,EAAM,QAAUD,EAAM,QAC/BO,EAASN,EAAM,QAAUD,EAAM,QAEjC,IAAAE,EAAQC,EAAAA,SAAST,EAAa,KAAK,EACnCU,EAASD,EAAAA,SAASR,EAAc,KAAK,EAEzC,OAAQnB,EAAM,UAAW,CACvB,IAAK,MAAO,CACV4B,EAASJ,EAAM,OAASO,EACxB,KAAA,CAEF,IAAK,QAAS,CACZL,EAAQF,EAAM,OAASM,EACvB,KAAA,CAEF,IAAK,SAAU,CACbF,EAASJ,EAAM,OAASO,EACxB,KAAA,CAEF,QACEL,EAAQF,EAAM,OAASM,CACzB,CAGFZ,EAAa,MAAQ,KAAK,IAAIQ,EAAO,GAAG,EACxCP,EAAc,MAAQ,KAAK,IAAIS,EAAQ,GAAG,EAE1CC,EAAA,UAAU7B,EAAM,aAAc,CAC5B,MAAO2B,EAAAA,SAAST,EAAa,KAAK,EAClC,OAAQS,EAAAA,SAASR,EAAc,KAAK,CAAA,CACrC,CACH,EACA,MAAO,IAAM,CACXU,EAAA,UAAU7B,EAAM,YAAa,CAC3B,MAAO2B,EAAAA,SAAST,EAAa,KAAK,EAClC,OAAQS,EAAAA,SAASR,EAAc,KAAK,CAAA,CACrC,CAAA,CACH,CACD,EAEKa,EAAYC,EAAAA,SAAS,IAClB,CACLxB,EAAG,EAAE,EACLA,EAAG,GAAG,MAAM,EACZ,CACE,CAACA,EAAG,GAAG,SAAS,CAAC,EAAGT,EAAM,QAC1B,CAACS,EAAG,GAAG,OAAO,CAAC,EAAGT,EAAM,MACxB,CAACS,EAAG,GAAG,UAAU,CAAC,EAAGT,EAAM,SAC3B,CAACS,EAAG,GAAG,WAAW,CAAC,EAAGT,EAAM,UAC5B,CAACS,EAAG,GAAG,WAAW,CAAC,EAAGT,EAAM,SAAA,CAEhC,CACD,EACKkC,EAAiBD,EAAAA,SAAS,IACvBxB,EAAG,GAAG,QAAQT,EAAM,SAAS,EAAE,CACvC,EACKmC,EAAeF,EAAAA,SAAS,IACrB,CACLxB,EAAG,GAAG,SAAS,EACfA,EAAG,IAAI,UAAWT,EAAM,SAAS,EACjC,CACE,CAACS,EAAG,IAAI,UAAW,WAAW,CAAC,EAAGT,EAAM,SACxC,CAACS,EAAG,IAAI,UAAW,UAAU,CAAC,EAAGa,EAAS,KAC5C,EACAtB,EAAM,WACR,CACD,EACKoC,EAAeH,EAAAA,SAAS,IAAM,CAClC,MAAMI,EAAYrC,EAAM,UAEpB,GAAAqC,IAAc,OAASA,IAAc,SAAU,CACjD,MAAMT,EAAST,EAAc,MAEtB,MAAA,CACL,OAAQ,GAAGS,CAAM,GAAG,SAAS,GAAG,EAAIA,EAAS,GAAGA,CAAM,IACxD,CAAA,CAGF,MAAMF,EAAQR,EAAa,MAEpB,MAAA,CACL,MAAO,GAAGQ,CAAK,GAAG,SAAS,GAAG,EAAIA,EAAQ,GAAGA,CAAK,IACpD,CAAA,CACD,EACKY,EAAWL,EAAAA,SAAS,IACjB,CAAC,EAAE1B,EAAM,QAAUA,EAAM,OAASP,EAAM,OAASA,EAAM,MAAM,QAAUA,EAAM,MAAM,MAC3F,EACKuC,EAAUC,EAAAA,MAAM,EAChBC,EAASD,EAAAA,MAAM,EAErBE,EAAA,MACE,IAAM1C,EAAM,OACHE,GAAA,CACPc,EAAc,MAAQd,CAAA,CAE1B,EACAwC,EAAA,MACE,IAAM1C,EAAM,MACHE,GAAA,CACPgB,EAAa,MAAQhB,CAAA,CAEzB,EACAwC,EAAA,MACE,IAAM1C,EAAM,OACHE,GAAA,CACPiB,EAAc,MAAQjB,CAAA,CAE1B,EAEayC,EAAA,CACX,SAAArB,EACA,QAAAiB,EACA,OAAAE,EACA,QAAArB,EACA,QAAAC,EACA,cAAAuB,EACA,aAAAC,EACA,YAAAC,CAAA,CACD,EAED,MAAMC,EAAaC,EAAA,gBACjBC,WAAS,CACP,SAAA3B,EACA,cAAAsB,EACA,aAAAC,EACA,YAAAC,CACD,CAAA,CACH,EAEA,SAASI,EAAUC,EAAiB,CAC9BnC,EAAc,QAAUmC,IAE5BnC,EAAc,MAAQmC,EAEtB9C,EAAK,gBAAiB8C,CAAM,EAClBtB,YAAA7B,EAAM,SAAUmD,CAAM,EAAA,CAGnB,eAAAL,EAAYM,EAAY,GAAO,CAC5C,IAAIC,EAAkB,GAElB,OAAA,OAAOrD,EAAM,eAAkB,aACxBqD,EAAArD,EAAM,cAAcoD,CAAS,EAElCE,EAAAA,UAAUD,CAAM,IAClBA,EAAS,MAAMA,IAIfA,IAAW,IACbE,EAAAA,SAAS,IAAM,CACbL,EAAU,EAAK,EACfrB,EAAA,UAAU7B,EAAM,OAAO,CAAA,CACxB,EAGIqD,CAAA,CAGT,SAASG,GAAkB,CACzB,GAAIxD,EAAM,UACR,OAAO8C,EAAY,CACrB,CAGF,SAASW,GAAa,CACpB5B,EAAA,UAAU7B,EAAM,MAAM,CAAA,CAGxB,SAAS0D,GAAa,CACpB7B,EAAA,UAAU7B,EAAM,MAAM,CAAA,CAGxB,SAAS4C,GAAgB,CACvBE,EAAY,EAAI,EAChBjB,EAAA,UAAU7B,EAAM,SAAS,CAAA,CAG3B,SAAS6C,GAAe,CACtBC,EAAY,EAAK,EACjBjB,EAAA,UAAU7B,EAAM,QAAQ,CAAA,6BAKxB2D,EAAAA,YAyGSC,EAAA,MAAAC,CAAA,EAAA,CAxGC,OAAQ7C,EAAa,uCAAbA,EAAa,MAAA8C,GAC5B,QAASF,EAAAA,MAAK5D,CAAA,EAAC,QACf,uBAAOgC,EAAS,KAAA,EAChB,MAAO4B,EAAAA,MAAK5D,CAAA,EAAC,MACb,kBAAiBkC,EAAc,MAC/B,SAAU0B,EAAAA,MAAK5D,CAAA,EAAC,UAChB,SAAU4D,EAAAA,MAAK5D,CAAA,EAAC,SAChB,kBAAiBwD,EACjB,SAAUI,EAAAA,MAAK5D,CAAA,EAAC,SAChB,cAAa4D,EAAAA,MAAK5D,CAAA,EAAC,WACnB,cAAa4D,EAAAA,MAAK5D,CAAA,EAAC,WACnB,OAAMyD,EACN,OAAMC,CAAA,GAEI,QAAOK,EAAA,QAChB,CAuFU,CAxFU,KAAAC,KAAI,kBACxBC,qBAuFU,UAAA,SArFJ,UAAJ,IAAI7C,EACH,uBAAOe,EAAY,KAAA,EACnB,uBAAOC,EAAY,KAAA,EACpB,KAAK,SACJ,aAAY4B,EAAI,OAAY,OAC5B,kBAAiBJ,QAAOrB,CAAA,EACxB,mBAAkBqB,QAAMnB,CAAA,CAAA,GAEdH,EAAQ,qBAAnB4B,EAAAA,mBA4BM,MAAA,OA5BgB,MAAKC,EAAE,eAAAP,EAAA,MAAEnD,CAAA,EAAC,GAAE,QAAA,CAAA,CAAA,GAChC2D,aA0BOC,EAAA,OAAA,SAAAC,EAAAA,eAAAC,EA1BqB,mBAAAX,QAAUb,CAAA,CAAA,CAAA,EAAtC,IA0BO,CAzBLyB,cAwBWZ,EAAAA,MAAAa,CAAA,EAAA,CAxBA,SAAUb,EAAA,MAAA5D,CAAA,EAAM,MAAM,OAAS,KAAM4D,QAAUb,CAAA,CAAA,qBACxD,IAMM,CANNkB,EAAAA,mBAMM,MAAA,CANA,GAAIL,QAAOrB,CAAA,EAAG,MAAK4B,EAAE,eAAAP,EAAA,MAAEnD,CAAA,EAAC,GAAE,OAAA,CAAA,CAAA,GAC9B2D,aAIOC,EAAA,OAAA,QAAAC,EAAAA,eAAAC,EAJoB,mBAAAX,QAAUb,CAAA,CAAA,CAAA,EAArC,IAIO,CAHLyB,cAEWZ,EAAAA,MAAAa,CAAA,EAAA,CAFA,SAAUb,EAAA,MAAA5D,CAAA,EAAM,MAAM,MAAQ,KAAM4D,QAAUb,CAAA,CAAA,qBACvD,IAAiB,CAAd2B,kBAAAC,EAAA,gBAAAf,EAAA,MAAA5D,CAAA,EAAM,KAAK,EAAA,CAAA,CAAA,wCAKZ4D,QAAA5D,CAAA,EAAM,wBADdkE,qBAeS,SAAA,OAbP,KAAK,SACJ,MAAKC,EAAE,eAAAP,EAAA,MAAEnD,CAAA,EAAC,GAAE,OAAA,CAAA,EACZ,uBAAOqC,EAAW,EAAA,GAEnBsB,aAQOC,EAAA,OAAA,QAAAC,EAAAA,eAAAC,EARoB,mBAAAX,QAAUb,CAAA,CAAA,CAAA,EAArC,IAQO,CAPLyB,cAMWZ,EAAAA,MAAAa,CAAA,EAAA,CANA,SAAUb,EAAA,MAAA5D,CAAA,EAAM,MAAM,MAAQ,KAAM4D,QAAUb,CAAA,CAAA,qBACvD,IAIQ,CAJRyB,EAAA,YAIQZ,QAJRgB,CAAA,EAAAC,aACUjB,QAGFjD,CAAA,EAHQ,MAAK,CAClB,MAAS,EAAAiD,EAAAA,MAAAjD,CAAA,EAAM,MAAM,OAAK,GAAA,IAC3B,MAAM,+JAQpBsD,EAAAA,mBAIM,MAAA,CAJA,GAAIL,QAAMnB,CAAA,EAAG,MAAK0B,EAAE,eAAAP,EAAA,MAAEnD,CAAA,EAAC,GAAE,SAAA,CAAA,CAAA,GAC7B2D,aAEOC,EAAA,OAAA,UAAAC,EAAAA,eAAAC,EAFO,mBAAAX,QAAUb,CAAA,CAAA,CAAA,EAAxB,IAEO,CADLyB,cAAwEZ,EAAAA,MAAAa,CAAA,EAAA,CAA7D,SAAUb,EAAA,MAAA5D,CAAA,EAAM,MAAM,QAAU,KAAM4D,QAAUb,CAAA,wCAGpDa,EAAAA,MAAK5D,CAAA,EAAC,QAAUO,EAAM,QAAUqD,EAAA,MAAK5D,CAAA,EAAC,MAAM,sBAAvDkE,EAAAA,mBA2BM,MAAA,OA3B0D,MAAKC,EAAE,eAAAP,EAAA,MAAEnD,CAAA,EAAC,GAAE,QAAA,CAAA,CAAA,GAC1E2D,aAyBOC,EAAA,OAAA,SAAAC,EAAAA,eAAAC,EAzBqB,mBAAAX,QAAUb,CAAA,CAAA,CAAA,EAAtC,IAyBO,CAxBLyB,cAuBWZ,EAAAA,MAAAa,CAAA,EAAA,CAvBA,SAAUb,EAAA,MAAA5D,CAAA,EAAM,MAAM,OAAS,KAAM4D,QAAUb,CAAA,CAAA,qBACxD,IAUS,CAVTyB,EAAAA,YAUSZ,EAAA,SAVTiB,aAUS,CATN,OAAQjB,EAAE,MAAAnD,CAAA,EAAC,GAAc,QAAA,EAAAmD,EAAA,MAAAnD,CAAA,EAAG,IAAG,SAAA,QAAA,CAAA,EAChC,QAAA,GACA,KAAA,GACC,KAAMmD,EAAAA,MAAK5D,CAAA,EAAC,WACZ,KAAM4D,EAAAA,MAAK5D,CAAA,EAAC,UAAA,EACL4D,EAAAA,MAAA5D,CAAA,EAAM,YACb,CAAA,QAAO6C,CAAY,CAAA,EAAA,mBAEpB,IAAuC,CAApC6B,kBAAAC,EAAAA,gBAAAf,EAAA,MAAA5D,CAAA,EAAM,YAAc4D,EAAAA,MAAA/C,CAAA,EAAO,MAAM,EAAA,CAAA,CAAA,oCAEtC2D,EAAAA,YAUSZ,EAAA,SAVTiB,aAUS,CATN,OAAQjB,EAAE,MAAAnD,CAAA,EAAC,GAAc,QAAA,EAAAmD,EAAA,MAAAnD,CAAA,EAAG,IAAG,SAAA,SAAA,CAAA,EAChC,QAAA,GACC,KAAMmD,EAAAA,MAAK5D,CAAA,EAAC,YACZ,KAAM4D,EAAAA,MAAK5D,CAAA,EAAC,WACZ,QAAS4D,EAAAA,MAAK5D,CAAA,EAAC,OAAA,EACR4D,EAAAA,MAAA5D,CAAA,EAAM,aACb,CAAA,QAAO4C,CAAa,CAAA,EAAA,mBAErB,IAAyC,CAAtC8B,kBAAAC,EAAAA,gBAAAf,EAAA,MAAA5D,CAAA,EAAM,aAAe4D,EAAAA,MAAA/C,CAAA,EAAO,OAAO,EAAA,CAAA,CAAA,+GAMtC+C,QAAA5D,CAAA,EAAM,yBADdkE,qBAcM,MAAA,eAZA,UAAJ,IAAI7C,EACH,MAAK8C,EAAAA,eAAA,CAAgBP,EAAAA,MAAAnD,CAAA,EAAG,GAAE,SAAA,EAAyBmD,EAAA,MAAAnD,CAAA,EAAG,IAAe,UAAAmD,QAAA5D,CAAA,EAAM,SAAS,IAAgC4D,EAAAA,MAAEnD,CAAA,EAAC,IAAG,UAAA,UAAA,CAAA,EAA0BmD,EAAAA,MAAQtC,CAAA,CAAA,MAQ7J8C,aAEOC,EAAA,OAAA,UAAAC,EAAAA,eAAAC,EAFsB,mBAAAX,QAAUb,CAAA,CAAA,CAAA,EAAvC,IAEO,CADLyB,cAAwEZ,EAAAA,MAAAa,CAAA,EAAA,CAA7D,SAAUb,EAAA,MAAA5D,CAAA,EAAM,MAAM,QAAU,KAAM4D,QAAUb,CAAA,mFAnFvDiB,CAAI"}