@ibiz-template/mob-vue3-components 0.0.55 → 0.7.41-alpha.7
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-GD7RhhzY.js.map +1 -1
- package/dist/ibiz-markdown-editor-KT8uap_I.js.map +1 -1
- package/dist/index-komJV5bQ.js +76 -0
- package/dist/index-komJV5bQ.js.map +1 -0
- package/dist/index.min.css +3 -3
- package/dist/index.system.min.js +1 -1
- package/dist/{quill-t_EJUjVi.js → quill-O7hIDmrl.js} +2 -2
- package/dist/{quill-t_EJUjVi.js.map → quill-O7hIDmrl.js.map} +1 -1
- package/dist/{quill-editor-ybZrwyoG.js → quill-editor-BMC0diFC.js} +2 -2
- package/dist/quill-editor-BMC0diFC.js.map +1 -0
- package/dist/{quill-editor-preview-G9EjDfQE.js → quill-editor-preview-Dui7L0ne.js} +2 -2
- package/dist/{quill-editor-preview-G9EjDfQE.js.map → quill-editor-preview-Dui7L0ne.js.map} +1 -1
- package/dist/tree-nburezSg.js.map +1 -1
- package/es/_virtual/index12.mjs +2 -2
- package/es/_virtual/index13.mjs +2 -2
- package/es/common/carousel/carousel.d.ts +2 -2
- package/es/common/cropping/cropping.d.ts +4 -4
- package/es/common/date-range-picker/date-range-picker.d.ts +1 -1
- package/es/common/emoji-select/components/categories/categories.d.ts +3 -3
- package/es/common/emoji-select/components/emoji-item/emoji-item.d.ts +3 -3
- package/es/common/emoji-select/components/emoji-list/emoji-list.d.ts +7 -7
- package/es/common/emoji-select/emoji-select.d.ts +3 -3
- package/es/common/preset-view-back/preset-view-back.d.ts +2 -2
- package/es/common/preset-view-header/preset-view-header.d.ts +1 -1
- package/es/common/rawitem/rawitem.d.ts +2 -2
- package/es/control/app-menu/app-menu.d.ts +31 -5
- package/es/control/app-menu/app-menu.mjs +13 -0
- package/es/control/app-menu/index.d.ts +6 -6
- package/es/control/app-menu-icon-view/app-menu-icon-view.d.ts +5 -5
- package/es/control/app-menu-icon-view/index.d.ts +5 -5
- package/es/control/app-menu-list-view/app-menu-list-view.d.ts +5 -5
- package/es/control/app-menu-list-view/index.d.ts +5 -5
- package/es/control/calendar/calendar.d.ts +46 -6
- package/es/control/calendar/calendar.mjs +20 -0
- package/es/control/calendar/index.d.ts +7 -7
- package/es/control/caption-bar/caption-bar.d.ts +31 -5
- package/es/control/caption-bar/caption-bar.mjs +13 -0
- package/es/control/caption-bar/index.d.ts +5 -5
- package/es/control/chart/chart.d.ts +45 -5
- package/es/control/chart/chart.mjs +20 -0
- package/es/control/dashboard/dashboard.d.ts +32 -6
- package/es/control/dashboard/dashboard.mjs +13 -0
- package/es/control/dashboard/index.d.ts +6 -6
- package/es/control/data-view/data-view.d.ts +47 -5
- package/es/control/data-view/data-view.mjs +21 -0
- package/es/control/data-view/index.d.ts +5 -5
- package/es/control/drbar/drbar.d.ts +43 -14
- package/es/control/drbar/drbar.mjs +19 -4
- package/es/control/drbar/index.d.ts +5 -14
- package/es/control/drtab/drtab.d.ts +31 -5
- package/es/control/drtab/drtab.mjs +13 -0
- package/es/control/drtab/index.d.ts +5 -5
- package/es/control/form/edit-form/edit-form.mjs +23 -0
- package/es/control/form/form/form.d.ts +7 -1
- package/es/control/form/form/form.mjs +3 -0
- package/es/control/form/form/index.d.ts +1 -1
- package/es/control/form/form-detail/form-item/form-item.d.ts +2 -2
- package/es/control/form/form-detail/form-item/index.d.ts +2 -2
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.d.ts +1 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +3 -3
- package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +3 -3
- package/es/control/form/search-form/index.d.ts +5 -5
- package/es/control/form/search-form/search-form.d.ts +31 -5
- package/es/control/form/search-form/search-form.mjs +13 -0
- package/es/control/list/list/index.d.ts +5 -5
- package/es/control/list/list/list.d.ts +79 -5
- package/es/control/list/list/list.mjs +37 -0
- package/es/control/list/md-ctrl/index.d.ts +7 -7
- package/es/control/list/md-ctrl/md-ctrl.d.ts +69 -7
- package/es/control/list/md-ctrl/md-ctrl.mjs +31 -0
- package/es/control/pickup-view-panel/index.d.ts +7 -7
- package/es/control/pickup-view-panel/pickup-view-panel.d.ts +47 -7
- package/es/control/pickup-view-panel/pickup-view-panel.mjs +20 -0
- package/es/control/search-bar/filter-field-select/filter-field-select.d.ts +3 -3
- package/es/control/search-bar/filter-tree/filter-tree.d.ts +4 -4
- package/es/control/search-bar/index.d.ts +5 -5
- package/es/control/search-bar/search-bar.d.ts +31 -5
- package/es/control/search-bar/search-bar.mjs +13 -0
- package/es/control/tab-exp-panel/index.d.ts +5 -5
- package/es/control/tab-exp-panel/tab-exp-panel.d.ts +37 -5
- package/es/control/tab-exp-panel/tab-exp-panel.mjs +16 -0
- package/es/control/toolbar/index.d.ts +5 -5
- package/es/control/toolbar/popper-toolbar/popper-toolbar.d.ts +6 -6
- package/es/control/toolbar/toolbar.d.ts +31 -5
- package/es/control/toolbar/toolbar.mjs +13 -0
- package/es/control/tree/tree.d.ts +48 -6
- package/es/control/tree/tree.mjs +21 -0
- package/es/control/tree-exp-bar/index.d.ts +5 -5
- package/es/control/tree-exp-bar/tree-exp-bar.d.ts +49 -5
- package/es/control/tree-exp-bar/tree-exp-bar.mjs +22 -0
- package/es/control/wizard-panel/index.d.ts +5 -5
- package/es/control/wizard-panel/wizard-panel.d.ts +31 -5
- package/es/control/wizard-panel/wizard-panel.mjs +13 -0
- package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +22 -13
- package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.d.ts +17 -8
- package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +16 -9
- package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.d.ts +15 -8
- package/es/editor/common/data-mpicker/ibiz-data-mpicker.d.ts +4 -4
- package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +17 -10
- package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +16 -9
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +17 -9
- package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.d.ts +15 -8
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +20 -8
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +18 -11
- package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.d.ts +17 -10
- package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +15 -8
- package/es/editor/html/quill-editor/quill-editor.d.ts +15 -0
- package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.d.ts +9 -0
- package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.d.ts +22 -8
- package/es/editor/qrcode/ibiz-qrcode/ibiz-qrcode.d.ts +15 -8
- package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.d.ts +16 -9
- package/es/editor/rate/ibiz-rate/ibiz-rate.d.ts +16 -8
- package/es/editor/raw/ibiz-raw/ibiz-raw.d.ts +17 -8
- package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +23 -8
- package/es/editor/span/span/span.d.ts +15 -3
- package/es/editor/span/span-link/span-link.d.ts +16 -8
- package/es/editor/stepper/ibiz-stepper/ibiz-stepper.d.ts +20 -8
- package/es/editor/switch/ibiz-switch/ibiz-switch.d.ts +16 -8
- package/es/editor/text-box/ibiz-input-number/ibiz-input-number.d.ts +17 -8
- package/es/editor/text-box/input/input.d.ts +16 -8
- package/es/editor/upload/ibiz-carousel/ibiz-carousel.d.ts +19 -8
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +24 -12
- package/es/editor/upload/ibiz-image-cropping/ibiz-image-cropping.d.ts +27 -13
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.d.ts +18 -8
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +24 -12
- package/es/locale/en/index.d.ts +20 -0
- package/es/locale/zh-CN/index.d.ts +20 -0
- package/es/mob-app/App.mjs +2 -1
- package/es/mob-app/components/router-shell/router-shell.d.ts +3 -3
- package/es/mob-app/guard/auth-guard/auth-guard.mjs +46 -53
- package/es/mob-app/main.mjs +1 -0
- package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.mjs +1 -1
- package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.mjs +1 -1
- package/es/panel-component/async-action/index.d.ts +2 -2
- package/es/panel-component/async-action/mob-async-action.d.ts +7 -2
- package/es/panel-component/auth-sso/auth-sso.d.ts +18 -0
- package/es/panel-component/auth-sso/auth-sso.mjs +6 -0
- package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +18 -0
- package/es/panel-component/auth-userinfo/auth-userinfo.mjs +6 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.d.ts +23 -37
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +23 -37
- package/es/panel-component/nav-pos-index/nav-pos-index.d.ts +18 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.mjs +6 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.state.d.ts +8 -12
- package/es/panel-component/nav-pos-index/nav-pos-index.state.mjs +8 -12
- package/es/panel-component/panel-app-title/panel-app-title.controller.d.ts +3 -2
- package/es/panel-component/panel-app-title/panel-app-title.controller.mjs +1 -0
- package/es/panel-component/panel-app-title/panel-app-title.d.ts +17 -0
- package/es/panel-component/panel-app-title/panel-app-title.mjs +6 -0
- package/es/panel-component/panel-app-title/panel-app-title.state.d.ts +14 -28
- package/es/panel-component/panel-app-title/panel-app-title.state.mjs +14 -28
- package/es/panel-component/panel-button/panel-button.controller.d.ts +4 -5
- package/es/panel-component/panel-button/panel-button.controller.mjs +2 -3
- package/es/panel-component/panel-button/panel-button.d.ts +17 -0
- package/es/panel-component/panel-button/panel-button.mjs +6 -0
- package/es/panel-component/panel-button/panel-button.state.d.ts +4 -6
- package/es/panel-component/panel-button/panel-button.state.mjs +4 -6
- package/es/panel-component/panel-button-list/panel-button-list.controller.d.ts +4 -5
- package/es/panel-component/panel-button-list/panel-button-list.controller.mjs +4 -5
- package/es/panel-component/panel-button-list/panel-button-list.d.ts +17 -0
- package/es/panel-component/panel-button-list/panel-button-list.mjs +6 -0
- package/es/panel-component/panel-button-list/panel-button-list.state.d.ts +2 -2
- package/es/panel-component/panel-button-list/panel-button-list.state.mjs +2 -2
- package/es/panel-component/panel-carousel/index.d.ts +2 -2
- package/es/panel-component/panel-carousel/panel-carousel.controller.d.ts +2 -4
- package/es/panel-component/panel-carousel/panel-carousel.controller.mjs +2 -4
- package/es/panel-component/panel-carousel/panel-carousel.d.ts +19 -2
- package/es/panel-component/panel-carousel/panel-carousel.mjs +6 -0
- package/es/panel-component/panel-tab-panel/panel-tab-panel.controller.d.ts +2 -4
- package/es/panel-component/panel-tab-panel/panel-tab-panel.controller.mjs +2 -4
- package/es/panel-component/panel-tab-panel/panel-tab-panel.d.ts +17 -0
- package/es/panel-component/panel-tab-panel/panel-tab-panel.mjs +6 -0
- package/es/panel-component/panel-tab-panel/panel-tab-panel.state.d.ts +2 -4
- package/es/panel-component/panel-tab-panel/panel-tab-panel.state.mjs +2 -4
- package/es/panel-component/panel-video-player/panel-video-player.controller.d.ts +2 -4
- package/es/panel-component/panel-video-player/panel-video-player.controller.mjs +2 -4
- package/es/panel-component/panel-video-player/panel-video-player.d.ts +11 -0
- package/es/panel-component/panel-video-player/panel-video-player.mjs +3 -0
- package/es/panel-component/user-message/index.d.ts +2 -2
- package/es/panel-component/user-message/user-message.d.ts +7 -2
- package/es/panel-component/view-content-panel-container/view-content-panel-container.d.ts +5 -0
- package/es/panel-component/view-content-panel-container/view-content-panel-container.mjs +6 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.d.ts +17 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.mjs +6 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.d.ts +17 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.mjs +6 -0
- package/es/panel-component/wf-action-button/index.d.ts +1 -1
- package/es/panel-component/wf-action-button/wf-action-button.controller.d.ts +4 -6
- package/es/panel-component/wf-action-button/wf-action-button.controller.mjs +2 -4
- package/es/panel-component/wf-action-button/wf-action-button.d.ts +17 -0
- package/es/panel-component/wf-action-button/wf-action-button.mjs +6 -0
- package/es/panel-component/wf-action-button/wf-action-button.state.d.ts +2 -4
- package/es/panel-component/wf-action-button/wf-action-button.state.mjs +2 -4
- package/es/panel-component/wf-step-trace/index.d.ts +1 -1
- package/es/panel-component/wf-step-trace/wf-step-trace.controller.d.ts +2 -4
- package/es/panel-component/wf-step-trace/wf-step-trace.controller.mjs +2 -4
- package/es/panel-component/wf-step-trace/wf-step-trace.d.ts +12 -1
- package/es/panel-component/wf-step-trace/wf-step-trace.mjs +3 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.state.d.ts +2 -4
- package/es/panel-component/wf-step-trace/wf-step-trace.state.mjs +2 -4
- package/es/util/app-drawer/app-drawer-component.d.ts +1 -1
- package/es/util/app-modal/app-modal-component.d.ts +2 -2
- package/es/util/app-util/app-util.d.ts +7 -0
- package/es/util/app-util/app-util.mjs +11 -0
- package/es/util/scan-qrcode/scan-qrcode.d.ts +3 -3
- package/es/view/login-view/login-view.d.ts +1 -1
- package/es/view/portal-view/index.d.ts +7 -7
- package/es/view/portal-view/portal-view.d.ts +7 -7
- package/lib/_virtual/index12.cjs +2 -2
- package/lib/_virtual/index13.cjs +2 -2
- package/lib/control/app-menu/app-menu.cjs +13 -0
- package/lib/control/calendar/calendar.cjs +20 -0
- package/lib/control/caption-bar/caption-bar.cjs +13 -0
- package/lib/control/chart/chart.cjs +20 -0
- package/lib/control/dashboard/dashboard.cjs +13 -0
- package/lib/control/data-view/data-view.cjs +21 -0
- package/lib/control/drbar/drbar.cjs +19 -4
- package/lib/control/drtab/drtab.cjs +13 -0
- package/lib/control/form/edit-form/edit-form.cjs +23 -0
- package/lib/control/form/form/form.cjs +3 -0
- package/lib/control/form/search-form/search-form.cjs +13 -0
- package/lib/control/list/list/list.cjs +37 -0
- package/lib/control/list/md-ctrl/md-ctrl.cjs +31 -0
- package/lib/control/pickup-view-panel/pickup-view-panel.cjs +20 -0
- package/lib/control/search-bar/search-bar.cjs +13 -0
- package/lib/control/tab-exp-panel/tab-exp-panel.cjs +16 -0
- package/lib/control/toolbar/toolbar.cjs +13 -0
- package/lib/control/tree/tree.cjs +21 -0
- package/lib/control/tree-exp-bar/tree-exp-bar.cjs +22 -0
- package/lib/control/wizard-panel/wizard-panel.cjs +13 -0
- package/lib/mob-app/App.cjs +1 -0
- package/lib/mob-app/guard/auth-guard/auth-guard.cjs +46 -53
- package/lib/mob-app/main.cjs +1 -0
- package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.cjs +1 -1
- package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.cjs +1 -1
- package/lib/panel-component/auth-sso/auth-sso.cjs +6 -0
- package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +6 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.cjs +6 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +23 -37
- package/lib/panel-component/nav-pos-index/nav-pos-index.state.cjs +8 -12
- package/lib/panel-component/panel-app-title/panel-app-title.cjs +6 -0
- package/lib/panel-component/panel-app-title/panel-app-title.controller.cjs +1 -0
- package/lib/panel-component/panel-app-title/panel-app-title.state.cjs +14 -28
- package/lib/panel-component/panel-button/panel-button.cjs +6 -0
- package/lib/panel-component/panel-button/panel-button.controller.cjs +2 -3
- package/lib/panel-component/panel-button/panel-button.state.cjs +4 -6
- package/lib/panel-component/panel-button-list/panel-button-list.cjs +6 -0
- package/lib/panel-component/panel-button-list/panel-button-list.controller.cjs +4 -5
- package/lib/panel-component/panel-button-list/panel-button-list.state.cjs +2 -2
- package/lib/panel-component/panel-carousel/panel-carousel.cjs +6 -0
- package/lib/panel-component/panel-carousel/panel-carousel.controller.cjs +2 -4
- package/lib/panel-component/panel-tab-panel/panel-tab-panel.cjs +6 -0
- package/lib/panel-component/panel-tab-panel/panel-tab-panel.controller.cjs +2 -4
- package/lib/panel-component/panel-tab-panel/panel-tab-panel.state.cjs +2 -4
- package/lib/panel-component/panel-video-player/panel-video-player.cjs +3 -0
- package/lib/panel-component/panel-video-player/panel-video-player.controller.cjs +2 -4
- package/lib/panel-component/view-content-panel-container/view-content-panel-container.cjs +6 -0
- package/lib/panel-component/view-footer-panel-container/view-footer-panel-container.cjs +6 -0
- package/lib/panel-component/view-header-panel-container/view-header-panel-container.cjs +6 -0
- package/lib/panel-component/wf-action-button/wf-action-button.cjs +6 -0
- package/lib/panel-component/wf-action-button/wf-action-button.controller.cjs +2 -4
- package/lib/panel-component/wf-action-button/wf-action-button.state.cjs +2 -4
- package/lib/panel-component/wf-step-trace/wf-step-trace.cjs +3 -0
- package/lib/panel-component/wf-step-trace/wf-step-trace.controller.cjs +2 -4
- package/lib/panel-component/wf-step-trace/wf-step-trace.state.cjs +2 -4
- package/lib/util/app-util/app-util.cjs +11 -0
- package/package.json +7 -7
- package/dist/index-TfgOIExu.js +0 -76
- package/dist/index-TfgOIExu.js.map +0 -1
- package/dist/quill-editor-ybZrwyoG.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-GD7RhhzY.js","sources":["../src/control/chart/chart.tsx"],"sourcesContent":["import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n defineComponent,\n onBeforeUnmount,\n onMounted,\n PropType,\n ref,\n} from 'vue';\nimport { IDEChart } from '@ibiz/model-core';\nimport { init } from 'echarts';\nimport { ChartController, IControlProvider } from '@ibiz-template/runtime';\nimport './chart.scss';\n\nconst ChartControl = defineComponent({\n name: 'IBizChartControl',\n props: {\n modelData: { type: Object as PropType<IDEChart>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n provider: { type: Object as PropType<IControlProvider> },\n mdctrlActiveMode: { type: Number, default: undefined },\n loadDefault: { type: Boolean, default: true },\n },\n setup() {\n const c = useControlController((...args) => new ChartController(...args));\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n const chartRef = ref();\n\n // 容器大小变化监听器\n let resizeObserver: ResizeObserver;\n\n onMounted(() => {\n const chart = init(chartRef.value);\n c.initChart(chart);\n\n if (chartRef.value && ResizeObserver) {\n resizeObserver = new ResizeObserver(() => {\n c.resizeChart();\n });\n resizeObserver.observe(chartRef.value);\n }\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n\n return {\n c,\n ns,\n chartRef,\n };\n },\n render() {\n return (\n <iBizControlBase controller={this.c}>\n <div ref='chartRef' class={this.ns.e('chart')}></div>\n </iBizControlBase>\n );\n },\n});\n\nexport default ChartControl;\n"],"names":["name","ChartControl","exports","defineComponent","props","
|
|
1
|
+
{"version":3,"file":"chart-GD7RhhzY.js","sources":["../src/control/chart/chart.tsx"],"sourcesContent":["import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n defineComponent,\n onBeforeUnmount,\n onMounted,\n PropType,\n ref,\n} from 'vue';\nimport { IDEChart } from '@ibiz/model-core';\nimport { init } from 'echarts';\nimport { ChartController, IControlProvider } from '@ibiz-template/runtime';\nimport './chart.scss';\n\nconst ChartControl = defineComponent({\n name: 'IBizChartControl',\n props: {\n /**\n * @description 图表模型数据\n */\n modelData: { type: Object as PropType<IDEChart>, required: true },\n /**\n * @description 应用上下文对象\n */\n context: { type: Object as PropType<IContext>, required: true },\n /**\n * @description 视图参数对象\n * @default {}\n */\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n /**\n * @description 部件适配器\n */\n provider: { type: Object as PropType<IControlProvider> },\n /**\n * @description 部件激活模式,值为0:无激活,值为1:单击激活,值为2:双击激活\n */\n mdctrlActiveMode: { type: Number, default: undefined },\n /**\n * @description 是否默认加载数据\n * @default true\n */\n loadDefault: { type: Boolean, default: true },\n },\n setup() {\n const c = useControlController((...args) => new ChartController(...args));\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n const chartRef = ref();\n\n // 容器大小变化监听器\n let resizeObserver: ResizeObserver;\n\n onMounted(() => {\n const chart = init(chartRef.value);\n c.initChart(chart);\n\n if (chartRef.value && ResizeObserver) {\n resizeObserver = new ResizeObserver(() => {\n c.resizeChart();\n });\n resizeObserver.observe(chartRef.value);\n }\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n\n return {\n c,\n ns,\n chartRef,\n };\n },\n render() {\n return (\n <iBizControlBase controller={this.c}>\n <div ref='chartRef' class={this.ns.e('chart')}></div>\n </iBizControlBase>\n );\n },\n});\n\nexport default ChartControl;\n"],"names":["name","ChartControl","exports","defineComponent","props","type","required","Object","default","setup","c","ns","useControlController","toLowerCase","args","chartRef","useNamespace","resizeObserver","onMounted","init","initChart","chart","onBeforeUnmount","render","_createVNode","_resolveComponent"],"mappings":"yYAcEA,MAAIC,EAAoBC,EAAA,UAAAC,EAAA,CACxBC,KAAO,mBACL,MAAA,CAGaC,UAAkC,CAAEC,KAAAA,OAAgB,SAAA,EACjE,EAGWD,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/D,EAIUD,OAAME,CAA6BC,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClE,EAGYH,SAAME,CAAsC,KAAA,MACxD,EAGoBF,iBAAY,CAAEG,KAAAA,OAAoB,QAAA,MACtD,EAIeH,YAAa,CAAEG,KAAAA,QAAc,QAAA,EAC7C,CACDC,EACE,OAAMC,CACN,MAAMC,EAAEC,MAA2BF,UAAqBG,GAAYC,CAAI,CAAA,EAClEC,EAAQC,EAAQ,WAAAN,EAAA,MAAA,YAAA,aAAA,EAAA,QAEtB,IAAAO,EACA,OAAAC,EAAkC,IAAA,CAElCA,MAAAA,EAAgBC,EAAAJ,EAAA,KAAA,EACdL,EAAA,UAAcS,CAAAA,EACZC,EAAUC,OAAM,iBAElBJ,EAAkB,mBAAoB,IAAA,CACpCA,EAAAA,YAAiB,IAEjBA,EAAE,QAAAF,EAAA,KAAA,EAEJ,CAAA,EACFO,EAAE,IAAA,CAEoBL,GAAA,WAAA,IAEpB,CAEK,EAAAP,EACLA,GAAAA,EACAC,SAAAA,CACAI,GAEJ,QAAC,CACDQ,OAASC,EAAAC,EAAA,iBAAA,EAAA,CACPD,WAAAA,KAAA,CAAA,EAAA,CACqC,QAAA,IAAA,CAAAA,EAAA,MAAA,CAAA,IAAAhB,WAAA,MAAA,KAAA,GAAA,EAAA,OAAA,CAAA,EAAA,IAAA,CAAA,CACY,CAAA,CAAA,CAGnD,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ibiz-markdown-editor-KT8uap_I.js","sources":["../src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx"],"sourcesContent":["import {\n defineComponent,\n nextTick,\n onMounted,\n onUnmounted,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport {\n getMarkDownProps,\n getEditorEmits,\n useUIStore,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { createUUID } from 'qx-util';\nimport Cherry from 'cherry-markdown';\nimport { CoreConst, getAppCookie } from '@ibiz-template/core';\nimport { MarkDownEditorController } from '../markdown-editor.controller';\nimport './ibiz-markdown-editor.scss';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IBizMarkDown: any = defineComponent({\n name: 'IBizMarkDown',\n props: getMarkDownProps<MarkDownEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('markdown');\n\n const c = props.controller!;\n\n const currentVal = ref<string>('');\n\n const editor = ref<Cherry | null>(null);\n const editorPreview = ref<Cherry | null>(null);\n\n const id = createUUID();\n const previewId = createUUID();\n\n // 请求头\n const headers: Ref<IData> = ref({\n [`${ibiz.env.tokenHeader}Authorization`]: `${\n ibiz.env.tokenPrefix\n }Bearer ${getAppCookie(CoreConst.TOKEN)}`,\n });\n\n // 上传文件路径\n const uploadUrl: Ref<string> = ref('');\n\n // 下载文件路径\n const downloadUrl: Ref<string> = ref('');\n\n // 编辑器主题\n const { UIStore } = useUIStore();\n const theme = ref(UIStore.theme);\n\n // 编辑器模式\n const defaultModel = ref('editOnly');\n\n // 预览态预览图片地址\n const previewImage: Ref<string> = ref('');\n\n // 样式变量\n const cssVars = ref({});\n\n // data响应式变更基础路径\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n const urls = ibiz.util.file.calcFileUpDownUrl(\n c.context,\n c.params,\n newVal,\n c.editorParams,\n );\n uploadUrl.value = urls.uploadUrl;\n downloadUrl.value = urls.downloadUrl;\n }\n },\n { immediate: true, deep: true },\n );\n\n // // 自定义图片上传\n const fileUpload = async (file: Blob, callback: (_url: string) => void) => {\n const data = await ibiz.util.file.fileUpload(\n uploadUrl.value,\n file,\n headers.value,\n );\n const url = downloadUrl.value.replace('%fileId%', data.fileid);\n callback(url);\n };\n\n // 获取渲染后html内容\n const getCherryHtml = () => {\n const result = editor.value?.getHtml();\n return result;\n };\n\n // 获取markdown内容\n const getCherryContent = () => {\n const result = editor.value?.getMarkdown();\n return result;\n };\n\n // 设置markdown内容\n const setCherryContent = (val: string) => {\n editor.value?.setMarkdown(val, false);\n editorPreview.value?.setMarkdown(val, false);\n };\n const setCherryContent2 = (val: string) => {\n editorPreview.value?.setMarkdown(val, true);\n };\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n watch(currentVal, (newVal, oldVal) => {\n const content = getCherryContent();\n if (newVal !== oldVal && content !== newVal) {\n setCherryContent(newVal);\n }\n });\n\n // 变更事件回调\n const afterChange = (_e: IData) => {\n setCherryContent2(getCherryContent()!);\n emit('change', getCherryContent());\n };\n\n // 图片加载回调\n const beforeImageMounted = (e: string, src: string) => {\n return { [e]: src };\n };\n\n const editorOpts = {\n value: currentVal.value,\n theme: theme.value,\n fileUpload,\n emoji: {\n useUnicode: true,\n },\n header: {\n anchorStyle: 'autonumber',\n },\n editor: {\n // 编辑器的高度,默认100%,如果挂载点存在内联设置的height则以内联样式为主\n height: '100%',\n // defaultModel 编辑器初始化后的默认模式,一共有三种模式:1、双栏编辑预览模式;2、纯编辑模式;3、预览模式\n // edit&preview: 双栏编辑预览模式\n // editOnly: 纯编辑模式(没有预览,可通过toolbar切换成双栏或预览模式)\n // previewOnly: 预览模式(没有编辑框,toolbar只显示“返回编辑”按钮,可通过toolbar切换成编辑模式)\n defaultModel: defaultModel.value,\n codemirror: {\n // 是否自动focus 默认为true\n autofocus: false,\n },\n },\n toolbars: {\n theme: theme.value,\n toolbar: [\n 'switchModel',\n 'bold',\n 'italic',\n 'strikethrough',\n 'header',\n // 'list',\n {\n insert: [\n 'image',\n 'audio',\n 'video',\n 'link',\n 'hr',\n 'br',\n 'code',\n 'formula',\n 'toc',\n 'table',\n 'pdf',\n 'word',\n ],\n },\n 'settings',\n ],\n },\n };\n\n // 默认编辑态\n const editorInit = () => {\n const cherryOptions = {\n id,\n ...editorOpts,\n callback: {\n afterChange,\n beforeImageMounted,\n },\n value: currentVal.value,\n };\n nextTick(() => {\n editor.value = new Cherry(cherryOptions as IData);\n });\n };\n\n // 初始界面预览态\n const editorPreviewInit = () => {\n const cherryOptions = {\n id: previewId,\n ...editorOpts,\n editor: { defaultModel: 'previewOnly' },\n };\n nextTick(() => {\n editorPreview.value = new Cherry(cherryOptions as IData);\n });\n };\n\n onMounted(() => {\n editorPreviewInit();\n });\n\n watch(\n () => UIStore.theme,\n newVal => {\n theme.value = newVal;\n editor.value?.setTheme(theme.value);\n },\n );\n\n onUnmounted(() => {\n editor.value = null;\n editorPreview.value = null;\n });\n const isOpen = ref(false);\n\n // 计算触发元素类型\n const calcTargetType = (\n target: HTMLElement,\n ): {\n type: string;\n url: string;\n } => {\n const result = {\n type: '',\n url: '',\n };\n if (target.nodeName === 'A') {\n result.type = 'A';\n result.url = (target as HTMLAnchorElement).hash;\n } else if (target.parentNode && target.parentNode.nodeName === 'A') {\n result.type = 'A';\n result.url = (target.parentNode as HTMLAnchorElement).hash;\n } else if (target.nodeName === 'IMG') {\n result.type = 'IMG';\n result.url = (target as HTMLImageElement).src;\n }\n return result;\n };\n\n const openPicker = async (event: TouchEvent) => {\n // 如果点击项是a标签,并且有href,值为#开头,且后续值为页面内的元素的id,就走页面滚动导航\n // 如果是图片,则进行放大预览\n // 其他情况,就走打开编辑界面\n const { target } = event;\n if (target) {\n const result = calcTargetType(target as HTMLElement);\n if (result.type === 'A' && result.url.startsWith('#')) {\n // 点击a标签,本页面内滑动,阻止其他变化\n event.preventDefault();\n event.stopPropagation();\n const targetid = result.url.slice(1);\n if (targetid) {\n const preview = document.getElementById(previewId);\n if (preview) {\n const anchor = document.getElementById(targetid);\n if (anchor) {\n anchor.scrollIntoView({ behavior: 'smooth' });\n }\n }\n return;\n }\n }\n if (result.type === 'IMG' && result.url) {\n // 点击图片,展开预览\n previewImage.value = result.url;\n return;\n }\n }\n if (props.disabled || props.readonly) {\n return;\n }\n // 其他情况打开编辑态\n isOpen.value = true;\n if (!editor.value) {\n editorInit();\n }\n };\n\n // 关闭图片预览时清除预览图片地址\n const handlePreviewClose = () => {\n previewImage.value = '';\n };\n\n return {\n ns,\n currentVal,\n id,\n previewId,\n editor,\n headers,\n theme,\n defaultModel,\n cssVars,\n getCherryHtml,\n getCherryContent,\n setCherryContent,\n openPicker,\n isOpen,\n previewImage,\n handlePreviewClose,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-field readonly disabled={this.disabled} onClick={this.openPicker}>\n {{\n input: (\n <div\n id={this.previewId}\n style={this.cssVars}\n class={this.ns.b('cherry')}\n ></div>\n ),\n }}\n </van-field>\n\n <van-popup\n class={this.ns.b('image-popup')}\n show={!!this.previewImage}\n close-on-popstate={true}\n onClose={this.handlePreviewClose}\n >\n <iBizPreviewImage url={this.previewImage}></iBizPreviewImage>\n </van-popup>\n <van-dialog\n v-model:show={this.isOpen}\n className={this.ns.b('dialog')}\n close-on-popstate={true}\n >\n {{\n default: () => {\n return (\n <div\n id={this.id}\n style={this.cssVars}\n class={[\n this.ns.b('cherry'),\n this.ns.is('hidden', !this.isOpen),\n ]}\n ></div>\n );\n },\n }}\n </van-dialog>\n </div>\n );\n },\n});\n\nexport default IBizMarkDown;\n"],"names":["IBizMarkDown","exports","defineComponent","name","getMarkDownProps","props","emits","setup","emit","ns","useNamespace","c","ref","currentVal","editor","editorPreview","createUUID","id","previewId","headers","ibiz","useUIStore","uploadUrl","previewImage","downloadUrl","newVal","urls","UIStore","fileUpload","file","callback","data","url","_a","immediate","setCherryContent","val","_b","oldVal","getCherryHtml","result","getCherryContent","watch","content","afterChange","_e","setCherryContent2","setMarkdown","beforeImageMounted","theme","defaultModel","emoji","useUnicode","header","anchorStyle","height","editorInit","cherryOptions","editorOpts","codemirror","autofocus","toolbars","value","toolbar","Cherry","insert","nextTick","editorPreviewInit","isOpen","calcTargetType","target","onMounted","onUnmounted","behavior","cssVars","event","type","targetid","anchor","parentNode","_createVNode","handlePreviewClose","_resolveComponent","$event","openPicker"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ibiz-markdown-editor-KT8uap_I.js","sources":["../src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx"],"sourcesContent":["import {\n defineComponent,\n nextTick,\n onMounted,\n onUnmounted,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport {\n getMarkDownProps,\n getEditorEmits,\n useUIStore,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { createUUID } from 'qx-util';\nimport Cherry from 'cherry-markdown';\nimport { CoreConst, getAppCookie } from '@ibiz-template/core';\nimport { MarkDownEditorController } from '../markdown-editor.controller';\nimport './ibiz-markdown-editor.scss';\n\n/**\n * 移动端Markdown编辑框\n * @primary\n * @description 基于cherry-markdown深度定制可扩展的Markdown编辑器,用于Markdown文档编辑。支持编辑器类型包含:`移动端Markdown编辑框`\n * @editorparams {name:uploadparams,parameterType:IData,defaultvalue:{},description:上传参数}\n * @editorparams {name:exportparams,parameterType:IData,defaultvalue:{},description:下载参数}\n * @ignoreprops autoFocus | overflowMode\n * @ignoreemits infoTextChange | enter\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IBizMarkDown: any = defineComponent({\n name: 'IBizMarkDown',\n props: getMarkDownProps<MarkDownEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('markdown');\n\n const c = props.controller!;\n\n const currentVal = ref<string>('');\n\n const editor = ref<Cherry | null>(null);\n const editorPreview = ref<Cherry | null>(null);\n\n const id = createUUID();\n const previewId = createUUID();\n\n // 请求头\n const headers: Ref<IData> = ref({\n [`${ibiz.env.tokenHeader}Authorization`]: `${\n ibiz.env.tokenPrefix\n }Bearer ${getAppCookie(CoreConst.TOKEN)}`,\n });\n\n // 上传文件路径\n const uploadUrl: Ref<string> = ref('');\n\n // 下载文件路径\n const downloadUrl: Ref<string> = ref('');\n\n // 编辑器主题\n const { UIStore } = useUIStore();\n const theme = ref(UIStore.theme);\n\n // 编辑器模式\n const defaultModel = ref('editOnly');\n\n // 预览态预览图片地址\n const previewImage: Ref<string> = ref('');\n\n // 样式变量\n const cssVars = ref({});\n\n // data响应式变更基础路径\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n const urls = ibiz.util.file.calcFileUpDownUrl(\n c.context,\n c.params,\n newVal,\n c.editorParams,\n );\n uploadUrl.value = urls.uploadUrl;\n downloadUrl.value = urls.downloadUrl;\n }\n },\n { immediate: true, deep: true },\n );\n\n // // 自定义图片上传\n const fileUpload = async (file: Blob, callback: (_url: string) => void) => {\n const data = await ibiz.util.file.fileUpload(\n uploadUrl.value,\n file,\n headers.value,\n );\n const url = downloadUrl.value.replace('%fileId%', data.fileid);\n callback(url);\n };\n\n // 获取渲染后html内容\n const getCherryHtml = () => {\n const result = editor.value?.getHtml();\n return result;\n };\n\n // 获取markdown内容\n const getCherryContent = () => {\n const result = editor.value?.getMarkdown();\n return result;\n };\n\n // 设置markdown内容\n const setCherryContent = (val: string) => {\n editor.value?.setMarkdown(val, false);\n editorPreview.value?.setMarkdown(val, false);\n };\n const setCherryContent2 = (val: string) => {\n editorPreview.value?.setMarkdown(val, true);\n };\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n watch(currentVal, (newVal, oldVal) => {\n const content = getCherryContent();\n if (newVal !== oldVal && content !== newVal) {\n setCherryContent(newVal);\n }\n });\n\n // 变更事件回调\n const afterChange = (_e: IData) => {\n setCherryContent2(getCherryContent()!);\n emit('change', getCherryContent());\n };\n\n // 图片加载回调\n const beforeImageMounted = (e: string, src: string) => {\n return { [e]: src };\n };\n\n const editorOpts = {\n value: currentVal.value,\n theme: theme.value,\n fileUpload,\n emoji: {\n useUnicode: true,\n },\n header: {\n anchorStyle: 'autonumber',\n },\n editor: {\n // 编辑器的高度,默认100%,如果挂载点存在内联设置的height则以内联样式为主\n height: '100%',\n // defaultModel 编辑器初始化后的默认模式,一共有三种模式:1、双栏编辑预览模式;2、纯编辑模式;3、预览模式\n // edit&preview: 双栏编辑预览模式\n // editOnly: 纯编辑模式(没有预览,可通过toolbar切换成双栏或预览模式)\n // previewOnly: 预览模式(没有编辑框,toolbar只显示“返回编辑”按钮,可通过toolbar切换成编辑模式)\n defaultModel: defaultModel.value,\n codemirror: {\n // 是否自动focus 默认为true\n autofocus: false,\n },\n },\n toolbars: {\n theme: theme.value,\n toolbar: [\n 'switchModel',\n 'bold',\n 'italic',\n 'strikethrough',\n 'header',\n // 'list',\n {\n insert: [\n 'image',\n 'audio',\n 'video',\n 'link',\n 'hr',\n 'br',\n 'code',\n 'formula',\n 'toc',\n 'table',\n 'pdf',\n 'word',\n ],\n },\n 'settings',\n ],\n },\n };\n\n // 默认编辑态\n const editorInit = () => {\n const cherryOptions = {\n id,\n ...editorOpts,\n callback: {\n afterChange,\n beforeImageMounted,\n },\n value: currentVal.value,\n };\n nextTick(() => {\n editor.value = new Cherry(cherryOptions as IData);\n });\n };\n\n // 初始界面预览态\n const editorPreviewInit = () => {\n const cherryOptions = {\n id: previewId,\n ...editorOpts,\n editor: { defaultModel: 'previewOnly' },\n };\n nextTick(() => {\n editorPreview.value = new Cherry(cherryOptions as IData);\n });\n };\n\n onMounted(() => {\n editorPreviewInit();\n });\n\n watch(\n () => UIStore.theme,\n newVal => {\n theme.value = newVal;\n editor.value?.setTheme(theme.value);\n },\n );\n\n onUnmounted(() => {\n editor.value = null;\n editorPreview.value = null;\n });\n const isOpen = ref(false);\n\n // 计算触发元素类型\n const calcTargetType = (\n target: HTMLElement,\n ): {\n type: string;\n url: string;\n } => {\n const result = {\n type: '',\n url: '',\n };\n if (target.nodeName === 'A') {\n result.type = 'A';\n result.url = (target as HTMLAnchorElement).hash;\n } else if (target.parentNode && target.parentNode.nodeName === 'A') {\n result.type = 'A';\n result.url = (target.parentNode as HTMLAnchorElement).hash;\n } else if (target.nodeName === 'IMG') {\n result.type = 'IMG';\n result.url = (target as HTMLImageElement).src;\n }\n return result;\n };\n\n const openPicker = async (event: TouchEvent) => {\n // 如果点击项是a标签,并且有href,值为#开头,且后续值为页面内的元素的id,就走页面滚动导航\n // 如果是图片,则进行放大预览\n // 其他情况,就走打开编辑界面\n const { target } = event;\n if (target) {\n const result = calcTargetType(target as HTMLElement);\n if (result.type === 'A' && result.url.startsWith('#')) {\n // 点击a标签,本页面内滑动,阻止其他变化\n event.preventDefault();\n event.stopPropagation();\n const targetid = result.url.slice(1);\n if (targetid) {\n const preview = document.getElementById(previewId);\n if (preview) {\n const anchor = document.getElementById(targetid);\n if (anchor) {\n anchor.scrollIntoView({ behavior: 'smooth' });\n }\n }\n return;\n }\n }\n if (result.type === 'IMG' && result.url) {\n // 点击图片,展开预览\n previewImage.value = result.url;\n return;\n }\n }\n if (props.disabled || props.readonly) {\n return;\n }\n // 其他情况打开编辑态\n isOpen.value = true;\n if (!editor.value) {\n editorInit();\n }\n };\n\n // 关闭图片预览时清除预览图片地址\n const handlePreviewClose = () => {\n previewImage.value = '';\n };\n\n return {\n ns,\n currentVal,\n id,\n previewId,\n editor,\n headers,\n theme,\n defaultModel,\n cssVars,\n getCherryHtml,\n getCherryContent,\n setCherryContent,\n openPicker,\n isOpen,\n previewImage,\n handlePreviewClose,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-field readonly disabled={this.disabled} onClick={this.openPicker}>\n {{\n input: (\n <div\n id={this.previewId}\n style={this.cssVars}\n class={this.ns.b('cherry')}\n ></div>\n ),\n }}\n </van-field>\n\n <van-popup\n class={this.ns.b('image-popup')}\n show={!!this.previewImage}\n close-on-popstate={true}\n onClose={this.handlePreviewClose}\n >\n <iBizPreviewImage url={this.previewImage}></iBizPreviewImage>\n </van-popup>\n <van-dialog\n v-model:show={this.isOpen}\n className={this.ns.b('dialog')}\n close-on-popstate={true}\n >\n {{\n default: () => {\n return (\n <div\n id={this.id}\n style={this.cssVars}\n class={[\n this.ns.b('cherry'),\n this.ns.is('hidden', !this.isOpen),\n ]}\n ></div>\n );\n },\n }}\n </van-dialog>\n </div>\n );\n },\n});\n\nexport default IBizMarkDown;\n"],"names":["IBizMarkDown","exports","defineComponent","getMarkDownProps","getEditorEmits","props","emit","ns","useNamespace","c","currentVal","ref","editorPreview","id","createUUID","previewId","UIStore","useUIStore","cssVars","watch","headers","newVal","ibiz","urls","downloadUrl","fileUpload","file","callback","data","uploadUrl","url","_a","editor","previewImage","setCherryContent","val","util","calcFileUpDownUrl","params","immediate","deep","oldVal","getCherryHtml","result","getCherryContent","content","setCherryContent2","getMarkdown","editorOpts","theme","afterChange","beforeImageMounted","emoji","useUnicode","cherryOptions","header","anchorStyle","height","nextTick","Cherry","codemirror","editorPreviewInit","autofocus","toolbars","onMounted","editorInit","isOpen","target","defaultModel","behavior","event","calcTargetType","setTheme","value","onUnmounted","targetid","anchor","type","src","_createVNode","_resolveComponent","handlePreviewClose","$event"],"mappings":"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"}
|