@hbdlzy/ui-core 0.1.1 → 0.1.3

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 (113) hide show
  1. package/README.md +37 -2
  2. package/components.manifest.json +198 -161
  3. package/dist/components/BaseCard/BaseCard.types.d.ts +36 -0
  4. package/dist/components/BaseCard/BaseCard.vue.d.ts +122 -0
  5. package/dist/components/BaseCard/index.d.ts +3 -0
  6. package/dist/components/BaseEChart/BaseEChart.types.d.ts +26 -0
  7. package/dist/components/BaseEChart/BaseEChart.vue.d.ts +66 -0
  8. package/dist/components/BaseEChart/index.d.ts +3 -0
  9. package/dist/components/BaseExportButton/BaseExportButton.types.d.ts +21 -0
  10. package/dist/components/BaseExportButton/BaseExportButton.utils.d.ts +4 -0
  11. package/dist/components/BaseExportButton/BaseExportButton.vue.d.ts +128 -0
  12. package/dist/components/BaseExportButton/index.d.ts +5 -0
  13. package/dist/components/BaseTable/BaseTable.types.d.ts +163 -0
  14. package/dist/components/BaseTable/BaseTable.vue.d.ts +157 -0
  15. package/dist/components/BaseTable/index.d.ts +3 -0
  16. package/dist/components/OutlinedCascader/OutlinedCascader.types.d.ts +25 -0
  17. package/dist/components/OutlinedCascader/OutlinedCascader.vue.d.ts +85 -0
  18. package/dist/components/OutlinedCascader/index.d.ts +3 -0
  19. package/dist/components/OutlinedDatePicker/OutlinedDatePicker.types.d.ts +27 -0
  20. package/dist/components/OutlinedDatePicker/OutlinedDatePicker.vue.d.ts +88 -0
  21. package/dist/components/OutlinedDatePicker/index.d.ts +3 -0
  22. package/dist/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.d.ts +26 -0
  23. package/dist/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue.d.ts +97 -0
  24. package/dist/components/OutlinedDateTimePicker/index.d.ts +3 -0
  25. package/dist/components/OutlinedInput/OutlinedInput.types.d.ts +29 -0
  26. package/dist/components/OutlinedInput/OutlinedInput.vue.d.ts +97 -0
  27. package/dist/components/OutlinedInput/index.d.ts +3 -0
  28. package/dist/components/OutlinedSelect/OutlinedSelect.types.d.ts +38 -0
  29. package/dist/components/OutlinedSelect/OutlinedSelect.vue.d.ts +116 -0
  30. package/dist/components/OutlinedSelect/index.d.ts +3 -0
  31. package/dist/components/OutlinedTimePicker/OutlinedTimePicker.types.d.ts +28 -0
  32. package/dist/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +94 -0
  33. package/dist/components/OutlinedTimePicker/index.d.ts +3 -0
  34. package/dist/components/OutlinedTreeSelect/OutlinedTreeSelect.types.d.ts +46 -0
  35. package/dist/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +137 -0
  36. package/dist/components/OutlinedTreeSelect/index.d.ts +3 -0
  37. package/dist/echarts/index.d.ts +9 -0
  38. package/dist/excel/exportExcel.d.ts +18 -0
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.d.ts +26 -0
  41. package/dist/index.js +2181 -41
  42. package/dist/style.css +1 -1
  43. package/package.json +6 -4
  44. package/src/components/BaseCard/BaseCard.types.d.ts +36 -0
  45. package/src/components/BaseCard/BaseCard.vue.d.ts +122 -0
  46. package/src/components/BaseCard/index.d.ts +3 -0
  47. package/src/components/BaseEChart/BaseEChart.types.d.ts +26 -0
  48. package/src/components/BaseEChart/BaseEChart.vue.d.ts +66 -0
  49. package/src/components/BaseEChart/index.d.ts +3 -0
  50. package/src/components/BaseExportButton/BaseExportButton.types.d.ts +21 -0
  51. package/src/components/BaseExportButton/BaseExportButton.utils.d.ts +4 -0
  52. package/src/components/BaseExportButton/BaseExportButton.vue.d.ts +128 -0
  53. package/src/components/BaseExportButton/index.d.ts +5 -0
  54. package/src/components/BaseTable/BaseTable.types.d.ts +163 -0
  55. package/src/components/BaseTable/BaseTable.types.ts +12 -0
  56. package/src/components/BaseTable/BaseTable.vue +412 -13
  57. package/src/components/BaseTable/BaseTable.vue.d.ts +157 -0
  58. package/src/components/BaseTable/README.md +106 -120
  59. package/src/components/BaseTable/index.d.ts +3 -0
  60. package/src/components/OutlinedCascader/OutlinedCascader.types.d.ts +25 -0
  61. package/src/components/OutlinedCascader/OutlinedCascader.types.ts +28 -0
  62. package/src/components/OutlinedCascader/OutlinedCascader.vue +250 -0
  63. package/src/components/OutlinedCascader/OutlinedCascader.vue.d.ts +85 -0
  64. package/src/components/OutlinedCascader/README.md +91 -0
  65. package/src/components/OutlinedCascader/index.d.ts +3 -0
  66. package/src/components/OutlinedCascader/index.ts +10 -0
  67. package/src/components/OutlinedDatePicker/OutlinedDatePicker.types.d.ts +27 -0
  68. package/src/components/OutlinedDatePicker/OutlinedDatePicker.types.ts +40 -0
  69. package/src/components/OutlinedDatePicker/OutlinedDatePicker.vue +365 -0
  70. package/src/components/OutlinedDatePicker/OutlinedDatePicker.vue.d.ts +88 -0
  71. package/src/components/OutlinedDatePicker/README.md +137 -0
  72. package/src/components/OutlinedDatePicker/index.d.ts +3 -0
  73. package/src/components/OutlinedDatePicker/index.ts +11 -0
  74. package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.d.ts +26 -0
  75. package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.ts +34 -0
  76. package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue +421 -0
  77. package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue.d.ts +97 -0
  78. package/src/components/OutlinedDateTimePicker/README.md +88 -0
  79. package/src/components/OutlinedDateTimePicker/index.d.ts +3 -0
  80. package/src/components/OutlinedDateTimePicker/index.ts +11 -0
  81. package/src/components/OutlinedInput/OutlinedInput.types.d.ts +29 -0
  82. package/src/components/OutlinedInput/OutlinedInput.types.ts +32 -0
  83. package/src/components/OutlinedInput/OutlinedInput.vue +307 -0
  84. package/src/components/OutlinedInput/OutlinedInput.vue.d.ts +97 -0
  85. package/src/components/OutlinedInput/README.md +154 -0
  86. package/src/components/OutlinedInput/index.d.ts +3 -0
  87. package/src/components/OutlinedInput/index.ts +10 -0
  88. package/src/components/OutlinedSelect/OutlinedSelect.types.d.ts +38 -0
  89. package/src/components/OutlinedSelect/OutlinedSelect.types.ts +48 -0
  90. package/src/components/OutlinedSelect/OutlinedSelect.vue +359 -0
  91. package/src/components/OutlinedSelect/OutlinedSelect.vue.d.ts +116 -0
  92. package/src/components/OutlinedSelect/README.md +166 -0
  93. package/src/components/OutlinedSelect/index.d.ts +3 -0
  94. package/src/components/OutlinedSelect/index.ts +12 -0
  95. package/src/components/OutlinedTimePicker/OutlinedTimePicker.types.d.ts +28 -0
  96. package/src/components/OutlinedTimePicker/OutlinedTimePicker.types.ts +36 -0
  97. package/src/components/OutlinedTimePicker/OutlinedTimePicker.vue +303 -0
  98. package/src/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +94 -0
  99. package/src/components/OutlinedTimePicker/README.md +93 -0
  100. package/src/components/OutlinedTimePicker/index.d.ts +3 -0
  101. package/src/components/OutlinedTimePicker/index.ts +10 -0
  102. package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.types.d.ts +46 -0
  103. package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.types.ts +56 -0
  104. package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.vue +354 -0
  105. package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +137 -0
  106. package/src/components/OutlinedTreeSelect/README.md +107 -0
  107. package/src/components/OutlinedTreeSelect/index.d.ts +3 -0
  108. package/src/components/OutlinedTreeSelect/index.ts +12 -0
  109. package/src/echarts/index.d.ts +9 -0
  110. package/src/echarts/index.ts +13 -8
  111. package/src/excel/exportExcel.d.ts +18 -0
  112. package/src/index.d.ts +26 -0
  113. package/src/index.ts +14 -0
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .base-card[data-v-6bfddf1c]{display:flex;flex-direction:column;min-width:0;min-height:0;padding:var(--base-card-padding);border:1px solid var(--base-card-border-color);background:var(--base-card-background-color);box-shadow:0 0 2px 0 var(--base-card-shadow-color);border-radius:var(--base-card-radius)}.base-card__header[data-v-6bfddf1c]{display:flex;align-items:center;justify-content:space-between;gap:var(--base-card-header-gap);margin-bottom:var(--base-card-header-margin-bottom);min-height:24px;flex-wrap:wrap}.base-card__header-left[data-v-6bfddf1c],.base-card__header-right[data-v-6bfddf1c]{display:flex;align-items:center;min-width:0;flex-wrap:wrap}.base-card__header-left[data-v-6bfddf1c]{flex:1 1 auto;gap:var(--base-card-left-gap)}.base-card__header-right[data-v-6bfddf1c]{flex:0 1 auto;justify-content:flex-end;gap:var(--base-card-right-gap)}.base-card__title-wrap[data-v-6bfddf1c]{display:flex;align-items:center;min-width:0}.base-card__title-marker[data-v-6bfddf1c]{width:var(--base-card-marker-width);height:var(--base-card-marker-height);background:var(--base-card-marker-color);border-radius:var(--base-card-marker-radius);margin-right:var(--base-card-marker-gap);flex:0 0 auto}.base-card__title[data-v-6bfddf1c]{margin:0;min-width:0;color:var(--base-card-title-color);font-size:var(--base-card-title-size);font-weight:var(--base-card-title-weight);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.base-card__meta[data-v-6bfddf1c]{color:var(--base-card-meta-color);font-size:var(--base-card-meta-size);line-height:1.4}.base-card__export[data-v-6bfddf1c]{border:none;background:transparent;padding:0;color:var(--base-card-export-color);cursor:pointer;font-size:var(--base-card-meta-size);line-height:1.4}.base-card__export[data-v-6bfddf1c]:disabled{opacity:.5;cursor:not-allowed}.base-card__body[data-v-6bfddf1c]{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.base-card__tip[data-v-6bfddf1c]{flex:0 0 auto}.base-card__content[data-v-6bfddf1c]{flex:1 1 auto;min-height:0}.base-table[data-v-429ba785]{display:flex;flex-direction:column;height:100%;min-height:0}.base-table__toolbar[data-v-429ba785]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;min-height:32px;flex-wrap:wrap}.base-table__toolbar-left[data-v-429ba785]{flex:1 1 auto;min-width:0}.base-table__toolbar-right[data-v-429ba785]{flex:0 1 auto}.base-table__actions[data-v-429ba785]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.base-table__link[data-v-429ba785]{padding:0;border:none;background:transparent;color:var(--el-color-primary);cursor:pointer}.base-table__text[data-v-429ba785]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.base-table__tags[data-v-429ba785]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.base-table__image[data-v-429ba785]{border-radius:4px;overflow:hidden}.base-echart[data-v-51bc4772],.base-echart__inner[data-v-51bc4772]{width:100%;height:100%}
1
+ .base-card[data-v-6bfddf1c]{display:flex;flex-direction:column;min-width:0;min-height:0;padding:var(--base-card-padding);border:1px solid var(--base-card-border-color);background:var(--base-card-background-color);box-shadow:0 0 2px 0 var(--base-card-shadow-color);border-radius:var(--base-card-radius)}.base-card__header[data-v-6bfddf1c]{display:flex;align-items:center;justify-content:space-between;gap:var(--base-card-header-gap);margin-bottom:var(--base-card-header-margin-bottom);min-height:24px;flex-wrap:wrap}.base-card__header-left[data-v-6bfddf1c],.base-card__header-right[data-v-6bfddf1c]{display:flex;align-items:center;min-width:0;flex-wrap:wrap}.base-card__header-left[data-v-6bfddf1c]{flex:1 1 auto;gap:var(--base-card-left-gap)}.base-card__header-right[data-v-6bfddf1c]{flex:0 1 auto;justify-content:flex-end;gap:var(--base-card-right-gap)}.base-card__title-wrap[data-v-6bfddf1c]{display:flex;align-items:center;min-width:0}.base-card__title-marker[data-v-6bfddf1c]{width:var(--base-card-marker-width);height:var(--base-card-marker-height);background:var(--base-card-marker-color);border-radius:var(--base-card-marker-radius);margin-right:var(--base-card-marker-gap);flex:0 0 auto}.base-card__title[data-v-6bfddf1c]{margin:0;min-width:0;color:var(--base-card-title-color);font-size:var(--base-card-title-size);font-weight:var(--base-card-title-weight);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.base-card__meta[data-v-6bfddf1c]{color:var(--base-card-meta-color);font-size:var(--base-card-meta-size);line-height:1.4}.base-card__export[data-v-6bfddf1c]{border:none;background:transparent;padding:0;color:var(--base-card-export-color);cursor:pointer;font-size:var(--base-card-meta-size);line-height:1.4}.base-card__export[data-v-6bfddf1c]:disabled{opacity:.5;cursor:not-allowed}.base-card__body[data-v-6bfddf1c]{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.base-card__tip[data-v-6bfddf1c]{flex:0 0 auto}.base-card__content[data-v-6bfddf1c]{flex:1 1 auto;min-height:0}.base-table[data-v-7ae8d382]{display:flex;flex-direction:column;height:100%;min-height:0}.base-table__toolbar[data-v-7ae8d382]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;min-height:32px;flex-wrap:wrap}.base-table__toolbar-left[data-v-7ae8d382]{flex:1 1 auto;min-width:0}.base-table__toolbar-right[data-v-7ae8d382]{flex:0 1 auto}.base-table__actions[data-v-7ae8d382]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.base-table__header[data-v-7ae8d382]{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.base-table__header-label[data-v-7ae8d382]{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.base-table__header-actions[data-v-7ae8d382]{display:flex;align-items:center;margin-left:auto;flex-shrink:0}.base-table__header-icon[data-v-7ae8d382]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--el-text-color-secondary);cursor:pointer;transition:color .2s ease,background-color .2s ease}.base-table__header-icon[data-v-7ae8d382]:hover,.base-table__header-icon.is-active[data-v-7ae8d382]{color:var(--el-color-primary);background:rgba(64,158,255,.12)}.base-table__header-icon-mark[data-v-7ae8d382]{position:relative;display:inline-block;width:14px;height:14px;box-sizing:border-box;border:2px solid currentColor;border-radius:999px}.base-table__header-icon-mark[data-v-7ae8d382]:after{content:"";position:absolute;right:-6px;bottom:-4px;width:7px;height:2px;border-radius:999px;background:currentColor;transform:rotate(45deg);transform-origin:center}.base-table__header-dropdown[data-v-7ae8d382]{display:inline-flex;align-items:center}.base-table__header-search-panel[data-v-7ae8d382]{display:flex;flex-direction:column;gap:12px;padding:8px}[data-v-7ae8d382] .base-table__header-search-menu{padding:0}[data-v-7ae8d382] .base-table__header-search-dropdown{padding:0;border-radius:12px}.base-table__header-search-footer[data-v-7ae8d382]{display:flex;align-items:center;justify-content:space-between}.base-table__link[data-v-7ae8d382]{padding:0;border:none;background:transparent;color:var(--el-color-primary);cursor:pointer}.base-table__text[data-v-7ae8d382]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.base-table__tags[data-v-7ae8d382]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.base-table__image[data-v-7ae8d382]{border-radius:4px;overflow:hidden}.base-echart[data-v-51bc4772],.base-echart__inner[data-v-51bc4772]{width:100%;height:100%}.outlined-input[data-v-2bf89ccd]{position:relative}.outlined-input__label[data-v-2bf89ccd]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-input__label--floating[data-v-2bf89ccd]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-input__label--placeholder[data-v-2bf89ccd]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-input__label--filled[data-v-2bf89ccd]{color:var(--el-text-color-regular)}.outlined-input__suffix-text[data-v-2bf89ccd]{white-space:nowrap}[data-v-2bf89ccd] .outlined-input--bordered .el-input__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-2bf89ccd] .outlined-input--bordered .el-input__wrapper.is-focus{border-bottom-color:var(--el-color-primary)}[data-v-2bf89ccd] .outlined-input--bordered .el-textarea__inner{border-width:0 0 1px;border-radius:0;box-shadow:none}[data-v-2bf89ccd] .outlined-input--bordered .el-textarea__inner:focus{border-bottom-color:var(--el-color-primary)}[data-v-2bf89ccd] .outlined-input--textarea-default .el-textarea__inner{min-height:100px!important;max-height:180px}.outlined-select[data-v-7bd2b5f2]{position:relative}.outlined-select__label[data-v-7bd2b5f2]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-select__label--floating[data-v-7bd2b5f2]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-select__label--placeholder[data-v-7bd2b5f2]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-select__label--filled[data-v-7bd2b5f2]{color:var(--el-text-color-regular)}[data-v-7bd2b5f2] .outlined-select__control.el-select{width:100%}[data-v-7bd2b5f2] .outlined-select__control .el-select__wrapper{min-height:inherit;height:inherit}[data-v-7bd2b5f2] .outlined-select__control .el-select__tags{padding-top:4px}[data-v-7bd2b5f2] .outlined-select__control .el-select__selection{min-height:inherit}[data-v-7bd2b5f2] .outlined-select--bordered .el-select__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-7bd2b5f2] .outlined-select--bordered .el-select__wrapper.is-focused{border-bottom-color:var(--el-color-primary)}.outlined-date-picker[data-v-c95a293c]{position:relative}.outlined-date-picker__label[data-v-c95a293c]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-date-picker__label--floating[data-v-c95a293c]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-date-picker__label--placeholder[data-v-c95a293c]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-date-picker__label--filled[data-v-c95a293c]{color:var(--el-text-color-regular)}[data-v-c95a293c] .outlined-date-picker__control.el-date-editor{width:100%}[data-v-c95a293c] .outlined-date-picker__control .el-input__wrapper{position:relative;min-height:inherit;height:inherit}[data-v-c95a293c] .outlined-date-picker__control .el-input__prefix{position:absolute;right:0}[data-v-c95a293c] .outlined-date-picker__control .el-input__suffix{position:absolute;right:30px}[data-v-c95a293c] .outlined-date-picker--bordered .el-input__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-c95a293c] .outlined-date-picker--bordered .el-input__wrapper.is-focus{border-bottom-color:var(--el-color-primary)}.outlined-date-time-picker[data-v-f2fefd22]{display:flex;align-items:center;gap:8px}.outlined-date-time-picker__field[data-v-f2fefd22]{position:relative;flex:1}.outlined-date-time-picker__separator[data-v-f2fefd22]{flex:0 0 auto;color:var(--el-text-color-regular)}.outlined-date-time-picker__label[data-v-f2fefd22]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-date-time-picker__label--floating[data-v-f2fefd22]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-date-time-picker__label--placeholder[data-v-f2fefd22]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-date-time-picker__label--filled[data-v-f2fefd22]{color:var(--el-text-color-regular)}[data-v-f2fefd22] .outlined-date-time-picker__control.el-date-editor{width:100%}[data-v-f2fefd22] .outlined-date-time-picker__control .el-input__wrapper{position:relative;min-height:inherit;height:inherit}[data-v-f2fefd22] .outlined-date-time-picker__control .el-input__prefix{position:absolute;right:0}[data-v-f2fefd22] .outlined-date-time-picker__control .el-input__suffix{position:absolute;right:30px}[data-v-f2fefd22] .outlined-date-time-picker__field--bordered .el-input__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-f2fefd22] .outlined-date-time-picker__field--bordered .el-input__wrapper.is-focus{border-bottom-color:var(--el-color-primary)}.outlined-time-picker[data-v-6a467b88]{position:relative}.outlined-time-picker__label[data-v-6a467b88]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-time-picker__label--floating[data-v-6a467b88]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-time-picker__label--placeholder[data-v-6a467b88]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-time-picker__label--filled[data-v-6a467b88]{color:var(--el-text-color-regular)}[data-v-6a467b88] .outlined-time-picker__control.el-date-editor{width:100%}[data-v-6a467b88] .outlined-time-picker__control .el-input__wrapper{position:relative;min-height:inherit;height:inherit}[data-v-6a467b88] .outlined-time-picker__control .el-input__prefix{position:absolute;right:0}[data-v-6a467b88] .outlined-time-picker__control .el-input__suffix{position:absolute;right:30px}[data-v-6a467b88] .outlined-time-picker--bordered .el-input__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-6a467b88] .outlined-time-picker--bordered .el-input__wrapper.is-focus{border-bottom-color:var(--el-color-primary)}.outlined-cascader[data-v-2c93c0e4]{position:relative}.outlined-cascader__label[data-v-2c93c0e4]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-cascader__label--floating[data-v-2c93c0e4]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-cascader__label--placeholder[data-v-2c93c0e4]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-cascader__label--filled[data-v-2c93c0e4]{color:var(--el-text-color-regular)}[data-v-2c93c0e4] .outlined-cascader__control .el-input{height:100%}[data-v-2c93c0e4] .outlined-cascader--bordered .el-input__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-2c93c0e4] .outlined-cascader--bordered .el-input__wrapper.is-focus{border-bottom-color:var(--el-color-primary)}.outlined-tree-select[data-v-8403e6ea]{position:relative}.outlined-tree-select__label[data-v-8403e6ea]{position:absolute;left:-2px;padding:2px 5px;border-radius:2px;background-color:#fff;font-size:12px;line-height:1;transition:color .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1);pointer-events:none}.outlined-tree-select__label--floating[data-v-8403e6ea]{top:18px;z-index:1;opacity:1;transform:translate(14px,-6px) scale(1);color:var(--el-color-primary)}.outlined-tree-select__label--placeholder[data-v-8403e6ea]{top:50%;left:1px;z-index:-1;opacity:0;transform:translate(14px,6px) scale(1)}.outlined-tree-select__label--filled[data-v-8403e6ea]{color:var(--el-text-color-regular)}[data-v-8403e6ea] .outlined-tree-select__control.el-select{width:100%}[data-v-8403e6ea] .outlined-tree-select__control .el-select__wrapper{min-height:inherit;height:inherit}[data-v-8403e6ea] .outlined-tree-select__control .el-select__selection{min-height:inherit}[data-v-8403e6ea] .outlined-tree-select__control .el-select__tags{padding-top:4px}[data-v-8403e6ea] .outlined-tree-select--bordered .el-select__wrapper{box-shadow:none;border-radius:0;border-bottom:1px solid #cccccc}[data-v-8403e6ea] .outlined-tree-select--bordered .el-select__wrapper.is-focused{border-bottom-color:var(--el-color-primary)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hbdlzy/ui-core",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Company shared Vue UI core package.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,12 +10,12 @@
10
10
  },
