bm-admin-ui 1.0.82-alpha → 1.0.84-alpha

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 (41) hide show
  1. package/es/components/attachment/index.js +273 -0
  2. package/es/components/breadcrumb/index.js +158 -0
  3. package/es/components/button/index.js +49 -0
  4. package/es/components/edit-form/index.js +1186 -0
  5. package/es/components/editor/index.js +12554 -0
  6. package/es/components/feedback/index.js +295 -0
  7. package/es/components/float-table/index.js +3511 -0
  8. package/es/components/flow-designer/index.js +1317 -0
  9. package/es/components/form-create/index.js +20978 -0
  10. package/es/components/form-designer/index.js +4514 -0
  11. package/es/components/index.js +19 -0
  12. package/es/components/input-tags-display/index.js +226 -0
  13. package/es/components/over-tooltips/index.js +133 -0
  14. package/es/components/search-filter/index.js +449 -0
  15. package/es/components/select-all/index.js +172 -0
  16. package/es/components/shops-filter/index.js +453 -0
  17. package/es/components/staffs-selector/index.js +728 -0
  18. package/es/components/timeline/index.js +168 -0
  19. package/es/components/upload/index.js +909 -0
  20. package/es/components/videoView/index.js +100 -0
  21. package/lib/components/attachment/index.js +278 -0
  22. package/lib/components/breadcrumb/index.js +168 -0
  23. package/lib/components/button/index.js +58 -0
  24. package/lib/components/edit-form/index.js +1195 -0
  25. package/lib/components/editor/index.js +12559 -0
  26. package/lib/components/feedback/index.js +309 -0
  27. package/lib/components/float-table/index.js +3516 -0
  28. package/lib/components/flow-designer/index.js +1329 -0
  29. package/lib/components/form-create/index.js +20990 -0
  30. package/lib/components/form-designer/index.js +4525 -0
  31. package/lib/components/index.js +140 -0
  32. package/lib/components/input-tags-display/index.js +237 -0
  33. package/lib/components/over-tooltips/index.js +138 -0
  34. package/lib/components/search-filter/index.js +459 -0
  35. package/lib/components/select-all/index.js +181 -0
  36. package/lib/components/shops-filter/index.js +465 -0
  37. package/lib/components/staffs-selector/index.js +733 -0
  38. package/lib/components/timeline/index.js +174 -0
  39. package/lib/components/upload/index.js +914 -0
  40. package/lib/components/videoView/index.js +105 -0
  41. package/package.json +1 -1
