awing-library 2.1.2-dev.6 → 2.1.2-dev.61
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/esm/AWING/DataGrid/interface.d.ts +1 -1
- package/dist/esm/AWING/DatePicker/types.d.ts +4 -2
- package/dist/esm/AWING/DateRangePicker/Container.d.ts +1 -1
- package/dist/esm/AWING/DropDownTreeSelect/components/TreeViewSearch.d.ts +10 -0
- package/dist/esm/AWING/DropDownTreeSelect/components/utils.d.ts +1 -0
- package/dist/esm/AWING/DropDownTreeSelect/index.d.ts +10 -0
- package/dist/esm/AWING/DropDownTreeSelect/type.d.ts +5 -0
- package/dist/esm/AWING/DropDownTreeSelect/utils.d.ts +16 -0
- package/dist/esm/AWING/PageManagement/interface.d.ts +1 -1
- package/dist/esm/AWING/TableEditable/interface.d.ts +5 -1
- package/dist/esm/Commons/Components/ClassicBaseDrawer.d.ts +1 -1
- package/dist/esm/Commons/Components/ClassicDrawer.d.ts +6 -3
- package/dist/esm/Commons/Components/Drawer.d.ts +9 -1
- package/dist/esm/Features/NOTIFICATION/FilterNotification/Constants.d.ts +6 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/Container.d.ts +2 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/CreateOrEdit.d.ts +2 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/Services.d.ts +35 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/context.d.ts +11 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/index.d.ts +8 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/types.d.ts +49 -0
- package/dist/esm/Features/NOTIFICATION/FilterNotification/utils.d.ts +7 -0
- package/dist/esm/Features/NOTIFICATION/NotificationConfig/Services.d.ts +5 -2
- package/dist/esm/Features/NOTIFICATION/NotificationConfig/types.d.ts +1 -0
- package/dist/esm/Features/NOTIFICATION/ObjectFilter/Services.d.ts +5 -5
- package/dist/esm/Features/NOTIFICATION/ObjectFilter/context.d.ts +0 -2
- package/dist/esm/Features/NOTIFICATION/ObjectFilter/index.d.ts +0 -1
- package/dist/esm/Features/NOTIFICATION/ObjectFilter/types.d.ts +1 -2
- package/dist/esm/Features/NOTIFICATION/ObjectFilter/utils.d.ts +1 -1
- package/dist/esm/Features/NOTIFICATION/SubscriptionConfig/Services.d.ts +5 -2
- package/dist/esm/Features/NOTIFICATION/SubscriptionConfig/types.d.ts +9 -8
- package/dist/esm/Features/NOTIFICATION/Template/Services.d.ts +11 -4
- package/dist/esm/Features/NOTIFICATION/Template/context.d.ts +0 -3
- package/dist/esm/Features/NOTIFICATION/Template/hooks/useCreateOrEdit.d.ts +5 -5
- package/dist/esm/Features/NOTIFICATION/Template/index.d.ts +1 -3
- package/dist/esm/Features/NOTIFICATION/Template/types.d.ts +5 -5
- package/dist/esm/Features/NOTIFICATION/components/TestingTool/types.d.ts +2 -0
- package/dist/esm/Features/NOTIFICATION/components/TestingTool/utils.d.ts +1 -0
- package/dist/esm/Features/NOTIFICATION/index.d.ts +1 -0
- package/dist/esm/Features/NOTIFICATION/types.d.ts +14 -0
- package/dist/esm/Features/SYSTEM/Directory/Services.d.ts +3 -2
- package/dist/esm/Features/SYSTEM/Directory/index.d.ts +1 -1
- package/dist/esm/Features/SYSTEM/Group/Services.d.ts +8 -6
- package/dist/esm/Features/SYSTEM/Group/types.d.ts +1 -0
- package/dist/esm/Features/SYSTEM/Role/Services.d.ts +8 -9
- package/dist/esm/Features/SYSTEM/Role/types.d.ts +1 -0
- package/dist/esm/Features/SYSTEM/RoleTag/Services.d.ts +8 -9
- package/dist/esm/Features/SYSTEM/RoleTag/types.d.ts +1 -0
- package/dist/esm/Features/SYSTEM/Schema/Atoms.d.ts +18 -3
- package/dist/esm/Features/SYSTEM/Schema/Services.d.ts +5 -8
- package/dist/esm/Features/SYSTEM/Schema/types.d.ts +1 -0
- package/dist/esm/Features/SYSTEM/Sharing/Types.d.ts +9 -5
- package/dist/esm/Features/SYSTEM/User/Services.d.ts +5 -2
- package/dist/esm/Features/SYSTEM/User/types.d.ts +1 -0
- package/dist/esm/Features/SYSTEM/Workflow/CreateOrEdit.d.ts +1 -1
- package/dist/esm/Features/SYSTEM/Workflow/container.d.ts +4 -2
- package/dist/esm/Features/SYSTEM/Workflow/index.d.ts +5 -3
- package/dist/esm/Features/SYSTEM/Workflow/types.d.ts +1 -0
- package/dist/esm/Features/types.d.ts +18 -0
- package/dist/esm/Helpers/index.d.ts +1 -0
- package/dist/esm/Helpers/number.d.ts +2 -1
- package/dist/esm/Helpers/query.d.ts +161 -0
- package/dist/esm/index.js +5556 -5001
- package/dist/esm/translate/resources/en/translation.json +7 -5
- package/dist/esm/translate/resources/id/translation.json +7 -5
- package/dist/esm/translate/resources/ja/translation.json +7 -5
- package/dist/esm/translate/resources/th/translation.json +7 -5
- package/dist/esm/translate/resources/vi/translation.json +10 -6
- package/dist/index.d.ts +297 -126
- package/package.json +1 -1
|
@@ -11,3 +11,17 @@ export type ObjectDataInputOfNotificationConfigDetailInput = {
|
|
|
11
11
|
key?: string | number;
|
|
12
12
|
value?: NotificationConfigDetailInput;
|
|
13
13
|
};
|
|
14
|
+
export type GraphQLQuery = {
|
|
15
|
+
id?: number;
|
|
16
|
+
name?: string;
|
|
17
|
+
baseObjectType?: string;
|
|
18
|
+
directoryPath?: string;
|
|
19
|
+
queryString?: string;
|
|
20
|
+
resultExpression?: string;
|
|
21
|
+
graphqlVariables?: {
|
|
22
|
+
id?: string;
|
|
23
|
+
name?: string;
|
|
24
|
+
type?: string;
|
|
25
|
+
value?: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type DirectoryAddOrEditServices } from 'AWING/DirectoryForm';
|
|
2
2
|
import { type DirectoryPermissionServices } from 'AWING/DirectoryPermission';
|
|
3
|
-
import type {
|
|
3
|
+
import type { CustomPagingRequestInput } from 'Features/types';
|
|
4
4
|
import type { Directory } from './types';
|
|
5
5
|
export type DirectoryServices = DirectoryAddOrEditServices & DirectoryPermissionServices & {
|
|
6
6
|
/** Get Directories
|
|
7
7
|
* @params PagingQueryInput<Directory> - Không truyền param sẽ lấy tất cả
|
|
8
8
|
*/
|
|
9
|
-
getDirectories: (params?:
|
|
9
|
+
getDirectories: (params?: {
|
|
10
|
+
input?: CustomPagingRequestInput;
|
|
10
11
|
parentDirectoryId?: number;
|
|
11
12
|
workspaceId?: number;
|
|
12
13
|
depthFromRoot?: number;
|
|
@@ -6,7 +6,7 @@ export type DirectorySystemProps = DirectoryServices & {
|
|
|
6
6
|
currentWorkspace?: CurrentWorkspace;
|
|
7
7
|
objectTypeCodes?: ObjectTypeCode[];
|
|
8
8
|
};
|
|
9
|
-
declare const DirectorySystem: (props: DirectorySystemProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const DirectorySystem: (props: DirectorySystemProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
10
|
export * from './types';
|
|
11
11
|
export * from './Services';
|
|
12
12
|
export default DirectorySystem;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { Group, GroupInput } from './types';
|
|
2
|
-
import type { PagingQueryInput } from 'Features/types';
|
|
2
|
+
import type { CustomPagingRequestInput, PagingQueryInput } from 'Features/types';
|
|
3
3
|
import type { RoleTag } from './types';
|
|
4
4
|
import { User } from '../User/types';
|
|
5
5
|
export type GroupServices = {
|
|
6
6
|
/** Get RoleTags
|
|
7
7
|
* @param p - PagingQueryInput<RoleTag> - Không truyền param sẽ lấy tất cả RoleTag
|
|
8
8
|
*/
|
|
9
|
-
getRoleTags: (p?:
|
|
9
|
+
getRoleTags: (p?: {
|
|
10
|
+
input: CustomPagingRequestInput;
|
|
11
|
+
}) => Promise<{
|
|
10
12
|
roleTags: RoleTag[];
|
|
11
13
|
total: number;
|
|
12
14
|
}>;
|
|
@@ -17,10 +19,9 @@ export type GroupServices = {
|
|
|
17
19
|
users: User[];
|
|
18
20
|
total: number;
|
|
19
21
|
}>;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
getGroups: (p?: PagingQueryInput<Group>) => Promise<{
|
|
22
|
+
getGroups: (p?: {
|
|
23
|
+
input: CustomPagingRequestInput;
|
|
24
|
+
}) => Promise<{
|
|
24
25
|
groups: Group[];
|
|
25
26
|
total: number;
|
|
26
27
|
}>;
|
|
@@ -39,6 +40,7 @@ export type GroupServices = {
|
|
|
39
40
|
updateGroup: (p: {
|
|
40
41
|
input: GroupInput;
|
|
41
42
|
id: number;
|
|
43
|
+
versionId?: number;
|
|
42
44
|
}) => Promise<void>;
|
|
43
45
|
/** Loading khi lấy dữ liệu */
|
|
44
46
|
isLoading: boolean;
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CustomPagingRequestInput } from 'Features/types';
|
|
2
2
|
import type { Role, RoleTag, RoleInput } from './types';
|
|
3
3
|
export type RoleServices = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
getRoles: (p?: PagingQueryInput<Role>) => Promise<{
|
|
4
|
+
getRoles: (p?: {
|
|
5
|
+
input: CustomPagingRequestInput;
|
|
6
|
+
}) => Promise<{
|
|
8
7
|
roles: Role[];
|
|
9
8
|
total: number;
|
|
10
9
|
}>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
getRoleTags: (p?: PagingQueryInput<RoleTag>) => Promise<{
|
|
10
|
+
getRoleTags: (p?: {
|
|
11
|
+
input: CustomPagingRequestInput;
|
|
12
|
+
}) => Promise<{
|
|
15
13
|
roleTags: RoleTag[];
|
|
16
14
|
total: number;
|
|
17
15
|
}>;
|
|
@@ -30,5 +28,6 @@ export type RoleServices = {
|
|
|
30
28
|
updateRole: (p: {
|
|
31
29
|
input: RoleInput;
|
|
32
30
|
id: number;
|
|
31
|
+
versionId?: number;
|
|
33
32
|
}) => Promise<void>;
|
|
34
33
|
};
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CustomPagingRequestInput } from 'Features/types';
|
|
2
2
|
import type { RoleTag, Role, RoleTagInput } from './types';
|
|
3
3
|
export type RoleTagServices = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
getRoles: (p?: PagingQueryInput<Role>) => Promise<{
|
|
4
|
+
getRoles: (p?: {
|
|
5
|
+
input: CustomPagingRequestInput;
|
|
6
|
+
}) => Promise<{
|
|
8
7
|
roles: Role[];
|
|
9
8
|
total: number;
|
|
10
9
|
}>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
getRoleTags: (p?: PagingQueryInput<RoleTag>) => Promise<{
|
|
10
|
+
getRoleTags: (p?: {
|
|
11
|
+
input: CustomPagingRequestInput;
|
|
12
|
+
}) => Promise<{
|
|
15
13
|
roleTags: RoleTag[];
|
|
16
14
|
total: number;
|
|
17
15
|
}>;
|
|
@@ -30,5 +28,6 @@ export type RoleTagServices = {
|
|
|
30
28
|
updateRoleTag: (p: {
|
|
31
29
|
input: RoleTagInput;
|
|
32
30
|
id: number;
|
|
31
|
+
versionId?: number;
|
|
33
32
|
}) => Promise<void>;
|
|
34
33
|
};
|
|
@@ -6,9 +6,24 @@ export declare const fullFieldsState: import("jotai").PrimitiveAtom<ObjectDefini
|
|
|
6
6
|
export declare const objectTypeCodesState: import("jotai").PrimitiveAtom<ObjectTypeCode[]> & {
|
|
7
7
|
init: ObjectTypeCode[];
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Consolidated schema state - contains both regular and root schemas
|
|
11
|
+
* - rootSchemas: The root/default schemas from the workspace
|
|
12
|
+
* - regularSchemas: The regular schemas retrieved from API
|
|
13
|
+
* - totalCount: The total count of regular schemas (for pagination)
|
|
14
|
+
*/
|
|
15
|
+
export declare const schemasState: import("jotai").PrimitiveAtom<{
|
|
16
|
+
rootSchemas: Schema[];
|
|
17
|
+
regularSchemas: Schema[];
|
|
18
|
+
totalCount: number;
|
|
19
|
+
}> & {
|
|
20
|
+
init: {
|
|
21
|
+
rootSchemas: Schema[];
|
|
22
|
+
regularSchemas: Schema[];
|
|
23
|
+
totalCount: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare const rootSchemasState: import("jotai").WritableAtom<Schema[], [update: Schema[]], void>;
|
|
12
27
|
export declare const nameState: import("jotai").PrimitiveAtom<string> & {
|
|
13
28
|
init: string;
|
|
14
29
|
};
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import type { PagingQueryInput } from 'Features/types';
|
|
1
|
+
import type { CustomPagingRequestInput, PagingQueryInput } from 'Features/types';
|
|
2
2
|
import type { Schema, ObjectDefinition, SchemaInput } from './types';
|
|
3
3
|
export type SchemaServices = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
getSchemas: (p?: PagingQueryInput<Schema>) => Promise<{
|
|
4
|
+
getSchemas: (p?: {
|
|
5
|
+
input: CustomPagingRequestInput;
|
|
6
|
+
}) => Promise<{
|
|
8
7
|
items: Schema[];
|
|
9
8
|
total: number;
|
|
10
9
|
}>;
|
|
11
|
-
/** Get Schemas
|
|
12
|
-
* @param p - PagingQueryInput<Schema> - Không truyền param sẽ lấy tất cả Schema
|
|
13
|
-
*/
|
|
14
10
|
getSchemaById: (p: {
|
|
15
11
|
id: number;
|
|
16
12
|
}) => Promise<Schema>;
|
|
@@ -33,5 +29,6 @@ export type SchemaServices = {
|
|
|
33
29
|
updateSchema: (p: {
|
|
34
30
|
input: SchemaInput;
|
|
35
31
|
id: number;
|
|
32
|
+
versionId?: number;
|
|
36
33
|
}) => Promise<void>;
|
|
37
34
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CustomPagingRequestInput } from 'Features/types';
|
|
2
2
|
import { Schema, SchemaObjectDefinition } from '../Schema';
|
|
3
3
|
import { Workspace } from '../types';
|
|
4
4
|
import { Atom } from 'jotai';
|
|
@@ -20,11 +20,11 @@ export type Sharing = {
|
|
|
20
20
|
objectFilterId: number;
|
|
21
21
|
schema?: Schema;
|
|
22
22
|
schemaId?: number;
|
|
23
|
-
sharingWorkspaces
|
|
24
|
-
totalTargetWorkspace: number;
|
|
23
|
+
sharingWorkspaces?: Array<SharingWorkspace>;
|
|
25
24
|
workspaceId: number;
|
|
26
25
|
folderSourceDirectoryId?: number;
|
|
27
26
|
key?: string;
|
|
27
|
+
versionId?: number;
|
|
28
28
|
};
|
|
29
29
|
export type ObjectFilter = {
|
|
30
30
|
configType?: string;
|
|
@@ -94,6 +94,7 @@ export type SharingInput = {
|
|
|
94
94
|
folderSourceDirectoryId?: number;
|
|
95
95
|
targetWorkspaceId?: number;
|
|
96
96
|
sharingWorkspaces?: Array<ObjectDataInputOfSharingWorkspaceInput>;
|
|
97
|
+
versionId?: number;
|
|
97
98
|
};
|
|
98
99
|
export type ParamConfiguration = {
|
|
99
100
|
id: number;
|
|
@@ -150,9 +151,11 @@ export interface SharingProps {
|
|
|
150
151
|
updateWorkspaceSharing: (p: {
|
|
151
152
|
id: number;
|
|
152
153
|
input: SharingInput;
|
|
154
|
+
versionId?: number;
|
|
153
155
|
}) => Promise<void>;
|
|
154
156
|
getSharings: (p?: {
|
|
155
|
-
|
|
157
|
+
input: CustomPagingRequestInput;
|
|
158
|
+
objectTypeCode?: string;
|
|
156
159
|
}) => Promise<{
|
|
157
160
|
sharings: Sharing[];
|
|
158
161
|
total: number;
|
|
@@ -166,7 +169,8 @@ export interface SharingProps {
|
|
|
166
169
|
id: number;
|
|
167
170
|
}) => Promise<void>;
|
|
168
171
|
getObjectFilters: () => Promise<ObjectFilter[]>;
|
|
169
|
-
getDirectories: (params?:
|
|
172
|
+
getDirectories: (params?: {
|
|
173
|
+
input?: CustomPagingRequestInput;
|
|
170
174
|
parentDirectoryId?: number;
|
|
171
175
|
workspaceId?: number;
|
|
172
176
|
depthFromRoot?: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PagingQueryInput } from 'Features/types';
|
|
1
|
+
import type { CustomPagingRequestInput, PagingQueryInput } from 'Features/types';
|
|
2
2
|
import type { UserInput, RoleTag, User, Group } from './types';
|
|
3
3
|
export type UserServices = {
|
|
4
4
|
/** Get RoleTags
|
|
@@ -11,7 +11,9 @@ export type UserServices = {
|
|
|
11
11
|
/** Get Users
|
|
12
12
|
* @param p - PagingQueryInput<Users> - Không truyền param sẽ lấy tất cả Users
|
|
13
13
|
*/
|
|
14
|
-
getUsers: (p?:
|
|
14
|
+
getUsers: (p?: {
|
|
15
|
+
input: CustomPagingRequestInput;
|
|
16
|
+
}) => Promise<{
|
|
15
17
|
users: User[];
|
|
16
18
|
total: number;
|
|
17
19
|
}>;
|
|
@@ -26,6 +28,7 @@ export type UserServices = {
|
|
|
26
28
|
updateUser: (p: {
|
|
27
29
|
user: UserInput;
|
|
28
30
|
id: number;
|
|
31
|
+
versionId?: number;
|
|
29
32
|
}) => Promise<void>;
|
|
30
33
|
/** Delete User by ID */
|
|
31
34
|
deleteUser: (p: {
|
|
@@ -3,7 +3,7 @@ import { ObjectInputType } from 'Features/types';
|
|
|
3
3
|
type CreateOrEditProps = {
|
|
4
4
|
getById: (id: number) => Promise<Workflow>;
|
|
5
5
|
create: (workflow: ObjectInputType<Workflow>) => Promise<void>;
|
|
6
|
-
update: (id: number, workflow: ObjectInputType<Workflow
|
|
6
|
+
update: (id: number, workflow: ObjectInputType<Workflow>, versionId?: number) => Promise<void>;
|
|
7
7
|
objectTypeCodeMap: {
|
|
8
8
|
value: string;
|
|
9
9
|
label: string;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { CustomPagingRequestInput, PagingType } from 'Features/types';
|
|
1
2
|
import { Workflow } from './types';
|
|
2
|
-
import { PagingQueryInput, PagingType } from 'Features/types';
|
|
3
3
|
type WorkflowContainerProps = {
|
|
4
|
-
getPaging: (queryInput:
|
|
4
|
+
getPaging: (queryInput: {
|
|
5
|
+
input: CustomPagingRequestInput;
|
|
6
|
+
}) => Promise<PagingType<Workflow>>;
|
|
5
7
|
remove: (id: number) => Promise<void>;
|
|
6
8
|
};
|
|
7
9
|
declare const WorkflowContainer: (props: WorkflowContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { CustomPagingRequestInput, ObjectInputType, PagingType } from 'Features/types';
|
|
1
2
|
import { Workflow } from './types';
|
|
2
|
-
import { ObjectInputType, PagingQueryInput, PagingType } from 'Features/types';
|
|
3
3
|
type WorkflowFeatureProps = {
|
|
4
4
|
getById: (id: number) => Promise<Workflow>;
|
|
5
|
-
getPaging: (queryInput:
|
|
5
|
+
getPaging: (queryInput: {
|
|
6
|
+
input: CustomPagingRequestInput;
|
|
7
|
+
}) => Promise<PagingType<Workflow>>;
|
|
6
8
|
create: (workflow: ObjectInputType<Workflow>) => Promise<void>;
|
|
7
|
-
update: (id: number, workflow: ObjectInputType<Workflow
|
|
9
|
+
update: (id: number, workflow: ObjectInputType<Workflow>, versionId?: number) => Promise<void>;
|
|
8
10
|
remove: (id: number) => Promise<void>;
|
|
9
11
|
objectTypeCodeMap: {
|
|
10
12
|
value: string;
|
|
@@ -63,3 +63,21 @@ export type EnumTypeConvert = {
|
|
|
63
63
|
key: string;
|
|
64
64
|
value: string | number;
|
|
65
65
|
};
|
|
66
|
+
export declare enum Direction {
|
|
67
|
+
Asc = "ASC",
|
|
68
|
+
Desc = "DESC"
|
|
69
|
+
}
|
|
70
|
+
export type SortingTokenInput = {
|
|
71
|
+
direction: Direction;
|
|
72
|
+
field?: string;
|
|
73
|
+
};
|
|
74
|
+
export type WhereConditionInput = {
|
|
75
|
+
condition?: string;
|
|
76
|
+
params?: string[];
|
|
77
|
+
};
|
|
78
|
+
export type CustomPagingRequestInput = {
|
|
79
|
+
order?: SortingTokenInput[];
|
|
80
|
+
skip?: number;
|
|
81
|
+
take?: number;
|
|
82
|
+
where?: WhereConditionInput;
|
|
83
|
+
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Xử lý các thao tác số học và toán học một cách tiện lợi.
|
|
3
3
|
* Hỗ trợ các phép toán phức tạp hoặc tối ưu hóa các logic tính toán thường dùng.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
5
|
+
export type Locale = 'vi' | 'en' | 'ja' | 'th' | 'id';
|
|
6
|
+
export declare function formatNumberByLocale(value?: number | bigint, lang?: string, locale?: string): string;
|
|
6
7
|
export declare function roundDecimalNumber(number: any): string | null;
|
|
7
8
|
export declare function WMAPEcalculator(data: any): number | "∞";
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available filter operation types
|
|
3
|
+
*/
|
|
4
|
+
export declare enum FilterOperationType {
|
|
5
|
+
EQ = "eq",// Equal
|
|
6
|
+
CONTAINS = "contains",// Contains substring
|
|
7
|
+
STARTSWITH = "startswith",// Starts with
|
|
8
|
+
ENDSWITH = "endswith",// Ends with
|
|
9
|
+
GT = "gt",// Greater than
|
|
10
|
+
GTE = "gte",// Greater than or equal
|
|
11
|
+
LT = "lt",// Less than
|
|
12
|
+
LTE = "lte",// Less than or equal
|
|
13
|
+
IN = "in",// In array
|
|
14
|
+
BETWEEN = "between",// Between two values
|
|
15
|
+
NE = "ne",// Not equal
|
|
16
|
+
NOTCONTAINS = "notcontains",// Does not contain substring
|
|
17
|
+
NOTIN = "notin",// Not in array
|
|
18
|
+
CUSTOM = "custom"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Logical operators for combining filter conditions
|
|
22
|
+
*/
|
|
23
|
+
export declare enum LogicalOperatorType {
|
|
24
|
+
AND = "and",
|
|
25
|
+
OR = "or",
|
|
26
|
+
NOT = "not"
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Structure for a single filter item
|
|
30
|
+
*/
|
|
31
|
+
export interface FilterItem {
|
|
32
|
+
key: string;
|
|
33
|
+
value: any;
|
|
34
|
+
type: FilterOperationType | string;
|
|
35
|
+
isArray?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Structure for a filter group that can contain nested conditions
|
|
39
|
+
*/
|
|
40
|
+
export interface FilterGroup {
|
|
41
|
+
operator: LogicalOperatorType;
|
|
42
|
+
filters: Array<FilterItem | FilterGroup>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Filter expression can be either a single item or a group
|
|
46
|
+
*/
|
|
47
|
+
export type FilterExpression = FilterItem | FilterGroup;
|
|
48
|
+
/**
|
|
49
|
+
* Converts an array of filter objects to a string condition
|
|
50
|
+
* @param filters - Array of objects with key, value, and type properties
|
|
51
|
+
* @param defaultOperator - Default logical operator to use when combining filters (AND or OR)
|
|
52
|
+
* @returns Object with a 'condition' property containing the string condition and optional 'params' array
|
|
53
|
+
*/
|
|
54
|
+
export declare function convertArrayFiltersToCondition(filters: Array<FilterItem>, defaultOperator?: LogicalOperatorType): {
|
|
55
|
+
condition: string;
|
|
56
|
+
params?: string[];
|
|
57
|
+
} | null;
|
|
58
|
+
/**
|
|
59
|
+
* Converts a complex filter expression to a string condition
|
|
60
|
+
* @param filterExpression - Filter expression (can be nested with logical operators)
|
|
61
|
+
* @returns Object with a 'condition' property containing the string condition and optional 'params' array
|
|
62
|
+
*/
|
|
63
|
+
export declare function convertFilterExpressionToCondition(filterExpression: FilterExpression): {
|
|
64
|
+
condition: string;
|
|
65
|
+
params?: string[];
|
|
66
|
+
} | null;
|
|
67
|
+
/**
|
|
68
|
+
* Usage examples:
|
|
69
|
+
* * Simple filter with AND:
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const filters: FilterItem[] = [
|
|
72
|
+
* { key: 'name', value: 'John', type: FilterOperationType.CONTAINS },
|
|
73
|
+
* { key: 'age', value: 30, type: FilterOperationType.GTE }
|
|
74
|
+
* ];
|
|
75
|
+
* const result = convertArrayFiltersToCondition(filters); // name.Contains("John") && age>=30
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* Simple filter with OR:
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const filters: FilterItem[] = [
|
|
81
|
+
* { key: 'status', value: 'active', type: FilterOperationType.EQ },
|
|
82
|
+
* { key: 'status', value: 'pending', type: FilterOperationType.EQ }
|
|
83
|
+
* ];
|
|
84
|
+
* const result = convertArrayFiltersToCondition(filters, LogicalOperatorType.OR); // status="active" || status="pending"
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* Filter with isArray property:
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const filters: FilterItem[] = [
|
|
90
|
+
* { key: 'objectTypeCode', value: 'OBJECTFILTER', type: FilterOperationType.EQ, isArray: false },
|
|
91
|
+
* { key: 'name', value: 'Long', type: FilterOperationType.EQ, isArray: true },
|
|
92
|
+
* ];
|
|
93
|
+
* const result = convertArrayFiltersToCondition(filters);
|
|
94
|
+
* // Returns: { condition: 'objectTypeCode="OBJECTFILTER" && @0.Contains(name)', params: ["Long"] }
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* Filter with isArray and array values:
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const filters: FilterItem[] = [
|
|
100
|
+
* { key: 'id', value: [1, 2, 3], type: FilterOperationType.EQ, isArray: true },
|
|
101
|
+
* { key: 'names', value: ['name1', 'name2', 'name3'], type: FilterOperationType.EQ, isArray: true },
|
|
102
|
+
* ];
|
|
103
|
+
* const result = convertArrayFiltersToCondition(filters);
|
|
104
|
+
* // Returns: { condition: '@0.Contains(id) && @1.Contains(names)', params: ["1,2,3", "name1,name2,name3"] }
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* Complex nested filter:
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const complexFilter: FilterGroup = {
|
|
110
|
+
* operator: LogicalOperatorType.AND,
|
|
111
|
+
* filters: [
|
|
112
|
+
* { key: 'name', value: 'John', type: FilterOperationType.CONTAINS },
|
|
113
|
+
* {
|
|
114
|
+
* operator: LogicalOperatorType.OR,
|
|
115
|
+
* filters: [
|
|
116
|
+
* { key: 'age', value: 30, type: FilterOperationType.GTE },
|
|
117
|
+
* { key: 'vip', value: true, type: FilterOperationType.EQ }
|
|
118
|
+
* ]
|
|
119
|
+
* },
|
|
120
|
+
* {
|
|
121
|
+
* operator: LogicalOperatorType.NOT,
|
|
122
|
+
* filters: [
|
|
123
|
+
* { key: 'status', value: 'inactive', type: FilterOperationType.EQ }
|
|
124
|
+
* ]
|
|
125
|
+
* }
|
|
126
|
+
* ]
|
|
127
|
+
* };
|
|
128
|
+
* const result = convertFilterExpressionToCondition(complexFilter);
|
|
129
|
+
* // name.Contains("John") && (age>=30 || vip="true") && !(status="inactive")
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* Complex filter with parameterized values:
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const complexFilter: FilterGroup = {
|
|
135
|
+
* operator: LogicalOperatorType.AND,
|
|
136
|
+
* filters: [
|
|
137
|
+
* { key: 'objectTypeCode', value: 'OBJECTFILTER', type: FilterOperationType.EQ },
|
|
138
|
+
* { key: 'name', value: 'Long', type: FilterOperationType.EQ, isArray: true }
|
|
139
|
+
* ]
|
|
140
|
+
* };
|
|
141
|
+
* const result = convertFilterExpressionToCondition(complexFilter);
|
|
142
|
+
* // Returns: { condition: 'objectTypeCode="OBJECTFILTER" && @0.Contains(name)', params: ["Long"] }
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* Complex filter with array values:
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const complexFilter: FilterGroup = {
|
|
148
|
+
* operator: LogicalOperatorType.AND,
|
|
149
|
+
* filters: [
|
|
150
|
+
* { key: 'objectTypeCode', value: 'OBJECTFILTER', type: FilterOperationType.EQ },
|
|
151
|
+
* { key: 'id', value: [1, 2], type: FilterOperationType.EQ, isArray: true },
|
|
152
|
+
* { key: 'name', value: ['name1', 'name2'], type: FilterOperationType.EQ, isArray: true }
|
|
153
|
+
* ]
|
|
154
|
+
* };
|
|
155
|
+
* const result = convertFilterExpressionToCondition(complexFilter);
|
|
156
|
+
* // Returns: {
|
|
157
|
+
* // condition: 'objectTypeCode="OBJECTFILTER" && @0.Contains(id) && @1.Contains(name)',
|
|
158
|
+
* // params: ["1,2", "name1,name2"]
|
|
159
|
+
* // }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|