@ibiz-template/mob-vue3-components 0.7.41-alpha.22 → 0.7.41-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chart-CVnUjHjl.js +2 -0
- package/dist/{chart-j1WkpBhc.js.map → chart-CVnUjHjl.js.map} +1 -1
- package/dist/ibiz-markdown-editor-MwEhH1r_.js +2 -0
- package/dist/ibiz-markdown-editor-MwEhH1r_.js.map +1 -0
- package/dist/index-CopTozpr.js +2 -0
- package/dist/{index-ChdHGLJI.js.map → index-CopTozpr.js.map} +1 -1
- package/dist/index-Cxv8dJIk.js +2 -0
- package/dist/index-Cxv8dJIk.js.map +1 -0
- package/dist/index-DV0pS0zU.js +2 -0
- package/dist/{index-Dd7yiMzY.js.map → index-DV0pS0zU.js.map} +1 -1
- package/dist/index.min.css +8 -8
- package/dist/index.system.min.js +1 -1
- package/dist/quill-CeDXLpcJ.js +2 -0
- package/dist/{quill-BOA7ZLOz.js.map → quill-CeDXLpcJ.js.map} +1 -1
- package/dist/quill-editor-C5mEMG93.js +2 -0
- package/dist/quill-editor-C5mEMG93.js.map +1 -0
- package/dist/quill-editor-preview-BPS9uMa7.js +2 -0
- package/dist/{quill-editor-preview-DghpeKpg.js.map → quill-editor-preview-BPS9uMa7.js.map} +1 -1
- package/dist/tree-SAqvldtV.js +2 -0
- package/dist/{tree-BTa0bMPr.js.map → tree-SAqvldtV.js.map} +1 -1
- package/dist/xlsx-util-b5CesqYd.js +3 -0
- package/dist/xlsx-util-b5CesqYd.js.map +1 -0
- package/es/_virtual/index12.mjs +2 -2
- package/es/_virtual/index13.mjs +2 -2
- package/es/common/action-group/action-group.css +1 -1
- package/es/common/action-group/action-group.mjs +44 -43
- package/es/common/button-list/button-list.css +1 -1
- package/es/common/button-list/button-list.mjs +16 -25
- package/es/common/col/col.mjs +1 -1
- package/es/common/cropping/cropping.mjs +5 -5
- package/es/common/date-range-picker/components/range-picker/range-picker.mjs +2 -4
- package/es/common/date-range-picker/components/single-picker/single-picker.mjs +2 -4
- package/es/common/date-range-picker/date-range-picker.mjs +2 -2
- package/es/common/emoji-select/components/emoji-item/emoji-item.mjs +4 -4
- package/es/common/emoji-select/components/emoji-list/emoji-list.mjs +1 -1
- package/es/common/emoji-select/icons/categories.mjs +9 -57
- package/es/common/float-button/float-button.css +1 -1
- package/es/common/float-button/float-button.mjs +12 -7
- package/es/common/keep-alive/keep-alive.mjs +2 -2
- package/es/common/keep-alive/scheduler.mjs +1 -1
- package/es/common/preview-image/preview-image.mjs +4 -4
- package/es/common/rawitem/rawitem.mjs +2 -2
- package/es/common/row/row.mjs +1 -1
- package/es/common/split/split.mjs +9 -9
- package/es/common/split-trigger/split-trigger.mjs +1 -1
- package/es/common/tab-layout/tab-dropdown/tab-dropdown.mjs +1 -1
- package/es/control/app-menu/app-menu.mjs +1 -1
- package/es/control/app-menu/custom-menu-design/custom-menu-design.mjs +1 -1
- package/es/control/app-menu/menu-render-util.mjs +2 -0
- package/es/control/app-menu-icon-view/app-menu-icon-view.mjs +1 -1
- package/es/control/app-menu-icon-view/index.mjs +1 -1
- package/es/control/app-menu-list-view/app-menu-list-view.mjs +1 -1
- package/es/control/app-menu-list-view/index.mjs +1 -1
- package/es/control/calendar/calendar.mjs +6 -6
- package/es/control/caption-bar/caption-bar.mjs +1 -1
- package/es/control/chart/chart.mjs +1 -1
- package/es/control/dashboard/dashboard.mjs +3 -1
- package/es/control/dashboard/portlet/actionbar-portlet/actionbar-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/chart-portlet/chart-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/container-portlet/container-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/html-portlet/html-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/list-portlet/list-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/menu-portlet/menu-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.css +1 -1
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +4 -4
- package/es/control/dashboard/portlet/rawitem-portlet/rawitem-portlet.mjs +1 -1
- package/es/control/dashboard/portlet/view-portlet/view-portlet.mjs +1 -1
- package/es/control/data-view/data-view.css +1 -1
- package/es/control/data-view/data-view.mjs +7 -7
- package/es/control/drbar/drbar.mjs +1 -1
- package/es/control/drtab/drtab.controller.mjs +1 -1
- package/es/control/drtab/drtab.mjs +1 -1
- package/es/control/form/edit-form/edit-form.mjs +1 -1
- package/es/control/form/form/form.mjs +2 -2
- package/es/control/form/form-detail/form-button/form-button.css +1 -1
- package/es/control/form/form-detail/form-button/form-button.mjs +1 -1
- package/es/control/form/form-detail/form-group-panel/form-group-panel.mjs +1 -1
- package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +1 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +6 -6
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.provider.mjs +2 -2
- package/es/control/form/search-form/search-form.mjs +1 -1
- package/es/control/list/list/list.mjs +1 -1
- package/es/control/list/md-ctrl/md-ctrl.css +1 -1
- package/es/control/list/md-ctrl/md-ctrl.mjs +2 -2
- package/es/control/pickup-view-panel/pickup-view-panel.mjs +1 -1
- package/es/control/search-bar/filter-field-select/filter-field-select.mjs +1 -1
- package/es/control/search-bar/filter-mode-select/filter-mode-select.mjs +1 -1
- package/es/control/search-bar/filter-tree/filter-tree.css +1 -1
- package/es/control/search-bar/filter-tree/filter-tree.mjs +1 -1
- package/es/control/search-bar/search-bar.mjs +10 -6
- package/es/control/tab-exp-panel/tab-exp-panel.mjs +1 -1
- package/es/control/toolbar/float-toolbar/float-toolbar.css +1 -1
- package/es/control/toolbar/float-toolbar/float-toolbar.mjs +13 -7
- package/es/control/toolbar/toolbar-render-util.mjs +55 -32
- package/es/control/toolbar/toolbar.mjs +1 -1
- package/es/control/tree/tree.mjs +9 -9
- package/es/control/tree-exp-bar/tree-exp-bar.mjs +1 -1
- package/es/control/wizard-panel/wizard-panel.mjs +6 -6
- package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +2 -2
- package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.mjs +1 -1
- package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +2 -2
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +2 -2
- package/es/editor/data-picker/picker-editor.controller.mjs +1 -1
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +7 -7
- package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs +1 -1
- package/es/editor/html/html-editor.controller.mjs +26 -9
- package/es/editor/html/quill-editor/quill-editor.mjs +12 -3
- package/es/editor/html/quill-editor-preview/quill-editor-preview.mjs +4 -4
- package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +12 -3
- package/es/editor/markdown/markdown-editor.controller.mjs +23 -3
- package/es/editor/qrcode/ibiz-qrcode/ibiz-qrcode.mjs +1 -1
- package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +2 -2
- package/es/editor/span/span/span.mjs +7 -7
- package/es/editor/span/span-link/span-link.mjs +1 -1
- package/es/editor/stepper/ibiz-stepper/ibiz-stepper.mjs +1 -1
- package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +1 -1
- package/es/editor/text-box/input/input.mjs +4 -4
- package/es/editor/text-box/signature/signature.mjs +59 -19
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +1 -1
- package/es/editor/upload/upload-editor.controller.mjs +18 -1
- package/es/editor/upload/use/use-van-upload.mjs +6 -2
- package/es/index.mjs +2 -1
- package/es/locale/en/index.mjs +26 -23
- package/es/locale/zh-CN/index.mjs +3 -0
- package/es/mob-app/App.mjs +10 -1
- package/es/mob-app/components/modal-router-shell/modal-router-shell.mjs +6 -4
- package/es/mob-app/components/router-shell/router-shell.mjs +1 -1
- package/es/mob-app/guard/auth-guard/auth-guard.mjs +2 -2
- package/es/mob-app/guard/auth-guard/dyna-auth-guard.mjs +2 -2
- package/es/mob-app/main.mjs +3 -1
- package/es/mob-app/router/index.mjs +131 -76
- package/es/mob-app/util/unauthorized-handler/unauthorized-handler.mjs +5 -5
- package/es/node_modules/.pnpm/dingtalk-jsapi@3.2.0/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.mjs +1 -1
- package/es/node_modules/.pnpm/dingtalk-jsapi@3.2.0/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.mjs +1 -1
- package/es/panel-component/async-action/async-action/async-action.mjs +2 -2
- package/es/panel-component/async-action/async-action-preview/async-action-preview.mjs +3 -3
- package/es/panel-component/async-action/async-action-result/async-action-result.mjs +1 -1
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +2 -2
- package/es/panel-component/panel-app-title/panel-app-title.mjs +2 -2
- package/es/panel-component/panel-button/panel-button.css +1 -1
- package/es/panel-component/panel-carousel/panel-carousel.controller.mjs +1 -1
- package/es/panel-component/panel-video-player/panel-video-player.controller.mjs +2 -2
- package/es/panel-component/split-container/split-container.controller.mjs +1 -1
- package/es/panel-component/user-message/common/internal-message-default/internal-message-default.provider.mjs +1 -1
- package/es/panel-component/user-message/user-message.mjs +1 -1
- package/es/panel-component/user-message/user-message.util.mjs +1 -1
- package/es/panel-component/view-content-panel-container/view-content-panel-container.css +1 -1
- package/es/panel-component/view-content-panel-container/view-content-panel-container.mjs +12 -12
- package/es/platform/ios-platform-provider.mjs +2 -2
- package/es/platform/wechat-official-platform-provider.mjs +1 -1
- package/es/util/ai-chat-util/ai-chat-util.mjs +204 -41
- package/es/util/app-drawer/app-drawer-component.mjs +20 -6
- package/es/util/app-modal/app-modal-component.mjs +7 -4
- package/es/util/app-popover/app-popover-component.mjs +4 -4
- package/es/util/app-util/app-util.mjs +38 -3
- package/es/util/button-util/button-util.mjs +33 -1
- package/es/util/confirm-util/confirm-util.mjs +4 -4
- package/es/util/directive/loading.mjs +1 -1
- package/es/util/fullscreen/fullscreen-util.mjs +1 -1
- package/es/util/index.mjs +2 -1
- package/es/util/list-util/list-render-util.mjs +24 -5
- package/es/util/loading-util/loading-util.mjs +1 -1
- package/es/util/open-view-util/open-view-util.mjs +1 -1
- package/es/util/print-preview-util/print-preview-markdown/icon/icon.mjs +46 -0
- package/es/util/print-preview-util/print-preview-markdown/print-preview-markdown.css +1 -0
- package/es/util/print-preview-util/print-preview-markdown/print-preview-markdown.mjs +62 -0
- package/es/util/print-preview-util/print-preview-util.mjs +57 -0
- package/es/util/scan-qrcode/scan-qrcode.mjs +1 -1
- package/es/util/user-route-util/user-route-util.mjs +4 -4
- package/es/util/xlsx-util/xlsx-util.mjs +1 -1
- package/es/view-engine/index-view.engine.mjs +4 -0
- package/es/view-engine/index.mjs +31 -31
- package/es/view-engine/login-view.engine.mjs +1 -1
- package/es/view-engine/mob-calendar-view.engine.mjs +8 -1
- package/es/view-engine/mob-edit-view.engine.mjs +1 -1
- package/es/view-engine/mob-wf-dyna-action-view.engine.mjs +1 -1
- package/es/view-engine/mob-wf-dyna-edit-view.engine.mjs +1 -1
- package/es/view-engine/mob-wf-dyna-start-view.engine.mjs +1 -1
- package/lib/_virtual/index12.cjs +2 -2
- package/lib/_virtual/index13.cjs +2 -2
- package/lib/common/action-group/action-group.cjs +42 -41
- package/lib/common/action-group/action-group.css +1 -1
- package/lib/common/button-list/button-list.cjs +14 -23
- package/lib/common/button-list/button-list.css +1 -1
- package/lib/common/col/col.cjs +1 -1
- package/lib/common/cropping/cropping.cjs +5 -5
- package/lib/common/date-range-picker/components/range-picker/range-picker.cjs +2 -4
- package/lib/common/date-range-picker/components/single-picker/single-picker.cjs +2 -4
- package/lib/common/date-range-picker/date-range-picker.cjs +2 -2
- package/lib/common/emoji-select/components/emoji-item/emoji-item.cjs +4 -4
- package/lib/common/emoji-select/components/emoji-list/emoji-list.cjs +1 -1
- package/lib/common/emoji-select/icons/categories.cjs +9 -57
- package/lib/common/float-button/float-button.cjs +11 -6
- package/lib/common/float-button/float-button.css +1 -1
- package/lib/common/keep-alive/keep-alive.cjs +2 -2
- package/lib/common/keep-alive/scheduler.cjs +1 -1
- package/lib/common/preview-image/preview-image.cjs +4 -4
- package/lib/common/rawitem/rawitem.cjs +2 -2
- package/lib/common/row/row.cjs +1 -1
- package/lib/common/split/split.cjs +9 -9
- package/lib/common/split-trigger/split-trigger.cjs +1 -1
- package/lib/common/tab-layout/tab-dropdown/tab-dropdown.cjs +1 -1
- package/lib/control/app-menu/app-menu.cjs +1 -1
- package/lib/control/app-menu/custom-menu-design/custom-menu-design.cjs +1 -1
- package/lib/control/app-menu/menu-render-util.cjs +2 -0
- package/lib/control/app-menu-icon-view/app-menu-icon-view.cjs +1 -1
- package/lib/control/app-menu-icon-view/index.cjs +1 -1
- package/lib/control/app-menu-list-view/app-menu-list-view.cjs +1 -1
- package/lib/control/app-menu-list-view/index.cjs +1 -1
- package/lib/control/calendar/calendar.cjs +6 -6
- package/lib/control/caption-bar/caption-bar.cjs +1 -1
- package/lib/control/chart/chart.cjs +1 -1
- package/lib/control/dashboard/dashboard.cjs +3 -1
- package/lib/control/dashboard/portlet/actionbar-portlet/actionbar-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/chart-portlet/chart-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/container-portlet/container-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/html-portlet/html-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/list-portlet/list-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/menu-portlet/menu-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +4 -4
- package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.css +1 -1
- package/lib/control/dashboard/portlet/rawitem-portlet/rawitem-portlet.cjs +1 -1
- package/lib/control/dashboard/portlet/view-portlet/view-portlet.cjs +1 -1
- package/lib/control/data-view/data-view.cjs +7 -7
- package/lib/control/data-view/data-view.css +1 -1
- package/lib/control/drbar/drbar.cjs +1 -1
- package/lib/control/drtab/drtab.cjs +1 -1
- package/lib/control/drtab/drtab.controller.cjs +1 -1
- package/lib/control/form/edit-form/edit-form.cjs +1 -1
- package/lib/control/form/form/form.cjs +2 -2
- package/lib/control/form/form-detail/form-button/form-button.cjs +1 -1
- package/lib/control/form/form-detail/form-button/form-button.css +1 -1
- package/lib/control/form/form-detail/form-group-panel/form-group-panel.cjs +1 -1
- package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +1 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +6 -6
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.provider.cjs +2 -2
- package/lib/control/form/search-form/search-form.cjs +1 -1
- package/lib/control/list/list/list.cjs +1 -1
- package/lib/control/list/md-ctrl/md-ctrl.cjs +2 -2
- package/lib/control/list/md-ctrl/md-ctrl.css +1 -1
- package/lib/control/pickup-view-panel/pickup-view-panel.cjs +1 -1
- package/lib/control/search-bar/filter-field-select/filter-field-select.cjs +1 -1
- package/lib/control/search-bar/filter-mode-select/filter-mode-select.cjs +1 -1
- package/lib/control/search-bar/filter-tree/filter-tree.cjs +1 -1
- package/lib/control/search-bar/filter-tree/filter-tree.css +1 -1
- package/lib/control/search-bar/search-bar.cjs +10 -6
- package/lib/control/tab-exp-panel/tab-exp-panel.cjs +1 -1
- package/lib/control/toolbar/float-toolbar/float-toolbar.cjs +13 -7
- package/lib/control/toolbar/float-toolbar/float-toolbar.css +1 -1
- package/lib/control/toolbar/toolbar-render-util.cjs +55 -32
- package/lib/control/toolbar/toolbar.cjs +1 -1
- package/lib/control/tree/tree.cjs +9 -9
- package/lib/control/tree-exp-bar/tree-exp-bar.cjs +1 -1
- package/lib/control/wizard-panel/wizard-panel.cjs +6 -6
- package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +2 -2
- package/lib/editor/color-picker/ibiz-color-picker/ibiz-color-picker.cjs +1 -1
- package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +2 -2
- package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +2 -2
- package/lib/editor/data-picker/picker-editor.controller.cjs +1 -1
- package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +7 -7
- package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.cjs +1 -1
- package/lib/editor/html/html-editor.controller.cjs +26 -9
- package/lib/editor/html/quill-editor/quill-editor.cjs +12 -3
- package/lib/editor/html/quill-editor-preview/quill-editor-preview.cjs +4 -4
- package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +12 -3
- package/lib/editor/markdown/markdown-editor.controller.cjs +23 -3
- package/lib/editor/qrcode/ibiz-qrcode/ibiz-qrcode.cjs +1 -1
- package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +2 -2
- package/lib/editor/span/span/span.cjs +7 -7
- package/lib/editor/span/span-link/span-link.cjs +1 -1
- package/lib/editor/stepper/ibiz-stepper/ibiz-stepper.cjs +1 -1
- package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +1 -1
- package/lib/editor/text-box/input/input.cjs +4 -4
- package/lib/editor/text-box/signature/signature.cjs +59 -19
- package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +1 -1
- package/lib/editor/upload/upload-editor.controller.cjs +18 -1
- package/lib/editor/upload/use/use-van-upload.cjs +6 -2
- package/lib/index.cjs +3 -0
- package/lib/locale/en/index.cjs +26 -23
- package/lib/locale/zh-CN/index.cjs +3 -0
- package/lib/mob-app/App.cjs +9 -0
- package/lib/mob-app/components/modal-router-shell/modal-router-shell.cjs +6 -4
- package/lib/mob-app/components/router-shell/router-shell.cjs +1 -1
- package/lib/mob-app/guard/auth-guard/auth-guard.cjs +2 -2
- package/lib/mob-app/guard/auth-guard/dyna-auth-guard.cjs +2 -2
- package/lib/mob-app/main.cjs +3 -1
- package/lib/mob-app/router/index.cjs +131 -76
- package/lib/mob-app/util/unauthorized-handler/unauthorized-handler.cjs +5 -5
- package/lib/node_modules/.pnpm/dingtalk-jsapi@3.2.0/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.cjs +1 -1
- package/lib/node_modules/.pnpm/dingtalk-jsapi@3.2.0/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.cjs +1 -1
- package/lib/panel-component/async-action/async-action/async-action.cjs +2 -2
- package/lib/panel-component/async-action/async-action-preview/async-action-preview.cjs +3 -3
- package/lib/panel-component/async-action/async-action-result/async-action-result.cjs +1 -1
- package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +2 -2
- package/lib/panel-component/panel-app-title/panel-app-title.cjs +2 -2
- package/lib/panel-component/panel-button/panel-button.css +1 -1
- package/lib/panel-component/panel-carousel/panel-carousel.controller.cjs +1 -1
- package/lib/panel-component/panel-video-player/panel-video-player.controller.cjs +2 -2
- package/lib/panel-component/split-container/split-container.controller.cjs +1 -1
- package/lib/panel-component/user-message/common/internal-message-default/internal-message-default.provider.cjs +1 -1
- package/lib/panel-component/user-message/user-message.cjs +1 -1
- package/lib/panel-component/user-message/user-message.util.cjs +1 -1
- package/lib/panel-component/view-content-panel-container/view-content-panel-container.cjs +12 -12
- package/lib/panel-component/view-content-panel-container/view-content-panel-container.css +1 -1
- package/lib/platform/ios-platform-provider.cjs +2 -2
- package/lib/platform/wechat-official-platform-provider.cjs +1 -1
- package/lib/util/ai-chat-util/ai-chat-util.cjs +204 -41
- package/lib/util/app-drawer/app-drawer-component.cjs +20 -6
- package/lib/util/app-modal/app-modal-component.cjs +7 -4
- package/lib/util/app-popover/app-popover-component.cjs +4 -4
- package/lib/util/app-util/app-util.cjs +38 -3
- package/lib/util/button-util/button-util.cjs +34 -0
- package/lib/util/confirm-util/confirm-util.cjs +4 -4
- package/lib/util/directive/loading.cjs +1 -1
- package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
- package/lib/util/index.cjs +3 -0
- package/lib/util/list-util/list-render-util.cjs +24 -5
- package/lib/util/loading-util/loading-util.cjs +1 -1
- package/lib/util/open-view-util/open-view-util.cjs +1 -1
- package/lib/util/print-preview-util/print-preview-markdown/icon/icon.cjs +52 -0
- package/lib/util/print-preview-util/print-preview-markdown/print-preview-markdown.cjs +64 -0
- package/lib/util/print-preview-util/print-preview-markdown/print-preview-markdown.css +1 -0
- package/lib/util/print-preview-util/print-preview-util.cjs +59 -0
- package/lib/util/scan-qrcode/scan-qrcode.cjs +1 -1
- package/lib/util/user-route-util/user-route-util.cjs +4 -4
- package/lib/util/xlsx-util/xlsx-util.cjs +1 -1
- package/lib/view-engine/index-view.engine.cjs +4 -0
- package/lib/view-engine/index.cjs +31 -31
- package/lib/view-engine/login-view.engine.cjs +1 -1
- package/lib/view-engine/mob-calendar-view.engine.cjs +7 -0
- package/lib/view-engine/mob-edit-view.engine.cjs +1 -1
- package/lib/view-engine/mob-wf-dyna-action-view.engine.cjs +1 -1
- package/lib/view-engine/mob-wf-dyna-edit-view.engine.cjs +1 -1
- package/lib/view-engine/mob-wf-dyna-start-view.engine.cjs +1 -1
- package/package.json +9 -9
- package/dist/chart-j1WkpBhc.js +0 -2
- package/dist/ibiz-markdown-editor-COU_MxNu.js +0 -2
- package/dist/ibiz-markdown-editor-COU_MxNu.js.map +0 -1
- package/dist/index-Bn7VkqJp.js +0 -76
- package/dist/index-Bn7VkqJp.js.map +0 -1
- package/dist/index-ChdHGLJI.js +0 -2
- package/dist/index-Dd7yiMzY.js +0 -2
- package/dist/index.es-D0mZvSDS.js +0 -14
- package/dist/index.es-D0mZvSDS.js.map +0 -1
- package/dist/quill-BOA7ZLOz.js +0 -50
- package/dist/quill-editor-DcZd_lqh.js +0 -2
- package/dist/quill-editor-DcZd_lqh.js.map +0 -1
- package/dist/quill-editor-preview-DghpeKpg.js +0 -2
- package/dist/tree-BTa0bMPr.js +0 -2
- package/dist/xlsx-util-CQaOn5OK.js +0 -105
- package/dist/xlsx-util-CQaOn5OK.js.map +0 -1
- package/es/node_modules/.pnpm/@ibiz-template-plugin_ibiz-mob-ai-chat@0.0.1_cherry-markdown@0.8.58_interactjs@1.10.27_qx-uti_xgmgjpxet4ghyc7txs4jkjxilq/node_modules/@ibiz-template-plugin/ibiz-mob-ai-chat/dist/index.es.mjs +0 -4425
- package/lib/node_modules/.pnpm/@ibiz-template-plugin_ibiz-mob-ai-chat@0.0.1_cherry-markdown@0.8.58_interactjs@1.10.27_qx-uti_xgmgjpxet4ghyc7txs4jkjxilq/node_modules/@ibiz-template-plugin/ibiz-mob-ai-chat/dist/index.es.cjs +0 -4427
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es-D0mZvSDS.js","sources":["../node_modules/.pnpm/@ibiz-template-plugin+ibiz-mob-ai-chat@0.0.1_cherry-markdown@0.8.58_interactjs@1.10.27_qx-uti_xgmgjpxet4ghyc7txs4jkjxilq/node_modules/@ibiz-template-plugin/ibiz-mob-ai-chat/dist/index.es.js"],"sourcesContent":["import './style.css';\nvar de = Object.defineProperty;\nvar pe = (a, e, t) => e in a ? de(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;\nvar v = (a, e, t) => (pe(a, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nimport { ref as w, createVNode as r, defineComponent as T, computed as k, onMounted as z, createTextVNode as H, watch as P, nextTick as _, onUnmounted as ge, resolveComponent as me, withDirectives as fe, vModelText as ve, createApp as V } from \"vue\";\nimport { QXEvent as Ce, createUUID as B, isString as X } from \"qx-util\";\nimport be from \"vant\";\nimport W from \"cherry-markdown\";\nconst we = \"ibiz\", ye = \"is-\";\nfunction O(a, e, t, s, i) {\n let o = \"\".concat(a, \"-\").concat(e);\n return t && (o += \"-\".concat(t)), s && (o += \"__\".concat(s)), i && (o += \"--\".concat(i)), o;\n}\nclass A {\n /**\n * Creates an instance of Namespace.\n *\n * @author chitanda\n * @date 2022-09-06 12:09:12\n * @param {string} block 当前命名空间的根模块,例如组件的名称\n * @param {string} [namespace] 指定命名空间,未指定使用默认值 ibiz\n */\n constructor(e, t) {\n /**\n * 命名空间\n *\n * @author chitanda\n * @date 2023-11-03 10:11:31\n * @type {string}\n */\n v(this, \"namespace\");\n this.block = e, this.namespace = t || we;\n }\n /**\n * namespace-block\n * namespace-block-blockSuffix\n *\n * @author chitanda\n * @date 2022-09-06 12:09:08\n * @param {string} [blockSuffix='']\n * @return {*} {string}\n */\n b(e = \"\") {\n return O(this.namespace, this.block, e, \"\", \"\");\n }\n /**\n * namespace-block__element\n *\n * @author chitanda\n * @date 2022-09-06 12:09:48\n * @param {string} [element]\n * @return {*} {string}\n */\n e(e) {\n return e ? O(this.namespace, this.block, \"\", e, \"\") : \"\";\n }\n /**\n * namespace-block--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:37\n * @param {string} [modifier]\n * @return {*} {string}\n */\n m(e) {\n return e ? O(this.namespace, this.block, \"\", \"\", e) : \"\";\n }\n /**\n * namespace-block-blockSuffix__element\n *\n * @author chitanda\n * @date 2022-09-06 12:09:52\n * @param {string} [blockSuffix]\n * @param {string} [element]\n * @return {*} {string}\n */\n be(e, t) {\n return e && t ? O(this.namespace, this.block, e, t, \"\") : \"\";\n }\n /**\n * namespace-block__element--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:19\n * @param {string} [element]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n em(e, t) {\n return e && t ? O(this.namespace, this.block, \"\", e, t) : \"\";\n }\n /**\n * namespace-block-blockSuffix--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:59\n * @param {string} [blockSuffix]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n bm(e, t) {\n return e && t ? O(this.namespace, this.block, e, \"\", t) : \"\";\n }\n /**\n * namespace-block-blockSuffix__element--modifier\n *\n * @author chitanda\n * @date 2022-09-06 12:09:37\n * @param {string} [blockSuffix]\n * @param {string} [element]\n * @param {string} [modifier]\n * @return {*} {string}\n */\n bem(e, t, s) {\n return e && t && s ? O(this.namespace, this.block, e, t, s) : \"\";\n }\n /**\n * 返回状态 class\n *\n * is('loading', false) => '';\n * is('loading', true) => 'is-loading';\n *\n * @author chitanda\n * @date 2022-09-06 12:09:57\n * @param {string} name\n * @param {boolean} [state]\n * @return {*} {string}\n */\n is(e, t) {\n return e && t ? \"\".concat(ye).concat(e) : \"\";\n }\n /**\n * 生成使用到的 css 变量 style 对象\n *\n * @author chitanda\n * @date 2022-09-06 15:09:41\n * @param {Record<string, string>} object\n * @return {*} {Record<string, string>}\n */\n cssVar(e) {\n const t = {};\n for (const s in e)\n e[s] && (t[this.cssVarName(s)] = e[s]);\n return t;\n }\n /**\n * 生成使用到的 css block 变量 style 对象\n *\n * @author chitanda\n * @date 2022-09-06 15:09:03\n * @param {Record<string, string>} object\n * @return {*} {Record<string, string>}\n */\n cssVarBlock(e) {\n const t = {};\n for (const s in e)\n e[s] && (t[this.cssVarBlockName(s)] = e[s]);\n return t;\n }\n /**\n * 生成 css var 变量名称\n *\n * @author chitanda\n * @date 2022-09-06 15:09:21\n * @param {string} name\n * @return {*} {string}\n */\n cssVarName(e) {\n return \"--\".concat(this.namespace, \"-\").concat(e);\n }\n /**\n * 生成块 css var 变量名称\n *\n * @author chitanda\n * @date 2022-09-06 15:09:35\n * @param {string} name\n * @return {*} {string}\n */\n cssVarBlockName(e) {\n return \"--\".concat(this.namespace, \"-\").concat(this.block, \"-\").concat(e);\n }\n}\nfunction M(a) {\n if (typeof a != \"string\")\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(a));\n}\nfunction J(a, e) {\n for (var t = \"\", s = 0, i = -1, o = 0, n, l = 0; l <= a.length; ++l) {\n if (l < a.length)\n n = a.charCodeAt(l);\n else {\n if (n === 47)\n break;\n n = 47;\n }\n if (n === 47) {\n if (!(i === l - 1 || o === 1))\n if (i !== l - 1 && o === 2) {\n if (t.length < 2 || s !== 2 || t.charCodeAt(t.length - 1) !== 46 || t.charCodeAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n var h = t.lastIndexOf(\"/\");\n if (h !== t.length - 1) {\n h === -1 ? (t = \"\", s = 0) : (t = t.slice(0, h), s = t.length - 1 - t.lastIndexOf(\"/\")), i = l, o = 0;\n continue;\n }\n } else if (t.length === 2 || t.length === 1) {\n t = \"\", s = 0, i = l, o = 0;\n continue;\n }\n }\n e && (t.length > 0 ? t += \"/..\" : t = \"..\", s = 2);\n } else\n t.length > 0 ? t += \"/\" + a.slice(i + 1, l) : t = a.slice(i + 1, l), s = l - i - 1;\n i = l, o = 0;\n } else\n n === 46 && o !== -1 ? ++o : o = -1;\n }\n return t;\n}\nfunction Te(a, e) {\n var t = e.dir || e.root, s = e.base || (e.name || \"\") + (e.ext || \"\");\n return t ? t === e.root ? t + s : t + a + s : s;\n}\nvar R = {\n // path.resolve([from ...], to)\n resolve: function() {\n for (var e = \"\", t = !1, s, i = arguments.length - 1; i >= -1 && !t; i--) {\n var o;\n i >= 0 ? o = arguments[i] : (s === void 0 && (s = process.cwd()), o = s), M(o), o.length !== 0 && (e = o + \"/\" + e, t = o.charCodeAt(0) === 47);\n }\n return e = J(e, !t), t ? e.length > 0 ? \"/\" + e : \"/\" : e.length > 0 ? e : \".\";\n },\n normalize: function(e) {\n if (M(e), e.length === 0)\n return \".\";\n var t = e.charCodeAt(0) === 47, s = e.charCodeAt(e.length - 1) === 47;\n return e = J(e, !t), e.length === 0 && !t && (e = \".\"), e.length > 0 && s && (e += \"/\"), t ? \"/\" + e : e;\n },\n isAbsolute: function(e) {\n return M(e), e.length > 0 && e.charCodeAt(0) === 47;\n },\n join: function() {\n if (arguments.length === 0)\n return \".\";\n for (var e, t = 0; t < arguments.length; ++t) {\n var s = arguments[t];\n M(s), s.length > 0 && (e === void 0 ? e = s : e += \"/\" + s);\n }\n return e === void 0 ? \".\" : R.normalize(e);\n },\n relative: function(e, t) {\n if (M(e), M(t), e === t || (e = R.resolve(e), t = R.resolve(t), e === t))\n return \"\";\n for (var s = 1; s < e.length && e.charCodeAt(s) === 47; ++s)\n ;\n for (var i = e.length, o = i - s, n = 1; n < t.length && t.charCodeAt(n) === 47; ++n)\n ;\n for (var l = t.length, h = l - n, c = o < h ? o : h, u = -1, d = 0; d <= c; ++d) {\n if (d === c) {\n if (h > c) {\n if (t.charCodeAt(n + d) === 47)\n return t.slice(n + d + 1);\n if (d === 0)\n return t.slice(n + d);\n } else\n o > c && (e.charCodeAt(s + d) === 47 ? u = d : d === 0 && (u = 0));\n break;\n }\n var p = e.charCodeAt(s + d), f = t.charCodeAt(n + d);\n if (p !== f)\n break;\n p === 47 && (u = d);\n }\n var m = \"\";\n for (d = s + u + 1; d <= i; ++d)\n (d === i || e.charCodeAt(d) === 47) && (m.length === 0 ? m += \"..\" : m += \"/..\");\n return m.length > 0 ? m + t.slice(n + u) : (n += u, t.charCodeAt(n) === 47 && ++n, t.slice(n));\n },\n _makeLong: function(e) {\n return e;\n },\n dirname: function(e) {\n if (M(e), e.length === 0)\n return \".\";\n for (var t = e.charCodeAt(0), s = t === 47, i = -1, o = !0, n = e.length - 1; n >= 1; --n)\n if (t = e.charCodeAt(n), t === 47) {\n if (!o) {\n i = n;\n break;\n }\n } else\n o = !1;\n return i === -1 ? s ? \"/\" : \".\" : s && i === 1 ? \"//\" : e.slice(0, i);\n },\n basename: function(e, t) {\n if (t !== void 0 && typeof t != \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n M(e);\n var s = 0, i = -1, o = !0, n;\n if (t !== void 0 && t.length > 0 && t.length <= e.length) {\n if (t.length === e.length && t === e)\n return \"\";\n var l = t.length - 1, h = -1;\n for (n = e.length - 1; n >= 0; --n) {\n var c = e.charCodeAt(n);\n if (c === 47) {\n if (!o) {\n s = n + 1;\n break;\n }\n } else\n h === -1 && (o = !1, h = n + 1), l >= 0 && (c === t.charCodeAt(l) ? --l === -1 && (i = n) : (l = -1, i = h));\n }\n return s === i ? i = h : i === -1 && (i = e.length), e.slice(s, i);\n } else {\n for (n = e.length - 1; n >= 0; --n)\n if (e.charCodeAt(n) === 47) {\n if (!o) {\n s = n + 1;\n break;\n }\n } else\n i === -1 && (o = !1, i = n + 1);\n return i === -1 ? \"\" : e.slice(s, i);\n }\n },\n extname: function(e) {\n M(e);\n for (var t = -1, s = 0, i = -1, o = !0, n = 0, l = e.length - 1; l >= 0; --l) {\n var h = e.charCodeAt(l);\n if (h === 47) {\n if (!o) {\n s = l + 1;\n break;\n }\n continue;\n }\n i === -1 && (o = !1, i = l + 1), h === 46 ? t === -1 ? t = l : n !== 1 && (n = 1) : t !== -1 && (n = -1);\n }\n return t === -1 || i === -1 || // We saw a non-dot character immediately before the dot\n n === 0 || // The (right-most) trimmed path component is exactly '..'\n n === 1 && t === i - 1 && t === s + 1 ? \"\" : e.slice(t, i);\n },\n format: function(e) {\n if (e === null || typeof e != \"object\")\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof e);\n return Te(\"/\", e);\n },\n parse: function(e) {\n M(e);\n var t = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (e.length === 0)\n return t;\n var s = e.charCodeAt(0), i = s === 47, o;\n i ? (t.root = \"/\", o = 1) : o = 0;\n for (var n = -1, l = 0, h = -1, c = !0, u = e.length - 1, d = 0; u >= o; --u) {\n if (s = e.charCodeAt(u), s === 47) {\n if (!c) {\n l = u + 1;\n break;\n }\n continue;\n }\n h === -1 && (c = !1, h = u + 1), s === 46 ? n === -1 ? n = u : d !== 1 && (d = 1) : n !== -1 && (d = -1);\n }\n return n === -1 || h === -1 || // We saw a non-dot character immediately before the dot\n d === 0 || // The (right-most) trimmed path component is exactly '..'\n d === 1 && n === h - 1 && n === l + 1 ? h !== -1 && (l === 0 && i ? t.base = t.name = e.slice(1, h) : t.base = t.name = e.slice(l, h)) : (l === 0 && i ? (t.name = e.slice(1, n), t.base = e.slice(1, h)) : (t.name = e.slice(l, n), t.base = e.slice(l, h)), t.ext = e.slice(n, h)), l > 0 ? t.dir = e.slice(0, l - 1) : i && (t.dir = \"/\"), t;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n};\nR.posix = R;\nfunction D() {\n return ((1 + Math.random()) * 65536 | 0).toString(16).substring(1);\n}\nfunction Ae() {\n return \"\".concat(D() + D(), \"-\").concat(D(), \"-\").concat(D(), \"-\").concat(D(), \"-\").concat(D()).concat(D()).concat(D());\n}\nfunction G(a) {\n const e = a.lastIndexOf(\"@\");\n return e === -1 ? a : a.substring(0, e);\n}\nconst Ie = /<svg\\b[^>]*>[\\s\\S]*?<\\/svg>/;\nfunction Me(a) {\n return Ie.test(a);\n}\nconst ke = \"topic\", xe = \"inline\", Se = \"temp\", Ee = \"unknow\";\nfunction De(a, e) {\n let t = \"\";\n switch (a) {\n case \"TOPIC\":\n t += ke;\n break;\n case \"INLINE\":\n t += xe;\n break;\n case \"TEMP\":\n t += Se;\n break;\n default:\n t += Ee;\n break;\n }\n return t += \"@\".concat(e || Ae(), \"@\").concat((/* @__PURE__ */ new Date()).getTime()), t;\n}\nclass Z {\n /**\n * 拷贝文本\n *\n * @author zhanghengfeng\n * @date 2023-08-31 11:08:51\n * @param {string} value\n * @return {*} {boolean}\n */\n static copy(e) {\n return this.inputElement || (this.inputElement = document.createElement(\"input\"), this.inputElement.style.position = \"absolute\", this.inputElement.style.left = \"-9999px\", document.body.appendChild(this.inputElement)), this.inputElement.value = e, this.inputElement.select(), document.execCommand(\"copy\");\n }\n}\n/**\n * input元素,用于存储拷贝的文本\n *\n * @author zhanghengfeng\n * @date 2023-08-31 20:08:06\n * @private\n * @type {(HTMLInputElement | null)}\n */\nv(Z, \"inputElement\", null);\nconst g = class g {\n /**\n * 检查数据库是否存在\n *\n * @param {string} storeName\n * @return {*} {Promise<boolean>}\n * @memberof IndexedDBUtil\n */\n static async checkDataBaseExists(e) {\n try {\n return (await indexedDB.databases()).some((s) => s.name === e);\n } catch (t) {\n return console.error(\"检查数据库是否存在时出错:\", t), !1;\n }\n }\n /**\n * 删除数据库\n *\n * @return {*} {Promise<void>}\n * @memberof IndexedDBUtil\n */\n static async deleteDatabase(e) {\n var t, s;\n return g.lastLink && ((s = (t = g.lastLink).close) == null || s.call(t)), new Promise((i, o) => {\n const n = indexedDB.deleteDatabase(e);\n n.onsuccess = () => {\n i(!0);\n }, n.onerror = () => {\n i(!1);\n }, n.onblocked = () => {\n console.warn(\n \"删除数据库 \".concat(e, \" 被阻塞,可能有其他连接正在使用该数据库。\")\n ), o(new Error(\"删除数据库 \".concat(e, \" 被阻塞\")));\n };\n });\n }\n /**\n * 检查是否存在某个库以及库内是否存在某个表\n *\n * @param {string} storeName\n * @param {string} tableName\n * @return {*}\n * @memberof IndexedDBUtil\n */\n static async checkTableExists(e, t) {\n return await g.checkDataBaseExists(e) ? new Promise((i, o) => {\n const n = indexedDB.open(e);\n n.onupgradeneeded = (l) => {\n g.db = l.target.result, g.version = g.db.version;\n }, n.onsuccess = (l) => {\n g.db = l.target.result, g.lastLink = n.result;\n const h = g.db.objectStoreNames.contains(t);\n n.result.close(), i(h);\n }, n.onerror = (l) => {\n o(l.target.error);\n };\n }) : !1;\n }\n /**\n * 创建表\n *\n * @param {string} storeName 库名称\n * @param {(string | null)} keyPath 表主键\n * @param {boolean} [useAutoIncrement=false] 是否使用自增\n * @return {*} {Promise<void>}\n * @memberof IndexedDBUtil\n */\n static async createTable(e, t, s, i = !1) {\n return new Promise((o) => {\n var l, h;\n g.version += 1, g.lastLink && ((h = (l = g.lastLink).close) == null || h.call(l));\n const n = indexedDB.open(e, g.version);\n n.onupgradeneeded = (c) => {\n if (g.db = c.target.result, !g.db.objectStoreNames.contains(t)) {\n const u = {};\n s ? u.keyPath = s : i && (u.autoIncrement = !0), g.db.createObjectStore(t, u);\n }\n }, n.onsuccess = () => {\n g.lastLink = n.result, n.result.close(), o(!0);\n }, n.onerror = () => {\n o(!1);\n };\n });\n }\n /**\n * 删除表\n *\n * @param {string} storeName 表名称\n * @return {*} {Promise<void>}\n * @memberof IndexedDBUtil\n */\n static async deleteTable(e, t) {\n return new Promise((s) => {\n var o, n;\n g.version += 1, g.lastLink && ((n = (o = g.lastLink).close) == null || n.call(o));\n const i = indexedDB.open(e, g.version);\n i.onupgradeneeded = (l) => {\n g.db = l.target.result, g.lastLink = i.result, g.db.objectStoreNames.contains(t) && g.db.deleteObjectStore(t);\n }, i.onsuccess = (l) => {\n g.db = l.target.result, g.lastLink = i.result, i.result.close(), s(!0);\n }, i.onerror = () => {\n i.result.close(), s(!1);\n };\n });\n }\n /**\n * 新增数据\n *\n * @param {string} storeName 表名称\n * @param {*} data 新增数据\n * @return {*} {Promise<void>}\n * @memberof IndexedDBUtil\n */\n static async addData(e, t, s) {\n return new Promise((i, o) => {\n const n = indexedDB.open(e);\n n.onsuccess = (l) => {\n if (g.db = l.target.result, g.lastLink = n.result, g.db.objectStoreNames.contains(t)) {\n const u = g.db.transaction(\n [t],\n \"readwrite\"\n ).objectStore(t).add(s);\n u.onsuccess = (d) => {\n i(s);\n }, u.onerror = () => {\n i(null);\n };\n }\n n.result.close();\n }, n.onerror = () => {\n n.result.close(), o();\n };\n });\n }\n /**\n * 删除数据\n *\n * @param {string} storeName 表名称\n * @param {IDBValidKey} key 数据键\n * @return {*} {Promise<void>}\n * @memberof IndexedDBUtil\n */\n static async deleteData(e, t, s) {\n return new Promise((i, o) => {\n const n = indexedDB.open(e);\n n.onsuccess = (l) => {\n if (g.db = l.target.result, g.lastLink = n.result, g.db.objectStoreNames.contains(t)) {\n const u = g.db.transaction(\n [t],\n \"readwrite\"\n ).objectStore(t).delete(s);\n u.onsuccess = (d) => {\n i(!0);\n }, u.onerror = () => {\n i(!1);\n };\n }\n n.result.close();\n }, n.onerror = () => {\n n.result.close(), o();\n };\n });\n }\n /**\n * 修改数据\n *\n * @param {string} storeName 表名称\n * @param {*} data 需要修改的数据\n * @return {*} {Promise<void>}\n * @memberof IndexedDBUtil\n */\n static async updateData(e, t, s) {\n return new Promise((i, o) => {\n const n = indexedDB.open(e);\n n.onsuccess = (l) => {\n if (g.db = l.target.result, g.lastLink = n.result, g.db.objectStoreNames.contains(t)) {\n const u = g.db.transaction(\n [t],\n \"readwrite\"\n ).objectStore(t).put(s);\n u.onsuccess = (d) => {\n i(s);\n }, u.onerror = () => {\n i(s);\n };\n }\n n.result.close();\n }, n.onerror = () => {\n n.result.close(), o();\n };\n });\n }\n /**\n * 读取单条数据\n *\n * @param {string} storeName 表名称\n * @param {IDBValidKey} key 数据主键\n * @return {*} {Promise<any>}\n * @memberof IndexedDBUtil\n */\n static async getData(e, t, s) {\n return new Promise((i, o) => {\n const n = indexedDB.open(e);\n n.onsuccess = (l) => {\n if (g.db = l.target.result, g.lastLink = n.result, g.db.objectStoreNames.contains(t)) {\n const u = g.db.transaction(\n [t],\n \"readonly\"\n ).objectStore(t).get(s);\n u.onsuccess = (d) => {\n i(u.result);\n }, u.onerror = () => {\n o(new Error(\"未找到数据\".concat(s)));\n };\n }\n n.result.close();\n }, n.onerror = () => {\n n.result.close(), o();\n };\n });\n }\n /**\n * 读取所有数据\n *\n * @param {string} storeName 表名称\n * @return {*} {Promise<any[]>}\n * @memberof IndexedDBUtil\n */\n static async getAllData(e, t) {\n return new Promise((s, i) => {\n const o = indexedDB.open(e);\n o.onsuccess = (n) => {\n if (g.db = n.target.result, g.lastLink = o.result, g.db.objectStoreNames.contains(t)) {\n const c = g.db.transaction(\n [t],\n \"readonly\"\n ).objectStore(t).getAll();\n c.onsuccess = (u) => {\n s(c.result);\n }, c.onerror = () => {\n s([]);\n };\n }\n o.result.close();\n }, o.onerror = () => {\n o.result.close(), i();\n };\n });\n }\n};\n// 数据库版本\nv(g, \"version\", 1), // 数据库连接句柄\nv(g, \"db\", null), // 上一个连接\nv(g, \"lastLink\");\nlet x = g;\nclass Oe {\n /**\n * Creates an instance of FileUploader.\n * @author tony001\n * @date 2025-02-28 15:02:15\n * @param {FileUploaderOptions<T>} options\n */\n constructor(e) {\n v(this, \"options\");\n this.options = {\n multiple: !0,\n accept: \"*/*\",\n maxSize: 5 * 1024 * 1024,\n ...e\n };\n }\n /**\n * 打开文件选择对话框\n */\n openFilePicker() {\n const e = document.createElement(\"input\");\n e.type = \"file\", e.multiple = this.options.multiple, e.accept = this.options.accept || \"\", e.onchange = (t) => {\n const s = Array.from(t.target.files || []);\n this.handleFiles(s);\n }, e.click();\n }\n /**\n * 处理选择的文件\n */\n async handleFiles(e) {\n var s, i;\n if (e.length === 0)\n return;\n const t = e.filter((o) => {\n var n, l;\n return this.options.maxSize && o.size > this.options.maxSize ? ((l = (n = this.options).onError) == null || l.call(\n n,\n new Error(\n \"文件大小超过限制 (\".concat(this.formatSize(\n o.size\n ), \" > \").concat(this.formatSize(this.options.maxSize), \")\")\n ),\n o\n ), !1) : !0;\n });\n (i = (s = this.options).onSelect) == null || i.call(s, t), await Promise.all(t.map((o) => this.processFile(o)));\n }\n /**\n * 处理单个文件上传\n */\n async processFile(e) {\n var t, s, i, o, n, l;\n try {\n const h = (u) => {\n var d, p;\n (p = (d = this.options).onProgress) == null || p.call(d, e, u);\n }, c = await this.options.onUpload(e, h);\n (s = (t = this.options).onProgress) == null || s.call(t, e, 100), (o = (i = this.options).onSuccess) == null || o.call(i, c, e);\n } catch (h) {\n (l = (n = this.options).onError) == null || l.call(\n n,\n h instanceof Error ? h : new Error(\"上传失败\"),\n e\n );\n }\n }\n /**\n * 格式化文件大小\n */\n formatSize(e) {\n if (e === 0)\n return \"0 B\";\n const t = [\"B\", \"KB\", \"MB\", \"GB\"], s = Math.floor(Math.log(e) / Math.log(1024));\n return \"\".concat((e / 1024 ** s).toFixed(2), \" \").concat(t[s]);\n }\n}\nclass j {\n /**\n * 从XML元素中提取CDATA内容\n *\n * @author tony001\n * @date 2025-03-03 15:03:43\n * @private\n * @static\n * @param {(Element | null)} element\n * @return {*} {(string | null)}\n */\n static getCdataContent(e) {\n if (!e)\n return null;\n const t = Array.from(e.childNodes).find(\n (s) => s.nodeType === s.CDATA_SECTION_NODE\n );\n return (t == null ? void 0 : t.nodeValue) || e.textContent;\n }\n /**\n * XML 字符串转数据对象\n *\n * @author tony001\n * @date 2025-03-03 11:03:17\n * @static\n * @param {string} xmlString\n * @return {*} {IMaterial[]}\n */\n static parse(e) {\n const s = new DOMParser().parseFromString(e, \"text/xml\");\n return Array.from(s.querySelectorAll(\"resource\")).map((o) => {\n const n = o.getAttribute(\"type\") || \"\", l = o.querySelector(\"data\"), h = o.querySelector(\"metadata\");\n try {\n const c = this.getCdataContent(l), u = this.getCdataContent(h), d = c ? JSON.parse(c) : {}, p = u ? JSON.parse(u) : {};\n return { id: d.id, type: n, data: d, metadata: p };\n } catch (c) {\n throw new Error(\"XML 解析错误: \".concat(c.message));\n }\n });\n }\n /**\n * 混合内容解析\n *\n * @author tony001\n * @date 2025-03-03 13:03:35\n * @static\n * @param {string} input 包含 XML 和其他文本的混合字符串\n * @return {*} {{\n * resources: IMaterial[];\n * remainingText: string;\n * hasResources: boolean;\n * error?: string;\n * }}\n */\n static parseMixedContent(e) {\n const s = /<resources\\b[^>]*>[\\s\\S]*?<\\/resources>/i.exec(e);\n if (!s)\n return {\n resources: [],\n remainingText: e,\n hasResources: !1\n };\n const [i] = s, o = s.index, n = o + i.length, l = (e.slice(0, o) + e.slice(n)).replace(/\\n/g, \"\").replace(/(!\\[[^\\]]*\\]\\([^)]+\\))/g, \"\\n$1\\n\").replace(/\\n+/g, \"\\n\").replace(/^\\n|\\n$/g, \"\");\n try {\n return {\n resources: this.parse(i),\n remainingText: l,\n hasResources: !0\n };\n } catch (h) {\n return {\n resources: [],\n remainingText: l,\n hasResources: !0,\n error: \"资源解析失败: \".concat(h.message)\n };\n }\n }\n /**\n * 数据对象转 XML 字符串\n *\n * @author tony001\n * @date 2025-03-03 11:03:51\n * @static\n * @param {IMaterial[]} resources\n * @return {*} {string}\n */\n static stringify(e) {\n const t = document.implementation.createDocument(null, null, null), s = t.createElement(\"resources\");\n s.setAttribute(\"version\", \"1.0\");\n const i = (n) => \"\\n\".concat(\" \".repeat(n)), o = 1;\n return e.forEach((n) => {\n s.appendChild(t.createTextNode(i(o)));\n const l = t.createElement(\"resource\");\n l.setAttribute(\"type\", n.type), l.setAttribute(\"version\", \"1.0\");\n const h = (c, u) => {\n const d = t.createElement(c);\n d.appendChild(t.createTextNode(i(o + 1)));\n const p = t.createCDATASection(JSON.stringify(u));\n return d.appendChild(p), d.appendChild(t.createTextNode(i(o))), d;\n };\n l.appendChild(\n t.createTextNode(i(o + 1))\n ), l.appendChild(h(\"data\", n.data)), l.appendChild(\n t.createTextNode(i(o + 1))\n ), l.appendChild(h(\"metadata\", n.metadata)), l.appendChild(t.createTextNode(i(o))), s.appendChild(l);\n }), s.appendChild(t.createTextNode(\"\\n\")), t.appendChild(s), new XMLSerializer().serializeToString(t).replace(/></g, \">\\n<\");\n }\n}\nclass Le {\n /**\n * 从XML元素中提取CDATA内容\n *\n * @author tony001\n * @date 2025-03-03 15:03:43\n * @private\n * @static\n * @param {(Element | null)} element\n * @return {*} {(string | null)}\n */\n static getCdataContent(e) {\n if (!e)\n return null;\n const t = Array.from(e.childNodes).find(\n (s) => s.nodeType === s.CDATA_SECTION_NODE\n );\n return (t == null ? void 0 : t.nodeValue) || e.textContent;\n }\n /**\n * XML 字符串转数据对象\n *\n * @author tony001\n * @date 2025-03-03 11:03:17\n * @static\n * @param {string} xmlString\n * @return {*} {IChatSuggestion[]}\n */\n static parse(e) {\n const s = new DOMParser().parseFromString(e, \"text/xml\");\n return Array.from(s.querySelectorAll(\"suggestion\")).map((o) => {\n const n = o.getAttribute(\"type\") || \"\", l = o.querySelector(\"data\"), h = o.querySelector(\"metadata\");\n try {\n const c = this.getCdataContent(l), u = this.getCdataContent(h), d = c ? JSON.parse(c) : {}, p = u ? JSON.parse(u) : {};\n return { type: n, data: d, metadata: p };\n } catch (c) {\n throw new Error(\"XML 解析错误: \".concat(c.message));\n }\n });\n }\n /**\n * 混合内容解析\n *\n * @author tony001\n * @date 2025-03-03 13:03:35\n * @static\n * @param {string} input 包含 XML 和其他文本的混合字符串\n * @return {*} {{\n * suggestions: IChatSuggestion[];\n * remainingText: string;\n * hasSuggestions: boolean;\n * error?: string;\n * }}\n */\n static parseMixedContent(e) {\n const s = /<suggestions\\b[^>]*>[\\s\\S]*?<\\/suggestions>/i.exec(e);\n if (!s)\n return {\n suggestions: [],\n remainingText: e,\n hasSuggestions: !1\n };\n const [i] = s, o = s.index, n = o + i.length, l = (e.slice(0, o) + e.slice(n)).replace(/\\n/g, \"\");\n try {\n return {\n suggestions: this.parse(i),\n remainingText: l,\n hasSuggestions: !0\n };\n } catch (h) {\n return {\n suggestions: [],\n remainingText: l,\n hasSuggestions: !0,\n error: \"资源解析失败: \".concat(h.message)\n };\n }\n }\n /**\n * 数据对象转 XML 字符串\n *\n * @author tony001\n * @date 2025-03-03 11:03:51\n * @static\n * @param {IChatSuggestion[]} suggestions\n * @return {*} {string}\n */\n static stringify(e) {\n const t = document.implementation.createDocument(null, null, null), s = t.createElement(\"suggestions\");\n s.setAttribute(\"version\", \"1.0\");\n const i = (n) => \"\\n\".concat(\" \".repeat(n)), o = 1;\n return e.forEach((n) => {\n s.appendChild(t.createTextNode(i(o)));\n const l = t.createElement(\"suggestion\");\n l.setAttribute(\"type\", n.type), l.setAttribute(\"version\", \"1.0\");\n const h = (c, u) => {\n const d = t.createElement(c);\n d.appendChild(t.createTextNode(i(o + 1)));\n const p = t.createCDATASection(JSON.stringify(u));\n return d.appendChild(p), d.appendChild(t.createTextNode(i(o))), d;\n };\n l.appendChild(\n t.createTextNode(i(o + 1))\n ), l.appendChild(h(\"data\", n.data)), l.appendChild(\n t.createTextNode(i(o + 1))\n ), l.appendChild(\n h(\"metadata\", n.metadata)\n ), l.appendChild(t.createTextNode(i(o))), s.appendChild(l);\n }), s.appendChild(t.createTextNode(\"\\n\")), t.appendChild(s), new XMLSerializer().serializeToString(t).replace(/></g, \">\\n<\");\n }\n}\nclass Be {\n /**\n * @description 解析工具调用\n * @static\n * @param {string} toolCallString\n * @returns {*} {IChatToolCall[]}\n * @memberof ChatToolCallParser\n */\n static parse(e) {\n const t = new RegExp(\n \"<tool_call>\\\\s*({[\\\\s\\\\S]*?})\\\\s*</tool_call>\",\n \"g\"\n ), s = e.matchAll(t), i = [];\n for (const o of s)\n try {\n const n = JSON.parse(o[1]), l = {\n name: n.name,\n parameters: n.parameters,\n error: n.error || !1\n };\n n.result && Object.assign(l, {\n result: n.result\n }), i.push(l);\n } catch (n) {\n console.error(\"解析工具调用失败:\", n);\n }\n return i;\n }\n}\nclass L {\n constructor(e) {\n v(this, \"toolcalls\", []);\n /**\n * @description 消息的所有原始内容\n * - 用于维护工具调用消息数据\n * @type {string}\n * @memberof ChatMessage\n */\n v(this, \"allcontent\", \"\");\n this.msg = e, this.toolcalls = e.toolcalls || [], this.allcontent = e.content;\n }\n get messageid() {\n return this.msg.messageid;\n }\n get state() {\n return this.msg.state;\n }\n get role() {\n return this.msg.role;\n }\n get type() {\n return this.msg.type;\n }\n get status() {\n return this.msg.status;\n }\n get realcontent() {\n let e = this.msg.content;\n if (e.indexOf(\"<think>\") !== -1 && e.indexOf(\"</think>\") === -1 || (e = e.replace(new RegExp(\"\\\\<think\\\\>[^]*?\\\\<\\\\/think\\\\>\", \"gs\"), \"\").trim(), e.indexOf(\"<tool_call>\") !== -1 && e.indexOf(\"</tool_call>\") === -1) || (e = e.replace(new RegExp(\"\\\\<tool_call\\\\>[^]*?\\\\<\\\\/tool_call\\\\>\", \"gs\"), \"\").trim(), e.indexOf(\"<resources>\") !== -1 && e.indexOf(\"</resources>\") === -1))\n return \"\";\n e = e.replace(new RegExp(\"\\\\<resources\\\\>[^]*?\\\\<\\\\/resources\\\\>\", \"gs\"), \"\").trim();\n const t = e.indexOf(\"<suggestions>\");\n return t !== -1 && (e = e.substring(0, t).trim()), e;\n }\n get content() {\n return this.msg.content;\n }\n get completed() {\n return this.msg.completed;\n }\n get suggestions() {\n return this.msg.suggestions;\n }\n get _origin() {\n return this.msg;\n }\n get islike() {\n return this.msg.islike;\n }\n get isdislike() {\n return this.msg.isdislike;\n }\n get feedbackcontent() {\n return this.msg.feedbackcontent;\n }\n get realmessageid() {\n return this.msg.realmessageid;\n }\n /**\n * 更新消息\n *\n * @author chitanda\n * @date 2023-10-10 17:10:07\n * @param {IChatMessage} msg\n */\n update(e) {\n e.content || (e.content = \"\"), this.allcontent += e.content, e.content.indexOf(\"<think>\") !== -1 && this.msg.content && (this.msg.content = \"\"), this.msg.content += e.content, this.computeToolCalls();\n }\n /**\n * @description 替换消息\n * @param {IChatMessage} msg\n * @memberof ChatMessage\n */\n replace(e) {\n this.msg = e;\n }\n /**\n * 更新消息完成状态\n *\n * @author tony001\n * @date 2025-02-25 17:02:31\n * @param {boolean} completed\n */\n updateCompleted(e) {\n this.msg.completed = e;\n }\n /**\n * @description 计算工具调用\n * @memberof ChatMessage\n */\n computeToolCalls() {\n this.toolcalls = Be.parse(this.allcontent);\n }\n}\nclass $ {\n constructor(e) {\n this.data = e;\n }\n get appid() {\n return this.data.appid;\n }\n get id() {\n return this.data.id;\n }\n get type() {\n return this.data.type;\n }\n get caption() {\n return this.data.caption;\n }\n get sourceCaption() {\n return this.data.sourceCaption;\n }\n get url() {\n return this.data.url;\n }\n get aiChat() {\n return this.data.aiChat;\n }\n get captionMode() {\n return this.data.captionMode;\n }\n get captionFilled() {\n return this.data.captionFilled;\n }\n get realid() {\n return this.data.realid;\n }\n get sequence() {\n return this.data.sequence;\n }\n get isTop() {\n return this.data.isTop;\n }\n get disableStorage() {\n return this.data.disableStorage || !1;\n }\n}\nclass F {\n constructor(e) {\n this.material = e;\n }\n get id() {\n return this.material.id;\n }\n get type() {\n return this.material.type;\n }\n get metadata() {\n return this.material.metadata;\n }\n get data() {\n return this.material.data;\n }\n}\nclass $e {\n constructor(e) {\n this.agent = e;\n }\n get id() {\n return this.agent.id;\n }\n get caption() {\n return this.agent.caption;\n }\n get default() {\n return this.agent.default;\n }\n get order() {\n return this.agent.order;\n }\n get value() {\n return this.agent.id;\n }\n get label() {\n return this.agent.caption;\n }\n}\nvar I = /* @__PURE__ */ ((a) => (a.DATA_BASE_NAME = \"ibiz-chat\", a.DATA_TABLE_NAME = \"history-message\", a.DATA_TABLE_KEY_NAME = \"id\", a))(I || {});\nfunction Re(a) {\n switch (a) {\n case \"user\":\n return \"USER\";\n case \"agent\":\n return \"ASSISTANT\";\n case \"system\":\n return \"SYSTEM\";\n default:\n return \"USER\";\n }\n}\nfunction ze(a) {\n switch (a) {\n case \"pending\":\n return 20;\n case \"sent\":\n return 30;\n case \"failed\":\n return 40;\n case \"canceled\":\n return 30;\n default:\n return 30;\n }\n}\nfunction qe(a) {\n switch (a) {\n case \"pending\":\n case \"sent\":\n case \"canceled\":\n return \"DEFAULT\";\n case \"failed\":\n return \"ERROR\";\n default:\n return \"DEFAULT\";\n }\n}\nfunction Fe(a) {\n return {\n messageid: a.id,\n state: ze(a.status),\n type: qe(a.status),\n role: Re(a.sender_type),\n content: a.content,\n completed: !0,\n islike: a.is_like,\n isdislike: a.is_dislike,\n feedbackcontent: a.feedback_content,\n realmessageid: a.id,\n status: a.status\n };\n}\nclass Y {\n /**\n * Creates an instance of AiChatController.\n *\n * @author chitanda\n * @date 2023-10-15 19:10:34\n * @param {IChatOptions} opts 聊天配置\n * @param {IChatOptions} resourceOptions 资源配置\n */\n constructor(e, t) {\n /**\n * 事件触发器\n * @type {EventBase}\n */\n v(this, \"evt\", new Ce());\n /**\n * 聊天记录\n *\n * @author chitanda\n * @date 2023-10-16 16:10:29\n * @type {Signal<ChatMessage[]>}\n */\n v(this, \"messages\", w([]));\n /**\n * 素材列表\n *\n * @author tony001\n * @date 2025-02-27 18:02:46\n * @type {Signal<IMaterial[]>}\n */\n v(this, \"materials\", w([]));\n /**\n * 聊天框输入值\n *\n * @author chitanda\n * @date 2023-10-16 15:10:43\n * @type {Signal<string>}\n */\n v(this, \"input\", w(\"\"));\n /**\n * 是否加载中\n *\n * @author tony001\n * @date 2025-03-10 18:03:42\n * @type {Signal<boolean>}\n */\n v(this, \"isLoading\", w(!1));\n /**\n * 是否允许切换AI代理\n */\n v(this, \"enableAIAgentChange\", !0);\n /**\n * 激活AI代理标识\n *\n * @type {(string | undefined)}\n */\n v(this, \"activeAIAgentID\");\n /**\n * AI代理列表\n *\n * @type {Signal<AIAgent[]>}\n */\n v(this, \"agentList\", w([]));\n /**\n * 视图参数\n *\n * @author tony001\n * @date 2025-02-24 14:02:23\n * @type {object}\n */\n v(this, \"context\");\n /**\n * 视图参数\n *\n * @author tony001\n * @date 2025-02-24 14:02:32\n * @type {object}\n */\n v(this, \"params\");\n /**\n * 应用实体标记\n *\n * @author tony001\n * @date 2025-02-24 14:02:10\n * @type {string}\n */\n v(this, \"appDataEntityId\");\n /**\n * 话题标识\n *\n * @author tony001\n * @date 2025-02-24 18:02:02\n * @type {(string | undefined)}\n */\n v(this, \"topicId\");\n /**\n * 话题数据\n *\n * @author tony001\n * @date 2025-03-10 16:03:26\n * @type {(ITopic | undefined)}\n */\n v(this, \"topic\");\n /**\n * 话题控制器\n */\n v(this, \"aiTopic\");\n /**\n * @description 聊天sessionid\n * @type {string}\n * @memberof AiChatController\n */\n v(this, \"chatSessionid\", \"\");\n /**\n * 模式参数,用于业务区分\n */\n v(this, \"chatMode\");\n this.opts = e, this.resourceOptions = t, this.context = e.context, this.params = e.params, this.appDataEntityId = e.appDataEntityId, this.aiTopic = e.aiTopic, this.topicId = e.topicId, this.topic = e.topic, this.activeAIAgentID = e.activeAIAgentID, this.enableAIAgentChange = !!e.enableAIAgentChange, this.chatMode = e.srfMode, this.chatSessionid = e.sessionid, this.initAIChat();\n }\n /**\n * AI资源模式\n */\n get resourceMode() {\n var e;\n return ((e = this.resourceOptions) == null ? void 0 : e.resourceMode) || \"LOCAL\";\n }\n /**\n * 当前话题是否禁止存储\n */\n get currentTopicDisableStorage() {\n if (this.topicId && this.aiTopic) {\n const e = this.aiTopic.getCurrentTopicByID(this.topicId);\n if (e && e.disableStorage)\n return !0;\n }\n return !1;\n }\n /**\n * 初始化\n */\n async initAIChat() {\n this.messages.value = [], await this.initAIChatAgent(), await this.fecthHistory();\n }\n /**\n * 初始化AI代理列表\n */\n async initAIChatAgent() {\n this.opts.aiAgentlist && this.opts.aiAgentlist.length > 0 && this.opts.aiAgentlist.forEach((e) => {\n this.agentList.value = [...this.agentList.value, new $e(e)];\n });\n }\n /**\n * 获取历史记录存储key(用于适配不同智能体存在不同的历史记录)\n * @param topicId 话题标识\n * @returns 历史存储key\n */\n getHistoryStoreKey(e) {\n return \"\".concat(e);\n }\n /**\n * 获取历史记录\n *\n * @author tony001\n * @date 2025-02-24 13:02:52\n * @return {*} {Promise<boolean>}\n */\n async fecthHistory() {\n if (this.topicId) {\n let t = {};\n if (this.currentTopicDisableStorage)\n t.data = [];\n else if (this.resourceMode === \"LOCAL\")\n t = await x.getData(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME,\n this.getHistoryStoreKey(this.topicId)\n );\n else if (this.resourceMode === \"REMOTE\" && this.resourceOptions) {\n const s = await this.resourceOptions.getMessages({\n n_session_id_eq: this.chatSessionid\n });\n if (s && s.length > 0) {\n const i = [];\n s.forEach((o) => {\n i.push(Fe(o));\n }), t.data = i;\n }\n }\n if (t && t.data && t.data.length > 0)\n return t.data.forEach((s) => {\n const i = {\n messageid: s.messageid,\n state: s.state,\n type: s.type,\n role: s.role,\n islike: s.islike,\n isdislike: s.isdislike,\n feedbackcontent: s.feedbackcontent,\n content: s.content,\n suggestions: s.suggestions,\n completed: !0,\n toolcalls: s.toolcalls,\n realmessageid: s.realmessageid,\n status: s.status\n };\n this.addMessage(i);\n }), await this.afterFecthHistory(), !0;\n }\n return await this.opts.history(this.context, this.params, {\n appDataEntityId: this.appDataEntityId,\n appendCurData: this.opts.appendCurData,\n sessionid: this.chatSessionid,\n srfaiagent: this.activeAIAgentID,\n srfmode: this.chatMode\n }) && await this.afterFecthHistory(), !0;\n }\n /**\n * 获取历史记录后续处理\n */\n async afterFecthHistory() {\n if (this.opts.appendCurContent && this.addMessage({\n state: 30,\n messageid: B(),\n role: \"USER\",\n type: \"DEFAULT\",\n content: this.opts.appendCurContent,\n completed: !0,\n status: \"sent\"\n }), this.opts.appendCurResource) {\n const { hasResources: e, resources: t } = j.parseMixedContent(this.opts.appendCurResource);\n e && t && t.length > 0 && t.forEach((s) => {\n this.replaceMaterial(s.id, s);\n });\n }\n if (this.opts.autoQuestion !== !1) {\n const e = this.messages.value.length - 1, t = this.messages.value[e];\n if (t && t.role === \"USER\") {\n const s = this.stringlyMaterialResource(!1);\n if (s) {\n const i = s + t.content, o = {\n ...t._origin,\n messageid: B(),\n content: i\n };\n this.messages.value[e] = new L(o), this.messages.value = [...this.messages.value];\n }\n try {\n this.isLoading.value = !0, await this.opts.question(\n this,\n this.context,\n this.params,\n { appDataEntityId: this.appDataEntityId },\n this.getMessages(),\n this.chatSessionid,\n this.activeAIAgentID,\n this.chatMode\n ), this.opts.action && await this.opts.action(\"question\", t.content);\n } finally {\n this.isLoading.value = !1;\n }\n }\n }\n await this.updateTopicCaption();\n }\n /**\n * 更新数据到indexdb\n *\n * @author tony001\n * @date 2025-02-24 18:02:41\n * @return {*} {Promise<void>}\n */\n async asyncToIndexDB() {\n if (!this.topicId || this.resourceMode !== \"LOCAL\" || this.currentTopicDisableStorage)\n return;\n const e = {\n id: this.getHistoryStoreKey(this.topicId),\n data: this.messages.value.map((t) => ({\n ...t._origin,\n toolcalls: t.toolcalls ? [...t.toolcalls] : []\n })),\n timestamp: (/* @__PURE__ */ new Date()).getTime()\n };\n await x.updateData(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME,\n e\n );\n }\n /**\n * 设置聊天框值\n *\n * @author chitanda\n * @date 2023-10-16 16:10:21\n * @param {string} input\n */\n setInput(e) {\n this.input.value = e || \"\";\n }\n /**\n * 新增聊天记录\n *\n * @author chitanda\n * @date 2023-10-09 15:10:15\n * @param {IMessage} data\n */\n addMessage(e) {\n const t = this.messages.value.find(\n (s) => s.messageid === e.messageid\n );\n t ? (t.update(e), this.messages.value = [...this.messages.value]) : this.messages.value = [...this.messages.value, new L(e)], this.asyncToIndexDB();\n }\n /**\n * 更新消息完成状态\n *\n * @author tony001\n * @date 2025-02-25 17:02:19\n * @param {string} id\n * @param {boolean} completed\n */\n async completeMessage(e, t) {\n const s = this.messages.value.find((i) => i.messageid === e);\n if (s && (s.updateCompleted(t), this.messages.value = [...this.messages.value], await this.asyncToIndexDB()), this.opts.autoFill === !0) {\n const i = s || this.messages.value[this.messages.value.length - 1];\n i.role === \"ASSISTANT\" && i.state === 30 && this.backfill(i);\n }\n this.evt.emit(\"onCompleteMessage\", {\n messageid: e,\n completed: t\n });\n }\n /**\n * 替换已经存在的聊天消息\n *\n * @author chitanda\n * @date 2023-10-16 22:10:49\n * @param {IChatMessage} data\n */\n replaceMessage(e, t = !0) {\n const s = this.messages.value.findIndex(\n (i) => i.messageid === e.messageid\n );\n s !== -1 ? (this.messages.value[s].replace(e), this.messages.value = [...this.messages.value]) : this.messages.value = [...this.messages.value, new L(e)], this.asyncToIndexDB(), e.type === \"DEFAULT\" && this.opts.recommendPrompt && t && this.opts.recommendPrompt(this.context, this.params, {\n appDataEntityId: this.appDataEntityId,\n message: {\n messages: [e],\n sessionid: this.chatSessionid,\n srfaiagent: this.activeAIAgentID\n }\n }).then((i) => {\n i && i.content && this.updateRecommendPrompt(e, i.content);\n });\n }\n /**\n * 终止消息\n *\n * @author tony001\n * @date 2025-03-10 14:03:17\n * @param {IChatMessage} data\n */\n async stopMessage(e) {\n const t = this.messages.value.findIndex(\n (s) => s.messageid === e.messageid\n );\n e.content = e.content || \"用户中断\", t !== -1 ? (this.messages.value[t].replace(e), this.messages.value = [...this.messages.value]) : this.messages.value = [...this.messages.value, new L(e)], await this.asyncToIndexDB();\n }\n /**\n * 数据对象转 XML 字符串\n *\n * @author tony001\n * @date 2025-03-03 11:03:55\n * @return {*} {string}\n */\n stringlyMaterialResource(e = !0) {\n let t = \"\";\n const s = [];\n return this.materials.value && this.materials.value.length > 0 && (this.materials.value.forEach((i) => {\n if (i.type === \"ossfile\") {\n const o = i.metadata;\n o.state && o.state === \"successed\" && s.push(i);\n } else\n s.push(i);\n }), e && (this.materials.value = [])), s && s.length > 0 && (t = j.stringify(s)), t;\n }\n /**\n * @description 获取当前会话的消息集合\n * @private\n * @returns {*} {IChatMessage[]}\n * @memberof AiChatController\n */\n getMessages() {\n const e = this.messages.value.filter((t) => t.type !== \"ERROR\" && t.status !== \"canceled\").map((t) => t._origin);\n return e.forEach((t) => {\n t.content = t.content.replace(new RegExp(\"\\\\<tool_call\\\\>[^]*?\\\\<\\\\/tool_call\\\\>\", \"gs\"), \"\").trim();\n }), e;\n }\n /**\n * 获取完整消息集合\n * @returns\n */\n getAllMessages() {\n return this.messages.value.map((e) => e._origin);\n }\n /**\n * 提问\n *\n * @author chitanda\n * @date 2023-10-09 20:10:43\n * @return {*} {Promise<void>}\n */\n async question(e) {\n try {\n this.isLoading.value = !0, this.messages.value.forEach((s, i) => {\n const o = s._origin;\n o.suggestions && (o.suggestions = void 0, this.messages.value[i].replace(o));\n }), this.messages.value = [...this.messages.value], this.asyncToIndexDB();\n let t = this.stringlyMaterialResource(!1);\n t ? t += \"\\n\".concat(e) : t = e, this.addMessage({\n state: 30,\n messageid: B(),\n role: \"USER\",\n type: \"DEFAULT\",\n content: t,\n status: \"sent\"\n }), await this.opts.question(\n this,\n this.context,\n this.params,\n { appDataEntityId: this.appDataEntityId },\n this.getMessages(),\n this.chatSessionid,\n this.activeAIAgentID,\n this.chatMode\n ), await this.updateTopicCaption(), this.opts.action && this.opts.action(\"question\", e), this.isLoading.value = !1;\n } finally {\n this.isLoading.value = !1;\n }\n }\n /**\n * 中断请求\n *\n * @author tony001\n * @date 2025-03-10 14:03:48\n */\n async abortQuestion() {\n try {\n await this.opts.abortQuestion(this, this.context, this.params, {\n appDataEntityId: this.appDataEntityId,\n sessionid: this.chatSessionid,\n srfaiagent: this.activeAIAgentID,\n srfmode: this.chatMode\n });\n } finally {\n this.isLoading.value = !1;\n }\n }\n /**\n * 回填选中的消息\n *\n * @author chitanda\n * @date 2023-10-16 18:10:19\n * @param {IChatMessage} message\n */\n backfill(e) {\n this.opts.action && this.opts.action(\"backfill\", e);\n }\n /**\n *\n * 删除指定消息,如果是用户提问的刷新调用的删除,则需要删除从问题开始到最后的所有记录\n * @param {IChatMessage} message\n * @param {boolean} [isuser=false]\n * @memberof AiChatController\n */\n async deleteMessage(e) {\n const t = this.messages.value.findIndex(\n (s) => s.messageid === e.messageid\n );\n t !== -1 && (this.messages.value.splice(t, 1), this.messages.value = [...this.messages.value]), this.asyncToIndexDB(), this.resourceMode === \"REMOTE\" && this.resourceOptions && e.realmessageid && await this.resourceOptions.deleteMessage(e.realmessageid), this.opts.action && this.opts.action(\"deletemsg\", e);\n }\n /**\n * 刷新当前消息\n *\n * @memberof AiChatController\n */\n async refreshMessage(e, t = !1) {\n this.isLoading.value = !0;\n try {\n const s = this.messages.value.findIndex(\n (i) => i.messageid === e.messageid\n );\n if (t)\n this.messages.value.splice(s + 1, this.messages.value.length - s - 1), this.messages.value = [...this.messages.value], await this.opts.question(\n this,\n this.context,\n this.params,\n { appDataEntityId: this.appDataEntityId },\n this.getMessages(),\n this.chatSessionid,\n this.activeAIAgentID,\n this.chatMode\n );\n else if (s === this.messages.value.length - 1)\n this.messages.value.pop(), this.messages.value = [...this.messages.value], await this.opts.question(\n this,\n this.context,\n this.params,\n { appDataEntityId: this.appDataEntityId },\n this.getMessages(),\n this.chatSessionid,\n this.activeAIAgentID,\n this.chatMode\n );\n else {\n const i = this.messages.value[s - 1].content;\n this.messages.value.splice(s - 1, 2), this.question(i);\n }\n this.asyncToIndexDB(), this.opts.action && this.opts.action(\"refreshmsg\", e);\n } finally {\n this.isLoading.value = !1;\n }\n }\n /**\n * 复制消息\n *\n * @param {IChatMessage} message\n * @memberof AiChatController\n */\n copyMessage(e) {\n const t = e.realcontent;\n Z.copy(t), this.opts.action && this.opts.action(\"copymsg\", e);\n }\n /**\n * 重置对话(清空当前对话、查询历史)\n * @returns\n */\n async resetTopic() {\n let e = !0;\n return e = await this.clearTopic(), e && (await this.fecthHistory(), e);\n }\n /**\n * 清空对话\n * @returns\n */\n async clearTopic() {\n let e = !0;\n if (await this.abortQuestion(), this.topicId)\n this.topicId && this.aiTopic && (this.currentTopicDisableStorage ? e = !0 : this.resourceMode === \"LOCAL\" ? e = await x.deleteData(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME,\n this.getHistoryStoreKey(this.topicId)\n ) : this.resourceMode === \"REMOTE\" && (e = await this.aiTopic.clearMessagesByTopicId(this.topicId)));\n else if (this.resourceMode === \"REMOTE\" && this.resourceOptions) {\n const t = await this.resourceOptions.getSessionList({\n n_session_id_eq: this.chatSessionid\n });\n t && t.length > 0 && (e = await this.resourceOptions.clearAllMessageBySessionId(\n t[0].realid\n ));\n }\n return e && (this.messages.value = [], e);\n }\n /**\n * 新建话题\n */\n async newTopic() {\n this.topicId && this.aiTopic && this.aiTopic.newTopic(this.topicId, {\n activeAIAgentID: this.activeAIAgentID,\n sessionid: \"\".concat(G(this.chatSessionid), \"@\").concat((/* @__PURE__ */ new Date()).getTime())\n });\n }\n /**\n * 新增素材资源\n *\n * @author tony001\n * @date 2025-02-27 18:02:00\n * @param {IMaterial} data\n */\n addMaterial(e) {\n this.materials.value.find((s) => s.id === e.id) ? this.materials.value = [...this.materials.value] : this.materials.value = [...this.materials.value, new F(e)];\n }\n /**\n * 替换素材资源\n *\n * @author tony001\n * @date 2025-02-28 15:02:24\n * @param {string} id\n * @param {IMaterial} data\n */\n replaceMaterial(e, t) {\n const s = this.materials.value.findIndex((i) => i.id === e);\n s !== -1 ? (this.materials.value[s] = new F(t), this.materials.value = [...this.materials.value]) : this.materials.value = [...this.materials.value, new F(t)];\n }\n /**\n * 删除指定素材资源\n *\n * @author tony001\n * @date 2025-02-27 18:02:33\n * @param {IMaterial} data\n */\n deleteMaterial(e) {\n const t = this.materials.value.findIndex((s) => s.id === e.id);\n t !== -1 && (this.materials.value.splice(t, 1), this.materials.value = [...this.materials.value]);\n }\n /**\n * 更新指定消息推荐提示\n *\n * @author tony001\n * @date 2025-03-19 11:03:47\n * @param {IChatMessage} data\n * @param {string} suggestionStr\n */\n updateRecommendPrompt(e, t) {\n if (!t)\n return;\n const s = this.messages.value.findIndex(\n (o) => o.messageid === e.messageid\n ), { suggestions: i } = Le.parseMixedContent(t);\n i && i.length > 0 && (e.suggestions = i, s !== -1 ? (this.messages.value[s] = new L(e), this.messages.value = [...this.messages.value]) : this.messages.value = [...this.messages.value, new L(e)], this.asyncToIndexDB());\n }\n /**\n * 处理建议点击\n *\n * @author tony001\n * @date 2025-03-19 12:03:25\n * @param {IChatMessage} message\n * @param {IChatSuggestion} suggestion\n * @param {MouseEvent} event\n * @return {*} {Promise<void>}\n */\n async handleSuggestionClick(e, t, s) {\n var l;\n const i = this.messages.value.findIndex(\n (h) => h.messageid === e.messageid\n );\n if (i !== -1) {\n const h = this.messages.value[i]._origin;\n h.suggestions = void 0, this.messages.value[i].replace(h), this.messages.value = [...this.messages.value];\n }\n this.asyncToIndexDB();\n const { type: o, metadata: n } = t;\n switch (o) {\n case \"action\":\n if (this.opts.extendToolbarClick) {\n const h = t.data.actionid, c = t.data.appid;\n if (!h)\n throw new Error(\"actionid不能为空\");\n this.addMessage({\n messageid: B(),\n state: 30,\n type: \"DEFAULT\",\n role: \"USER\",\n content: n.content_name,\n status: \"sent\"\n });\n const u = { ...e };\n Object.assign(u, { topic: this.topic }), u.msg.realcontent = e.realcontent;\n const d = await this.opts.extendToolbarClick(\n s,\n {\n id: h,\n // 是否是插件应用(建议里面定义appid认为是插件应用的界面行为)\n isPluginApp: !!c,\n appId: c || this.context.srfappid\n },\n this.context,\n this.params,\n u\n ), p = (l = d == null ? void 0 : d.data) == null ? void 0 : l[0];\n p.content && this.addMessage({\n messageid: B(),\n state: 30,\n type: p.type || \"DEFAULT\",\n role: p.role || \"ASSISTANT\",\n content: p.content,\n status: \"sent\"\n });\n }\n break;\n case \"raw\":\n await this.question(t.data.content);\n break;\n default:\n throw new Error(\"不支持\".concat(o, \"推荐类型\"));\n }\n }\n /**\n * 设置当前激活的AI助手ID\n * @param agentID\n */\n async setActiveAIAgentID(e) {\n this.activeAIAgentID = e, this.topicId && this.aiTopic && this.aiTopic.updateTopicChatByID(this.topicId, {\n activeAIAgentID: e\n });\n }\n /**\n * 更新当前话题标题\n */\n async updateTopicCaption() {\n const e = this.messages.value.find((t) => t.role === \"USER\");\n if (e) {\n if (this.topicId && this.aiTopic)\n this.aiTopic.updateTopicCaption(this.topicId, e.content);\n else if (this.resourceMode === \"REMOTE\" && this.resourceOptions) {\n const t = await this.resourceOptions.getSessionList({\n n_session_id_eq: this.chatSessionid\n });\n if (t && t.length > 0) {\n const s = e.content.substring(0, 15) || this.opts.caption;\n if (t[0].caption === s)\n return;\n await this.resourceOptions.updateSession(t[0].realid, {\n caption: s\n });\n }\n }\n }\n }\n /**\n * @description 消息点赞\n * @param {IChatMessage} message\n * @returns {*} {Promise<void>}\n * @memberof AiChatController\n */\n async messageLike(e) {\n const t = e.islike === \"1\", s = e.realmessageid;\n if (!s || !this.resourceOptions)\n return;\n (t ? await this.resourceOptions.cancelFeedback(s) : await this.resourceOptions.likeMessage(s)) && (e.islike = t ? \"0\" : \"1\", !t && e.isdislike === \"1\" && (e.isdislike = \"0\"), this.replaceMessage(e, !1));\n }\n /**\n * @description 消息点踩\n * @param {IChatMessage} message\n * @returns {*} {Promise<void>}\n * @memberof AiChatController\n */\n async messageDisLike(e) {\n const t = e.isdislike === \"1\", s = e.realmessageid, i = e.feedbackcontent;\n if (!s || !this.resourceOptions)\n return;\n (t ? await this.resourceOptions.cancelFeedback(s) : await this.resourceOptions.dislikeMessage(s, i)) && (e.isdislike = t ? \"0\" : \"1\", !t && e.islike === \"1\" && (e.islike = \"0\"), this.replaceMessage(e, !1));\n }\n /**\n * 销毁\n *\n * @return {*} {Promise<void>}\n * @memberof AiChatController\n */\n async destroyed() {\n await this.abortQuestion(), this.evt.reset();\n }\n}\nclass _e {\n /**\n * Creates an instance of AiTopicController.\n * @author tony001\n * @date 2025-02-24 11:02:26\n * @param {ChatController} chat\n */\n constructor(e) {\n /**\n * 话题清单\n *\n * @author tony001\n * @date 2025-02-20 16:02:38\n * @type {Signal<ChatTopic[]>}\n */\n v(this, \"topics\", w([]));\n /**\n * 激活话题\n *\n * @author tony001\n * @date 2025-02-24 16:02:44\n * @type {(Signal<ITopic | undefined>)}\n */\n v(this, \"activedTopic\", w(void 0));\n /**\n * 当前话题配置备份\n *\n * @author tony001\n * @date 2025-02-24 16:02:28\n * @public\n * @type {(ITopicOptions | undefined)}\n */\n v(this, \"backupOptions\");\n /**\n * 远程会话列表\n */\n v(this, \"remoteSessionList\", []);\n /**\n * 资源模式\n */\n v(this, \"resourceMode\", \"LOCAL\");\n /**\n * 资源选项\n */\n v(this, \"resourceOptions\");\n this.chat = e;\n }\n /**\n * 注入资源选项\n * @param resourceOptions\n */\n injectResourceOptions(e) {\n this.resourceMode = (e == null ? void 0 : e.resourceMode) || \"LOCAL\", this.resourceOptions = e;\n }\n /**\n * 获取历史话题\n *\n * @author tony001\n * @date 2025-02-23 16:02:37\n * @return {*} {Promise<void>}\n */\n async fetchHistory(e) {\n this.topics.value = [];\n const s = await e.configService(\n e.appid,\n \"aitopics\",\n e.type\n ).load();\n s && s.length > 0 && (this.resourceMode === \"REMOTE\" && this.resourceOptions ? (this.remoteSessionList = await this.resourceOptions.getSessionList(), await this.asyncRemoteSession(s)) : s.forEach((i, o) => {\n Object.prototype.hasOwnProperty.call(i, \"sequence\") || (i.sequence = o), Object.prototype.hasOwnProperty.call(i, \"isTop\") || (i.isTop = 0), this.topics.value = [...this.topics.value, new $(i)];\n }));\n }\n /**\n * 同步远程会话\n * @param configList config存储数据\n */\n async asyncRemoteSession(e) {\n !this.remoteSessionList || this.remoteSessionList.length === 0 || !e || e.length === 0 || this.remoteSessionList.forEach((t) => {\n const s = e.find((i) => {\n var o;\n return ((o = i.aiChat) == null ? void 0 : o.sessionid) === t.session_id;\n });\n s && (s.realid = t.realid, s.sequence = t.sequence, s.isTop = t.is_top ? t.is_top : 0, t.caption && (s.caption = t.caption), this.topics.value = [...this.topics.value, new $(s)]);\n });\n }\n /**\n * 同步当前话题\n *\n * @author tony001\n * @date 2025-02-23 17:02:43\n * @param {ITopicOptions} options\n * @return {*} {Promise<void>}\n */\n async asyncTopic(e) {\n this.backupOptions = e;\n const t = this.topics.value.findIndex(\n (i) => i.id === e.id\n ), s = new $(e);\n t !== -1 ? this.topics.value.splice(t, 1, s) : this.topics.value = [...this.topics.value, s], await this.updateTopic(e), this.activedTopic.value = s;\n }\n /**\n * 获取指定标识话题\n * @param topicid\n * @returns\n */\n getCurrentTopicByID(e) {\n const t = this.topics.value.find((s) => s.id === e);\n return t && t.data ? new $({ ...t.data }) : void 0;\n }\n /**\n * 基于话题标识更新当前话题\n * @param topicid 话题标识\n */\n async updateTopicChatByID(e, t) {\n if (!e || !t || !this.backupOptions)\n return;\n const s = this.topics.value.findIndex(\n (i) => i.id === e\n );\n s === -1 || !this.topics.value[s].data.aiChat || (this.topics.value[s].data.aiChat = {\n ...this.topics.value[s].data.aiChat,\n ...t\n }, await this.updateTopic(this.backupOptions));\n }\n /**\n * 删除话题\n *\n * @author tony001\n * @date 2025-02-24 16:02:03\n * @param {ITopicOptions} options\n * @param {object} context\n * @param {object} params\n * @param {ITopic} data\n * @param {MouseEvent} event\n * @return {*} {Promise<void>}\n */\n async removeTopic(e, t, s, i, o) {\n var c;\n let n = !0;\n if (e.beforeDelete && (n = await e.beforeDelete(t, s, i, o)), !n)\n return;\n let l = !1;\n if (i && i.disableStorage)\n l = !0;\n else if (this.resourceMode === \"LOCAL\")\n l = await x.deleteData(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME,\n i.id\n );\n else if (this.resourceMode === \"REMOTE\" && this.resourceOptions) {\n if (i.realid)\n l = await this.resourceOptions.deleteSession(i.realid);\n else if (i.aiChat && i.aiChat.sessionid) {\n const u = await this.resourceOptions.getSessionList({\n n_session_id_eq: i.aiChat.sessionid\n });\n u && u.length > 0 ? l = await this.resourceOptions.deleteSession(\n u[0].realid\n ) : l = !0;\n }\n }\n if (!l)\n return;\n const h = this.topics.value.findIndex(\n (u) => u.id === i.id\n );\n h !== -1 && (this.topics.value.splice(h, 1), this.topics.value = [...this.topics.value]), await this.updateTopic(e), this.topics.value.length > 0 && i.id === ((c = this.activedTopic.value) == null ? void 0 : c.id) && this.handleTopicChange(this.topics.value[0]);\n }\n /**\n * 处理选中变化\n *\n * @author tony001\n * @date 2025-02-20 19:02:27\n * @param {ChatTopic} item\n */\n handleTopicChange(e) {\n var t;\n ((t = this.activedTopic.value) == null ? void 0 : t.id) !== e.id && (this.activedTopic.value = e, this.chat.switchAiChatController(e));\n }\n /**\n * 处理话题行为\n *\n * @author tony001\n * @date 2025-02-24 16:02:58\n * @param {string} action\n * @param {ChatTopic} topic\n * @param {MouseEvent} event\n * @return {*} {Promise<void>}\n */\n async handleTopicAction(e, t, s) {\n var o, n;\n const i = this.topics.value.find((l) => l.id === t.id);\n if (this.backupOptions && i && i.aiChat) {\n const { context: l, params: h } = i.aiChat;\n switch (e) {\n case \"DELETE\":\n await this.removeTopic(\n this.backupOptions,\n l,\n h,\n i,\n s\n );\n break;\n case \"RENAME\":\n case \"PINNED\":\n if (e === \"PINNED\" && (t.data.isTop = t.data.isTop === 0 ? 1 : 0, this.topics.value = [...this.topics.value]), t && !t.disableStorage && (await this.updateTopic(this.backupOptions), t && this.resourceMode === \"REMOTE\" && this.resourceOptions)) {\n if (t.realid)\n await this.resourceOptions.updateSession(t.realid, {\n caption: t.caption,\n is_top: t.isTop\n });\n else if (t.aiChat && t.aiChat.sessionid) {\n const c = await this.resourceOptions.getSessionList({\n n_session_id_eq: t.aiChat.sessionid\n });\n c && c.length > 0 && await this.resourceOptions.updateSession(\n c[0].realid,\n {\n caption: t.caption,\n is_top: t.isTop\n }\n );\n }\n }\n break;\n }\n (n = (o = this.backupOptions).action) == null || n.call(o, e, l, h, t, s);\n }\n }\n /**\n * 清空指定话题的消息\n * @param topicID\n * @returns\n */\n async clearMessagesByTopicId(e) {\n let t = !0;\n if (!e || !this.backupOptions)\n return t;\n const s = this.topics.value.findIndex(\n (o) => o.id === e\n );\n if (s === -1 || !this.topics.value[s].data)\n return t;\n const i = this.topics.value[s];\n if (!i || i.disableStorage)\n return t;\n if (this.resourceMode === \"REMOTE\" && this.resourceOptions) {\n if (i.realid)\n t = await this.resourceOptions.clearAllMessageBySessionId(\n i.realid\n );\n else if (i.aiChat && i.aiChat.sessionid) {\n const o = await this.resourceOptions.getSessionList({\n n_session_id_eq: i.aiChat.sessionid\n });\n o && o.length > 0 && (t = await this.resourceOptions.clearAllMessageBySessionId(\n o[0].realid\n ));\n }\n if (!t)\n return t;\n }\n return t;\n }\n /**\n * 新建对话\n *\n * @author tony001\n * @date 2025-03-18 18:03:49\n * @return {*} {Promise<void>}\n */\n async newTopic(e, t) {\n var u;\n if (!e)\n return;\n const s = this.getCurrentTopicByID(e);\n if (!s)\n return;\n const i = G(s.id), o = this.topics.value.filter((d) => d.id.startsWith(i));\n t && s.aiChat && (s.data.aiChat = {\n ...s.aiChat,\n ...t\n });\n let n = \"\";\n s.captionMode === \"default\" ? n = \"\".concat((u = s.sourceCaption) == null ? void 0 : u.split(\"_\")[0], \"_\").concat(o.length) : n = \"新会话\";\n const l = Math.max(\n ...this.topics.value.map((d) => d.sequence)\n ), h = {\n appid: s.appid,\n // 源头数据id@当前时间戳\n id: \"\".concat(i, \"@\").concat(Date.now()),\n type: s.type,\n captionMode: s.captionMode,\n captionFilled: !1,\n caption: n,\n sourceCaption: s.sourceCaption,\n url: s.url,\n aiChat: s.aiChat,\n sequence: l + 1,\n isTop: 0,\n disableStorage: s.disableStorage\n }, c = new $(h);\n this.topics.value = [...this.topics.value, c], this.backupOptions && await this.updateTopic(this.backupOptions), this.handleTopicChange(c);\n }\n /**\n * 清空话题\n * - 当前激活项不清空\n * @return {*} {Promise<void>}\n * @memberof AiTopicController\n */\n async clearTopic() {\n var i;\n const e = this.topics.value.find(\n (o) => {\n var n;\n return o.id === ((n = this.activedTopic.value) == null ? void 0 : n.id);\n }\n );\n if (!this.backupOptions || !e)\n return;\n let t = !0;\n if (this.backupOptions.beforeDelete && (t = await this.backupOptions.beforeDelete(\n e.aiChat.context,\n e.aiChat.params,\n e,\n void 0,\n !0\n )), !t)\n return;\n let s = !1;\n if (this.resourceMode === \"LOCAL\")\n await Promise.all(\n this.topics.value.map((o) => {\n if (o.id !== (e == null ? void 0 : e.id) && !o.disableStorage)\n return x.deleteData(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME,\n o.id\n );\n })\n ), s = !0;\n else if (this.resourceMode === \"REMOTE\")\n if (e && this.resourceOptions) {\n const o = (i = e.aiChat) == null ? void 0 : i.sessionid;\n o ? s = await this.resourceOptions.clearAllSession(o) : s = !0;\n } else\n s = !0;\n s && (this.topics.value = e ? [e] : [], await this.updateTopic(this.backupOptions));\n }\n /**\n * 更新话题标题\n * @param topicId\n * @param message\n */\n async updateTopicCaption(e, t) {\n const s = this.topics.value.find((i) => i.id === e);\n if (s && !s.captionFilled) {\n if (s.captionMode !== \"default\") {\n switch (s.captionMode) {\n case \"snippet\":\n s.data.caption = t.substring(0, 15);\n break;\n }\n this.topics.value = [...this.topics.value], this.backupOptions && await this.updateTopic(this.backupOptions);\n }\n if (s.disableStorage)\n return;\n if (this.resourceMode === \"REMOTE\" && this.resourceOptions) {\n if (s.realid)\n await this.resourceOptions.updateSession(s.realid, {\n caption: s.caption\n });\n else if (s.aiChat && s.aiChat.sessionid) {\n const i = await this.resourceOptions.getSessionList({\n n_session_id_eq: s.aiChat.sessionid\n });\n if (i && i.length > 0) {\n if (i[0].caption === s.caption)\n return;\n await this.resourceOptions.updateSession(i[0].realid, {\n caption: s.caption\n });\n }\n }\n }\n s.data.captionFilled = !0;\n }\n }\n /**\n * 更新话题数据\n *\n * @param {ITopicOptions} options 话题配置\n * @return {*} {Promise<void>}\n * @memberof AiTopicController\n */\n async updateTopic(e) {\n if (!e)\n return;\n const t = [];\n this.topics.value.forEach((i) => {\n i.disableStorage || t.push({\n appid: i.appid,\n id: i.id,\n type: i.type,\n captionMode: i.captionMode,\n captionFilled: i.captionFilled,\n caption: i.caption || i.sourceCaption,\n sourceCaption: i.sourceCaption,\n url: i.url,\n aiChat: i.aiChat,\n isTop: i.isTop,\n sequence: i.sequence\n });\n });\n const s = e.configService(\n e.appid,\n \"aitopics\",\n e.type\n );\n await (s == null ? void 0 : s.save(t));\n }\n}\nclass ee {\n constructor(e) {\n this.aiChat = e;\n }\n}\nclass je extends ee {\n /**\n * 执行操作\n *\n * @author tony001\n * @date 2025-02-28 15:02:48\n * @return {*} {Promise<void>}\n */\n async excuteAction(e, t) {\n let s;\n if (t && t.onClick && typeof t.onClick == \"function\")\n s = await t.onClick(\n e,\n t,\n this.aiChat.context,\n this.aiChat.params\n );\n else {\n const i = this.aiChat.opts.extendToolbarClick;\n i ? s = await i(\n e,\n t,\n this.aiChat.context,\n this.aiChat.params,\n {}\n ) : console.error(\"未找到扩展工具栏点击事件\");\n }\n if (s && s.data && s.data.length > 0) {\n const i = s.data[0], o = {\n id: i.id,\n type: i.type,\n data: i.data || {},\n metadata: i.metadata || {}\n };\n t.id && Object.assign(o.metadata, { actionId: t.id }), this.aiChat.addMaterial(o);\n }\n }\n}\nclass Ne extends ee {\n /**\n * 执行操作\n *\n * @author tony001\n * @date 2025-02-28 15:02:27\n * @return {*} {Promise<void>}\n */\n async excuteAction(e, t) {\n const s = this.aiChat.opts.uploader, {\n multiple: i,\n accept: o,\n maxSize: n,\n onSelect: l,\n onUpload: h,\n onSuccess: c,\n onError: u,\n onProgress: d\n } = s, p = {\n multiple: i || !0,\n accept: o || \"*/*\",\n maxSize: n || 5 * 1024 * 1024,\n onSelect: (m) => {\n l == null || l(m), m.length > 0 && m.forEach((b) => {\n const y = this.buildMaterialObject(b);\n Object.assign(y.metadata, { state: \"uploading\" }), this.aiChat.addMaterial(y);\n });\n },\n onUpload: async (m, b) => h(m, b, {\n context: this.aiChat.context,\n params: this.aiChat.params\n }),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSuccess: (m, b) => {\n const y = {\n id: m.id,\n type: \"ossfile\",\n data: {\n id: m.id,\n name: m.name\n },\n metadata: {\n ext: m.ext,\n fileext: m.fileext,\n fileid: m.fileid,\n filename: m.filename,\n size: m.size,\n filesize: m.filesize,\n state: \"successed\"\n }\n };\n this.aiChat.replaceMaterial(b.name, y), c == null || c(m, b);\n },\n onError: (m, b) => {\n const y = this.buildMaterialObject(b);\n Object.assign(y.metadata, { state: \"failed\" }), this.aiChat.replaceMaterial(b.name, y), u == null || u(m, b);\n },\n onProgress: (m, b) => {\n d == null || d(m, b);\n }\n };\n new Oe(p).openFilePicker();\n }\n /**\n * 构建素材对象\n *\n * @author tony001\n * @date 2025-02-28 15:02:12\n * @param {File} file\n * @return {*} {IMaterial}\n */\n buildMaterialObject(e) {\n return {\n id: e.name,\n type: \"ossfile\",\n data: {\n name: e.name,\n id: e.name\n },\n metadata: {\n size: e.size,\n type: e.type,\n lastModified: e.lastModified\n }\n };\n }\n}\nclass He {\n static getMaterialHelper(e, t) {\n switch (e) {\n case \"ossfile\":\n return new Ne(t);\n default:\n return new je(t);\n }\n }\n}\nconst Pe = r(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\"\n}, [r(\"path\", {\n d: \"M12 19v3\"\n}, null), r(\"path\", {\n d: \"M19 10v2a7 7 0 0 1-14 0v-2\"\n}, null), r(\"rect\", {\n x: \"9\",\n y: \"2\",\n width: \"6\",\n height: \"13\",\n rx: \"3\"\n}, null)]), Ue = r(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\"\n}, [r(\"path\", {\n d: \"M12 19v3\"\n}, null), r(\"path\", {\n d: \"M15 9.34V5a3 3 0 0 0-5.68-1.33\"\n}, null), r(\"path\", {\n d: \"M16.95 16.95A7 7 0 0 1 5 12v-2\"\n}, null), r(\"path\", {\n d: \"M18.89 13.23A7 7 0 0 0 19 12v-2\"\n}, null), r(\"path\", {\n d: \"m2 2 20 20\"\n}, null), r(\"path\", {\n d: \"M9 9v3a3 3 0 0 0 5.12 2.12\"\n}, null)]), Ve = r(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\"\n}, [r(\"path\", {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\"\n}, null), r(\"path\", {\n d: \"m21.854 2.147-10.94 10.939\"\n}, null)]), Xe = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"4696\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M512 960.2c-246 0-447.35-201.73-447.35-448.28S265.94 63.63 512 63.63s447.33 201.73 447.33 448.29S758 960.2 512 960.2z m144.3-104.38A377.09 377.09 0 0 0 855 656.7a371.79 371.79 0 0 0 0-289.57A377.09 377.09 0 0 0 656.3 168a369.15 369.15 0 0 0-288.64 0A377.18 377.18 0 0 0 169 367.13a371.79 371.79 0 0 0 0 289.57 377.18 377.18 0 0 0 198.66 199.12 369.15 369.15 0 0 0 288.64 0z\",\n \"p-id\": \"4697\"\n}, null), r(\"path\", {\n d: \"M378.19 349.54h265.46a30.66 30.66 0 0 1 30.63 30.69v266a30.66 30.66 0 0 1-30.63 30.69H378.19a30.66 30.66 0 0 1-30.63-30.69v-266a30.66 30.66 0 0 1 30.63-30.69z\",\n \"p-id\": \"4698\"\n}, null)]), q = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"9261\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M512 20.48c271.36 0 491.52 220.16 491.52 491.52S783.36 1003.52 512 1003.52 20.48 783.36 20.48 512 240.64 20.48 512 20.48m0-20.48C229.376 0 0 229.376 0 512s229.376 512 512 512 512-229.376 512-512S794.624 0 512 0z\",\n \"p-id\": \"9262\"\n}, null), r(\"path\", {\n d: \"M512 226.304l-283.648 143.36v284.672l283.648 143.36L795.648 655.36V369.664L512 226.304z m54.272 370.688h-32.768l-5.12-3.072-20.48-49.152h-95.232l-20.48 49.152-4.096 3.072h-32.768l-4.096-7.168 86.016-198.656 4.096-3.072h37.888l4.096 3.072 86.016 198.656-3.072 7.168z m88.064-5.12l-5.12 5.12h-29.696l-5.12-5.12V394.24l5.12-5.12h29.696l5.12 5.12v197.632z\",\n \"p-id\": \"9263\"\n}, null), r(\"path\", {\n d: \"M427.008 512h67.584L460.8 427.008z\",\n \"p-id\": \"9264\"\n}, null)]), Je = r(\"svg\", {\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}, [r(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}, null)]), Ye = r(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 50 50\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [r(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"5\",\n \"stroke-dasharray\": \"31.415, 31.415\",\n \"stroke-linecap\": \"round\"\n}, [r(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 25 25\",\n to: \"360 25 25\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n}, null)])]), Ke = r(\"svg\", {\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n preserveAspectRatio: \"xMidYMid meet\",\n focusable: \"false\"\n}, [r(\"g\", {\n id: \"agptips/check-circle\",\n \"stroke-width\": \"1\",\n \"fill-rule\": \"evenodd\"\n}, [r(\"path\", {\n d: \"M8 16A8 8 0 118 0a8 8 0 010 16zm0-1.2A6.8 6.8 0 108 1.2a6.8 6.8 0 000 13.6zM5.666 7.207l1.8 1.845 3.482-3.554.857.84-4.34 4.43-2.658-2.723.86-.838z\",\n id: \"agp形状结合\"\n}, null)])]), Qe = r(\"svg\", {\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n preserveAspectRatio: \"xMidYMid meet\",\n focusable: \"false\",\n style: \"transform: rotate(-90deg);\"\n}, [r(\"g\", {\n id: \"abfnavigation/angle-right\",\n \"stroke-width\": \"1\",\n \"fill-rule\": \"evenodd\"\n}, [r(\"path\", {\n d: \"M7.978 11.498l-.005.005L2.3 5.831 3.13 5l4.848 4.848L12.826 5l.83.831-5.673 5.672-.005-.005z\",\n id: \"abf形状结合\",\n transform: \"rotate(-90 7.978 8.252)\"\n}, null)])]), te = r(\"svg\", {\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n preserveAspectRatio: \"xMidYMid meet\",\n focusable: \"false\",\n style: \"transform: rotate(90deg);\"\n}, [r(\"g\", {\n id: \"abfnavigation/angle-right\",\n \"stroke-width\": \"1\",\n \"fill-rule\": \"evenodd\"\n}, [r(\"path\", {\n d: \"M7.978 11.498l-.005.005L2.3 5.831 3.13 5l4.848 4.848L12.826 5l.83.831-5.673 5.672-.005-.005z\",\n id: \"abf形状结合\",\n transform: \"rotate(-90 7.978 8.252)\"\n}, null)])]), se = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"4832\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M707.61856 495.14624l-357.5296-357.5296c-9.30816-9.30688-24.40064-9.30688-33.70752 0-9.30816 9.30816-9.30816 24.40064 0 33.7088L657.056 512 316.38144 852.67456c-9.30816 9.30688-9.30816 24.40064 0 33.7088 4.65408 4.65536 10.75328 6.98112 16.85376 6.98112 6.10048 0 12.19968-2.32576 16.85376-6.98112l357.5296-357.5296C716.92672 519.5456 716.92672 504.4544 707.61856 495.14624z\",\n \"p-id\": \"4833\"\n}, null)]), We = r(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"red\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\"\n}, [r(\"path\", {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"\n}, null), r(\"path\", {\n d: \"M12 9v4\"\n}, null), r(\"path\", {\n d: \"M12 17h.01\"\n}, null)]), ie = r(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\"\n}, [r(\"rect\", {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\"\n}, null), r(\"path\", {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\n}, null)]), Ge = r(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n}, [r(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"48\",\n d: \"M112 268l144 144 144-144M256 392V100\"\n}, null)]), Ze = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M938.2 671.3c-13.8 0-25 11.2-25 25v83.1c0 63.3-52.6 114.7-117.3 114.7H230.2c-64.7 0-117.3-51.5-117.3-114.7v-83.1c0-13.8-11.2-25-25-25s-25 11.2-25 25v83.1c0 90.8 75.1 164.7 167.3 164.7h565.7c92.3 0 167.3-73.9 167.3-164.7v-83.1c0-13.8-11.2-25-25-25z\",\n \"p-id\": \"7618\"\n}, null), r(\"path\", {\n d: \"M494.4 80.8c4.7-4.7 11.1-7.4 17.7-7.4h0.1c6.7 0 13 2.7 17.7 7.4l189.7 192c9.7 9.8 9.6 25.7-0.2 35.4-9.8 9.7-25.7 9.6-35.4-0.2L538.8 161v513.7c0 13.8-11.2 25-25 25s-25-11.2-25-25V157.3L338.5 308.1c-9.7 9.8-25.6 9.8-35.4 0.1-9.8-9.7-9.8-25.6-0.1-35.4l191.4-192z\",\n \"p-id\": \"7619\"\n}, null)]), et = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M842.666667 285.866667l-187.733334-187.733334c-14.933333-14.933333-32-21.333333-53.333333-21.333333H234.666667C194.133333 74.666667 160 108.8 160 149.333333v725.333334c0 40.533333 34.133333 74.666667 74.666667 74.666666h554.666666c40.533333 0 74.666667-34.133333 74.666667-74.666666V337.066667c0-19.2-8.533333-38.4-21.333333-51.2z m-44.8 44.8c-2.133333 2.133333-4.266667 0-8.533334 0h-170.666666c-6.4 0-10.666667-4.266667-10.666667-10.666667V149.333333c0-2.133333 0-6.4-2.133333-8.533333 0 0 2.133333 0 2.133333 2.133333l189.866667 187.733334z m-8.533334 554.666666H234.666667c-6.4 0-10.666667-4.266667-10.666667-10.666666V149.333333c0-6.4 4.266667-10.666667 10.666667-10.666666h311.466666c-2.133333 4.266667-2.133333 6.4-2.133333 10.666666v170.666667c0 40.533333 34.133333 74.666667 74.666667 74.666667h170.666666c4.266667 0 6.4 0 10.666667-2.133334V874.666667c0 6.4-4.266667 10.666667-10.666667 10.666666z\"\n}, null), r(\"path\", {\n d: \"M640 693.333333H341.333333c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32h298.666667c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32zM640 522.666667H341.333333c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32h298.666667c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32zM341.333333 416h85.333334c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32h-85.333334c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32z\"\n}, null)]), ae = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M557.248 511.68l135.776-135.744-45.248-45.28L512 466.432l-135.776-135.776-45.248 45.28 135.776 135.744-135.776 135.776 45.248 45.248L512 556.928l135.776 135.776 45.248-45.248-135.776-135.776zM512 64c247.136 0 448 200.864 448 448s-200.864 448-448 448S64 759.136 64 512 264.864 64 512 64z\"\n}, null)]), K = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentcolor\"\n}, [r(\"path\", {\n d: \"M511.582491 63.413262C265.134543 63.413262 64.62588 263.921925 64.62588 510.369873s200.508663 446.957635 446.957635 446.957635 446.957635-200.508663 446.957635-446.957635S758.031463 63.413262 511.582491 63.413262zM509.001713 751.859903c-98.517781 0-182.467775-62.623269-214.771505-150.056598l0.327458-0.134053c-2.007727-4.036943-3.38305-8.422833-3.38305-13.237489 0-16.647145 13.494339-30.142507 30.142507-30.142507 13.389962 0 24.358781 8.877181 28.2893 20.955264l0.422625-0.172939c23.269983 65.442478 85.645612 112.503307 158.972665 112.503307 93.106538 0 168.845523-75.738985 168.845523-168.845523s-75.738985-168.845523-168.845523-168.845523c-20.432355 0-39.874149 3.980661-58.013275 10.66899l21.248953 40.742936c2.486634 2.677992 4.0175 6.2831 4.0175 10.243295 0 8.417717-8.404414 14.921851-15.365966 15.07023-0.102331 0-0.206708 0-0.309038 0-0.220011 0-0.427742 0-0.647753-0.013303l-150.579507-6.463202c-5.372358-0.234337-10.229992-3.310396-12.716626-8.093329-2.486634-4.76963-2.236947-10.509355 0.647753-15.055904l80.890308-127.179564c2.8847-4.533246 8.006348-7.151887 13.365402-6.960529 5.372358 0.234337 10.227945 3.312442 12.71458 8.095375l18.580171 35.625382c26.629497-10.855232 55.683207-16.963347 86.168522-16.963347 126.338407 0 229.130537 102.791108 229.130537 229.130537S635.340119 751.859903 509.001713 751.859903z\"\n}, null)]), tt = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentcolor\"\n}, [r(\"path\", {\n d: \"M190.193225 471.411583c14.446014 0 26.139334-11.718903 26.139334-26.13831 0-14.44499-11.69332-26.164916-26.139334-26.164916-0.271176 0-0.490164 0.149403-0.73678 0.149403l-62.496379 0.146333c-1.425466-0.195451-2.90005-0.295735-4.373611-0.295735-19.677155 0-35.621289 16.141632-35.621289 36.114522L86.622358 888.550075c0 19.949354 15.96767 35.597753 35.670407 35.597753 1.916653 0 3.808746 0.292666 5.649674 0l61.022819 0.022513c0.099261 0 0.148379 0.048095 0.24764 0.048095 0.097214 0 0.146333-0.048095 0.24457-0.048095l0.73678 0 0-0.148379c13.413498-0.540306 24.174586-11.422144 24.174586-24.960485 0-13.55983-10.760065-24.441669-24.174586-24.981974l0-0.393973-50.949392 0 1.450025-402.275993L190.193225 471.409536z\"\n}, null), r(\"path\", {\n d: \"M926.52241 433.948343c-19.283182-31.445176-47.339168-44.172035-81.289398-45.546336-1.77032-0.246617-3.536546-0.39295-5.380544-0.39295l-205.447139-0.688685c13.462616-39.059598 22.698978-85.58933 22.698978-129.317251 0-28.349675-3.193739-55.962569-9.041934-82.542948l-0.490164 0.049119c-10.638291-46.578852-51.736315-81.31498-100.966553-81.31498-57.264215 0-95.466282 48.15065-95.466282 106.126063 0 3.241834-0.294712 6.387477 0 9.532097-2.996241 108.386546-91.240027 195.548698-196.23636 207.513194l0 54.881958-0.785899 222.227314 0 229.744521 10.709923 0 500.025271 0.222057 8.746198-0.243547c19.35686 0.049119 30.239721-4.817726 47.803749-16.116049 16.682961-10.761088 29.236881-25.50079 37.490869-42.156122 2.260483-3.341095 4.028757-7.075139 5.106298-11.20111l77.018118-344.324116c1.056052-4.053316 1.348718-8.181333 1.056052-12.160971C943.643346 476.446249 938.781618 453.944769 926.52241 433.948343zM893.82573 486.837924l-82.983993 367.783411-0.099261-0.049119c-2.555196 6.141884-6.879688 11.596106-12.872169 15.427364-4.177136 2.727111-8.773827 4.351098-13.414521 4.964058-1.49812-0.195451-3.046383 0-4.620227 0l-477.028511-0.540306-0.171915-407.408897c89.323375-40.266076 154.841577-79.670527 188.596356-173.661202 0.072655 0.024559 0.124843 0.049119 0.195451 0.072655 2.99931-9.137101 6.313799-20.73423 8.697079-33.164331 5.551436-29.185716 5.258771-58.123792 5.258771-58.123792-4.937452-37.98001 25.940812-52.965306 44.364417-52.965306 25.304316 0.860601 50.263777 33.656541 50.263777 52.326762 0 0 5.600555 27.563776 5.649674 57.190537 0.048095 37.366026-4.6673 56.847729-4.6673 56.847729l-0.466628 0c-5.872754 30.879288-16.214287 60.138682-30.464849 86.964654l0.36839 0.342808c-2.358721 4.815679-3.709485 10.220782-3.709485 15.943111 0 19.922748 19.088754 21.742187 38.765909 21.742187l238.761895 0.270153c0 0 14.666024 0.465604 14.690584 0.465604l0 0.100284c12.132318-0.638543 24.221658 5.207605 31.100322 16.409738 5.504364 9.016351 6.437619 19.6045 3.486404 28.988218L893.82573 486.837924z\"\n}, null), r(\"path\", {\n d: \"M264.827039 924.31872c0.319272 0.024559 0.441045 0.024559 0.295735-0.024559 0.243547-0.048095 0.367367-0.074701-0.295735-0.074701s-0.539282 0.026606-0.271176 0.074701C264.43409 924.343279 264.532327 924.343279 264.827039 924.31872z\"\n}, null)]), st = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentcolor\"\n}, [r(\"path\", {\n d: \"M190.208 552.576a26.176 26.176 0 0 1 0 52.288L189.44 604.8l-62.464-0.128a35.84 35.84 0 0 1-40-35.84l-0.384-433.28c0-19.968 16-35.648 35.712-35.648 1.92 0 3.84-0.256 5.632 0h62.272v0.128c13.44 0.576 24.192 11.456 24.192 24.96a25.024 25.024 0 0 1-24.192 24.96v0.448h-50.944l1.408 402.24h49.536z m736.32 37.504c-19.264 31.36-47.36 44.16-81.28 45.504a38.656 38.656 0 0 1-5.376 0.384l-205.44 0.704c13.44 39.04 22.656 85.568 22.656 129.28 0 28.416-3.2 56-9.024 82.56h-0.512a103.936 103.936 0 0 1-100.928 81.28c-57.28 0-95.488-48.128-95.488-106.112 0-3.2-0.32-6.4 0-9.536-3.008-108.352-91.264-195.52-196.224-207.488V551.68L254.08 329.6v-229.76h10.688l500.032-0.192 8.704 0.192c19.392 0 30.272 4.864 47.808 16.128 16.704 10.752 29.248 25.536 37.504 42.176 2.304 3.328 4.032 7.04 5.12 11.2l76.992 344.32a37.568 37.568 0 0 1 1.088 12.16c1.536 21.76-3.328 44.288-15.552 64.32z m-32.704-52.928l-83.008-367.744h-0.064a33.408 33.408 0 0 0-26.24-20.352c-1.536 0.192-3.072 0-4.672 0l-477.056 0.512-0.128 407.424c89.28 40.32 154.88 79.68 188.544 173.632h0.256c2.944 9.088 6.272 20.672 8.64 33.088 5.568 29.184 5.312 58.176 5.312 58.176-4.992 37.952 25.92 52.928 44.352 52.928 25.28-0.832 50.24-33.664 50.24-52.288 0 0 5.632-27.584 5.632-57.216 0.064-37.376-4.608-56.832-4.608-56.832h-0.512a307.84 307.84 0 0 0-30.464-87.04l0.384-0.256a36.16 36.16 0 0 1-3.712-16c0-19.84 19.072-21.76 38.784-21.76l238.72-0.192 14.72-0.512v-0.064c12.16 0.64 24.192-5.248 31.104-16.448a35.2 35.2 0 0 0 3.456-28.992h0.32zM267.52 96.768c2.048-0.192 2.816-0.192 1.92 0.128 1.536 0.32 2.304 0.512-1.92 0.512s-3.456-0.192-1.728-0.512c-0.768-0.32-0.192-0.32 1.728-0.128z\"\n}, null)]), it = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentcolor\"\n}, [r(\"path\", {\n d: \"M900.64 379.808l-263.072-256.032c-36.448-35.328-105.76-35.392-142.304 0.096l-327.04 319.904c-56.416 54.72-70.72 76.704-70.72 150.976l0 143.936c0 132.768 26.976 192 186.912 192l131.872 0c81.12 0 128.448-46.656 193.952-111.264l290.016-297.696c18.592-17.984 29.248-43.968 29.248-71.264C929.504 423.36 918.976 397.6 900.64 379.808zM323.008 786.752c-52.928 0-96-43.072-96-96s43.072-96 96-96 96 43.072 96 96S375.936 786.752 323.008 786.752z\"\n}, null)]), at = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentcolor\"\n}, [r(\"path\", {\n d: \"M843.251 424.407l43.828-74.898c10.194-17.946 32.596-22.158 48.956-11.598 16.298 10.499 23.44 32.658 14.223 49.566l-113.11 195.212-61.164-40.044-126.418-82.285c-16.115-11.598-20.632-34.428-10.194-51.702 9.705-17.397 31.009-23.501 47.857-13.734l89.67 59.028C748.576 295.547 615.81 180.667 461.008 180.667c-177.387 0-320.042 148.758-320.042 331.335 0 183.613 143.692 331.334 319.981 331.334 107.861 0.184 208.58-56.158 268.034-149.858 1.099-1.038 1.099-2.075 2.075-2.075 6.348-9.949 17.092-15.871 28.568-15.81 19.35 0 35.648 16.848 35.648 36.93 0 7.508-2.137 14.833-6.104 21.059-72.823 114.698-196.066 183.675-328.099 183.614-216.088 0-391.4-181.478-391.4-405.195 0-223.718 175.312-405.195 391.339-405.195 183.125-0.427 342.016 131.606 382.243 317.601z\"\n}, null)]), nt = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentcolor\"\n}, [r(\"path\", {\n d: \"M394.688 126.208a32 32 0 0 1 32-32h170.688a32 32 0 0 1 32 32v138.624h288a32 32 0 0 1 32 32v170.688a32 32 0 0 1-32 32H106.688a32 32 0 0 1-32-32V296.832a32 32 0 0 1 32-32h288V126.208z m64 32v138.624a32 32 0 0 1-32 32h-288v106.688h746.688V328.832h-288a32 32 0 0 1-32-32V158.208H458.688z\"\n}, null), r(\"path\", {\n d: \"M138.688 469.376a32 32 0 0 1 32-32h682.688a32 32 0 0 1 32 32v384a32 32 0 0 1-32 32H170.688a32 32 0 0 1-32-32v-384z m64 32v320h618.688v-320H202.688z\"\n}, null), r(\"path\", {\n d: \"M341.376 691.52a32 32 0 0 1 32 32V851.2a32 32 0 1 1-64 0v-127.68a32 32 0 0 1 32-32zM512 691.2a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0v-128a32 32 0 0 1 32-32zM682.688 691.52a32 32 0 0 1 32 32V851.2a32 32 0 1 1-64 0v-127.68a32 32 0 0 1 32-32z\"\n}, null)]);\nr(\"svg\", {\n viewBox: \"0 0 18 18\",\n fill: \"currentcolor\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [r(\"path\", {\n d: \"M5.856 17.121a.979.979 0 0 1-.327-.06.839.839 0 0 1-.283-.177.739.739 0 0 1-.187-.255.724.724 0 0 1-.07-.303l-.02-1.609a4.663 4.663 0 0 1-1.446-.455 4.252 4.252 0 0 1-.637-.401c-.199-.146-.385-.31-.553-.492a4.442 4.442 0 0 1-.45-.577 4.303 4.303 0 0 1-.327-.637 3.823 3.823 0 0 1-.206-.686 3.729 3.729 0 0 1-.064-.704V6.478c0-.261.025-.516.077-.771a4.43 4.43 0 0 1 .244-.747 4.062 4.062 0 0 1 .932-1.28c.2-.183.418-.347.65-.493.23-.145.482-.267.739-.364a4.21 4.21 0 0 1 .81-.225c.27-.054.553-.078.835-.078H8.55c.103 0 .2.018.29.054a.7.7 0 0 1 .411.376.667.667 0 0 1-.161.766.736.736 0 0 1-.25.151.764.764 0 0 1-.29.055H5.573c-.186 0-.366.012-.54.049-.18.03-.353.079-.52.145-.167.061-.328.14-.482.237-.148.091-.29.2-.418.316a2.897 2.897 0 0 0-.347.388c-.097.14-.187.286-.257.444a2.473 2.473 0 0 0-.206.977v4.287c0 .17.013.333.051.503a2.549 2.549 0 0 0 .772 1.33 2.721 2.721 0 0 0 .913.559c.167.066.347.115.527.152.18.03.36.048.546.048a.904.904 0 0 1 .61.23.848.848 0 0 1 .194.262.84.84 0 0 1 .07.303l.007.99 1.915-1.293a2.877 2.877 0 0 1 1.64-.492h2.372c.186 0 .366-.018.54-.048.18-.03.353-.08.52-.146.168-.067.329-.146.483-.237.148-.091.29-.2.418-.316.128-.121.244-.249.347-.388a2.8 2.8 0 0 0 .257-.444 2.47 2.47 0 0 0 .206-.977V8.585a.646.646 0 0 1 .225-.492.679.679 0 0 1 .244-.152.814.814 0 0 1 .585 0c.09.03.174.085.244.152a.657.657 0 0 1 .225.492V10.8c0 .261-.032.516-.083.771a4.192 4.192 0 0 1-.245.74c-.109.244-.244.468-.398.687a3.735 3.735 0 0 1-.534.6c-.2.183-.418.347-.65.493a4.134 4.134 0 0 1-.738.364 4.7 4.7 0 0 1-.81.225c-.27.054-.553.079-.836.079h-1.877c-.604 0-1.144.164-1.633.491l-2.54 1.713a.913.913 0 0 1-.514.157z\",\n fill: \"currentColor\"\n}, null), r(\"path\", {\n d: \"M15.866 4.125h-4.174c-.41 0-.741.313-.741.7 0 .387.332.7.741.7h4.174c.41 0 .742-.313.742-.7 0-.387-.332-.7-.742-.7z\",\n fill: \"currentColor\"\n}, null), r(\"path\", {\n d: \"M14.537 2.932c0-.396-.34-.717-.759-.717s-.758.32-.758.717v3.786c0 .396.34.717.758.717.42 0 .76-.321.76-.717V2.932z\",\n fill: \"currentColor\"\n}, null)]);\nconst ot = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"15393\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M896 921.6H128c-70.656 0-128-57.344-128-128V230.4c0-70.656 57.344-128 128-128h768c70.656 0 128 57.344 128 128v563.2c0 70.656-57.344 128-128 128zM128 153.6c-42.496 0-76.8 34.304-76.8 76.8v563.2c0 42.496 34.304 76.8 76.8 76.8h768c42.496 0 76.8-34.304 76.8-76.8V230.4c0-42.496-34.304-76.8-76.8-76.8H128z\",\n \"p-id\": \"15394\"\n}, null), r(\"path\", {\n d: \"M256 486.4c-70.656 0-128-57.344-128-128s57.344-128 128-128 128 57.344 128 128-57.344 128-128 128z m0-204.8c-42.496 0-76.8 34.304-76.8 76.8s34.304 76.8 76.8 76.8 76.8-34.304 76.8-76.8-34.304-76.8-76.8-76.8zM204.8 742.4c-7.68 0-15.36-3.584-20.48-10.24-8.704-11.264-6.144-27.136 5.12-35.84l181.76-136.192c21.504-15.872 49.664-19.968 74.752-9.728l198.144 79.36c9.728 3.584 20.48 1.536 27.648-5.632l129.536-129.536c10.24-10.24 26.112-10.24 36.352 0s10.24 26.112 0 36.352L708.096 660.48c-21.504 21.504-54.272 28.672-82.944 16.896l-198.144-79.36c-8.192-3.072-17.92-2.048-25.088 3.072L220.16 737.28c-4.608 3.584-10.24 5.12-15.36 5.12z\",\n \"p-id\": \"15395\"\n}, null)]), rt = r(\"svg\", {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"4645\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\"\n}, [r(\"path\", {\n d: \"M192.608008 1023.936a192 192 0 0 1-192-192v-640a192 192 0 0 1 192-192h383.296a64 64 0 0 1 0 128H192.608008a64 64 0 0 0-64 64v640a64 64 0 0 0 64 64h383.296a64 64 0 0 1 0 128z m544.896-289.6a64 64 0 0 1 0-90.432L805.280008 576H384.352008a64 64 0 1 1 0-128h420.928l-82.688-82.816a64 64 0 0 1 90.368-90.496l192 192a64.576 64.576 0 0 1 13.76 69.824 65.6 65.6 0 0 1-13.76 20.672l-176.896 177.152a64 64 0 0 1-90.368 0z\",\n \"p-id\": \"4646\"\n}, null)]);\nconst lt = /* @__PURE__ */ T({\n props: {\n message: {\n type: Object,\n required: !0\n }\n },\n setup(a) {\n return {\n ns: new A(\"ai-error-message\")\n };\n },\n render() {\n var a, e;\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"icon\")\n }, [q]), r(\"div\", {\n class: this.ns.e(\"right\")\n }, [r(\"div\", {\n class: this.ns.em(\"right\", \"header\")\n }, [(e = (a = this.$slots).header) == null ? void 0 : e.call(a)]), r(\"div\", {\n class: [this.ns.em(\"right\", \"content\"), \"pre-wrap-container\"]\n }, [r(\"p\", {\n class: this.ns.e(\"message\")\n }, [this.message.content])])])]);\n }\n});\nconst ct = /* @__PURE__ */ T({\n props: {\n message: {\n type: Object,\n required: !0\n }\n },\n setup(a) {\n const e = new A(\"chart-thought-chain\"), t = w(!1), s = k(() => {\n const n = a.message.content, l = n.indexOf(\"<think>\");\n if (l === -1)\n return;\n const h = n.indexOf(\"</think>\");\n return h === -1 ? n.slice(l + 7) : n.slice(l + 7, h);\n }), i = k(() => a.message.content.indexOf(\"</think>\") === -1);\n return {\n ns: e,\n think: s,\n isLoading: i,\n isCollapse: t,\n onCollapseChange: () => {\n t.value = !t.value;\n }\n };\n },\n render() {\n if (this.think)\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"header\"),\n onClick: this.onCollapseChange\n }, [r(\"div\", {\n class: this.ns.em(\"header\", \"left\")\n }, [r(\"div\", {\n class: [this.ns.em(\"header\", \"state-icon\"), this.ns.is(\"loading\", this.isLoading)]\n }, [this.isLoading ? Ye : Ke]), r(\"div\", {\n class: this.ns.em(\"header\", \"title\")\n }, [this.isLoading ? \"思考中...\" : \"思考完成\"])]), r(\"div\", {\n class: this.ns.em(\"header\", \"right\")\n }, [r(\"div\", {\n class: this.ns.em(\"header\", \"collapse-icon\")\n }, [this.isCollapse ? te : Qe])])]), !this.isCollapse && r(\"div\", {\n class: this.ns.e(\"content\")\n }, [this.think])]);\n }\n});\nconst ht = /* @__PURE__ */ T({\n props: {\n toolCall: {\n type: Object,\n required: !0\n }\n },\n setup(a) {\n const e = new A(\"chart-tool-call-item\"), t = w(!1), s = () => {\n t.value = !t.value;\n }, i = (c) => {\n c.stopPropagation(), window.ibiz.util.text.copy(JSON.stringify(a.toolCall, void 0, 2)), window.message.success(\"拷贝成功\");\n }, o = (c) => typeof c == \"string\" ? c.includes(\"Failed\") || c.includes(\"Error\") || c.includes(\"ERR_\") ? '<span class=\"'.concat(e.e(\"error\"), '\">\"').concat(c, '\"</span>') : '<span class=\"'.concat(e.e(\"string\"), '\">\"').concat(c, '\"</span>') : typeof c == \"number\" ? '<span class=\"'.concat(e.e(\"number\"), '\">').concat(c, \"</span>\") : typeof c == \"boolean\" ? '<span class=\"'.concat(e.e(\"boolean\"), '\">').concat(c, \"</span>\") : c === null ? '<span class=\"'.concat(e.e(\"null\"), '\">null</span>') : \"\", n = (c, u = 0) => {\n const d = \" \".repeat(u), p = [];\n if (Array.isArray(c)) {\n if (c.length === 0)\n return [\"\".concat(d, '<span class=\"').concat(e.e(\"array\"), '\">[]</span>')];\n p.push(\"\".concat(d, '<span class=\"').concat(e.e(\"array\"), '\">[</span>')), c.forEach((f, m) => {\n const b = n(f, u + 1), y = m < c.length - 1 ? \",\" : \"\";\n typeof f == \"object\" && f !== null ? (p.push(...b.slice(0, -1)), p.push(\"\".concat(b[b.length - 1]).concat(y))) : p.push(\"\".concat(b[0]).concat(y));\n }), p.push(\"\".concat(d, '<span class=\"').concat(e.e(\"array\"), '\">]</span>'));\n } else if (typeof c == \"object\" && c !== null) {\n const f = Object.keys(c);\n if (f.length === 0)\n return [\"\".concat(d, '<span class=\"').concat(e.e(\"property\"), '\">{}</span>')];\n p.push(\"\".concat(d, '<span class=\"').concat(e.e(\"property\"), '\">{</span>')), f.forEach((m, b) => {\n const y = c[m], S = b < f.length - 1 ? \",\" : \"\", E = '<span class=\"'.concat(e.e(\"json-key\"), '\">\"').concat(m, '\":</span>');\n if (typeof y == \"object\" && y !== null) {\n const C = n(y, u + 1);\n p.push(\"\".concat(d, \" \").concat(E, \" \").concat(C[0].trim())), C.length > 1 && (p.push(...C.slice(1, -1)), p.push(\"\".concat(C[C.length - 1]).concat(S)));\n } else {\n const C = o(y);\n p.push(\"\".concat(d, \" \").concat(E, \" \").concat(C).concat(S));\n }\n }), p.push(\"\".concat(d, '<span class=\"').concat(e.e(\"property\"), '\">}</span>'));\n } else\n p.push(\"\".concat(d).concat(o(c)));\n return p;\n }, l = w([]), h = () => {\n const c = n(a.toolCall, 0);\n l.value = c.map((u, d) => '<span class=\"'.concat(e.em(\"code-line\", \"line-number\"), '\">').concat(d + 1, \"</span>\").concat(u));\n };\n return z(() => {\n h();\n }), {\n ns: e,\n lines: l,\n isExpanded: t,\n onCopy: i,\n handleExpandChange: s\n };\n },\n render() {\n var a;\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"header\"),\n onClick: this.handleExpandChange\n }, [r(\"div\", {\n class: this.ns.e(\"header-left\")\n }, [r(\"div\", {\n class: this.ns.em(\"header-left\", \"caption\")\n }, [this.toolCall.name]), r(\"div\", {\n class: this.ns.em(\"header-left\", \"desc\")\n }, [(a = this.toolCall.parameters) == null ? void 0 : a.desc])]), r(\"div\", {\n class: this.ns.e(\"header-right\")\n }, [this.toolCall.error && r(\"div\", {\n class: this.ns.em(\"header-right\", \"error\")\n }, [r(\"span\", {\n class: this.ns.em(\"header-right\", \"error-text\")\n }, [H(\"发生错误\")]), r(\"div\", {\n class: this.ns.em(\"header-right\", \"icon\")\n }, [We])]), r(\"div\", {\n onClick: this.onCopy,\n class: this.ns.em(\"header-right\", \"icon\")\n }, [ie]), r(\"div\", {\n class: this.ns.em(\"header-right\", \"icon\")\n }, [this.isExpanded ? te : se])])]), this.isExpanded && r(\"div\", {\n class: this.ns.e(\"content\")\n }, [this.lines.map((e) => r(\"div\", {\n class: this.ns.e(\"code-line\"),\n innerHTML: e\n }, null))])]);\n }\n});\nconst ut = /* @__PURE__ */ T({\n props: {\n toolCalls: {\n type: Array,\n required: !0\n }\n },\n setup(a) {\n const e = new A(\"chart-tool-call\"), t = w(!1), s = k(() => a.toolCalls.length > 4), i = k(() => s.value && !t.value ? a.toolCalls.slice(0, 4) : a.toolCalls);\n return {\n ns: e,\n items: i,\n showToggle: s,\n isExpanded: t,\n handleToggle: () => {\n t.value = !t.value;\n }\n };\n },\n render() {\n if (this.toolCalls.length)\n return r(\"div\", {\n class: this.ns.b()\n }, [this.items.map((a) => r(ht, {\n toolCall: a\n }, null)), this.showToggle && r(\"div\", {\n class: this.ns.e(\"toggle\"),\n onClick: this.handleToggle\n }, [this.isExpanded ? \"收起工具调用\" : \"展开全部 \".concat(this.toolCalls.length, \" 个工具调用\")])]);\n }\n});\nconst dt = /* @__PURE__ */ T({\n props: {\n suggestions: {\n type: Array,\n required: !0\n }\n },\n emits: {\n itemClick: (a, e) => !0\n },\n setup(a, {\n emit: e\n }) {\n return {\n ns: new A(\"chart-suggestion\"),\n onItemClick: (i, o) => {\n e(\"itemClick\", i, o);\n }\n };\n },\n render() {\n return r(\"div\", {\n class: this.ns.b()\n }, [this.suggestions.map((a) => r(\"div\", {\n onClick: (e) => this.onItemClick(a, e),\n class: [this.ns.e(\"item\"), this.ns.em(\"item\", a.type)]\n }, [a.metadata.content_name, se]))]);\n }\n});\nconst pt = /* @__PURE__ */ T({\n props: {\n controller: {\n type: Object,\n required: !0\n },\n message: {\n type: Object,\n required: !0\n }\n },\n setup(a) {\n const e = new A(\"ai-markdown-message\"), t = B(), s = w(null), i = (n) => {\n let l = \"\", h;\n if (!n)\n return {\n content: l,\n think: h\n };\n const c = n.indexOf(\"<think>\"), u = n.indexOf(\"</think>\");\n return c !== -1 ? (h = u === -1 ? n.slice(c + 7) : n.slice(c + 7, u), l = u === -1 ? \"\" : n.slice(u + 8)) : l = n.replace(new RegExp(\"\\\\<tool_call\\\\>[^]*?\\\\<\\\\/tool_call\\\\>\", \"gs\"), \"\").trim(), {\n think: h,\n content: l\n };\n };\n P(() => a.message.content, () => {\n var l;\n const {\n content: n\n } = i(a.message.content);\n (l = s.value) == null || l.setMarkdown(n);\n }, {\n immediate: !0\n });\n const o = () => {\n const {\n content: n\n } = i(a.message.content);\n s.value = new W({\n id: t,\n value: n,\n editor: {\n defaultModel: \"previewOnly\"\n },\n previewer: {\n enablePreviewerBubble: !1\n },\n engine: {\n syntax: {\n table: {\n enableChart: !1,\n externals: [\"echarts\"]\n }\n }\n }\n });\n };\n return z(() => {\n o();\n }), {\n ns: e,\n UUID: t\n };\n },\n render() {\n var a, e;\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"icon\")\n }, [q]), r(\"div\", {\n class: this.ns.e(\"right\")\n }, [r(\"div\", {\n class: this.ns.em(\"right\", \"header\")\n }, [(e = (a = this.$slots).header) == null ? void 0 : e.call(a)]), r(\"div\", {\n class: [this.ns.em(\"right\", \"content\"), \"pre-wrap-container\"]\n }, [this.message.toolcalls && r(ut, {\n class: this.ns.e(\"tool-call\"),\n toolCalls: this.message.toolcalls\n }, null), r(ct, {\n message: this.message,\n class: this.ns.e(\"thought\")\n }, null), r(\"div\", {\n class: this.ns.e(\"message\"),\n id: this.UUID\n }, null)]), r(\"div\", {\n class: this.ns.em(\"right\", \"footer\")\n }, [this.message.suggestions && r(dt, {\n suggestions: this.message.suggestions,\n onItemClick: (t, s) => {\n this.controller.handleSuggestionClick(this.message, t, s);\n }\n }, null)])])]);\n }\n});\nconst gt = /* @__PURE__ */ T({\n props: {\n message: {\n type: Object,\n required: !0\n }\n },\n setup() {\n return {\n ns: new A(\"ai-unknown-message\")\n };\n },\n render() {\n var a, e;\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"icon\")\n }, [q]), r(\"div\", {\n class: this.ns.e(\"right\")\n }, [r(\"div\", {\n class: this.ns.em(\"right\", \"header\")\n }, [(e = (a = this.$slots).header) == null ? void 0 : e.call(a)]), r(\"div\", {\n class: [this.ns.em(\"right\", \"content\"), \"pre-wrap-container\"]\n }, [r(\"p\", {\n class: this.ns.e(\"message\")\n }, [H(\"暂未支持的消息类型: \"), this.message.type])])])]);\n }\n});\nconst mt = /* @__PURE__ */ T({\n props: {\n material: {\n type: Object,\n required: !0\n },\n readonly: {\n type: Boolean,\n default: !1\n }\n },\n emits: {\n remove: () => !0\n },\n setup(a, {\n emit: e\n }) {\n const t = new A(\"chart-material-item\"), s = () => {\n e(\"remove\");\n }, i = k(() => {\n const o = a.material.metadata.state, n = {\n color: \"#ff4d4f\",\n label: \"未知状态\"\n };\n switch (o) {\n case \"successed\":\n Object.assign(n, {\n color: \"#1890ff\",\n label: \"上传成功\"\n });\n break;\n case \"uploading\":\n Object.assign(n, {\n color: \"#52c41a\",\n label: \"上传中\"\n });\n break;\n case \"failed\":\n Object.assign(n, {\n color: \"#ff4d4f\",\n label: \"上传失败\"\n });\n break;\n }\n return n;\n });\n return {\n ns: t,\n state: i,\n onRemove: s\n };\n },\n render() {\n return r(\"div\", {\n class: this.ns.b()\n }, [!this.readonly && r(\"div\", {\n class: this.ns.e(\"icon\"),\n onClick: this.onRemove\n }, [ae]), r(\"div\", {\n class: this.ns.e(\"left\")\n }, [et]), r(\"div\", {\n class: this.ns.e(\"right\")\n }, [r(\"div\", {\n class: this.ns.e(\"caption\")\n }, [this.material.data.name]), r(\"div\", {\n class: this.ns.e(\"metadata\")\n }, [r(\"div\", {\n class: this.ns.em(\"metadata\", \"size\")\n }, [this.material.metadata.size, H(\"B\")]), r(\"div\", {\n class: this.ns.em(\"metadata\", \"state\"),\n style: {\n color: this.state.color\n }\n }, [this.state.label])])])]);\n }\n});\nconst ne = /* @__PURE__ */ T({\n props: {\n materials: {\n type: Array,\n required: !0\n },\n readonly: {\n type: Boolean,\n default: !1\n }\n },\n emits: {\n remove: (a) => !0\n },\n setup(a, {\n emit: e\n }) {\n return {\n ns: new A(\"chart-material\"),\n onRemove: (i) => {\n e(\"remove\", i);\n }\n };\n },\n render() {\n if (this.materials.length)\n return r(\"div\", {\n class: this.ns.b()\n }, [this.materials.map((a) => r(mt, {\n material: a,\n readonly: this.readonly,\n onRemove: () => this.onRemove(a)\n }, null))]);\n }\n});\nconst ft = /* @__PURE__ */ T({\n props: {\n controller: {\n type: Object,\n required: !0\n },\n message: {\n type: Object,\n required: !0\n }\n },\n setup(a) {\n const e = new A(\"ai-user-message\"), t = B(), s = w(null), i = j.parseMixedContent(a.message.content), o = () => {\n s.value = new W({\n id: t,\n value: i.remainingText,\n editor: {\n defaultModel: \"previewOnly\"\n },\n previewer: {\n enablePreviewerBubble: !1\n },\n engine: {\n syntax: {\n table: {\n enableChart: !1,\n externals: [\"echarts\"]\n }\n }\n }\n });\n };\n return z(() => {\n o();\n }), {\n ns: e,\n UUID: t,\n material: i\n };\n },\n render() {\n var a, e;\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"icon\")\n }, [Je]), r(\"div\", {\n class: this.ns.e(\"right\")\n }, [r(\"div\", {\n class: this.ns.em(\"right\", \"header\")\n }, [(e = (a = this.$slots).header) == null ? void 0 : e.call(a)]), r(\"div\", {\n class: [this.ns.em(\"right\", \"content\"), \"pre-wrap-container\"]\n }, [this.material.hasResources && r(ne, {\n readonly: !0,\n class: this.ns.e(\"material\"),\n materials: this.material.resources\n }, null), r(\"div\", {\n class: this.ns.e(\"message\"),\n id: this.UUID\n }, null)])])]);\n }\n});\nconst vt = /* @__PURE__ */ T({\n props: {\n // 滚动目标:选择器 | DOM 元素\n target: {\n type: [String, HTMLElement],\n default: \"\"\n },\n // 右侧距离\n right: {\n type: [Number, String],\n default: \"1rem\"\n },\n // 底部距离\n bottom: {\n type: [Number, String],\n default: \"1rem\"\n },\n // 显示阈值(滚动高度超过该值才显示)\n offset: {\n type: Number,\n default: 200\n }\n },\n setup(a) {\n const e = new A(\"back-bottom\"), t = w(!1), s = w(), i = w(), o = () => {\n var c;\n if (a.target) {\n if (typeof a.target == \"string\") {\n const u = document.querySelector(a.target);\n if (u)\n return u;\n } else if (a.target instanceof HTMLElement)\n return a.target;\n }\n return (c = i.value) == null ? void 0 : c.parentElement;\n }, n = k(() => ({\n right: X(a.right) ? a.right : \"\".concat(a.right, \"px\"),\n bottom: X(a.bottom) ? a.bottom : \"\".concat(a.bottom, \"px\")\n })), l = () => {\n const c = s.value;\n c && setTimeout(() => {\n const {\n scrollTop: u,\n scrollHeight: d,\n clientHeight: p\n } = c, f = d - (u + p) > a.offset;\n t.value = f;\n }, 1e3);\n }, h = () => {\n if (!s.value)\n return;\n const c = s.value;\n c == null || c.scrollTo({\n top: c.scrollHeight,\n behavior: \"smooth\"\n });\n };\n return z(async () => {\n var c;\n await _(), s.value = o(), (c = s.value) == null || c.addEventListener(\"scroll\", l), l();\n }), P(() => a.target, async () => {\n await _(), s.value = o();\n }), ge(() => {\n var c;\n (c = s.value) == null || c.removeEventListener(\"scroll\", l);\n }), {\n ns: e,\n btnRef: i,\n isShow: t,\n buttonStyle: n,\n scrollToBottom: h\n };\n },\n render() {\n return r(\"div\", {\n ref: \"btnRef\",\n class: [this.ns.b(), this.ns.is(\"visible\", this.isShow)],\n style: this.buttonStyle,\n onClick: this.scrollToBottom\n }, [Ge]);\n }\n});\nfunction oe(a) {\n return { handleItemClick: (t, s) => {\n const i = {\n ...a.data\n };\n if (a.data instanceof L ? (Object.assign(i, { topic: a.controller.topic }), i.msg.realcontent = a.data.realcontent) : (i.data || (i.data = {}), Object.assign(i.data, {\n messages: a.controller.messages.value\n })), s.onClick && typeof s.onClick == \"function\")\n s.onClick(\n t,\n s,\n a.controller.context,\n a.controller.params,\n i\n );\n else {\n const { extendToolbarClick: o } = a.controller.opts;\n o && typeof o == \"function\" && o(\n t,\n s,\n a.controller.context,\n a.controller.params,\n i\n );\n }\n } };\n}\nconst N = /* @__PURE__ */ T({\n props: {\n model: {\n type: Object,\n required: !0\n },\n data: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: !1\n }\n },\n emits: {\n click: (a, e) => !0\n },\n setup(a, {\n emit: e\n }) {\n const t = new A(\"chat-toolbar-item\"), s = (l) => typeof l.hidden == \"function\" ? l.hidden(a.data) : l.hidden === !0, i = (l) => a.disabled ? !0 : typeof l.disabled == \"function\" ? l.disabled(a.data) : l.disabled === !0;\n return {\n ns: t,\n isHidden: s,\n isDisabled: i,\n handleItemClick: (l, h) => {\n i(h) || e(\"click\", l, h);\n },\n renderIcon: (l) => {\n var h, c, u, d;\n return typeof l.icon == \"function\" ? l.icon() : (h = l.icon) != null && h.showIcon && ((c = l.icon) != null && c.cssClass) ? r(\"i\", {\n class: l.icon.cssClass\n }, null) : (u = l.icon) != null && u.showIcon && ((d = l.icon) != null && d.imagePath) ? Me(l.icon.imagePath) ? r(\"div\", {\n innerHTML: l.icon.imagePath\n }, null) : r(\"img\", {\n src: l.icon.imagePath\n }, null) : null;\n }\n };\n },\n render() {\n return this.isHidden(this.model) ? null : r(\"div\", {\n class: [this.ns.b(), this.ns.is(\"disabled\", this.isDisabled(this.model)), \"\".concat(this.model.customClass || \"\")]\n }, [r(\"div\", {\n title: this.model.title,\n class: this.ns.e(\"content\"),\n onClick: (a) => this.handleItemClick(a, this.model)\n }, [r(\"div\", {\n class: this.ns.em(\"content\", \"icon\")\n }, [this.renderIcon(this.model)]), r(\"div\", {\n class: this.ns.em(\"content\", \"label\")\n }, [this.model.label])])]);\n }\n});\nconst Ct = /* @__PURE__ */ T({\n props: {\n controller: {\n type: Object,\n required: !0\n },\n data: {\n type: Object\n },\n items: {\n type: Array,\n default: () => []\n }\n },\n setup(a) {\n const e = new A(\"chat-input-toolbar\"), {\n handleItemClick: t\n } = oe(a), s = [{\n label: \"重置对话\",\n title: \"重置对话\",\n icon: () => at,\n onClick: () => {\n a.controller.resetTopic();\n }\n }, {\n label: \"清空对话\",\n title: \"清空对话\",\n icon: () => nt,\n onClick: () => {\n a.controller.clearTopic();\n }\n }];\n return (() => {\n s.push(...a.items);\n })(), {\n ns: e,\n toolbarItems: s,\n handleItemClick: t\n };\n },\n render() {\n return r(\"div\", {\n class: this.ns.b()\n }, [r(\"div\", {\n class: this.ns.e(\"wrapper\")\n }, [this.toolbarItems.map((a) => r(N, {\n data: this.data,\n model: a,\n disabled: !1,\n onClick: this.handleItemClick\n }, null))])]);\n }\n});\nconst bt = /* @__PURE__ */ T({\n props: {\n controller: {\n type: Object,\n required: !0\n },\n data: {\n type: Object,\n required: !0\n },\n items: {\n type: Array,\n default: () => []\n },\n enableBackFill: {\n type: Boolean,\n default: !0\n }\n },\n setup(a) {\n const e = new A(\"chat-message-toolbar\"), {\n handleItemClick: t\n } = oe(a), s = w([]), i = w([]), o = [{\n label: \"刷新\",\n title: \"刷新\",\n icon: () => K,\n onClick: () => {\n a.controller.refreshMessage(a.data);\n }\n }, {\n label: \"删除\",\n title: \"删除\",\n hidden: () => {\n var d;\n return !((d = a.data) != null && d.realmessageid);\n },\n icon: () => ae,\n onClick: () => {\n a.controller.deleteMessage(a.data);\n }\n }, {\n label: \"复制\",\n title: \"复制\",\n icon: () => ie,\n onClick: () => {\n a.controller.copyMessage(a.data);\n }\n }];\n a.enableBackFill && o.unshift({\n label: \"回填\",\n title: \"回填\",\n icon: () => it,\n onClick: () => {\n a.controller.backfill(a.data);\n }\n });\n const n = [{\n label: \"刷新\",\n title: \"刷新\",\n icon: () => K,\n onClick: () => {\n a.controller.refreshMessage(a.data, !0);\n }\n }], l = () => a.data.state === 20 && a.data.completed !== !0 || a.controller.resourceMode !== \"REMOTE\" || !a.data.realmessageid || a.controller.currentTopicDisableStorage, h = [{\n id: \"islike\",\n label: \"点赞\",\n title: \"点赞\",\n icon: () => tt,\n onClick: () => {\n a.controller.messageLike(a.data._origin);\n },\n hidden: () => l()\n }, {\n id: \"isdislike\",\n label: \"点踩\",\n title: \"点踩\",\n icon: () => st,\n onClick: () => {\n a.controller.messageDisLike(a.data._origin);\n },\n hidden: () => l()\n }];\n (() => {\n switch (a.data.type) {\n case \"DEFAULT\":\n a.data.role === \"ASSISTANT\" ? (s.value = [...h], i.value = [...o, ...a.items]) : i.value = [...n];\n break;\n case \"ERROR\":\n i.value = [...o, ...a.items];\n break;\n }\n })();\n const u = k(() => {\n var d, p;\n return ((d = a.data) == null ? void 0 : d.state) === 20 && ((p = a.data) == null ? void 0 : p.completed) !== !0;\n });\n return {\n ns: e,\n isLoadding: u,\n topItems: s,\n centerItems: i,\n handleItemClick: t\n };\n },\n render() {\n return r(\"div\", {\n ref: \"btnRef\",\n class: this.ns.b()\n }, [this.topItems.length ? r(\"div\", {\n class: this.ns.e(\"top\")\n }, [this.topItems.map((a) => {\n const e = a.id === \"islike\" && this.data.islike === \"1\" || a.id === \"isdislike\" && this.data.isdislike === \"1\";\n return r(N, {\n data: this.data,\n model: a,\n disabled: this.isLoadding,\n class: [this.ns.em(\"top\", \"item\"), this.ns.is(\"actived\", !!e)],\n onClick: this.handleItemClick\n }, null);\n })]) : null, this.centerItems.length ? r(\"div\", {\n class: this.ns.e(\"center\")\n }, [this.centerItems.map((a) => r(N, {\n data: this.data,\n model: a,\n disabled: this.isLoadding,\n onClick: this.handleItemClick\n }, null))]) : null]);\n }\n});\nconst wt = /* @__PURE__ */ T({\n emits: {\n close: () => !0\n },\n setup(a, {\n emit: e\n }) {\n return {\n ns: new A(\"custom-modal\"),\n handleMaskClick: () => {\n e(\"close\");\n }\n };\n },\n render() {\n var a, e;\n return r(\"div\", {\n class: this.ns.b(),\n onClick: this.handleMaskClick\n }, [r(\"div\", {\n class: this.ns.e(\"mask\")\n }, null), r(\"div\", {\n id: \"modal-wrapper\",\n class: this.ns.e(\"wrapper\")\n }, [(e = (a = this.$slots).default) == null ? void 0 : e.call(a)])]);\n }\n});\nfunction yt(a) {\n const e = w();\n let t;\n const s = (l) => {\n if (!a.value || !a.value.$el)\n return;\n const h = 6;\n let c, u;\n l.touches && l.touches[0] ? (c = l.touches[0].clientX, u = l.touches[0].clientY) : (c = l.clientX, u = l.clientY);\n let d = c + h, p = u + h;\n const f = a.value.$el.querySelector(\"#modal-wrapper\");\n if (!f)\n return;\n const m = f.getBoundingClientRect(), b = m.width, y = m.height, S = window.innerWidth, E = window.innerHeight, C = 8;\n d + b + C > S ? d = c - b - h : d < C && (d = C), p + y + C > E ? p = u - y - h : p < C && (p = C), f.style.top = \"\".concat(p, \"px\"), f.style.left = \"\".concat(d, \"px\"), f.style.visibility = \"visible\";\n };\n return { message: e, handleTouchStart: (l, h) => {\n clearTimeout(t), t = setTimeout(() => {\n e.value = h, _(() => s(l));\n }, 500);\n }, handleTouchEnd: () => {\n clearTimeout(t);\n }, closeToolbar: () => {\n e.value = void 0;\n } };\n}\nconst Tt = /* @__PURE__ */ T({\n props: {\n controller: {\n type: Object,\n required: !0\n },\n toolbarItems: {\n type: Array\n },\n enableBackFill: {\n type: Boolean,\n default: !0\n }\n },\n setup(a) {\n const e = new A(\"chat-messages\"), t = w(), s = w(), {\n message: i,\n handleTouchStart: o,\n handleTouchEnd: n,\n closeToolbar: l\n } = yt(s), h = 5, c = w(h), u = w(!1), d = w(!0), p = w(!1), {\n messages: f\n } = a.controller, m = k(() => {\n const C = Math.max(0, f.value.length - c.value);\n return f.value.slice(C);\n }), b = k(() => c.value < f.value.length), y = () => {\n const C = t.value;\n C && (p.value = !0, setTimeout(() => {\n C.scrollTo({\n top: C.scrollHeight,\n behavior: \"auto\"\n }), p.value = !1;\n }, 500));\n };\n return P(() => f.value, () => {\n d.value && y();\n }), {\n ns: e,\n message: i,\n messages: f,\n modalRef: s,\n containerRef: t,\n visibleMessages: m,\n handleScroll: () => {\n if (p.value)\n return;\n const C = t.value;\n if (!C)\n return;\n const {\n scrollTop: U,\n scrollHeight: re,\n clientHeight: le\n } = C;\n U < 100 && !u.value && b.value && (u.value = !0, setTimeout(() => {\n c.value = Math.min(c.value + h, f.value.length);\n const he = C.scrollHeight;\n setTimeout(() => {\n const ue = C.scrollHeight;\n C.scrollTop = ue - he + C.scrollTop, u.value = !1;\n }, 0);\n }, 300));\n const ce = re - (U + le) < 50;\n d.value = ce;\n },\n closeToolbar: l,\n renderMessage: (C) => {\n switch (C.type) {\n case \"DEFAULT\":\n return C.role === \"ASSISTANT\" ? r(pt, {\n message: C,\n controller: a.controller\n }, null) : r(ft, {\n message: C,\n controller: a.controller\n }, null);\n case \"ERROR\":\n return r(lt, {\n message: C\n }, null);\n default:\n return r(gt, {\n message: C\n }, null);\n }\n },\n handleTouchStart: o,\n handleTouchEnd: n\n };\n },\n render() {\n return r(\"div\", {\n ref: \"containerRef\",\n class: this.ns.b(),\n onScroll: this.handleScroll\n }, [this.visibleMessages.map((a) => r(\"div\", {\n key: a.messageid,\n class: this.ns.e(\"item\"),\n onMouseup: this.handleTouchEnd,\n onTouchend: this.handleTouchEnd,\n onMousedown: (e) => this.handleTouchStart(e, a),\n onTouchstart: (e) => this.handleTouchStart(e, a)\n }, [this.renderMessage(a)])), r(vt, null, null), this.message && r(wt, {\n ref: \"modalRef\",\n onClose: this.closeToolbar\n }, {\n default: () => [r(bt, {\n data: this.message,\n items: this.toolbarItems,\n controller: this.controller,\n enableBackFill: this.enableBackFill\n }, null)]\n })]);\n }\n});\nconst At = /* @__PURE__ */ T({\n props: {\n controller: {\n type: Object,\n required: !0\n },\n toolbarItems: {\n type: Array\n }\n },\n setup(a) {\n const e = new A(\"chat-input\"), t = w([]), s = w(\"\"), i = w(!1), o = w(), n = k(() => a.controller.isLoading.value), l = () => {\n const f = window.SpeechRecognition || window.webkitSpeechRecognition;\n f && (o.value = new f(), o.value.onstart = () => {\n i.value = !0;\n }, o.value.onend = () => {\n i.value = !1;\n }, o.value.onresult = (m) => {\n var y, S, E;\n const b = (E = (S = (y = m.results) == null ? void 0 : y[0]) == null ? void 0 : S[0]) == null ? void 0 : E.transcript;\n b && (s.value += \"\".concat(b));\n });\n };\n return z(() => {\n l();\n }), {\n ns: e,\n message: s,\n isLoading: n,\n recording: i,\n imageList: t,\n uploadImage: async () => {\n const f = await window.ibiz.util.file.chooseFileAndUpload(a.controller.context, a.controller.params, {}, {\n multiple: !0,\n accept: \"image/*\",\n extraParams: {\n enableNoAccess: !0\n }\n });\n if (!f || !Array.isArray(f))\n return;\n const {\n downloadUrl: m\n } = window.ibiz.util.file.calcFileUpDownUrl(a.controller.context, a.controller.params, {}, {\n enableNoAccess: !0\n });\n f.forEach((b) => {\n t.value.push({\n isImage: !0,\n name: b.name,\n url: m.replace(\"%fileId%\", b.fileid)\n });\n });\n },\n onSendMessage: async () => {\n if (n.value)\n await a.controller.abortQuestion();\n else {\n const f = t.value.map((b) => \".concat(b.url, \")\")).join(\"\\n\"), m = \"\".concat(f, \"\\n\").concat(s.value);\n s.value = \"\", t.value = [], await a.controller.question(m);\n }\n },\n uploadMaterial: async (f) => {\n await He.getMaterialHelper(\"ossfile\", a.controller).excuteAction(f);\n },\n onRemoveMaterial: (f) => {\n a.controller.deleteMaterial(f);\n },\n onSpeechRecognition: () => {\n o.value && (i.value ? o.value.end() : o.value.start());\n }\n };\n },\n render() {\n return r(\"div\", {\n class: this.ns.b()\n }, [r(ne, {\n class: this.ns.e(\"material\"),\n materials: this.controller.materials.value,\n onRemove: this.onRemoveMaterial\n }, null), r(me(\"van-uploader\"), {\n previewSize: \"4rem\",\n showUpload: !1,\n modelValue: this.imageList,\n \"onUpdate:modelValue\": (a) => this.imageList = a,\n class: this.ns.e(\"image\")\n }, null), r(\"div\", {\n class: this.ns.e(\"content\")\n }, [r(\"div\", {\n class: [this.ns.e(\"icon\"), this.ns.em(\"icon\", \"voice\"), this.ns.is(\"recording\", this.recording)],\n onClick: this.onSpeechRecognition\n }, [this.recording ? Ue : Pe]), fe(r(\"textarea\", {\n rows: 1,\n \"onUpdate:modelValue\": (a) => this.message = a,\n placeholder: \"输入消息...\",\n class: this.ns.e(\"input\")\n }, null), [[ve, this.message]]), r(\"div\", {\n class: [this.ns.e(\"icon\"), this.ns.em(\"icon\", \"image\")],\n onClick: this.uploadImage\n }, [ot]), r(\"div\", {\n class: [this.ns.e(\"icon\"), this.ns.em(\"icon\", \"upload\")],\n onClick: this.uploadMaterial\n }, [Ze]), r(\"div\", {\n class: [this.ns.e(\"icon\"), this.ns.em(\"icon\", \"send\"), this.ns.is(\"disabled\", !this.message && !this.isLoading)],\n onClick: this.onSendMessage\n }, [this.isLoading ? Xe : Ve])])]);\n }\n});\nconst Q = /* @__PURE__ */ T({\n props: {\n enableBackFill: {\n type: Boolean,\n default: !0\n },\n aiTopic: {\n type: Object,\n required: !0\n },\n aiChat: {\n type: Object,\n required: !0\n },\n openMode: {\n type: String,\n default: \"default\"\n },\n caption: {\n type: String,\n default: \"AI助手\"\n },\n contentToolbarItems: {\n type: Array\n },\n footerToolbarItems: {\n type: Array\n },\n questionToolbarItems: {\n type: Array\n },\n containerOptions: {\n type: Object\n },\n autoClose: {\n type: Object\n }\n },\n emits: {\n close: () => !0\n },\n setup(a, {\n emit: e\n }) {\n var n;\n const t = new A(\"chat-container\"), s = ((n = a.containerOptions) == null ? void 0 : n.zIndex) || 10, i = () => {\n e(\"close\");\n };\n return a.aiChat.evt.on(\"onCompleteMessage\", () => {\n if (a.autoClose) {\n const {\n mode: l,\n duration: h = 3\n } = a.autoClose;\n switch (l) {\n case \"close\":\n i();\n break;\n case \"closetime\":\n setTimeout(() => {\n i();\n }, h * 1e3);\n break;\n }\n }\n }), {\n ns: t,\n zIndex: s,\n onClose: i,\n onClickOverlay: () => {\n a.openMode !== \"default\" && i();\n }\n };\n },\n render() {\n return r(\"div\", {\n style: {\n zIndex: this.zIndex\n },\n class: [this.ns.b(), this.ns.e(\"overlay\")],\n onClick: this.onClickOverlay\n }, [r(\"div\", {\n class: [this.ns.e(\"dialog\"), this.ns.em(\"dialog\", this.openMode)],\n onClick: (a) => a.stopPropagation()\n }, [r(\"div\", {\n class: this.ns.e(\"header\")\n }, [r(\"div\", {\n class: this.ns.em(\"header\", \"left\")\n }, [r(\"div\", {\n class: this.ns.em(\"header\", \"icon\")\n }, [q]), r(\"div\", {\n class: this.ns.em(\"header\", \"caption\")\n }, [this.caption])]), r(\"div\", {\n class: this.ns.em(\"header\", \"reght\")\n }, [r(\"div\", {\n class: this.ns.e(\"icon\"),\n onClick: this.onClose\n }, [rt])])]), r(\"div\", {\n class: this.ns.e(\"content\")\n }, [r(Tt, {\n controller: this.aiChat,\n toolbarItems: this.contentToolbarItems,\n enableBackFill: this.enableBackFill\n }, null)]), r(\"div\", {\n class: this.ns.e(\"footer\")\n }, [r(Ct, {\n data: this.aiTopic.activedTopic.value,\n controller: this.aiChat,\n items: this.footerToolbarItems\n }, null), r(At, {\n controller: this.aiChat,\n toolbarItems: this.questionToolbarItems\n }, null)])])]);\n }\n});\nclass It {\n /**\n * Creates an instance of ChatController.\n * @author tony001\n * @date 2025-02-24 11:02:20\n */\n constructor() {\n /**\n * @description 应用\n * @private\n * @type {(App | null)}\n * @memberof ChatController\n */\n v(this, \"App\", null);\n /**\n * 聊天框容器\n *\n * @author chitanda\n * @date 2023-10-13 17:10:03\n * @protected\n * @type {HTMLDivElement}\n */\n v(this, \"container\");\n /**\n * 默认模式(聊天框)和话题模式(支持多话题切换),聊天框为默认模式\n *\n * @author tony001\n * @date 2025-02-20 16:02:50\n * @protected\n * @type {('DEFAULT' | 'TOPIC')}\n */\n v(this, \"mode\", \"DEFAULT\");\n /**\n * 资源配置数据\n */\n v(this, \"resourceOptions\");\n /**\n * 容器配置备份\n *\n * @author tony001\n * @date 2025-02-24 11:02:49\n * @protected\n * @type {(IContainerOptions | undefined)}\n */\n v(this, \"backupChatOptions\");\n /**\n * 话题控制器\n *\n * @author tony001\n * @date 2025-02-23 16:02:56\n * @public\n * @type {AITopicController}\n */\n v(this, \"aiTopic\");\n /**\n * 话题map\n *\n * @private\n * @type {Map<string, AIChatController>}\n * @memberof ChatController\n */\n v(this, \"aiTopicMap\", /* @__PURE__ */ new Map());\n this.aiTopic = new _e(this);\n }\n /**\n * 聊天控制器\n *\n * @readonly\n * @type {(AIChatController | undefined)}\n * @memberof ChatController\n */\n get aiChat() {\n var e;\n return this.aiTopicMap.get(\"\".concat((e = this.aiTopic.activedTopic.value) == null ? void 0 : e.id));\n }\n /**\n * 初始化IndexDB\n *\n * @author tony001\n * @date 2025-02-24 18:02:50\n * @return {*} {Promise<void>}\n */\n async initIndexDB() {\n await x.checkTableExists(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME\n ) || await x.createTable(\n I.DATA_BASE_NAME,\n I.DATA_TABLE_NAME,\n I.DATA_TABLE_KEY_NAME,\n !1\n );\n }\n /**\n * 创建聊天窗口(会同时显示出来)\n *\n * @author tony001\n * @date 2025-02-24 12:02:58\n * @param {IContainerOptions} opts\n * @return {*} {Promise<AIChatController>}\n */\n async create(e) {\n var n, l, h, c;\n this.resourceOptions = e.resourceOptions, (((n = e.resourceOptions) == null ? void 0 : n.resourceMode) || \"LOCAL\") === \"LOCAL\" && await this.initIndexDB(), this.backupChatOptions = e, await this.close(), this.container = document.createElement(\"div\"), this.container.classList.add(\"ibiz-ai-chat\"), document.body.appendChild(this.container);\n const s = e.chatOptions;\n let i;\n e.mode && e.mode === \"TOPIC\" ? (this.aiTopic.injectResourceOptions(e.resourceOptions), await this.aiTopic.fetchHistory(e.topicOptions), i = e.topicOptions, Object.assign(i, {\n aiChat: {\n caption: s.caption,\n context: s.context,\n params: s.params,\n appDataEntityId: s.appDataEntityId,\n sessionid: s.sessionid,\n contentToolbarItems: s.contentToolbarItems,\n footerToolbarItems: s.footerToolbarItems,\n questionToolbarItems: s.questionToolbarItems,\n otherToolbarItems: s.otherToolbarItems,\n appendCurData: s.appendCurData,\n appendCurContent: s.appendCurContent,\n enableAIAgentChange: s.enableAIAgentChange,\n activeAIAgentID: s.activeAIAgentID,\n aiAgentlist: s.aiAgentlist,\n srfMode: s.srfMode,\n appendCurResource: s.appendCurResource\n }\n }), this.syncHistoryOptions(i, s, e.resourceOptions), await this.aiTopic.asyncTopic(i)) : this.aiTopic.activedTopic.value = void 0, Object.assign(s, {\n topicId: i == null ? void 0 : i.id,\n topic: i,\n aiTopic: this.aiTopic\n });\n const o = new Y(s, this.resourceOptions);\n return this.aiTopicMap.set(\"\".concat(i == null ? void 0 : i.id), o), this.App = V(Q, {\n aiChat: o,\n aiTopic: this.aiTopic,\n mode: e.mode ? e.mode : \"DEFAULT\",\n containerOptions: e.containerOptions,\n caption: e.mode && e.mode === \"TOPIC\" ? \"AI助手\" : s.caption,\n autoClose: (l = e.containerOptions) == null ? void 0 : l.autoClose,\n enableBackFill: (h = e.containerOptions) == null ? void 0 : h.enableBackFill,\n contentToolbarItems: s.contentToolbarItems,\n footerToolbarItems: s.footerToolbarItems,\n questionToolbarItems: s.questionToolbarItems,\n openMode: (c = e.containerOptions) == null ? void 0 : c.openMode,\n onClose: async () => {\n await this.close(), s.closed && s.closed(\n s.context,\n s.params,\n o.getAllMessages()\n );\n }\n }), this.App.use(be), this.App.mount(this.container), o;\n }\n /**\n * 同步历史参数(历史激活标识、历史会话标识)\n * @param topicOptions\n * @param chatOptions\n */\n syncHistoryOptions(e, t, s) {\n if (e.disableStorage) {\n const n = De(\"TEMP\");\n t.sessionid = n, e.aiChat.sessionid = n, e.caption = \"临时会话\", e.sourceCaption = \"临时会话\", e.captionFilled = !0;\n return;\n }\n const i = this.aiTopic.getCurrentTopicByID(\n e.id\n );\n if (i && (e.sequence = i.sequence, e.isTop = i.isTop), i && i.aiChat && i.aiChat.activeAIAgentID)\n t.activeAIAgentID = i.aiChat.activeAIAgentID, e.aiChat.activeAIAgentID = i.aiChat.activeAIAgentID;\n else if (t.aiAgentlist && t.aiAgentlist.length > 0 && !t.activeAIAgentID) {\n const n = t.aiAgentlist.find(\n (l) => l.default === 1\n );\n n ? (t.activeAIAgentID = n.id, e.aiChat.activeAIAgentID = n.id) : (t.activeAIAgentID = t.aiAgentlist[0].id, e.aiChat.activeAIAgentID = t.aiAgentlist[0].id);\n }\n i && i.aiChat && i.aiChat.sessionid && (t.sessionid = i.aiChat.sessionid, e.aiChat.sessionid = i.aiChat.sessionid);\n const o = s.resourceMode;\n o === \"LOCAL\" ? e.captionMode !== \"default\" ? (e.sourceCaption = \"新会话\", i && i.captionFilled && i.caption ? (e.captionFilled = i.captionFilled, e.caption = i.caption) : e.caption = \"新会话\") : (e.sourceCaption = e.caption, e.captionFilled = !0) : o === \"REMOTE\" && (e.sourceCaption = e.caption, i && i.caption && (e.caption = i.caption), e.captionFilled = !1), o === \"REMOTE\" && i && i.realid && (e.realid = i.realid);\n }\n /**\n * 切换聊天控制器\n *\n * @author tony001\n * @date 2025-02-24 11:02:24\n * @param {ChatTopic} topic\n */\n switchAiChatController(e) {\n var i, o, n, l, h, c, u, d, p;\n const t = {\n ...this.backupChatOptions.chatOptions\n };\n e.aiChat && Object.assign(t, {\n caption: e.aiChat.caption,\n context: e.aiChat.context,\n params: e.aiChat.params,\n sessionid: e.aiChat.sessionid,\n contentToolbarItems: e.aiChat.contentToolbarItems,\n footerToolbarItems: e.aiChat.footerToolbarItems,\n questionToolbarItems: e.aiChat.questionToolbarItems,\n otherToolbarItems: e.aiChat.otherToolbarItems,\n appendCurData: e.aiChat.appendCurData,\n appendCurContent: e.aiChat.appendCurContent,\n aiAgentlist: e.aiChat.aiAgentlist,\n activeAIAgentID: e.aiChat.activeAIAgentID,\n enableAIAgentChange: e.aiChat.enableAIAgentChange,\n srfMode: e.aiChat.srfMode,\n appendCurResource: e.aiChat.appendCurResource,\n appDataEntityId: e.aiChat.appDataEntityId,\n topicId: e.id,\n topic: e,\n aiTopic: this.aiTopic,\n extendToolbarClick: this.backupChatOptions.chatOptions.extendToolbarClick,\n recommendPrompt: this.backupChatOptions.chatOptions.recommendPrompt\n });\n let s;\n this.aiTopicMap.has(\"\".concat(e.id)) ? s = this.aiTopicMap.get(\"\".concat(e.id)) : (s = new Y(t, this.resourceOptions), this.aiTopicMap.set(\"\".concat(e.id), s)), this.container && this.App && (this.App.unmount(), this.App = V(Q, {\n aiChat: s,\n aiTopic: this.aiTopic,\n mode: (i = this.backupChatOptions) != null && i.mode ? this.backupChatOptions.mode : \"DEFAULT\",\n containerOptions: (o = this.backupChatOptions) == null ? void 0 : o.containerOptions,\n caption: (n = this.backupChatOptions) != null && n.mode && this.backupChatOptions.mode === \"TOPIC\" ? \"AI助手\" : t.caption,\n enableBackFill: (h = (l = this.backupChatOptions) == null ? void 0 : l.containerOptions) == null ? void 0 : h.enableBackFill,\n autoClose: (u = (c = this.backupChatOptions) == null ? void 0 : c.containerOptions) == null ? void 0 : u.autoClose,\n contentToolbarItems: t.contentToolbarItems,\n footerToolbarItems: t.footerToolbarItems,\n questionToolbarItems: t.questionToolbarItems,\n openMode: (p = (d = this.backupChatOptions) == null ? void 0 : d.containerOptions) == null ? void 0 : p.openMode,\n onClose: async () => {\n await this.close(), t.closed && t.closed(t.context, t.params, s.getAllMessages());\n }\n }), this.App.mount(this.container));\n }\n /**\n * 隐藏聊天窗口(必须先创建)\n *\n * @author chitanda\n * @date 2023-10-13 17:10:55\n */\n hidden() {\n this.container && (this.container.style.display = \"none\");\n }\n /**\n * 显示聊天窗窗口(必须先创建)\n *\n * @author chitanda\n * @date 2023-10-13 17:10:29\n */\n show() {\n this.container && (this.container.style.display = \"flex\");\n }\n /**\n * 关闭聊天窗口\n *\n * @author chitanda\n * @date 2023-10-13 17:10:10\n */\n async close() {\n await Promise.all(\n Array.from(this.aiTopicMap).map((e) => e[1].destroyed())\n ), this.App && this.container && (this.App.unmount(), this.App = null), this.container && document.body.contains(this.container) && (document.body.removeChild(this.container), this.container = void 0);\n }\n}\nconst Dt = new It();\nexport {\n Dt as chat\n};\n"],"names":["de","pe","a","we","ye","O","i","o","A","M","J","n","h","Te","e","t","s","l","u","p","f","m","D","Ae","G","Ie","Me","ke","xe","Se","Ee","De","Z","g","c","d","x","Oe","j","Le","Be","L","$","F","$e","I","Re","ze","qe","Fe","Y","Ce","w","B","_e","ee","je","Ne","b","y","He","Pe","r","Ue","Ve","Xe","q","Je","Ye","Ke","Qe","te","se","We","ie","Ge","Ze","et","ae","K","tt","st","it","at","nt","ot","rt","lt","T","ct","k","ht","S","E","C","z","H","ut","dt","pt","P","W","gt","mt","ne","ft","vt","X","_","ge","oe","N","Ct","bt","wt","yt","Tt","U","re","le","he","ue","ce","At","me","fe","ve","Q","It","V","be","Dt","exports"],"mappings":"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","x_google_ignoreList":[0]}
|