{"version":3,"file":"dep-c80c811f.mjs","sources":["../../../common/js/message/constants.ts","../../../common/js/message/animation.ts","../../../components/message/message.tsx"],"sourcesContent":["const DISTANCE = '32px';\n\nexport const THEME_LIST: string[] = ['info', 'success', 'warning', 'error', 'question', 'loading'];\n\nexport const PLACEMENT_OFFSET = {\n  center: {\n    left: '50%',\n    top: '50%',\n    transform: 'translateX(-50%) translateY(-50%)',\n  },\n  left: {\n    left: DISTANCE,\n    top: '50%',\n    transform: 'translateY(-50%)',\n  },\n  bottom: {\n    bottom: DISTANCE,\n    left: '50%',\n    transform: 'translateX(-50%)',\n  },\n  right: {\n    right: DISTANCE,\n    top: '50%',\n    transform: 'translateY(-50%)',\n  },\n  top: {\n    top: DISTANCE,\n    left: '50%',\n    transform: 'translateX(-50%)',\n  },\n  'top-left': {\n    left: DISTANCE,\n    top: DISTANCE,\n  },\n  'top-right': {\n    right: DISTANCE,\n    top: DISTANCE,\n  },\n  'bottom-left': {\n    left: DISTANCE,\n    bottom: DISTANCE,\n  },\n  'bottom-right': {\n    right: DISTANCE,\n    bottom: DISTANCE,\n  },\n};\n\nexport const PLACEMENT_LIST = Object.keys(PLACEMENT_OFFSET);\n","import { PLACEMENT_LIST } from './constants';\n\ntype CompositeOperationOrAuto = 'accumulate' | 'add' | 'auto' | 'replace';\n\ninterface Keyframe {\n  composite?: CompositeOperationOrAuto;\n  easing?: string;\n  offset?: number | null;\n  [property: string]: string | number | null | undefined;\n}\n\nconst ANIMATION_OPTION = {\n  duration: 200,\n  easing: 'linear',\n};\n\nfunction setDomStyleAfterAnimation(dom: HTMLElement, styleAfterAnimation: Keyframe) {\n  const keys = Object.keys(styleAfterAnimation);\n  for (let i = 0; i < keys.length; i += 1) {\n    const key = keys[i];\n    // @ts-ignore\n    // TODO: CSSStyleDeclaration\n    // eslint-disable-next-line no-param-reassign\n    dom.style[key] = styleAfterAnimation[key];\n  }\n}\n\nfunction getFadeInKeyframes(placement: string, offsetWidth: Number, offsetHeight: Number): Array<Keyframe> | null {\n  if (!PLACEMENT_LIST.includes(placement)) return null;\n  if (['top-left', 'left', 'bottom-left'].includes(placement)) {\n    return [\n      { opacity: 0, marginLeft: `-${offsetWidth}px` },\n      { opacity: 1, marginLeft: '0' },\n    ];\n  }\n  if (['top-right', 'right', 'bottom-right'].includes(placement)) {\n    return [\n      { opacity: 0, marginRight: `-${offsetWidth}px` },\n      { opacity: 1, marginRight: '0' },\n    ];\n  }\n  if (['top', 'center'].includes(placement)) {\n    return [\n      { opacity: 0, marginTop: `-${offsetHeight}px` },\n      { opacity: 1, marginTop: '0' },\n    ];\n  }\n  if (['bottom'].includes(placement)) {\n    return [\n      { opacity: 0, transform: `translate3d(0, ${offsetHeight}px, 0)` },\n      { opacity: 1, transform: 'translate3d(0, 0, 0)' },\n    ];\n  }\n  return null;\n}\n\nfunction getFadeOutKeyframes(placement: string, offsetHeight: Number): Array<Keyframe> | null {\n  if (!PLACEMENT_LIST.includes(placement)) return null;\n  if (['bottom-left', 'bottom', 'bottom-right'].includes(placement)) {\n    const marginOffset = `${offsetHeight}px`;\n    return [\n      { opacity: 1, marginTop: '0px' },\n      { opacity: 0, marginTop: marginOffset },\n    ];\n  }\n  const marginOffset = `-${offsetHeight}px`;\n  return [\n    { opacity: 1, marginTop: '0px' },\n    { opacity: 0, marginTop: marginOffset },\n  ];\n}\n\nfunction fadeIn(dom: HTMLElement, placement: string) {\n  if (!dom) return;\n  const offsetWidth = dom?.offsetWidth || 0;\n  const offsetHeight = dom?.offsetHeight || 0;\n  const fadeInKeyframes: Array<Keyframe> | null = getFadeInKeyframes(placement, offsetWidth, offsetHeight);\n  if (!fadeInKeyframes) return;\n  const styleAfterFadeIn = fadeInKeyframes[fadeInKeyframes.length - 1];\n  setDomStyleAfterAnimation(dom, styleAfterFadeIn);\n  dom.animate?.(fadeInKeyframes, ANIMATION_OPTION);\n}\n\nfunction fadeOut(dom: HTMLElement, placement: string, onFinish: Function) {\n  if (!dom) return;\n  const offsetHeight = dom.offsetHeight || 0;\n  const fadeOutKeyframes: Array<Keyframe> | null = getFadeOutKeyframes(placement, offsetHeight);\n  if (!fadeOutKeyframes) {\n    onFinish();\n    return;\n  }\n  const styleAfterFadeOut = fadeOutKeyframes[fadeOutKeyframes.length - 1];\n  setDomStyleAfterAnimation(dom, styleAfterFadeOut);\n  const animation = dom.animate && dom.animate(fadeOutKeyframes, ANIMATION_OPTION);\n  if (animation) {\n    animation.onfinish = () => {\n      // eslint-disable-next-line no-param-reassign\n      dom.style.display = 'none';\n      onFinish();\n    };\n  } else {\n    // eslint-disable-next-line no-param-reassign\n    dom.style.display = 'none';\n    onFinish();\n  }\n}\n\nexport { fadeIn, fadeOut };\n","import { computed, defineComponent, h, onBeforeMount, onMounted, ref } from 'vue';\nimport {\n  CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n  CloseIcon as TdCloseIcon,\n  ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n  HelpCircleFilledIcon as TdHelpCircleFilledIcon,\n  InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\n\nimport { THEME_LIST, fadeIn, fadeOut } from '@tdesign/common-js/message/index';\nimport { useContent, useGlobalIcon, usePrefixClass, useTNodeJSX } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport props from './props';\n\nexport default defineComponent({\n  name: 'TMessage',\n  props: {\n    ...props,\n    placement: String, // just for animation\n    className: String,\n  },\n  setup(props, { slots, expose }) {\n    const COMPONENT_NAME = usePrefixClass('message');\n    const { InfoCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, HelpCircleFilledIcon, CloseIcon } =\n      useGlobalIcon({\n        InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n        CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n        ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n        HelpCircleFilledIcon: TdHelpCircleFilledIcon,\n        CloseIcon: TdCloseIcon,\n      });\n    const classPrefix = usePrefixClass();\n\n    const renderTNode = useTNodeJSX();\n    const renderContent = useContent();\n\n    const msgRef = ref(null);\n    const timer = ref(null);\n\n    const classes = computed(() => {\n      const status: Record<string, boolean> = {};\n      THEME_LIST.forEach((t) => (status[`${classPrefix.value}-is-${t}`] = props.theme === t));\n      return [\n        COMPONENT_NAME.value,\n        status,\n        {\n          [`${classPrefix.value}-is-closable`]: props.closeBtn || slots.closeBtn,\n        },\n        props.className,\n      ];\n    });\n\n    const close = (e?: MouseEvent) => {\n      props.onClose?.({ trigger: 'close-click', e });\n      props.onCloseBtnClick?.({ e });\n    };\n\n    const clearTimer = () => {\n      props.duration && clearTimeout(timer.value);\n    };\n\n    const setTimer = () => {\n      if (!props.duration) {\n        return;\n      }\n      timer.value = Number(\n        setTimeout(() => {\n          clearTimer();\n          const msgDom = msgRef.value as HTMLElement;\n          fadeOut(msgDom, props.placement, () => {\n            props.onClose?.({ trigger: 'duration-end' });\n            props.onDurationEnd?.();\n          });\n        }, props.duration),\n      );\n    };\n\n    const renderClose = () => {\n      const defaultClose = <CloseIcon />;\n      return (\n        <span class={`${COMPONENT_NAME.value}__close`} onClick={close}>\n          {renderTNode('closeBtn', defaultClose)}\n        </span>\n      );\n    };\n\n    const renderIcon = () => {\n      if (props.icon === false) return;\n      if (isFunction(props.icon)) return props.icon(h);\n      if (slots.icon) {\n        return slots.icon(null);\n      }\n      const Icon = {\n        info: InfoCircleFilledIcon,\n        success: CheckCircleFilledIcon,\n        warning: ErrorCircleFilledIcon,\n        error: ErrorCircleFilledIcon,\n        question: HelpCircleFilledIcon,\n        loading: TLoading,\n      }[props.theme];\n      return <Icon />;\n    };\n\n    onBeforeMount(() => {\n      props.duration && setTimer();\n    });\n\n    onMounted(() => {\n      const msgDom = msgRef.value;\n      fadeIn(msgDom, props.placement);\n    });\n\n    expose({ close });\n\n    return () => (\n      <div ref={msgRef} class={classes.value} onMouseenter={clearTimer} onMouseleave={setTimer}>\n        {renderIcon()}\n        {renderContent('content', 'default')}\n        {renderClose()}\n      </div>\n    );\n  },\n});\n"],"names":["DISTANCE","THEME_LIST","PLACEMENT_OFFSET","center","left","top","transform","bottom","right","PLACEMENT_LIST","Object","keys","ANIMATION_OPTION","duration","easing","setDomStyleAfterAnimation","dom","styleAfterAnimation","i","length","key","style","getFadeInKeyframes","placement","offsetWidth","offsetHeight","includes","opacity","marginLeft","concat","marginRight","marginTop","getFadeOutKeyframes","marginOffset","fadeIn","_dom$animate","fadeInKeyframes","styleAfterFadeIn","animate","call","fadeOut","onFinish","fadeOutKeyframes","styleAfterFadeOut","animation","onfinish","display","defineComponent","name","props","_objectSpread","String","className","setup","slots","_ref","expose","COMPONENT_NAME","usePrefixClass","_useGlobalIcon","useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","classPrefix","renderTNode","useTNodeJSX","renderContent","useContent","msgRef","ref","timer","classes","computed","status","forEach","t","value","theme","_defineProperty","closeBtn","close","e","_props2$onClose","_props2$onCloseBtnCli","onClose","trigger","onCloseBtnClick","clearTimer","clearTimeout","setTimer","Number","setTimeout","msgDom","_props2$onClose2","_props2$onDurationEnd","onDurationEnd","renderClose","defaultClose","_createVNode","renderIcon","icon","isFunction","h","Icon","info","success","warning","error","question","loading","TLoading","onBeforeMount","onMounted"],"mappings":";;;;;;;;;;;;;;AAAA,IAAMA,QAAW,GAAA,MAAA,CAAA;AAEV,IAAMC,aAAuB,CAAC,MAAA,EAAQ,WAAW,SAAW,EAAA,OAAA,EAAS,YAAY,SAAS,CAAA,CAAA;AAE1F,IAAMC,gBAAmB,GAAA;AAC9BC,EAAAA,MAAQ,EAAA;AACNC,IAAAA,IAAM,EAAA,KAAA;AACNC,IAAAA,GAAK,EAAA,KAAA;AACLC,IAAAA,SAAW,EAAA,mCAAA;GACb;AACAF,EAAAA,IAAM,EAAA;AACJA,IAAAA,IAAM,EAAAJ,QAAA;AACNK,IAAAA,GAAK,EAAA,KAAA;AACLC,IAAAA,SAAW,EAAA,kBAAA;GACb;AACAC,EAAAA,MAAQ,EAAA;AACNA,IAAAA,MAAQ,EAAAP,QAAA;AACRI,IAAAA,IAAM,EAAA,KAAA;AACNE,IAAAA,SAAW,EAAA,kBAAA;GACb;AACAE,EAAAA,KAAO,EAAA;AACLA,IAAAA,KAAO,EAAAR,QAAA;AACPK,IAAAA,GAAK,EAAA,KAAA;AACLC,IAAAA,SAAW,EAAA,kBAAA;GACb;AACAD,EAAAA,GAAK,EAAA;AACHA,IAAAA,GAAK,EAAAL,QAAA;AACLI,IAAAA,IAAM,EAAA,KAAA;AACNE,IAAAA,SAAW,EAAA,kBAAA;GACb;AACA,EAAA,UAAY,EAAA;AACVF,IAAAA,IAAM,EAAAJ,QAAA;AACNK,IAAAA,GAAK,EAAAL,QAAAA;GACP;AACA,EAAA,WAAa,EAAA;AACXQ,IAAAA,KAAO,EAAAR,QAAA;AACPK,IAAAA,GAAK,EAAAL,QAAAA;GACP;AACA,EAAA,aAAe,EAAA;AACbI,IAAAA,IAAM,EAAAJ,QAAA;AACNO,IAAAA,MAAQ,EAAAP,QAAAA;GACV;AACA,EAAA,cAAgB,EAAA;AACdQ,IAAAA,KAAO,EAAAR,QAAA;AACPO,IAAAA,MAAQ,EAAAP,QAAAA;AACV,GAAA;AACF,EAAA;AAEa,IAAAS,cAAA,GAAiBC,MAAO,CAAAC,IAAA,CAAKT,gBAAgB,CAAA;;ACrC1D,IAAMU,gBAAmB,GAAA;AACvBC,EAAAA,QAAU,EAAA,GAAA;AACVC,EAAAA,MAAQ,EAAA,QAAA;AACV,CAAA,CAAA;AAEA,SAASC,yBAAAA,CAA0BC,KAAkBC,mBAA+B,EAAA;AAC5E,EAAA,IAAAN,IAAA,GAAOD,MAAO,CAAAC,IAAA,CAAKM,mBAAmB,CAAA,CAAA;AAC5C,EAAA,KAAA,IAASC,IAAI,CAAG,EAAAA,CAAA,GAAIP,IAAK,CAAAQ,MAAA,EAAQD,KAAK,CAAG,EAAA;AACvC,IAAA,IAAME,MAAMT,IAAK,CAAAO,CAAA,CAAA,CAAA;IAIbF,GAAA,CAAAK,KAAA,CAAMD,OAAOH,mBAAoB,CAAAG,GAAA,CAAA,CAAA;AACvC,GAAA;AACF,CAAA;AAEA,SAASE,kBAAAA,CAAmBC,SAAmB,EAAAC,WAAA,EAAqBC,YAA8C,EAAA;EAC5G,IAAA,CAAChB,cAAe,CAAAiB,QAAA,CAASH,SAAS,CAAA,EAAU,OAAA,IAAA,CAAA;AAChD,EAAA,IAAI,CAAC,UAAY,EAAA,MAAA,EAAQ,aAAa,CAAE,CAAAG,QAAA,CAASH,SAAS,CAAG,EAAA;AACpD,IAAA,OAAA,CACL;AAAEI,MAAAA,OAAA,EAAS,CAAG;MAAAC,UAAA,EAAA,GAAA,CAAAC,MAAA,CAAgBL,WAAgB,EAAA,IAAA,CAAA;AAAA,KAAA,EAC9C;AAAEG,MAAAA,OAAA,EAAS,CAAG;AAAAC,MAAAA,UAAA,EAAY,GAAA;AAAI,KAAA,CAChC,CAAA;AACF,GAAA;AACA,EAAA,IAAI,CAAC,WAAa,EAAA,OAAA,EAAS,cAAc,CAAE,CAAAF,QAAA,CAASH,SAAS,CAAG,EAAA;AACvD,IAAA,OAAA,CACL;AAAEI,MAAAA,OAAA,EAAS,CAAG;MAAAG,WAAA,EAAA,GAAA,CAAAD,MAAA,CAAiBL,WAAgB,EAAA,IAAA,CAAA;AAAA,KAAA,EAC/C;AAAEG,MAAAA,OAAA,EAAS,CAAG;AAAAG,MAAAA,WAAA,EAAa,GAAA;AAAI,KAAA,CACjC,CAAA;AACF,GAAA;EACA,IAAI,CAAC,KAAO,EAAA,QAAQ,CAAE,CAAAJ,QAAA,CAASH,SAAS,CAAG,EAAA;AAClC,IAAA,OAAA,CACL;AAAEI,MAAAA,OAAA,EAAS,CAAG;MAAAI,SAAA,EAAA,GAAA,CAAAF,MAAA,CAAeJ,YAAiB,EAAA,IAAA,CAAA;AAAA,KAAA,EAC9C;AAAEE,MAAAA,OAAA,EAAS,CAAG;AAAAI,MAAAA,SAAA,EAAW,GAAA;AAAI,KAAA,CAC/B,CAAA;AACF,GAAA;EACA,IAAI,CAAC,QAAQ,CAAE,CAAAL,QAAA,CAASH,SAAS,CAAG,EAAA;AAC3B,IAAA,OAAA,CACL;AAAEI,MAAAA,OAAA,EAAS,CAAG;MAAArB,SAAA,EAAA,iBAAA,CAAAuB,MAAA,CAA6BJ,YAAqB,EAAA,QAAA,CAAA;AAAA,KAAA,EAChE;AAAEE,MAAAA,OAAA,EAAS,CAAG;AAAArB,MAAAA,SAAA,EAAW,sBAAA;AAAuB,KAAA,CAClD,CAAA;AACF,GAAA;AACO,EAAA,OAAA,IAAA,CAAA;AACT,CAAA;AAEA,SAAS0B,mBAAAA,CAAoBT,WAAmBE,YAA8C,EAAA;EACxF,IAAA,CAAChB,cAAe,CAAAiB,QAAA,CAASH,SAAS,CAAA,EAAU,OAAA,IAAA,CAAA;AAChD,EAAA,IAAI,CAAC,aAAe,EAAA,QAAA,EAAU,cAAc,CAAE,CAAAG,QAAA,CAASH,SAAS,CAAG,EAAA;AACjE,IAAA,IAAMU,0BAAkBR,YAAA,EAAA,IAAA,CAAA,CAAA;AACjB,IAAA,OAAA,CACL;AAAEE,MAAAA,OAAA,EAAS,CAAG;AAAAI,MAAAA,SAAA,EAAW,KAAA;AAAM,KAAA,EAC/B;AAAEJ,MAAAA,OAAA,EAAS,CAAG;AAAAI,MAAAA,SAAA,EAAWE,aAAAA;AAAa,KAAA,CACxC,CAAA;AACF,GAAA;AACA,EAAA,IAAMA,0BAAmBR,YAAA,EAAA,IAAA,CAAA,CAAA;AAClB,EAAA,OAAA,CACL;AAAEE,IAAAA,OAAA,EAAS,CAAG;AAAAI,IAAAA,SAAA,EAAW,KAAA;AAAM,GAAA,EAC/B;AAAEJ,IAAAA,OAAA,EAAS,CAAG;AAAAI,IAAAA,SAAA,EAAWE,YAAAA;AAAa,GAAA,CACxC,CAAA;AACF,CAAA;AAEA,SAASC,MAAAA,CAAOlB,KAAkBO,SAAmB,EAAA;AAAA,EAAA,IAAAY,YAAA,CAAA;EACnD,IAAI,CAACnB,GAAA,EAAK,OAAA;EACJ,IAAAQ,WAAA,GAAc,CAAAR,gBAAAA,0BAAAA,IAAKQ,WAAe,KAAA,CAAA,CAAA;EAClC,IAAAC,YAAA,GAAe,CAAAT,gBAAAA,0BAAAA,IAAKS,YAAgB,KAAA,CAAA,CAAA;EAC1C,IAAMW,eAA0C,GAAAd,kBAAA,CAAmBC,SAAW,EAAAC,WAAA,EAAaC,YAAY,CAAA,CAAA;EACvG,IAAI,CAACW,eAAA,EAAiB,OAAA;EAChB,IAAAC,gBAAA,GAAmBD,eAAgB,CAAAA,eAAA,CAAgBjB,MAAS,GAAA,CAAA,CAAA,CAAA;AAClEJ,EAAAA,yBAAA,CAA0BC,KAAKqB,gBAAgB,CAAA,CAAA;AAC3C,EAAA,CAAAF,YAAA,GAAAnB,GAAA,CAAAsB,OAAA,cAAAH,YAAA,KAAA,KAAA,CAAA,IAAAA,YAAA,CAAAI,IAAA,CAAAvB,GAAA,EAAUoB,iBAAiBxB,gBAAgB,CAAA,CAAA;AACjD,CAAA;AAEA,SAAS4B,OAAAA,CAAQxB,GAAkB,EAAAO,SAAA,EAAmBkB,QAAoB,EAAA;EACxE,IAAI,CAACzB,GAAA,EAAK,OAAA;AACJ,EAAA,IAAAS,YAAA,GAAeT,IAAIS,YAAgB,IAAA,CAAA,CAAA;AACnC,EAAA,IAAAiB,gBAAA,GAA2CV,mBAAoB,CAAAT,SAAA,EAAWE,YAAY,CAAA,CAAA;EAC5F,IAAI,CAACiB,gBAAkB,EAAA;AACZD,IAAAA,QAAA,EAAA,CAAA;AACT,IAAA,OAAA;AACF,GAAA;EACM,IAAAE,iBAAA,GAAoBD,gBAAiB,CAAAA,gBAAA,CAAiBvB,MAAS,GAAA,CAAA,CAAA,CAAA;AACrEJ,EAAAA,yBAAA,CAA0BC,KAAK2B,iBAAiB,CAAA,CAAA;AAChD,EAAA,IAAMC,YAAY5B,GAAI,CAAAsB,OAAA,IAAWtB,GAAI,CAAAsB,OAAA,CAAQI,kBAAkB9B,gBAAgB,CAAA,CAAA;AAC/E,EAAA,IAAIgC,SAAW,EAAA;IACbA,SAAA,CAAUC,WAAW,YAAM;AAEzB7B,MAAAA,GAAA,CAAIK,MAAMyB,OAAU,GAAA,MAAA,CAAA;AACXL,MAAAA,QAAA,EAAA,CAAA;KACX,CAAA;AACF,GAAO,MAAA;AAELzB,IAAAA,GAAA,CAAIK,MAAMyB,OAAU,GAAA,MAAA,CAAA;AACXL,IAAAA,QAAA,EAAA,CAAA;AACX,GAAA;AACF;;;;AC1FA,eAAeM,eAAgB,CAAA;AAC7BC,EAAAA,IAAM,EAAA,UAAA;AACNC,EAAAA,KAAO,EAAAC,aAAA,CAAAA,aAAA,KACFD,KAAA,CAAA,EAAA,EAAA,EAAA;AACH1B,IAAAA,SAAW,EAAA4B,MAAA;AACXC,IAAAA,SAAW,EAAAD,MAAAA;GACb,CAAA;AACAE,EAAAA,KAAMJ,WAANI,KAAMJ,CAAAA,MAAAA,EAAAA,IAAAA,EAA0B;AAAA,IAAA,IAAjBK,KAAA,GAAAC,IAAA,CAAAD,KAAA;MAAOE,cAAAA;AACd,IAAA,IAAAC,cAAA,GAAiBC,eAAe,SAAS,CAAA,CAAA;IAC/C,IAAAC,cAAA,GACEC,aAAc,CAAA;AACZC,QAAAA,oBAAsB,EAAAC,oBAAA;AACtBC,QAAAA,qBAAuB,EAAAC,qBAAA;AACvBC,QAAAA,qBAAuB,EAAAC,qBAAA;AACvBC,QAAAA,oBAAsB,EAAAC,oBAAA;AACtBC,QAAAA,SAAW,EAAAC,SAAAA;AACb,OAAC,CAAA;MAPKT,sBAAsB,GAAAF,cAAA,CAAtBE,oBAAsB;MAAAE,uBAAA,GAAAJ,cAAA,CAAAI,qBAAA;MAAuBE,yCAAAA;MAAuBE,sBAAsB,GAAAR,cAAA,CAAtBQ,oBAAsB;MAAAE,WAAA,GAAAV,cAAA,CAAAU,SAAA,CAAA;AAQlG,IAAA,IAAME,cAAcb,cAAe,EAAA,CAAA;AAEnC,IAAA,IAAMc,cAAcC,WAAY,EAAA,CAAA;AAChC,IAAA,IAAMC,gBAAgBC,UAAW,EAAA,CAAA;AAE3B,IAAA,IAAAC,MAAA,GAASC,IAAI,IAAI,CAAA,CAAA;AACjB,IAAA,IAAAC,KAAA,GAAQD,IAAI,IAAI,CAAA,CAAA;AAEhB,IAAA,IAAAE,OAAA,GAAUC,SAAS,YAAM;MAC7B,IAAMC,SAAkC,EAAC,CAAA;AAC9BhF,MAAAA,UAAA,CAAAiF,OAAA,CAAQ,UAACC,CAAA,EAAA;AAAA,QAAA,OAAOF,MAAO,CAAApD,EAAAA,CAAAA,MAAA,CAAG0C,YAAYa,KAAY,EAAA,MAAA,CAAA,CAAAvD,MAAA,CAAAsD,CAAA,CAAA,CAAA,GAAOlC,MAAM,CAAAoC,KAAA,KAAUF,CAAE,CAAA;OAAA,CAAA,CAAA;MAC/E,OAAA,CACL1B,cAAe,CAAA2B,KAAA,EACfH,MAAA,EAAAK,eAAA,CAAA,EAAA,EAAA,EAAA,CAAAzD,MAAA,CAEM0C,WAAA,CAAYa,KAAsBnC,EAAAA,cAAAA,CAAAA,EAAAA,MAAAA,CAAMsC,YAAYjC,KAAM,CAAAiC,QAAA,CAEhEtC,EAAAA,MAAM,CAAAG,SAAA,CACR,CAAA;AACF,KAAC,CAAA,CAAA;AAEK,IAAA,IAAAoC,KAAA,GAAQ,SAARA,KAAAA,CAASC,CAAmB,EAAA;MAAA,IAAAC,eAAA,EAAAC,qBAAA,CAAA;AAChC1C,MAAAA,CAAAA,eAAAA,GAAAA,OAAM2C,OAAU,MAAA,IAAA,IAAAF,eAAA,KAAA,KAAA,CAAA,IAAhBzC,eAAAA,CAAAA,IAAAA,CAAAA,QAAgB;AAAE4C,QAAAA,OAAS,EAAA,aAAA;AAAeJ,QAAAA,GAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;AAC7CxC,MAAAA,CAAAA,qBAAAA,GAAAA,MAAM,CAAA6C,eAAA,MAAA,IAAA,IAAAH,qBAAA,KAAA,KAAA,CAAA,IAAN1C,qBAAAA,CAAAA,IAAAA,CAAAA,MAAM,EAAkB;AAAEwC,QAAAA,CAAA,EAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KAC/B,CAAA;AAEA,IAAA,IAAMM,aAAa,SAAbA,aAAmB;MACvB9C,MAAM,CAAApC,QAAA,IAAYmF,YAAa,CAAAlB,KAAA,CAAMM,KAAK,CAAA,CAAA;KAC5C,CAAA;AAEA,IAAA,IAAMa,WAAW,SAAXA,WAAiB;AACjB,MAAA,IAAA,CAAChD,OAAMpC,QAAU,EAAA;AACnB,QAAA,OAAA;AACF,OAAA;AACAiE,MAAAA,KAAA,CAAMM,KAAQ,GAAAc,MAAA,CACZC,WAAW,YAAM;AACJJ,QAAAA,UAAA,EAAA,CAAA;AACX,QAAA,IAAMK,SAASxB,MAAO,CAAAQ,KAAA,CAAA;AACd5C,QAAAA,OAAA,CAAA4D,MAAA,EAAQnD,MAAM,CAAA1B,SAAA,EAAW,YAAM;UAAA,IAAA8E,gBAAA,EAAAC,qBAAA,CAAA;AACrCrD,UAAAA,CAAAA,gBAAAA,GAAAA,MAAM,CAAA2C,OAAA,MAAA,IAAA,IAAAS,gBAAA,KAAA,KAAA,CAAA,IAANpD,gBAAAA,CAAAA,IAAAA,CAAAA,MAAM,EAAU;AAAE4C,YAAAA,OAAA,EAAS,cAAA;AAAe,WAAC,CAAA,CAAA;AAC3C5C,UAAAA,CAAAA,qBAAAA,GAAAA,OAAMsD,aAAgB,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,IAAtBrD,qBAAAA,CAAAA,IAAAA,CAAAA,MAAsB,CAAA,CAAA;AACxB,SAAC,CAAA,CAAA;AACH,OAAA,EAAGA,OAAMpC,QAAQ,CACnB,CAAA,CAAA;KACF,CAAA;AAEA,IAAA,IAAM2F,cAAc,SAAdA,cAAoB;AAClB,MAAA,IAAAC,YAAA,GAAAC,WAAA,CAAArC,WAAA,EAA0B,IAAA,EAAA,IAAA,CAAA,CAAA;AAChC,MAAA,OAAAqC,WAAA,CAAA,MAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAA7E,MAAA,CACkB4B,cAAe,CAAA2B,KAAA,EAAA,SAAA,CAAA;QAAA,SAAyBI,EAAAA,KAAAA;AAAA,OAAA,EAAA,CACrDhB,WAAY,CAAA,UAAA,EAAYiC,YAAY,CAAA,CAAA,CAAA,CAAA;KAG3C,CAAA;AAEA,IAAA,IAAME,aAAa,SAAbA,aAAmB;AACvB,MAAA,IAAI1D,OAAM2D,IAAS,KAAA,KAAA,EAAO,OAAA;AACtB,MAAA,IAAAC,UAAA,CAAW5D,OAAM2D,IAAI,CAAA,EAAU3D,OAAAA,MAAAA,CAAM2D,KAAKE,CAAC,CAAA,CAAA;MAC/C,IAAIxD,MAAMsD,IAAM,EAAA;AACP,QAAA,OAAAtD,KAAA,CAAMsD,KAAK,IAAI,CAAA,CAAA;AACxB,OAAA;AACA,MAAA,IAAMG,IAAO,GAAA;AACXC,QAAAA,IAAM,EAAAnD,sBAAA;AACNoD,QAAAA,OAAS,EAAAlD,uBAAA;AACTmD,QAAAA,OAAS,EAAAjD,uBAAA;AACTkD,QAAAA,KAAO,EAAAlD,uBAAA;AACPmD,QAAAA,QAAU,EAAAjD,sBAAA;AACVkD,QAAAA,OAAS,EAAAC,OAAAA;AACX,QAAErE,MAAM,CAAAoC,KAAA,CAAA,CAAA;MACR,OAAAqB,WAAA,CAAAK,IAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;KACF,CAAA;AAEAQ,IAAAA,aAAA,CAAc,YAAM;AAClBtE,MAAAA,MAAAA,CAAMpC,YAAYoF,QAAS,EAAA,CAAA;AAC7B,KAAC,CAAA,CAAA;AAEDuB,IAAAA,SAAA,CAAU,YAAM;AACd,MAAA,IAAMpB,SAASxB,MAAO,CAAAQ,KAAA,CAAA;AACflD,MAAAA,MAAA,CAAAkE,MAAA,EAAQnD,OAAM1B,SAAS,CAAA,CAAA;AAChC,KAAC,CAAA,CAAA;AAEMiC,IAAAA,MAAA,CAAA;AAAEgC,MAAAA,OAAAA,KAAAA;AAAM,KAAC,CAAA,CAAA;IAET,OAAA,YAAA;AAAA,MAAA,OAAAkB,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,KAAA,EACK9B,MAAA;QAAA,OAAeG,EAAAA,OAAQ,CAAAK,KAAA;AAAA,QAAA,cAAA,EAAqBW,UAAA;QAAA,cAA0BE,EAAAA,QAAAA;AAAA,OAAA,EAAA,CAC7EU,UAAW,EAAA,EACXjC,aAAA,CAAc,WAAW,SAAS,CAAA,EAClC8B,WAAY,EAAA,CAAA,CAAA,CAAA;KAHd,CAAA;AAML,GAAA;AACF,CAAC,CAAA;;;;"}