@@ -0,0 +1,449 @@
1
+ import { withInstall } from 'bm-admin-ui/es/utils/with-install';
2
+ import { defineComponent, ref, computed, resolveComponent, openBlock, createElementBlock, normalizeStyle, unref, createTextVNode, toDisplayString, createBlock, createCommentVNode, createElementVNode, createVNode, withCtx, getCurrentInstance, reactive, watch, mergeProps, isRef, withModifiers, h, onBeforeUnmount, nextTick, normalizeClass } from 'vue';
3
+ import FormCreateCtr from '@form-create/ant-design-vue';
4
+ import { UpOutlined, DownOutlined, SearchOutlined } from '@ant-design/icons-vue';
5
+ import ASelect from 'ant-design-vue/lib/select';
6
+
7
+ const searchResetBtnProps = {
8
+ showExpandBtn: {
9
+ type: Boolean,
10
+ default: false,
11
+ },
12
+ showSearchIcon: {
13
+ type: Boolean,
14
+ default: false,
15
+ },
16
+ expandPlacement: {
17
+ type: String,
18
+ default: 'left',
19
+ },
20
+ expandText: {
21
+ type: String,
22
+ default: '展开',
23
+ },
24
+ collapseText: {
25
+ type: String,
26
+ default: '收起',
27
+ },
28
+ gutter: {
29
+ type: Array,
30
+ default() {
31
+ return [24, 16];
32
+ },
33
+ },
34
+ loading: {
35
+ type: Boolean,
36
+ default: false,
37
+ },
38
+ };
39
+ const searchFilterProps = Object.assign({ userRule: {
40
+ type: Array,
41
+ default() {
42
+ return [];
43
+ },
44
+ }, labelCol: {
45
+ type: Object,
46
+ default() {
47
+ return {
48
+ flex: '0 0 auto',
49
+ };
50
+ },
51
+ }, value: {
52
+ type: Object,
53
+ default() {
54
+ return {};
55
+ },
56
+ }, ruleSpan: {
57
+ type: Object,
58
+ default() {
59
+ return {};
60
+ },
61
+ }, fixedCount: {
62
+ type: Number,
63
+ default: 999999,
64
+ }, fixedFields: {
65
+ type: Array,
66
+ default() {
67
+ return [];
68
+ },
69
+ } }, searchResetBtnProps);
70
+
71
+ var _export_sfc = (sfc, props) => {
72
+ const target = sfc.__vccOpts || sfc;
73
+ for (const [key, val] of props) {
74
+ target[key] = val;
75
+ }
76
+ return target;
77
+ };
78
+
79
+ const _hoisted_1$1 = { class: "bm-search-filter-actions" };
80
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
81
+ __name: "search-reset-btn",
82
+ props: searchResetBtnProps,
83
+ emits: ["submit", "reset", "expand"],
84
+ setup(__props, { emit: emits }) {
85
+ const props = __props;
86
+ const isExpand = ref(false);
87
+ const wrapperStyle = computed(() => {
88
+ let gutter = props.gutter?.[0] || 24;
89
+ return { paddingLeft: gutter / 2 + "px", paddingRight: gutter / 2 + "px" };
90
+ });
91
+ function handleExpandBtnChange() {
92
+ isExpand.value = !isExpand.value;
93
+ emits("expand", isExpand.value);
94
+ }
95
+ function handleSubmit() {
96
+ emits("submit");
97
+ }
98
+ function handleReset() {
99
+ emits("reset");
100
+ }
101
+ return (_ctx, _cache) => {
102
+ const _component_a_button = resolveComponent("a-button");
103
+ return openBlock(), createElementBlock("div", {
104
+ class: "bm-search-filter-btn",
105
+ style: normalizeStyle(unref(wrapperStyle))
106
+ }, [
107
+ props.showExpandBtn ? (openBlock(), createElementBlock("span", {
108
+ key: 0,
109
+ class: "bm-search-filter-expand",
110
+ onClick: handleExpandBtnChange
111
+ }, [
112
+ createTextVNode(toDisplayString(isExpand.value ? props.collapseText : props.expandText), 1),
113
+ isExpand.value ? (openBlock(), createBlock(unref(UpOutlined), { key: 0 })) : (openBlock(), createBlock(unref(DownOutlined), { key: 1 }))
114
+ ])) : createCommentVNode("v-if", true),
115
+ createElementVNode("span", _hoisted_1$1, [
116
+ createVNode(_component_a_button, { onClick: handleReset }, {
117
+ default: withCtx(() => [
118
+ createTextVNode("\u91CD\u7F6E")
119
+ ]),
120
+ _: 1
121
+ }),
122
+ createVNode(_component_a_button, {
123
+ type: "primary",
124
+ loading: props.loading,
125
+ onClick: handleSubmit
126
+ }, {
127
+ default: withCtx(() => [
128
+ props.showSearchIcon && !props.loading ? (openBlock(), createBlock(unref(SearchOutlined), { key: 0 })) : createCommentVNode("v-if", true),
129
+ createTextVNode("\u67E5\u8BE2 ")
130
+ ]),
131
+ _: 1
132
+ }, 8, ["loading"])
133
+ ])
134
+ ], 4);
135
+ };
136
+ }
137
+ });
138
+ var SearchResetBtn = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "search-reset-btn.vue"]]);
139
+
140
+ const _hoisted_1 = { class: "bm-select-header" };
141
+ const _hoisted_2 = { class: "bm-select-header-btn" };
142
+ const _hoisted_3 = ["onClick"];
143
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u5168\u9009", -1);
144
+ const _hoisted_5 = ["onClick"];
145
+ const _hoisted_6 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u53CD\u9009", -1);
146
+ const _hoisted_7 = { class: "blue" };
147
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
148
+ __name: "form-select-all",
149
+ props: {
150
+ modelValue: {
151
+ type: Array || String || Number || void 0
152
+ },
153
+ disabled: Boolean
154
+ },
155
+ emits: ["onSelectAll", "onChange", "update:modelValue"],
156
+ setup(__props, { emit }) {
157
+ const props = __props;
158
+ const instance = getCurrentInstance();
159
+ const state = reactive({
160
+ search: {
161
+ indeterminate: false,
162
+ checkedAll: false,
163
+ checkedReverse: false
164
+ }
165
+ });
166
+ let selectValue = ref([]);
167
+ watch(
168
+ () => props.modelValue,
169
+ (val) => {
170
+ selectValue.value = val;
171
+ if (!selectValue.value || selectValue.value.length <= 0) {
172
+ state.search = {
173
+ indeterminate: false,
174
+ checkedAll: false,
175
+ checkedReverse: false
176
+ };
177
+ }
178
+ },
179
+ {
180
+ immediate: true
181
+ }
182
+ );
183
+ const selectAll = (e) => {
184
+ let key = "value";
185
+ if (instance?.attrs.fieldNames || instance?.attrs["field-names"])
186
+ key = (instance?.attrs).fieldNames?.value || (instance?.attrs)["field-names"].value;
187
+ state.search.checkedAll = !state.search.checkedAll;
188
+ state.search.indeterminate = false;
189
+ state.search.checkedReverse = false;
190
+ if (state.search.checkedAll) {
191
+ selectValue.value = (instance?.attrs.options).map(
192
+ (v) => {
193
+ return v[key];
194
+ }
195
+ );
196
+ } else {
197
+ selectValue.value = [];
198
+ }
199
+ emit("update:modelValue", selectValue.value);
200
+ emit("onSelectAll", {
201
+ type: "all",
202
+ value: selectValue.value
203
+ });
204
+ };
205
+ const reverseAll = (e) => {
206
+ let key = "value";
207
+ if (instance?.attrs.fieldNames || instance?.attrs["field-names"])
208
+ key = (instance?.attrs).fieldNames?.value || (instance?.attrs)["field-names"].value;
209
+ if (selectValue.value.length <= 0)
210
+ return state.search.checkedReverse = false;
211
+ state.search.checkedReverse = !state.search.checkedReverse;
212
+ if (state.search.checkedReverse) {
213
+ state.search.indeterminate = false;
214
+ state.search.checkedAll = false;
215
+ } else {
216
+ state.search.indeterminate = !!selectValue.value.length && selectValue.value.length < (instance?.attrs.options).length;
217
+ state.search.checkedAll = selectValue.value.length === (instance?.attrs.options).length;
218
+ }
219
+ selectValue.value = (instance?.attrs.options).filter(
220
+ (v) => !selectValue.value.some((ele) => ele === v[key])
221
+ ).map((x) => x[key]);
222
+ emit("update:modelValue", selectValue.value);
223
+ emit("onSelectAll", {
224
+ type: "reverse",
225
+ value: selectValue.value
226
+ });
227
+ };
228
+ const onChange = (value, option) => {
229
+ state.search.checkedReverse = false;
230
+ state.search.indeterminate = !!value.length && value.length < (instance?.attrs.options).length;
231
+ state.search.checkedAll = value.length === (instance?.attrs.options).length;
232
+ emit("update:modelValue", value);
233
+ emit("onChange", {
234
+ value,
235
+ option
236
+ });
237
+ };
238
+ const VNodes = (_, { attrs }) => {
239
+ return h(attrs.vnodes);
240
+ };
241
+ return (_ctx, _cache) => {
242
+ const _component_a_checkbox = resolveComponent("a-checkbox");
243
+ const _component_a_form_item_rest = resolveComponent("a-form-item-rest");
244
+ return openBlock(), createBlock(unref(ASelect), mergeProps({
245
+ value: unref(selectValue),
246
+ "onUpdate:value": _cache[4] || (_cache[4] = ($event) => isRef(selectValue) ? selectValue.value = $event : selectValue = $event),
247
+ class: "bm-select search"
248
+ }, _ctx.$attrs, {
249
+ mode: "multiple",
250
+ disabled: props.disabled,
251
+ placeholder: unref(instance)?.attrs.placeholder ? unref(instance)?.attrs.placeholder : "\u8BF7\u9009\u62E9",
252
+ "get-popup-container": (nodes) => nodes.parentNode,
253
+ onChange
254
+ }), {
255
+ dropdownRender: withCtx(({ menuNode: menu }) => [
256
+ createElementVNode("div", _hoisted_1, [
257
+ createVNode(_component_a_form_item_rest, null, {
258
+ default: withCtx(() => [
259
+ createElementVNode("div", _hoisted_2, [
260
+ createElementVNode("div", {
261
+ onClick: withModifiers(selectAll, ["prevent"]),
262
+ onMousedown: _cache[1] || (_cache[1] = (e) => e.preventDefault())
263
+ }, [
264
+ createVNode(_component_a_checkbox, {
265
+ checked: state.search.checkedAll,
266
+ "onUpdate:checked": _cache[0] || (_cache[0] = ($event) => state.search.checkedAll = $event),
267
+ indeterminate: state.search.indeterminate
268
+ }, null, 8, ["checked", "indeterminate"]),
269
+ _hoisted_4
270
+ ], 40, _hoisted_3),
271
+ createElementVNode("div", {
272
+ onClick: withModifiers(reverseAll, ["prevent"]),
273
+ onMousedown: _cache[3] || (_cache[3] = (e) => e.preventDefault())
274
+ }, [
275
+ createVNode(_component_a_checkbox, {
276
+ checked: state.search.checkedReverse,
277
+ "onUpdate:checked": _cache[2] || (_cache[2] = ($event) => state.search.checkedReverse = $event)
278
+ }, null, 8, ["checked"]),
279
+ _hoisted_6
280
+ ], 40, _hoisted_5)
281
+ ])
282
+ ]),
283
+ _: 1
284
+ }),
285
+ createElementVNode("div", null, [
286
+ createTextVNode(" \u5DF2\u9009\u62E9 "),
287
+ createElementVNode("span", _hoisted_7, toDisplayString(unref(selectValue)?.length || 0), 1),
288
+ createTextVNode(" \u9879 ")
289
+ ])
290
+ ]),
291
+ createVNode(VNodes, { vnodes: menu }, null, 8, ["vnodes"])
292
+ ]),
293
+ _: 1
294
+ }, 16, ["value", "disabled", "placeholder", "get-popup-container"]);
295
+ };
296
+ }
297
+ });
298
+ var SelectAll = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "form-select-all.vue"]]);
299
+
300
+ const __default__ = {
301
+ name: "BmSearchFilter"
302
+ };
303
+ const _sfc_main = /* @__PURE__ */ defineComponent({
304
+ ...__default__,
305
+ props: searchFilterProps,
306
+ emits: ["update:value", "submit", "reset", "expand"],
307
+ setup(__props, { expose, emit: emits }) {
308
+ const props = __props;
309
+ FormCreateCtr.component("SearchResetBtn", SearchResetBtn);
310
+ FormCreateCtr.component("SelectAll", SelectAll);
311
+ FormCreateCtr.maker.create("SelectAll", "field", "\u5168\u9009\u53CD\u9009\u7EC4\u4EF6").value([]);
312
+ const isExpand = ref(false);
313
+ const searchResetBtnRule = reactive([
314
+ {
315
+ type: "SearchResetBtn",
316
+ props: {
317
+ showExpandBtn: props.showExpandBtn,
318
+ showSearchIcon: props.showSearchIcon,
319
+ expandText: props.expandText,
320
+ collapseText: props.collapseText,
321
+ gutter: props.gutter,
322
+ loading: props.loading
323
+ },
324
+ on: {
325
+ submit() {
326
+ emits("submit", fApi.value.formData());
327
+ },
328
+ reset() {
329
+ fApi.value?.resetFields?.();
330
+ console.log(1112);
331
+ emits("reset");
332
+ },
333
+ expand(value) {
334
+ isExpand.value = value;
335
+ emits("expand", value);
336
+ }
337
+ }
338
+ }
339
+ ]);
340
+ const fApi = ref({});
341
+ const option = reactive({
342
+ col: {
343
+ span: 8
344
+ },
345
+ row: {
346
+ gutter: props.gutter
347
+ },
348
+ form: {
349
+ labelCol: props.labelCol,
350
+ labelAlign: "right",
351
+ wrapperCol: {
352
+ span: 24
353
+ }
354
+ },
355
+ submitBtn: false
356
+ });
357
+ const rule = computed(() => {
358
+ if (!props.userRule)
359
+ return [];
360
+ return [...props.userRule, ...searchResetBtnRule];
361
+ });
362
+ function handleShowExpandBtn(val) {
363
+ searchResetBtnRule[0].props.showExpandBtn = val;
364
+ }
365
+ function handleChange() {
366
+ emits("update:value", fApi.value.formData());
367
+ }
368
+ function handleResize() {
369
+ const bodyClientWidth = document.body.clientWidth;
370
+ if (bodyClientWidth < 1680) {
371
+ option.col.span = 8;
372
+ } else {
373
+ option.col.span = 6;
374
+ }
375
+ props.userRule.forEach((rule2) => {
376
+ if (!rule2.field || rule2.col)
377
+ return;
378
+ const spanNum = props.ruleSpan[rule2.field];
379
+ if (spanNum) {
380
+ (rule2.col = rule2.col || {}).span = option.col.span * spanNum;
381
+ }
382
+ });
383
+ }
384
+ handleResize();
385
+ window.addEventListener("resize", handleResize);
386
+ onBeforeUnmount(() => {
387
+ window.removeEventListener("resize", handleResize);
388
+ });
389
+ watch(
390
+ () => props.showExpandBtn,
391
+ (val) => {
392
+ handleShowExpandBtn(val);
393
+ },
394
+ {
395
+ immediate: true
396
+ }
397
+ );
398
+ const expandRule = computed(() => {
399
+ const fixedCount = props.fixedCount && props.fixedCount >= 0 ? props.fixedCount : 0;
400
+ const fixedFields = props.fixedFields?.length ? props.fixedFields : [];
401
+ return (props.userRule || []).filter((ruleItem, index) => {
402
+ return index + 1 > fixedCount && !fixedFields.includes(ruleItem.field || ruleItem.name);
403
+ });
404
+ });
405
+ function handleChangeExpand(value) {
406
+ if (value) {
407
+ expandRule.value.forEach((ruleItem) => {
408
+ ruleItem.hidden = false;
409
+ });
410
+ } else {
411
+ expandRule.value.forEach((ruleItem) => {
412
+ ruleItem.hidden = true;
413
+ });
414
+ }
415
+ }
416
+ watch(
417
+ isExpand,
418
+ (val) => {
419
+ nextTick(() => handleChangeExpand(val));
420
+ },
421
+ {
422
+ immediate: true
423
+ }
424
+ );
425
+ expose({
426
+ fApi
427
+ });
428
+ return (_ctx, _cache) => {
429
+ const _component_form_create = resolveComponent("form-create");
430
+ return openBlock(), createElementBlock("div", {
431
+ class: normalizeClass(["bm-search-filter", ["bm-search-filter-expand-" + props.expandPlacement]])
432
+ }, [
433
+ createVNode(_component_form_create, {
434
+ api: fApi.value,
435
+ "onUpdate:api": _cache[0] || (_cache[0] = ($event) => fApi.value = $event),
436
+ "model-value": props.value,
437
+ rule: unref(rule),
438
+ option,
439
+ onChange: handleChange
440
+ }, null, 8, ["api", "model-value", "rule", "option"])
441
+ ], 2);
442
+ };
443
+ }
444
+ });
445
+ var SearchFilter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "search-filter.vue"]]);
446
+
447
+ const BmSearchFilter = withInstall(SearchFilter);
448
+
449
+ export { BmSearchFilter, BmSearchFilter as default };
@@ -0,0 +1,172 @@
1
+ import { withInstall } from 'bm-admin-ui/es/utils/with-install';
2
+ import { defineComponent, getCurrentInstance, reactive, ref, watch, resolveComponent, openBlock, createBlock, unref, mergeProps, isRef, withCtx, createElementVNode, withModifiers, createVNode, createTextVNode, toDisplayString, h } from 'vue';
3
+ import ASelect from 'ant-design-vue/lib/select';
4
+
5
+ var _export_sfc = (sfc, props) => {
6
+ const target = sfc.__vccOpts || sfc;
7
+ for (const [key, val] of props) {
8
+ target[key] = val;
9
+ }
10
+ return target;
11
+ };
12
+
13
+ const _hoisted_1 = { class: "bm-select-header" };
14
+ const _hoisted_2 = { class: "bm-select-header-btn" };
15
+ const _hoisted_3 = ["onClick"];
16
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u5168\u9009", -1);
17
+ const _hoisted_5 = ["onClick"];
18
+ const _hoisted_6 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u53CD\u9009", -1);
19
+ const _hoisted_7 = { class: "blue" };
20
+ const _sfc_main = /* @__PURE__ */ defineComponent({
21
+ __name: "selectAll",
22
+ props: {
23
+ value: {
24
+ type: Array || String || Number || void 0,
25
+ required: true
26
+ },
27
+ showSelectAll: {
28
+ type: Boolean,
29
+ default: false
30
+ }
31
+ },
32
+ emits: ["onSelectAll", "update:value", "onChange"],
33
+ setup(__props, { emit }) {
34
+ const props = __props;
35
+ const instance = getCurrentInstance();
36
+ const state = reactive({
37
+ search: {
38
+ indeterminate: false,
39
+ checkedAll: false,
40
+ checkedReverse: false
41
+ }
42
+ });
43
+ let selectValue = ref([]);
44
+ watch(
45
+ () => props.value,
46
+ (val) => {
47
+ selectValue.value = val;
48
+ if (!selectValue.value || selectValue.value.length <= 0) {
49
+ state.search = {
50
+ indeterminate: false,
51
+ checkedAll: false,
52
+ checkedReverse: false
53
+ };
54
+ }
55
+ },
56
+ {
57
+ immediate: true
58
+ }
59
+ );
60
+ const selectAll = (e) => {
61
+ let key = "value";
62
+ if (instance?.attrs.fieldNames || instance?.attrs["field-names"])
63
+ key = (instance?.attrs).fieldNames?.value || (instance?.attrs)["field-names"].value;
64
+ state.search.checkedAll = !state.search.checkedAll;
65
+ state.search.indeterminate = false;
66
+ state.search.checkedReverse = false;
67
+ if (state.search.checkedAll) {
68
+ selectValue.value = (instance?.attrs.options).map(
69
+ (v) => {
70
+ return v[key];
71
+ }
72
+ );
73
+ } else {
74
+ selectValue.value = [];
75
+ }
76
+ emit("update:value", selectValue.value);
77
+ emit("onSelectAll", {
78
+ type: "all",
79
+ value: selectValue.value
80
+ });
81
+ };
82
+ const reverseAll = (e) => {
83
+ let key = "value";
84
+ if (instance?.attrs.fieldNames || instance?.attrs["field-names"])
85
+ key = (instance?.attrs).fieldNames?.value || (instance?.attrs)["field-names"].value;
86
+ if (selectValue.value.length <= 0)
87
+ return state.search.checkedReverse = false;
88
+ state.search.checkedReverse = !state.search.checkedReverse;
89
+ if (state.search.checkedReverse) {
90
+ state.search.indeterminate = false;
91
+ state.search.checkedAll = false;
92
+ } else {
93
+ state.search.indeterminate = !!selectValue.value.length && selectValue.value.length < (instance?.attrs.options).length;
94
+ state.search.checkedAll = selectValue.value.length === (instance?.attrs.options).length;
95
+ }
96
+ selectValue.value = (instance?.attrs.options).filter(
97
+ (v) => !selectValue.value.some((ele) => ele === v[key])
98
+ ).map((x) => x[key]);
99
+ emit("update:value", selectValue.value);
100
+ emit("onSelectAll", {
101
+ type: "reverse",
102
+ value: selectValue.value
103
+ });
104
+ };
105
+ const onChange = (value, option) => {
106
+ state.search.checkedReverse = false;
107
+ state.search.indeterminate = !!value.length && value.length < (instance?.attrs.options).length;
108
+ state.search.checkedAll = value.length === (instance?.attrs.options).length;
109
+ emit("update:value", value);
110
+ emit("onChange", {
111
+ value,
112
+ option
113
+ });
114
+ };
115
+ const VNodes = (_, { attrs }) => {
116
+ return h(attrs.vnodes);
117
+ };
118
+ return (_ctx, _cache) => {
119
+ const _component_a_checkbox = resolveComponent("a-checkbox");
120
+ return openBlock(), createBlock(unref(ASelect), mergeProps({
121
+ value: unref(selectValue),
122
+ "onUpdate:value": _cache[4] || (_cache[4] = ($event) => isRef(selectValue) ? selectValue.value = $event : selectValue = $event),
123
+ class: "bm-select"
124
+ }, _ctx.$attrs, {
125
+ mode: "multiple",
126
+ placeholder: unref(instance)?.attrs.placeholder ? unref(instance)?.attrs.placeholder : "\u8BF7\u9009\u62E9",
127
+ "get-popup-container": (nodes) => nodes.parentNode,
128
+ onChange
129
+ }), {
130
+ dropdownRender: withCtx(({ menuNode: menu }) => [
131
+ createElementVNode("div", _hoisted_1, [
132
+ createElementVNode("div", _hoisted_2, [
133
+ createElementVNode("div", {
134
+ onClick: withModifiers(selectAll, ["prevent"]),
135
+ onMousedown: _cache[1] || (_cache[1] = (e) => e.preventDefault())
136
+ }, [
137
+ createVNode(_component_a_checkbox, {
138
+ checked: state.search.checkedAll,
139
+ "onUpdate:checked": _cache[0] || (_cache[0] = ($event) => state.search.checkedAll = $event),
140
+ indeterminate: state.search.indeterminate
141
+ }, null, 8, ["checked", "indeterminate"]),
142
+ _hoisted_4
143
+ ], 40, _hoisted_3),
144
+ createElementVNode("div", {
145
+ onClick: withModifiers(reverseAll, ["prevent"]),
146
+ onMousedown: _cache[3] || (_cache[3] = (e) => e.preventDefault())
147
+ }, [
148
+ createVNode(_component_a_checkbox, {
149
+ checked: state.search.checkedReverse,
150
+ "onUpdate:checked": _cache[2] || (_cache[2] = ($event) => state.search.checkedReverse = $event)
151
+ }, null, 8, ["checked"]),
152
+ _hoisted_6
153
+ ], 40, _hoisted_5)
154
+ ]),
155
+ createElementVNode("div", null, [
156
+ createTextVNode(" \u5DF2\u9009\u62E9 "),
157
+ createElementVNode("span", _hoisted_7, toDisplayString(unref(selectValue)?.length || 0), 1),
158
+ createTextVNode(" \u9879 ")
159
+ ])
160
+ ]),
161
+ createVNode(VNodes, { vnodes: menu }, null, 8, ["vnodes"])
162
+ ]),
163
+ _: 1
164
+ }, 16, ["value", "placeholder", "get-popup-container"]);
165
+ };
166
+ }
167
+ });
168
+ var selectAll = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "selectAll.vue"]]);
169
+
170
+ const BmSelectAll = withInstall(selectAll);
171
+
172
+ export { BmSelectAll, BmSelectAll as default };