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.
Files changed (84) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.mjs +2753 -1505
  3. package/dist/yuyeon.umd.js +1 -1
  4. package/lib/components/button/YButton.mjs +31 -27
  5. package/lib/components/button/YButton.mjs.map +1 -1
  6. package/lib/components/button/YButton.scss +13 -6
  7. package/lib/components/icons/YIconCheckbox.mjs +5 -3
  8. package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
  9. package/lib/components/icons/YIconCheckbox.scss +26 -0
  10. package/lib/components/icons/YIconSort.mjs +45 -0
  11. package/lib/components/icons/YIconSort.mjs.map +1 -0
  12. package/lib/components/icons/YIconSort.scss +23 -0
  13. package/lib/components/pagination/YPagination.mjs +7 -1
  14. package/lib/components/pagination/YPagination.mjs.map +1 -1
  15. package/lib/components/pagination/YPagination.scss +1 -1
  16. package/lib/components/table/YDataTable.mjs +17 -7
  17. package/lib/components/table/YDataTable.mjs.map +1 -1
  18. package/lib/components/table/YDataTableBody.mjs +69 -6
  19. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  20. package/lib/components/table/YDataTableCell.mjs +18 -4
  21. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  22. package/lib/components/table/YDataTableControl.mjs.map +1 -1
  23. package/lib/components/table/YDataTableHead.mjs +144 -5
  24. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  25. package/lib/components/table/YDataTableRow.mjs +66 -3
  26. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  27. package/lib/components/table/YDataTableServer.mjs +103 -16
  28. package/lib/components/table/YDataTableServer.mjs.map +1 -1
  29. package/lib/components/table/YTable.mjs +17 -13
  30. package/lib/components/table/YTable.mjs.map +1 -1
  31. package/lib/components/table/YTable.scss +53 -0
  32. package/lib/components/table/composibles/header.mjs +110 -0
  33. package/lib/components/table/composibles/header.mjs.map +1 -0
  34. package/lib/components/table/composibles/items.mjs +45 -0
  35. package/lib/components/table/composibles/items.mjs.map +1 -0
  36. package/lib/components/table/composibles/options.mjs +33 -0
  37. package/lib/components/table/composibles/options.mjs.map +1 -0
  38. package/lib/components/table/composibles/pagination.mjs +82 -0
  39. package/lib/components/table/composibles/pagination.mjs.map +1 -0
  40. package/lib/components/table/composibles/selection.mjs +179 -0
  41. package/lib/components/table/composibles/selection.mjs.map +1 -0
  42. package/lib/components/table/composibles/sorting.mjs +74 -0
  43. package/lib/components/table/composibles/sorting.mjs.map +1 -0
  44. package/lib/components/table/types/index.mjs +2 -0
  45. package/lib/components/table/types/index.mjs.map +1 -0
  46. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  47. package/lib/components/tree-view/types.mjs.map +1 -1
  48. package/lib/components/tree-view/util.mjs.map +1 -1
  49. package/lib/composables/icon.mjs +2 -0
  50. package/lib/composables/icon.mjs.map +1 -0
  51. package/lib/styles/base.scss +8 -0
  52. package/lib/types/index.mjs +2 -0
  53. package/lib/types/index.mjs.map +1 -0
  54. package/lib/util/array.mjs +3 -0
  55. package/lib/util/array.mjs.map +1 -1
  56. package/lib/util/common.mjs +13 -0
  57. package/lib/util/common.mjs.map +1 -1
  58. package/lib/util/vue-component.mjs.map +1 -1
  59. package/package.json +1 -1
  60. package/types/components/button/YButton.d.ts +135 -66
  61. package/types/components/checkbox/YInputCheckbox.d.ts +6 -3
  62. package/types/components/icons/YIconCheckbox.d.ts +6 -3
  63. package/types/components/icons/YIconSort.d.ts +18 -0
  64. package/types/components/pagination/YPagination.d.ts +7 -0
  65. package/types/components/table/YDataTable.d.ts +282 -19
  66. package/types/components/table/YDataTableBody.d.ts +34 -6
  67. package/types/components/table/YDataTableCell.d.ts +50 -0
  68. package/types/components/table/YDataTableHead.d.ts +67 -5
  69. package/types/components/table/YDataTableRow.d.ts +30 -0
  70. package/types/components/table/YDataTableServer.d.ts +317 -29
  71. package/types/components/table/YTable.d.ts +41 -0
  72. package/types/components/table/composibles/header.d.ts +66 -0
  73. package/types/components/table/composibles/items.d.ts +54 -0
  74. package/types/components/table/composibles/options.d.ts +10 -0
  75. package/types/components/table/composibles/pagination.d.ts +68 -0
  76. package/types/components/table/composibles/selection.d.ts +67 -0
  77. package/types/components/table/composibles/sorting.d.ts +41 -0
  78. package/types/components/table/types/index.d.ts +77 -0
  79. package/types/components/tree-view/YTreeView.d.ts +14 -14
  80. package/types/components/tree-view/types.d.ts +3 -3
  81. package/types/components/tree-view/util.d.ts +2 -2
  82. package/types/types/index.d.ts +1 -0
  83. package/types/util/array.d.ts +1 -0
  84. 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 { NodeKey } from './types';
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<NodeKey[]>;
29
+ type: PropType<CandidateKey[]>;
30
30
  default: () => never[];
31
31
  };
32
32
  active: {
33
- type: PropType<NodeKey[]>;
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<NodeKey[]>;
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<NodeKey, any>>;
53
- expandedSet: Ref<Set<NodeKey>>;
54
- selectedSet: Ref<Set<NodeKey>>;
55
- activeSet: Ref<Set<NodeKey>>;
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<NodeKey[]>;
82
+ type: PropType<CandidateKey[]>;
83
83
  default: () => never[];
84
84
  };
85
85
  active: {
86
- type: PropType<NodeKey[]>;
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<NodeKey[]>;
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: NodeKey[];
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: NodeKey[];
118
- selected: NodeKey[];
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
- export type NodeKey = string | number;
2
+ import { CandidateKey } from "../../types";
3
3
  export interface NodeState {
4
- childKeys: NodeKey[];
4
+ childKeys: CandidateKey[];
5
5
  item: any;
6
- parentKey: null | NodeKey;
6
+ parentKey: null | CandidateKey;
7
7
  vnode: null | ComponentPublicInstance;
8
8
  level: number;
9
9
  selected: false;
@@ -1,2 +1,2 @@
1
- import { NodeKey } from './types';
2
- export declare function getKeys(items: any[], itemKey: string, childrenKey: string): NodeKey[];
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;
@@ -1 +1,2 @@
1
1
  export declare function differenceBetween(inspect: any[], exclude: any[]): any[];
2
+ export declare function wrapInArray(arrOrNot: any | any[]): any[];
@@ -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[];