@hbdlzy/ui-core 0.1.6 → 0.1.8

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 (79) hide show
  1. package/README.md +34 -2
  2. package/components.manifest.json +31 -2
  3. package/dist/components/BaseTable/BaseTable.types.d.ts +17 -2
  4. package/dist/components/BaseTable/BaseTable.vue.d.ts +4 -4
  5. package/dist/components/BaseTable/index.d.ts +1 -1
  6. package/dist/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +1 -1
  7. package/dist/components/SvgIcon/SvgIcon.types.d.ts +6 -0
  8. package/dist/components/SvgIcon/SvgIcon.vue.d.ts +32 -0
  9. package/dist/components/SvgIcon/index.d.ts +3 -0
  10. package/dist/index.cjs +5 -5
  11. package/dist/index.d.ts +51 -12
  12. package/dist/index.js +1014 -147
  13. package/dist/ripple/index.cjs +42 -0
  14. package/dist/ripple/index.d.ts +8 -1
  15. package/dist/ripple/index.js +171 -0
  16. package/dist/style.css +1 -1
  17. package/package.json +17 -2
  18. package/src/components/BaseCard/BaseCard.types.d.ts +36 -0
  19. package/src/components/BaseCard/BaseCard.vue.d.ts +122 -0
  20. package/src/components/BaseCard/README.md +33 -0
  21. package/src/components/BaseCard/index.d.ts +3 -0
  22. package/src/components/BaseEChart/BaseEChart.types.d.ts +26 -0
  23. package/src/components/BaseEChart/BaseEChart.vue.d.ts +66 -0
  24. package/src/components/BaseEChart/README.md +33 -0
  25. package/src/components/BaseEChart/index.d.ts +3 -0
  26. package/src/components/BaseExportButton/BaseExportButton.types.d.ts +21 -0
  27. package/src/components/BaseExportButton/BaseExportButton.utils.d.ts +4 -0
  28. package/src/components/BaseExportButton/BaseExportButton.vue.d.ts +128 -0
  29. package/src/components/BaseExportButton/README.md +34 -0
  30. package/src/components/BaseExportButton/index.d.ts +5 -0
  31. package/src/components/BaseTable/BaseTable.types.d.ts +178 -0
  32. package/src/components/BaseTable/BaseTable.types.ts +19 -2
  33. package/src/components/BaseTable/BaseTable.vue +1105 -118
  34. package/src/components/BaseTable/BaseTable.vue.d.ts +157 -0
  35. package/src/components/BaseTable/README.md +133 -5
  36. package/src/components/BaseTable/index.d.ts +3 -0
  37. package/src/components/BaseTable/index.ts +5 -0
  38. package/src/components/OutlinedCascader/OutlinedCascader.types.d.ts +28 -0
  39. package/src/components/OutlinedCascader/OutlinedCascader.vue.d.ts +94 -0
  40. package/src/components/OutlinedCascader/README.md +34 -0
  41. package/src/components/OutlinedCascader/index.d.ts +3 -0
  42. package/src/components/OutlinedDatePicker/OutlinedDatePicker.types.d.ts +30 -0
  43. package/src/components/OutlinedDatePicker/OutlinedDatePicker.vue.d.ts +97 -0
  44. package/src/components/OutlinedDatePicker/README.md +34 -0
  45. package/src/components/OutlinedDatePicker/index.d.ts +3 -0
  46. package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.d.ts +29 -0
  47. package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue.d.ts +106 -0
  48. package/src/components/OutlinedDateTimePicker/README.md +33 -0
  49. package/src/components/OutlinedDateTimePicker/index.d.ts +3 -0
  50. package/src/components/OutlinedInput/OutlinedInput.types.d.ts +32 -0
  51. package/src/components/OutlinedInput/OutlinedInput.vue.d.ts +106 -0
  52. package/src/components/OutlinedInput/README.md +34 -0
  53. package/src/components/OutlinedInput/index.d.ts +3 -0
  54. package/src/components/OutlinedSelect/OutlinedSelect.types.d.ts +41 -0
  55. package/src/components/OutlinedSelect/OutlinedSelect.vue.d.ts +125 -0
  56. package/src/components/OutlinedSelect/README.md +34 -0
  57. package/src/components/OutlinedSelect/index.d.ts +3 -0
  58. package/src/components/OutlinedTimePicker/OutlinedTimePicker.types.d.ts +31 -0
  59. package/src/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +103 -0
  60. package/src/components/OutlinedTimePicker/README.md +33 -0
  61. package/src/components/OutlinedTimePicker/index.d.ts +3 -0
  62. package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.types.d.ts +49 -0
  63. package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +146 -0
  64. package/src/components/OutlinedTreeSelect/README.md +34 -0
  65. package/src/components/OutlinedTreeSelect/index.d.ts +3 -0
  66. package/src/components/SvgIcon/README.md +86 -0
  67. package/src/components/SvgIcon/SvgIcon.types.d.ts +6 -0
  68. package/src/components/SvgIcon/SvgIcon.types.ts +6 -0
  69. package/src/components/SvgIcon/SvgIcon.vue +68 -0
  70. package/src/components/SvgIcon/SvgIcon.vue.d.ts +32 -0
  71. package/src/components/SvgIcon/index.d.ts +3 -0
  72. package/src/components/SvgIcon/index.ts +5 -0
  73. package/src/echarts/index.d.ts +9 -0
  74. package/src/excel/exportExcel.d.ts +18 -0
  75. package/src/index.d.ts +30 -0
  76. package/src/index.ts +79 -12
  77. package/src/ripple/README.md +160 -0
  78. package/src/ripple/index.d.ts +9 -0
  79. package/src/ripple/index.ts +15 -1
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
+ import { defineComponent, useSlots, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, createCommentVNode, renderSlot, toDisplayString, normalizeClass, ref, reactive, watch, onMounted, onBeforeUnmount, resolveComponent, resolveDirective, createVNode, unref, withCtx, withDirectives, createBlock, Fragment, renderList, createSlots, createTextVNode, mergeProps, withModifiers, Teleport, withKeys, shallowRef, nextTick, onUnmounted, useAttrs, normalizeProps, guardReactiveProps } from "vue";
1
2
  import * as echarts from "echarts";
2
3
  export { echarts };
3
- import { defineComponent, useSlots, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, createCommentVNode, renderSlot, toDisplayString, ref, reactive, watch, onMounted, resolveComponent, resolveDirective, createVNode, withDirectives, createBlock, withCtx, Fragment, renderList, createSlots, createTextVNode, mergeProps, withModifiers, withKeys, normalizeClass, shallowRef, nextTick, onUnmounted, useAttrs, normalizeProps, guardReactiveProps } from "vue";
4
4
  import { ElMessage } from "element-plus";
5
5
  import ExcelJS from "exceljs";
6
6
  import { saveAs } from "file-saver";
@@ -66,7 +66,7 @@ const RIPPLE_STYLE = `
66
66
  }
67
67
  `;
68
68
  const noop = () => void 0;