11
11
  "main": "dist/index.cjs",
12
12
  "module": "dist/index.js",
13
- "types": "src/index.ts",
13
+ "types": "dist/index.d.ts",
14
14
  "exports": {
15
15
  ".": {
16
16
  "import": "./dist/index.js",
17
17
  "require": "./dist/index.cjs",
18
- "types": "./src/index.ts"
18
+ "types": "./dist/index.d.ts"
19
19
  },
20
20
  "./components.manifest.json": "./components.manifest.json"
21
21
  },
@@ -30,6 +30,7 @@
30
30
  "vue": "^3.5.14"
31
31
  },
32
32
  "dependencies": {
33
+ "dayjs": "^1.11.13",
33
34
  "echarts": "^5.5.1",
34
35
  "exceljs": "^4.4.0",
35
36
  "file-saver": "2.0.5"
@@ -43,6 +44,7 @@
43
44
  "registry": "https://registry.npmjs.org/"
44
45
  },
45
46
  "scripts": {
46
- "build": "vite build"
47
+ "build": "vite build && pnpm run build:types",
48
+ "build:types": "vue-tsc -p tsconfig.build.json --declaration --emitDeclarationOnly"
47
49
  }
48
50
  }
@@ -0,0 +1,36 @@
1
+ export type BaseCardCssValue = string | number;
2
+ export interface BaseCardDefaultExportPayload {
3
+ title?: string;
4
+ metaText?: string;
5
+ }
6
+ export interface BaseCardProps {
7
+ title?: string;
8
+ metaText?: string;
9
+ showHeader?: boolean;
10
+ showRight?: boolean;
11
+ showTitleMarker?: boolean;
12
+ showExport?: boolean;
13
+ exportText?: string;
14
+ exportDisabled?: boolean;
15
+ exportPayload?: unknown;
16
+ padding?: BaseCardCssValue;
17
+ radius?: BaseCardCssValue;
18
+ borderColor?: string;
19
+ backgroundColor?: string;
20
+ shadowColor?: string;
21
+ headerGap?: BaseCardCssValue;
22
+ headerMarginBottom?: BaseCardCssValue;
23
+ leftGap?: BaseCardCssValue;
24
+ rightGap?: BaseCardCssValue;
25
+ titleColor?: string;
26
+ titleSize?: BaseCardCssValue;
27
+ titleWeight?: string | number;
28
+ markerColor?: string;
29
+ markerWidth?: BaseCardCssValue;
30
+ markerHeight?: BaseCardCssValue;
31
+ markerRadius?: BaseCardCssValue;
32
+ markerGap?: BaseCardCssValue;
33
+ metaColor?: string;
34
+ metaSize?: BaseCardCssValue;
35
+ exportColor?: string;
36
+ }
@@ -0,0 +1,122 @@
1
+ import type { BaseCardCssValue, BaseCardProps } from './BaseCard.types';
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BaseCardProps>, {
3
+ title: string;
4
+ metaText: string;
5
+ showHeader: boolean;
6
+ showRight: boolean;
7
+ showTitleMarker: boolean;
8
+ showExport: boolean;
9
+ exportText: string;
10
+ exportDisabled: boolean;
11
+ padding: number;
12
+ radius: number;
13
+ borderColor: string;
14
+ backgroundColor: string;
15
+ shadowColor: string;
16
+ headerGap: number;
17
+ headerMarginBottom: number;
18
+ leftGap: number;
19
+ rightGap: number;
20
+ titleColor: string;
21
+ titleSize: number;
22
+ titleWeight: number;
23
+ markerColor: string;
24
+ markerWidth: number;
25
+ markerHeight: number;
26
+ markerRadius: string;
27
+ markerGap: number;
28
+ metaColor: string;
29
+ metaSize: number;
30
+ exportColor: string;
31
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
32
+ export: (payload?: unknown) => void;
33
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BaseCardProps>, {
34
+ title: string;
35
+ metaText: string;
36
+ showHeader: boolean;
37
+ showRight: boolean;
38
+ showTitleMarker: boolean;
39
+ showExport: boolean;
40
+ exportText: string;
41
+ exportDisabled: boolean;
42
+ padding: number;
43
+ radius: number;
44
+ borderColor: string;
45
+ backgroundColor: string;
46
+ shadowColor: string;
47
+ headerGap: number;
48
+ headerMarginBottom: number;
49
+ leftGap: number;
50
+ rightGap: number;
51
+ titleColor: string;
52
+ titleSize: number;
53
+ titleWeight: number;
54
+ markerColor: string;
55
+ markerWidth: number;
56
+ markerHeight: number;
57
+ markerRadius: string;
58
+ markerGap: number;
59
+ metaColor: string;
60
+ metaSize: number;
61
+ exportColor: string;
62
+ }>>> & Readonly<{
63
+ onExport?: ((payload?: unknown) => any) | undefined;
64
+ }>, {
65
+ title: string;
66
+ metaText: string;
67
+ showHeader: boolean;
68
+ showRight: boolean;
69
+ showTitleMarker: boolean;
70
+ showExport: boolean;
71
+ exportText: string;
72
+ exportDisabled: boolean;
73
+ padding: BaseCardCssValue;
74
+ radius: BaseCardCssValue;
75
+ borderColor: string;
76
+ backgroundColor: string;
77
+ shadowColor: string;
78
+ headerGap: BaseCardCssValue;
79
+ headerMarginBottom: BaseCardCssValue;
80
+ leftGap: BaseCardCssValue;
81
+ rightGap: BaseCardCssValue;
82
+ titleColor: string;
83
+ titleSize: BaseCardCssValue;
84
+ titleWeight: string | number;
85
+ markerColor: string;
86
+ markerWidth: BaseCardCssValue;
87
+ markerHeight: BaseCardCssValue;
88
+ markerRadius: BaseCardCssValue;
89
+ markerGap: BaseCardCssValue;
90
+ metaColor: string;
91
+ metaSize: BaseCardCssValue;
92
+ exportColor: string;
93
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
94
+ "title-label"?(_: {}): any;
95
+ title?(_: {}): any;
96
+ "header-right"?(_: {}): any;
97
+ tip?(_: {}): any;
98
+ default?(_: {}): any;
99
+ }>;
100
+ export default _default;
101
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
102
+ type __VLS_TypePropsToRuntimeProps<T> = {
103
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
104
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
105
+ } : {
106
+ type: import('vue').PropType<T[K]>;
107
+ required: true;
108
+ };
109
+ };
110
+ type __VLS_WithDefaults<P, D> = {
111
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
112
+ default: D[K];
113
+ }> : P[K];
114
+ };
115
+ type __VLS_Prettify<T> = {
116
+ [K in keyof T]: T[K];
117
+ } & {};
118
+ type __VLS_WithTemplateSlots<T, S> = T & {
119
+ new (): {
120
+ $slots: S;
121
+ };
122
+ };
@@ -0,0 +1,3 @@
1
+ import BaseCard from './BaseCard.vue';
2
+ export default BaseCard;
3
+ export type { BaseCardCssValue, BaseCardDefaultExportPayload, BaseCardProps } from './BaseCard.types';
@@ -0,0 +1,26 @@
1
+ import type { EChartInitOptions, EChartInstance, EChartLoadingOptions, EChartOption, EChartResizeOptions, EChartSetOptionOptions } from '../../echarts';
2
+ export interface BaseEChartProps {
3
+ option?: EChartOption;
4
+ theme?: string | Record<string, unknown>;
5
+ initOptions?: EChartInitOptions;
6
+ setOptionOptions?: boolean | EChartSetOptionOptions;
7
+ loading?: boolean;
8
+ loadingOptions?: EChartLoadingOptions;
9
+ autoResize?: boolean;
10
+ useDefaultColors?: boolean;
11
+ colorStorageKey?: string;
12
+ defaultColors?: string[];
13
+ group?: string;
14
+ }
15
+ export interface BaseEChartExpose {
16
+ getInstance: () => EChartInstance | null;
17
+ setOption: (option: EChartOption, setOptionOptions?: boolean | EChartSetOptionOptions) => EChartInstance | null;
18
+ resize: (resizeOptions?: EChartResizeOptions) => void;
19
+ dispatchAction: (payload: Record<string, unknown>) => void;
20
+ showLoading: (type?: string, loadingOptions?: EChartLoadingOptions) => void;
21
+ hideLoading: () => void;
22
+ clear: () => void;
23
+ dispose: () => void;
24
+ on: (eventName: string, handler: (...args: any[]) => void, context?: unknown) => void;
25
+ off: (eventName?: string, handler?: (...args: any[]) => void) => void;
26
+ }
@@ -0,0 +1,66 @@
1
+ import { echarts } from '../../echarts';
2
+ import type { BaseEChartProps } from './BaseEChart.types';
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BaseEChartProps>, {
4
+ option: () => {};
5
+ initOptions: () => echarts.EChartsInitOpts;
6
+ setOptionOptions: () => echarts.SetOptionOpts;
7
+ loading: boolean;
8
+ autoResize: boolean;
9
+ useDefaultColors: boolean;
10
+ colorStorageKey: string;
11
+ defaultColors: () => never[];
12
+ group: undefined;
13
+ }>>, {
14
+ getInstance: () => echarts.ECharts | null;
15
+ setOption: (option: echarts.EChartsOption, setOptionOptions?: boolean | echarts.SetOptionOpts | undefined) => echarts.ECharts | null;
16
+ resize: (resizeOptions?: echarts.ResizeOpts | undefined) => void;
17
+ dispatchAction: (payload: Record<string, unknown>) => void;
18
+ showLoading: (type?: string | undefined, loadingOptions?: object | undefined) => void;
19
+ hideLoading: () => void;
20
+ clear: () => void;
21
+ dispose: () => void;
22
+ on: (eventName: string, handler: (...args: any[]) => void, context?: unknown) => void;
23
+ off: (eventName?: string | undefined, handler?: ((...args: any[]) => void) | undefined) => void;
24
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
25
+ ready: (chart: echarts.ECharts) => void;
26
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BaseEChartProps>, {
27
+ option: () => {};
28
+ initOptions: () => echarts.EChartsInitOpts;
29
+ setOptionOptions: () => echarts.SetOptionOpts;
30
+ loading: boolean;
31
+ autoResize: boolean;
32
+ useDefaultColors: boolean;
33
+ colorStorageKey: string;
34
+ defaultColors: () => never[];
35
+ group: undefined;
36
+ }>>> & Readonly<{
37
+ onReady?: ((chart: echarts.ECharts) => any) | undefined;
38
+ }>, {
39
+ option: echarts.EChartsOption;
40
+ loading: boolean;
41
+ initOptions: echarts.EChartsInitOpts;
42
+ setOptionOptions: boolean | echarts.SetOptionOpts;
43
+ autoResize: boolean;
44
+ useDefaultColors: boolean;
45
+ colorStorageKey: string;
46
+ defaultColors: string[];
47
+ group: string;
48
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
49
+ export default _default;
50
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
51
+ type __VLS_TypePropsToRuntimeProps<T> = {
52
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
53
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
54
+ } : {
55
+ type: import('vue').PropType<T[K]>;
56
+ required: true;
57
+ };
58
+ };
59
+ type __VLS_WithDefaults<P, D> = {
60
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
61
+ default: D[K];
62
+ }> : P[K];
63
+ };
64
+ type __VLS_Prettify<T> = {
65
+ [K in keyof T]: T[K];
66
+ } & {};
@@ -0,0 +1,3 @@
1
+ import BaseEChart from './BaseEChart.vue';
2
+ export default BaseEChart;
3
+ export type { BaseEChartExpose, BaseEChartProps } from './BaseEChart.types';
@@ -0,0 +1,21 @@
1
+ import type { ExcelExportOptions } from '../../excel/exportExcel';
2
+ export interface ExportResponseHeaders {
3
+ [key: string]: string | undefined;
4
+ }
5
+ export interface ExportResponseLike {
6
+ data: Blob | BlobPart | ArrayBuffer;
7
+ headers?: ExportResponseHeaders;
8
+ }
9
+ export type ExportRequestHandler = () => Promise<ExportResponseLike>;
10
+ export type ExportMode = 'excel' | 'request' | 'none' | 'invalid';
11
+ export type ExportBeforeHandler = () => boolean | void | Promise<boolean | void>;
12
+ export interface ExportSuccessPayload {
13
+ mode: Exclude<ExportMode, 'none' | 'invalid'>;
14
+ fileName?: string;
15
+ }
16
+ export interface BaseExportExcelConfig<Row = Record<string, any>> {
17
+ excelOptions: ExcelExportOptions<Row>;
18
+ }
19
+ export interface BaseExportRequestConfig {
20
+ requestHandler: ExportRequestHandler;
21
+ }
@@ -0,0 +1,4 @@
1
+ import type { ExportResponseLike } from './BaseExportButton.types';
2
+ export declare function extractFileNameFromDisposition(contentDisposition?: string): string;
3
+ export declare function normalizeExportFileName(fileName?: string): string;
4
+ export declare function downloadExportResponse(response: ExportResponseLike, fallbackFileName?: string): string;
@@ -0,0 +1,128 @@
1
+ import type { PropType } from 'vue';
2
+ import { type ExcelExportOptions } from '../../excel/exportExcel';
3
+ import type { ExportBeforeHandler, ExportRequestHandler, ExportSuccessPayload } from './BaseExportButton.types';
4
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
+ label: {
6
+ type: StringConstructor;
7
+ default: string;
8
+ };
9
+ type: {
10
+ type: PropType<"" | "success" | "warning" | "info" | "danger" | "primary">;
11
+ default: string;
12
+ };
13
+ size: {
14
+ type: PropType<"default" | "small" | "large">;
15
+ default: string;
16
+ };
17
+ plain: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
21
+ link: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
25
+ text: {
26
+ type: BooleanConstructor;
27
+ default: boolean;
28
+ };
29
+ disabled: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ fileName: {
34
+ type: StringConstructor;
35
+ default: string;
36
+ };
37
+ excelOptions: PropType<ExcelExportOptions<Record<string, any>>>;
38
+ requestHandler: PropType<ExportRequestHandler>;
39
+ beforeExport: PropType<ExportBeforeHandler>;
40
+ successMessage: {
41
+ type: StringConstructor;
42
+ default: string;
43
+ };
44
+ errorMessage: {
45
+ type: StringConstructor;
46
+ default: string;
47
+ };
48
+ autoMessage: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
+ start: () => void;
54
+ success: (payload: ExportSuccessPayload) => void;
55
+ error: (error: unknown) => void;
56
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
57
+ label: {
58
+ type: StringConstructor;
59
+ default: string;
60
+ };
61
+ type: {
62
+ type: PropType<"" | "success" | "warning" | "info" | "danger" | "primary">;
63
+ default: string;
64
+ };
65
+ size: {
66
+ type: PropType<"default" | "small" | "large">;
67
+ default: string;
68
+ };
69
+ plain: {
70
+ type: BooleanConstructor;
71
+ default: boolean;
72
+ };
73
+ link: {
74
+ type: BooleanConstructor;
75
+ default: boolean;
76
+ };
77
+ text: {
78
+ type: BooleanConstructor;
79
+ default: boolean;
80
+ };
81
+ disabled: {
82
+ type: BooleanConstructor;
83
+ default: boolean;
84
+ };
85
+ fileName: {
86
+ type: StringConstructor;
87
+ default: string;
88
+ };
89
+ excelOptions: PropType<ExcelExportOptions<Record<string, any>>>;
90
+ requestHandler: PropType<ExportRequestHandler>;
91
+ beforeExport: PropType<ExportBeforeHandler>;
92
+ successMessage: {
93
+ type: StringConstructor;
94
+ default: string;
95
+ };
96
+ errorMessage: {
97
+ type: StringConstructor;
98
+ default: string;
99
+ };
100
+ autoMessage: {
101
+ type: BooleanConstructor;
102
+ default: boolean;
103
+ };
104
+ }>> & Readonly<{
105
+ onError?: ((error: unknown) => any) | undefined;
106
+ onSuccess?: ((payload: ExportSuccessPayload) => any) | undefined;
107
+ onStart?: (() => any) | undefined;
108
+ }>, {
109
+ type: "" | "success" | "warning" | "info" | "danger" | "primary";
110
+ label: string;
111
+ link: boolean;
112
+ text: boolean;
113
+ disabled: boolean;
114
+ size: "default" | "small" | "large";
115
+ fileName: string;
116
+ plain: boolean;
117
+ successMessage: string;
118
+ errorMessage: string;
119
+ autoMessage: boolean;
120
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
121
+ default?(_: {}): any;
122
+ }>;
123
+ export default _default;
124
+ type __VLS_WithTemplateSlots<T, S> = T & {
125
+ new (): {
126
+ $slots: S;
127
+ };
128
+ };
@@ -0,0 +1,5 @@
1
+ import BaseExportButton from './BaseExportButton.vue';
2
+ export { BaseExportButton };
3
+ export { downloadExportResponse, extractFileNameFromDisposition, normalizeExportFileName } from './BaseExportButton.utils';
4
+ export type { BaseExportExcelConfig, BaseExportRequestConfig, ExportBeforeHandler, ExportMode, ExportRequestHandler, ExportResponseHeaders, ExportResponseLike, ExportSuccessPayload } from './BaseExportButton.types';
5
+ export default BaseExportButton;
@@ -0,0 +1,163 @@
1
+ export type BaseTableCssValue = string | number;
2
+ export type BaseTableAlign = 'left' | 'center' | 'right';
3
+ export type BaseTableColumnKind = 'text' | 'link' | 'actions' | 'image' | 'tag' | 'html' | 'input';
4
+ export type BaseTableSortOrder = 'ascending' | 'descending' | null;
5
+ export type BaseTableSortDirection = string | null;
6
+ export interface BaseTableHeaderSearchConfig {
7
+ paramKey?: string;
8
+ placeholder?: string;
9
+ width?: BaseTableCssValue;
10
+ searchText?: string;
11
+ resetText?: string;
12
+ }
13
+ export interface BaseTableOption {
14
+ label: string;
15
+ value: string | number | boolean;
16
+ tagType?: '' | 'success' | 'warning' | 'info' | 'danger' | 'primary';
17
+ color?: string;
18
+ }
19
+ export interface BaseTableAction<Row = Record<string, any>> {
20
+ label: string;
21
+ type: string;
22
+ buttonType?: '' | 'primary' | 'success' | 'warning' | 'info' | 'danger';
23
+ disabled?: boolean | ((row: Row) => boolean);
24
+ visible?: boolean | ((row: Row) => boolean);
25
+ }
26
+ export interface BaseTableColumn<Row = Record<string, any>> {
27
+ label: string;
28
+ prop?: keyof Row | string;
29
+ kind?: BaseTableColumnKind;
30
+ type?: string;
31
+ width?: BaseTableCssValue;
32
+ minWidth?: BaseTableCssValue;
33
+ align?: BaseTableAlign;
34
+ headerAlign?: BaseTableAlign;
35
+ fixed?: boolean | 'left' | 'right';
36
+ sortable?: boolean | 'custom';
37
+ sortField?: string;
38
+ headerSearch?: boolean | BaseTableHeaderSearchConfig;
39
+ showOverflowTooltip?: boolean;
40
+ className?: string;
41
+ headerClassName?: string;
42
+ actions?: BaseTableAction<Row>[];
43
+ clickable?: boolean;
44
+ options?: BaseTableOption[];
45
+ optionValueKey?: string;
46
+ optionLabelKey?: string;
47
+ optionTagTypeKey?: string;
48
+ emptyText?: string;
49
+ inputType?: string;
50
+ imageFit?: '' | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
51
+ imageWidth?: BaseTableCssValue;
52
+ imageHeight?: BaseTableCssValue;
53
+ slotName?: string;
54
+ headerSlotName?: string;
55
+ formatter?: (row: Row, column: BaseTableColumn<Row>) => unknown;
56
+ html?: (row: Row, column: BaseTableColumn<Row>) => string;
57
+ clickHandler?: (row: Row, column: BaseTableColumn<Row>) => void;
58
+ inputHandler?: (value: string, row: Row, column: BaseTableColumn<Row>) => void;
59
+ }
60
+ export interface BaseTablePagination {
61
+ currentPage: number;
62
+ pageSize: number;
63
+ total: number;
64
+ pageSizes: number[];
65
+ }
66
+ export interface BaseTableRequestParams {
67
+ currentPage: number;
68
+ pageSize: number;
69
+ [key: string]: unknown;
70
+ }
71
+ export interface BaseTableSortState {
72
+ prop?: string;
73
+ order: BaseTableSortOrder;
74
+ }
75
+ export interface BaseTableSortOrderMap {
76
+ ascending: string;
77
+ descending: string;
78
+ }
79
+ export interface BaseTableRequestResult<Row = Record<string, any>> {
80
+ records?: Row[];
81
+ list?: Row[];
82
+ items?: Row[];
83
+ total?: number;
84
+ data?: {
85
+ records?: Row[];
86
+ list?: Row[];
87
+ items?: Row[];
88
+ total?: number;
89
+ };
90
+ }
91
+ export interface BaseTableNormalizedResult<Row = Record<string, any>> {
92
+ rows?: Row[];
93
+ total?: number;
94
+ }
95
+ export type BaseTableRequestHandler<Row = Record<string, any>> = (params: BaseTableRequestParams) => Promise<BaseTableRequestResult<Row> | Row[]>;
96
+ export type BaseTableResultAdapter<Row = Record<string, any>> = (result: unknown, params: BaseTableRequestParams) => BaseTableNormalizedResult<Row>;
97
+ export interface BaseTableProps<Row = Record<string, any>> {
98
+ columns: BaseTableColumn<Row>[];
99
+ data?: Row[];
100
+ request?: BaseTableRequestHandler<Row>;
101
+ requestParams?: Record<string, unknown>;
102
+ resultAdapter?: BaseTableResultAdapter<Row>;
103
+ autoLoad?: boolean;
104
+ reloadOnParamsChange?: boolean;
105
+ reloadOnSortChange?: boolean;
106
+ rowKey?: string;
107
+ height?: BaseTableCssValue;
108
+ border?: boolean;
109
+ stripe?: boolean;
110
+ showToolbar?: boolean;
111
+ showPagination?: boolean;
112
+ hasSelection?: boolean;
113
+ hasIndex?: boolean;
114
+ indexLabel?: string;
115
+ indexWidth?: BaseTableCssValue;
116
+ selectionWidth?: BaseTableCssValue;
117
+ rowSelectable?: (row: Row, index: number) => boolean;
118
+ pagination?: Partial<BaseTablePagination>;
119
+ currentPageKey?: string;
120
+ pageSizeKey?: string;
121
+ defaultSort?: BaseTableSortState;
122
+ sortFieldKey?: string;
123
+ sortOrderKey?: string;
124
+ sortOrderMap?: BaseTableSortOrderMap;
125
+ sortMapper?: (payload: BaseTableSortPayload<Row>) => Record<string, unknown> | void;
126
+ emptyText?: string;
127
+ loadingText?: string;
128
+ }
129
+ export interface BaseTableSortPayload<Row = Record<string, any>> {
130
+ column: BaseTableColumn<Row> | undefined;
131
+ prop?: string;
132
+ order: BaseTableSortOrder;
133
+ field?: string;
134
+ direction: BaseTableSortDirection;
135
+ }
136
+ export interface BaseTableRowActionPayload<Row = Record<string, any>> {
137
+ row: Row;
138
+ action: BaseTableAction<Row>;
139
+ column: BaseTableColumn<Row>;
140
+ }
141
+ export interface BaseTableCellPayload<Row = Record<string, any>> {
142
+ row: Row;
143
+ column: BaseTableColumn<Row>;
144
+ value: unknown;
145
+ }
146
+ export interface BaseTableLoadedPayload<Row = Record<string, any>> {
147
+ rows: Row[];
148
+ total: number;
149
+ params: BaseTableRequestParams;
150
+ }
151
+ export interface BaseTableExpose<Row = Record<string, any>> {
152
+ load: (data?: Row[]) => Promise<void>;
153
+ refresh: () => Promise<void>;
154
+ setData: (data: Row[]) => void;
155
+ resetPage: () => Promise<void>;
156
+ setHeaderSearchValue: (key: string, value: string, shouldReload?: boolean) => Promise<void>;
157
+ resetHeaderSearch: (key?: string) => Promise<void>;
158
+ getHeaderSearchValues: () => Record<string, string>;
159
+ clearSelection: () => void;
160
+ toggleRowSelection: (row: Row, selected?: boolean) => void;
161
+ getSelectionRows: () => Row[];
162
+ getRows: () => Row[];
163
+ }