Skip to content

Commit ddbc4af

Browse files
committed
feat: 1.5.5
1 parent 18a01de commit ddbc4af

File tree

10 files changed

+64
-343
lines changed

10 files changed

+64
-343
lines changed

docs/demos/utils/common.d.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
type Item = {
2+
index: number;
3+
id: string;
4+
text: string;
5+
};
6+
export declare function getList(length: number, start?: number): Item[];
7+
type PersonItem = {
8+
index: number;
9+
id: string;
10+
avatar: string;
11+
name: string;
12+
};
13+
export declare function getAvatarList(length: number, start?: number): PersonItem[];
14+
export declare function asyncGetList(length: number, start?: number, time?: number): Promise<any[]>;
15+
export declare function getHorizontalList(count: number): {
16+
id: number;
17+
width: number;
18+
}[];
19+
type TreeItem = {
20+
index: number;
21+
id: string;
22+
text: string;
23+
children?: TreeItem[];
24+
};
25+
export declare function getTreeList(): TreeItem[];
26+
export {};

lib/components/virt-grid/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const VirtGrid = /* @__PURE__ */ defineComponent({
2727
},
2828
setup(props, context) {
2929
const emits = context.emit;
30+
const renderKey = ref(0);
3031
const virtListRef = ref(null);
3132
const gridList = shallowRef([]);
3233
function updateList() {
@@ -98,8 +99,11 @@ const VirtGrid = /* @__PURE__ */ defineComponent({
9899
emits("rangeUpdate", inViewBegin, inViewEnd);
99100
}
100101
function forceUpdate() {
101-
updateList();
102+
renderKey.value += 1;
102103
}
104+
watch(() => renderKey.value, () => {
105+
updateList();
106+
});
103107
watch(() => props.list.length, () => {
104108
updateList();
105109
}, {

lib/components/virt-list/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,9 @@ function useVirtList(userProps, emitFunction) {
219219
if (isVue2 && props.fixSelection && direction === "backward") {
220220
fixSelection();
221221
}
222+
if (start < reactiveData.inViewBegin) {
223+
fixOffset = true;
224+
}
222225
reactiveData.inViewBegin = start;
223226
reactiveData.inViewEnd = Math.min(start + reactiveData.views, props.list.length - 1);
224227
(_a = emitFunction == null ? void 0 : emitFunction.rangeUpdate) == null ? void 0 : _a.call(emitFunction, reactiveData.inViewBegin, reactiveData.inViewEnd);
@@ -252,7 +255,6 @@ function useVirtList(userProps, emitFunction) {
252255
break;
253256
}
254257
}
255-
fixOffset = true;
256258
}
257259
if (direction === "backward") {
258260
if (offsetWithNoHeader <= offsetReduce) {

lib/components/virt-tree/VirtTree.d.ts

Lines changed: 3 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export declare const VirtTree: import("vue-demi").DefineComponent<{
9494
default: string;
9595
};
9696
}, {
97-
virtListRef: import("vue-demi").Ref<import("vue-demi").CreateComponentPublicInstance<Readonly<import("vue-demi").ExtractPropTypes<{
97+
virtListRef: import("vue-demi").Ref<import("vue-demi").DefineComponent<{
9898
list: {
9999
type: {
100100
(arrayLength: number): any[];
@@ -209,7 +209,7 @@ export declare const VirtTree: import("vue-demi").DefineComponent<{
209209
type: StringConstructor;
210210
default: string;
211211
};
212-
}>>, import("../..").VirtListReturn<any>, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, import("vue-demi").EmitsOptions, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps & Readonly<import("vue-demi").ExtractPropTypes<{
212+
}, import("../..").VirtListReturn<any>, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, import("vue-demi").EmitsOptions, string, import("vue-demi").PublicProps, Readonly<import("vue-demi").ExtractPropTypes<{
213213
list: {
214214
type: {
215215
(arrayLength: number): any[];
@@ -349,154 +349,7 @@ export declare const VirtTree: import("vue-demi").DefineComponent<{
349349
stickyHeaderStyle: string;
350350
stickyFooterClass: string;
351351
stickyFooterStyle: string;
352-
}, true, {}, {}, {
353-
P: {};
354-
B: {};
355-
D: {};
356-
C: {};
357-
M: {};
358-
Defaults: {};
359-
}, Readonly<import("vue-demi").ExtractPropTypes<{
360-
list: {
361-
type: {
362-
(arrayLength: number): any[];
363-
(...items: any[]): any[];
364-
new (arrayLength: number): any[];
365-
new (...items: any[]): any[];
366-
isArray(arg: any): arg is any[];
367-
readonly prototype: any[];
368-
from<T>(arrayLike: ArrayLike<T>): T[];
369-
from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
370-
from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
371-
from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
372-
of<T_4>(...items: T_4[]): T_4[];
373-
readonly [Symbol.species]: ArrayConstructor;
374-
};
375-
default: () => never[];
376-
};
377-
itemKey: {
378-
type: (StringConstructor | NumberConstructor)[];
379-
required: true;
380-
};
381-
minSize: {
382-
type: NumberConstructor;
383-
default: number;
384-
required: true;
385-
};
386-
itemGap: {
387-
type: NumberConstructor;
388-
default: number;
389-
};
390-
renderControl: {
391-
type: FunctionConstructor;
392-
default: undefined;
393-
};
394-
fixed: {
395-
type: BooleanConstructor;
396-
default: boolean;
397-
};
398-
buffer: {
399-
type: NumberConstructor;
400-
default: number;
401-
};
402-
bufferTop: {
403-
type: NumberConstructor;
404-
default: number;
405-
};
406-
bufferBottom: {
407-
type: NumberConstructor;
408-
default: number;
409-
};
410-
scrollDistance: {
411-
type: NumberConstructor;
412-
default: number;
413-
};
414-
horizontal: {
415-
type: BooleanConstructor;
416-
default: boolean;
417-
};
418-
start: {
419-
type: NumberConstructor;
420-
default: number;
421-
};
422-
offset: {
423-
type: NumberConstructor;
424-
default: number;
425-
};
426-
listStyle: {
427-
type: StringConstructor;
428-
default: string;
429-
};
430-
listClass: {
431-
type: StringConstructor;
432-
default: string;
433-
};
434-
itemStyle: {
435-
type: StringConstructor;
436-
default: string;
437-
};
438-
itemClass: {
439-
type: StringConstructor;
440-
default: string;
441-
};
442-
headerClass: {
443-
type: StringConstructor;
444-
default: string;
445-
};
446-
headerStyle: {
447-
type: StringConstructor;
448-
default: string;
449-
};
450-
footerClass: {
451-
type: StringConstructor;
452-
default: string;
453-
};
454-
footerStyle: {
455-
type: StringConstructor;
456-
default: string;
457-
};
458-
stickyHeaderClass: {
459-
type: StringConstructor;
460-
default: string;
461-
};
462-
stickyHeaderStyle: {
463-
type: StringConstructor;
464-
default: string;
465-
};
466-
stickyFooterClass: {
467-
type: StringConstructor;
468-
default: string;
469-
};
470-
stickyFooterStyle: {
471-
type: StringConstructor;
472-
default: string;
473-
};
474-
}>>, import("../..").VirtListReturn<any>, {}, {}, {}, {
475-
fixed: boolean;
476-
renderControl: Function;
477-
buffer: number;
478-
bufferTop: number;
479-
bufferBottom: number;
480-
horizontal: boolean;
481-
start: number;
482-
offset: number;
483-
listStyle: string;
484-
listClass: string;
485-
itemStyle: string;
486-
itemClass: string;
487-
list: any[];
488-
minSize: number;
489-
itemGap: number;
490-
scrollDistance: number;
491-
headerClass: string;
492-
headerStyle: string;
493-
footerClass: string;
494-
footerStyle: string;
495-
stickyHeaderClass: string;
496-
stickyHeaderStyle: string;
497-
stickyFooterClass: string;
498-
stickyFooterStyle: string;
499-
}> | null>;
352+
}, {}> | null>;
500353
treeInfo: import("vue-demi").ShallowReactive<import("./type").TreeInfo>;
501354
dragging: import("vue-demi").Ref<boolean>;
502355
renderList: import("vue-demi").ComputedRef<TreeNode<import("./type").TreeNodeData>[]>;

lib/components/virt-tree/useDrag.d.ts

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,14 @@ import { type SetupContext, type ShallowRef, type Ref } from 'vue-demi';
22
import type { TreeNode, TreeNodeKey } from './type';
33
import type { VirtList } from '../virt-list';
44
import { type TreeEmits, type TreeProps } from './useTree';
5-
export declare const useDrag: ({
6-
props,
7-
virtListRef,
8-
dragging,
9-
getTreeNode,
10-
hasExpanded,
11-
expandNode,
12-
emits,
13-
}: {
14-
props: TreeProps;
15-
virtListRef: ShallowRef<typeof VirtList | null>;
16-
dragging: Ref<boolean>;
17-
getTreeNode: (key: TreeNodeKey) => TreeNode | undefined;
18-
hasExpanded: (node: TreeNode) => boolean;
19-
expandNode: (key: TreeNodeKey | TreeNodeKey[], expanded: boolean) => void;
20-
emits: SetupContext<typeof TreeEmits>['emit'];
5+
export declare const useDrag: ({ props, virtListRef, dragging, getTreeNode, hasExpanded, expandNode, emits, }: {
6+
props: TreeProps;
7+
virtListRef: ShallowRef<typeof VirtList | null>;
8+
dragging: Ref<boolean>;
9+
getTreeNode: (key: TreeNodeKey) => TreeNode | undefined;
10+
hasExpanded: (node: TreeNode) => boolean;
11+
expandNode: (key: TreeNodeKey | TreeNodeKey[], expanded: boolean) => void;
12+
emits: SetupContext<typeof TreeEmits>['emit'];
2113
}) => {
22-
onDragstart: (event: MouseEvent) => void;
14+
onDragstart: (event: MouseEvent) => void;
2315
};

lib/components/virt-tree/useExpand.d.ts

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,16 @@ import { type SetupContext, type ShallowRef } from 'vue-demi';
22
import { type TreeEmits, type TreeProps } from './useTree';
33
import type { TreeNode, TreeNodeKey } from './type';
44
import type { VirtList } from '../virt-list';
5-
export declare const useExpand: ({
6-
props,
7-
virtListRef,
8-
parentNodeKeys,
9-
getTreeNode,
10-
emits,
11-
}: {
12-
props: TreeProps;
13-
virtListRef: ShallowRef<typeof VirtList | null>;
14-
parentNodeKeys: TreeNodeKey[];
15-
getTreeNode: (key: TreeNodeKey) => TreeNode | undefined;
16-
emits: SetupContext<typeof TreeEmits>['emit'];
5+
export declare const useExpand: ({ props, virtListRef, parentNodeKeys, getTreeNode, emits, }: {
6+
props: TreeProps;
7+
virtListRef: ShallowRef<typeof VirtList | null>;
8+
parentNodeKeys: TreeNodeKey[];
9+
getTreeNode: (key: TreeNodeKey) => TreeNode | undefined;
10+
emits: SetupContext<typeof TreeEmits>['emit'];
1711
}) => {
18-
hasExpanded: (node: TreeNode) => boolean;
19-
setExpandedKeys: () => void;
20-
toggleExpand: (node: TreeNode) => void;
21-
expandNode: (key: TreeNodeKey | TreeNodeKey[], expanded: boolean) => void;
22-
expandAll: (expanded: boolean) => void;
12+
hasExpanded: (node: TreeNode) => boolean;
13+
setExpandedKeys: () => void;
14+
toggleExpand: (node: TreeNode) => void;
15+
expandNode: (key: TreeNodeKey | TreeNodeKey[], expanded: boolean) => void;
16+
expandAll: (expanded: boolean) => void;
2317
};
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import type { VirtList } from '../virt-list';
22
import { type Ref, type ShallowRef } from 'vue-demi';
33
import type { TreeNodeKey } from './type';
4-
export declare const useSticky: (
5-
virtListRef: Ref<typeof VirtList | null>,
6-
expandedKeysSet: ShallowRef<Set<TreeNodeKey>>,
7-
) => {
8-
stickyStack: Ref<TreeNodeKey[]>;
4+
export declare const useSticky: (virtListRef: Ref<typeof VirtList | null>, expandedKeysSet: ShallowRef<Set<TreeNodeKey>>) => {
5+
stickyStack: Ref<TreeNodeKey[]>;
96
};

0 commit comments

Comments
 (0)