UNPKG

vue-admin-core

Version:
1 lines 16 kB
{"version":3,"file":"useCorePopup.mjs","sources":["../../../../../package/hooks/__shared__/useCorePopup.tsx"],"sourcesContent":["import { Component, DefineComponent, VNode, defineComponent, isVNode, ref, watch } from \"vue\";\nimport { ElButton, buttonProps } from \"element-plus\";\nimport { IMiddleware, applyMiddleware, isBool, isFn, isNum, isStr } from \"@formily/shared\";\nimport { isValidElement, resolveComponent, loading } from \"@vue-admin-core/formily/__builtins__\";\nimport { FormButtonGroup } from \"@vue-admin-core/formily\";\nimport { isBoolean } from \"xe-utils\";\n\nexport type PopupFooterProps = {\n addonAfter?: null | Component | VNode | (() => VNode);\n addonBefore?: null | Component | VNode | (() => VNode);\n addonCenter?: null | Component | VNode | (() => VNode);\n footer?: null | Component | VNode | (() => VNode);\n cancelText?: string | Component | VNode | (() => VNode);\n cancelButtonProps?: typeof buttonProps;\n okText?: string | Component | VNode | (() => VNode);\n okButtonProps?: typeof buttonProps;\n onCancel?: (flag: Boolean, fn: () => void) => void;\n onOK?: (flag: Boolean, fn: () => void) => void;\n okButtonHidden?: Boolean,\n cancelButtonHidden?: Boolean\n};\n\nexport type PopupProps = {\n title?: PopupTitle;\n loadingText?: string;\n reject?: () => void;\n resolve?: () => void;\n} & PopupFooterProps;\n\nexport type PopupTitle = string | number | Component | VNode | (() => VNode);\n\nexport type PopupContent = Component | (() => VNode);\n\nexport interface IPopup<Payload = any, Result = any, OpenProps = any> {\n forOpen(\n middleware: IMiddleware<Payload | OpenProps, OpenProps>\n ): IPopup<Payload, Result, OpenProps>;\n forConfirm(middleware: IMiddleware<Payload, Result>): IPopup<Payload, Result, OpenProps>;\n forCancel(middleware: IMiddleware<Payload, Result>): IPopup<Payload, Result, OpenProps>;\n forReset(middleware: IMiddleware<Payload, Result>): IPopup<Payload, Result, OpenProps>;\n open(props?: OpenProps): Promise<Result>;\n resolve(props?: Payload): Promise<void>;\n reject(props?: Payload): Promise<void>;\n reset(props?: Payload): Promise<void>;\n close(): void;\n}\n\nexport type UseElPopupResultType<\n Payload = PopupProps | PopupTitle,\n Result = PopupProps | PopupTitle,\n OpenProps = PopupProps | PopupTitle\n> = [IPopup<Payload, Result, OpenProps>, DefineComponent];\n\nexport const isPopupTitle = (props: any) => {\n return (\n isNum(props) ||\n isStr(props) ||\n isBool(props) ||\n isValidElement(props) ||\n isFn(props) ||\n isVNode(props)\n );\n};\n\nexport const getPopupProps = (props: any) => {\n if (isPopupTitle(props)) {\n return {\n title: props\n };\n } else {\n return props;\n }\n};\n\nexport function useCorePopup<\n Payload = PopupProps | PopupTitle,\n Result = PopupProps | PopupTitle,\n OpenProps = PopupProps | PopupTitle\n>(\n title: PopupProps | PopupTitle,\n PopupComponent: any,\n content: PopupContent\n): UseElPopupResultType<Payload, Result, OpenProps> {\n\n const visible = ref(false);\n const okLoading = ref(false);\n const cancelLoading = ref(false);\n const resetLoading = ref(false);\n let openMiddlewares: IMiddleware<Payload | OpenProps, OpenProps>[] = [];\n let confirmMiddlewares: IMiddleware<Payload, Result>[] = [];\n let cancelMiddlewares: IMiddleware<Payload, Result>[] = [];\n let resetMiddlewares: IMiddleware<Payload, Result>[] = [];\n\n const dialogProps = ref<PopupProps>(getPopupProps(title));\n const initPopupProps = { ...dialogProps.value };\n\n watch(visible, (value) => {\n if (!value) {\n openMiddlewares = [];\n confirmMiddlewares = [];\n cancelMiddlewares = [];\n resetMiddlewares = [];\n }\n });\n\n const dialog = {\n forOpen: (middleware: IMiddleware<Payload | OpenProps, OpenProps>) => {\n if (isFn(middleware)) {\n openMiddlewares.push(middleware);\n }\n return dialog;\n },\n forConfirm: (middleware: IMiddleware<Payload, Result>) => {\n if (isFn(middleware)) {\n confirmMiddlewares.push(middleware);\n }\n return dialog;\n },\n forCancel: (middleware: IMiddleware<Payload, Result>) => {\n if (isFn(middleware)) {\n cancelMiddlewares.push(middleware);\n }\n return dialog;\n },\n forReset: (middleware: IMiddleware<Payload, Result>) => {\n if (isFn(middleware)) {\n resetMiddlewares.push(middleware);\n }\n return dialog;\n },\n reject: async (props?: Payload) => {\n cancelLoading.value = true;\n const flag = await loading(dialogProps.value.loadingText, () => applyMiddleware(props, cancelMiddlewares));\n cancelLoading.value = false;\n if (dialogProps.value.onCancel) {\n dialogProps.value.onCancel(Boolean(flag), () => {\n dialog.close();\n });\n } else {\n if (isBoolean(flag) && flag === false) return;\n dialog.close();\n }\n },\n resolve: async (props?: Payload) => {\n okLoading.value = true;\n const flag = await applyMiddleware(props, confirmMiddlewares);\n okLoading.value = false;\n if (dialogProps.value.onOK) {\n dialogProps.value?.onOK?.(Boolean(flag), () => {\n dialog.close();\n });\n } else {\n if (isBoolean(flag) && flag === false) return;\n dialog.close();\n }\n },\n reset: async (props?: Payload) => {\n resetLoading.value = true;\n await applyMiddleware(props, resetMiddlewares);\n resetLoading.value = false;\n },\n beforeOpen: async (props?: Payload) => {\n const result = await loading(dialogProps.value.loadingText, () =>\n applyMiddleware(props, openMiddlewares)\n );\n return result;\n },\n open: async (props: OpenProps) => {\n const result = await dialog.beforeOpen();\n dialogProps.value = {\n ...initPopupProps,\n ...(props ? getPopupProps(props) : {})\n };\n visible.value = true;\n return result;\n },\n close: () => {\n visible.value = false;\n }\n };\n\n\n const Footer = defineComponent({\n name: \"PopupFooter\",\n setup() {\n return () => {\n const {\n cancelButtonProps,\n cancelText,\n okButtonProps,\n okText,\n addonAfter,\n addonBefore,\n addonCenter,\n cancelButtonHidden,\n okButtonHidden\n } = dialogProps.value;\n return (\n <FormButtonGroup align=\"right\">\n {addonBefore}\n {!cancelButtonHidden && <ElButton\n {...cancelButtonProps}\n loading={cancelLoading.value}\n onClick={(e: any) => {\n dialog.reject();\n }}\n >\n {cancelText || \"取消\"}\n </ElButton>}\n {addonCenter}\n {!okButtonHidden && <ElButton\n type=\"primary\"\n {...okButtonProps}\n loading={okLoading.value}\n onClick={(e: any) => {\n dialog.resolve();\n }}\n >\n {okText || \"确定\"}\n </ElButton>}\n {addonAfter}\n </FormButtonGroup>\n );\n };\n }\n });\n\n const ContextHolder = defineComponent({\n name: \"PopupContextHolder\",\n setup() {\n return () => {\n const { footer = true, title, ...reset } = dialogProps.value;\n let curestTitle = title;\n const _slots: any = {\n default: () => resolveComponent(content)\n };\n if (typeof title !== \"string\") {\n _slots.header = () => resolveComponent(title);\n curestTitle = \"\";\n }\n if (isBool(footer) && footer) {\n _slots.footer = () => resolveComponent(<Footer {...dialogProps.value} />);\n }\n if (isFn(footer) || isValidElement(footer)) {\n _slots.footer = resolveComponent(footer as any);\n }\n return (\n <PopupComponent\n {...reset}\n title={curestTitle}\n modelValue={visible.value}\n onUpdate:modelValue={(v: boolean) => (visible.value = v)}\n >\n {_slots}\n </PopupComponent>\n );\n };\n }\n }) as any;\n\n return [dialog, ContextHolder];\n}\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","isPopupTitle","props","isNum","isStr","isBool","isValidElement","isFn","isVNode","getPopupProps","title","useCorePopup","PopupComponent","content","visible","ref","okLoading","cancelLoading","resetLoading","openMiddlewares","confirmMiddlewares","cancelMiddlewares","resetMiddlewares","dialogProps","initPopupProps","value","watch","dialog","forOpen","middleware","push","forConfirm","forCancel","forReset","reject","flag","loading","loadingText","applyMiddleware","onCancel","Boolean","close","isBoolean","resolve","onOK","reset","beforeOpen","result","open","Footer","defineComponent","name","setup","cancelButtonProps","cancelText","okButtonProps","okText","addonAfter","addonBefore","addonCenter","cancelButtonHidden","okButtonHidden","_createVNode","FormButtonGroup","default","ElButton","_mergeProps","e","ContextHolder","footer","curestTitle","_slots","resolveComponent","header","v"],"mappings":";;;;;;;;;;;AAKqC,SAAAA,QAAAC,CAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAAC,IAAAA,MAAAA,CAAAC,SAAAC,CAAAA,QAAAA,CAAAC,IAAAJ,CAAAA,CAAA,CAAAK,KAAAA,iBAAAA,IAAAA,CAAAA,OAAAA,CAAAL,CAAA,CAAA,CAAA;AAAA,CAAA;AAgD9B,MAAMM,eAAgBC,CAAe,KAAA,KAAA;AAC1C,EAAA,OACEC,MAAMD,KAAK,CAAA,IACXE,KAAMF,CAAAA,KAAK,KACXG,MAAOH,CAAAA,KAAK,CACZI,IAAAA,cAAAA,CAAeJ,KAAK,CACpBK,IAAAA,IAAAA,CAAKL,KAAK,CAAA,IACVM,QAAQN,KAAK,CAAA,CAAA;AAEjB,EAAA;AAEO,MAAMO,gBAAiBP,CAAe,KAAA,KAAA;AAC3C,EAAID,IAAAA,YAAAA,CAAaC,KAAK,CAAG,EAAA;AACvB,IAAO,OAAA;AAAA,MACLQ,KAAOR,EAAAA,KAAAA;AAAAA,KACT,CAAA;AAAA,GACK,MAAA;AACL,IAAOA,OAAAA,KAAAA,CAAAA;AAAAA,GACT;AACF,EAAA;AAEgBS,SAAAA,YAAAA,CAKdD,KACAE,EAAAA,cAAAA,EACAC,OACkD,EAAA;AAElD,EAAMC,MAAAA,OAAAA,GAAUC,IAAI,KAAK,CAAA,CAAA;AACzB,EAAMC,MAAAA,SAAAA,GAAYD,IAAI,KAAK,CAAA,CAAA;AAC3B,EAAME,MAAAA,aAAAA,GAAgBF,IAAI,KAAK,CAAA,CAAA;AAC/B,EAAMG,MAAAA,YAAAA,GAAeH,IAAI,KAAK,CAAA,CAAA;AAC9B,EAAA,IAAII,kBAAiE,EAAE,CAAA;AACvE,EAAA,IAAIC,qBAAqD,EAAE,CAAA;AAC3D,EAAA,IAAIC,oBAAoD,EAAE,CAAA;AAC1D,EAAA,IAAIC,mBAAmD,EAAE,CAAA;AAEzD,EAAA,MAAMC,WAAcR,GAAAA,GAAAA,CAAgBN,aAAcC,CAAAA,KAAK,CAAC,CAAA,CAAA;AACxD,EAAA,MAAMc,cAAiB,GAAA;AAAA,IAAE,GAAGD,WAAYE,CAAAA,KAAAA;AAAAA,GAAM,CAAA;AAE9CC,EAAAA,KAAAA,CAAMZ,SAAUW,CAAU,KAAA,KAAA;AACxB,IAAA,IAAI,CAACA,KAAO,EAAA;AACVN,MAAAA,eAAAA,GAAkB,EAAE,CAAA;AACpBC,MAAAA,kBAAAA,GAAqB,EAAE,CAAA;AACvBC,MAAAA,iBAAAA,GAAoB,EAAE,CAAA;AACtBC,MAAAA,gBAAAA,GAAmB,EAAE,CAAA;AAAA,KACvB;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAMK,MAAS,GAAA;AAAA,IACbC,SAAUC,CAA4D,UAAA,KAAA;AACpE,MAAItB,IAAAA,IAAAA,CAAKsB,UAAU,CAAG,EAAA;AACpBV,QAAAA,eAAAA,CAAgBW,KAAKD,UAAU,CAAA,CAAA;AAAA,OACjC;AACA,MAAOF,OAAAA,MAAAA,CAAAA;AAAAA,KACT;AAAA,IACAI,YAAaF,CAA6C,UAAA,KAAA;AACxD,MAAItB,IAAAA,IAAAA,CAAKsB,UAAU,CAAG,EAAA;AACpBT,QAAAA,kBAAAA,CAAmBU,KAAKD,UAAU,CAAA,CAAA;AAAA,OACpC;AACA,MAAOF,OAAAA,MAAAA,CAAAA;AAAAA,KACT;AAAA,IACAK,WAAYH,CAA6C,UAAA,KAAA;AACvD,MAAItB,IAAAA,IAAAA,CAAKsB,UAAU,CAAG,EAAA;AACpBR,QAAAA,iBAAAA,CAAkBS,KAAKD,UAAU,CAAA,CAAA;AAAA,OACnC;AACA,MAAOF,OAAAA,MAAAA,CAAAA;AAAAA,KACT;AAAA,IACAM,UAAWJ,CAA6C,UAAA,KAAA;AACtD,MAAItB,IAAAA,IAAAA,CAAKsB,UAAU,CAAG,EAAA;AACpBP,QAAAA,gBAAAA,CAAiBQ,KAAKD,UAAU,CAAA,CAAA;AAAA,OAClC;AACA,MAAOF,OAAAA,MAAAA,CAAAA;AAAAA,KACT;AAAA,IACAO,MAAAA,EAAQ,OAAOhC,KAAoB,KAAA;AACjCe,MAAAA,aAAAA,CAAcQ,KAAQ,GAAA,IAAA,CAAA;AACtB,MAAMU,MAAAA,IAAAA,GAAO,MAAMC,OAAAA,CAAQb,WAAYE,CAAAA,KAAAA,CAAMY,aAAa,MAAMC,eAAAA,CAAgBpC,KAAOmB,EAAAA,iBAAiB,CAAC,CAAA,CAAA;AACzGJ,MAAAA,aAAAA,CAAcQ,KAAQ,GAAA,KAAA,CAAA;AACtB,MAAIF,IAAAA,WAAAA,CAAYE,MAAMc,QAAU,EAAA;AAC9BhB,QAAAA,WAAAA,CAAYE,KAAMc,CAAAA,QAAAA,CAASC,OAAQL,CAAAA,IAAI,GAAG,MAAM;AAC9CR,UAAAA,MAAAA,CAAOc,KAAM,EAAA,CAAA;AAAA,SACd,CAAA,CAAA;AAAA,OACI,MAAA;AACL,QAAIC,IAAAA,SAAAA,CAAUP,IAAI,CAAA,IAAKA,IAAS,KAAA,KAAA;AAAO,UAAA,OAAA;AACvCR,QAAAA,MAAAA,CAAOc,KAAM,EAAA,CAAA;AAAA,OACf;AAAA,KACF;AAAA,IACAE,OAAAA,EAAS,OAAOzC,KAAoB,KAAA;;AAClCc,MAAAA,SAAAA,CAAUS,KAAQ,GAAA,IAAA,CAAA;AAClB,MAAA,MAAMU,IAAO,GAAA,MAAMG,eAAgBpC,CAAAA,KAAAA,EAAOkB,kBAAkB,CAAA,CAAA;AAC5DJ,MAAAA,SAAAA,CAAUS,KAAQ,GAAA,KAAA,CAAA;AAClB,MAAIF,IAAAA,WAAAA,CAAYE,MAAMmB,IAAM,EAAA;AAC1BrB,QAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,WAAAA,CAAYE,UAAZF,IAAmBqB,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,KAAnBrB,4BAA0BiB,OAAQL,CAAAA,IAAI,GAAG,MAAM;AAC7CR,UAAAA,MAAAA,CAAOc,KAAM,EAAA,CAAA;AAAA,SACf,CAAA,CAAA;AAAA,OACK,MAAA;AACL,QAAIC,IAAAA,SAAAA,CAAUP,IAAI,CAAA,IAAKA,IAAS,KAAA,KAAA;AAAO,UAAA,OAAA;AACvCR,QAAAA,MAAAA,CAAOc,KAAM,EAAA,CAAA;AAAA,OACf;AAAA,KACF;AAAA,IACAI,KAAAA,EAAO,OAAO3C,KAAoB,KAAA;AAChCgB,MAAAA,YAAAA,CAAaO,KAAQ,GAAA,IAAA,CAAA;AACrB,MAAMa,MAAAA,eAAAA,CAAgBpC,OAAOoB,gBAAgB,CAAA,CAAA;AAC7CJ,MAAAA,YAAAA,CAAaO,KAAQ,GAAA,KAAA,CAAA;AAAA,KACvB;AAAA,IACAqB,UAAAA,EAAY,OAAO5C,KAAoB,KAAA;AACrC,MAAM6C,MAAAA,MAAAA,GAAS,MAAMX,OAAAA,CAAQb,WAAYE,CAAAA,KAAAA,CAAMY,aAAa,MAC1DC,eAAAA,CAAgBpC,KAAOiB,EAAAA,eAAe,CACxC,CAAA,CAAA;AACA,MAAO4B,OAAAA,MAAAA,CAAAA;AAAAA,KACT;AAAA,IACAC,IAAAA,EAAM,OAAO9C,KAAqB,KAAA;AAChC,MAAM6C,MAAAA,MAAAA,GAAS,MAAMpB,MAAAA,CAAOmB,UAAW,EAAA,CAAA;AACvCvB,MAAAA,WAAAA,CAAYE,KAAQ,GAAA;AAAA,QAClB,GAAGD,cAAAA;AAAAA,QACH,GAAItB,KAAAA,GAAQO,aAAcP,CAAAA,KAAK,IAAI,EAAC;AAAA,OACtC,CAAA;AACAY,MAAAA,OAAAA,CAAQW,KAAQ,GAAA,IAAA,CAAA;AAChB,MAAOsB,OAAAA,MAAAA,CAAAA;AAAAA,KACT;AAAA,IACAN,OAAOA,MAAM;AACX3B,MAAAA,OAAAA,CAAQW,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAGA,EAAA,MAAMwB,SAASC,eAAgB,CAAA;AAAA,IAC7BC,IAAM,EAAA,aAAA;AAAA,IACNC,KAAQ,GAAA;AACN,MAAA,OAAO,MAAM;AACX,QAAM,MAAA;AAAA,UACJC,iBAAAA;AAAAA,UACAC,UAAAA;AAAAA,UACAC,aAAAA;AAAAA,UACAC,MAAAA;AAAAA,UACAC,UAAAA;AAAAA,UACAC,WAAAA;AAAAA,UACAC,WAAAA;AAAAA,UACAC,kBAAAA;AAAAA,UACAC,cAAAA;AAAAA,YACEtC,WAAYE,CAAAA,KAAAA,CAAAA;AAChB,QAAA,OAAAqC,YAAAC,eAAA,EAAA;AAAA,UAAA,OAAA,EAAA,OAAA;AAAA,SAAA,EAAA;AAAA,UAAAC,OAAAA,EAAAA,MAEKN,CAAAA,WAAAA,EACA,CAACE,kBAAkBE,IAAAA,WAAAA,CAAAG,QAAAC,EAAAA,UAAAA,CACdb,iBAAiB,EAAA;AAAA,YAAA,WACZpC,aAAcQ,CAAAA,KAAAA;AAAAA,YAAK,WAClB0C,CAAW,CAAA,KAAA;AACnBxC,cAAAA,MAAAA,CAAOO,MAAO,EAAA,CAAA;AAAA,aAChB;AAAA,WAAC,CAAA,EAAA;AAAA,YAAA8B,OAAAA,EAAAA,MAEAV,CAAAA,UAAAA,IAAc,cAAI,CAAA;AAAA,WACV,CACVK,EAAAA,WAAAA,EACA,CAACE,cAAcC,IAAAA,WAAAA,CAAAG,UAAAC,UAAA,CAAA;AAAA,YAAA,MAAA,EAAA,SAAA;AAAA,aAEVX,aAAa,EAAA;AAAA,YAAA,WACRvC,SAAUS,CAAAA,KAAAA;AAAAA,YAAK,WACd0C,CAAW,CAAA,KAAA;AACnBxC,cAAAA,MAAAA,CAAOgB,OAAQ,EAAA,CAAA;AAAA,aACjB;AAAA,WAAC,CAAA,EAAA;AAAA,YAAAqB,OAAAA,EAAAA,MAEAR,CAAAA,MAAAA,IAAU,cAAI,CAAA;AAAA,WAAA,GAEhBC,UAAU,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAGjB,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAMW,gBAAgBlB,eAAgB,CAAA;AAAA,IACpCC,IAAM,EAAA,oBAAA;AAAA,IACNC,KAAQ,GAAA;AACN,MAAA,OAAO,MAAM;AACX,QAAM,MAAA;AAAA,UAAEiB,MAAS,GAAA,IAAA;AAAA,UAAM3D,KAAAA,EAAAA,MAAAA;AAAAA,UAAO,GAAGmC,KAAAA;AAAAA,YAAUtB,WAAYE,CAAAA,KAAAA,CAAAA;AACvD,QAAA,IAAI6C,WAAc5D,GAAAA,MAAAA,CAAAA;AAClB,QAAA,MAAM6D,MAAc,GAAA;AAAA,UAClBP,OAAAA,EAASA,MAAMQ,gBAAAA,CAAiB3D,OAAO,CAAA;AAAA,SACzC,CAAA;AACA,QAAI,IAAA,OAAOH,WAAU,QAAU,EAAA;AAC7B6D,UAAOE,MAAAA,CAAAA,MAAAA,GAAS,MAAMD,gBAAAA,CAAiB9D,MAAK,CAAA,CAAA;AAC5C4D,UAAc,WAAA,GAAA,EAAA,CAAA;AAAA,SAChB;AACA,QAAIjE,IAAAA,MAAAA,CAAOgE,MAAM,CAAA,IAAKA,MAAQ,EAAA;AAC5BE,UAAOF,MAAAA,CAAAA,MAAAA,GAAS,MAAMG,gBAAgBV,CAAAA,WAAAA,CAAAb,QAAa1B,WAAYE,CAAAA,KAAAA,OAAS,CAAA,CAAA;AAAA,SAC1E;AACA,QAAA,IAAIlB,IAAK8D,CAAAA,MAAM,CAAK/D,IAAAA,cAAAA,CAAe+D,MAAM,CAAG,EAAA;AAC1CE,UAAOF,MAAAA,CAAAA,MAAAA,GAASG,iBAAiBH,MAAa,CAAA,CAAA;AAAA,SAChD;AACA,QAAAP,OAAAA,WAAAA,CAAAlD,cAAAsD,EAAAA,UAAAA,CAEQrB,KAAK,EAAA;AAAA,UAAA,OACFyB,EAAAA,WAAAA;AAAAA,UAAW,cACNxD,OAAQW,CAAAA,KAAAA;AAAAA,UAAK,qBAAA,EACHiD,CAAgB5D,CAAAA,KAAAA,OAAAA,CAAQW,KAAQiD,GAAAA,CAAAA;AAAAA,SAAE,CAAA,EAAAhF,OAEvD6E,CAAAA,MAAM,IAANA,MAAM,GAAA;AAAA,UAAAP,OAAAA,EAAAA,MAAA,CAANO,MAAM,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAGb,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,CAAC5C,QAAQyC,aAAa,CAAA,CAAA;AAC/B;;;;"}