@minilo/ui 0.0.7 → 0.0.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 (212) hide show
  1. package/package.json +2 -2
  2. package/minilo/dist/index.css +0 -1
  3. package/minilo/dist/index.full.js +0 -8393
  4. package/minilo/dist/index.full.min.js +0 -2
  5. package/minilo/dist/index.full.min.js.map +0 -1
  6. package/minilo/dist/index.full.min.mjs +0 -2
  7. package/minilo/dist/index.full.min.mjs.map +0 -1
  8. package/minilo/dist/index.full.mjs +0 -8373
  9. package/minilo/es/components/button/index.d.ts +0 -47
  10. package/minilo/es/components/button/index.mjs +0 -6
  11. package/minilo/es/components/button/index.vue.d.ts +0 -29
  12. package/minilo/es/components/button/index.vue.mjs +0 -5
  13. package/minilo/es/components/button/index.vue2.mjs +0 -67
  14. package/minilo/es/components/button/type.d.ts +0 -10
  15. package/minilo/es/components/chart/index.d.ts +0 -49
  16. package/minilo/es/components/chart/index.mjs +0 -6
  17. package/minilo/es/components/chart/index.vue.d.ts +0 -33
  18. package/minilo/es/components/chart/index.vue.mjs +0 -5
  19. package/minilo/es/components/chart/index.vue2.mjs +0 -124
  20. package/minilo/es/components/chart/type.d.ts +0 -7
  21. package/minilo/es/components/detail/index.d.ts +0 -37
  22. package/minilo/es/components/detail/index.mjs +0 -6
  23. package/minilo/es/components/detail/index.vue.d.ts +0 -23
  24. package/minilo/es/components/detail/index.vue.mjs +0 -5
  25. package/minilo/es/components/detail/index.vue2.mjs +0 -194
  26. package/minilo/es/components/detail/renderLabel.vue.d.ts +0 -8
  27. package/minilo/es/components/detail/renderLabel.vue.mjs +0 -5
  28. package/minilo/es/components/detail/renderLabel.vue2.mjs +0 -23
  29. package/minilo/es/components/detail/renderTooltip.vue.d.ts +0 -8
  30. package/minilo/es/components/detail/renderTooltip.vue.mjs +0 -5
  31. package/minilo/es/components/detail/renderTooltip.vue2.mjs +0 -23
  32. package/minilo/es/components/detail/type.d.ts +0 -27
  33. package/minilo/es/components/image-upload-pro/index.d.ts +0 -544
  34. package/minilo/es/components/image-upload-pro/index.mjs +0 -7
  35. package/minilo/es/components/image-upload-pro/index.vue.d.ts +0 -546
  36. package/minilo/es/components/image-upload-pro/index.vue.mjs +0 -5
  37. package/minilo/es/components/image-upload-pro/index.vue2.mjs +0 -657
  38. package/minilo/es/components/image-upload-pro/type.d.ts +0 -147
  39. package/minilo/es/components/image-upload-pro/type.mjs +0 -81
  40. package/minilo/es/components/index.d.ts +0 -11
  41. package/minilo/es/components/index.mjs +0 -14
  42. package/minilo/es/components/number-range-input/index.d.ts +0 -41
  43. package/minilo/es/components/number-range-input/index.mjs +0 -6
  44. package/minilo/es/components/number-range-input/index.vue.d.ts +0 -33
  45. package/minilo/es/components/number-range-input/index.vue.mjs +0 -5
  46. package/minilo/es/components/number-range-input/index.vue2.mjs +0 -150
  47. package/minilo/es/components/number-range-input/props.d.ts +0 -10
  48. package/minilo/es/components/search/index.d.ts +0 -488
  49. package/minilo/es/components/search/index.mjs +0 -6
  50. package/minilo/es/components/search/index.vue.d.ts +0 -554
  51. package/minilo/es/components/search/index.vue.mjs +0 -5
  52. package/minilo/es/components/search/index.vue2.mjs +0 -297
  53. package/minilo/es/components/search/props.d.ts +0 -107
  54. package/minilo/es/components/search/props.mjs +0 -55
  55. package/minilo/es/components/search-table/index.mjs +0 -6
  56. package/minilo/es/components/search-table/index.vue.d.ts +0 -189
  57. package/minilo/es/components/search-table/index.vue.mjs +0 -5
  58. package/minilo/es/components/search-table/index.vue2.mjs +0 -198
  59. package/minilo/es/components/search-table/props.d.ts +0 -69
  60. package/minilo/es/components/search-table/props.mjs +0 -69
  61. package/minilo/es/components/search-table/render.d.ts +0 -11
  62. package/minilo/es/components/search-table/render.mjs +0 -19
  63. package/minilo/es/components/tree-select/index.d.ts +0 -34
  64. package/minilo/es/components/tree-select/index.mjs +0 -6
  65. package/minilo/es/components/tree-select/index.vue.d.ts +0 -23
  66. package/minilo/es/components/tree-select/index.vue.mjs +0 -5
  67. package/minilo/es/components/tree-select/index.vue2.mjs +0 -229
  68. package/minilo/es/components/tree-select/type.d.ts +0 -34
  69. package/minilo/es/components/tree-select-dialog/index.d.ts +0 -64
  70. package/minilo/es/components/tree-select-dialog/index.mjs +0 -7
  71. package/minilo/es/components/tree-select-dialog/index.vue.d.ts +0 -26
  72. package/minilo/es/components/tree-select-dialog/index.vue.mjs +0 -5
  73. package/minilo/es/components/tree-select-dialog/index.vue2.mjs +0 -145
  74. package/minilo/es/components/tree-select-dialog/type.d.ts +0 -9
  75. package/minilo/es/components/tree-select-dialog/type.mjs +0 -24
  76. package/minilo/es/components/tree-select-drawer/index.d.ts +0 -69
  77. package/minilo/es/components/tree-select-drawer/index.mjs +0 -7
  78. package/minilo/es/components/tree-select-drawer/index.vue.d.ts +0 -26
  79. package/minilo/es/components/tree-select-drawer/index.vue.mjs +0 -5
  80. package/minilo/es/components/tree-select-drawer/index.vue2.mjs +0 -151
  81. package/minilo/es/components/tree-select-drawer/type.d.ts +0 -10
  82. package/minilo/es/components/tree-select-drawer/type.mjs +0 -20
  83. package/minilo/es/components/virtual-list/index.d.ts +0 -59
  84. package/minilo/es/components/virtual-list/index.mjs +0 -6
  85. package/minilo/es/components/virtual-list/index.vue.d.ts +0 -39
  86. package/minilo/es/components/virtual-list/index.vue.mjs +0 -5
  87. package/minilo/es/components/virtual-list/index.vue2.mjs +0 -423
  88. package/minilo/es/components/virtual-list/type.d.ts +0 -20
  89. package/minilo/es/node_modules/.pnpm/@element-plus_icons-vue@2.3.1_vue@3.5.26_typescript@5.9.3_/node_modules/@element-plus/icons-vue/dist/index.mjs +0 -41
  90. package/minilo/es/node_modules/.pnpm/@vueuse_core@13.9.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/index.mjs +0 -73
  91. package/minilo/es/node_modules/.pnpm/@vueuse_shared@13.9.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/index.mjs +0 -76
  92. package/minilo/es/packages/utils/dist/func/common.mjs +0 -14
  93. package/minilo/es/packages/utils/dist/request/index.mjs +0 -105
  94. package/minilo/es/resolver/index.d.ts +0 -8
  95. package/minilo/es/resolver/index.mjs +0 -26
  96. package/minilo/es/utils/index.d.ts +0 -28
  97. package/minilo/es/utils/index.mjs +0 -30
  98. package/minilo/lib/components/button/index.d.ts +0 -47
  99. package/minilo/lib/components/button/index.js +0 -11
  100. package/minilo/lib/components/button/index.vue.d.ts +0 -29
  101. package/minilo/lib/components/button/index.vue.js +0 -9
  102. package/minilo/lib/components/button/index.vue2.js +0 -71
  103. package/minilo/lib/components/button/type.d.ts +0 -10
  104. package/minilo/lib/components/chart/index.d.ts +0 -49
  105. package/minilo/lib/components/chart/index.js +0 -11
  106. package/minilo/lib/components/chart/index.vue.d.ts +0 -33
  107. package/minilo/lib/components/chart/index.vue.js +0 -9
  108. package/minilo/lib/components/chart/index.vue2.js +0 -128
  109. package/minilo/lib/components/chart/type.d.ts +0 -7
  110. package/minilo/lib/components/detail/index.d.ts +0 -37
  111. package/minilo/lib/components/detail/index.js +0 -11
  112. package/minilo/lib/components/detail/index.vue.d.ts +0 -23
  113. package/minilo/lib/components/detail/index.vue.js +0 -9
  114. package/minilo/lib/components/detail/index.vue2.js +0 -198
  115. package/minilo/lib/components/detail/renderLabel.vue.d.ts +0 -8
  116. package/minilo/lib/components/detail/renderLabel.vue.js +0 -9
  117. package/minilo/lib/components/detail/renderLabel.vue2.js +0 -27
  118. package/minilo/lib/components/detail/renderTooltip.vue.d.ts +0 -8
  119. package/minilo/lib/components/detail/renderTooltip.vue.js +0 -9
  120. package/minilo/lib/components/detail/renderTooltip.vue2.js +0 -27
  121. package/minilo/lib/components/detail/type.d.ts +0 -27
  122. package/minilo/lib/components/image-upload-pro/index.d.ts +0 -544
  123. package/minilo/lib/components/image-upload-pro/index.js +0 -13
  124. package/minilo/lib/components/image-upload-pro/index.vue.d.ts +0 -546
  125. package/minilo/lib/components/image-upload-pro/index.vue.js +0 -9
  126. package/minilo/lib/components/image-upload-pro/index.vue2.js +0 -661
  127. package/minilo/lib/components/image-upload-pro/type.d.ts +0 -147
  128. package/minilo/lib/components/image-upload-pro/type.js +0 -83
  129. package/minilo/lib/components/index.d.ts +0 -11
  130. package/minilo/lib/components/index.js +0 -33
  131. package/minilo/lib/components/number-range-input/index.d.ts +0 -41
  132. package/minilo/lib/components/number-range-input/index.js +0 -11
  133. package/minilo/lib/components/number-range-input/index.vue.d.ts +0 -33
  134. package/minilo/lib/components/number-range-input/index.vue.js +0 -9
  135. package/minilo/lib/components/number-range-input/index.vue2.js +0 -154
  136. package/minilo/lib/components/number-range-input/props.d.ts +0 -10
  137. package/minilo/lib/components/search/index.d.ts +0 -488
  138. package/minilo/lib/components/search/index.js +0 -11
  139. package/minilo/lib/components/search/index.vue.d.ts +0 -554
  140. package/minilo/lib/components/search/index.vue.js +0 -9
  141. package/minilo/lib/components/search/index.vue2.js +0 -301
  142. package/minilo/lib/components/search/props.d.ts +0 -107
  143. package/minilo/lib/components/search/props.js +0 -58
  144. package/minilo/lib/components/search-table/index.js +0 -11
  145. package/minilo/lib/components/search-table/index.vue.d.ts +0 -189
  146. package/minilo/lib/components/search-table/index.vue.js +0 -9
  147. package/minilo/lib/components/search-table/index.vue2.js +0 -202
  148. package/minilo/lib/components/search-table/props.d.ts +0 -69
  149. package/minilo/lib/components/search-table/props.js +0 -72
  150. package/minilo/lib/components/search-table/render.d.ts +0 -11
  151. package/minilo/lib/components/search-table/render.js +0 -23
  152. package/minilo/lib/components/tree-select/index.d.ts +0 -34
  153. package/minilo/lib/components/tree-select/index.js +0 -11
  154. package/minilo/lib/components/tree-select/index.vue.d.ts +0 -23
  155. package/minilo/lib/components/tree-select/index.vue.js +0 -9
  156. package/minilo/lib/components/tree-select/index.vue2.js +0 -233
  157. package/minilo/lib/components/tree-select/type.d.ts +0 -34
  158. package/minilo/lib/components/tree-select-dialog/index.d.ts +0 -64
  159. package/minilo/lib/components/tree-select-dialog/index.js +0 -13
  160. package/minilo/lib/components/tree-select-dialog/index.vue.d.ts +0 -26
  161. package/minilo/lib/components/tree-select-dialog/index.vue.js +0 -9
  162. package/minilo/lib/components/tree-select-dialog/index.vue2.js +0 -149
  163. package/minilo/lib/components/tree-select-dialog/type.d.ts +0 -9
  164. package/minilo/lib/components/tree-select-dialog/type.js +0 -26
  165. package/minilo/lib/components/tree-select-drawer/index.d.ts +0 -69
  166. package/minilo/lib/components/tree-select-drawer/index.js +0 -13
  167. package/minilo/lib/components/tree-select-drawer/index.vue.d.ts +0 -26
  168. package/minilo/lib/components/tree-select-drawer/index.vue.js +0 -9
  169. package/minilo/lib/components/tree-select-drawer/index.vue2.js +0 -155
  170. package/minilo/lib/components/tree-select-drawer/type.d.ts +0 -10
  171. package/minilo/lib/components/tree-select-drawer/type.js +0 -22
  172. package/minilo/lib/components/virtual-list/index.d.ts +0 -59
  173. package/minilo/lib/components/virtual-list/index.js +0 -11
  174. package/minilo/lib/components/virtual-list/index.vue.d.ts +0 -39
  175. package/minilo/lib/components/virtual-list/index.vue.js +0 -9
  176. package/minilo/lib/components/virtual-list/index.vue2.js +0 -427
  177. package/minilo/lib/components/virtual-list/type.d.ts +0 -20
  178. package/minilo/lib/node_modules/.pnpm/@element-plus_icons-vue@2.3.1_vue@3.5.26_typescript@5.9.3_/node_modules/@element-plus/icons-vue/dist/index.js +0 -44
  179. package/minilo/lib/node_modules/.pnpm/@vueuse_core@13.9.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/index.js +0 -84
  180. package/minilo/lib/node_modules/.pnpm/@vueuse_shared@13.9.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/index.js +0 -83
  181. package/minilo/lib/packages/utils/dist/func/common.js +0 -16
  182. package/minilo/lib/packages/utils/dist/request/index.js +0 -115
  183. package/minilo/lib/resolver/index.d.ts +0 -8
  184. package/minilo/lib/resolver/index.js +0 -28
  185. package/minilo/lib/utils/index.d.ts +0 -28
  186. package/minilo/lib/utils/index.js +0 -34
  187. package/minilo/theme-chalk/index.css +0 -1
  188. package/minilo/theme-chalk/ml-button.css +0 -1
  189. package/minilo/theme-chalk/ml-chart.css +0 -1
  190. package/minilo/theme-chalk/ml-detail.css +0 -1
  191. package/minilo/theme-chalk/ml-image-upload-pro.css +0 -1
  192. package/minilo/theme-chalk/ml-number-range-input.css +0 -1
  193. package/minilo/theme-chalk/ml-search-table.css +0 -1
  194. package/minilo/theme-chalk/ml-search.css +0 -1
  195. package/minilo/theme-chalk/ml-tree-select-dialog.css +0 -0
  196. package/minilo/theme-chalk/ml-tree-select-drawer.css +0 -0
  197. package/minilo/theme-chalk/ml-tree-select.css +0 -1
  198. package/minilo/theme-chalk/ml-virtual-list.css +0 -1
  199. package/minilo/theme-chalk/src/button.scss +0 -22
  200. package/minilo/theme-chalk/src/chart.scss +0 -11
  201. package/minilo/theme-chalk/src/default/variable.scss +0 -1
  202. package/minilo/theme-chalk/src/detail.scss +0 -9
  203. package/minilo/theme-chalk/src/image-upload-pro.scss +0 -70
  204. package/minilo/theme-chalk/src/index.scss +0 -14
  205. package/minilo/theme-chalk/src/mixins/mixin.scss +0 -273
  206. package/minilo/theme-chalk/src/number-range-input.scss +0 -9
  207. package/minilo/theme-chalk/src/search-table.scss +0 -47
  208. package/minilo/theme-chalk/src/search.scss +0 -20
  209. package/minilo/theme-chalk/src/tree-select-dialog.scss +0 -0
  210. package/minilo/theme-chalk/src/tree-select-drawer.scss +0 -0
  211. package/minilo/theme-chalk/src/tree-select.scss +0 -47
  212. package/minilo/theme-chalk/src/virtual-list.scss +0 -49
