@ethan1979/jf-lib 0.0.32
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/.vscode/extensions.json +3 -0
- package/README.md +3 -0
- package/babel.config.js +3 -0
- package/dist/App.vue.d.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/v-table/components/content/components/operations.vue.d.ts +47 -0
- package/dist/components/v-table/components/content/index.vue.d.ts +13 -0
- package/dist/components/v-table/components/modal-form.vue.d.ts +30 -0
- package/dist/components/v-table/components/search.vue.d.ts +12 -0
- package/dist/components/v-table/components/toolbar.vue.d.ts +11 -0
- package/dist/components/v-table/get-render-function.d.ts +6 -0
- package/dist/components/v-table/hooks.d.ts +80 -0
- package/dist/components/v-table/index.vue.d.ts +17 -0
- package/dist/components/v-table/util.d.ts +2 -0
- package/dist/favicon.ico +0 -0
- package/dist/jf-lib.es.js +6553 -0
- package/dist/jf-lib.umd.js +27 -0
- package/dist/main.d.ts +1 -0
- package/dist/style.css +1 -0
- package/dist/types/global.d.ts +43 -0
- package/dist/utils/utils.d.ts +11 -0
- package/docs/superpowers/plans/2026-09-19-collapsible-table-search.md +194 -0
- package/docs/superpowers/specs/2026-09-19-collapsible-table-search-design.md +80 -0
- package/index.html +13 -0
- package/package.json +31 -0
- package/public/favicon.ico +0 -0
- package/scripts/check-collapsible-search.mjs +67 -0
- package/src/App.vue +98 -0
- package/src/assets/logo.png +0 -0
- package/src/components/index.ts +18 -0
- package/src/components/v-table/components/content/components/operations.vue +119 -0
- package/src/components/v-table/components/content/index.vue +295 -0
- package/src/components/v-table/components/modal-form.vue +111 -0
- package/src/components/v-table/components/search.vue +181 -0
- package/src/components/v-table/components/toolbar.vue +121 -0
- package/src/components/v-table/get-render-function.ts +15 -0
- package/src/components/v-table/hooks.ts +128 -0
- package/src/components/v-table/index.vue +338 -0
- package/src/components/v-table/typings.d.ts +164 -0
- package/src/components/v-table/util.ts +14 -0
- package/src/env.d.ts +12 -0
- package/src/main.ts +13 -0
- package/src/types/global.ts +48 -0
- package/src/utils/utils.ts +77 -0
- package/tsconfig.json +38 -0
- package/tsconfig.node.json +8 -0
- package/vite.config.ts +47 -0
package/README.md
ADDED
package/babel.config.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as VTable } from './v-table/index.vue';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CellRenderFN, OperationsButtonConfig, TableConfig } from '@/components/v-table/typings';
|
|
2
|
+
import { BaseObj } from '../../../../../types/global';
|
|
3
|
+
import { TableColumnData } from '@arco-design/web-vue';
|
|
4
|
+
export interface ColumnData {
|
|
5
|
+
record: BaseObj;
|
|
6
|
+
column: TableColumnData;
|
|
7
|
+
rowIndex: number;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
10
|
+
config: TableConfig;
|
|
11
|
+
columnData: ColumnData;
|
|
12
|
+
extend?: CellRenderFN<BaseObj> | undefined;
|
|
13
|
+
extendPostion?: "center" | "left" | "right" | undefined;
|
|
14
|
+
updateButton?: OperationsButtonConfig | undefined;
|
|
15
|
+
deleteButton?: OperationsButtonConfig | undefined;
|
|
16
|
+
}>, {
|
|
17
|
+
extendPostion: string;
|
|
18
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("updateData" | "deleteData")[], "updateData" | "deleteData", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
19
|
+
config: TableConfig;
|
|
20
|
+
columnData: ColumnData;
|
|
21
|
+
extend?: CellRenderFN<BaseObj> | undefined;
|
|
22
|
+
extendPostion?: "center" | "left" | "right" | undefined;
|
|
23
|
+
updateButton?: OperationsButtonConfig | undefined;
|
|
24
|
+
deleteButton?: OperationsButtonConfig | undefined;
|
|
25
|
+
}>, {
|
|
26
|
+
extendPostion: string;
|
|
27
|
+
}>>> & {
|
|
28
|
+
onUpdateData?: ((...args: any[]) => any) | undefined;
|
|
29
|
+
onDeleteData?: ((...args: any[]) => any) | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
extendPostion: "center" | "left" | "right";
|
|
32
|
+
}>;
|
|
33
|
+
export default _default;
|
|
34
|
+
declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
35
|
+
declare type __VLS_TypePropsToRuntimeProps<T> = {
|
|
36
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
37
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
38
|
+
} : {
|
|
39
|
+
type: import('vue').PropType<T[K]>;
|
|
40
|
+
required: true;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
declare type __VLS_WithDefaults<P, D> = {
|
|
44
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? P[K] & {
|
|
45
|
+
default: D[K];
|
|
46
|
+
} : P[K];
|
|
47
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PropType } from "vue";
|
|
2
|
+
import { TableConfig } from "../../typings";
|
|
3
|
+
import { BaseObj } from "../../../../types/global";
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
config: {
|
|
6
|
+
type: PropType<TableConfig<BaseObj>>;
|
|
7
|
+
};
|
|
8
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
9
|
+
config: {
|
|
10
|
+
type: PropType<TableConfig<BaseObj>>;
|
|
11
|
+
};
|
|
12
|
+
}>>, {}>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseObj } from '../../../types/global';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
|
|
3
|
+
type: 'Add' | 'Update';
|
|
4
|
+
visible: boolean;
|
|
5
|
+
title: string;
|
|
6
|
+
renderParams?: BaseObj | undefined;
|
|
7
|
+
}>, {
|
|
8
|
+
formData: import("vue").Ref<{
|
|
9
|
+
[x: string]: any;
|
|
10
|
+
}>;
|
|
11
|
+
resetFormData: () => void;
|
|
12
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:visible" | "okEvent")[], "update:visible" | "okEvent", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
13
|
+
type: 'Add' | 'Update';
|
|
14
|
+
visible: boolean;
|
|
15
|
+
title: string;
|
|
16
|
+
renderParams?: BaseObj | undefined;
|
|
17
|
+
}>>> & {
|
|
18
|
+
"onUpdate:visible"?: ((...args: any[]) => any) | undefined;
|
|
19
|
+
onOkEvent?: ((...args: any[]) => any) | undefined;
|
|
20
|
+
}, {}>;
|
|
21
|
+
export default _default;
|
|
22
|
+
declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
23
|
+
declare type __VLS_TypePropsToRuntimeProps<T> = {
|
|
24
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
25
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
26
|
+
} : {
|
|
27
|
+
type: import('vue').PropType<T[K]>;
|
|
28
|
+
required: true;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { TableConfig } from '../typings';
|
|
3
|
+
declare const _default: import("vue").DefineComponent<{
|
|
4
|
+
config: PropType<TableConfig<import("./modal-form.vue.__VLS_script").__VLS_types_BaseObj>>;
|
|
5
|
+
}, {
|
|
6
|
+
reset: () => void;
|
|
7
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "search"[], "search", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
8
|
+
config: PropType<TableConfig<import("./modal-form.vue.__VLS_script").__VLS_types_BaseObj>>;
|
|
9
|
+
}>> & {
|
|
10
|
+
onSearch?: ((...args: any[]) => any) | undefined;
|
|
11
|
+
}, {}>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PropType } from "vue";
|
|
2
|
+
import { TableConfig } from "../typings";
|
|
3
|
+
declare const _default: import("vue").DefineComponent<{
|
|
4
|
+
config: PropType<TableConfig<import("./modal-form.vue.__VLS_script").__VLS_types_BaseObj>>;
|
|
5
|
+
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("add" | "batchDelete")[], "add" | "batchDelete", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
6
|
+
config: PropType<TableConfig<import("./modal-form.vue.__VLS_script").__VLS_types_BaseObj>>;
|
|
7
|
+
}>> & {
|
|
8
|
+
onAdd?: ((...args: any[]) => any) | undefined;
|
|
9
|
+
onBatchDelete?: ((...args: any[]) => any) | undefined;
|
|
10
|
+
}, {}>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormRender } from './typings';
|
|
2
|
+
import { BaseObj } from '../../types/global';
|
|
3
|
+
declare const _default: (render: FormRender, renderParams?: BaseObj | undefined) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BaseObj } from '../../types/global';
|
|
2
|
+
import { Columns } from './typings';
|
|
3
|
+
export declare function useTableForm(columns: Array<Columns> | undefined, type: 'Search' | 'Update' | 'Add'): {
|
|
4
|
+
resetFormData(): void;
|
|
5
|
+
form: import("vue").Ref<{
|
|
6
|
+
formItem: {
|
|
7
|
+
title: string;
|
|
8
|
+
dataIndex: string;
|
|
9
|
+
tooltip?: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
render: ((params: BaseObj | undefined) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}>) | {
|
|
14
|
+
type: import("./typings").FormRenderType;
|
|
15
|
+
props: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
searchColSpan?: number | {
|
|
20
|
+
span: number;
|
|
21
|
+
formItem?: {
|
|
22
|
+
labelColSpan?: number | undefined;
|
|
23
|
+
wrapperColSpan?: number | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
}[]>;
|
|
27
|
+
formData: import("vue").Ref<{
|
|
28
|
+
[x: string]: any;
|
|
29
|
+
}>;
|
|
30
|
+
defaultValues: import("vue").Ref<{
|
|
31
|
+
[x: string]: any;
|
|
32
|
+
}>;
|
|
33
|
+
rules: import("vue").Ref<{
|
|
34
|
+
[x: string]: {
|
|
35
|
+
type?: "string" | "number" | "boolean" | "object" | "array" | "email" | "url" | "ip" | undefined;
|
|
36
|
+
required?: boolean | undefined;
|
|
37
|
+
message?: string | undefined;
|
|
38
|
+
length?: number | undefined;
|
|
39
|
+
maxLength?: number | undefined;
|
|
40
|
+
minLength?: number | undefined;
|
|
41
|
+
match?: {
|
|
42
|
+
exec: (string: string) => RegExpExecArray | null;
|
|
43
|
+
test: (string: string) => boolean;
|
|
44
|
+
readonly source: string;
|
|
45
|
+
readonly global: boolean;
|
|
46
|
+
readonly ignoreCase: boolean;
|
|
47
|
+
readonly multiline: boolean;
|
|
48
|
+
lastIndex: number;
|
|
49
|
+
compile: (pattern: string, flags?: string | undefined) => RegExp;
|
|
50
|
+
readonly flags: string;
|
|
51
|
+
readonly sticky: boolean;
|
|
52
|
+
readonly unicode: boolean;
|
|
53
|
+
readonly dotAll: boolean;
|
|
54
|
+
[Symbol.match]: (string: string) => RegExpMatchArray | null;
|
|
55
|
+
[Symbol.replace]: {
|
|
56
|
+
(string: string, replaceValue: string): string;
|
|
57
|
+
(string: string, replacer: (substring: string, ...args: any[]) => string): string;
|
|
58
|
+
};
|
|
59
|
+
[Symbol.search]: (string: string) => number;
|
|
60
|
+
[Symbol.split]: (string: string, limit?: number | undefined) => string[];
|
|
61
|
+
[Symbol.matchAll]: (str: string) => IterableIterator<RegExpMatchArray>;
|
|
62
|
+
} | undefined;
|
|
63
|
+
uppercase?: boolean | undefined;
|
|
64
|
+
lowercase?: boolean | undefined;
|
|
65
|
+
min?: number | undefined;
|
|
66
|
+
max?: number | undefined;
|
|
67
|
+
equal?: number | undefined;
|
|
68
|
+
positive?: boolean | undefined;
|
|
69
|
+
negative?: boolean | undefined;
|
|
70
|
+
true?: boolean | undefined;
|
|
71
|
+
false?: boolean | undefined;
|
|
72
|
+
includes?: any[] | undefined;
|
|
73
|
+
deepEqual?: any;
|
|
74
|
+
empty?: boolean | undefined;
|
|
75
|
+
hasKeys?: string[] | undefined;
|
|
76
|
+
validator?: ((value: any, callback: (error?: string | undefined) => void) => void) | undefined;
|
|
77
|
+
}[];
|
|
78
|
+
}>;
|
|
79
|
+
hasTooltip: import("vue").Ref<boolean>;
|
|
80
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Ref, PropType } from "vue";
|
|
2
|
+
import { TableConfig } from "./typings";
|
|
3
|
+
import { BaseObj } from "../../types/global";
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
config: PropType<TableConfig<BaseObj>>;
|
|
6
|
+
}, {
|
|
7
|
+
contentRef: Ref<{
|
|
8
|
+
getTableHeight: () => number;
|
|
9
|
+
} | undefined>;
|
|
10
|
+
get: () => Promise<void>;
|
|
11
|
+
resetSearchParams: (() => void) | undefined;
|
|
12
|
+
setSelectedRowKeys: (keys: string[]) => void;
|
|
13
|
+
getSelectedRowKeys: () => string[];
|
|
14
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
config: PropType<TableConfig<BaseObj>>;
|
|
16
|
+
}>>, {}>;
|
|
17
|
+
export default _default;
|
package/dist/favicon.ico
ADDED
|
Binary file
|