@ctzy-web-client/plugin-component-vue 1.0.0 → 1.0.1

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.
Files changed (272) hide show
  1. package/es/_virtual/_plugin-vue_export-helper.mjs +9 -0
  2. package/es/advance-select/advance-operation.mjs +43 -0
  3. package/es/advance-select/advance-option.mjs +125 -0
  4. package/es/advance-select/advance-select.mjs +359 -0
  5. package/es/advance-select/events-helpers.mjs +29 -0
  6. package/es/advance-select/index.mjs +13 -0
  7. package/es/advance-select/use-advance-option.mjs +43 -0
  8. package/es/advance-select/use-advance-select.mjs +117 -0
  9. package/es/application-slot/application-slot.mjs +51 -0
  10. package/es/application-slot/breadcrumb-item.mjs +23 -0
  11. package/es/application-slot/header-tools-item.mjs +23 -0
  12. package/es/application-slot/index.mjs +16 -0
  13. package/es/breadcrumb-select/breadcrumb-select.mjs +155 -0
  14. package/es/breadcrumb-select/index.mjs +6 -0
  15. package/es/components.mjs +22 -0
  16. package/es/contextmenu/contextmenu-item.mjs +21 -0
  17. package/es/contextmenu/contextmenu.mjs +64 -0
  18. package/es/contextmenu/index.mjs +10 -0
  19. package/es/contextmenu/use-contextmenu.mjs +85 -0
  20. package/es/data-form/data-form-item.mjs +53 -0
  21. package/es/data-form/data-form.mjs +175 -0
  22. package/es/data-form/dynamic-component.mjs +23 -0
  23. package/es/data-form/form-components/Blots/AtBlot.mjs +25 -0
  24. package/es/data-form/form-components/bwa-date-picker.mjs +45 -0
  25. package/es/data-form/form-components/bwa-date-time-picker.mjs +50 -0
  26. package/es/data-form/form-components/bwa-input-float.mjs +43 -0
  27. package/es/data-form/form-components/bwa-input-integer.mjs +56 -0
  28. package/es/data-form/form-components/bwa-input.mjs +38 -0
  29. package/es/data-form/form-components/bwa-multi-select.mjs +35 -0
  30. package/es/data-form/form-components/bwa-rich-text-tinymce.mjs +234 -0
  31. package/es/data-form/form-components/bwa-rich-text.mjs +325 -0
  32. package/es/data-form/form-components/bwa-select.mjs +76 -0
  33. package/es/data-form/form-components/bwa-textarea.mjs +33 -0
  34. package/es/data-form/form-components/bwa-upload.mjs +159 -0
  35. package/es/data-form/form-components/bwa-user-multi-select.mjs +30 -0
  36. package/es/data-form/form-components/bwa-user-select.mjs +69 -0
  37. package/es/data-form/index.mjs +34 -0
  38. package/es/data-table/data-column-view.mjs +131 -0
  39. package/es/data-table/data-table-card.mjs +118 -0
  40. package/es/data-table/data-table-column.mjs +56 -0
  41. package/es/data-table/data-table.mjs +369 -0
  42. package/es/data-table/dynamic-component.mjs +48 -0
  43. package/es/data-table/index.mjs +13 -0
  44. package/es/data-table/use-datatable-drag.mjs +110 -0
  45. package/es/datatable-settings/datatable-settings.mjs +309 -0
  46. package/es/datatable-settings/index.mjs +6 -0
  47. package/es/date-range/date-picker.mjs +128 -0
  48. package/es/date-range/date-range.mjs +181 -0
  49. package/es/date-range/index.mjs +6 -0
  50. package/es/drag-list/constants.mjs +3 -0
  51. package/es/drag-list/drag-item.mjs +49 -0
  52. package/es/drag-list/drag-list.mjs +56 -0
  53. package/es/drag-list/index.mjs +6 -0
  54. package/es/drag-list/use-drag-list.mjs +154 -0
  55. package/es/dragable/constants.mjs +4 -0
  56. package/es/dragable/dragable-item.mjs +25 -0
  57. package/es/dragable/dragable-operation.mjs +32 -0
  58. package/es/dragable/dragable.mjs +31 -0
  59. package/es/dragable/index.mjs +15 -0
  60. package/es/dragable/use-dragable.mjs +134 -0
  61. package/es/filter-panel/conditions/condition.mjs +30 -0
  62. package/es/filter-panel/conditions/date-range-condition.mjs +46 -0
  63. package/es/filter-panel/conditions/department-condition/department-condition.mjs +81 -0
  64. package/es/filter-panel/conditions/department-condition/department-node.mjs +74 -0
  65. package/es/filter-panel/conditions/index.mjs +21 -0
  66. package/es/filter-panel/conditions/input-condition.mjs +83 -0
  67. package/es/filter-panel/conditions/multi-user-condition.mjs +64 -0
  68. package/es/filter-panel/conditions/multiple-menu-condition.mjs +41 -0
  69. package/es/filter-panel/conditions/single-menu-condition.mjs +68 -0
  70. package/es/filter-panel/conditions/single-user-condition.mjs +64 -0
  71. package/es/filter-panel/filter-panel-item.mjs +47 -0
  72. package/es/filter-panel/filter-panel.mjs +180 -0
  73. package/es/filter-panel/index.mjs +15 -0
  74. package/es/filter-panel/use-filter-panel-item.mjs +52 -0
  75. package/es/filter-panel/use-filter-panel.mjs +135 -0
  76. package/es/hooks/use-data/index.mjs +152 -0
  77. package/es/index.mjs +27 -0
  78. package/es/layout/index.mjs +6 -0
  79. package/es/layout/layout.mjs +86 -0
  80. package/es/make-installer.mjs +34 -0
  81. package/es/math/Rectangle.mjs +25 -0
  82. package/es/menu/index.mjs +6 -0
  83. package/es/menu/menu-item.mjs +75 -0
  84. package/es/menu/menu.mjs +60 -0
  85. package/es/node_modules/.pnpm/@vueuse_core@9.6.0_vue@3.2.41/node_modules/@vueuse/core/index.mjs +6372 -0
  86. package/es/node_modules/.pnpm/@vueuse_shared@9.6.0_vue@3.2.41/node_modules/@vueuse/shared/index.mjs +1517 -0
  87. package/es/panel/index.mjs +6 -0
  88. package/es/panel/panel.mjs +55 -0
  89. package/es/panel-tabs/index.mjs +6 -0
  90. package/es/panel-tabs/panel-tabs.mjs +66 -0
  91. package/es/pct-filter-panel/index.mjs +10 -0
  92. package/es/pct-filter-panel/pct-compents/index.mjs +10 -0
  93. package/es/pct-filter-panel/pct-compents/pct-Input-condition.mjs +71 -0
  94. package/es/pct-filter-panel/pct-compents/pct-date-range-condition.mjs +74 -0
  95. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition.mjs +186 -0
  96. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.mjs +147 -0
  97. package/es/pct-filter-panel/pct-filter-panel-item.mjs +48 -0
  98. package/es/pct-filter-panel/pct-filter-panel.mjs +251 -0
  99. package/es/pct-filter-panel/use-filter-panel-item.mjs +56 -0
  100. package/es/pct-filter-panel/use-filter-panel.mjs +127 -0
  101. package/es/plugins.mjs +5 -0
  102. package/es/progress/index.mjs +10 -0
  103. package/es/progress/progress-item.mjs +68 -0
  104. package/es/progress/progress.mjs +74 -0
  105. package/es/progress/use-progress.mjs +46 -0
  106. package/es/utils/db.mjs +9 -0
  107. package/es/utils.mjs +99 -0
  108. package/es/where-filter-panel/index.mjs +1 -0
  109. package/es/where-filter-panel/use-where-filter-panel.mjs +18 -0
  110. package/es/where-filter-panel/where-filter-panel.mjs +17 -0
  111. package/lib/_virtual/_plugin-vue_export-helper.js +13 -0
  112. package/lib/advance-select/advance-operation.js +47 -0
  113. package/lib/advance-select/advance-option.js +129 -0
  114. package/lib/advance-select/advance-select.js +363 -0
  115. package/lib/advance-select/events-helpers.js +33 -0
  116. package/lib/advance-select/index.js +20 -0
  117. package/lib/advance-select/use-advance-option.js +47 -0
  118. package/lib/advance-select/use-advance-select.js +122 -0
  119. package/lib/application-slot/application-slot.js +55 -0
  120. package/lib/application-slot/breadcrumb-item.js +27 -0
  121. package/lib/application-slot/header-tools-item.js +27 -0
  122. package/lib/application-slot/index.js +23 -0
  123. package/lib/breadcrumb-select/breadcrumb-select.js +159 -0
  124. package/lib/breadcrumb-select/index.js +11 -0
  125. package/lib/components.js +26 -0
  126. package/lib/contextmenu/contextmenu-item.js +25 -0
  127. package/lib/contextmenu/contextmenu.js +68 -0
  128. package/lib/contextmenu/index.js +16 -0
  129. package/lib/contextmenu/use-contextmenu.js +89 -0
  130. package/lib/data-form/data-form-item.js +57 -0
  131. package/lib/data-form/data-form.js +179 -0
  132. package/lib/data-form/dynamic-component.js +27 -0
  133. package/lib/data-form/form-components/Blots/AtBlot.js +31 -0
  134. package/lib/data-form/form-components/bwa-date-picker.js +49 -0
  135. package/lib/data-form/form-components/bwa-date-time-picker.js +54 -0
  136. package/lib/data-form/form-components/bwa-input-float.js +47 -0
  137. package/lib/data-form/form-components/bwa-input-integer.js +60 -0
  138. package/lib/data-form/form-components/bwa-input.js +42 -0
  139. package/lib/data-form/form-components/bwa-multi-select.js +39 -0
  140. package/lib/data-form/form-components/bwa-rich-text-tinymce.js +242 -0
  141. package/lib/data-form/form-components/bwa-rich-text.js +333 -0
  142. package/lib/data-form/form-components/bwa-select.js +80 -0
  143. package/lib/data-form/form-components/bwa-textarea.js +37 -0
  144. package/lib/data-form/form-components/bwa-upload.js +163 -0
  145. package/lib/data-form/form-components/bwa-user-multi-select.js +34 -0
  146. package/lib/data-form/form-components/bwa-user-select.js +73 -0
  147. package/lib/data-form/index.js +40 -0
  148. package/lib/data-table/data-column-view.js +135 -0
  149. package/lib/data-table/data-table-card.js +122 -0
  150. package/lib/data-table/data-table-column.js +60 -0
  151. package/lib/data-table/data-table.js +373 -0
  152. package/lib/data-table/dynamic-component.js +56 -0
  153. package/lib/data-table/index.js +20 -0
  154. package/lib/data-table/use-datatable-drag.js +114 -0
  155. package/lib/datatable-settings/datatable-settings.js +313 -0
  156. package/lib/datatable-settings/index.js +11 -0
  157. package/lib/date-range/date-picker.js +136 -0
  158. package/lib/date-range/date-range.js +189 -0
  159. package/lib/date-range/index.js +11 -0
  160. package/lib/drag-list/constants.js +7 -0
  161. package/lib/drag-list/drag-item.js +53 -0
  162. package/lib/drag-list/drag-list.js +60 -0
  163. package/lib/drag-list/index.js +11 -0
  164. package/lib/drag-list/use-drag-list.js +158 -0
  165. package/lib/dragable/constants.js +9 -0
  166. package/lib/dragable/dragable-item.js +29 -0
  167. package/lib/dragable/dragable-operation.js +36 -0
  168. package/lib/dragable/dragable.js +35 -0
  169. package/lib/dragable/index.js +22 -0
  170. package/lib/dragable/use-dragable.js +138 -0
  171. package/lib/filter-panel/conditions/condition.js +34 -0
  172. package/lib/filter-panel/conditions/date-range-condition.js +50 -0
  173. package/lib/filter-panel/conditions/department-condition/department-condition.js +85 -0
  174. package/lib/filter-panel/conditions/department-condition/department-node.js +78 -0
  175. package/lib/filter-panel/conditions/index.js +26 -0
  176. package/lib/filter-panel/conditions/input-condition.js +87 -0
  177. package/lib/filter-panel/conditions/multi-user-condition.js +68 -0
  178. package/lib/filter-panel/conditions/multiple-menu-condition.js +45 -0
  179. package/lib/filter-panel/conditions/single-menu-condition.js +72 -0
  180. package/lib/filter-panel/conditions/single-user-condition.js +68 -0
  181. package/lib/filter-panel/filter-panel-item.js +51 -0
  182. package/lib/filter-panel/filter-panel.js +184 -0
  183. package/lib/filter-panel/index.js +20 -0
  184. package/lib/filter-panel/use-filter-panel-item.js +56 -0
  185. package/lib/filter-panel/use-filter-panel.js +139 -0
  186. package/lib/hooks/use-data/index.js +157 -0
  187. package/lib/index.js +60 -0
  188. package/lib/layout/index.js +11 -0
  189. package/lib/layout/layout.js +90 -0
  190. package/lib/make-installer.js +62 -0
  191. package/lib/math/Rectangle.js +29 -0
  192. package/lib/menu/index.js +11 -0
  193. package/lib/menu/menu-item.js +79 -0
  194. package/lib/menu/menu.js +64 -0
  195. package/lib/node_modules/.pnpm/@vueuse_core@9.6.0_vue@3.2.41/node_modules/@vueuse/core/index.js +6635 -0
  196. package/lib/node_modules/.pnpm/@vueuse_shared@9.6.0_vue@3.2.41/node_modules/@vueuse/shared/index.js +1628 -0
  197. package/lib/panel/index.js +11 -0
  198. package/lib/panel/panel.js +59 -0
  199. package/lib/panel-tabs/index.js +11 -0
  200. package/lib/panel-tabs/panel-tabs.js +70 -0
  201. package/lib/pct-filter-panel/index.js +14 -0
  202. package/lib/pct-filter-panel/pct-compents/index.js +16 -0
  203. package/lib/pct-filter-panel/pct-compents/pct-Input-condition.js +75 -0
  204. package/lib/pct-filter-panel/pct-compents/pct-date-range-condition.js +78 -0
  205. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition.js +190 -0
  206. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.js +151 -0
  207. package/lib/pct-filter-panel/pct-filter-panel-item.js +52 -0
  208. package/lib/pct-filter-panel/pct-filter-panel.js +255 -0
  209. package/lib/pct-filter-panel/use-filter-panel-item.js +60 -0
  210. package/lib/pct-filter-panel/use-filter-panel.js +131 -0
  211. package/lib/plugins.js +9 -0
  212. package/lib/progress/index.js +16 -0
  213. package/lib/progress/progress-item.js +72 -0
  214. package/lib/progress/progress.js +78 -0
  215. package/lib/progress/use-progress.js +51 -0
  216. package/lib/utils/db.js +17 -0
  217. package/lib/utils.js +110 -0
  218. package/lib/where-filter-panel/index.js +2 -0
  219. package/lib/where-filter-panel/use-where-filter-panel.js +22 -0
  220. package/lib/where-filter-panel/where-filter-panel.js +21 -0
  221. package/package.json +1 -1
  222. package/style/advance-select.css +1 -0
  223. package/style/breadcrumb-select.css +1 -0
  224. package/style/common.css +1 -0
  225. package/style/contextmenu.css +1 -0
  226. package/style/data-form.css +1 -0
  227. package/style/data-table.css +1 -0
  228. package/style/datatable-settings.css +1 -0
  229. package/style/date-range.css +1 -0
  230. package/style/department-condition.css +1 -0
  231. package/style/drag-list.css +1 -0
  232. package/style/dragable.css +1 -0
  233. package/style/filter-panel.css +1 -0
  234. package/style/index.css +1 -0
  235. package/style/input-condition.css +1 -0
  236. package/style/layout.css +1 -0
  237. package/style/menu.css +1 -0
  238. package/style/panel-tabs.css +1 -0
  239. package/style/panel.css +1 -0
  240. package/style/pct-filter-panel.css +1 -0
  241. package/style/progress.css +1 -0
  242. package/style/rich-text.css +1 -0
  243. package/style/var.css +1 -0
  244. /package/style/{advance-select.scss → src/advance-select.scss} +0 -0
  245. /package/style/{breadcrumb-select.scss → src/breadcrumb-select.scss} +0 -0
  246. /package/style/{common → src/common}/var.scss +0 -0
  247. /package/style/{common.scss → src/common.scss} +0 -0
  248. /package/style/{contextmenu.scss → src/contextmenu.scss} +0 -0
  249. /package/style/{data-form.scss → src/data-form.scss} +0 -0
  250. /package/style/{data-table.scss → src/data-table.scss} +0 -0
  251. /package/style/{datatable-settings.scss → src/datatable-settings.scss} +0 -0
  252. /package/style/{date-range.scss → src/date-range.scss} +0 -0
  253. /package/style/{department-condition.scss → src/department-condition.scss} +0 -0
  254. /package/style/{drag-list.scss → src/drag-list.scss} +0 -0
  255. /package/style/{dragable.scss → src/dragable.scss} +0 -0
  256. /package/style/{filter-panel.scss → src/filter-panel.scss} +0 -0
  257. /package/style/{index.scss → src/index.scss} +0 -0
  258. /package/style/{input-condition.scss → src/input-condition.scss} +0 -0
  259. /package/style/{layout.scss → src/layout.scss} +0 -0
  260. /package/style/{menu.scss → src/menu.scss} +0 -0
  261. /package/style/{mixins → src/mixins}/_var.scss +0 -0
  262. /package/style/{mixins → src/mixins}/config.scss +0 -0
  263. /package/style/{mixins → src/mixins}/function.scss +0 -0
  264. /package/style/{mixins → src/mixins}/mixins.scss +0 -0
  265. /package/style/{panel-tabs.scss → src/panel-tabs.scss} +0 -0
  266. /package/style/{panel.scss → src/panel.scss} +0 -0
  267. /package/style/{pct-filter-panel.scss → src/pct-filter-panel.scss} +0 -0
  268. /package/style/{progress.scss → src/progress.scss} +0 -0
  269. /package/style/{rich-text.scss → src/rich-text.scss} +0 -0
  270. /package/style/{theme → src/theme}/theme.scss +0 -0
  271. /package/style/{theme → src/theme}/var.scss +0 -0
  272. /package/style/{var.scss → src/var.scss} +0 -0