@@ -1,59 +0,0 @@
1
- export declare const MlVirtualList: {
2
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./type').MlVirtualListProps> & Readonly<{
3
- "onLoad-more"?: () => any;
4
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
5
- "load-more": () => any;
6
- }, import('vue').PublicProps, {
7
- height: number;
8
- itemHeight: number;
9
- estimatedItemHeight: number;
10
- itemEqual: boolean;
11
- preLoadCount: number;
12
- threshold: number;
13
- dataSource: any[];
14
- }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
15
- containerRef: HTMLDivElement;
16
- }, HTMLDivElement, import('vue').ComponentProvideOptions, {
17
- P: {};
18
- B: {};
19
- D: {};
20
- C: {};
21
- M: {};
22
- Defaults: {};
23
- }, Readonly<import('./type').MlVirtualListProps> & Readonly<{
24
- "onLoad-more"?: () => any;
25
- }>, {}, {}, {}, {}, {
26
- height: number;
27
- itemHeight: number;
28
- estimatedItemHeight: number;
29
- itemEqual: boolean;
30
- preLoadCount: number;
31
- threshold: number;
32
- dataSource: any[];
33
- }>;
34
- __isFragment?: never;
35
- __isTeleport?: never;
36
- __isSuspense?: never;
37
- } & import('vue').ComponentOptionsBase<Readonly<import('./type').MlVirtualListProps> & Readonly<{
38
- "onLoad-more"?: () => any;
39
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
40
- "load-more": () => any;
41
- }, string, {
42
- height: number;
43
- itemHeight: number;
44
- estimatedItemHeight: number;
45
- itemEqual: boolean;
46
- preLoadCount: number;
47
- threshold: number;
48
- dataSource: any[];
49
- }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
50
- $slots: {
51
- default?(_: {
52
- item: any;
53
- index: number;
54
- }): any;
55
- loading?(_: {}): any;
56
- finished?(_: {}): any;
57
- };
58
- });
59
- export default MlVirtualList;
@@ -1,6 +0,0 @@
1
- import { withInstall } from '../../utils/index.mjs';
2
- import _sfc_main from './index.vue2.mjs';
3
-
4
- const MlVirtualList = withInstall(_sfc_main);
5
-
6
- export { MlVirtualList, MlVirtualList as default };
@@ -1,39 +0,0 @@
1
- import { MlVirtualListProps } from './type';
2
- declare function __VLS_template(): {
3
- attrs: Partial<{}>;
4
- slots: {
5
- default?(_: {
6
- item: any;
7
- index: number;
8
- }): any;
9
- loading?(_: {}): any;
10
- finished?(_: {}): any;
11
- };
12
- refs: {
13
- containerRef: HTMLDivElement;
14
- };
15
- rootEl: HTMLDivElement;
16
- };
17
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
- declare const __VLS_component: import('vue').DefineComponent<MlVirtualListProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
19
- "load-more": () => any;
20
- }, string, import('vue').PublicProps, Readonly<MlVirtualListProps> & Readonly<{
21
- "onLoad-more"?: () => any;
22
- }>, {
23
- height: number;
24
- itemHeight: number;
25
- estimatedItemHeight: number;
26
- itemEqual: boolean;
27
- preLoadCount: number;
28
- threshold: number;
29
- dataSource: any[];
30
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
31
- containerRef: HTMLDivElement;
32
- }, HTMLDivElement>;
33
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
34
- export default _default;
35
- type __VLS_WithTemplateSlots<T, S> = T & {
36
- new (): {
37
- $slots: S;
38
- };
39
- };
@@ -1,5 +0,0 @@
1
- import _sfc_main from './index.vue2.mjs';
2
-
3
-
4
-
5
- export { _sfc_main as default };
@@ -1,423 +0,0 @@
1
- import { defineComponent, computed, ref, watch, onMounted, onUnmounted, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, normalizeStyle, createCommentVNode, Fragment, renderList, renderSlot, createTextVNode } from 'vue';
2
- import { bem } from '../../utils/index.mjs';
3
-
4
- const _hoisted_1 = ["data-index"];
5
- var _sfc_main = /* @__PURE__ */ defineComponent({
6
- ...{
7
- name: "MlVirtualList"
8
- },
9
- __name: "index",
10
- props: {
11
- height: { type: Number, required: false, default: 500 },
12
- itemHeight: { type: Number, required: false, default: 50 },
13
- estimatedItemHeight: { type: Number, required: false, default: 50 },
14
- itemEqual: { type: Boolean, required: false, default: true },
15
- preLoadCount: { type: Number, required: false, default: 5 },
16
- threshold: { type: Number, required: false, default: 200 },
17
- dataSource: { type: Array, required: false, default: () => [] },
18
- loading: { type: Boolean, required: false },
19
- finished: { type: Boolean, required: false }
20
- },
21
- emits: ["load-more"],
22
- setup(__props, { emit: __emit }) {
23
- const props = __props;
24
- const emit = __emit;
25
- const SCROLL_VIEW_HEIGHT = computed(() => props.height);
26
- const ITEM_HEIGHT = computed(() => props.itemHeight);
27
- const ESTIMATED_ITEM_HEIGHT = computed(() => props.estimatedItemHeight);
28
- const PRE_LOAD_COUNT = computed(() => props.preLoadCount);
29
- const containerRef = ref(null);
30
- const positions = ref([]);
31
- const showRange = ref({
32
- start: 0,
33
- end: 10
34
- });
35
- let rafId = null;
36
- let isRafPending = false;
37
- let resizeObserver = null;
38
- let resizeUpdateTimer = null;
39
- const initPositions = () => {
40
- const data = props.dataSource;
41
- const height = props.itemEqual ? ITEM_HEIGHT.value : ESTIMATED_ITEM_HEIGHT.value;
42
- positions.value = data.map((_, index) => ({
43
- index,
44
- height,
45
- top: index * height,
46
- bottom: (index + 1) * height
47
- }));
48
- };
49
- const scrollViewHeight = computed(() => {
50
- if (props.itemEqual) {
51
- return props.dataSource.length * ITEM_HEIGHT.value;
52
- }
53
- const len = positions.value.length;
54
- const lastPos = positions.value[len - 1];
55
- if (len > 0 && lastPos) {
56
- return lastPos.bottom;
57
- }
58
- return 0;
59
- });
60
- const scrollViewOffset = computed(() => {
61
- const start = showRange.value.start;
62
- if (props.itemEqual) {
63
- return start * ITEM_HEIGHT.value;
64
- }
65
- return start > 0 && positions.value[start] ? positions.value[start].top : 0;
66
- });
67
- const currentViewList = computed(() => {
68
- return props.dataSource.slice(showRange.value.start, showRange.value.end).map((el, index) => ({
69
- data: el,
70
- index: showRange.value.start + index
71
- }));
72
- });
73
- const getStartIndex = (scrollTop) => {
74
- let start = 0;
75
- let end = positions.value.length - 1;
76
- let mid = 0;
77
- while (start <= end) {
78
- mid = Math.floor((start + end) / 2);
79
- const midPos = positions.value[mid];
80
- if (!midPos) break;
81
- const midBottom = midPos.bottom;
82
- const midTop = midPos.top;
83
- if (midTop <= scrollTop && midBottom > scrollTop) {
84
- return mid;
85
- } else if (midTop > scrollTop) {
86
- end = mid - 1;
87
- } else {
88
- start = mid + 1;
89
- }
90
- }
91
- return 0;
92
- };
93
- const updatePositions = () => {
94
- if (props.itemEqual) return;
95
- const nodes = containerRef.value?.querySelectorAll(".virtual-list-item");
96
- if (!nodes || nodes.length === 0) return;
97
- nodes.forEach((node) => {
98
- const rect = node.getBoundingClientRect();
99
- const height = rect.height;
100
- const index = parseInt(node.dataset.index || "0");
101
- const pos = positions.value[index];
102
- if (!pos) return;
103
- const oldHeight = pos.height || 0;
104
- if (oldHeight !== height) {
105
- pos.height = height;
106
- pos.bottom = pos.top + height;
107
- for (let i = index + 1; i < positions.value.length; i++) {
108
- const currentPos = positions.value[i];
109
- const prevPos = positions.value[i - 1];
110
- if (currentPos && prevPos) {
111
- currentPos.top = prevPos.bottom;
112
- currentPos.bottom = currentPos.top + currentPos.height;
113
- }
114
- }
115
- }
116
- });
117
- };
118
- const initResizeObserver = () => {
119
- if (props.itemEqual) return;
120
- if (resizeObserver) {
121
- resizeObserver.disconnect();
122
- }
123
- resizeObserver = new ResizeObserver((entries) => {
124
- console.log("\u5916\u90E8entries:", entries);
125
- let needUpdate = false;
126
- const changedIndices = [];
127
- for (const entry of entries) {
128
- console.log("entry:", entry);
129
- const target = entry.target;
130
- const index = parseInt(target.dataset.index || "0");
131
- const pos = positions.value[index];
132
- if (!pos) continue;
133
- const newHeight = entry.contentRect.height;
134
- const oldHeight = pos.height;
135
- if (Math.abs(newHeight - oldHeight) > 1) {
136
- needUpdate = true;
137
- changedIndices.push(index);
138
- pos.height = newHeight;
139
- pos.bottom = pos.top + newHeight;
140
- }
141
- }
142
- if (needUpdate) {
143
- if (resizeUpdateTimer !== null) {
144
- clearTimeout(resizeUpdateTimer);
145
- }
146
- resizeUpdateTimer = window.setTimeout(() => {
147
- const minChangedIndex = Math.min(...changedIndices);
148
- for (let i = minChangedIndex + 1; i < positions.value.length; i++) {
149
- const currentPos = positions.value[i];
150
- const prevPos = positions.value[i - 1];
151
- if (currentPos && prevPos) {
152
- currentPos.top = prevPos.bottom;
153
- currentPos.bottom = currentPos.top + currentPos.height;
154
- }
155
- }
156
- changedIndices.length = 0;
157
- resizeUpdateTimer = null;
158
- }, 16);
159
- }
160
- });
161
- observeVisibleItems();
162
- };
163
- const observeVisibleItems = () => {
164
- if (!resizeObserver || props.itemEqual) return;
165
- resizeObserver.disconnect();
166
- const nodes = containerRef.value?.querySelectorAll(`.${bem("virtual-list", "item")}`);
167
- if (!nodes) return;
168
- nodes.forEach((node) => {
169
- resizeObserver.observe(node);
170
- });
171
- };
172
- const calculateRange = () => {
173
- const element = containerRef.value;
174
- if (!element) return;
175
- const scrollTop = element.scrollTop;
176
- const clientHeight = element.clientHeight;
177
- let start = 0;
178
- let end = 0;
179
- if (props.itemEqual) {
180
- start = Math.floor(scrollTop / ITEM_HEIGHT.value);
181
- const viewItemSize = Math.ceil(clientHeight / ITEM_HEIGHT.value);
182
- end = start + viewItemSize;
183
- } else {
184
- if (positions.value.length === 0) return;
185
- start = getStartIndex(scrollTop);
186
- let totalHeight = 0;
187
- const targetHeight = clientHeight + PRE_LOAD_COUNT.value * ESTIMATED_ITEM_HEIGHT.value;
188
- for (let i = start; i < positions.value.length; i++) {
189
- const pos = positions.value[i];
190
- if (!pos) break;
191
- totalHeight += pos.height;
192
- if (totalHeight >= targetHeight) {
193
- end = i + 1;
194
- break;
195
- }
196
- end = i + 1;
197
- }
198
- }
199
- const maxVisibleItems = 10;
200
- if (end - start > maxVisibleItems) {
201
- end = start + maxVisibleItems;
202
- }
203
- showRange.value = {
204
- start: Math.max(0, start - PRE_LOAD_COUNT.value),
205
- end: Math.min(props.dataSource.length, end + PRE_LOAD_COUNT.value)
206
- };
207
- };
208
- const checkLoadMore = () => {
209
- const element = containerRef.value;
210
- if (!element || props.loading || props.finished) return;
211
- const scrollTop = element.scrollTop;
212
- const clientHeight = element.clientHeight;
213
- const totalHeight = scrollViewHeight.value;
214
- const distanceToBottom = totalHeight - scrollTop - clientHeight;
215
- if (distanceToBottom < props.threshold) {
216
- emit("load-more");
217
- }
218
- };
219
- const onContainerScroll = () => {
220
- if (isRafPending) return;
221
- isRafPending = true;
222
- rafId = requestAnimationFrame(() => {
223
- updatePositions();
224
- calculateRange();
225
- if (props.finished !== void 0 && !props.finished) {
226
- checkLoadMore();
227
- }
228
- isRafPending = false;
229
- });
230
- };
231
- watch(
232
- () => props.dataSource.length,
233
- (newLen, oldLen = 0) => {
234
- if (newLen !== oldLen) {
235
- if (props.itemEqual) {
236
- initPositions();
237
- } else {
238
- if (newLen > oldLen) {
239
- const height = ESTIMATED_ITEM_HEIGHT.value;
240
- for (let i = oldLen; i < newLen; i++) {
241
- const lastPos = positions.value[i - 1];
242
- positions.value.push({
243
- index: i,
244
- height,
245
- top: lastPos ? lastPos.bottom : 0,
246
- bottom: (lastPos ? lastPos.bottom : 0) + height
247
- });
248
- }
249
- } else {
250
- positions.value = positions.value.slice(0, newLen);
251
- }
252
- }
253
- requestAnimationFrame(() => {
254
- updatePositions();
255
- calculateRange();
256
- if (!props.itemEqual) {
257
- observeVisibleItems();
258
- }
259
- });
260
- }
261
- },
262
- { immediate: true }
263
- );
264
- watch(
265
- () => showRange.value,
266
- () => {
267
- if (!props.itemEqual && resizeObserver) {
268
- if (rafId !== null) {
269
- cancelAnimationFrame(rafId);
270
- }
271
- rafId = requestAnimationFrame(() => {
272
- observeVisibleItems();
273
- rafId = null;
274
- });
275
- }
276
- },
277
- { deep: true }
278
- );
279
- onMounted(() => {
280
- initPositions();
281
- initResizeObserver();
282
- requestAnimationFrame(() => {
283
- updatePositions();
284
- calculateRange();
285
- });
286
- });
287
- onUnmounted(() => {
288
- if (rafId !== null) {
289
- cancelAnimationFrame(rafId);
290
- }
291
- if (resizeUpdateTimer !== null) {
292
- clearTimeout(resizeUpdateTimer);
293
- }
294
- if (resizeObserver) {
295
- resizeObserver.disconnect();
296
- resizeObserver = null;
297
- }
298
- });
299
- return (_ctx, _cache) => {
300
- return openBlock(), createElementBlock(
301
- "div",
302
- {
303
- class: normalizeClass(unref(bem)("virtual-list"))
304
- },
305
- [
306
- createElementVNode(
307
- "div",
308
- {
309
- class: normalizeClass(unref(bem)("virtual-list", "container")),
310
- ref_key: "containerRef",
311
- ref: containerRef,
312
- style: normalizeStyle({
313
- height: SCROLL_VIEW_HEIGHT.value + "px",
314
- overflow: "auto"
315
- }),
316
- onScroll: onContainerScroll
317
- },
318
- [
319
- createElementVNode(
320
- "div",
321
- {
322
- class: normalizeClass(unref(bem)("virtual-list", "phantom")),
323
- style: normalizeStyle({
324
- height: scrollViewHeight.value + "px"
325
- })
326
- },
327
- [
328
- createElementVNode(
329
- "div",
330
- {
331
- class: normalizeClass(unref(bem)("virtual-list", "content")),
332
- style: normalizeStyle({
333
- transform: `translateY(${scrollViewOffset.value}px)`
334
- })
335
- },
336
- [
337
- (openBlock(true), createElementBlock(
338
- Fragment,
339
- null,
340
- renderList(currentViewList.value, (item) => {
341
- return openBlock(), createElementBlock("div", {
342
- key: item.index,
343
- class: normalizeClass(unref(bem)("virtual-list", "item")),
344
- "data-index": item.index,
345
- style: normalizeStyle(__props.itemEqual ? { height: ITEM_HEIGHT.value + "px" } : {})
346
- }, [
347
- renderSlot(_ctx.$slots, "default", {
348
- item: item.data,
349
- index: item.index
350
- })
351
- ], 14, _hoisted_1);
352
- }),
353
- 128
354
- /* KEYED_FRAGMENT */
355
- ))
356
- ],
357
- 6
358
- /* CLASS, STYLE */
359
- )
360
- ],
361
- 6
362
- /* CLASS, STYLE */
363
- ),
364
- createCommentVNode(" \u52A0\u8F7D\u72B6\u6001\u63D0\u793A\uFF08\u5728\u5BB9\u5668\u5185\u90E8\uFF09 "),
365
- props.loading ? (openBlock(), createElementBlock(
366
- "div",
367
- {
368
- key: 0,
369
- class: normalizeClass(unref(bem)("virtual-list", "loading-tip"))
370
- },
371
- [
372
- renderSlot(_ctx.$slots, "loading", {}, () => [
373
- _cache[0] || (_cache[0] = createElementVNode(
374
- "span",
375
- { class: "loading-spinner" },
376
- null,
377
- -1
378
- /* CACHED */
379
- )),
380
- _cache[1] || (_cache[1] = createElementVNode(
381
- "span",
382
- null,
383
- "\u52A0\u8F7D\u4E2D...",
384
- -1
385
- /* CACHED */
386
- ))
387
- ])
388
- ],
389
- 2
390
- /* CLASS */
391
- )) : createCommentVNode("v-if", true),
392
- createCommentVNode(" \u52A0\u8F7D\u5B8C\u6210\u63D0\u793A "),
393
- props.finished && !props.loading ? (openBlock(), createElementBlock(
394
- "div",
395
- {
396
- key: 1,
397
- class: normalizeClass(unref(bem)("virtual-list", "finished-tip"))
398
- },
399
- [
400
- renderSlot(_ctx.$slots, "finished", {}, () => [
401
- _cache[2] || (_cache[2] = createTextVNode(
402
- "\u5DF2\u52A0\u8F7D\u5168\u90E8\u6570\u636E",
403
- -1
404
- /* CACHED */
405
- ))
406
- ])
407
- ],
408
- 2
409
- /* CLASS */
410
- )) : createCommentVNode("v-if", true)
411
- ],
412
- 38
413
- /* CLASS, STYLE, NEED_HYDRATION */
414
- )
415
- ],
416
- 2
417
- /* CLASS */
418
- );
419
- };
420
- }
421
- });
422
-
423
- export { _sfc_main as default };
@@ -1,20 +0,0 @@
1
- export interface MlVirtualListProps {
2
- /** 容器高度,默认 500px */
3
- height?: number;
4
- /** 列表项高度(定高模式必传) */
5
- itemHeight?: number;
6
- /** 列表项预估高度(不定高模式使用),默认 50px */
7
- estimatedItemHeight?: number;
8
- /** 是否为等高列表,true=定高,false=不定高,默认 true */
9
- itemEqual?: boolean;
10
- /** 预加载数量(上下各预加载几个) */
11
- preLoadCount?: number;
12
- /** 距离底部多少像素时触发加载 */
13
- threshold?: number;
14
- /** 数据源 */
15
- dataSource?: any[];
16
- /** 是否正在加载 */
17
- loading?: boolean;
18
- /** 是否已加载完所有数据 */
19
- finished?: boolean;
20
- }
@@ -1,41 +0,0 @@
1
- import { defineComponent, createElementBlock, openBlock, createElementVNode } from 'vue';
2
-
3
- var search_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
- name: "Search",
5
- __name: "search",
6
- setup(__props) {
7
- return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
8
- xmlns: "http://www.w3.org/2000/svg",
9
- viewBox: "0 0 1024 1024"
10
- }, [
11
- createElementVNode("path", {
12
- fill: "currentColor",
13
- d: "m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"
14
- })
15
- ]));
16
- }
17
- });
18
- var search_default = search_vue_vue_type_script_setup_true_lang_default;
19
- var warning_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
- name: "Warning",
21
- __name: "warning",
22
- setup(__props) {
23
- return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
24
- xmlns: "http://www.w3.org/2000/svg",
25
- viewBox: "0 0 1024 1024"
26
- }, [
27
- createElementVNode("path", {
28
- fill: "currentColor",
29
- d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768m48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0m-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"
30
- })
31
- ]));
32
- }
33
- });
34
- var warning_default = warning_vue_vue_type_script_setup_true_lang_default;
35
- /*! Bundled license information:
36
-
37
- @element-plus/icons-vue/dist/index.js:
38
- (*! Element Plus Icons Vue v2.3.1 *)
39
- */
40
-
41
- export { search_default as Search, warning_default as Warning };
@@ -1,73 +0,0 @@
1
- import { tryOnScopeDispose, isClient } from '../../../../@vueuse_shared@13.9.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/index.mjs';
2
- export { createFilterWrapper, debounceFilter, noop, useDebounceFn } from '../../../../@vueuse_shared@13.9.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/index.mjs';
3
- import { computed, toValue, watch, shallowRef, getCurrentInstance, onMounted } from 'vue';
4
-
5
- const defaultWindow = isClient ? window : void 0;
6
-
7
- function unrefElement(elRef) {
8
- var _a;
9
- const plain = toValue(elRef);
10
- return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
11
- }
12
-
13
- // @__NO_SIDE_EFFECTS__
14
- function useMounted() {
15
- const isMounted = shallowRef(false);
16
- const instance = getCurrentInstance();
17
- if (instance) {
18
- onMounted(() => {
19
- isMounted.value = true;
20
- }, instance);
21
- }
22
- return isMounted;
23
- }
24
-
25
- // @__NO_SIDE_EFFECTS__
26
- function useSupported(callback) {
27
- const isMounted = useMounted();
28
- return computed(() => {
29
- isMounted.value;
30
- return Boolean(callback());
31
- });
32
- }
33
-
34
- function useResizeObserver(target, callback, options = {}) {
35
- const { window = defaultWindow, ...observerOptions } = options;
36
- let observer;
37
- const isSupported = useSupported(() => window && "ResizeObserver" in window);
38
- const cleanup = () => {
39
- if (observer) {
40
- observer.disconnect();
41
- observer = void 0;
42
- }
43
- };
44
- const targets = computed(() => {
45
- const _targets = toValue(target);
46
- return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
47
- });
48
- const stopWatch = watch(
49
- targets,
50
- (els) => {
51
- cleanup();
52
- if (isSupported.value && window) {
53
- observer = new ResizeObserver(callback);
54
- for (const _el of els) {
55
- if (_el)
56
- observer.observe(_el, observerOptions);
57
- }
58
- }
59
- },
60
- { immediate: true, flush: "post" }
61
- );
62
- const stop = () => {
63
- cleanup();
64
- stopWatch();
65
- };
66
- tryOnScopeDispose(stop);
67
- return {
68
- isSupported,
69
- stop
70
- };
71
- }
72
-
73
- export { defaultWindow, isClient, tryOnScopeDispose, unrefElement, useMounted, useResizeObserver, useSupported };