{"version":3,"file":"dialog.mjs","sources":["../../src/dialog/dialog.tsx"],"sourcesContent":["import { CloseIcon } from 'tdesign-icons-vue-next';\nimport { computed, defineComponent, ref } from 'vue';\nimport { get, isString, isObject } from 'lodash-es';\n\nimport TButton, { ButtonProps } from '../button';\nimport TPopup from '../popup';\nimport config from '../config';\nimport props from './props';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { TdDialogProps } from './type';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-dialog`,\n  props,\n  emits: ['update:visible', 'confirm', 'overlay-click', 'cancel', 'close', 'closed'],\n  setup(props, context) {\n    const dialogClass = usePrefixClass('dialog');\n\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n    const isTextStyleBtn = computed(() =>\n      [props?.confirmBtn, props?.cancelBtn, ...(props?.actions || [])].some((item) => get(item, 'variant') === 'text'),\n    );\n\n    const footerClass = computed(() => [\n      `${dialogClass.value}__footer`,\n      {\n        [`${dialogClass.value}__footer--column`]: props.buttonLayout === 'vertical',\n        [`${dialogClass.value}__footer--full`]: isTextStyleBtn.value && get(props.actions, 'length', 0) === 0,\n      },\n    ]);\n\n    const buttonClass = computed(() => [\n      `${dialogClass.value}__button`,\n      {\n        [`${dialogClass.value}__button--${props.buttonLayout}`]: !isTextStyleBtn.value,\n        [`${dialogClass.value}__button--text`]: isTextStyleBtn.value,\n      },\n    ]);\n\n    const rootStyles = computed(() => ({\n      width: isString(props.width) ? props.width : `${props.width}px`,\n    }));\n\n    const emitClose = (e: MouseEvent, trigger: string) => {\n      context.emit('update:visible', false);\n      context.emit('close', { e, trigger });\n    };\n\n    const handleClose = (args: { e: MouseEvent }) => {\n      const { e } = args;\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('close-btn', e).then((allowed) => {\n          if (allowed) emitClose(e, 'close-btn');\n        });\n        return;\n      }\n      emitClose(e, 'close-btn');\n    };\n\n    const handleClosed = () => {\n      context.emit('closed');\n    };\n\n    const confirmLoading = ref(false);\n\n    // 通用的 beforeClose 拦截逻辑\n    const invokeBeforeClose = async (\n      trigger: 'confirm' | 'cancel' | 'overlay' | 'close-btn',\n      e: MouseEvent,\n    ): Promise<boolean> => {\n      const { beforeClose } = props;\n      if (typeof beforeClose === 'function') {\n        const result = beforeClose(trigger, { e });\n        if (result instanceof Promise) {\n          confirmLoading.value = trigger === 'confirm';\n          try {\n            await result;\n            return true;\n          } catch {\n            return false;\n          } finally {\n            confirmLoading.value = false;\n          }\n        }\n      }\n      return true;\n    };\n\n    const handleConfirm = (e: MouseEvent) => {\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('confirm', e).then((allowed) => {\n          if (!allowed) return;\n          context.emit('update:visible', false);\n          context.emit('confirm', { e });\n        });\n        return;\n      }\n      context.emit('update:visible', false);\n      context.emit('confirm', { e });\n    };\n\n    const handleCancel = (e: MouseEvent) => {\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('cancel', e).then((allowed) => {\n          if (!allowed) return;\n          emitClose(e, 'cancel');\n          context.emit('cancel', { e });\n        });\n        return;\n      }\n      emitClose(e, 'cancel');\n      context.emit('cancel', { e });\n    };\n\n    const handleOverlayClick = (args: { e: MouseEvent }) => {\n      const { e } = args;\n      if (!props.closeOnOverlayClick) {\n        return;\n      }\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('overlay', e).then((allowed) => {\n          if (!allowed) return;\n          emitClose(e, 'overlay');\n          context.emit('overlay-click', { e });\n        });\n        return;\n      }\n      emitClose(e, 'overlay');\n      context.emit('overlay-click', { e });\n    };\n\n    const calcBtn = (btn: TdDialogProps['cancelBtn'] | TdDialogProps['confirmBtn'] | ButtonProps): ButtonProps => {\n      if (isString(btn)) {\n        return { content: btn };\n      }\n\n      if (isObject(btn)) {\n        return btn as ButtonProps;\n      }\n\n      return {};\n    };\n\n    const confirmBtnProps = computed<ButtonProps>(() => ({\n      theme: 'primary',\n      ...calcBtn(props.confirmBtn),\n      loading: confirmLoading.value || calcBtn(props.confirmBtn)?.loading,\n    }));\n\n    const cancelBtnProps = computed<ButtonProps>(() => ({\n      theme: isTextStyleBtn.value ? 'default' : 'light',\n      ...calcBtn(props.cancelBtn),\n    }));\n\n    const actionsBtnProps = computed<ButtonProps[] | undefined>(() =>\n      Array.isArray(props.actions) ? props.actions.map((item) => calcBtn(item)) : undefined,\n    );\n\n    const renderButtonNode = (\n      btnType: 'cancelBtn' | 'confirmBtn',\n      btnProps: ButtonProps,\n      handleClick: (e: MouseEvent) => void,\n    ) => {\n      if (actionsBtnProps.value) return null;\n\n      const btnNode = renderTNodeJSX(btnType);\n      if (!btnNode) return null;\n\n      if (context.slots[btnType]) {\n        return btnNode;\n      }\n\n      return <TButton {...btnProps} class={buttonClass.value} onClick={handleClick} />;\n    };\n\n    return () => {\n      const renderTitleNode = () => {\n        const titleNode = renderTNodeJSX('title');\n        if (!titleNode) {\n          return null;\n        }\n\n        return <div class={`${dialogClass.value}__header`}>{titleNode}</div>;\n      };\n      const renderContentNode = () => {\n        const contentNode = renderContent('default', 'content');\n        if (!contentNode) {\n          return null;\n        }\n        return (\n          <div class={`${dialogClass.value}__body`}>\n            <div class={`${dialogClass.value}__body-text`}>{contentNode}</div>\n          </div>\n        );\n      };\n      const renderActionsNode = () => {\n        if (actionsBtnProps.value) {\n          return actionsBtnProps.value.map((item, index) => {\n            const { onClick, ...buttonProps } = item;\n            const handleActionClick = (e: MouseEvent) => {\n              onClick?.(e); // 不受 beforeClose 影响，无条件先执行\n              handleCancel(e); // 内部可能被 beforeClose reject 而不关闭\n            };\n\n            const key = `${isString(item.content) ? item.content : 'action'}-${index}`;\n\n            return <TButton key={key} {...buttonProps} class={buttonClass.value} onClick={handleActionClick} />;\n          });\n        }\n\n        return renderTNodeJSX('actions');\n      };\n      const renderCancelBtnNode = () => renderButtonNode('cancelBtn', cancelBtnProps.value, handleCancel);\n\n      const renderConfirmBtnNode = () => renderButtonNode('confirmBtn', confirmBtnProps.value, handleConfirm);\n      return (\n        <TPopup\n          class={`${dialogClass.value}__wrapper`}\n          visible={props.visible}\n          placement=\"center\"\n          show-overlay={props.showOverlay}\n          overlay-props={props.overlayProps}\n          prevent-scroll-through={props.preventScrollThrough}\n          destroy-on-close={props.destroyOnClose}\n          z-index={props.zIndex}\n          onClose={handleOverlayClick}\n          onClosed={handleClosed}\n        >\n          <div class={`${dialogClass.value} ${context.attrs.class || ''}`} style={rootStyles.value}>\n            {renderTNodeJSX('top')}\n            {props.closeBtn && (\n              <div class={`${dialogClass.value}__close-btn`}>\n                <CloseIcon onClick={handleClose} />\n              </div>\n            )}\n            <div class={`${dialogClass.value}__content`}>\n              {renderTitleNode()}\n              {renderContentNode()}\n            </div>\n            {renderTNodeJSX('middle')}\n            <div class={footerClass.value}>\n              {renderActionsNode()}\n              {renderCancelBtnNode()}\n              {renderConfirmBtnNode()}\n            </div>\n          </div>\n        </TPopup>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","props","emits","setup","context","dialogClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderContent","useContent","isTextStyleBtn","computed","confirmBtn","cancelBtn","concat","_toConsumableArray","actions","some","item","get","footerClass","value","_defineProperty","buttonLayout","buttonClass","rootStyles","width","isString","emitClose","e","trigger","emit","handleClose","args","beforeClose","invokeBeforeClose","then","allowed","handleClosed","confirmLoading","ref","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","_t","wrap","_context","prev","next","Promise","abrupt","finish","stop","_x","_x2","apply","arguments","handleConfirm","handleCancel","handleOverlayClick","closeOnOverlayClick","calcBtn","btn","content","isObject","confirmBtnProps","_calcBtn","_objectSpread","theme","loading","cancelBtnProps","actionsBtnProps","Array","isArray","map","renderButtonNode","btnType","btnProps","handleClick","btnNode","slots","_createVNode","TButton","_mergeProps","renderTitleNode","titleNode","renderContentNode","contentNode","renderActionsNode","index","onClick","buttonProps","_objectWithoutProperties","_excluded","handleActionClick","key","renderCancelBtnNode","renderConfirmBtnNode","TPopup","visible","showOverlay","overlayProps","preventScrollThrough","destroyOnClose","zIndex","default","_default","attrs","class","closeBtn","CloseIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAQA,SAAWC,MAAA,CAAXD;AAER,aAAeE,eAAgB,CAAA;AAC7BC,EAAAA,gBAASH,MAAA,EAAA,SAAA,CAAA;AACTI,EAAAA,KAAA,EAAAA,KAAA;AACAC,EAAAA,OAAO,CAAC,gBAAA,EAAkB,WAAW,eAAiB,EAAA,QAAA,EAAU,SAAS,QAAQ,CAAA;AACjFC,EAAAA,KAAA,WAAAA,KAAAA,CAAMF,QAAOG,OAAS,EAAA;AACd,IAAA,IAAAC,WAAA,GAAcC,eAAe,QAAQ,CAAA,CAAA;AAE3C,IAAA,IAAMC,iBAAiBC,WAAY,EAAA,CAAA;AACnC,IAAA,IAAMC,gBAAgBC,UAAW,EAAA,CAAA;IACjC,IAAMC,cAAiB,GAAAC,QAAA,CAAS,YAAA;AAAA,MAAA,OAC9B,CAACX,MAAAA,KAAAA,IAAAA,IAAAA,MAAAA,uBAAAA,MAAAA,CAAOY,YAAYZ,MAAO,KAAPA,IAAAA,IAAAA,MAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAO,CAAAa,SAAA,CAAA,CAAAC,MAAA,CAAAC,kBAAA,CAAef,CAAAA,MAAO,KAAA,IAAA,IAAPA,MAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAO,CAAAgB,OAAA,KAAW,EAAG,CAAA,CAAA,CAAEC,KAAK,UAACC,IAAA,EAAA;AAAA,QAAA,OAASC,IAAID,IAAM,EAAA,SAAS,MAAM,MAAM,CAAA;OAAA,CAAA,CAAA;AAAA,KACjH,CAAA,CAAA;IAEM,IAAAE,WAAA,GAAcT,SAAS,YAAA;MAAA,OAAM,CAAA,EAAA,CAAAG,MAAA,CAC9BV,WAAY,CAAAiB,KAAA,EAAA,UAAA,CAAA,EAAAC,eAAA,CAAAA,eAAA,QAAAR,MAAA,CAETV,WAAY,CAAAiB,KAAA,uBAA0BrB,OAAMuB,YAAiB,KAAA,UAAA,MAAAT,MAAA,CAC7DV,WAAA,CAAYiB,KAAwB,qBAAAX,cAAA,CAAeW,KAAS,IAAAF,GAAA,CAAInB,MAAM,CAAAgB,OAAA,EAAS,QAAU,EAAA,CAAC,CAAM,KAAA,CAAA,CAEvG,CAAA,CAAA;KAAA,CAAA,CAAA;IAEK,IAAAQ,WAAA,GAAcb,SAAS,YAAA;AAAA,MAAA,OAAM,IAAAG,MAAA,CAC9BV,WAAY,CAAAiB,KAAA,EAAAC,UAAAA,CAAAA,EAAAA,eAAA,CAAAA,eAAA,QAAAR,MAAA,CAETV,WAAA,CAAYiB,4BAAkBrB,MAAM,CAAAuB,YAAA,CAAA,EAAiB,CAACb,cAAe,CAAAW,KAAA,CAAA,EAAA,EAAA,CAAAP,MAAA,CACrEV,WAAY,CAAAiB,KAAA,qBAAwBX,cAAe,CAAAW,KAAA,CAE1D,CAAA,CAAA;KAAA,CAAA,CAAA;IAEK,IAAAI,UAAA,GAAad,SAAS,YAAA;MAAA,OAAO;AACjCe,QAAAA,KAAA,EAAOC,SAAS3B,MAAM,CAAA0B,KAAK,IAAI1B,MAAM,CAAA0B,KAAA,GAAAZ,EAAAA,CAAAA,MAAA,CAAWd,MAAM,CAAA0B,KAAA,EAAA,IAAA,CAAA;OACtD,CAAA;AAAA,KAAA,CAAA,CAAA;IAEI,IAAAE,SAAA,GAAY,SAAZA,SAAAA,CAAaC,CAAA,EAAeC,OAAoB,EAAA;AAC5C3B,MAAAA,OAAA,CAAA4B,IAAA,CAAK,kBAAkB,KAAK,CAAA,CAAA;AACpC5B,MAAAA,OAAA,CAAQ4B,IAAK,CAAA,OAAA,EAAS;AAAEF,QAAAA,CAAA,EAAAA,CAAA;AAAGC,QAAAA,SAAAA,OAAAA;AAAQ,OAAC,CAAA,CAAA;KACtC,CAAA;AAEM,IAAA,IAAAE,WAAA,GAAc,SAAdA,WAAAA,CAAeC,IAA4B,EAAA;AACzC,MAAA,IAAEJ,IAAMI,IAAA,CAANJ;AACJ,MAAA,IAAA,OAAO7B,MAAM,CAAAkC,WAAA,KAAgB,UAAY,EAAA;QAC3CC,iBAAA,CAAkB,WAAa,EAAAN,CAAC,CAAE,CAAAO,IAAA,CAAK,UAACC,OAAY,EAAA;AAC9C,UAAA,IAAAA,OAAA,EAAST,SAAA,CAAUC,GAAG,WAAW,CAAA,CAAA;AACvC,SAAC,CAAA,CAAA;AACD,QAAA,OAAA;AACF,OAAA;AACAD,MAAAA,SAAA,CAAUC,GAAG,WAAW,CAAA,CAAA;KAC1B,CAAA;AAEA,IAAA,IAAMS,eAAe,SAAfA,eAAqB;AACzBnC,MAAAA,OAAA,CAAQ4B,KAAK,QAAQ,CAAA,CAAA;KACvB,CAAA;AAEM,IAAA,IAAAQ,cAAA,GAAiBC,IAAI,KAAK,CAAA,CAAA;AAG1B,IAAA,IAAAL,iBAAA,gBAAA,YAAA;AAAA,MAAA,IAAAM,KAAA,GAAAC,iBAAA,cAAAC,WAAA,CAAAC,IAAA,CAAoB,SAAAC,OAAAA,CACxBf,OAAA,EACAD,CACqB,EAAA;AAAA,QAAA,IAAAK,WAAA,EAAAY,MAAA,EAAAC,EAAA,CAAA;AAAA,QAAA,OAAAJ,WAAA,CAAAK,IAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;cACbjB,cAAgBlC,MAAAA,CAAhBkC;kBACJ,EAAA,OAAOA,gBAAgB,UAAY,CAAA,EAAA;AAAAe,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAC/BL,cAAAA,MAAS,GAAAZ,WAAA,CAAYJ,OAAS,EAAA;AAAED,gBAAAA,GAAAA,CAAAA;AAAE,eAAC,CAAA,CAAA;cAAA,IACrCiB,EAAAA,kBAAkBM,OAAS,CAAA,EAAA;AAAAH,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAC7BZ,cAAAA,cAAA,CAAelB,QAAQS,OAAY,KAAA,SAAA,CAAA;AAAAmB,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAE3BL,MAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAG,QAAA,CAAAI,MAAA,CAAA,QAAA,EACC,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAJ,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAH,cAAAA,EAAA,GAAAE,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,cAAA,OAAAA,QAAA,CAAAI,MAAA,CAAA,QAAA,EAEA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAJ,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;cAEPX,cAAA,CAAelB,KAAQ,GAAA,KAAA,CAAA;cAAA,OAAA4B,QAAA,CAAAK,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAL,QAAA,CAAAI,MAAA,CAAA,QAAA,EAItB,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAJ,QAAA,CAAAM,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAV,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACT,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,SApBMV,iBAAAA,CAAAqB,EAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAhB,KAAA,CAAAiB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;KAoBN,EAAA,CAAA;AAEM,IAAA,IAAAC,aAAA,GAAgB,SAAhBA,aAAAA,CAAiB/B,CAAkB,EAAA;AACnC,MAAA,IAAA,OAAO7B,MAAM,CAAAkC,WAAA,KAAgB,UAAY,EAAA;QAC3CC,iBAAA,CAAkB,SAAW,EAAAN,CAAC,CAAE,CAAAO,IAAA,CAAK,UAACC,OAAY,EAAA;UAChD,IAAI,CAACA,OAAA,EAAS,OAAA;AACNlC,UAAAA,OAAA,CAAA4B,IAAA,CAAK,kBAAkB,KAAK,CAAA,CAAA;AACpC5B,UAAAA,OAAA,CAAQ4B,IAAK,CAAA,SAAA,EAAW;AAAEF,YAAAA,CAAA,EAAAA,CAAAA;AAAE,WAAC,CAAA,CAAA;AAC/B,SAAC,CAAA,CAAA;AACD,QAAA,OAAA;AACF,OAAA;AACQ1B,MAAAA,OAAA,CAAA4B,IAAA,CAAK,kBAAkB,KAAK,CAAA,CAAA;AACpC5B,MAAAA,OAAA,CAAQ4B,IAAK,CAAA,SAAA,EAAW;AAAEF,QAAAA,CAAA,EAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KAC/B,CAAA;AAEM,IAAA,IAAAgC,YAAA,GAAe,SAAfA,YAAAA,CAAgBhC,CAAkB,EAAA;AAClC,MAAA,IAAA,OAAO7B,MAAM,CAAAkC,WAAA,KAAgB,UAAY,EAAA;QAC3CC,iBAAA,CAAkB,QAAU,EAAAN,CAAC,CAAE,CAAAO,IAAA,CAAK,UAACC,OAAY,EAAA;UAC/C,IAAI,CAACA,OAAA,EAAS,OAAA;AACdT,UAAAA,SAAA,CAAUC,GAAG,QAAQ,CAAA,CAAA;AACrB1B,UAAAA,OAAA,CAAQ4B,IAAK,CAAA,QAAA,EAAU;AAAEF,YAAAA,CAAA,EAAAA,CAAAA;AAAE,WAAC,CAAA,CAAA;AAC9B,SAAC,CAAA,CAAA;AACD,QAAA,OAAA;AACF,OAAA;AACAD,MAAAA,SAAA,CAAUC,GAAG,QAAQ,CAAA,CAAA;AACrB1B,MAAAA,OAAA,CAAQ4B,IAAK,CAAA,QAAA,EAAU;AAAEF,QAAAA,CAAA,EAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KAC9B,CAAA;AAEM,IAAA,IAAAiC,kBAAA,GAAqB,SAArBA,kBAAAA,CAAsB7B,IAA4B,EAAA;AAChD,MAAA,IAAEJ,IAAMI,IAAA,CAANJ;AACJ,MAAA,IAAA,CAAC7B,OAAM+D,mBAAqB,EAAA;AAC9B,QAAA,OAAA;AACF,OAAA;AACI,MAAA,IAAA,OAAO/D,MAAM,CAAAkC,WAAA,KAAgB,UAAY,EAAA;QAC3CC,iBAAA,CAAkB,SAAW,EAAAN,CAAC,CAAE,CAAAO,IAAA,CAAK,UAACC,OAAY,EAAA;UAChD,IAAI,CAACA,OAAA,EAAS,OAAA;AACdT,UAAAA,SAAA,CAAUC,GAAG,SAAS,CAAA,CAAA;AACtB1B,UAAAA,OAAA,CAAQ4B,IAAK,CAAA,eAAA,EAAiB;AAAEF,YAAAA,CAAA,EAAAA,CAAAA;AAAE,WAAC,CAAA,CAAA;AACrC,SAAC,CAAA,CAAA;AACD,QAAA,OAAA;AACF,OAAA;AACAD,MAAAA,SAAA,CAAUC,GAAG,SAAS,CAAA,CAAA;AACtB1B,MAAAA,OAAA,CAAQ4B,IAAK,CAAA,eAAA,EAAiB;AAAEF,QAAAA,CAAA,EAAAA,CAAAA;AAAE,OAAC,CAAA,CAAA;KACrC,CAAA;AAEM,IAAA,IAAAmC,OAAA,GAAU,SAAVA,OAAAA,CAAWC,GAA6F,EAAA;AACxG,MAAA,IAAAtC,QAAA,CAASsC,GAAG,CAAG,EAAA;QACV,OAAA;AAAEC,UAAAA,SAASD,GAAAA;SAAI,CAAA;AACxB,OAAA;AAEI,MAAA,IAAAE,QAAA,CAASF,GAAG,CAAG,EAAA;AACV,QAAA,OAAAA,GAAA,CAAA;AACT,OAAA;AAEA,MAAA,OAAO,EAAC,CAAA;KACV,CAAA;IAEM,IAAAG,eAAA,GAAkBzD,SAAsB,YAAA;AAAA,MAAA,IAAA0D,QAAA,CAAA;MAAA,OAAAC,aAAA,CAAAA,aAAA,CAAA;AAC5CC,QAAAA,KAAO,EAAA,SAAA;AAAA,OAAA,EACJP,OAAQhE,CAAAA,MAAAA,CAAMY,UAAU,CAAA,CAAA,EAAA,EAAA,EAAA;AAC3B4D,QAAAA,SAASjC,cAAe,CAAAlB,KAAA,KAAAgD,CAAAA,QAAA,GAASL,OAAQhE,CAAAA,MAAAA,CAAMY,UAAU,CAAG,MAAA,IAAA,IAAAyD,QAAA,KAA3BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAA,CAA2BG,OAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAC5D,CAAA,CAAA;IAEI,IAAAC,cAAA,GAAiB9D,SAAsB,YAAA;AAAA,MAAA,OAAA2D,aAAA,CAAA;AAC3CC,QAAAA,KAAA,EAAO7D,cAAe,CAAAW,KAAA,GAAQ,SAAY,GAAA,OAAA;AAAA,OAAA,EACvC2C,OAAQhE,CAAAA,MAAAA,CAAMa,SAAS,CAAA,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;IAEF,IAAM6D,eAAkB,GAAA/D,QAAA,CAAoC,YAAA;AAAA,MAAA,OAC1DgE,KAAA,CAAMC,OAAQ5E,CAAAA,MAAAA,CAAMgB,OAAO,CAAIhB,GAAAA,MAAAA,CAAMgB,OAAQ,CAAA6D,GAAA,CAAI,UAAC3D,IAAA,EAAA;QAAA,OAAS8C,OAAQ,CAAA9C,IAAI,CAAC,CAAA;OAAI,CAAA,GAAA,KAAA,CAAA,CAAA;AAAA,KAC9E,CAAA,CAAA;IAEA,IAAM4D,gBAAmB,GAAA,SAAnBA,gBAAmBA,CACvBC,OACA,EAAAC,QAAA,EACAC,WACG,EAAA;AACH,MAAA,IAAIP,eAAgB,CAAArD,KAAA,EAAc,OAAA,IAAA,CAAA;AAE5B,MAAA,IAAA6D,OAAA,GAAU5E,eAAeyE,OAAO,CAAA,CAAA;AACtC,MAAA,IAAI,CAACG,OAAA,EAAgB,OAAA,IAAA,CAAA;AAEjB,MAAA,IAAA/E,OAAA,CAAQgF,MAAMJ,OAAU,CAAA,EAAA;AACnB,QAAA,OAAAG,OAAA,CAAA;AACT,OAAA;AAEA,MAAA,OAAAE,WAAA,CAAAC,MAAA,EAAAC,UAAA,CAAoBN,QAAA,EAAA;QAAA,OAAiBxD,EAAAA,WAAY,CAAAH,KAAA;QAAA,SAAgB4D,EAAAA,WAAAA;AAAa,OAAA,CAAA,EAAA,IAAA,CAAA,CAAA;KAChF,CAAA;AAEA,IAAA,OAAO,YAAM;AACX,MAAA,IAAMM,kBAAkB,SAAlBA,kBAAwB;AACtB,QAAA,IAAAC,SAAA,GAAYlF,eAAe,OAAO,CAAA,CAAA;QACxC,IAAI,CAACkF,SAAW,EAAA;AACP,UAAA,OAAA,IAAA,CAAA;AACT,SAAA;AAEA,QAAA,OAAAJ,WAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAtE,MAAA,CAAsBV,WAAY,CAAAiB,KAAA,EAAA,UAAA,CAAA;AAAA,SAAA,EAAA,CAAkBmE;OACtD,CAAA;AACA,MAAA,IAAMC,oBAAoB,SAApBA,oBAA0B;AACxB,QAAA,IAAAC,WAAA,GAAclF,aAAc,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;QACtD,IAAI,CAACkF,WAAa,EAAA;AACT,UAAA,OAAA,IAAA,CAAA;AACT,SAAA;AACA,QAAA,OAAAN,WAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAtE,MAAA,CACiBV,YAAYiB,KACzB,EAAA,QAAA,CAAA;AAAA,SAAA,EAAA,CAAA+D,WAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAtE,MAAA,CAAeV,WAAY,CAAAiB,KAAA,EAAA,aAAA,CAAA;AAAA,SAAA,EAAA,CAAqBqE,WAAY,CAAA,CAAA,CAAA,CAAA,CAAA;OAGlE,CAAA;AACA,MAAA,IAAMC,oBAAoB,SAApBA,oBAA0B;QAC9B,IAAIjB,gBAAgBrD,KAAO,EAAA;UACzB,OAAOqD,eAAgB,CAAArD,KAAA,CAAMwD,GAAI,CAAA,UAAC3D,MAAM0E,KAAU,EAAA;AAC1C,YAAA,IAAEC,OAAY,GAAgB3E,IAAA,CAA5B2E,OAAY;AAAAC,cAAAA,WAAA,GAAAC,wBAAA,CAAgB7E,IAAA,EAAA8E,SAAA,CAAA,CAAA;AAC9B,YAAA,IAAAC,iBAAA,GAAoB,SAApBA,iBAAAA,CAAqBpE,CAAkB,EAAA;AAC3CgE,cAAAA,OAAA,aAAAA,OAAA,KAAA,KAAA,CAAA,IAAAA,OAAA,CAAUhE,CAAC,CAAA,CAAA;cACXgC,YAAA,CAAahC,CAAC,CAAA,CAAA;aAChB,CAAA;YAEM,IAAAqE,GAAA,MAAApF,MAAA,CAASa,QAAS,CAAAT,IAAA,CAAKgD,OAAO,CAAI,GAAAhD,IAAA,CAAKgD,UAAU,QAAY,OAAApD,MAAA,CAAA8E,KAAA,CAAA,CAAA;AAE5D,YAAA,OAAAR,WAAA,CAAAC,MAAA,EAAAC,UAAA,CAAA;cAAA,KAAcY,EAAAA,GAAAA;AAAA,aAAA,EAASJ;qBAAoBtE,EAAAA,WAAA,CAAYH,KAAO;cAAA,SAAS4E,EAAAA,iBAAAA;AAAmB,aAAA,CAAA,EAAA,IAAA,CAAA,CAAA;AACnG,WAAC,CAAA,CAAA;AACH,SAAA;QAEA,OAAO3F,eAAe,SAAS,CAAA,CAAA;OACjC,CAAA;AACA,MAAA,IAAM6F,sBAAsB,SAAtBA;eAA4BrB,gBAAA,CAAiB,WAAa,EAAAL,cAAA,CAAepD,OAAOwC,YAAY,CAAA,CAAA;AAAA,OAAA,CAAA;AAElG,MAAA,IAAMuC,uBAAuB,SAAvBA;eAA6BtB,gBAAA,CAAiB,YAAc,EAAAV,eAAA,CAAgB/C,OAAOuC,aAAa,CAAA,CAAA;AAAA,OAAA,CAAA;MACtG,OAAAwB,WAAA,CAAAiB,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAvF,MAAA,CAEcV,WAAY,CAAAiB,KAAA,EAAA,WAAA,CAAA;QAAA,SACbrB,EAAAA,MAAM,CAAAsG,OAAA;AAAA,QAAA,WAAA,EACL,QAAA;QAAA,cACItG,EAAAA,MAAM,CAAAuG,WAAA;QAAA,eACLvG,EAAAA,MAAM,CAAAwG,YAAA;QAAA,wBACGxG,EAAAA,MAAM,CAAAyG,oBAAA;QAAA,kBACZzG,EAAAA,MAAAA,CAAM0G;iBACf1G,EAAAA,MAAAA,CAAM2G;mBACN7C,kBAAA;QAAA,UACCxB,EAAAA,YAAAA;AAEV,OAAA,EAAA;AAAAsE,QAAAA,OAAA,WAAAC,QAAA,GAAA;AAAA,UAAA,OAAA,CAAAzB,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAAtE,MAAA,CAAeV,YAAYiB,KAAS,EAAAP,GAAAA,CAAAA,CAAAA,MAAA,CAAAX,OAAA,CAAQ2G,MAAMC,KAAS,IAAA,EAAA,CAAA;AAAA,YAAA,OAAA,EAAatF,UAAW,CAAAJ,KAAAA;WAChFf,EAAAA,CAAAA,eAAe,KAAK,CAAA,EACpBN,MAAM,CAAAgH,QAAA,IAAA5B,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAAtE,MAAA,CACUV,WAAY,CAAAiB,KAAA,EAAA,aAAA,CAAA;WAAA+D,EAAAA,CAAAA,WAAA,CAAA6B,SAAA,EAAA;YAAA,SACLjF,EAAAA,WAAAA;AAAA,WAAA,EAAA,IAAA,CAAA,CAAA,CADrB,EAAAoD,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAAtE,MAAA,CAIYV,WAAY,CAAAiB,KAAA,EAAA,WAAA,CAAA;AAAA,WAAA,EAAA,CACxBkE,eAAgB,EAAA,EAChBE,iBAAkB,EAAA,CAAA,CAAA,EAEpBnF,eAAe,QAAQ,CAAA,EAAA8E,WAAA,CAAA,KAAA,EAAA;AAAA,YAAA,OAAA,EACZhE,WAAY,CAAAC,KAAAA;WACrBsE,EAAAA,CAAAA,iBAAkB,EAAA,EAClBQ,mBAAoB,EAAA,EACpBC,oBAAqB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAAA,OAAA,CAAA,CAAA;KAKhC,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}