@aiao/rxdb-query-builder-vue 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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/FieldSelector/FieldSelector.vue.d.ts +15 -0
- package/dist/FieldSelector/FieldSelector.vue.d.ts.map +1 -0
- package/dist/OperatorSelector/OperatorSelector.vue.d.ts +18 -0
- package/dist/OperatorSelector/OperatorSelector.vue.d.ts.map +1 -0
- package/dist/QueryBuilder/QueryBuilder.vue.d.ts +33 -0
- package/dist/QueryBuilder/QueryBuilder.vue.d.ts.map +1 -0
- package/dist/QueryGroup/QueryGroup.vue.d.ts +26 -0
- package/dist/QueryGroup/QueryGroup.vue.d.ts.map +1 -0
- package/dist/QueryRule/QueryRule.vue.d.ts +21 -0
- package/dist/QueryRule/QueryRule.vue.d.ts.map +1 -0
- package/dist/SubqueryBuilder/SubqueryBuilder.vue.d.ts +33 -0
- package/dist/SubqueryBuilder/SubqueryBuilder.vue.d.ts.map +1 -0
- package/dist/ValueInput/ValueInput.vue.d.ts +28 -0
- package/dist/ValueInput/ValueInput.vue.d.ts.map +1 -0
- package/dist/composables/useQueryBuilder.d.ts +126 -0
- package/dist/composables/useQueryBuilder.d.ts.map +1 -0
- package/dist/composables/useSchemaFromEntity.d.ts +61 -0
- package/dist/composables/useSchemaFromEntity.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13911 -0
- package/package.json +38 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Aiao Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# rxdb-query-builder-vue
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FieldMetadata } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Props
|
|
4
|
+
*/
|
|
5
|
+
interface Props {
|
|
6
|
+
fields: FieldMetadata[];
|
|
7
|
+
selectedField: string;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
|
+
change: (field: string) => any;
|
|
11
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
12
|
+
onChange?: ((field: string) => any) | undefined;
|
|
13
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
export default _default;
|
|
15
|
+
//# sourceMappingURL=FieldSelector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldSelector.vue.d.ts","sourceRoot":"","sources":["../../src/FieldSelector/FieldSelector.vue"],"names":[],"mappings":"AAsGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAK9D;;GAEG;AACH,UAAU,KAAK;IACb,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;;;;;;AAiKD,wBAQG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FieldMetadata } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Props
|
|
4
|
+
*/
|
|
5
|
+
interface Props {
|
|
6
|
+
/** @deprecated 使用 field 代替 */
|
|
7
|
+
type?: string;
|
|
8
|
+
/** 字段元数据(包含 nullable 等信息) */
|
|
9
|
+
field?: FieldMetadata;
|
|
10
|
+
selectedOperator: string;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
13
|
+
change: (operator: string) => any;
|
|
14
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
15
|
+
onChange?: ((operator: string) => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
export default _default;
|
|
18
|
+
//# sourceMappingURL=OperatorSelector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperatorSelector.vue.d.ts","sourceRoot":"","sources":["../../src/OperatorSelector/OperatorSelector.vue"],"names":[],"mappings":"AAAA,OAqDO,EAA8B,KAAK,aAAa,EAAqB,MAAM,0BAA0B,CAAC;AAI7G;;GAEG;AACH,UAAU,KAAK;IACb,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;;;;;;AA2FD,wBAQG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ValidationError } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
import { UseQueryBuilderOptions } from '../composables/useQueryBuilder';
|
|
3
|
+
declare const _default: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
4
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
5
|
+
readonly onQueryChange?: ((query: {
|
|
6
|
+
combinator: "and" | "or";
|
|
7
|
+
rules: unknown[];
|
|
8
|
+
}) => any) | undefined;
|
|
9
|
+
readonly onValidationChange?: ((result: {
|
|
10
|
+
valid: boolean;
|
|
11
|
+
errors: ValidationError[];
|
|
12
|
+
}) => any) | undefined;
|
|
13
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onQueryChange" | "onValidationChange"> & (UseQueryBuilderOptions<T> & {
|
|
14
|
+
class?: string;
|
|
15
|
+
}) & Partial<{}>> & import('vue').PublicProps;
|
|
16
|
+
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
|
|
17
|
+
attrs: any;
|
|
18
|
+
slots: {};
|
|
19
|
+
emit: ((evt: "queryChange", query: {
|
|
20
|
+
combinator: "and" | "or";
|
|
21
|
+
rules: unknown[];
|
|
22
|
+
}) => void) & ((evt: "validationChange", result: {
|
|
23
|
+
valid: boolean;
|
|
24
|
+
errors: ValidationError[];
|
|
25
|
+
}) => void);
|
|
26
|
+
}>) => import('vue').VNode & {
|
|
27
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
28
|
+
};
|
|
29
|
+
export default _default;
|
|
30
|
+
type __VLS_PrettifyLocal<T> = {
|
|
31
|
+
[K in keyof T]: T[K];
|
|
32
|
+
} & {};
|
|
33
|
+
//# sourceMappingURL=QueryBuilder.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBuilder.vue.d.ts","sourceRoot":"","sources":["../../src/QueryBuilder/QueryBuilder.vue"],"names":[],"mappings":"AA4HA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;yBAG7E,CAAC,SAAS,MAAM,EAChC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,eAAe,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjE;WA4MO,mBAAmB,CAAC;;wBApMS,KAAK,GAAG,IAAI;mBAAS,OAAO,EAAE;;;mBAC7B,OAAO;oBAAU,eAAe,EAAE;;;gBARf,MAAM;oBA2M+B,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;oBAtM0B,KAAK,GAAG,IAAI;eAAS,OAAO,EAAE;;eAC7B,OAAO;gBAAU,eAAe,EAAE;;EAyMpE,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AAvNzE,wBAuN4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FieldMetadata, QueryBuilderRuleGroup } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
declare const _default: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
4
|
+
readonly onAddRule?: ((parentId: string | undefined, rule: Omit<any, "id">) => any) | undefined;
|
|
5
|
+
readonly onAddGroup?: ((parentId: string) => any) | undefined;
|
|
6
|
+
readonly onRemove?: ((id: string) => any) | undefined;
|
|
7
|
+
readonly onUpdateRule?: ((id: string, updates: any) => any) | undefined;
|
|
8
|
+
readonly onUpdateCombinator?: ((groupId: string, combinator: "and" | "or") => any) | undefined;
|
|
9
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onAddRule" | "onAddGroup" | "onRemove" | "onUpdateRule" | "onUpdateCombinator"> & {
|
|
10
|
+
group: QueryBuilderRuleGroup<T>;
|
|
11
|
+
fields: FieldMetadata[];
|
|
12
|
+
depth: number;
|
|
13
|
+
maxDepth: number;
|
|
14
|
+
} & Partial<{}>> & import('vue').PublicProps;
|
|
15
|
+
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
|
|
16
|
+
attrs: any;
|
|
17
|
+
slots: {};
|
|
18
|
+
emit: ((evt: "addRule", parentId: string | undefined, rule: Omit<any, "id">) => void) & ((evt: "addGroup", parentId: string) => void) & ((evt: "remove", id: string) => void) & ((evt: "updateRule", id: string, updates: any) => void) & ((evt: "updateCombinator", groupId: string, combinator: "and" | "or") => void);
|
|
19
|
+
}>) => import('vue').VNode & {
|
|
20
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_PrettifyLocal<T> = {
|
|
24
|
+
[K in keyof T]: T[K];
|
|
25
|
+
} & {};
|
|
26
|
+
//# sourceMappingURL=QueryGroup.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryGroup.vue.d.ts","sourceRoot":"","sources":["../../src/QueryGroup/QueryGroup.vue"],"names":[],"mappings":"AA0IA,OAAO,KAAK,EAAE,aAAa,EAAoB,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;yBAItF,CAAC,SAAS,MAAM,EAChC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,eAAe,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjE;WA8NO,mBAAmB,CAAC;;;;;;;eA5NnB,qBAAqB,CAAC,CAAC,CAAC;gBACvB,aAAa,EAAE;eAChB,MAAM;kBACH,MAAM;mBAyN4E,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;EAIP,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AAzOzE,wBAyO4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FieldMetadata } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
declare const _default: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
4
|
+
readonly onRemove?: (() => any) | undefined;
|
|
5
|
+
readonly onUpdate?: ((updates: any) => any) | undefined;
|
|
6
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onRemove" | "onUpdate"> & {
|
|
7
|
+
rule: any;
|
|
8
|
+
fields: FieldMetadata[];
|
|
9
|
+
} & Partial<{}>> & import('vue').PublicProps;
|
|
10
|
+
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
|
|
11
|
+
attrs: any;
|
|
12
|
+
slots: {};
|
|
13
|
+
emit: ((evt: "remove") => void) & ((evt: "update", updates: any) => void);
|
|
14
|
+
}>) => import('vue').VNode & {
|
|
15
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
16
|
+
};
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_PrettifyLocal<T> = {
|
|
19
|
+
[K in keyof T]: T[K];
|
|
20
|
+
} & {};
|
|
21
|
+
//# sourceMappingURL=QueryRule.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryRule.vue.d.ts","sourceRoot":"","sources":["../../src/QueryRule/QueryRule.vue"],"names":[],"mappings":"AA4FA,OAAO,KAAK,EAAE,aAAa,EAA2C,MAAM,0BAA0B,CAAC;yBAMtF,CAAC,SAAS,MAAM,EAChC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,eAAe,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjE;WAuLO,mBAAmB,CAAC;;;;;gBA7KlB,aAAa,EAAE;mBA6KqE,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;EAIP,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AAlMzE,wBAkM4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { FieldMetadata, QueryBuilderRuleGroup, ValidationError } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Props
|
|
4
|
+
*/
|
|
5
|
+
interface Props {
|
|
6
|
+
fields: FieldMetadata[];
|
|
7
|
+
initialQuery?: QueryBuilderRuleGroup<Record<string, unknown>>;
|
|
8
|
+
maxDepth?: number;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
|
+
queryChange: (query: {
|
|
12
|
+
combinator: "and" | "or";
|
|
13
|
+
rules: unknown[];
|
|
14
|
+
} | undefined) => any;
|
|
15
|
+
validationChange: (result: {
|
|
16
|
+
valid: boolean;
|
|
17
|
+
errors: ValidationError[];
|
|
18
|
+
}) => any;
|
|
19
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
20
|
+
onQueryChange?: ((query: {
|
|
21
|
+
combinator: "and" | "or";
|
|
22
|
+
rules: unknown[];
|
|
23
|
+
} | undefined) => any) | undefined;
|
|
24
|
+
onValidationChange?: ((result: {
|
|
25
|
+
valid: boolean;
|
|
26
|
+
errors: ValidationError[];
|
|
27
|
+
}) => any) | undefined;
|
|
28
|
+
}>, {
|
|
29
|
+
initialQuery: QueryBuilderRuleGroup<Record<string, unknown>>;
|
|
30
|
+
maxDepth: number;
|
|
31
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
32
|
+
export default _default;
|
|
33
|
+
//# sourceMappingURL=SubqueryBuilder.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubqueryBuilder.vue.d.ts","sourceRoot":"","sources":["../../src/SubqueryBuilder/SubqueryBuilder.vue"],"names":[],"mappings":"AAAA,OAiGO,KAAK,EAAE,aAAa,EAAoB,qBAAqB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIxH;;GAEG;AACH,UAAU,KAAK;IACb,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;oBASoC,KAAK,GAAG,IAAI;eAAS,OAAO,EAAE;;;eAC7B,OAAO;gBAAU,eAAe,EAAE;;;;oBADnC,KAAK,GAAG,IAAI;eAAS,OAAO,EAAE;;;eAC7B,OAAO;gBAAU,eAAe,EAAE;;;kBAZvD,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;cAClD,MAAM;;AA8JnB,wBASG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FieldMetadata, QueryBuilderRuleGroup } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Props
|
|
4
|
+
*/
|
|
5
|
+
interface Props {
|
|
6
|
+
fieldType: string;
|
|
7
|
+
operator: string;
|
|
8
|
+
value: unknown;
|
|
9
|
+
/** 枚举选项(可选) */
|
|
10
|
+
enumOptions?: unknown[];
|
|
11
|
+
/** 关系字段的目标实体字段列表(用于 EXISTS 子查询) */
|
|
12
|
+
relationFields?: FieldMetadata[];
|
|
13
|
+
/** EXISTS/NOT EXISTS 的子查询条件 */
|
|
14
|
+
where?: QueryBuilderRuleGroup<Record<string, unknown>>;
|
|
15
|
+
}
|
|
16
|
+
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
17
|
+
change: (value: unknown) => any;
|
|
18
|
+
whereChange: (where: QueryBuilderRuleGroup<Record<string, unknown>> | undefined) => any;
|
|
19
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
20
|
+
onChange?: ((value: unknown) => any) | undefined;
|
|
21
|
+
onWhereChange?: ((where: QueryBuilderRuleGroup<Record<string, unknown>> | undefined) => any) | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
relationFields: FieldMetadata[];
|
|
24
|
+
enumOptions: unknown[];
|
|
25
|
+
where: QueryBuilderRuleGroup<Record<string, unknown>>;
|
|
26
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
27
|
+
export default _default;
|
|
28
|
+
//# sourceMappingURL=ValueInput.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValueInput.vue.d.ts","sourceRoot":"","sources":["../../src/ValueInput/ValueInput.vue"],"names":[],"mappings":"AAwUA,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AASlC;;GAEG;AACH,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe;IACf,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,mCAAmC;IACnC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;;;;;;;;oBAHkB,aAAa,EAAE;iBAFlB,OAAO,EAAE;WAIf,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;AAgnBxD,wBAQG"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { FieldMetadata, QueryBuilderRule, QueryBuilderRuleGroup, QueryBuilderService, SchemaInfo, ValidationResult } from '../../../rxdb-query-builder/src/index.ts';
|
|
2
|
+
import { ComputedRef, Ref, ShallowRef } from 'vue';
|
|
3
|
+
/**
|
|
4
|
+
* useQueryBuilder Composable 选项
|
|
5
|
+
*/
|
|
6
|
+
export interface UseQueryBuilderOptions<T extends object> {
|
|
7
|
+
/**
|
|
8
|
+
* Schema 信息
|
|
9
|
+
*/
|
|
10
|
+
schema?: SchemaInfo;
|
|
11
|
+
/**
|
|
12
|
+
* 字段列表(直接传入)
|
|
13
|
+
*/
|
|
14
|
+
fields?: FieldMetadata[];
|
|
15
|
+
/**
|
|
16
|
+
* 初始查询
|
|
17
|
+
*/
|
|
18
|
+
initialQuery?: {
|
|
19
|
+
combinator: 'and' | 'or';
|
|
20
|
+
rules: Array<unknown>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* 最大嵌套层级
|
|
24
|
+
*/
|
|
25
|
+
maxDepth?: number;
|
|
26
|
+
/**
|
|
27
|
+
* 查询变更回调
|
|
28
|
+
*/
|
|
29
|
+
onQueryChange?: (query: {
|
|
30
|
+
combinator: 'and' | 'or';
|
|
31
|
+
rules: Array<unknown>;
|
|
32
|
+
}) => void;
|
|
33
|
+
/**
|
|
34
|
+
* 验证变更回调
|
|
35
|
+
*/
|
|
36
|
+
onValidationChange?: (result: ValidationResult) => void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* useQueryBuilder Composable 返回值
|
|
40
|
+
*/
|
|
41
|
+
export interface UseQueryBuilderReturn<T extends object> {
|
|
42
|
+
/**
|
|
43
|
+
* 根规则组
|
|
44
|
+
*/
|
|
45
|
+
rootGroup: ShallowRef<QueryBuilderRuleGroup<T> | undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* 验证结果
|
|
48
|
+
*/
|
|
49
|
+
validation: ShallowRef<ValidationResult | undefined>;
|
|
50
|
+
/**
|
|
51
|
+
* 字段列表
|
|
52
|
+
*/
|
|
53
|
+
fields: Ref<FieldMetadata[]>;
|
|
54
|
+
/**
|
|
55
|
+
* 是否有规则
|
|
56
|
+
*/
|
|
57
|
+
hasRules: ComputedRef<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* 服务实例(高级用法)
|
|
60
|
+
*/
|
|
61
|
+
service: QueryBuilderService<T>;
|
|
62
|
+
/**
|
|
63
|
+
* 添加规则
|
|
64
|
+
*/
|
|
65
|
+
addRule: (parentId: string | undefined, rule: Omit<QueryBuilderRule<T>, 'id'>) => void;
|
|
66
|
+
/**
|
|
67
|
+
* 添加分组
|
|
68
|
+
*/
|
|
69
|
+
addGroup: (parentId: string) => void;
|
|
70
|
+
/**
|
|
71
|
+
* 删除规则或组
|
|
72
|
+
*/
|
|
73
|
+
remove: (id: string) => void;
|
|
74
|
+
/**
|
|
75
|
+
* 更新规则
|
|
76
|
+
*/
|
|
77
|
+
updateRule: (id: string, updates: Partial<QueryBuilderRule<T>>) => void;
|
|
78
|
+
/**
|
|
79
|
+
* 更新组合器
|
|
80
|
+
*/
|
|
81
|
+
updateCombinator: (groupId: string, combinator: 'and' | 'or') => void;
|
|
82
|
+
/**
|
|
83
|
+
* 清空所有规则
|
|
84
|
+
*/
|
|
85
|
+
clear: () => void;
|
|
86
|
+
/**
|
|
87
|
+
* 加载查询(用于重置或切换示例)
|
|
88
|
+
*/
|
|
89
|
+
loadQuery: (query: {
|
|
90
|
+
combinator: 'and' | 'or';
|
|
91
|
+
rules: Array<unknown>;
|
|
92
|
+
} | null) => void;
|
|
93
|
+
/**
|
|
94
|
+
* 导出为 RxDB 查询
|
|
95
|
+
*/
|
|
96
|
+
toRxDBQuery: () => {
|
|
97
|
+
combinator: 'and' | 'or';
|
|
98
|
+
rules: Array<unknown>;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Vue Composable: 管理查询构建器状态
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```vue
|
|
106
|
+
* <script setup lang="ts">
|
|
107
|
+
* const {
|
|
108
|
+
* rootGroup,
|
|
109
|
+
* fields,
|
|
110
|
+
* addRule,
|
|
111
|
+
* addGroup,
|
|
112
|
+
* remove,
|
|
113
|
+
* updateRule,
|
|
114
|
+
* clear
|
|
115
|
+
* } = useQueryBuilder<User>({
|
|
116
|
+
* fields: [
|
|
117
|
+
* { name: 'name', displayName: 'Name', type: 'string' },
|
|
118
|
+
* { name: 'age', displayName: 'Age', type: 'number' }
|
|
119
|
+
* ],
|
|
120
|
+
* onQueryChange: (query) => console.log('Query:', query)
|
|
121
|
+
* });
|
|
122
|
+
* </script>
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function useQueryBuilder<T extends object>(options?: UseQueryBuilderOptions<T>): UseQueryBuilderReturn<T>;
|
|
126
|
+
//# sourceMappingURL=useQueryBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useQueryBuilder.d.ts","sourceRoot":"","sources":["../../src/composables/useQueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { EntityMetadata } from '../../../rxdb/src/index.ts';
|
|
2
|
+
import { FieldMetadata, SchemaParserOptions } from '../../../rxdb-query-builder/src/index.ts';
|
|
3
|
+
import { ComputedRef, MaybeRef } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* useSchemaFromEntity Composable 选项
|
|
6
|
+
*/
|
|
7
|
+
export interface UseSchemaFromEntityOptions extends SchemaParserOptions {
|
|
8
|
+
/**
|
|
9
|
+
* 是否启用(用于条件渲染)
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
enabled?: MaybeRef<boolean>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* useSchemaFromEntity Composable 返回值
|
|
16
|
+
*/
|
|
17
|
+
export interface UseSchemaFromEntityReturn {
|
|
18
|
+
/**
|
|
19
|
+
* 解析后的字段元数据
|
|
20
|
+
*/
|
|
21
|
+
fields: ComputedRef<FieldMetadata[]>;
|
|
22
|
+
/**
|
|
23
|
+
* 是否有字段
|
|
24
|
+
*/
|
|
25
|
+
hasFields: ComputedRef<boolean>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 从 EntityMetadata 提取字段元数据的 Composable
|
|
29
|
+
*
|
|
30
|
+
* 该 Composable 封装了 createSchemaFromEntity 工厂函数,提供响应式的字段解析能力。
|
|
31
|
+
* 当 metadata 或 options 变化时,会自动重新解析字段。
|
|
32
|
+
*
|
|
33
|
+
* @param metadata - RxDB 实体元数据(支持 ref)
|
|
34
|
+
* @param options - 解析器选项
|
|
35
|
+
* @returns 字段元数据和辅助属性
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```vue
|
|
39
|
+
* <script setup lang="ts">
|
|
40
|
+
* import { useSchemaFromEntity, useQueryBuilder } from '@aiao/rxdb-query-builder-vue';
|
|
41
|
+
*
|
|
42
|
+
* // 基础用法
|
|
43
|
+
* const { fields } = useSchemaFromEntity(userMetadata);
|
|
44
|
+
*
|
|
45
|
+
* // 包含外键
|
|
46
|
+
* const { fields } = useSchemaFromEntity(userMetadata, {
|
|
47
|
+
* includeForeignKeys: true
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* // 响应式 metadata
|
|
51
|
+
* const metadata = ref<EntityMetadata | null>(null);
|
|
52
|
+
* const { fields, hasFields } = useSchemaFromEntity(metadata);
|
|
53
|
+
*
|
|
54
|
+
* // 在 QueryBuilder 中使用
|
|
55
|
+
* const { fields } = useSchemaFromEntity(orderMetadata);
|
|
56
|
+
* const { rootGroup, addRule } = useQueryBuilder<Order>({ fields: fields.value });
|
|
57
|
+
* </script>
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare function useSchemaFromEntity(metadata: MaybeRef<EntityMetadata | undefined | null>, options?: UseSchemaFromEntityOptions): UseSchemaFromEntityReturn;
|
|
61
|
+
//# sourceMappingURL=useSchemaFromEntity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSchemaFromEntity.d.ts","sourceRoot":"","sources":["../../src/composables/useSchemaFromEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAA0B,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAChH,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAW,MAAM,KAAK,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE;;;OAGG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI,CAAC,EACrD,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CAoB3B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { default as FieldSelector } from './FieldSelector/FieldSelector.vue';
|
|
2
|
+
export { default as OperatorSelector } from './OperatorSelector/OperatorSelector.vue';
|
|
3
|
+
export { default as QueryBuilder } from './QueryBuilder/QueryBuilder.vue';
|
|
4
|
+
export { default as QueryGroup } from './QueryGroup/QueryGroup.vue';
|
|
5
|
+
export { default as QueryRule } from './QueryRule/QueryRule.vue';
|
|
6
|
+
export { default as SubqueryBuilder } from './SubqueryBuilder/SubqueryBuilder.vue';
|
|
7
|
+
export { default as ValueInput } from './ValueInput/ValueInput.vue';
|
|
8
|
+
export { useQueryBuilder } from './composables/useQueryBuilder';
|
|
9
|
+
export { useSchemaFromEntity } from './composables/useSchemaFromEntity';
|
|
10
|
+
export type { UseQueryBuilderOptions, UseQueryBuilderReturn } from './composables/useQueryBuilder';
|
|
11
|
+
export type { UseSchemaFromEntityOptions, UseSchemaFromEntityReturn } from './composables/useSchemaFromEntity';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACnG,YAAY,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC"}
|