69
- function installRipple() {
69
+ function installRipple(_app) {
70
70
  if (!canUseDOM()) {
71
71
  return noop;
72
72
  }
@@ -95,6 +95,9 @@ function uninstallRipple() {
95
95
  const rippleWindow = window;
96
96
  (_a = rippleWindow[HBDL_RIPPLE_KEY]) == null ? void 0 : _a.teardown();
97
97
  }
98
+ const Ripple = {
99
+ install: installRipple
100
+ };
98
101
  function canUseDOM() {
99
102
  return typeof window !== "undefined" && typeof document !== "undefined";
100
103
  }
@@ -179,12 +182,12 @@ var _export_sfc = (sfc, props) => {
179
182
  }
180
183
  return target;
181
184
  };
182
- const _hoisted_1$8 = {
185
+ const _hoisted_1$9 = {
183
186
  key: 0,
184
187
  class: "base-card__header"
185
188
  };
186
- const _hoisted_2$8 = { class: "base-card__header-left" };
187
- const _hoisted_3$3 = {
189
+ const _hoisted_2$9 = { class: "base-card__header-left" };
190
+ const _hoisted_3$4 = {
188
191
  key: 0,
189
192
  class: "base-card__title-wrap"
190
193
  };
@@ -211,7 +214,7 @@ const _hoisted_10$1 = {
211
214
  class: "base-card__tip"
212
215
  };
213
216
  const _hoisted_11$1 = { class: "base-card__content" };
214
- const _sfc_main$a = defineComponent({
217
+ const _sfc_main$b = defineComponent({
215
218
  ...{
216
219
  name: "BaseCard"
217
220
  },
@@ -307,9 +310,9 @@ const _sfc_main$a = defineComponent({
307
310
  class: "base-card",
308
311
  style: normalizeStyle(cardStyles.value)
309
312
  }, [
310
- shouldRenderHeader.value ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
311
- createElementVNode("div", _hoisted_2$8, [
312
- hasTitleBlock.value ? (openBlock(), createElementBlock("div", _hoisted_3$3, [
313
+ shouldRenderHeader.value ? (openBlock(), createElementBlock("div", _hoisted_1$9, [
314
+ createElementVNode("div", _hoisted_2$9, [
315
+ hasTitleBlock.value ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
313
316
  __props.showTitleMarker ? (openBlock(), createElementBlock("span", _hoisted_4$2)) : createCommentVNode("", true),
314
317
  _ctx.$slots["title-label"] ? renderSlot(_ctx.$slots, "title-label", { key: 1 }, void 0, true) : (openBlock(), createElementBlock("h4", _hoisted_5$2, toDisplayString(__props.title), 1))
315
318
  ])) : createCommentVNode("", true),
@@ -339,34 +342,313 @@ const _sfc_main$a = defineComponent({
339
342
  };
340
343
  }
341
344
  });
342
- var BaseCard = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-6bfddf1c"]]);
345
+ var BaseCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-6bfddf1c"]]);
346
+ var zh_cn_default = {
347
+ name: "zh-cn",
348
+ el: {
349
+ breadcrumb: { label: "\u9762\u5305\u5C51" },
350
+ colorpicker: {
351
+ confirm: "\u786E\u5B9A",
352
+ clear: "\u6E05\u7A7A",
353
+ defaultLabel: "\u989C\u8272\u9009\u62E9\u5668",
354
+ description: "\u5F53\u524D\u989C\u8272 {color}\uFF0C\u6309 Enter \u952E\u9009\u62E9\u65B0\u989C\u8272",
355
+ alphaLabel: "\u9009\u62E9\u900F\u660E\u5EA6\u7684\u503C",
356
+ alphaDescription: "\u900F\u660E\u5EA6 {alpha}, \u5F53\u524D\u989C\u8272 {color}",
357
+ hueLabel: "\u9009\u62E9\u8272\u76F8\u503C",
358
+ hueDescription: "\u8272\u76F8 {hue}, \u5F53\u524D\u989C\u8272 {color}",
359
+ svLabel: "\u9009\u62E9\u9971\u548C\u5EA6\u4E0E\u660E\u5EA6\u7684\u503C",
360
+ svDescription: "\u9971\u548C\u5EA6 {saturation}, \u660E\u5EA6 {brightness}, \u5F53\u524D\u989C\u8272 {color}",
361
+ predefineDescription: "\u9009\u62E9 {value} \u4F5C\u4E3A\u989C\u8272"
362
+ },
363
+ datepicker: {
364
+ now: "\u6B64\u523B",
365
+ today: "\u4ECA\u5929",
366
+ cancel: "\u53D6\u6D88",
367
+ clear: "\u6E05\u7A7A",
368
+ confirm: "\u786E\u5B9A",
369
+ dateTablePrompt: "\u4F7F\u7528\u65B9\u5411\u952E\u4E0E Enter \u952E\u53EF\u9009\u62E9\u65E5\u671F",
370
+ monthTablePrompt: "\u4F7F\u7528\u65B9\u5411\u952E\u4E0E Enter \u952E\u53EF\u9009\u62E9\u6708\u4EFD",
371
+ yearTablePrompt: "\u4F7F\u7528\u65B9\u5411\u952E\u4E0E Enter \u952E\u53EF\u9009\u62E9\u5E74\u4EFD",
372
+ selectedDate: "\u5DF2\u9009\u65E5\u671F",
373
+ selectDate: "\u9009\u62E9\u65E5\u671F",
374
+ selectTime: "\u9009\u62E9\u65F6\u95F4",
375
+ startDate: "\u5F00\u59CB\u65E5\u671F",
376
+ startTime: "\u5F00\u59CB\u65F6\u95F4",
377
+ endDate: "\u7ED3\u675F\u65E5\u671F",
378
+ endTime: "\u7ED3\u675F\u65F6\u95F4",
379
+ prevYear: "\u524D\u4E00\u5E74",
380
+ nextYear: "\u540E\u4E00\u5E74",
381
+ prevMonth: "\u4E0A\u4E2A\u6708",
382
+ nextMonth: "\u4E0B\u4E2A\u6708",
383
+ year: "\u5E74",
384
+ month1: "1 \u6708",
385
+ month2: "2 \u6708",
386
+ month3: "3 \u6708",
387
+ month4: "4 \u6708",
388
+ month5: "5 \u6708",
389
+ month6: "6 \u6708",
390
+ month7: "7 \u6708",
391
+ month8: "8 \u6708",
392
+ month9: "9 \u6708",
393
+ month10: "10 \u6708",
394
+ month11: "11 \u6708",
395
+ month12: "12 \u6708",
396
+ weeks: {
397
+ sun: "\u65E5",
398
+ mon: "\u4E00",
399
+ tue: "\u4E8C",
400
+ wed: "\u4E09",
401
+ thu: "\u56DB",
402
+ fri: "\u4E94",
403
+ sat: "\u516D"
404
+ },
405
+ weeksFull: {
406
+ sun: "\u661F\u671F\u65E5",
407
+ mon: "\u661F\u671F\u4E00",
408
+ tue: "\u661F\u671F\u4E8C",
409
+ wed: "\u661F\u671F\u4E09",
410
+ thu: "\u661F\u671F\u56DB",
411
+ fri: "\u661F\u671F\u4E94",
412
+ sat: "\u661F\u671F\u516D"
413
+ },
414
+ months: {
415
+ jan: "\u4E00\u6708",
416
+ feb: "\u4E8C\u6708",
417
+ mar: "\u4E09\u6708",
418
+ apr: "\u56DB\u6708",
419
+ may: "\u4E94\u6708",
420
+ jun: "\u516D\u6708",
421
+ jul: "\u4E03\u6708",
422
+ aug: "\u516B\u6708",
423
+ sep: "\u4E5D\u6708",
424
+ oct: "\u5341\u6708",
425
+ nov: "\u5341\u4E00\u6708",
426
+ dec: "\u5341\u4E8C\u6708"
427
+ }
428
+ },
429
+ inputNumber: {
430
+ decrease: "\u51CF\u5C11\u6570\u503C",
431
+ increase: "\u589E\u52A0\u6570\u503C"
432
+ },
433
+ select: {
434
+ loading: "\u52A0\u8F7D\u4E2D",
435
+ noMatch: "\u65E0\u5339\u914D\u6570\u636E",
436
+ noData: "\u65E0\u6570\u636E",
437
+ placeholder: "\u8BF7\u9009\u62E9"
438
+ },
439
+ mention: { loading: "\u52A0\u8F7D\u4E2D" },
440
+ dropdown: { toggleDropdown: "\u5207\u6362\u4E0B\u62C9\u9009\u9879" },
441
+ cascader: {
442
+ noMatch: "\u65E0\u5339\u914D\u6570\u636E",
443
+ loading: "\u52A0\u8F7D\u4E2D",
444
+ placeholder: "\u8BF7\u9009\u62E9",
445
+ noData: "\u6682\u65E0\u6570\u636E"
446
+ },
447
+ pagination: {
448
+ goto: "\u524D\u5F80",
449
+ pagesize: "\u6761/\u9875",
450
+ total: "\u5171 {total} \u6761",
451
+ pageClassifier: "\u9875",
452
+ page: "\u9875",
453
+ prev: "\u4E0A\u4E00\u9875",
454
+ next: "\u4E0B\u4E00\u9875",
455
+ currentPage: "\u7B2C {pager} \u9875",
456
+ prevPages: "\u5411\u524D {pager} \u9875",
457
+ nextPages: "\u5411\u540E {pager} \u9875",
458
+ deprecationWarning: "\u4F60\u4F7F\u7528\u4E86\u4E00\u4E9B\u5DF2\u88AB\u5E9F\u5F03\u7684\u7528\u6CD5\uFF0C\u8BF7\u53C2\u8003 el-pagination \u7684\u5B98\u65B9\u6587\u6863"
459
+ },
460
+ dialog: { close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846" },
461
+ drawer: { close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846" },
462
+ messagebox: {
463
+ title: "\u63D0\u793A",
464
+ confirm: "\u786E\u5B9A",
465
+ cancel: "\u53D6\u6D88",
466
+ error: "\u8F93\u5165\u7684\u6570\u636E\u4E0D\u5408\u6CD5!",
467
+ close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846"
468
+ },
469
+ upload: {
470
+ deleteTip: "\u6309 Delete \u952E\u53EF\u5220\u9664",
471
+ delete: "\u5220\u9664",
472
+ preview: "\u67E5\u770B\u56FE\u7247",
473
+ continue: "\u7EE7\u7EED\u4E0A\u4F20"
474
+ },
475
+ slider: {
476
+ defaultLabel: "\u6ED1\u5757\u4ECB\u4E8E {min} \u81F3 {max}",
477
+ defaultRangeStartLabel: "\u9009\u62E9\u8D77\u59CB\u503C",
478
+ defaultRangeEndLabel: "\u9009\u62E9\u7ED3\u675F\u503C"
479
+ },
480
+ table: {
481
+ emptyText: "\u6682\u65E0\u6570\u636E",
482
+ confirmFilter: "\u7B5B\u9009",
483
+ resetFilter: "\u91CD\u7F6E",
484
+ clearFilter: "\u5168\u90E8",
485
+ sumText: "\u5408\u8BA1",
486
+ selectAllLabel: "\u9009\u62E9\u6240\u6709\u884C",
487
+ selectRowLabel: "\u9009\u62E9\u5F53\u524D\u884C",
488
+ expandRowLabel: "\u5C55\u5F00\u5F53\u524D\u884C",
489
+ collapseRowLabel: "\u6536\u8D77\u5F53\u524D\u884C",
490
+ sortLabel: "\u6309 {column} \u6392\u5E8F",
491
+ filterLabel: "\u6309 {column} \u8FC7\u6EE4"
492
+ },
493
+ tag: { close: "\u5173\u95ED\u6B64\u6807\u7B7E" },
494
+ tour: {
495
+ next: "\u4E0B\u4E00\u6B65",
496
+ previous: "\u4E0A\u4E00\u6B65",
497
+ finish: "\u7ED3\u675F\u5BFC\u89C8",
498
+ close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846"
499
+ },
500
+ tree: { emptyText: "\u6682\u65E0\u6570\u636E" },
501
+ transfer: {
502
+ noMatch: "\u65E0\u5339\u914D\u6570\u636E",
503
+ noData: "\u65E0\u6570\u636E",
504
+ titles: ["\u5217\u8868 1", "\u5217\u8868 2"],
505
+ filterPlaceholder: "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",
506
+ noCheckedFormat: "\u5171 {total} \u9879",
507
+ hasCheckedFormat: "\u5DF2\u9009 {checked}/{total} \u9879"
508
+ },
509
+ image: { error: "\u52A0\u8F7D\u5931\u8D25" },
510
+ pageHeader: { title: "\u8FD4\u56DE" },
511
+ popconfirm: {
512
+ confirmButtonText: "\u786E\u5B9A",
513
+ cancelButtonText: "\u53D6\u6D88"
514
+ },
515
+ carousel: {
516
+ leftArrow: "\u4E0A\u4E00\u5F20\u5E7B\u706F\u7247",
517
+ rightArrow: "\u4E0B\u4E00\u5F20\u5E7B\u706F\u7247",
518
+ indicator: "\u5E7B\u706F\u7247\u5207\u6362\u81F3\u7D22\u5F15 {index}"
519
+ }
520
+ }
521
+ };
522
+ var SvgIcon_vue_vue_type_style_index_0_scoped_true_lang = "";
523
+ const _hoisted_1$8 = ["aria-hidden", "aria-label"];
524
+ const _hoisted_2$8 = ["aria-hidden", "aria-label"];
525
+ const _hoisted_3$3 = ["href", "xlink:href"];
526
+ const _sfc_main$a = defineComponent({
527
+ ...{
528
+ name: "SvgIcon"
529
+ },
530
+ __name: "SvgIcon",
531
+ props: {
532
+ iconClass: {},
533
+ className: { default: "" },
534
+ prefix: { default: "icon" },
535
+ ariaLabel: { default: "" }
536
+ },
537
+ setup(__props) {
538
+ const props = __props;
539
+ const normalizedIconClass = computed(() => props.iconClass.trim());
540
+ const normalizedPrefix = computed(() => props.prefix.trim() || "icon");
541
+ const isExternal = computed(() => /^(https?:|mailto:|tel:|data:|blob:)/.test(normalizedIconClass.value));
542
+ const iconName = computed(() => `#${normalizedPrefix.value}-${normalizedIconClass.value}`);
543
+ const ariaHidden = computed(() => props.ariaLabel ? void 0 : "true");
544
+ const externalIconStyle = computed(() => ({
545
+ mask: `url(${normalizedIconClass.value}) no-repeat 50% 50%`,
546
+ WebkitMask: `url(${normalizedIconClass.value}) no-repeat 50% 50%`
547
+ }));
548
+ return (_ctx, _cache) => {
549
+ return isExternal.value ? (openBlock(), createElementBlock("span", {
550
+ key: 0,
551
+ class: normalizeClass(["svg-external-icon svg-icon", __props.className]),
552
+ style: normalizeStyle(externalIconStyle.value),
553
+ "aria-hidden": ariaHidden.value,
554
+ "aria-label": __props.ariaLabel,
555
+ role: "img"
556
+ }, null, 14, _hoisted_1$8)) : (openBlock(), createElementBlock("svg", {
557
+ key: 1,
558
+ class: normalizeClass(["svg-icon", __props.className]),
559
+ "aria-hidden": ariaHidden.value,
560
+ "aria-label": __props.ariaLabel,
561
+ role: "img"
562
+ }, [
563
+ createElementVNode("use", {
564
+ href: iconName.value,
565
+ "xlink:href": iconName.value
566
+ }, null, 8, _hoisted_3$3)
567
+ ], 10, _hoisted_2$8));
568
+ };
569
+ }
570
+ });
571
+ var SvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-318312b1"]]);
343
572
  var BaseTable_vue_vue_type_style_index_0_scoped_true_lang = "";
344
573
  const _hoisted_1$7 = { class: "base-table" };
345
574
  const _hoisted_2$7 = {
575
+ class: "base-table__svg-sprite",
576
+ "aria-hidden": "true",
577
+ focusable: "false"
578
+ };
579
+ const _hoisted_3$2 = ["id"];
580
+ const _hoisted_4$1 = ["id"];
581
+ const _hoisted_5$1 = ["id"];
582
+ const _hoisted_6 = ["id"];
583
+ const _hoisted_7 = ["id"];
584
+ const _hoisted_8 = ["id"];
585
+ const _hoisted_9 = ["id"];
586
+ const _hoisted_10 = {
346
587
  key: 0,
347
588
  class: "base-table__toolbar"
348
589
  };
349
- const _hoisted_3$2 = { class: "base-table__toolbar-left" };
350
- const _hoisted_4$1 = {
590
+ const _hoisted_11 = { class: "base-table__toolbar-left" };
591
+ const _hoisted_12 = {
351
592
  key: 0,
352
593
  class: "base-table__toolbar-right"
353
594
  };
354
- const _hoisted_5$1 = { class: "base-table__header" };
355
- const _hoisted_6 = { class: "base-table__header-label" };
356
- const _hoisted_7 = { class: "base-table__header-actions" };
357
- const _hoisted_8 = { class: "base-table__header-search-footer" };
358
- const _hoisted_9 = {
595
+ const _hoisted_13 = { class: "base-table__header-main" };
596
+ const _hoisted_14 = { class: "base-table__header-label" };
597
+ const _hoisted_15 = {
598
+ key: 0,
599
+ class: "base-table__header-actions"
600
+ };
601
+ const _hoisted_16 = ["onClick"];
602
+ const _hoisted_17 = {
603
+ key: 0,
604
+ class: "base-table__header-select"
605
+ };
606
+ const _hoisted_18 = ["onClick"];
607
+ const _hoisted_19 = {
608
+ key: 0,
609
+ class: "base-table__header-select-tags"
610
+ };
611
+ const _hoisted_20 = {
612
+ key: 0,
613
+ class: "base-table__header-select-tag base-table__header-select-tag--count"
614
+ };
615
+ const _hoisted_21 = {
616
+ key: 0,
617
+ class: "base-table__header-select-options"
618
+ };
619
+ const _hoisted_22 = ["onClick"];
620
+ const _hoisted_23 = ["disabled", "onClick"];
621
+ const _hoisted_24 = { class: "base-table__header-select-option-label" };
622
+ const _hoisted_25 = {
623
+ key: 1,
624
+ class: "base-table__header-cascader"
625
+ };
626
+ const _hoisted_26 = ["onClick"];
627
+ const _hoisted_27 = {
628
+ key: 0,
629
+ class: "base-table__header-cascader-panel"
630
+ };
631
+ const _hoisted_28 = ["disabled", "onClick"];
632
+ const _hoisted_29 = { class: "base-table__header-cascader-label" };
633
+ const _hoisted_30 = {
634
+ key: 0,
635
+ class: "base-table__header-cascader-arrow",
636
+ "aria-hidden": "true"
637
+ };
638
+ const _hoisted_31 = ["value", "placeholder", "onInput", "onKeyup"];
639
+ const _hoisted_32 = { class: "base-table__header-search-footer" };
640
+ const _hoisted_33 = {
359
641
  key: 0,
360
642
  class: "base-table__actions"
361
643
  };
362
- const _hoisted_10 = {
644
+ const _hoisted_34 = {
363
645
  key: 2,
364
646
  class: "base-table__tags"
365
647
  };
366
- const _hoisted_11 = { key: 1 };
367
- const _hoisted_12 = ["innerHTML"];
368
- const _hoisted_13 = ["onClick"];
369
- const _hoisted_14 = {
648
+ const _hoisted_35 = { key: 1 };
649
+ const _hoisted_36 = ["innerHTML"];
650
+ const _hoisted_37 = ["onClick"];
651
+ const _hoisted_38 = {
370
652
  key: 6,
371
653
  class: "base-table__text"
372
654
  };
@@ -416,6 +698,7 @@ const _sfc_main$9 = defineComponent({
416
698
  emits: ["selection-change", "sort-change", "row-action", "cell-click", "cell-input", "page-change", "size-change", "update:pagination", "loaded", "request-error"],
417
699
  setup(__props, { expose: __expose, emit: __emit }) {
418
700
  var _a, _b;
701
+ let baseTableIconSeed = 0;
419
702
  const props = __props;
420
703
  const emit = __emit;
421
704
  const slots = useSlots();
@@ -425,7 +708,13 @@ const _sfc_main$9 = defineComponent({
425
708
  const rows = ref(normalizeRows(props.data));
426
709
  const selectionRows = ref([]);
427
710
  const headerSearchValues = reactive({});
428
- const headerSearchDropdownRefs = ref({});
711
+ const headerSearchVisible = reactive({});
712
+ const headerSearchSelectOpen = reactive({});
713
+ const headerSearchCascaderActivePaths = reactive({});
714
+ const headerSearchTriggerRects = reactive({});
715
+ const headerSearchTriggerRefs = ref({});
716
+ const baseTableIconPrefix = `base-table-icon-${++baseTableIconSeed}`;
717
+ let headerSearchPositionFrame = 0;
429
718
  const sortState = reactive({
430
719
  prop: (_a = props.defaultSort) == null ? void 0 : _a.prop,
431
720
  order: ((_b = props.defaultSort) == null ? void 0 : _b.order) || null
@@ -483,6 +772,8 @@ const _sfc_main$9 = defineComponent({
483
772
  { deep: true }
484
773
  );
485
774
  onMounted(() => {
775
+ window.addEventListener("scroll", scheduleHeaderSearchPositionUpdate, true);
776
+ window.addEventListener("resize", scheduleHeaderSearchPositionUpdate);
486
777
  if (props.request && props.autoLoad) {
487
778
  void load();
488
779
  return;
@@ -491,6 +782,14 @@ const _sfc_main$9 = defineComponent({
491
782
  setData(props.data || []);
492
783
  }
493
784
  });
785
+ onBeforeUnmount(() => {
786
+ window.removeEventListener("scroll", scheduleHeaderSearchPositionUpdate, true);
787
+ window.removeEventListener("resize", scheduleHeaderSearchPositionUpdate);
788
+ if (headerSearchPositionFrame) {
789
+ window.cancelAnimationFrame(headerSearchPositionFrame);
790
+ headerSearchPositionFrame = 0;
791
+ }
792
+ });
494
793
  function syncPagination(value) {
495
794
  const nextPageSizes = value == null ? void 0 : value.pageSizes;
496
795
  paginationState.currentPage = Number((value == null ? void 0 : value.currentPage) || paginationState.currentPage || 1);
@@ -630,8 +929,11 @@ const _sfc_main$9 = defineComponent({
630
929
  value
631
930
  });
632
931
  }
932
+ function resolveHeaderContentAlign(column) {
933
+ return column.headerAlign || column.align || "left";
934
+ }
633
935
  function shouldRenderBuiltInHeader(column) {
634
- return hasHeaderSearch(column);
936
+ return hasHeaderSearch(column) || isHeaderSortable(column);
635
937
  }
636
938
  function hasHeaderSearch(column) {
637
939
  return Boolean(getHeaderSearchConfig(column));
@@ -648,36 +950,154 @@ const _sfc_main$9 = defineComponent({
648
950
  function getHeaderSearchStateKey(column) {
649
951
  return resolveHeaderSearchParamKey(column) || getColumnProp(column) || getColumnKey(column);
650
952
  }
651
- function setHeaderSearchDropdownRef(instance, column) {
953
+ function resolveHeaderSearchParamKey(column) {
954
+ const config = getHeaderSearchConfig(column);
955
+ const legacyParamKey = column.otherProps;
956
+ return (config == null ? void 0 : config.paramKey) || legacyParamKey || getColumnProp(column) || "";
957
+ }
958
+ function setHeaderSearchTriggerRef(instance, column) {
652
959
  const stateKey = getHeaderSearchStateKey(column);
653
- if (!instance) {
654
- delete headerSearchDropdownRefs.value[stateKey];
960
+ if (!(instance instanceof HTMLElement)) {
961
+ delete headerSearchTriggerRefs.value[stateKey];
655
962
  return;
656
963
  }
657
- headerSearchDropdownRefs.value[stateKey] = instance;
964
+ headerSearchTriggerRefs.value[stateKey] = instance;
658
965
  }
659
- function bindHeaderSearchDropdown(column) {
966
+ function bindHeaderSearchTrigger(column) {
660
967
  return (instance) => {
661
- setHeaderSearchDropdownRef(instance, column);
968
+ setHeaderSearchTriggerRef(instance, column);
662
969
  };
663
970
  }
664
- function resolveHeaderSearchParamKey(column) {
665
- const config = getHeaderSearchConfig(column);
666
- const legacyParamKey = column.otherProps;
667
- return (config == null ? void 0 : config.paramKey) || legacyParamKey || getColumnProp(column) || "";
971
+ function isHeaderSearchVisible(column) {
972
+ return Boolean(headerSearchVisible[getHeaderSearchStateKey(column)]);
973
+ }
974
+ function toggleHeaderSearch(column) {
975
+ const stateKey = getHeaderSearchStateKey(column);
976
+ const nextVisible = !headerSearchVisible[stateKey];
977
+ if (nextVisible) {
978
+ closeAllHeaderSearch();
979
+ updateHeaderSearchTriggerRect(column);
980
+ syncHeaderSearchCascaderActivePath(column);
981
+ }
982
+ headerSearchVisible[stateKey] = nextVisible;
983
+ headerSearchSelectOpen[stateKey] = false;
984
+ }
985
+ function closeAllHeaderSearch() {
986
+ Object.keys(headerSearchVisible).forEach((key) => {
987
+ headerSearchVisible[key] = false;
988
+ headerSearchSelectOpen[key] = false;
989
+ });
990
+ }
991
+ function updateHeaderSearchTriggerRect(column) {
992
+ var _a2;
993
+ const stateKey = getHeaderSearchStateKey(column);
994
+ const rect = (_a2 = headerSearchTriggerRefs.value[stateKey]) == null ? void 0 : _a2.getBoundingClientRect();
995
+ if (rect) {
996
+ headerSearchTriggerRects[stateKey] = rect;
997
+ }
998
+ }
999
+ function updateVisibleHeaderSearchPosition() {
1000
+ props.columns.forEach((column) => {
1001
+ if (hasHeaderSearch(column) && isHeaderSearchVisible(column)) {
1002
+ updateHeaderSearchTriggerRect(column);
1003
+ }
1004
+ });
1005
+ }
1006
+ function scheduleHeaderSearchPositionUpdate() {
1007
+ if (headerSearchPositionFrame) {
1008
+ return;
1009
+ }
1010
+ headerSearchPositionFrame = window.requestAnimationFrame(() => {
1011
+ headerSearchPositionFrame = 0;
1012
+ updateVisibleHeaderSearchPosition();
1013
+ });
1014
+ }
1015
+ function getHeaderSearchPanelStyle(column) {
1016
+ const stateKey = getHeaderSearchStateKey(column);
1017
+ const triggerRect = headerSearchTriggerRects[stateKey];
1018
+ const width = toCssValue(getHeaderSearchWidth(column)) || "280px";
1019
+ if (!triggerRect) {
1020
+ return {
1021
+ width
1022
+ };
1023
+ }
1024
+ const panelWidth = Number.parseFloat(String(getHeaderSearchWidth(column))) || 280;
1025
+ const maxLeft = Math.max(8, window.innerWidth - panelWidth - 8);
1026
+ const left = Math.min(maxLeft, Math.max(8, triggerRect.right - panelWidth));
1027
+ const top = triggerRect.bottom + 8;
1028
+ return {
1029
+ width,
1030
+ left: `${left}px`,
1031
+ top: `${top}px`
1032
+ };
668
1033
  }
669
1034
  function getHeaderSearchValue(column) {
670
- return headerSearchValues[getHeaderSearchStateKey(column)] || "";
1035
+ const stateKey = getHeaderSearchStateKey(column);
1036
+ const value = headerSearchValues[stateKey];
1037
+ if (value !== void 0) {
1038
+ return value;
1039
+ }
1040
+ return getHeaderSearchEmptyValue(column);
1041
+ }
1042
+ function getHeaderSearchInputValue(column) {
1043
+ const value = getHeaderSearchValue(column);
1044
+ return Array.isArray(value) ? value.join(" ") : String(value);
671
1045
  }
672
1046
  function hasHeaderSearchValue(column) {
673
- return Boolean(getHeaderSearchValue(column).trim());
1047
+ return isHeaderSearchValueFilled(getHeaderSearchValue(column));
674
1048
  }
675
1049
  function updateHeaderSearchValue(column, value) {
676
- headerSearchValues[getHeaderSearchStateKey(column)] = normalizeHeaderSearchValue(value);
1050
+ headerSearchValues[getHeaderSearchStateKey(column)] = normalizeHeaderSearchValue(column, value);
1051
+ }
1052
+ function handleHeaderSearchInput(column, event) {
1053
+ var _a2;
1054
+ updateHeaderSearchValue(column, ((_a2 = event.target) == null ? void 0 : _a2.value) || "");
1055
+ }
1056
+ function isHeaderSearchSelect(column) {
1057
+ var _a2;
1058
+ return ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.type) === "select";
1059
+ }
1060
+ function isHeaderSearchCascader(column) {
1061
+ var _a2;
1062
+ return ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.type) === "cascader";
1063
+ }
1064
+ function isHeaderSearchChoice(column) {
1065
+ return isHeaderSearchSelect(column) || isHeaderSearchCascader(column);
1066
+ }
1067
+ function isHeaderSearchMultiple(column) {
1068
+ var _a2;
1069
+ return isHeaderSearchSelect(column) && ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.multiple) === true;
1070
+ }
1071
+ function getHeaderSearchIconName(column) {
1072
+ const iconName = isHeaderSearchChoice(column) ? "select" : "search";
1073
+ return hasHeaderSearchValue(column) ? `${iconName}-y` : iconName;
1074
+ }
1075
+ function isHeaderSortable(column) {
1076
+ return Boolean(resolveColumnSortable(column));
1077
+ }
1078
+ function isHeaderSortActive(column) {
1079
+ return String(sortState.prop || "") === String(getColumnProp(column) || "") && Boolean(sortState.order);
1080
+ }
1081
+ function getHeaderSortIconName(column) {
1082
+ if (!isHeaderSortActive(column)) {
1083
+ return "sort-none";
1084
+ }
1085
+ return sortState.order === "ascending" ? "sort-up" : "sort-down";
1086
+ }
1087
+ function isHeaderSearchSelectOpen(column) {
1088
+ return Boolean(headerSearchSelectOpen[getHeaderSearchStateKey(column)]);
1089
+ }
1090
+ function toggleHeaderSearchSelect(column) {
1091
+ const stateKey = getHeaderSearchStateKey(column);
1092
+ const nextOpen = !headerSearchSelectOpen[stateKey];
1093
+ if (nextOpen) {
1094
+ syncHeaderSearchCascaderActivePath(column);
1095
+ }
1096
+ headerSearchSelectOpen[stateKey] = nextOpen;
677
1097
  }
678
1098
  function getHeaderSearchPlaceholder(column) {
679
1099
  var _a2;
680
- return ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.placeholder) || "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9";
1100
+ return ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.placeholder) || (isHeaderSearchChoice(column) ? "\u8BF7\u9009\u62E9" : "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9");
681
1101
  }
682
1102
  function getHeaderSearchWidth(column) {
683
1103
  var _a2;
@@ -691,6 +1111,156 @@ const _sfc_main$9 = defineComponent({
691
1111
  var _a2;
692
1112
  return ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.resetText) || "\u91CD\u7F6E";
693
1113
  }
1114
+ function getHeaderSearchOptions(column) {
1115
+ var _a2;
1116
+ return ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.options) || column.options || [];
1117
+ }
1118
+ function getHeaderSearchOptionValue(option, column) {
1119
+ var _a2;
1120
+ const valueKey = ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.optionValueKey) || column.optionValueKey || "value";
1121
+ return normalizeHeaderSearchPrimitiveValue(option[valueKey]);
1122
+ }
1123
+ function getHeaderSearchOptionLabel(option, column) {
1124
+ var _a2;
1125
+ const labelKey = ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.optionLabelKey) || column.optionLabelKey || "label";
1126
+ const label = option[labelKey];
1127
+ return label === void 0 || label === null ? "" : String(label);
1128
+ }
1129
+ function isHeaderSearchOptionDisabled(option, column) {
1130
+ var _a2;
1131
+ const disabledKey = ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.optionDisabledKey) || "disabled";
1132
+ return Boolean(option[disabledKey]);
1133
+ }
1134
+ function getHeaderSearchOptionChildren(option, column) {
1135
+ var _a2;
1136
+ const childrenKey = ((_a2 = getHeaderSearchConfig(column)) == null ? void 0 : _a2.optionChildrenKey) || "children";
1137
+ const children = option[childrenKey];
1138
+ return Array.isArray(children) ? children : [];
1139
+ }
1140
+ function hasHeaderSearchOptionChildren(option, column) {
1141
+ return getHeaderSearchOptionChildren(option, column).length > 0;
1142
+ }
1143
+ function getHeaderSearchSelectLabel(column) {
1144
+ const selectedLabels = getHeaderSearchSelectedLabels(column);
1145
+ if (!selectedLabels.length) {
1146
+ return getHeaderSearchPlaceholder(column);
1147
+ }
1148
+ return selectedLabels.join("\u3001");
1149
+ }
1150
+ function getHeaderSearchSelectedLabels(column) {
1151
+ const selectedValues = toComparableValues(getHeaderSearchValue(column));
1152
+ return selectedValues.map((selectedValue) => {
1153
+ const matchedOption = getHeaderSearchOptions(column).find((option) => {
1154
+ return String(getHeaderSearchOptionValue(option, column)) === selectedValue;
1155
+ });
1156
+ return matchedOption ? getHeaderSearchOptionLabel(matchedOption, column) : selectedValue;
1157
+ });
1158
+ }
1159
+ function isHeaderSearchOptionSelected(option, column) {
1160
+ const optionValue = String(getHeaderSearchOptionValue(option, column));
1161
+ return toComparableValues(getHeaderSearchValue(column)).includes(optionValue);
1162
+ }
1163
+ function handleHeaderSearchSelectEmpty(column) {
1164
+ updateHeaderSearchValue(column, getHeaderSearchEmptyValue(column));
1165
+ headerSearchSelectOpen[getHeaderSearchStateKey(column)] = false;
1166
+ }
1167
+ function handleHeaderSearchSelectValue(column, optionValue) {
1168
+ if (!isHeaderSearchMultiple(column)) {
1169
+ updateHeaderSearchValue(column, optionValue);
1170
+ headerSearchSelectOpen[getHeaderSearchStateKey(column)] = false;
1171
+ return;
1172
+ }
1173
+ const currentValues = Array.isArray(getHeaderSearchValue(column)) ? [...getHeaderSearchValue(column)] : [];
1174
+ const comparableValue = String(optionValue);
1175
+ const matchedIndex = currentValues.findIndex((item) => String(item) === comparableValue);
1176
+ if (matchedIndex >= 0) {
1177
+ currentValues.splice(matchedIndex, 1);
1178
+ } else {
1179
+ currentValues.push(optionValue);
1180
+ }
1181
+ updateHeaderSearchValue(column, currentValues);
1182
+ }
1183
+ function getHeaderSearchCascaderValue(column) {
1184
+ return normalizeHeaderSearchPathValue(getHeaderSearchValue(column));
1185
+ }
1186
+ function syncHeaderSearchCascaderActivePath(column) {
1187
+ if (!isHeaderSearchCascader(column)) {
1188
+ return;
1189
+ }
1190
+ const stateKey = getHeaderSearchStateKey(column);
1191
+ headerSearchCascaderActivePaths[stateKey] = getHeaderSearchCascaderValue(column);
1192
+ }
1193
+ function getHeaderSearchCascaderActivePath(column) {
1194
+ const stateKey = getHeaderSearchStateKey(column);
1195
+ const activePath = headerSearchCascaderActivePaths[stateKey];
1196
+ if (activePath) {
1197
+ return activePath;
1198
+ }
1199
+ return getHeaderSearchCascaderValue(column);
1200
+ }
1201
+ function getHeaderSearchCascaderColumns(column) {
1202
+ const columns = [];
1203
+ let levelOptions = getHeaderSearchOptions(column);
1204
+ const activePath = getHeaderSearchCascaderActivePath(column);
1205
+ let levelIndex = 0;
1206
+ while (levelOptions.length) {
1207
+ columns.push(levelOptions);
1208
+ const activeValue = activePath[levelIndex];
1209
+ const activeOption = levelOptions.find((option) => {
1210
+ return String(getHeaderSearchOptionValue(option, column)) === String(activeValue);
1211
+ });
1212
+ if (!activeOption) {
1213
+ break;
1214
+ }
1215
+ levelOptions = getHeaderSearchOptionChildren(activeOption, column);
1216
+ levelIndex += 1;
1217
+ }
1218
+ return columns;
1219
+ }
1220
+ function getHeaderSearchCascaderLabel(column) {
1221
+ const path = getHeaderSearchCascaderValue(column);
1222
+ if (!path.length) {
1223
+ return getHeaderSearchPlaceholder(column);
1224
+ }
1225
+ return getHeaderSearchCascaderPathLabels(column, path).join(" / ");
1226
+ }
1227
+ function getHeaderSearchCascaderPathLabels(column, path = getHeaderSearchCascaderValue(column)) {
1228
+ const labels = [];
1229
+ let levelOptions = getHeaderSearchOptions(column);
1230
+ path.forEach((value) => {
1231
+ const matchedOption = levelOptions.find((option) => {
1232
+ return String(getHeaderSearchOptionValue(option, column)) === String(value);
1233
+ });
1234
+ if (!matchedOption) {
1235
+ labels.push(String(value));
1236
+ levelOptions = [];
1237
+ return;
1238
+ }
1239
+ labels.push(getHeaderSearchOptionLabel(matchedOption, column));
1240
+ levelOptions = getHeaderSearchOptionChildren(matchedOption, column);
1241
+ });
1242
+ return labels;
1243
+ }
1244
+ function isHeaderSearchCascaderOptionActive(column, option, levelIndex) {
1245
+ const activePath = getHeaderSearchCascaderActivePath(column);
1246
+ return String(activePath[levelIndex]) === String(getHeaderSearchOptionValue(option, column));
1247
+ }
1248
+ function isHeaderSearchCascaderOptionSelected(column, option, levelIndex) {
1249
+ const selectedPath = getHeaderSearchCascaderValue(column);
1250
+ return String(selectedPath[levelIndex]) === String(getHeaderSearchOptionValue(option, column));
1251
+ }
1252
+ function handleHeaderSearchCascaderOption(column, option, levelIndex) {
1253
+ const stateKey = getHeaderSearchStateKey(column);
1254
+ const optionValue = getHeaderSearchOptionValue(option, column);
1255
+ const nextPath = [
1256
+ ...getHeaderSearchCascaderActivePath(column).slice(0, levelIndex),
1257
+ optionValue
1258
+ ];
1259
+ headerSearchCascaderActivePaths[stateKey] = nextPath;
1260
+ if (!hasHeaderSearchOptionChildren(option, column)) {
1261
+ updateHeaderSearchValue(column, nextPath);
1262
+ }
1263
+ }
694
1264
  async function handleHeaderSearch(column) {
695
1265
  closeHeaderSearch(column);
696
1266
  paginationState.currentPage = 1;
@@ -702,7 +1272,7 @@ const _sfc_main$9 = defineComponent({
702
1272
  applyLocalRows();
703
1273
  }
704
1274
  async function handleHeaderSearchReset(column) {
705
- updateHeaderSearchValue(column, "");
1275
+ updateHeaderSearchValue(column, getHeaderSearchEmptyValue(column));
706
1276
  closeHeaderSearch(column);
707
1277
  paginationState.currentPage = 1;
708
1278
  emitPagination();
@@ -713,8 +1283,9 @@ const _sfc_main$9 = defineComponent({
713
1283
  applyLocalRows();
714
1284
  }
715
1285
  function closeHeaderSearch(column) {
716
- var _a2, _b2;
717
- (_b2 = (_a2 = headerSearchDropdownRefs.value[getHeaderSearchStateKey(column)]) == null ? void 0 : _a2.handleClose) == null ? void 0 : _b2.call(_a2);
1286
+ const stateKey = getHeaderSearchStateKey(column);
1287
+ headerSearchVisible[stateKey] = false;
1288
+ headerSearchSelectOpen[stateKey] = false;
718
1289
  }
719
1290
  function buildHeaderSearchParams() {
720
1291
  return props.columns.reduce((result, column) => {
@@ -722,11 +1293,11 @@ const _sfc_main$9 = defineComponent({
722
1293
  return result;
723
1294
  }
724
1295
  const paramKey = resolveHeaderSearchParamKey(column);
725
- const value = getHeaderSearchValue(column).trim();
726
- if (!paramKey || !value) {
1296
+ const value = getHeaderSearchValue(column);
1297
+ if (!paramKey || !isHeaderSearchValueFilled(value)) {
727
1298
  return result;
728
1299
  }
729
- result[paramKey] = value;
1300
+ result[paramKey] = normalizeHeaderSearchRequestValue(column, value);
730
1301
  return result;
731
1302
  }, {});
732
1303
  }
@@ -739,27 +1310,107 @@ const _sfc_main$9 = defineComponent({
739
1310
  function filterLocalRows(data) {
740
1311
  const activeColumns = props.columns.filter((column) => hasHeaderSearch(column) && hasHeaderSearchValue(column)).map((column) => ({
741
1312
  column,
742
- keyword: getHeaderSearchValue(column).trim().toLowerCase()
1313
+ value: getHeaderSearchValue(column)
743
1314
  }));
744
1315
  if (!activeColumns.length) {
745
1316
  return normalizeRows(data);
746
1317
  }
747
1318
  return normalizeRows(data).filter((row) => {
748
- return activeColumns.every(({ column, keyword }) => {
1319
+ return activeColumns.every(({ column, value: searchValue }) => {
749
1320
  const columnProp = getColumnProp(column);
750
1321
  if (!columnProp) {
751
1322
  return true;
752
1323
  }
753
1324
  const value = getCellValue2(row, column);
754
- return toSearchableText(value).includes(keyword);
1325
+ if (isHeaderSearchSelect(column)) {
1326
+ return matchesHeaderSearchSelectValue(value, searchValue);
1327
+ }
1328
+ if (isHeaderSearchCascader(column)) {
1329
+ return matchesHeaderSearchCascaderValue(value, searchValue);
1330
+ }
1331
+ return toSearchableText(value).includes(toHeaderSearchKeyword(searchValue));
755
1332
  });
756
1333
  });
757
1334
  }
758
- function normalizeHeaderSearchValue(value) {
1335
+ function getHeaderSearchEmptyValue(column) {
1336
+ return isHeaderSearchMultiple(column) || isHeaderSearchCascader(column) ? [] : "";
1337
+ }
1338
+ function normalizeHeaderSearchValue(column, value) {
1339
+ if (isHeaderSearchCascader(column)) {
1340
+ return normalizeHeaderSearchPathValue(value);
1341
+ }
1342
+ if (!isHeaderSearchSelect(column)) {
1343
+ if (value === void 0 || value === null) {
1344
+ return "";
1345
+ }
1346
+ return String(value);
1347
+ }
1348
+ if (isHeaderSearchMultiple(column)) {
1349
+ const values = Array.isArray(value) ? value : [value];
1350
+ return values.filter((item) => isHeaderSearchValueFilled(item)).map((item) => normalizeHeaderSearchPrimitiveValue(item));
1351
+ }
1352
+ if (Array.isArray(value)) {
1353
+ const firstFilledValue = value.find((item) => isHeaderSearchValueFilled(item));
1354
+ return firstFilledValue === void 0 ? "" : normalizeHeaderSearchPrimitiveValue(firstFilledValue);
1355
+ }
759
1356
  if (value === void 0 || value === null) {
760
1357
  return "";
761
1358
  }
762
- return String(value);
1359
+ return normalizeHeaderSearchPrimitiveValue(value);
1360
+ }
1361
+ function normalizeHeaderSearchPrimitiveValue(value) {
1362
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
1363
+ return value;
1364
+ }
1365
+ return String(value != null ? value : "");
1366
+ }
1367
+ function normalizeHeaderSearchPathValue(value) {
1368
+ const values = Array.isArray(value) ? value : [value];
1369
+ return values.filter((item) => !Array.isArray(item) && isHeaderSearchValueFilled(item)).map((item) => normalizeHeaderSearchPrimitiveValue(item));
1370
+ }
1371
+ function normalizeHeaderSearchRequestValue(column, value) {
1372
+ if (Array.isArray(value)) {
1373
+ return [...value];
1374
+ }
1375
+ if (isHeaderSearchSelect(column)) {
1376
+ return value;
1377
+ }
1378
+ return String(value).trim();
1379
+ }
1380
+ function isHeaderSearchValueFilled(value) {
1381
+ if (Array.isArray(value)) {
1382
+ return value.some((item) => isHeaderSearchValueFilled(item));
1383
+ }
1384
+ return value !== void 0 && value !== null && String(value).trim() !== "";
1385
+ }
1386
+ function toHeaderSearchKeyword(value) {
1387
+ if (Array.isArray(value)) {
1388
+ return value.map((item) => String(item).trim()).join(" ").toLowerCase();
1389
+ }
1390
+ return String(value).trim().toLowerCase();
1391
+ }
1392
+ function matchesHeaderSearchSelectValue(rowValue, searchValue) {
1393
+ const selectedValues = toComparableValues(searchValue);
1394
+ if (!selectedValues.length) {
1395
+ return true;
1396
+ }
1397
+ const rowValues = toComparableValues(rowValue);
1398
+ return rowValues.some((item) => selectedValues.includes(item));
1399
+ }
1400
+ function matchesHeaderSearchCascaderValue(rowValue, searchValue) {
1401
+ const selectedPath = normalizeHeaderSearchPathValue(searchValue);
1402
+ if (!selectedPath.length) {
1403
+ return true;
1404
+ }
1405
+ const rowPath = normalizeHeaderSearchPathValue(rowValue);
1406
+ if (!rowPath.length) {
1407
+ return false;
1408
+ }
1409
+ return selectedPath.every((item, index) => String(rowPath[index]) === String(item));
1410
+ }
1411
+ function toComparableValues(value) {
1412
+ const values = Array.isArray(value) ? value : [value];
1413
+ return values.filter((item) => isHeaderSearchValueFilled(item)).map((item) => String(item));
763
1414
  }
764
1415
  function toSearchableText(value) {
765
1416
  if (value === void 0 || value === null) {
@@ -989,7 +1640,7 @@ const _sfc_main$9 = defineComponent({
989
1640
  async function setHeaderSearchValue(key, value, shouldReload = true) {
990
1641
  const matchedColumn = findHeaderSearchColumn(key);
991
1642
  const stateKey = matchedColumn ? getHeaderSearchStateKey(matchedColumn) : key;
992
- headerSearchValues[stateKey] = normalizeHeaderSearchValue(value);
1643
+ headerSearchValues[stateKey] = matchedColumn ? normalizeHeaderSearchValue(matchedColumn, value) : value;
993
1644
  if (!shouldReload) {
994
1645
  return;
995
1646
  }
@@ -1017,9 +1668,11 @@ const _sfc_main$9 = defineComponent({
1017
1668
  Object.keys(headerSearchValues).forEach((stateKey) => {
1018
1669
  delete headerSearchValues[stateKey];
1019
1670
  });
1020
- Object.keys(headerSearchDropdownRefs.value).forEach((stateKey) => {
1021
- var _a2, _b2;
1022
- (_b2 = (_a2 = headerSearchDropdownRefs.value[stateKey]) == null ? void 0 : _a2.handleClose) == null ? void 0 : _b2.call(_a2);
1671
+ Object.keys(headerSearchVisible).forEach((stateKey) => {
1672
+ headerSearchVisible[stateKey] = false;
1673
+ });
1674
+ Object.keys(headerSearchSelectOpen).forEach((stateKey) => {
1675
+ headerSearchSelectOpen[stateKey] = false;
1023
1676
  });
1024
1677
  }
1025
1678
  paginationState.currentPage = 1;
@@ -1048,35 +1701,130 @@ const _sfc_main$9 = defineComponent({
1048
1701
  });
1049
1702
  return (_ctx, _cache) => {
1050
1703
  const _component_el_pagination = resolveComponent("el-pagination");
1704
+ const _component_el_config_provider = resolveComponent("el-config-provider");
1051
1705
  const _component_el_empty = resolveComponent("el-empty");
1052
1706
  const _component_el_table_column = resolveComponent("el-table-column");
1053
- const _component_el_input = resolveComponent("el-input");
1054
1707
  const _component_el_button = resolveComponent("el-button");
1055
- const _component_el_dropdown_menu = resolveComponent("el-dropdown-menu");
1056
- const _component_el_dropdown = resolveComponent("el-dropdown");
1057
1708
  const _component_el_image = resolveComponent("el-image");
1058
1709
  const _component_el_tag = resolveComponent("el-tag");
1710
+ const _component_el_input = resolveComponent("el-input");
1059
1711
  const _component_el_table = resolveComponent("el-table");
1060
1712
  const _directive_loading = resolveDirective("loading");
1061
1713
  return openBlock(), createElementBlock("div", _hoisted_1$7, [
1062
- shouldRenderToolbar.value ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
1063
- createElementVNode("div", _hoisted_3$2, [
1714
+ (openBlock(), createElementBlock("svg", _hoisted_2$7, [
1715
+ createElementVNode("symbol", {
1716
+ id: `${baseTableIconPrefix}-search`,
1717
+ viewBox: "0 0 17.814 14.035"
1718
+ }, [..._cache[2] || (_cache[2] = [
1719
+ createElementVNode("path", {
1720
+ fill: "currentColor",
1721
+ d: "M172.218,201.2a5.254,5.254,0,1,0-1.057.786l2.85,3.721a.659.659,0,0,0,1.047-.8l-2.841-3.709Zm-7.7-3.8a4.056,4.056,0,1,1,4.055,4.044,4.054,4.054,0,0,1-4.055-4.044Zm-2.554-3.968h-3.954a.657.657,0,1,1,0-1.313h3.952a.657.657,0,1,1,0,1.313Zm-.159,8.751h-3.8a.656.656,0,1,1,0-1.312h3.793a.656.656,0,1,1,0,1.312Zm-.78-3.958h-3.016a.659.659,0,1,1,0-1.319h3.015a.659.659,0,1,1,0,1.319Zm4.246,7.929h-7.261a.659.659,0,0,1,0-1.319h7.261a.659.659,0,1,1,0,1.319Z",
1722
+ transform: "translate(-157.354 -192.113)"
1723
+ }, null, -1)
1724
+ ])], 8, _hoisted_3$2),
1725
+ createElementVNode("symbol", {
1726
+ id: `${baseTableIconPrefix}-search-y`,
1727
+ viewBox: "0 0 17.814 14.035"
1728
+ }, [..._cache[3] || (_cache[3] = [
1729
+ createElementVNode("path", {
1730
+ fill: "#0938f7",
1731
+ d: "M172.218,201.2a5.254,5.254,0,1,0-1.057.786l2.85,3.721a.659.659,0,0,0,1.047-.8l-2.841-3.709Zm-7.7-3.8a4.056,4.056,0,1,1,4.055,4.044,4.054,4.054,0,0,1-4.055-4.044Zm-2.554-3.968h-3.954a.657.657,0,1,1,0-1.313h3.952a.657.657,0,1,1,0,1.313Zm-.159,8.751h-3.8a.656.656,0,1,1,0-1.312h3.793a.656.656,0,1,1,0,1.312Zm-.78-3.958h-3.016a.659.659,0,1,1,0-1.319h3.015a.659.659,0,1,1,0,1.319Zm4.246,7.929h-7.261a.659.659,0,0,1,0-1.319h7.261a.659.659,0,1,1,0,1.319Z",
1732
+ transform: "translate(-157.354 -192.113)"
1733
+ }, null, -1)
1734
+ ])], 8, _hoisted_4$1),
1735
+ createElementVNode("symbol", {
1736
+ id: `${baseTableIconPrefix}-select`,
1737
+ viewBox: "0 0 16.04 12.653"
1738
+ }, [..._cache[4] || (_cache[4] = [
1739
+ createElementVNode("path", {
1740
+ fill: "currentColor",
1741
+ d: "M0,12.653V11.248H11.792v1.406ZM9.328,4.429H16.04l-3.356,3.8ZM0,7.029V5.624H7.823V7.029ZM0,1.406V0H14.5V1.406Z"
1742
+ }, null, -1)
1743
+ ])], 8, _hoisted_5$1),
1744
+ createElementVNode("symbol", {
1745
+ id: `${baseTableIconPrefix}-select-y`,
1746
+ viewBox: "0 0 16.04 12.653"
1747
+ }, [..._cache[5] || (_cache[5] = [
1748
+ createElementVNode("path", {
1749
+ fill: "#0938f7",
1750
+ d: "M0,12.653V11.248H11.792v1.406ZM9.328,4.429H16.04l-3.356,3.8ZM0,7.029V5.624H7.823V7.029ZM0,1.406V0H14.5V1.406Z"
1751
+ }, null, -1)
1752
+ ])], 8, _hoisted_6),
1753
+ createElementVNode("symbol", {
1754
+ id: `${baseTableIconPrefix}-sort-none`,
1755
+ viewBox: "0 0 15.351 16.031"
1756
+ }, [..._cache[6] || (_cache[6] = [
1757
+ createElementVNode("g", { transform: "translate(-1299.19 -185.182)" }, [
1758
+ createElementVNode("path", {
1759
+ fill: "currentColor",
1760
+ d: "M100.721,140.352l-3.679,3.679-3.679-3.679h2.944v-8.831h1.472v8.831h2.944Z",
1761
+ transform: "translate(1213.82 57.182)"
1762
+ }),
1763
+ createElementVNode("path", {
1764
+ fill: "currentColor",
1765
+ d: "M92.692,131.679H89.749v8.831H88.277v-8.831H85.333L89.013,128l3.679,3.679Z",
1766
+ transform: "translate(1213.856 57.182)"
1767
+ })
1768
+ ], -1)
1769
+ ])], 8, _hoisted_7),
1770
+ createElementVNode("symbol", {
1771
+ id: `${baseTableIconPrefix}-sort-up`,
1772
+ viewBox: "0 0 15.351 16.031"
1773
+ }, [..._cache[7] || (_cache[7] = [
1774
+ createElementVNode("g", { transform: "translate(-1299.19 -185.182)" }, [
1775
+ createElementVNode("path", {
1776
+ fill: "#8c8c8c",
1777
+ d: "M100.721,140.352l-3.679,3.679-3.679-3.679h2.944v-8.831h1.472v8.831h2.944Z",
1778
+ transform: "translate(1213.82 57.182)"
1779
+ }),
1780
+ createElementVNode("path", {
1781
+ fill: "#0938f7",
1782
+ d: "M92.692,131.679H89.749v8.831H88.277v-8.831H85.333L89.013,128l3.679,3.679Z",
1783
+ transform: "translate(1213.856 57.182)"
1784
+ })
1785
+ ], -1)
1786
+ ])], 8, _hoisted_8),
1787
+ createElementVNode("symbol", {
1788
+ id: `${baseTableIconPrefix}-sort-down`,
1789
+ viewBox: "0 0 15.351 16.031"
1790
+ }, [..._cache[8] || (_cache[8] = [
1791
+ createElementVNode("g", { transform: "translate(-1299.19 -185.182)" }, [
1792
+ createElementVNode("path", {
1793
+ fill: "#0938f7",
1794
+ d: "M100.721,140.352l-3.679,3.679-3.679-3.679h2.944v-8.831h1.472v8.831h2.944Z",
1795
+ transform: "translate(1213.82 57.182)"
1796
+ }),
1797
+ createElementVNode("path", {
1798
+ fill: "#8c8c8c",
1799
+ d: "M92.692,131.679H89.749v8.831H88.277v-8.831H85.333L89.013,128l3.679,3.679Z",
1800
+ transform: "translate(1213.856 57.182)"
1801
+ })
1802
+ ], -1)
1803
+ ])], 8, _hoisted_9)
1804
+ ])),
1805
+ shouldRenderToolbar.value ? (openBlock(), createElementBlock("div", _hoisted_10, [
1806
+ createElementVNode("div", _hoisted_11, [
1064
1807
  renderSlot(_ctx.$slots, "toolbar", {}, void 0, true)
1065
1808
  ]),
1066
- __props.showPagination ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
1067
- createVNode(_component_el_pagination, {
1068
- small: "",
1069
- background: "",
1070
- layout: "total, prev, pager, next, sizes, jumper",
1071
- total: paginationState.total,
1072
- "current-page": paginationState.currentPage,
1073
- "page-size": paginationState.pageSize,
1074
- "page-sizes": paginationState.pageSizes,
1075
- "pager-count": 5,
1076
- "popper-append-to-body": false,
1077
- onSizeChange: handleSizeChange,
1078
- onCurrentChange: handleCurrentChange
1079
- }, null, 8, ["total", "current-page", "page-size", "page-sizes"])
1809
+ __props.showPagination ? (openBlock(), createElementBlock("div", _hoisted_12, [
1810
+ createVNode(_component_el_config_provider, { locale: unref(zh_cn_default) }, {
1811
+ default: withCtx(() => [
1812
+ createVNode(_component_el_pagination, {
1813
+ small: "",
1814
+ background: "",
1815
+ layout: "total, prev, pager, next, sizes, jumper",
1816
+ total: paginationState.total,
1817
+ "current-page": paginationState.currentPage,
1818
+ "page-size": paginationState.pageSize,
1819
+ "page-sizes": paginationState.pageSizes,
1820
+ "pager-count": 5,
1821
+ "popper-append-to-body": false,
1822
+ onSizeChange: handleSizeChange,
1823
+ onCurrentChange: handleCurrentChange
1824
+ }, null, 8, ["total", "current-page", "page-size", "page-sizes"])
1825
+ ]),
1826
+ _: 1
1827
+ }, 8, ["locale"])
1080
1828
  ])) : createCommentVNode("", true)
1081
1829
  ])) : createCommentVNode("", true),
1082
1830
  withDirectives((openBlock(), createBlock(_component_el_table, {
@@ -1135,7 +1883,7 @@ const _sfc_main$9 = defineComponent({
1135
1883
  columnIndex: scope.$index,
1136
1884
  value: getCellValue2(scope.row, column)
1137
1885
  }, void 0, true) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1138
- isActionColumn(column) ? (openBlock(), createElementBlock("div", _hoisted_9, [
1886
+ isActionColumn(column) ? (openBlock(), createElementBlock("div", _hoisted_33, [
1139
1887
  (openBlock(true), createElementBlock(Fragment, null, renderList(getVisibleActions(column, scope.row), (action) => {
1140
1888
  return openBlock(), createBlock(_component_el_button, {
1141
1889
  key: `${action.type}-${action.label}`,
@@ -1157,7 +1905,7 @@ const _sfc_main$9 = defineComponent({
1157
1905
  src: toImageSrc(getCellValue2(scope.row, column)),
1158
1906
  "preview-src-list": getPreviewSrcList(scope.row, column),
1159
1907
  fit: column.imageFit || "cover"
1160
- }, null, 8, ["style", "src", "preview-src-list", "fit"])) : column.kind === "tag" ? (openBlock(), createElementBlock("div", _hoisted_10, [
1908
+ }, null, 8, ["style", "src", "preview-src-list", "fit"])) : column.kind === "tag" ? (openBlock(), createElementBlock("div", _hoisted_34, [
1161
1909
  getMatchedOptions(scope.row, column).length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(getMatchedOptions(scope.row, column), (option) => {
1162
1910
  return openBlock(), createBlock(_component_el_tag, {
1163
1911
  key: String(option.value),
@@ -1170,11 +1918,11 @@ const _sfc_main$9 = defineComponent({
1170
1918
  ]),
1171
1919
  _: 2
1172
1920
  }, 1032, ["type", "style"]);
1173
- }), 128)) : (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString(resolveEmptyText(column)), 1))
1921
+ }), 128)) : (openBlock(), createElementBlock("span", _hoisted_35, toDisplayString(resolveEmptyText(column)), 1))
1174
1922
  ])) : column.kind === "html" ? (openBlock(), createElementBlock("div", {
1175
1923
  key: 3,
1176
1924
  innerHTML: getHtmlContent(scope.row, column)
1177
- }, null, 8, _hoisted_12)) : column.kind === "input" ? (openBlock(), createBlock(_component_el_input, {
1925
+ }, null, 8, _hoisted_36)) : column.kind === "input" ? (openBlock(), createBlock(_component_el_input, {
1178
1926
  key: 4,
1179
1927
  "model-value": toDisplayValue(getCellValue2(scope.row, column), ""),
1180
1928
  type: column.inputType || "text",
@@ -1184,7 +1932,7 @@ const _sfc_main$9 = defineComponent({
1184
1932
  class: "base-table__link",
1185
1933
  type: "button",
1186
1934
  onClick: ($event) => handleCellClick(scope.row, column)
1187
- }, toDisplayString(formatCellDisplay(scope.row, column)), 9, _hoisted_13)) : (openBlock(), createElementBlock("div", _hoisted_14, toDisplayString(formatCellDisplay(scope.row, column)), 1))
1935
+ }, toDisplayString(formatCellDisplay(scope.row, column)), 9, _hoisted_37)) : (openBlock(), createElementBlock("div", _hoisted_38, toDisplayString(formatCellDisplay(scope.row, column)), 1))
1188
1936
  ], 64))
1189
1937
  ]),
1190
1938
  _: 2
@@ -1198,75 +1946,167 @@ const _sfc_main$9 = defineComponent({
1198
1946
  } : shouldRenderBuiltInHeader(column) ? {
1199
1947
  name: "header",
1200
1948
  fn: withCtx(() => [
1201
- createElementVNode("div", _hoisted_5$1, [
1202
- createElementVNode("span", _hoisted_6, toDisplayString(column.label), 1),
1203
- createElementVNode("div", _hoisted_7, [
1204
- createVNode(_component_el_dropdown, {
1949
+ createElementVNode("div", {
1950
+ class: normalizeClass(["base-table__header", [
1951
+ `base-table__header--${resolveHeaderContentAlign(column)}`,
1952
+ {
1953
+ "base-table__header--has-actions": hasHeaderSearch(column),
1954
+ "base-table__header--has-sort": isHeaderSortable(column)
1955
+ }
1956
+ ]])
1957
+ }, [
1958
+ createElementVNode("span", _hoisted_13, [
1959
+ createElementVNode("span", _hoisted_14, toDisplayString(column.label), 1),
1960
+ isHeaderSortable(column) ? (openBlock(), createElementBlock("span", {
1961
+ key: 0,
1962
+ class: normalizeClass(["base-table__header-sort", { "is-active": isHeaderSortActive(column) }]),
1963
+ "aria-hidden": "true"
1964
+ }, [
1965
+ createVNode(unref(SvgIcon), {
1966
+ prefix: baseTableIconPrefix,
1967
+ "icon-class": getHeaderSortIconName(column),
1968
+ "class-name": "base-table__header-sort-icon"
1969
+ }, null, 8, ["icon-class"])
1970
+ ], 2)) : createCommentVNode("", true)
1971
+ ]),
1972
+ hasHeaderSearch(column) ? (openBlock(), createElementBlock("div", _hoisted_15, [
1973
+ createElementVNode("button", {
1205
1974
  ref_for: true,
1206
- ref: bindHeaderSearchDropdown(column),
1207
- class: "base-table__header-dropdown",
1208
- trigger: "click",
1209
- "hide-on-click": false,
1210
- placement: "bottom",
1211
- "popper-class": "base-table__header-search-dropdown"
1212
- }, {
1213
- dropdown: withCtx(() => [
1214
- createVNode(_component_el_dropdown_menu, { class: "base-table__header-search-menu" }, {
1215
- default: withCtx(() => [
1216
- createElementVNode("div", {
1217
- class: "base-table__header-search-panel",
1218
- style: normalizeStyle({ width: toCssValue(getHeaderSearchWidth(column)) || "280px" }),
1219
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {
1220
- }, ["stop"]))
1221
- }, [
1222
- createVNode(_component_el_input, {
1223
- "model-value": getHeaderSearchValue(column),
1224
- placeholder: getHeaderSearchPlaceholder(column),
1225
- clearable: "",
1226
- "onUpdate:modelValue": ($event) => updateHeaderSearchValue(column, $event),
1227
- onKeyup: withKeys(($event) => handleHeaderSearch(column), ["enter"])
1228
- }, null, 8, ["model-value", "placeholder", "onUpdate:modelValue", "onKeyup"]),
1229
- createElementVNode("div", _hoisted_8, [
1230
- createVNode(_component_el_button, {
1231
- link: "",
1232
- type: "primary",
1233
- onClick: ($event) => handleHeaderSearch(column)
1234
- }, {
1235
- default: withCtx(() => [
1236
- createTextVNode(toDisplayString(getHeaderSearchSearchText(column)), 1)
1237
- ]),
1238
- _: 2
1239
- }, 1032, ["onClick"]),
1240
- createVNode(_component_el_button, {
1241
- link: "",
1242
- onClick: ($event) => handleHeaderSearchReset(column)
1243
- }, {
1244
- default: withCtx(() => [
1245
- createTextVNode(toDisplayString(getHeaderSearchResetText(column)), 1)
1246
- ]),
1247
- _: 2
1248
- }, 1032, ["onClick"])
1249
- ])
1250
- ], 4)
1251
- ]),
1252
- _: 2
1253
- }, 1024)
1254
- ]),
1255
- default: withCtx(() => [
1256
- createElementVNode("button", {
1257
- class: normalizeClass(["base-table__header-icon", { "is-active": hasHeaderSearchValue(column) }]),
1258
- type: "button"
1259
- }, [..._cache[1] || (_cache[1] = [
1260
- createElementVNode("span", {
1261
- class: "base-table__header-icon-mark",
1262
- "aria-hidden": "true"
1263
- }, null, -1)
1264
- ])], 2)
1265
- ]),
1266
- _: 2
1267
- }, 1536)
1268
- ])
1269
- ])
1975
+ ref: bindHeaderSearchTrigger(column),
1976
+ class: normalizeClass(["base-table__header-icon", { "is-active": hasHeaderSearchValue(column) }]),
1977
+ type: "button",
1978
+ onClick: withModifiers(($event) => toggleHeaderSearch(column), ["stop"])
1979
+ }, [
1980
+ createVNode(unref(SvgIcon), {
1981
+ prefix: baseTableIconPrefix,
1982
+ "icon-class": getHeaderSearchIconName(column),
1983
+ "class-name": "base-table__header-search-icon"
1984
+ }, null, 8, ["icon-class"])
1985
+ ], 10, _hoisted_16),
1986
+ (openBlock(), createBlock(Teleport, { to: "body" }, [
1987
+ isHeaderSearchVisible(column) ? (openBlock(), createElementBlock("div", {
1988
+ key: getHeaderSearchStateKey(column),
1989
+ class: "base-table__header-search-panel",
1990
+ style: normalizeStyle(getHeaderSearchPanelStyle(column)),
1991
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
1992
+ }, ["stop"])),
1993
+ onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {
1994
+ }, ["stop"]))
1995
+ }, [
1996
+ isHeaderSearchSelect(column) ? (openBlock(), createElementBlock("div", _hoisted_17, [
1997
+ createElementVNode("button", {
1998
+ class: "base-table__header-select-trigger",
1999
+ type: "button",
2000
+ onClick: ($event) => toggleHeaderSearchSelect(column)
2001
+ }, [
2002
+ isHeaderSearchMultiple(column) && getHeaderSearchSelectedLabels(column).length ? (openBlock(), createElementBlock("span", _hoisted_19, [
2003
+ (openBlock(true), createElementBlock(Fragment, null, renderList(getHeaderSearchSelectedLabels(column).slice(0, 2), (label) => {
2004
+ return openBlock(), createElementBlock("span", {
2005
+ key: label,
2006
+ class: "base-table__header-select-tag"
2007
+ }, toDisplayString(label), 1);
2008
+ }), 128)),
2009
+ getHeaderSearchSelectedLabels(column).length > 2 ? (openBlock(), createElementBlock("span", _hoisted_20, " +" + toDisplayString(getHeaderSearchSelectedLabels(column).length - 2), 1)) : createCommentVNode("", true)
2010
+ ])) : (openBlock(), createElementBlock("span", {
2011
+ key: 1,
2012
+ class: normalizeClass(["base-table__header-select-text", { "is-placeholder": !hasHeaderSearchValue(column) }])
2013
+ }, toDisplayString(getHeaderSearchSelectLabel(column)), 3)),
2014
+ createElementVNode("span", {
2015
+ class: normalizeClass(["base-table__header-select-arrow", { "is-open": isHeaderSearchSelectOpen(column) }]),
2016
+ "aria-hidden": "true"
2017
+ }, null, 2)
2018
+ ], 8, _hoisted_18),
2019
+ isHeaderSearchSelectOpen(column) ? (openBlock(), createElementBlock("div", _hoisted_21, [
2020
+ !isHeaderSearchMultiple(column) ? (openBlock(), createElementBlock("button", {
2021
+ key: 0,
2022
+ class: normalizeClass(["base-table__header-select-option", { "is-selected": !hasHeaderSearchValue(column) }]),
2023
+ type: "button",
2024
+ onClick: ($event) => handleHeaderSearchSelectEmpty(column)
2025
+ }, toDisplayString(getHeaderSearchPlaceholder(column)), 11, _hoisted_22)) : createCommentVNode("", true),
2026
+ (openBlock(true), createElementBlock(Fragment, null, renderList(getHeaderSearchOptions(column), (option) => {
2027
+ return openBlock(), createElementBlock("button", {
2028
+ key: String(getHeaderSearchOptionValue(option, column)),
2029
+ class: normalizeClass(["base-table__header-select-option", { "is-selected": isHeaderSearchOptionSelected(option, column) }]),
2030
+ type: "button",
2031
+ disabled: isHeaderSearchOptionDisabled(option, column),
2032
+ onClick: ($event) => handleHeaderSearchSelectValue(column, getHeaderSearchOptionValue(option, column))
2033
+ }, [
2034
+ createElementVNode("span", _hoisted_24, toDisplayString(getHeaderSearchOptionLabel(option, column)), 1)
2035
+ ], 10, _hoisted_23);
2036
+ }), 128))
2037
+ ])) : createCommentVNode("", true)
2038
+ ])) : isHeaderSearchCascader(column) ? (openBlock(), createElementBlock("div", _hoisted_25, [
2039
+ createElementVNode("button", {
2040
+ class: "base-table__header-select-trigger",
2041
+ type: "button",
2042
+ onClick: ($event) => toggleHeaderSearchSelect(column)
2043
+ }, [
2044
+ createElementVNode("span", {
2045
+ class: normalizeClass(["base-table__header-select-text", { "is-placeholder": !hasHeaderSearchValue(column) }])
2046
+ }, toDisplayString(getHeaderSearchCascaderLabel(column)), 3),
2047
+ createElementVNode("span", {
2048
+ class: normalizeClass(["base-table__header-select-arrow", { "is-open": isHeaderSearchSelectOpen(column) }]),
2049
+ "aria-hidden": "true"
2050
+ }, null, 2)
2051
+ ], 8, _hoisted_26),
2052
+ isHeaderSearchSelectOpen(column) ? (openBlock(), createElementBlock("div", _hoisted_27, [
2053
+ (openBlock(true), createElementBlock(Fragment, null, renderList(getHeaderSearchCascaderColumns(column), (levelOptions, levelIndex) => {
2054
+ return openBlock(), createElementBlock("div", {
2055
+ key: levelIndex,
2056
+ class: "base-table__header-cascader-menu"
2057
+ }, [
2058
+ (openBlock(true), createElementBlock(Fragment, null, renderList(levelOptions, (option) => {
2059
+ return openBlock(), createElementBlock("button", {
2060
+ key: `${levelIndex}-${String(getHeaderSearchOptionValue(option, column))}`,
2061
+ class: normalizeClass(["base-table__header-cascader-option", {
2062
+ "is-active": isHeaderSearchCascaderOptionActive(column, option, levelIndex),
2063
+ "is-selected": isHeaderSearchCascaderOptionSelected(column, option, levelIndex)
2064
+ }]),
2065
+ type: "button",
2066
+ disabled: isHeaderSearchOptionDisabled(option, column),
2067
+ onClick: ($event) => handleHeaderSearchCascaderOption(column, option, levelIndex)
2068
+ }, [
2069
+ createElementVNode("span", _hoisted_29, toDisplayString(getHeaderSearchOptionLabel(option, column)), 1),
2070
+ hasHeaderSearchOptionChildren(option, column) ? (openBlock(), createElementBlock("span", _hoisted_30)) : createCommentVNode("", true)
2071
+ ], 10, _hoisted_28);
2072
+ }), 128))
2073
+ ]);
2074
+ }), 128))
2075
+ ])) : createCommentVNode("", true)
2076
+ ])) : (openBlock(), createElementBlock("input", {
2077
+ key: 2,
2078
+ class: "base-table__header-search-input",
2079
+ type: "text",
2080
+ value: getHeaderSearchInputValue(column),
2081
+ placeholder: getHeaderSearchPlaceholder(column),
2082
+ onInput: ($event) => handleHeaderSearchInput(column, $event),
2083
+ onKeyup: withKeys(($event) => handleHeaderSearch(column), ["enter"])
2084
+ }, null, 40, _hoisted_31)),
2085
+ createElementVNode("div", _hoisted_32, [
2086
+ createVNode(_component_el_button, {
2087
+ link: "",
2088
+ type: "primary",
2089
+ onClick: ($event) => handleHeaderSearch(column)
2090
+ }, {
2091
+ default: withCtx(() => [
2092
+ createTextVNode(toDisplayString(getHeaderSearchSearchText(column)), 1)
2093
+ ]),
2094
+ _: 2
2095
+ }, 1032, ["onClick"]),
2096
+ createVNode(_component_el_button, {
2097
+ link: "",
2098
+ onClick: ($event) => handleHeaderSearchReset(column)
2099
+ }, {
2100
+ default: withCtx(() => [
2101
+ createTextVNode(toDisplayString(getHeaderSearchResetText(column)), 1)
2102
+ ]),
2103
+ _: 2
2104
+ }, 1032, ["onClick"])
2105
+ ])
2106
+ ], 36)) : createCommentVNode("", true)
2107
+ ]))
2108
+ ])) : createCommentVNode("", true)
2109
+ ], 2)
1270
2110
  ]),
1271
2111
  key: "1"
1272
2112
  } : void 0
@@ -1281,7 +2121,7 @@ const _sfc_main$9 = defineComponent({
1281
2121
  };
1282
2122
  }
1283
2123
  });
1284
- var BaseTable = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-7ae8d382"]]);
2124
+ var BaseTable = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-7602f302"]]);
1285
2125
  var BaseEChart_vue_vue_type_style_index_0_scoped_true_lang = "";
1286
2126
  const _sfc_main$8 = defineComponent({
1287
2127
  __name: "BaseEChart",
@@ -3959,4 +4799,31 @@ const _sfc_main = defineComponent({
3959
4799
  });
3960
4800
  var OutlinedTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-30d7dee0"]]);
3961
4801
  installRipple();
3962
- export { BaseCard, BaseEChart, _sfc_main$7 as BaseExportButton, BaseTable, OutlinedCascader, OutlinedDatePicker, OutlinedDateTimePicker, OutlinedInput, OutlinedSelect, OutlinedTimePicker, OutlinedTreeSelect, downloadExportResponse, exportExcel, extractFileNameFromDisposition, installRipple, normalizeExportFileName, uninstallRipple };
4802
+ const componentEntries = [
4803
+ ["BaseCard", BaseCard],
4804
+ ["BaseTable", BaseTable],
4805
+ ["BaseEChart", BaseEChart],
4806
+ ["BaseExportButton", _sfc_main$7],
4807
+ ["SvgIcon", SvgIcon],
4808
+ ["OutlinedInput", OutlinedInput],
4809
+ ["OutlinedSelect", OutlinedSelect],
4810
+ ["OutlinedDatePicker", OutlinedDatePicker],
4811
+ ["OutlinedDateTimePicker", OutlinedDateTimePicker],
4812
+ ["OutlinedTimePicker", OutlinedTimePicker],
4813
+ ["OutlinedCascader", OutlinedCascader],
4814
+ ["OutlinedTreeSelect", OutlinedTreeSelect]
4815
+ ];
4816
+ const uiCoreComponents = componentEntries.map(([name, component]) => ({
4817
+ name,
4818
+ component
4819
+ }));
4820
+ function installUiCore(app) {
4821
+ componentEntries.forEach(([name, component]) => {
4822
+ app.component(name, component);
4823
+ });
4824
+ installRipple();
4825
+ }
4826
+ const HbdlUICore = {
4827
+ install: installUiCore
4828
+ };
4829
+ export { BaseCard, BaseEChart, _sfc_main$7 as BaseExportButton, BaseTable, HbdlUICore, OutlinedCascader, OutlinedDatePicker, OutlinedDateTimePicker, OutlinedInput, OutlinedSelect, OutlinedTimePicker, OutlinedTreeSelect, Ripple, SvgIcon, HbdlUICore as default, downloadExportResponse, exportExcel, extractFileNameFromDisposition, installRipple, installUiCore, normalizeExportFileName, uiCoreComponents, uninstallRipple };