{"version":3,"file":"message.mjs","sources":["../../src/message/message.tsx"],"sourcesContent":["import { h, ref, computed, watch, defineComponent, toRefs, reactive, nextTick, onMounted, Transition } from 'vue';\nimport { CheckCircleFilledIcon, CloseIcon, InfoCircleFilledIcon, ErrorCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport { isString, isObject } from 'lodash-es';\n\nimport Link from '../link';\nimport props from './props';\nimport { MessageMarquee, TdMessageProps } from './type';\nimport config from '../config';\nimport { reconvertUnit } from '../shared';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\n\nconst { prefix } = config;\nconst iconDefault = {\n  info: h(InfoCircleFilledIcon),\n  success: h(CheckCircleFilledIcon),\n  warning: h(ErrorCircleFilledIcon),\n  error: h(ErrorCircleFilledIcon),\n};\nconst closeBtnDefault = h(CloseIcon);\nlet messageIndex = -1;\n\nexport default defineComponent({\n  name: `${prefix}-message`,\n  props,\n  setup(props, context) {\n    const messageClass = usePrefixClass('message');\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n    const messageRef = ref<HTMLElement>(null);\n    const rect = ref<DOMRect>();\n\n    // 初始化动画相关数据\n    const state = reactive({\n      duration: 0,\n      offset: 0,\n      listWidth: 0,\n      itemWidth: 0,\n      scroll: {\n        marquee: false,\n        speed: 50,\n        loop: -1, // 值为 -1 表示循环播放，值为 0 表示不循环播放\n        delay: 300,\n      },\n    });\n\n    const { visible, modelValue } = toRefs(props);\n    const [currentVisible, setVisible] = useVModel(visible, modelValue, props.defaultVisible);\n\n    const rootClasses = computed(() => ({\n      [`${messageClass.value}`]: true,\n      [`${messageClass.value}--${props.theme}`]: true,\n      [`${messageClass.value}-align--${props.align}`]: !!props.align,\n    }));\n\n    const textWrapClasses = computed(() => ({\n      [`${messageClass.value}__text-wrap`]: true,\n      [`${messageClass.value}__text-nowrap`]: props.marquee,\n    }));\n\n    const getGap = () => {\n      if (props.single) {\n        return 0;\n      }\n      const gap = typeof props.gap === 'boolean' ? 12 : reconvertUnit(props.gap);\n\n      return (gap + (rect.value?.height || 0)) * messageIndex;\n    };\n\n    const changeNumToStr = (arr: TdMessageProps['offset'] = []) => {\n      return arr.map(function (item, index) {\n        const value = reconvertUnit(item);\n        return index === 0 ? `${value + getGap()}px` : `${value}px`;\n      });\n    };\n\n    const getMessageStylesOffset = (offset: TdMessageProps['offset']) => {\n      rect.value = messageRef.value?.getBoundingClientRect() as DOMRect;\n      const arr = changeNumToStr(offset);\n\n      return {\n        top: arr[0],\n        right: arr[1],\n        left: arr[1],\n      };\n    };\n\n    const rootStyles = computed(() => {\n      const { offset } = props;\n      const offsetStyle: any = offset ? getMessageStylesOffset(offset) : [];\n      return {\n        zIndex: props.zIndex,\n        ...offsetStyle,\n      };\n    });\n\n    // link\n    const linkContent = computed(() => {\n      if (typeof props.link === 'function' || context.slots?.link) {\n        return renderTNodeJSX('link');\n      }\n\n      if (isObject(props.link) || isString(props.link)) {\n        const _link = isObject(props.link) ? { ...props.link } : { content: props.link };\n        return h(Link, { theme: 'primary', ..._link });\n      }\n      return null;\n    });\n\n    // 动画\n    const animateStyle = computed(() => ({\n      transform: state.offset ? `translateX(${state.offset}px)` : '',\n      transitionDuration: `${state.duration}s`,\n      transitionTimingFunction: 'linear',\n    }));\n\n    const textWrapDOM = ref();\n    const textDOM = ref();\n\n    const handleScrolling = () => {\n      if (!props?.marquee || (isObject(props?.marquee) && (props?.marquee as MessageMarquee))?.loop === 0) {\n        return;\n      }\n\n      const { loop, speed, delay } = state.scroll;\n\n      state.scroll = {\n        marquee: true,\n        // 负数统一当作循环播放\n        loop: Math.max(\n          props.marquee === true || (props.marquee as MessageMarquee)?.loop == null\n            ? loop\n            : (props.marquee as MessageMarquee)?.loop,\n          -1,\n        ),\n        // 速度必须为正数\n        speed: Math.max(\n          props.marquee === true || (props.marquee as MessageMarquee)?.speed == null\n            ? speed\n            : (props.marquee as MessageMarquee)?.speed,\n          1,\n        ),\n        // 延迟不可为负数\n        delay: Math.max(\n          props.marquee === true || (props.marquee as MessageMarquee)?.delay == null\n            ? delay\n            : (props.marquee as MessageMarquee)?.delay,\n          0,\n        ),\n      };\n      state.offset = 0;\n\n      // 设置动画\n      setTimeout(() => {\n        const textWrapDOMWidth = textWrapDOM.value?.getBoundingClientRect().width;\n        const textDOMWidth = textDOM.value?.getBoundingClientRect().width;\n        state.offset = -textDOMWidth;\n        state.duration = textDOMWidth / state.scroll.speed;\n        state.listWidth = textWrapDOMWidth;\n        state.itemWidth = textDOMWidth;\n      }, state.scroll.delay);\n    };\n\n    // 动画结束后，初始化动画\n    const handleTransitionend = () => {\n      resetTransition();\n\n      if (state.scroll.loop === -1) {\n        return;\n      }\n\n      state.scroll.loop = --state.scroll.loop;\n\n      if (state.scroll.loop === 0) {\n        state.scroll.marquee = false;\n      }\n    };\n\n    const resetTransition = () => {\n      state.duration = 0;\n      state.offset = state.listWidth;\n\n      setTimeout(() => {\n        state.offset = -state.itemWidth;\n        state.duration = (state.itemWidth + state.listWidth) / state.scroll.speed;\n      }, 0);\n    };\n\n    const onLinkClick = (e: MouseEvent) => {\n      props.onLinkClick?.({ e });\n    };\n\n    const onCloseBtnClick = (e: MouseEvent) => {\n      props.onCloseBtnClick?.({ e });\n      setVisible(false);\n    };\n\n    const handleDuration = () => {\n      if (props.duration > 0) {\n        setTimeout(() => {\n          props.onDurationEnd?.();\n          setVisible(false);\n        }, props.duration);\n      }\n    };\n\n    onMounted(() => {\n      nextTick(() => {\n        if (currentVisible.value) {\n          handleScrolling();\n        }\n      });\n    });\n\n    const updateMessageIndex = (isAdd = true) => {\n      if (props.single) return;\n      if (isAdd) {\n        messageIndex += 1;\n      } else {\n        messageIndex -= 1;\n      }\n    };\n\n    watch(\n      () => currentVisible.value,\n      (val) => {\n        if (val === false) {\n          updateMessageIndex(false);\n          return;\n        }\n        updateMessageIndex(true);\n        setVisible(true);\n        handleDuration();\n        nextTick(handleScrolling);\n      },\n    );\n\n    return () => {\n      const prefixIconContent = renderTNodeJSX('icon', { defaultNode: iconDefault?.[props.theme || 'info'] });\n      const computedContent = renderContent('default', 'content');\n      const closeBtnContent = renderTNodeJSX('closeBtn', { defaultNode: closeBtnDefault });\n\n      return (\n        <Transition name=\"message\">\n          {currentVisible.value && (\n            <div ref={messageRef} class={rootClasses.value} style={rootStyles.value}>\n              {prefixIconContent && <div class={`${messageClass.value}__icon--left`}>{prefixIconContent}</div>}\n              <div ref={textWrapDOM} class={textWrapClasses.value}>\n                <div\n                  ref={textDOM}\n                  class={`${messageClass.value}__text`}\n                  style={state.scroll.marquee ? animateStyle.value : ''}\n                  onTransitionend={handleTransitionend}\n                >\n                  {computedContent}\n                </div>\n              </div>\n              {linkContent.value && (\n                <div class={`${messageClass.value}__link`} onClick={onLinkClick}>\n                  {linkContent.value}\n                </div>\n              )}\n              {closeBtnContent && (\n                <div\n                  class={[`${messageClass.value}__close-wrap`, `${messageClass.value}__icon--right`]}\n                  onClick={onCloseBtnClick}\n                >\n                  {closeBtnContent}\n                </div>\n              )}\n            </div>\n          )}\n        </Transition>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","iconDefault","info","h","InfoCircleFilledIcon","success","CheckCircleFilledIcon","warning","ErrorCircleFilledIcon","error","closeBtnDefault","CloseIcon","messageIndex","defineComponent","name","props","setup","context","messageClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderContent","useContent","messageRef","ref","rect","state","reactive","duration","offset","listWidth","itemWidth","scroll","marquee","speed","loop","delay","_toRefs","toRefs","visible","modelValue","_useVModel","useVModel","defaultVisible","_useVModel2","_slicedToArray","currentVisible","setVisible","rootClasses","computed","_defineProperty","concat","value","theme","align","textWrapClasses","getGap","_rect$value","single","gap","reconvertUnit","height","changeNumToStr","arr","arguments","length","undefined","map","item","index","getMessageStylesOffset","_messageRef$value","getBoundingClientRect","top","right","left","rootStyles","offsetStyle","_objectSpread","zIndex","linkContent","_context$slots","link","slots","isObject","isString","_link","content","Link","animateStyle","transform","transitionDuration","transitionTimingFunction","textWrapDOM","textDOM","handleScrolling","_ref3","_props2$marquee","_props2$marquee2","_props2$marquee3","_props2$marquee4","_props2$marquee5","_props2$marquee6","_state$scroll","Math","max","setTimeout","_textWrapDOM$value","_textDOM$value","textWrapDOMWidth","width","textDOMWidth","handleTransitionend","resetTransition","onLinkClick","e","_props2$onLinkClick","onCloseBtnClick","_props2$onCloseBtnCli","handleDuration","_props2$onDurationEnd","onDurationEnd","onMounted","nextTick","updateMessageIndex","isAdd","watch","val","prefixIconContent","defaultNode","computedContent","closeBtnContent","_createVNode","Transition","default","_default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAQA,SAAWC,MAAA,CAAXD;AACR,IAAME,WAAc,GAAA;AAClBC,EAAAA,IAAA,EAAMC,EAAEC,oBAAoB,CAAA;AAC5BC,EAAAA,OAAA,EAASF,EAAEG,qBAAqB,CAAA;AAChCC,EAAAA,OAAA,EAASJ,EAAEK,qBAAqB,CAAA;EAChCC,KAAA,EAAON,EAAEK,qBAAqB,CAAA;AAChC,CAAA,CAAA;AACA,IAAME,eAAA,GAAkBP,EAAEQ,SAAS,CAAA,CAAA;AACnC,IAAIC,YAAe,GAAA,CAAA,CAAA,CAAA;AAEnB,cAAeC,eAAgB,CAAA;AAC7BC,EAAAA,gBAASf,MAAA,EAAA,UAAA,CAAA;AACTgB,EAAAA,KAAA,EAAAA,KAAA;AACAC,EAAAA,KAAA,WAAAA,KAAAA,CAAMD,QAAOE,OAAS,EAAA;AACd,IAAA,IAAAC,YAAA,GAAeC,eAAe,SAAS,CAAA,CAAA;AAC7C,IAAA,IAAMC,iBAAiBC,WAAY,EAAA,CAAA;AACnC,IAAA,IAAMC,gBAAgBC,UAAW,EAAA,CAAA;AAC3B,IAAA,IAAAC,UAAA,GAAaC,IAAiB,IAAI,CAAA,CAAA;AACxC,IAAA,IAAMC,OAAOD,GAAa,EAAA,CAAA;IAG1B,IAAME,QAAQC,QAAS,CAAA;AACrBC,MAAAA,QAAU,EAAA,CAAA;AACVC,MAAAA,MAAQ,EAAA,CAAA;AACRC,MAAAA,SAAW,EAAA,CAAA;AACXC,MAAAA,SAAW,EAAA,CAAA;AACXC,MAAAA,MAAQ,EAAA;AACNC,QAAAA,OAAS,EAAA,KAAA;AACTC,QAAAA,KAAO,EAAA,EAAA;QACPC,IAAM,EAAA,CAAA,CAAA;AACNC,QAAAA,KAAO,EAAA,GAAA;AACT,OAAA;AACF,KAAC,CAAA,CAAA;AAED,IAAA,IAAAC,OAAA,GAAgCC,OAAOxB,MAAK,CAAA;MAApCyB,OAAA,GAAAF,OAAA,CAAAE,OAAA;MAASC,UAAW,GAAAH,OAAA,CAAXG,UAAW,CAAA;IACtB,IAAAC,UAAA,GAA+BC,UAAUH,OAAS,EAAAC,UAAA,EAAY1B,OAAM6B,cAAc,CAAA;MAAAC,WAAA,GAAAC,cAAA,CAAAJ,UAAA,EAAA,CAAA,CAAA;AAAjFK,MAAAA;AAAgBC,MAAAA,UAAU,GAAAH,WAAA,CAAA,CAAA,CAAA,CAAA;IAE3B,IAAAI,WAAA,GAAcC,SAAS,YAAA;MAAA,OAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAC,EAAAA,EAAAA,EAAAA,CAAAA,MAAA,CACvBlC,YAAA,CAAamC,KAAU,CAAA,EAAA,IAAA,MAAAD,MAAA,CACvBlC,YAAa,CAAAmC,KAAA,QAAAD,MAAA,CAAUrC,OAAMuC,KAAU,GAAA,IAAA,CAAA,EAAA,EAAA,CAAAF,MAAA,CACvClC,YAAa,CAAAmC,KAAA,EAAA,UAAA,CAAA,CAAAD,MAAA,CAAgBrC,OAAMwC,KAAU,CAAA,EAAA,CAAC,CAACxC,MAAM,CAAAwC,KAAA,CAAA,CAAA;AAAA,KACzD,CAAA,CAAA;IAEI,IAAAC,eAAA,GAAkBN,SAAS,YAAA;MAAA,OAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAA,EAAA,CAAAC,MAAA,CAC3BlC,YAAA,CAAamC,KAAqB,EAAA,aAAA,CAAA,EAAA,IAAA,CAAAD,EAAAA,EAAAA,CAAAA,MAAA,CAClClC,YAAa,CAAAmC,KAAA,EAAuBtC,eAAAA,CAAAA,EAAAA,MAAM,CAAAmB,OAAA,CAAA,CAAA;AAAA,KAC9C,CAAA,CAAA;AAEF,IAAA,IAAMuB,SAAS,SAATA,SAAe;AAAA,MAAA,IAAAC,WAAA,CAAA;MACnB,IAAI3C,OAAM4C,MAAQ,EAAA;AACT,QAAA,OAAA,CAAA,CAAA;AACT,OAAA;AACM,MAAA,IAAAC,GAAA,GAAM,OAAO7C,MAAM,CAAA6C,GAAA,KAAQ,YAAY,EAAK,GAAAC,aAAA,CAAc9C,OAAM6C,GAAG,CAAA,CAAA;AAEzE,MAAA,OAAA,CAAQA,GAAO,IAAA,EAAAF,WAAA,GAAAhC,IAAA,CAAK2B,KAAO,cAAAK,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,WAAA,CAAYI,MAAA,KAAU,CAAM,CAAA,IAAAlD,YAAA,CAAA;KAC7C,CAAA;AAEA,IAAA,IAAMmD,cAAiB,GAAA,SAAjBA,cAAiBA,GAAwC;AAAA,MAAA,IAAvCC,GAAgC,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAA,EAAO,CAAA;MAC7D,OAAOD,GAAI,CAAAI,GAAA,CAAI,UAAUC,IAAA,EAAMC,KAAO,EAAA;AAC9B,QAAA,IAAAjB,KAAA,GAAQQ,cAAcQ,IAAI,CAAA,CAAA;AAChC,QAAA,OAAOC,UAAU,CAAI,GAAA,EAAA,CAAAlB,MAAA,CAAGC,KAAQ,GAAAI,MAAA,sBAAkBJ,KAAA,EAAA,IAAA,CAAA,CAAA;AACpD,OAAC,CAAA,CAAA;KACH,CAAA;AAEM,IAAA,IAAAkB,sBAAA,GAAyB,SAAzBA,sBAAAA,CAA0BzC,MAAqC,EAAA;AAAA,MAAA,IAAA0C,iBAAA,CAAA;AAC9D9C,MAAAA,IAAA,CAAA2B,KAAA,GAAAmB,CAAAA,iBAAA,GAAQhD,UAAW,CAAA6B,KAAA,MAAA,IAAA,IAAAmB,iBAAA,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAkBC,qBAAsB,EAAA,CAAA;AAC/C,MAAA,IAAAT,GAAA,GAAMD,eAAejC,MAAM,CAAA,CAAA;MAE1B,OAAA;AACL4C,QAAAA,KAAKV,GAAI,CAAA,CAAA,CAAA;AACTW,QAAAA,OAAOX,GAAI,CAAA,CAAA,CAAA;QACXY,MAAMZ,GAAI,CAAA,CAAA,CAAA;OACZ,CAAA;KACF,CAAA;AAEM,IAAA,IAAAa,UAAA,GAAa3B,SAAS,YAAM;AAC1B,MAAA,IAAEpB,SAAWf,MAAAA,CAAXe;MACR,IAAMgD,WAAmB,GAAAhD,MAAA,GAASyC,sBAAuB,CAAAzC,MAAM,IAAI,EAAC,CAAA;AAC7D,MAAA,OAAAiD,aAAA,CAAA;QACLC,QAAQjE,MAAM,CAAAiE,MAAAA;AAAA,OAAA,EACXF,WAAA,CAAA,CAAA;AAEP,KAAC,CAAA,CAAA;AAGK,IAAA,IAAAG,WAAA,GAAc/B,SAAS,YAAM;AAAA,MAAA,IAAAgC,cAAA,CAAA;AACjC,MAAA,IAAI,OAAOnE,MAAM,CAAAoE,IAAA,KAAS,UAAc,KAAAD,cAAA,GAAAjE,OAAA,CAAQmE,gDAARF,cAAA,CAAeC,IAAM,EAAA;QAC3D,OAAO/D,eAAe,MAAM,CAAA,CAAA;AAC9B,OAAA;AAEA,MAAA,IAAIiE,SAAStE,MAAM,CAAAoE,IAAI,KAAKG,QAASvE,CAAAA,MAAAA,CAAMoE,IAAI,CAAG,EAAA;AAChD,QAAA,IAAMI,KAAQ,GAAAF,QAAA,CAAStE,MAAM,CAAAoE,IAAI,CAAI,GAAAJ,aAAA,CAAA,EAAA,EAAKhE,MAAAA,CAAMoE,IAAK,CAAI,GAAA;UAAEK,OAAA,EAASzE,OAAMoE,IAAAA;SAAK,CAAA;AAC/E,QAAA,OAAOhF,EAAEsF,IAAM,EAAAV,aAAA,CAAA;AAAEzB,UAAAA,OAAO,SAAA;SAAciC,EAAAA,MAAO,CAAA,CAAA;AAC/C,OAAA;AACO,MAAA,OAAA,IAAA,CAAA;AACT,KAAC,CAAA,CAAA;IAGK,IAAAG,YAAA,GAAexC,SAAS,YAAA;MAAA,OAAO;QACnCyC,SAAW,EAAAhE,KAAA,CAAMG,MAAS,GAAA,aAAA,CAAAsB,MAAA,CAAczB,MAAMG,MAAc,EAAA,KAAA,CAAA,GAAA,EAAA;AAC5D8D,QAAAA,kBAAA,KAAAxC,MAAA,CAAuBzB,KAAM,CAAAE,QAAA,EAAA,GAAA,CAAA;AAC7BgE,QAAAA,wBAA0B,EAAA,QAAA;OAC1B,CAAA;AAAA,KAAA,CAAA,CAAA;AAEF,IAAA,IAAMC,cAAcrE,GAAI,EAAA,CAAA;AACxB,IAAA,IAAMsE,UAAUtE,GAAI,EAAA,CAAA;AAEpB,IAAA,IAAMuE,kBAAkB,SAAlBA,kBAAwB;AAAA,MAAA,IAAAC,KAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,CAAA;AACxB,MAAA,IAAA,EAACxF,MAAO,KAAA,IAAA,IAAPA,MAAO,KAAA,KAAA,CAAA,IAAPA,MAAO,CAAAmB,OAAA,CAAA,IAAA,CAAA,CAAA+D,KAAA,GAAYZ,QAAStE,CAAAA,MAAAA,KAAAA,IAAAA,IAAAA,MAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAAA,CAAOmB,OAAO,CAAMnB,KAAAA,MAAAA,KAAAA,IAAAA,IAAAA,MAAAA,uBAAAA,MAAAA,CAAOmB,OAA6B,CAAA,MAAA,IAAA,IAAA+D,KAAA,KAA7EA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAA,CAA6E7D,IAAA,MAAS,CAAG,EAAA;AACnG,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAAoE,aAAA,GAA+B7E,KAAM,CAAAM,MAAA;QAA7BG,IAAA,GAAAoE,aAAA,CAAApE,IAAA;QAAMD,KAAO,GAAAqE,aAAA,CAAPrE,KAAO;QAAAE,KAAA,GAAAmE,aAAA,CAAAnE,KAAA,CAAA;MAErBV,KAAA,CAAMM,MAAS,GAAA;AACbC,QAAAA,OAAS,EAAA,IAAA;AAETE,QAAAA,MAAMqE,IAAK,CAAAC,GAAA,CACT3F,MAAAA,CAAMmB,YAAY,IAASnB,IAAAA,CAAAA,CAAAA,eAAAA,GAAAA,MAAAA,CAAMmB,yCAANnB,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAAA,CAAkCqB,IAAQ,KAAA,IAAA,GACjEA,IACCrB,GAAAA,CAAAA,gBAAAA,GAAAA,MAAAA,CAAMmB,OAA4B,MAAAiE,IAAAA,IAAAA,gBAAA,uBAAlCpF,gBAAAA,CAAkCqB,IAAA,EACvC,CAAA,CACF,CAAA;AAEAD,QAAAA,OAAOsE,IAAK,CAAAC,GAAA,CACV3F,MAAAA,CAAMmB,YAAY,IAASnB,IAAAA,EAAAA,gBAAAA,GAAAA,MAAAA,CAAMmB,4DAANnB,gBAAAA,CAAkCoB,KAAS,KAAA,IAAA,GAClEA,KACCpB,GAAAA,CAAAA,gBAAAA,GAAAA,MAAAA,CAAMmB,OAA4B,MAAA,IAAA,IAAAmE,gBAAA,KAAlCtF,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAAA,CAAkCoB,KAAA,EACvC,CACF,CAAA;AAEAE,QAAAA,OAAOoE,IAAK,CAAAC,GAAA,CACV3F,MAAAA,CAAMmB,YAAY,IAASnB,IAAAA,EAAAA,gBAAAA,GAAAA,MAAAA,CAAMmB,4DAANnB,gBAAAA,CAAkCsB,KAAS,KAAA,IAAA,GAClEA,KACCtB,GAAAA,CAAAA,gBAAAA,GAAAA,MAAAA,CAAMmB,OAA4B,cAAAqE,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlCxF,gBAAAA,CAAkCsB,KAAA,EACvC,CACF,CAAA;OACF,CAAA;MACAV,KAAA,CAAMG,MAAS,GAAA,CAAA,CAAA;AAGf6E,MAAAA,UAAA,CAAW,YAAM;QAAA,IAAAC,kBAAA,EAAAC,cAAA,CAAA;AACf,QAAA,IAAMC,gBAAmB,GAAAF,CAAAA,kBAAA,GAAAd,WAAA,CAAYzC,KAAO,MAAA,IAAA,IAAAuD,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,kBAAA,CAAmBnC,qBAAA,EAAwB,CAAAsC,KAAA,CAAA;AACpE,QAAA,IAAMC,YAAe,GAAAH,CAAAA,cAAA,GAAAd,OAAA,CAAQ1C,KAAO,MAAA,IAAA,IAAAwD,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,cAAA,CAAepC,qBAAA,EAAwB,CAAAsC,KAAA,CAAA;AAC5DpF,QAAAA,KAAA,CAAMG,SAAS,CAACkF,YAAA,CAAA;QACVrF,KAAA,CAAAE,QAAA,GAAWmF,YAAe,GAAArF,KAAA,CAAMM,MAAO,CAAAE,KAAA,CAAA;QAC7CR,KAAA,CAAMI,SAAY,GAAA+E,gBAAA,CAAA;QAClBnF,KAAA,CAAMK,SAAY,GAAAgF,YAAA,CAAA;AACpB,OAAA,EAAGrF,KAAM,CAAAM,MAAA,CAAOI,KAAK,CAAA,CAAA;KACvB,CAAA;AAGA,IAAA,IAAM4E,sBAAsB,SAAtBA,sBAA4B;AAChBC,MAAAA,eAAA,EAAA,CAAA;MAEZ,IAAAvF,KAAA,CAAMM,MAAO,CAAAG,IAAA,KAAS,CAAI,CAAA,EAAA;AAC5B,QAAA,OAAA;AACF,OAAA;MAEAT,KAAA,CAAMM,MAAO,CAAAG,IAAA,GAAO,EAAET,KAAA,CAAMM,MAAO,CAAAG,IAAA,CAAA;AAE/B,MAAA,IAAAT,KAAA,CAAMM,MAAO,CAAAG,IAAA,KAAS,CAAG,EAAA;AAC3BT,QAAAA,KAAA,CAAMM,OAAOC,OAAU,GAAA,KAAA,CAAA;AACzB,OAAA;KACF,CAAA;AAEA,IAAA,IAAMgF,kBAAkB,SAAlBA,kBAAwB;MAC5BvF,KAAA,CAAME,QAAW,GAAA,CAAA,CAAA;AACjBF,MAAAA,KAAA,CAAMG,SAASH,KAAM,CAAAI,SAAA,CAAA;AAErB4E,MAAAA,UAAA,CAAW,YAAM;AACThF,QAAAA,KAAA,CAAAG,MAAA,GAAS,CAACH,KAAM,CAAAK,SAAA,CAAA;AACtBL,QAAAA,KAAA,CAAME,YAAYF,KAAM,CAAAK,SAAA,GAAYL,KAAM,CAAAI,SAAA,IAAaJ,MAAMM,MAAO,CAAAE,KAAA,CAAA;SACnE,CAAC,CAAA,CAAA;KACN,CAAA;AAEM,IAAA,IAAAgF,WAAA,GAAc,SAAdA,WAAAA,CAAeC,CAAkB,EAAA;AAAA,MAAA,IAAAC,mBAAA,CAAA;AACrCtG,MAAAA,CAAAA,mBAAAA,GAAAA,MAAM,CAAAoG,WAAA,MAAA,IAAA,IAAAE,mBAAA,KAAA,KAAA,CAAA,IAANtG,mBAAAA,CAAAA,IAAAA,CAAAA,MAAM,EAAc;AAAEqG,QAAAA,CAAA,EAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KAC3B,CAAA;AAEM,IAAA,IAAAE,eAAA,GAAkB,SAAlBA,eAAAA,CAAmBF,CAAkB,EAAA;AAAA,MAAA,IAAAG,qBAAA,CAAA;AACzCxG,MAAAA,CAAAA,qBAAAA,GAAAA,MAAM,CAAAuG,eAAA,MAAA,IAAA,IAAAC,qBAAA,KAAA,KAAA,CAAA,IAANxG,qBAAAA,CAAAA,IAAAA,CAAAA,MAAM,EAAkB;AAAEqG,QAAAA,CAAA,EAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;MAC7BpE,UAAA,CAAW,KAAK,CAAA,CAAA;KAClB,CAAA;AAEA,IAAA,IAAMwE,iBAAiB,SAAjBA,iBAAuB;AACvBzG,MAAAA,IAAAA,MAAAA,CAAMc,WAAW,CAAG,EAAA;AACtB8E,QAAAA,UAAA,CAAW,YAAM;AAAA,UAAA,IAAAc,qBAAA,CAAA;AACf1G,UAAAA,CAAAA,qBAAAA,GAAAA,OAAM2G,aAAgB,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,IAAtB1G,qBAAAA,CAAAA,IAAAA,CAAAA,MAAsB,CAAA,CAAA;UACtBiC,UAAA,CAAW,KAAK,CAAA,CAAA;AAClB,SAAA,EAAGjC,OAAMc,QAAQ,CAAA,CAAA;AACnB,OAAA;KACF,CAAA;AAEA8F,IAAAA,SAAA,CAAU,YAAM;AACdC,MAAAA,QAAA,CAAS,YAAM;QACb,IAAI7E,eAAeM,KAAO,EAAA;AACR2C,UAAAA,eAAA,EAAA,CAAA;AAClB,SAAA;AACF,OAAC,CAAA,CAAA;AACH,KAAC,CAAA,CAAA;AAEK,IAAA,IAAA6B,kBAAA,GAAqB,SAArBA,kBAAAA,GAAuC;AAAA,MAAA,IAAjBC,KAAA,GAAA7D,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAQ,IAAS,CAAA;MAC3C,IAAIlD,MAAM,CAAA4C,MAAA,EAAQ,OAAA;AAClB,MAAA,IAAImE,KAAO,EAAA;AACOlH,QAAAA,YAAA,IAAA,CAAA,CAAA;AAClB,OAAO,MAAA;AACWA,QAAAA,YAAA,IAAA,CAAA,CAAA;AAClB,OAAA;KACF,CAAA;AAEAmH,IAAAA,KAAA,CACE,YAAA;MAAA,OAAMhF,cAAe,CAAAM,KAAA,CAAA;KACrB,EAAA,UAAC2E,GAAQ,EAAA;MACP,IAAIA,QAAQ,KAAO,EAAA;QACjBH,kBAAA,CAAmB,KAAK,CAAA,CAAA;AACxB,QAAA,OAAA;AACF,OAAA;MACAA,kBAAA,CAAmB,IAAI,CAAA,CAAA;MACvB7E,UAAA,CAAW,IAAI,CAAA,CAAA;AACAwE,MAAAA,cAAA,EAAA,CAAA;MACfI,QAAA,CAAS5B,eAAe,CAAA,CAAA;AAC1B,KACF,CAAA,CAAA;AAEA,IAAA,OAAO,YAAM;AACL,MAAA,IAAAiC,iBAAA,GAAoB7G,eAAe,MAAQ,EAAA;QAAE8G,aAAajI,WAAcc,KAAAA,IAAAA,IAAdd,WAAcc,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAdd,WAAcc,CAAAA,MAAAA,CAAMuC,KAAS,IAAA,MAAA,CAAA;AAAQ,OAAC,CAAA,CAAA;AAChG,MAAA,IAAA6E,eAAA,GAAkB7G,aAAc,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;AAC1D,MAAA,IAAM8G,kBAAkBhH,cAAe,CAAA,UAAA,EAAY;AAAE8G,QAAAA,WAAA,EAAaxH,eAAAA;AAAgB,OAAC,CAAA,CAAA;MAEnF,OAAA2H,WAAA,CAAAC,UAAA,EAAA;QAAA,MACmB,EAAA,SAAA;AAAA,OAAA,EAAA;AAAAC,QAAAA,OAAA,WAAAC,QAAA,GAAA;AAAA,UAAA,OAAA,CACdzF,eAAeM,KACd,IAAAgF,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,KAAA,EAAU7G,UAAY;YAAA,OAAOyB,EAAAA,WAAY,CAAAI,KAAA;AAAA,YAAA,OAAA,EAAcwB,UAAW,CAAAxB,KAAAA;WAC/D4E,EAAAA,CAAAA,iBAAA,IAAAI,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAAjF,MAAA,CAAoClC,YAAa,CAAAmC,KAAA,EAAA,cAAA,CAAA;WAAsB4E,EAAAA,CAAAA,kBAAjD,CAAA,EAAAI,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,KAAA,EACbvC,WAAa;AAAA,YAAA,OAAA,EAAOtC,eAAgB,CAAAH,KAAAA;AAAA,WAAA,EAAA,CAAAgF,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,KAAA,EAErCtC,OAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAA3C,MAAA,CACKlC,YAAa,CAAAmC,KAAA,EAAA,QAAA,CAAA;YAAA,OAChB1B,EAAAA,KAAA,CAAMM,MAAO,CAAAC,OAAA,GAAUwD,YAAa,CAAArC,KAAA,GAAQ,EACnD;YAAA,iBAAiB4D,EAAAA,mBAAAA;AAEhB,WAAA,EAAA,CAAAkB,eAAA,CAGJlD,CAAAA,CAAAA,CAAAA,EAAAA,WAAY,CAAA5B,KAAA,IAAAgF,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAAjF,MAAA,CACIlC,YAAa,CAAAmC,KAAA,EAAA,QAAA,CAAA;YAAA,SAAwB8D,EAAAA,WAAAA;AAAA,WAAA,EAAA,CACjDlC,WAAY,CAAA5B,KAAA,EADd,EAIF+E,eACC,IAAAC,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EACS,CAAAjF,EAAAA,CAAAA,MAAA,CAAIlC,YAAA,CAAamC,KAAqB,EAAAD,cAAAA,CAAAA,EAAAA,EAAAA,CAAAA,MAAA,CAAGlC,aAAamC,KAAoB,EAAA,eAAA,CAAA,CAAA;YAAA,SACxEiE,EAAAA,eAAAA;WAERc,EAAAA,CAAAA,iBAJF;;;KAWb,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}