@@ -0,0 +1,9 @@
1
+ var _export_sfc = (sfc, props) => {
2
+ const target = sfc.__vccOpts || sfc;
3
+ for (const [key, val] of props) {
4
+ target[key] = val;
5
+ }
6
+ return target;
7
+ };
8
+
9
+ export { _export_sfc as default };
@@ -0,0 +1,43 @@
1
+ import { defineComponent, inject, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from 'vue';
2
+ import { advanceSelectKey, useNamespace } from 'web-base-client-vue';
3
+ import _export_sfc from '../_virtual/_plugin-vue_export-helper.mjs';
4
+
5
+ const __default__ = defineComponent({
6
+ name: "BwaAdvanceOperation"
7
+ });
8
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
9
+ props: {
10
+ border: {
11
+ type: Boolean,
12
+ default: false
13
+ },
14
+ type: {
15
+ type: String,
16
+ default: "button"
17
+ }
18
+ },
19
+ emits: ["click"],
20
+ setup(__props, { emit }) {
21
+ const props = __props;
22
+ const advanceSelect = inject(advanceSelectKey);
23
+ const clickHandle = () => {
24
+ if (props.type !== "button") {
25
+ return;
26
+ }
27
+ advanceSelect.hidePoppper();
28
+ emit("click");
29
+ };
30
+ const ns = useNamespace("advance");
31
+ return (_ctx, _cache) => {
32
+ return openBlock(), createElementBlock("div", {
33
+ class: normalizeClass([unref(ns).be("select", "operation"), unref(ns).is("border", __props.border)]),
34
+ onClick: clickHandle
35
+ }, [
36
+ renderSlot(_ctx.$slots, "default")
37
+ ], 2);
38
+ };
39
+ }
40
+ });
41
+ var AdvanceOperation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "advance-operation.vue"]]);
42
+
43
+ export { AdvanceOperation as default };
@@ -0,0 +1,125 @@
1
+ import 'element-plus';
2
+ import { getCurrentInstance, ref, resolveComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createCommentVNode, createElementVNode, renderSlot, createVNode, withCtx, createTextVNode, toDisplayString, createBlock } from 'vue';
3
+ import { useNamespace } from 'web-base-client-vue';
4
+ import { useEvent } from './events-helpers.mjs';
5
+ import { useAdvanceOption } from './use-advance-option.mjs';
6
+ import _export_sfc from '../_virtual/_plugin-vue_export-helper.mjs';
7
+
8
+ const _sfc_main = {
9
+ name: "BwaAdvanceOption",
10
+ props: {
11
+ label: {
12
+ type: [String, Number, Boolean]
13
+ },
14
+ value: {
15
+ type: null
16
+ }
17
+ },
18
+ expose: ["currentLabel"],
19
+ setup(props, { expose }) {
20
+ const instance = getCurrentInstance();
21
+ const ns = useNamespace("advance");
22
+ const { handleOptionMouseEnter } = useEvent(ns);
23
+ const { advanceSelect, currentLabel, itemSelected, showSelectIcon, source } = useAdvanceOption(props);
24
+ const show = ref(true);
25
+ const clickFlag = ref(true);
26
+ const contentText = ref();
27
+ expose({ currentLabel });
28
+ const filterOptionClick = () => {
29
+ advanceSelect.handleOptionSelect(instance.proxy);
30
+ };
31
+ const isShow = async () => {
32
+ const dom = document.querySelector(`.content-label-${props.value} .bwa-advance-option__content-label`);
33
+ if (dom) {
34
+ const scrollWidth = document.querySelector(`.content-label-${props.value} .bwa-advance-option__content-label`).scrollWidth;
35
+ const offsetWidth = document.querySelector(`.content-label-${props.value} .bwa-advance-option__content-label`).offsetWidth;
36
+ if (scrollWidth > offsetWidth) {
37
+ show.value = false;
38
+ } else {
39
+ show.value = true;
40
+ }
41
+ }
42
+ };
43
+ const listenerClickFunction = () => {
44
+ setTimeout(() => {
45
+ isShow();
46
+ }, 100);
47
+ };
48
+ return {
49
+ show,
50
+ ns,
51
+ currentLabel,
52
+ itemSelected,
53
+ showSelectIcon,
54
+ filterOptionClick,
55
+ handleOptionMouseEnter,
56
+ source
57
+ };
58
+ }
59
+ };
60
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
61
+ const _component_ElCheckbox = resolveComponent("ElCheckbox");
62
+ const _component_ElTooltip = resolveComponent("ElTooltip");
63
+ const _component_Select = resolveComponent("Select");
64
+ const _component_ElIcon = resolveComponent("ElIcon");
65
+ return openBlock(), createElementBlock("div", {
66
+ class: normalizeClass($setup.ns.b("option")),
67
+ onClick: _cache[1] || (_cache[1] = withModifiers((...args) => $setup.filterOptionClick && $setup.filterOptionClick(...args), ["stop"]))
68
+ }, [
69
+ createCommentVNode(' @mouseenter="handleOptionMouseEnter" '),
70
+ createElementVNode("div", {
71
+ class: normalizeClass(`${$setup.ns.be("option", "content")} content-label-${$props.value}`)
72
+ }, [
73
+ renderSlot(_ctx.$slots, "default", {}, () => [
74
+ createVNode(_component_ElTooltip, {
75
+ placement: "top",
76
+ "append-to": ".bwa-application",
77
+ disabled: $setup.currentLabel.length < 16
78
+ }, {
79
+ content: withCtx(() => [
80
+ createTextVNode(toDisplayString($setup.currentLabel), 1)
81
+ ]),
82
+ default: withCtx(() => [
83
+ createElementVNode("div", {
84
+ class: normalizeClass($setup.ns.be("option", "content-label")),
85
+ ref: "contentText"
86
+ }, [
87
+ $setup.source === "pct" && !$setup.showSelectIcon ? (openBlock(), createBlock(_component_ElCheckbox, {
88
+ key: 0,
89
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
90
+ }, ["prevent"])),
91
+ class: normalizeClass($setup.ns.be("filter", "checkbox")),
92
+ modelValue: $setup.itemSelected,
93
+ style: { "height": "26px" }
94
+ }, {
95
+ default: withCtx(() => [
96
+ createElementVNode("div", {
97
+ class: normalizeClass($setup.ns.be("option", "content-label")),
98
+ style: { "width": "178px" }
99
+ }, toDisplayString($setup.currentLabel), 3)
100
+ ]),
101
+ _: 1
102
+ }, 8, ["class", "modelValue"])) : (openBlock(), createElementBlock("div", {
103
+ key: 1,
104
+ class: normalizeClass([$setup.ns.be("option", "content-label"), $setup.ns.is("selected", $setup.source === "pct" && $setup.itemSelected && $setup.showSelectIcon)])
105
+ }, toDisplayString($setup.currentLabel), 3))
106
+ ], 2)
107
+ ]),
108
+ _: 1
109
+ }, 8, ["disabled"])
110
+ ])
111
+ ], 2),
112
+ $setup.itemSelected && $setup.showSelectIcon ? (openBlock(), createBlock(_component_ElIcon, {
113
+ key: 0,
114
+ class: normalizeClass($setup.ns.be("option", "selected"))
115
+ }, {
116
+ default: withCtx(() => [
117
+ createVNode(_component_Select)
118
+ ]),
119
+ _: 1
120
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
121
+ ], 2);
122
+ }
123
+ var AdvanceOption = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "advance-option.vue"]]);
124
+
125
+ export { AdvanceOption as default };
@@ -0,0 +1,359 @@
1
+ import { defineComponent, inject, toRefs, useSlots, computed, unref, watch, onBeforeUnmount, provide, reactive, getCurrentInstance, resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, createVNode, isRef, withCtx, renderSlot, toDisplayString, createCommentVNode, createBlock, createElementVNode, Fragment, createTextVNode, withDirectives, renderList, normalizeStyle } from 'vue';
2
+ import { Observable, debounceTime } from 'rxjs';
3
+ import { useGlobalConfig, filterPanelItemKey, useNamespace, advanceSelectKey } from 'web-base-client-vue';
4
+ import { dataProps, useData } from '../hooks/use-data/index.mjs';
5
+ import AdvanceOperation from './advance-operation.mjs';
6
+ import AdvanceOption from './advance-option.mjs';
7
+ import { useAdvanceSelectStates, useAdvanceSelect } from './use-advance-select.mjs';
8
+ import _export_sfc from '../_virtual/_plugin-vue_export-helper.mjs';
9
+
10
+ const __default__ = defineComponent({
11
+ name: "BwaAdvanceSelect"
12
+ });
13
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
14
+ props: {
15
+ ...dataProps,
16
+ options: {
17
+ type: Array
18
+ },
19
+ modelValue: {
20
+ type: [Array, String, Number, Boolean]
21
+ },
22
+ listHeight: {
23
+ type: String,
24
+ default: "300px"
25
+ },
26
+ width: {
27
+ type: String,
28
+ default: "240px"
29
+ },
30
+ multiple: {
31
+ type: Boolean,
32
+ default: true
33
+ },
34
+ multipleLimit: {
35
+ type: Number,
36
+ default: 0
37
+ },
38
+ required: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ showSearch: {
43
+ type: Boolean,
44
+ default: true
45
+ },
46
+ searchPlaceholder: {
47
+ type: String,
48
+ default: ""
49
+ },
50
+ showSelection: {
51
+ type: Boolean,
52
+ default: true
53
+ },
54
+ showSelectIcon: {
55
+ type: Boolean,
56
+ default: true
57
+ },
58
+ closeAfterSelection: {
59
+ typoe: Boolean,
60
+ default: false
61
+ },
62
+ loading: {
63
+ type: Boolean,
64
+ default: false
65
+ },
66
+ virtualRef: null,
67
+ virtualTriggering: {
68
+ type: Boolean,
69
+ default: false
70
+ },
71
+ source: "",
72
+ borderRadius: {
73
+ type: String,
74
+ default: "0px"
75
+ }
76
+ },
77
+ emits: ["update:modelValue", "search", "visible-change"],
78
+ setup(__props, { expose, emit }) {
79
+ const props = __props;
80
+ const debounceDelay = useGlobalConfig("debounceDelay", 500);
81
+ const filterPanelItem = inject(filterPanelItemKey, null);
82
+ const { listHeight, width, showSearch, showSelection, multiple, modelValue, borderRadius } = toRefs(props);
83
+ const slots = useSlots();
84
+ const ns = useNamespace("advance");
85
+ const states = useAdvanceSelectStates(props);
86
+ const {
87
+ options: optionInstances,
88
+ optionsCount,
89
+ search,
90
+ isShowPopper,
91
+ selected
92
+ } = toRefs(states);
93
+ const column = computed(() => {
94
+ var _a;
95
+ return (_a = filterPanelItem == null ? void 0 : filterPanelItem.column) != null ? _a : null;
96
+ });
97
+ const {
98
+ selectedLabel,
99
+ onOptionCreate,
100
+ onOptionDestroy,
101
+ handleClearClick,
102
+ handleOptionSelect,
103
+ hidePoppper
104
+ } = useAdvanceSelect(props, states, {
105
+ emit
106
+ });
107
+ const disabled = computed(() => !unref(isShowPopper));
108
+ const { data: itfData, loading: dataLoading } = useData(disabled, search);
109
+ const loading = computed(() => props.loading || unref(dataLoading));
110
+ const data = computed(() => props.options || unref(itfData));
111
+ if (multiple.value && !Array.isArray(modelValue.value)) {
112
+ emit("update:modelValue", []);
113
+ }
114
+ if (!multiple.value && Array.isArray(modelValue.value)) {
115
+ emit("update:modelValue", "");
116
+ }
117
+ watch(isShowPopper, (isShowPopper2) => {
118
+ emit("visible-change", isShowPopper2);
119
+ });
120
+ const subscription = new Observable(
121
+ (observer) => watch(search, observer.next.bind(observer))
122
+ ).pipe(debounceTime(unref(debounceDelay))).subscribe(emit.bind(null, "search"));
123
+ onBeforeUnmount(subscription.unsubscribe.bind(subscription));
124
+ provide(
125
+ advanceSelectKey,
126
+ reactive({
127
+ props,
128
+ options: optionInstances,
129
+ selected,
130
+ onOptionCreate,
131
+ onOptionDestroy,
132
+ handleOptionSelect,
133
+ hidePoppper,
134
+ select: getCurrentInstance()
135
+ })
136
+ );
137
+ const popperStyle = reactive({
138
+ padding: "0",
139
+ borderRadius,
140
+ width,
141
+ border: "none",
142
+ boxShadow: `0 3px 12px 0 rgb(0 0 0 / 12%), 0 0.5px 1.5px 0 rgb(0 0 0 / 8%)`
143
+ });
144
+ expose({
145
+ handleClearClick
146
+ });
147
+ return (_ctx, _cache) => {
148
+ const _component_CaretBottom = resolveComponent("CaretBottom");
149
+ const _component_ElIcon = resolveComponent("ElIcon");
150
+ const _component_ElInput = resolveComponent("ElInput");
151
+ const _component_ElButton = resolveComponent("ElButton");
152
+ const _component_ElScrollbar = resolveComponent("ElScrollbar");
153
+ const _component_ElTooltip = resolveComponent("ElTooltip");
154
+ const _directive_loading = resolveDirective("loading");
155
+ return openBlock(), createElementBlock("div", {
156
+ class: normalizeClass(unref(ns).b("select")),
157
+ "data-prefix": "el",
158
+ ref: "selectWrapper"
159
+ }, [
160
+ createVNode(_component_ElTooltip, {
161
+ class: normalizeClass(unref(ns).be("select", "tooltip")),
162
+ effect: "light",
163
+ trigger: "click",
164
+ placement: "bottom-start",
165
+ "show-arrow": false,
166
+ "append-to": ".bwa-application",
167
+ "popper-style": popperStyle,
168
+ "popper-class": unref(ns).be("select", "popper"),
169
+ persistent: true,
170
+ visible: unref(isShowPopper),
171
+ "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => isRef(isShowPopper) ? isShowPopper.value = $event : null),
172
+ "virtual-ref": __props.virtualRef,
173
+ "virtual-triggering": __props.virtualTriggering
174
+ }, {
175
+ default: withCtx(() => [
176
+ renderSlot(_ctx.$slots, "reference", {
177
+ label: unref(selectedLabel),
178
+ column: unref(column)
179
+ }, () => [
180
+ __props.source ? (openBlock(), createElementBlock("div", {
181
+ key: 0,
182
+ class: normalizeClass([
183
+ unref(ns).be("select", "pct-reference"),
184
+ unref(ns).is("active", unref(isShowPopper))
185
+ ])
186
+ }, [
187
+ renderSlot(_ctx.$slots, "reference-content", {
188
+ label: unref(selectedLabel),
189
+ column: unref(column),
190
+ selected: unref(selected)
191
+ }, () => [
192
+ renderSlot(_ctx.$slots, "label", {}, () => [
193
+ unref(column) ? (openBlock(), createElementBlock("span", {
194
+ key: 0,
195
+ class: normalizeClass(unref(ns).be("select", "label"))
196
+ }, toDisplayString(unref(column).title), 3)) : createCommentVNode("v-if", true)
197
+ ]),
198
+ renderSlot(_ctx.$slots, "value", { selected: unref(selected) }, () => [
199
+ unref(multiple) ? (openBlock(), createElementBlock("span", {
200
+ key: 0,
201
+ class: normalizeClass(unref(ns).be("select", "content"))
202
+ }, toDisplayString(unref(selectedLabel).length ? unref(selectedLabel).join(",") : "\u5168\u90E8"), 3)) : (openBlock(), createElementBlock("span", {
203
+ key: 1,
204
+ class: normalizeClass(unref(ns).be("select", "content"))
205
+ }, toDisplayString(unref(selectedLabel) ? unref(selectedLabel) : "\u5168\u90E8"), 3))
206
+ ]),
207
+ __props.showSelectIcon ? (openBlock(), createBlock(_component_ElIcon, {
208
+ key: 0,
209
+ class: normalizeClass(unref(ns).be("select", "caret"))
210
+ }, {
211
+ default: withCtx(() => [
212
+ renderSlot(_ctx.$slots, "icon", {}, () => [
213
+ createVNode(_component_CaretBottom)
214
+ ])
215
+ ]),
216
+ _: 3
217
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
218
+ ])
219
+ ], 2)) : (openBlock(), createElementBlock("div", {
220
+ key: 1,
221
+ class: normalizeClass([
222
+ unref(ns).be("select", "reference"),
223
+ unref(ns).is("active", unref(isShowPopper))
224
+ ])
225
+ }, [
226
+ renderSlot(_ctx.$slots, "reference-content", {
227
+ label: unref(selectedLabel),
228
+ column: unref(column),
229
+ selected: unref(selected)
230
+ }, () => [
231
+ renderSlot(_ctx.$slots, "label", {}, () => [
232
+ unref(column) ? (openBlock(), createElementBlock("span", {
233
+ key: 0,
234
+ class: normalizeClass(unref(ns).be("select", "label"))
235
+ }, toDisplayString(unref(column).title), 3)) : createCommentVNode("v-if", true)
236
+ ]),
237
+ renderSlot(_ctx.$slots, "value", { selected: unref(selected) }, () => [
238
+ unref(multiple) ? (openBlock(), createElementBlock("span", {
239
+ key: 0,
240
+ class: normalizeClass(unref(ns).be("select", "content"))
241
+ }, toDisplayString(unref(selectedLabel).length ? unref(selectedLabel).join(",") : "\u5168\u90E8"), 3)) : (openBlock(), createElementBlock("span", {
242
+ key: 1,
243
+ class: normalizeClass(unref(ns).be("select", "content"))
244
+ }, toDisplayString(unref(selectedLabel) ? unref(selectedLabel) : "\u5168\u90E8"), 3))
245
+ ])
246
+ ]),
247
+ __props.showSelectIcon ? (openBlock(), createBlock(_component_ElIcon, {
248
+ key: 0,
249
+ class: normalizeClass(unref(ns).be("select", "caret"))
250
+ }, {
251
+ default: withCtx(() => [
252
+ renderSlot(_ctx.$slots, "icon", {}, () => [
253
+ createVNode(_component_CaretBottom)
254
+ ])
255
+ ]),
256
+ _: 3
257
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
258
+ ], 2))
259
+ ])
260
+ ]),
261
+ content: withCtx(() => [
262
+ createElementVNode("div", {
263
+ class: normalizeClass([unref(ns).be("select", "content"), unref(ns).is("single", !unref(multiple))]),
264
+ style: { "margin": "6px" }
265
+ }, [
266
+ renderSlot(_ctx.$slots, "contentTop"),
267
+ unref(showSearch) ? (openBlock(), createElementBlock("div", {
268
+ key: 0,
269
+ class: normalizeClass(unref(ns).be("select", "input-wrapper"))
270
+ }, [
271
+ createVNode(_component_ElInput, {
272
+ modelValue: unref(search),
273
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(search) ? search.value = $event : null),
274
+ class: normalizeClass(unref(ns).be("select", "input")),
275
+ placeholder: __props.searchPlaceholder,
276
+ type: "text",
277
+ "prefix-icon": "Search",
278
+ clearable: ""
279
+ }, null, 8, ["modelValue", "class", "placeholder"])
280
+ ], 2)) : createCommentVNode("v-if", true),
281
+ createElementVNode("div", {
282
+ class: normalizeClass(unref(ns).be("select", "operation-wrapper"))
283
+ }, [
284
+ unref(multiple) || !__props.required ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
285
+ unref(showSelection) ? (openBlock(), createBlock(AdvanceOperation, {
286
+ key: 0,
287
+ class: normalizeClass(unref(ns).be("select", "selection-wrapper")),
288
+ type: "selection",
289
+ border: true
290
+ }, {
291
+ default: withCtx(() => [
292
+ unref(multiple) ? (openBlock(), createElementBlock("span", {
293
+ key: 0,
294
+ class: normalizeClass([
295
+ unref(ns).be("select", "selection"),
296
+ unref(ns).is("has-selected", !!unref(selected).length)
297
+ ])
298
+ }, " \u5DF2\u9009" + toDisplayString(unref(selected).length) + "\u9879 ", 3)) : createCommentVNode("v-if", true),
299
+ !__props.required ? (openBlock(), createBlock(_component_ElButton, {
300
+ key: 1,
301
+ link: "",
302
+ type: "primary",
303
+ class: normalizeClass(unref(ns).be("select", "clear")),
304
+ onClick: unref(handleClearClick)
305
+ }, {
306
+ default: withCtx(() => [
307
+ createTextVNode(" \u6E05\u9664\u9009\u9879 ")
308
+ ]),
309
+ _: 1
310
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
311
+ ]),
312
+ _: 1
313
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
314
+ ], 64)) : createCommentVNode("v-if", true),
315
+ renderSlot(_ctx.$slots, "operation")
316
+ ], 2),
317
+ withDirectives((openBlock(), createElementBlock("div", {
318
+ class: normalizeClass(unref(ns).be("select", "list"))
319
+ }, [
320
+ createVNode(_component_ElScrollbar, { "max-height": unref(listHeight) }, {
321
+ default: withCtx(() => [
322
+ renderSlot(_ctx.$slots, "default", {}, () => [
323
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(data), (item) => {
324
+ return openBlock(), createBlock(AdvanceOption, {
325
+ key: item.value,
326
+ value: item.value,
327
+ label: item.label
328
+ }, null, 8, ["value", "label"]);
329
+ }), 128))
330
+ ])
331
+ ]),
332
+ _: 3
333
+ }, 8, ["max-height"]),
334
+ !unref(optionsCount) ? renderSlot(_ctx.$slots, "empy", { key: 0 }, () => [
335
+ createElementVNode("div", {
336
+ class: normalizeClass(unref(ns).be("select", "empty"))
337
+ }, "\u672A\u5339\u914D\u5230\u76F8\u5173\u6761\u76EE", 2)
338
+ ]) : createCommentVNode("v-if", true)
339
+ ], 2)), [
340
+ [_directive_loading, unref(loading)]
341
+ ]),
342
+ unref(slots).contentBottom ? (openBlock(), createElementBlock("div", {
343
+ key: 1,
344
+ class: normalizeClass(unref(ns).be("select", "bottom")),
345
+ style: normalizeStyle({ "boxShadow": __props.source ? "none" : "", "padding": __props.source ? "0" : "4px 0px" })
346
+ }, [
347
+ renderSlot(_ctx.$slots, "contentBottom")
348
+ ], 6)) : createCommentVNode("v-if", true)
349
+ ], 2)
350
+ ]),
351
+ _: 3
352
+ }, 8, ["class", "popper-style", "popper-class", "visible", "virtual-ref", "virtual-triggering"])
353
+ ], 2);
354
+ };
355
+ }
356
+ });
357
+ var AdvanceSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "advance-select.vue"]]);
358
+
359
+ export { AdvanceSelect as default };
@@ -0,0 +1,29 @@
1
+ import { inject } from 'vue';
2
+ import { advanceSelectKey } from 'web-base-client-vue';
3
+ import { getStyle } from 'element-plus/es/utils/index';
4
+ import { createTablePopper } from 'element-plus/es/components/table/src/util';
5
+
6
+ function useEvent(ns) {
7
+ const {
8
+ select: advanceSelect
9
+ } = inject(advanceSelectKey, {});
10
+ const handleOptionMouseEnter = (event, tooltipEffect) => {
11
+ const content = event.target.querySelector("." + ns.be("option", "content"));
12
+ const range = document.createRange();
13
+ range.setStart(content, 0);
14
+ range.setEnd(content, content.childNodes.length);
15
+ const rangeWidth = range.getBoundingClientRect().width;
16
+ const padding = (Number.parseInt(getStyle(content, "paddingLeft"), 10) || 0) + Number.parseInt(getStyle(content, "paddingRight"), 10) || 0;
17
+ if (rangeWidth + padding > content.offsetWidth || content.scrollWidth > content.offsetWidth) {
18
+ createTablePopper(advanceSelect == null ? void 0 : advanceSelect.refs.selectWrapper, content, content.innerText || content.textContent, {
19
+ placement: "top",
20
+ strategy: "fixed"
21
+ }, "dark");
22
+ }
23
+ };
24
+ return {
25
+ handleOptionMouseEnter
26
+ };
27
+ }
28
+
29
+ export { useEvent };
@@ -0,0 +1,13 @@
1
+ import { withInstall } from 'element-plus/es/utils/vue/install';
2
+ import AdvanceSelect from './advance-select.mjs';
3
+ import AdvanceOption from './advance-option.mjs';
4
+ import AdvanceOperation from './advance-operation.mjs';
5
+
6
+ const BwaAdvanceSelect = withInstall(AdvanceSelect, {
7
+ AdvanceOption,
8
+ AdvanceOperation
9
+ });
10
+ const BwaAdvanceOption = withInstall(AdvanceOption);
11
+ const BwaAdvanceOperation = withInstall(AdvanceOperation);
12
+
13
+ export { BwaAdvanceOperation, BwaAdvanceOption, BwaAdvanceSelect, BwaAdvanceSelect as default };
@@ -0,0 +1,43 @@
1
+ import { inject, getCurrentInstance, computed, watch, onMounted, onUnmounted } from 'vue';
2
+ import { advanceSelectKey } from 'web-base-client-vue';
3
+
4
+ const useAdvanceOption = (props) => {
5
+ const advanceSelect = inject(advanceSelectKey);
6
+ const instance = getCurrentInstance();
7
+ const currentLabel = computed(() => props.label || props.value);
8
+ const showSelectIcon = computed(() => {
9
+ var _a, _b;
10
+ return (_b = (_a = advanceSelect == null ? void 0 : advanceSelect.props) == null ? void 0 : _a.showSelectIcon) != null ? _b : true;
11
+ });
12
+ const itemSelected = computed(() => {
13
+ if (!advanceSelect.props.multiple) {
14
+ return advanceSelect.props.modelValue === props.value || advanceSelect.props.modelValue === props.value + "";
15
+ } else {
16
+ return (advanceSelect.props.modelValue || []).includes(props.value);
17
+ }
18
+ });
19
+ const source = computed(() => {
20
+ return advanceSelect.props.source;
21
+ });
22
+ watch(() => props.value, (val, oldVal) => {
23
+ if (!Object.is(val, oldVal)) {
24
+ advanceSelect.onOptionDestroy(oldVal, instance.proxy);
25
+ advanceSelect.onOptionCreate(instance.proxy);
26
+ }
27
+ });
28
+ onMounted(() => {
29
+ advanceSelect.onOptionCreate(instance.proxy);
30
+ });
31
+ onUnmounted(() => {
32
+ advanceSelect.onOptionDestroy(props.value, instance.proxy);
33
+ });
34
+ return {
35
+ advanceSelect,
36
+ itemSelected,
37
+ currentLabel,
38
+ showSelectIcon,
39
+ source
40
+ };
41
+ };
42
+
43
+ export { useAdvanceOption };