vueye-table 2.0.0-alpha.1 → 2.0.0-alpha.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.
- package/README.md +4 -15
- package/dist/components/core/VueyeTable/VueyeBody/VueyeBody.vue.d.ts +1 -1
- package/dist/components/core/VueyeTable/VueyeHead/VueyeHead.vue.d.ts +3 -3
- package/dist/components/core/VueyeTable/VueyePagination/VueyePagination.vue.d.ts +1 -1
- package/dist/components/core/VueyeTable/VueyeTable.vue.d.ts +49 -20
- package/dist/components/core/VueyeTable/types/Column.d.ts +11 -6
- package/dist/components/core/VueyeTable/types/Utils.d.ts +10 -0
- package/dist/components/core/VueyeTable/util-components/VueyeDropdown.vue.d.ts +1 -1
- package/dist/components/core/VueyeTable/utils/header.d.ts +2 -1
- package/dist/data/product.d.ts +2 -6
- package/dist/style.css +1 -1
- package/dist/vueye-table.js +288 -263
- package/dist/vueye-table.umd.cjs +1 -1
- package/package.json +76 -98
- package/dist/types.d.ts +0 -8
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Vueye-table
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
:warning: **This project is still in development.**
|
|
4
|
+
|
|
5
|
+
## Tools and conventions
|
|
4
6
|
|
|
5
7
|
- [x] Eslint
|
|
6
8
|
- [x] Prettier
|
|
@@ -25,17 +27,4 @@
|
|
|
25
27
|
11. Responsive Design
|
|
26
28
|
12. Customization
|
|
27
29
|
13. Accessibility
|
|
28
|
-
|
|
29
|
-
## How to use:
|
|
30
|
-
|
|
31
|
-
1. Clone the project
|
|
32
|
-
2. `yarn`
|
|
33
|
-
3. `npx semantic-release-cli setup`
|
|
34
|
-
4. Add components
|
|
35
|
-
5. `git add .`
|
|
36
|
-
6. `yarn commit`
|
|
37
|
-
7. `git push`
|
|
38
|
-
|
|
39
|
-
## Real Example:
|
|
40
|
-
|
|
41
|
-
[vue-tradingviewWidgets](https://github.com/boussadjra/vue-tradingviewWidgets)
|
|
30
|
+
14. ...
|
|
@@ -15,7 +15,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
15
15
|
required: true;
|
|
16
16
|
default: string;
|
|
17
17
|
};
|
|
18
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<
|
|
18
|
+
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
|
|
19
19
|
loading: {
|
|
20
20
|
type: globalThis.PropType<boolean>;
|
|
21
21
|
required: true;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ColumnHeader
|
|
1
|
+
import type { ColumnHeader } from '../types';
|
|
2
2
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
3
3
|
columnHeaders: {
|
|
4
4
|
type: globalThis.PropType<ColumnHeader[][]>;
|
|
5
5
|
required: true;
|
|
6
6
|
default: () => never[];
|
|
7
7
|
};
|
|
8
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<
|
|
8
|
+
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
|
|
9
9
|
columnHeaders: {
|
|
10
10
|
type: globalThis.PropType<ColumnHeader[][]>;
|
|
11
11
|
required: true;
|
|
@@ -13,7 +13,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
13
13
|
};
|
|
14
14
|
}>>, {
|
|
15
15
|
columnHeaders: ColumnHeader[][];
|
|
16
|
-
}, {}>,
|
|
16
|
+
}, {}>, Readonly<import("../types").SlotHeaderCell<Record<string, string>> & import("../types").SlotHeaderCellContent<Record<string, string>>>>;
|
|
17
17
|
export default _default;
|
|
18
18
|
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
19
19
|
new (): {
|
|
@@ -22,7 +22,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
22
22
|
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
23
23
|
"update:currentPage": (value: number) => void;
|
|
24
24
|
"update:perPage": (value: number) => void;
|
|
25
|
-
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<
|
|
25
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
|
|
26
26
|
perPage: {
|
|
27
27
|
type: globalThis.PropType<number>;
|
|
28
28
|
required: true;
|
|
@@ -1,35 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
columnHeaders: ColumnHeaderBase<Record<string, unknown>>[];
|
|
1
|
+
import { ColumnHeader } from './types';
|
|
2
|
+
declare const _default: <TData extends Record<string, unknown>, TColumn extends ColumnHeader>(__VLS_props: {
|
|
3
|
+
loading?: boolean | undefined;
|
|
4
|
+
caption?: string | undefined;
|
|
6
5
|
data: TData[];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
selectable?: boolean;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
expose(exposed: {}): void;
|
|
6
|
+
summary?: string | undefined;
|
|
7
|
+
perPage?: number | undefined;
|
|
8
|
+
currentPage?: number | undefined;
|
|
9
|
+
perPageOptions?: number[] | undefined;
|
|
10
|
+
selectable?: boolean | undefined;
|
|
11
|
+
itemValue?: string | undefined;
|
|
12
|
+
columnHeaders: TColumn[];
|
|
13
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
|
|
16
14
|
attrs: any;
|
|
17
|
-
slots:
|
|
15
|
+
slots: Readonly<import("./types").SlotHeaderCell<TData> & import("./types").SlotHeaderCellContent<TData> & {
|
|
16
|
+
caption: () => any;
|
|
17
|
+
summary: () => any;
|
|
18
|
+
}>;
|
|
18
19
|
emit: any;
|
|
19
|
-
},
|
|
20
|
-
props:
|
|
20
|
+
} | undefined, __VLS_expose?: ((exposed: {}) => void) | undefined, __VLS_setup?: Promise<{
|
|
21
|
+
props: {
|
|
22
|
+
loading?: boolean | undefined;
|
|
23
|
+
caption?: string | undefined;
|
|
24
|
+
data: TData[];
|
|
25
|
+
summary?: string | undefined;
|
|
26
|
+
perPage?: number | undefined;
|
|
27
|
+
currentPage?: number | undefined;
|
|
28
|
+
perPageOptions?: number[] | undefined;
|
|
29
|
+
selectable?: boolean | undefined;
|
|
30
|
+
itemValue?: string | undefined;
|
|
31
|
+
columnHeaders: TColumn[];
|
|
32
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
|
|
21
33
|
expose(exposed: {}): void;
|
|
22
34
|
attrs: any;
|
|
23
|
-
slots:
|
|
35
|
+
slots: Readonly<import("./types").SlotHeaderCell<TData> & import("./types").SlotHeaderCellContent<TData> & {
|
|
36
|
+
caption: () => any;
|
|
37
|
+
summary: () => any;
|
|
38
|
+
}>;
|
|
24
39
|
emit: any;
|
|
25
40
|
}>) => globalThis.VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
26
41
|
[key: string]: any;
|
|
27
42
|
}> & {
|
|
28
43
|
__ctx?: {
|
|
29
|
-
props:
|
|
44
|
+
props: {
|
|
45
|
+
loading?: boolean | undefined;
|
|
46
|
+
caption?: string | undefined;
|
|
47
|
+
data: TData[];
|
|
48
|
+
summary?: string | undefined;
|
|
49
|
+
perPage?: number | undefined;
|
|
50
|
+
currentPage?: number | undefined;
|
|
51
|
+
perPageOptions?: number[] | undefined;
|
|
52
|
+
selectable?: boolean | undefined;
|
|
53
|
+
itemValue?: string | undefined;
|
|
54
|
+
columnHeaders: TColumn[];
|
|
55
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
|
|
30
56
|
expose(exposed: {}): void;
|
|
31
57
|
attrs: any;
|
|
32
|
-
slots:
|
|
58
|
+
slots: Readonly<import("./types").SlotHeaderCell<TData> & import("./types").SlotHeaderCellContent<TData> & {
|
|
59
|
+
caption: () => any;
|
|
60
|
+
summary: () => any;
|
|
61
|
+
}>;
|
|
33
62
|
emit: any;
|
|
34
63
|
} | undefined;
|
|
35
64
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DeepKeys } from './Utils';
|
|
1
2
|
export type SortOrder = 'ascending' | 'descending' | null;
|
|
2
3
|
export type FiltrableColumnHeaderBase = {
|
|
3
4
|
filterable?: boolean;
|
|
@@ -22,7 +23,7 @@ export type SortableColumnHeader = SortableColumnHeaderBase & {
|
|
|
22
23
|
defaultSortOrder?: SortOrder;
|
|
23
24
|
};
|
|
24
25
|
export type ColumnHeaderBase<TData extends Record<string, unknown>> = FiltrableColumnHeaderBase & SortableColumnHeaderBase & {
|
|
25
|
-
key:
|
|
26
|
+
key: string;
|
|
26
27
|
label: string;
|
|
27
28
|
children?: ColumnHeaderBase<TData>[];
|
|
28
29
|
align?: 'left' | 'center' | 'right';
|
|
@@ -34,17 +35,21 @@ export type ColumnHeaderBase<TData extends Record<string, unknown>> = FiltrableC
|
|
|
34
35
|
resizable?: boolean;
|
|
35
36
|
showOverflowTooltip?: boolean;
|
|
36
37
|
};
|
|
37
|
-
export type ColumnHeader = ColumnHeaderBase<{
|
|
38
|
-
id: any;
|
|
39
|
-
}> & FiltrableColumnHeader & SortableColumnHeader & {
|
|
38
|
+
export type ColumnHeader = ColumnHeaderBase<{}> & {
|
|
40
39
|
rowSpan?: number;
|
|
41
40
|
colSpan?: number;
|
|
42
41
|
width?: string;
|
|
43
42
|
minWidth?: string;
|
|
44
43
|
scope?: string;
|
|
45
44
|
};
|
|
46
|
-
export type
|
|
47
|
-
[
|
|
45
|
+
export type SlotHeaderCell<T> = {
|
|
46
|
+
[K in DeepKeys<T> as K extends string ? `headerCell.${K}` : never]: (props: {
|
|
48
47
|
headerCell: ColumnHeader;
|
|
49
48
|
}) => any;
|
|
50
49
|
};
|
|
50
|
+
export type SlotHeaderCellContent<T> = {
|
|
51
|
+
[K in DeepKeys<T> as K extends string ? `headerCellContent.${K}` : never]: (props: {
|
|
52
|
+
headerCellContent: ColumnHeader;
|
|
53
|
+
}) => any;
|
|
54
|
+
};
|
|
55
|
+
export type SlotHeader<T> = SlotHeaderCell<T> & SlotHeaderCellContent<T>;
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
export type DeepKeys<T> = T extends object ? {
|
|
2
2
|
[K in keyof T]: K | DeepKeys<T[K]>;
|
|
3
3
|
}[keyof T] : never;
|
|
4
|
+
export type Prefix<T extends object, P extends string> = {
|
|
5
|
+
[key in keyof T as `${P}${string & key}`]: T[key];
|
|
6
|
+
};
|
|
7
|
+
export type DeepKeyValues<T extends readonly object[]> = {
|
|
8
|
+
[K in keyof T]: T[K] extends {
|
|
9
|
+
key: infer U;
|
|
10
|
+
} ? U extends string ? T[K] extends {
|
|
11
|
+
children: infer C;
|
|
12
|
+
} ? C extends readonly object[] ? U | DeepKeyValues<C> : never : U : never : never;
|
|
13
|
+
}[number];
|
|
@@ -24,7 +24,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
24
24
|
};
|
|
25
25
|
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
26
26
|
"update:modelValue": (value: OptionValue) => void;
|
|
27
|
-
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<
|
|
27
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
|
|
28
28
|
label: {
|
|
29
29
|
type: globalThis.PropType<string>;
|
|
30
30
|
required: true;
|
|
@@ -2,4 +2,5 @@ import { ColumnHeader } from '../types';
|
|
|
2
2
|
export declare function depthCount(headers: ColumnHeader[]): number;
|
|
3
3
|
export declare function leafCount(headers: ColumnHeader[]): number;
|
|
4
4
|
export declare function flatHeadersToRows(headers: ColumnHeader[], depth: number, rows?: ColumnHeader[][], currentRow?: number, level?: number): ColumnHeader[][];
|
|
5
|
-
export declare function getHeaderKeys(headers:
|
|
5
|
+
export declare function getHeaderKeys<T extends ColumnHeader>(headers: T[], keysPath?: string, keys?: string[]): string[];
|
|
6
|
+
export declare function defineColumnHeaders(headers: any[]): ColumnHeader[];
|
package/dist/data/product.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
[k in DeepKeys<DataItem>]: any;
|
|
4
|
-
};
|
|
5
|
-
export declare const headers: ColumnHeaderBase<FlattenData<(typeof data)[0]>>[];
|
|
1
|
+
import { ColumnHeader } from '../components/core/VueyeTable';
|
|
2
|
+
export declare const headers: ColumnHeader[];
|
|
6
3
|
export declare const data: {
|
|
7
4
|
id: number;
|
|
8
5
|
product: string;
|
|
@@ -15,4 +12,3 @@ export declare const data: {
|
|
|
15
12
|
'2023': number;
|
|
16
13
|
};
|
|
17
14
|
}[];
|
|
18
|
-
export {};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.pagination__wrapper[data-v-d06f6d12]{display:flex;align-items:center;-moz-column-gap:.75rem;column-gap:.75rem}.pagination__details[data-v-d06f6d12]{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}[data-v-d06f6d12]:is(.dark .pagination__details){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.pagination__btn-list[data-v-d06f6d12]{display:flex}.pagination__btn[data-v-d06f6d12]{display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(186 227 253 / var(--tw-border-opacity));background-color:transparent;padding:.5rem}.pagination__btn[data-v-d06f6d12]:disabled{cursor:not-allowed;opacity:.5}[data-v-d06f6d12]:is(.dark .pagination__btn){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity))}.pagination__btn--current[data-v-d06f6d12]{--tw-bg-opacity: 1;background-color:rgb(186 227 253 / var(--tw-bg-opacity))}[data-v-d06f6d12]:is(.dark .pagination__btn--current){--tw-bg-opacity: 1;background-color:rgb(6 83 134 / var(--tw-bg-opacity))}table{min-width:800px;border-collapse:collapse;border-radius:.25rem!important;border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));font-size:.875rem;line-height:1.25rem;letter-spacing:.025em}th{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(224 241 254 / var(--tw-bg-opacity));padding:.5rem 1rem}:is(.dark th){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}td{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));padding:.5rem 1rem}:is(.dark td){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity))}table{text-align:center}tr:nth-child(2n) td{--tw-bg-opacity: 1;background-color:rgb(224 241 254 / var(--tw-bg-opacity))}:is(.dark tr:nth-child(2n) td){--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}tr:nth-child(odd) td{--tw-bg-opacity: 1;background-color:rgb(240 248 255 / var(--tw-bg-opacity))}:is(.dark tr:nth-child(odd) td){--tw-bg-opacity: 1;background-color:rgb(11 69 111 / var(--tw-bg-opacity))}caption{padding:.5rem}.table__wrapper{display:flex;width:-moz-max-content;width:max-content;flex-direction:column}.table__pagination-wrapper{display:flex;justify-content:flex-end;padding-top:1rem;padding-bottom:1rem}
|