yuyeon 0.0.9 → 0.0.10
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.
- package/dist/style.css +1 -1
- package/dist/yuyeon.mjs +2753 -1505
- package/dist/yuyeon.umd.js +1 -1
- package/lib/components/button/YButton.mjs +31 -27
- package/lib/components/button/YButton.mjs.map +1 -1
- package/lib/components/button/YButton.scss +13 -6
- package/lib/components/icons/YIconCheckbox.mjs +5 -3
- package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
- package/lib/components/icons/YIconCheckbox.scss +26 -0
- package/lib/components/icons/YIconSort.mjs +45 -0
- package/lib/components/icons/YIconSort.mjs.map +1 -0
- package/lib/components/icons/YIconSort.scss +23 -0
- package/lib/components/pagination/YPagination.mjs +7 -1
- package/lib/components/pagination/YPagination.mjs.map +1 -1
- package/lib/components/pagination/YPagination.scss +1 -1
- package/lib/components/table/YDataTable.mjs +17 -7
- package/lib/components/table/YDataTable.mjs.map +1 -1
- package/lib/components/table/YDataTableBody.mjs +69 -6
- package/lib/components/table/YDataTableBody.mjs.map +1 -1
- package/lib/components/table/YDataTableCell.mjs +18 -4
- package/lib/components/table/YDataTableCell.mjs.map +1 -1
- package/lib/components/table/YDataTableControl.mjs.map +1 -1
- package/lib/components/table/YDataTableHead.mjs +144 -5
- package/lib/components/table/YDataTableHead.mjs.map +1 -1
- package/lib/components/table/YDataTableRow.mjs +66 -3
- package/lib/components/table/YDataTableRow.mjs.map +1 -1
- package/lib/components/table/YDataTableServer.mjs +103 -16
- package/lib/components/table/YDataTableServer.mjs.map +1 -1
- package/lib/components/table/YTable.mjs +17 -13
- package/lib/components/table/YTable.mjs.map +1 -1
- package/lib/components/table/YTable.scss +53 -0
- package/lib/components/table/composibles/header.mjs +110 -0
- package/lib/components/table/composibles/header.mjs.map +1 -0
- package/lib/components/table/composibles/items.mjs +45 -0
- package/lib/components/table/composibles/items.mjs.map +1 -0
- package/lib/components/table/composibles/options.mjs +33 -0
- package/lib/components/table/composibles/options.mjs.map +1 -0
- package/lib/components/table/composibles/pagination.mjs +82 -0
- package/lib/components/table/composibles/pagination.mjs.map +1 -0
- package/lib/components/table/composibles/selection.mjs +179 -0
- package/lib/components/table/composibles/selection.mjs.map +1 -0
- package/lib/components/table/composibles/sorting.mjs +74 -0
- package/lib/components/table/composibles/sorting.mjs.map +1 -0
- package/lib/components/table/types/index.mjs +2 -0
- package/lib/components/table/types/index.mjs.map +1 -0
- package/lib/components/tree-view/YTreeView.mjs.map +1 -1
- package/lib/components/tree-view/types.mjs.map +1 -1
- package/lib/components/tree-view/util.mjs.map +1 -1
- package/lib/composables/icon.mjs +2 -0
- package/lib/composables/icon.mjs.map +1 -0
- package/lib/styles/base.scss +8 -0
- package/lib/types/index.mjs +2 -0
- package/lib/types/index.mjs.map +1 -0
- package/lib/util/array.mjs +3 -0
- package/lib/util/array.mjs.map +1 -1
- package/lib/util/common.mjs +13 -0
- package/lib/util/common.mjs.map +1 -1
- package/lib/util/vue-component.mjs.map +1 -1
- package/package.json +1 -1
- package/types/components/button/YButton.d.ts +135 -66
- package/types/components/checkbox/YInputCheckbox.d.ts +6 -3
- package/types/components/icons/YIconCheckbox.d.ts +6 -3
- package/types/components/icons/YIconSort.d.ts +18 -0
- package/types/components/pagination/YPagination.d.ts +7 -0
- package/types/components/table/YDataTable.d.ts +282 -19
- package/types/components/table/YDataTableBody.d.ts +34 -6
- package/types/components/table/YDataTableCell.d.ts +50 -0
- package/types/components/table/YDataTableHead.d.ts +67 -5
- package/types/components/table/YDataTableRow.d.ts +30 -0
- package/types/components/table/YDataTableServer.d.ts +317 -29
- package/types/components/table/YTable.d.ts +41 -0
- package/types/components/table/composibles/header.d.ts +66 -0
- package/types/components/table/composibles/items.d.ts +54 -0
- package/types/components/table/composibles/options.d.ts +10 -0
- package/types/components/table/composibles/pagination.d.ts +68 -0
- package/types/components/table/composibles/selection.d.ts +67 -0
- package/types/components/table/composibles/sorting.d.ts +41 -0
- package/types/components/table/types/index.d.ts +77 -0
- package/types/components/tree-view/YTreeView.d.ts +14 -14
- package/types/components/tree-view/types.d.ts +3 -3
- package/types/components/tree-view/util.d.ts +2 -2
- package/types/types/index.d.ts +1 -0
- package/types/util/array.d.ts +1 -0
- package/types/util/common.d.ts +2 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { InjectionKey, PropType, Ref } from 'vue';
|
|
2
|
+
import { DataTableProvideSelectionData } from '../types';
|
|
3
|
+
import { DataTableItemsProps } from './items';
|
|
4
|
+
export interface SelectableItem {
|
|
5
|
+
value: any;
|
|
6
|
+
selectable: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface DataTableSelectStrategy {
|
|
9
|
+
showSelectAll: boolean;
|
|
10
|
+
allSelected: (data: {
|
|
11
|
+
allItems: SelectableItem[];
|
|
12
|
+
pageItems: SelectableItem[];
|
|
13
|
+
}) => SelectableItem[];
|
|
14
|
+
select: (data: {
|
|
15
|
+
items: SelectableItem[];
|
|
16
|
+
value: boolean;
|
|
17
|
+
selected: Set<unknown>;
|
|
18
|
+
}) => Set<unknown>;
|
|
19
|
+
selectAll: (data: {
|
|
20
|
+
value: boolean;
|
|
21
|
+
allItems: SelectableItem[];
|
|
22
|
+
pageItems: SelectableItem[];
|
|
23
|
+
selected: Set<unknown>;
|
|
24
|
+
}) => Set<unknown>;
|
|
25
|
+
}
|
|
26
|
+
export declare const pressDataTableSelectionProps: <Defaults extends {
|
|
27
|
+
enableSelect?: unknown;
|
|
28
|
+
selectStrategy?: unknown;
|
|
29
|
+
modelValue?: unknown;
|
|
30
|
+
} = {}>(defaults?: Defaults | undefined) => {
|
|
31
|
+
enableSelect: unknown extends Defaults["enableSelect"] ? BooleanConstructor : {
|
|
32
|
+
type: PropType<unknown extends Defaults ? "enableSelect" : "enableSelect" | Defaults>;
|
|
33
|
+
default: unknown extends Defaults["enableSelect"] ? boolean : boolean | Defaults["enableSelect"];
|
|
34
|
+
};
|
|
35
|
+
selectStrategy: unknown extends Defaults["selectStrategy"] ? {
|
|
36
|
+
type: PropType<"single" | "page" | "all">;
|
|
37
|
+
default: string;
|
|
38
|
+
} : Omit<{
|
|
39
|
+
type: PropType<"single" | "page" | "all">;
|
|
40
|
+
default: string;
|
|
41
|
+
}, "default" | "type"> & {
|
|
42
|
+
type: PropType<unknown extends Defaults["selectStrategy"] ? "single" | "page" | "all" : NonNullable<"single" | "page" | "all"> | Defaults["selectStrategy"]>;
|
|
43
|
+
default: unknown extends Defaults["selectStrategy"] ? "single" | "page" | "all" : NonNullable<"single" | "page" | "all"> | Defaults["selectStrategy"];
|
|
44
|
+
};
|
|
45
|
+
modelValue: unknown extends Defaults["modelValue"] ? {
|
|
46
|
+
type: PropType<readonly any[]>;
|
|
47
|
+
default: () => never[];
|
|
48
|
+
} : Omit<{
|
|
49
|
+
type: PropType<readonly any[]>;
|
|
50
|
+
default: () => never[];
|
|
51
|
+
}, "default" | "type"> & {
|
|
52
|
+
type: PropType<unknown extends Defaults["modelValue"] ? readonly any[] : readonly any[] | Defaults["modelValue"]>;
|
|
53
|
+
default: unknown extends Defaults["modelValue"] ? readonly any[] : readonly any[] | Defaults["modelValue"];
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
type DataTableSelectionProps = Pick<DataTableItemsProps, 'itemKey'> & {
|
|
57
|
+
modelValue: readonly any[];
|
|
58
|
+
selectStrategy: 'single' | 'page' | 'all';
|
|
59
|
+
'onUpdate:modelValue': ((value: any[]) => void) | undefined;
|
|
60
|
+
};
|
|
61
|
+
export declare const Y_DATA_TABLE_SELECTION_KEY: InjectionKey<ReturnType<typeof provideSelection>>;
|
|
62
|
+
export declare function provideSelection(props: DataTableSelectionProps, { allItems, pageItems, }: {
|
|
63
|
+
allItems: Ref<SelectableItem[]>;
|
|
64
|
+
pageItems: Ref<SelectableItem[]>;
|
|
65
|
+
}): DataTableProvideSelectionData;
|
|
66
|
+
export declare function useSelection(): DataTableProvideSelectionData;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { PropType, Ref } from 'vue';
|
|
2
|
+
import type { DataTableProvideSortingData, InternalDataTableHeader, SortOption } from '../types';
|
|
3
|
+
export declare const pressDataTableSortProps: <Defaults extends {
|
|
4
|
+
sortBy?: unknown;
|
|
5
|
+
multiSort?: unknown;
|
|
6
|
+
} = {}>(defaults?: Defaults | undefined) => {
|
|
7
|
+
sortBy: unknown extends Defaults["sortBy"] ? {
|
|
8
|
+
type: PropType<readonly SortOption[]>;
|
|
9
|
+
default: () => never[];
|
|
10
|
+
} : Omit<{
|
|
11
|
+
type: PropType<readonly SortOption[]>;
|
|
12
|
+
default: () => never[];
|
|
13
|
+
}, "default" | "type"> & {
|
|
14
|
+
type: PropType<unknown extends Defaults["sortBy"] ? readonly SortOption[] : readonly SortOption[] | Defaults["sortBy"]>;
|
|
15
|
+
default: unknown extends Defaults["sortBy"] ? readonly SortOption[] : readonly SortOption[] | Defaults["sortBy"];
|
|
16
|
+
};
|
|
17
|
+
multiSort: unknown extends Defaults["multiSort"] ? BooleanConstructor : {
|
|
18
|
+
type: PropType<unknown extends Defaults ? "multiSort" : "multiSort" | Defaults>;
|
|
19
|
+
default: unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type SortProps = {
|
|
23
|
+
sortBy: readonly SortOption[];
|
|
24
|
+
'onUpdate:sortBy': ((value: any) => void) | undefined;
|
|
25
|
+
multiSort: boolean;
|
|
26
|
+
};
|
|
27
|
+
export declare function createSorting(props: SortProps): {
|
|
28
|
+
sortBy: import("vue").WritableComputedRef<any>;
|
|
29
|
+
multiSort: Ref<boolean>;
|
|
30
|
+
};
|
|
31
|
+
export declare function provideSorting(options: {
|
|
32
|
+
sortBy: Ref<readonly SortOption[]>;
|
|
33
|
+
page?: Ref<number>;
|
|
34
|
+
multiSort?: Ref<boolean>;
|
|
35
|
+
}): DataTableProvideSortingData;
|
|
36
|
+
export declare function useSorting(): {
|
|
37
|
+
sortBy: Ref<readonly SortOption[]>;
|
|
38
|
+
toggleSort: (col: InternalDataTableHeader) => void;
|
|
39
|
+
isSorted: (col: InternalDataTableHeader) => boolean;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ComputedRef, Ref, UnwrapRef } from "vue";
|
|
2
|
+
import { SelectableItem } from '../composibles/selection';
|
|
3
|
+
export type DataTableCompareFn<T = any> = (a: T, b: T) => number;
|
|
4
|
+
export type DataTableHeader = {
|
|
5
|
+
key: string;
|
|
6
|
+
text: string;
|
|
7
|
+
value?: any;
|
|
8
|
+
colspan?: number;
|
|
9
|
+
rowspan?: number;
|
|
10
|
+
fixed?: boolean;
|
|
11
|
+
align?: 'start' | 'end' | 'center';
|
|
12
|
+
width?: number | string;
|
|
13
|
+
minWidth?: string;
|
|
14
|
+
maxWidth?: string;
|
|
15
|
+
sortable?: boolean;
|
|
16
|
+
sort?: DataTableCompareFn;
|
|
17
|
+
mustSort?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type InternalDataTableHeader = DataTableHeader & {
|
|
20
|
+
sortable: boolean;
|
|
21
|
+
fixedOffset?: number;
|
|
22
|
+
lastFixed?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export interface DataTableItem<T = any> extends SelectableItem {
|
|
25
|
+
index: number;
|
|
26
|
+
columns: Record<string, any>;
|
|
27
|
+
raw: T;
|
|
28
|
+
}
|
|
29
|
+
export type SortOption = {
|
|
30
|
+
key: string;
|
|
31
|
+
order?: boolean | 'asc' | 'desc';
|
|
32
|
+
};
|
|
33
|
+
export type DataTableProvideSortingData = {
|
|
34
|
+
sortBy: Ref<readonly SortOption[]>;
|
|
35
|
+
toggleSort: (column: InternalDataTableHeader) => void;
|
|
36
|
+
isSorted: (column: InternalDataTableHeader) => boolean;
|
|
37
|
+
};
|
|
38
|
+
export interface DataTableProvidePaginationData {
|
|
39
|
+
page: Ref<number>;
|
|
40
|
+
pageSize: Ref<number>;
|
|
41
|
+
startIndex: ComputedRef<number>;
|
|
42
|
+
endIndex: ComputedRef<number>;
|
|
43
|
+
pageLength: ComputedRef<number>;
|
|
44
|
+
total: Ref<number>;
|
|
45
|
+
nextPage: () => void;
|
|
46
|
+
prevPage: () => void;
|
|
47
|
+
setPage: (value: number) => void;
|
|
48
|
+
setPageSize: (value: number) => void;
|
|
49
|
+
}
|
|
50
|
+
export interface DataTableProvideSelectionData {
|
|
51
|
+
toggleSelect: (item: SelectableItem) => void;
|
|
52
|
+
select: (items: SelectableItem[], value: boolean) => void;
|
|
53
|
+
selectAll: (value: boolean) => void;
|
|
54
|
+
isSelected: (items: (SelectableItem | SelectableItem[])) => any;
|
|
55
|
+
isSomeSelected: (items: (SelectableItem | SelectableItem[])) => any;
|
|
56
|
+
someSelected: ComputedRef<boolean>;
|
|
57
|
+
allSelected: ComputedRef<any>;
|
|
58
|
+
showSelectAll: boolean;
|
|
59
|
+
selectables: ComputedRef<SelectableItem[]>;
|
|
60
|
+
}
|
|
61
|
+
export type YDataTableSlotProps = {
|
|
62
|
+
page: number;
|
|
63
|
+
pageSize: number;
|
|
64
|
+
pageLength: number;
|
|
65
|
+
setPageSize: DataTableProvidePaginationData['setPageSize'];
|
|
66
|
+
sortBy: UnwrapRef<DataTableProvideSortingData['sortBy']>;
|
|
67
|
+
toggleSort: DataTableProvideSortingData['toggleSort'];
|
|
68
|
+
someSelected: boolean;
|
|
69
|
+
allSelected: boolean;
|
|
70
|
+
isSelected: DataTableProvideSelectionData['isSelected'];
|
|
71
|
+
select: DataTableProvideSelectionData['select'];
|
|
72
|
+
selectAll: DataTableProvideSelectionData['selectAll'];
|
|
73
|
+
toggleSelect: DataTableProvideSelectionData['toggleSelect'];
|
|
74
|
+
items: readonly DataTableItem[];
|
|
75
|
+
columns: InternalDataTableHeader[];
|
|
76
|
+
headers: InternalDataTableHeader[][];
|
|
77
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PropType, Ref } from 'vue';
|
|
2
|
-
import {
|
|
2
|
+
import { CandidateKey } from '../../types';
|
|
3
3
|
export declare const YTreeView: import("vue").DefineComponent<{
|
|
4
4
|
itemKey: {
|
|
5
5
|
type: PropType<string>;
|
|
@@ -26,11 +26,11 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
26
26
|
default: () => never[];
|
|
27
27
|
};
|
|
28
28
|
expanded: {
|
|
29
|
-
type: PropType<
|
|
29
|
+
type: PropType<CandidateKey[]>;
|
|
30
30
|
default: () => never[];
|
|
31
31
|
};
|
|
32
32
|
active: {
|
|
33
|
-
type: PropType<
|
|
33
|
+
type: PropType<CandidateKey[]>;
|
|
34
34
|
default: () => never[];
|
|
35
35
|
};
|
|
36
36
|
multipleActive: BooleanConstructor;
|
|
@@ -39,7 +39,7 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
39
39
|
default: string;
|
|
40
40
|
};
|
|
41
41
|
selected: {
|
|
42
|
-
type: PropType<
|
|
42
|
+
type: PropType<CandidateKey[]>;
|
|
43
43
|
default: () => never[];
|
|
44
44
|
};
|
|
45
45
|
selectStrategy: {
|
|
@@ -49,10 +49,10 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
49
49
|
returnItem: BooleanConstructor;
|
|
50
50
|
defaultExpand: (BooleanConstructor | StringConstructor | NumberConstructor)[];
|
|
51
51
|
}, {
|
|
52
|
-
nodes: Ref<Record<
|
|
53
|
-
expandedSet: Ref<Set<
|
|
54
|
-
selectedSet: Ref<Set<
|
|
55
|
-
activeSet: Ref<Set<
|
|
52
|
+
nodes: Ref<Record<CandidateKey, any>>;
|
|
53
|
+
expandedSet: Ref<Set<CandidateKey>>;
|
|
54
|
+
selectedSet: Ref<Set<CandidateKey>>;
|
|
55
|
+
activeSet: Ref<Set<CandidateKey>>;
|
|
56
56
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:expanded" | "update:active" | "update:selected")[], "update:expanded" | "update:active" | "update:selected", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
57
57
|
itemKey: {
|
|
58
58
|
type: PropType<string>;
|
|
@@ -79,11 +79,11 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
79
79
|
default: () => never[];
|
|
80
80
|
};
|
|
81
81
|
expanded: {
|
|
82
|
-
type: PropType<
|
|
82
|
+
type: PropType<CandidateKey[]>;
|
|
83
83
|
default: () => never[];
|
|
84
84
|
};
|
|
85
85
|
active: {
|
|
86
|
-
type: PropType<
|
|
86
|
+
type: PropType<CandidateKey[]>;
|
|
87
87
|
default: () => never[];
|
|
88
88
|
};
|
|
89
89
|
multipleActive: BooleanConstructor;
|
|
@@ -92,7 +92,7 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
92
92
|
default: string;
|
|
93
93
|
};
|
|
94
94
|
selected: {
|
|
95
|
-
type: PropType<
|
|
95
|
+
type: PropType<CandidateKey[]>;
|
|
96
96
|
default: () => never[];
|
|
97
97
|
};
|
|
98
98
|
selectStrategy: {
|
|
@@ -106,7 +106,7 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
106
106
|
"onUpdate:active"?: ((...args: any[]) => any) | undefined;
|
|
107
107
|
"onUpdate:selected"?: ((...args: any[]) => any) | undefined;
|
|
108
108
|
}, {
|
|
109
|
-
active:
|
|
109
|
+
active: CandidateKey[];
|
|
110
110
|
itemKey: string;
|
|
111
111
|
textKey: string;
|
|
112
112
|
childrenKey: string;
|
|
@@ -114,8 +114,8 @@ export declare const YTreeView: import("vue").DefineComponent<{
|
|
|
114
114
|
enableActive: boolean;
|
|
115
115
|
activeColor: string;
|
|
116
116
|
enableSelect: boolean;
|
|
117
|
-
expanded:
|
|
118
|
-
selected:
|
|
117
|
+
expanded: CandidateKey[];
|
|
118
|
+
selected: CandidateKey[];
|
|
119
119
|
items: any[];
|
|
120
120
|
multipleActive: boolean;
|
|
121
121
|
activeStrategy: "independent" | "cascade";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ComponentPublicInstance } from 'vue';
|
|
2
|
-
|
|
2
|
+
import { CandidateKey } from "../../types";
|
|
3
3
|
export interface NodeState {
|
|
4
|
-
childKeys:
|
|
4
|
+
childKeys: CandidateKey[];
|
|
5
5
|
item: any;
|
|
6
|
-
parentKey: null |
|
|
6
|
+
parentKey: null | CandidateKey;
|
|
7
7
|
vnode: null | ComponentPublicInstance;
|
|
8
8
|
level: number;
|
|
9
9
|
selected: false;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function getKeys(items: any[], itemKey: string, childrenKey: string):
|
|
1
|
+
import { CandidateKey } from "../../types";
|
|
2
|
+
export declare function getKeys(items: any[], itemKey: string, childrenKey: string): CandidateKey[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type CandidateKey = string | number;
|
package/types/util/array.d.ts
CHANGED
package/types/util/common.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare function mergeDeep(source?: Record<string, any>, overwrite?: Reco
|
|
|
4
4
|
[x: string]: any;
|
|
5
5
|
};
|
|
6
6
|
export declare function getObjectValueByPath(obj: any, path: string, fallback?: any): any;
|
|
7
|
+
export type SelectItemKey = boolean | string | (string | number)[] | ((item: Record<string, any>, fallback?: any) => any);
|
|
8
|
+
export declare function getPropertyFromItem(item: any, property: SelectItemKey, fallback?: any): any;
|
|
7
9
|
export declare function randomCharOne(str: string): string;
|
|
8
10
|
export declare function clamp(value: number, min?: number, max?: number): number;
|
|
9
11
|
export declare function getRangeArr(length: number, start?: number): number[];
|