namirasoft-account-react 1.4.418 → 1.4.421
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/IEntityInfo.d.ts +3 -1
- package/dist/NSACacheService.d.ts +3 -0
- package/dist/NSACacheService.js +13 -0
- package/dist/NSACacheService.js.map +1 -1
- package/dist/NSAFilterOperators.d.ts +28 -0
- package/dist/NSAFilterOperators.js +50 -0
- package/dist/NSAFilterOperators.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxBase.d.ts +14 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxBase.js +40 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxBase.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxBoolean.d.ts +12 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxBoolean.js +30 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxBoolean.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxDate.d.ts +12 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxDate.js +58 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxDate.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxDateTime.d.ts +12 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxDateTime.js +58 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxDateTime.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxEnum.d.ts +22 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxEnum.js +52 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxEnum.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxNumber.d.ts +22 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxNumber.js +67 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxNumber.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxString.d.ts +13 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxString.js +47 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxString.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxTime.d.ts +12 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxTime.js +58 -0
- package/dist/components/NSAQuickFilter/NSAFilterBoxTime.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAQuickFilterBar.d.ts +28 -0
- package/dist/components/NSAQuickFilter/NSAQuickFilterBar.js +74 -0
- package/dist/components/NSAQuickFilter/NSAQuickFilterBar.js.map +1 -0
- package/dist/components/NSAQuickFilter/NSAQuickFilterDialog.d.ts +43 -0
- package/dist/components/NSAQuickFilter/NSAQuickFilterDialog.js +114 -0
- package/dist/components/NSAQuickFilter/NSAQuickFilterDialog.js.map +1 -0
- package/dist/components/NSAReorderDialog.d.ts +30 -0
- package/dist/components/NSAReorderDialog.js +69 -0
- package/dist/components/NSAReorderDialog.js.map +1 -0
- package/dist/components/NSAReorderDialog.module.css +50 -0
- package/dist/components/NSASortDialog.d.ts +21 -0
- package/dist/components/NSASortDialog.js +61 -0
- package/dist/components/NSASortDialog.js.map +1 -0
- package/dist/components/NSATable.d.ts +95 -0
- package/dist/components/NSATable.js +335 -0
- package/dist/components/NSATable.js.map +1 -0
- package/dist/layouts/NSASectionList.d.ts +7 -37
- package/dist/layouts/NSASectionList.js +17 -247
- package/dist/layouts/NSASectionList.js.map +1 -1
- package/dist/layouts/NSASectionList.module.css +15 -18
- package/package.json +2 -2
- package/src/IEntityInfo.ts +3 -1
- package/src/NSACacheService.ts +20 -0
- package/src/NSAFilterOperators.ts +93 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxBase.tsx +56 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxBoolean.tsx +55 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxDate.tsx +105 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxDateTime.tsx +106 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxEnum.module.css +45 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxEnum.tsx +80 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxNumber.tsx +137 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxString.tsx +82 -0
- package/src/components/NSAQuickFilter/NSAFilterBoxTime.tsx +102 -0
- package/src/components/NSAQuickFilter/NSAQuickFilterBar.module.css +20 -0
- package/src/components/NSAQuickFilter/NSAQuickFilterBar.tsx +115 -0
- package/src/components/NSAQuickFilter/NSAQuickFilterDialog.module.css +75 -0
- package/src/components/NSAQuickFilter/NSAQuickFilterDialog.tsx +261 -0
- package/src/components/NSAReorderDialog.module.css +50 -0
- package/src/components/NSAReorderDialog.tsx +150 -0
- package/src/components/NSASortDialog.tsx +118 -0
- package/src/components/NSATable.tsx +490 -0
- package/src/layouts/NSASectionList.module.css +15 -18
- package/src/layouts/NSASectionList.tsx +43 -395
package/dist/IEntityInfo.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseMetaTable, FilterItem, SortItem } from "namirasoft-core";
|
|
2
2
|
import { NSMenuActionProps, TableColumnInfo } from "namirasoft-site-react";
|
|
3
|
+
import { QuickFilterDef } from "./NSAFilterOperators";
|
|
3
4
|
export interface IEntityInfo<EntityType extends {
|
|
4
5
|
id: string;
|
|
5
6
|
}, EntityTypeInput = EntityType> {
|
|
@@ -12,7 +13,7 @@ export interface IEntityInfo<EntityType extends {
|
|
|
12
13
|
server: {
|
|
13
14
|
value_list: (table: string, column: string, search: string | null, field_id: string | null, limit: number | null) => Promise<string[]>;
|
|
14
15
|
get: null | ((id: string) => Promise<EntityType>);
|
|
15
|
-
list: null | ((filters: FilterItem[] | null, page: (number | null), size: (number | null), sorts: SortItem[]) => Promise<{
|
|
16
|
+
list: null | ((filters: FilterItem[] | null, page: (number | null), size: (number | null), sorts: SortItem[], all_workspaces: (boolean | null)) => Promise<{
|
|
16
17
|
rows: EntityType[];
|
|
17
18
|
count: number;
|
|
18
19
|
}>);
|
|
@@ -33,5 +34,6 @@ export interface IEntityInfo<EntityType extends {
|
|
|
33
34
|
getMenus?: (getIDs: () => string[], getRows: (() => EntityType[])) => {
|
|
34
35
|
[group: string]: NSMenuActionProps[];
|
|
35
36
|
};
|
|
37
|
+
getQuickFilters?: () => QuickFilterDef<EntityType>[];
|
|
36
38
|
};
|
|
37
39
|
}
|
|
@@ -3,6 +3,7 @@ import { CacheService } from "namirasoft-core";
|
|
|
3
3
|
import { ConsentRow, TokenManager } from "namirasoft-account";
|
|
4
4
|
import { FilterLinkFullRow } from "namirasoft-api-link";
|
|
5
5
|
import { NSNotifier } from "namirasoft-site-react";
|
|
6
|
+
import { QuickFilterConfig } from "./components/NSAQuickFilter/NSAQuickFilterDialog";
|
|
6
7
|
export declare class NSACacheService {
|
|
7
8
|
static getProducts(notifier: NSNotifier): CacheService<{
|
|
8
9
|
rows: ProductFullRow[];
|
|
@@ -15,4 +16,6 @@ export declare class NSACacheService {
|
|
|
15
16
|
static getMasterMenuStatus(): CacheService<{
|
|
16
17
|
open: boolean;
|
|
17
18
|
}>;
|
|
19
|
+
static loadQuickFilters(entityName: string): QuickFilterConfig[];
|
|
20
|
+
static saveQuickFilters(entityName: string, configs: QuickFilterConfig[]): void;
|
|
18
21
|
}
|
package/dist/NSACacheService.js
CHANGED
|
@@ -60,5 +60,18 @@ export class NSACacheService {
|
|
|
60
60
|
static getMasterMenuStatus() {
|
|
61
61
|
return new CacheService(`ns-master-menu-status`, new IStorageLocal(), 30 * 24 * 60, () => __awaiter(this, void 0, void 0, function* () { return "1.0.0"; }), () => __awaiter(this, void 0, void 0, function* () { return ({ open: false }); }));
|
|
62
62
|
}
|
|
63
|
+
static loadQuickFilters(entityName) {
|
|
64
|
+
const storage = new IStorageLocal();
|
|
65
|
+
try {
|
|
66
|
+
return JSON.parse(storage.get(`ns-quick-filters-${entityName}`, "[]"));
|
|
67
|
+
}
|
|
68
|
+
catch (_a) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
static saveQuickFilters(entityName, configs) {
|
|
73
|
+
const storage = new IStorageLocal();
|
|
74
|
+
storage.set(`ns-quick-filters-${entityName}`, JSON.stringify(configs));
|
|
75
|
+
}
|
|
63
76
|
}
|
|
64
77
|
//# sourceMappingURL=NSACacheService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSACacheService.js","sourceRoot":"","sources":["../src/NSACacheService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,0BAA0B,EAAkB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAc,uBAAuB,EAAgB,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAqB,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"NSACacheService.js","sourceRoot":"","sources":["../src/NSACacheService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,0BAA0B,EAAkB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAc,uBAAuB,EAAgB,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAqB,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAIjF,MAAM,OAAO,eAAe;IAExB,MAAM,CAAC,WAAW,CAAC,QAAoB;QAEnC,OAAO,IAAI,YAAY,CACnB,aAAa,EACb,IAAI,aAAa,EAAE,EACnB,CAAC,GAAG,EAAE,GAAG,EAAE,EACX,GAAS,EAAE,gDAAC,OAAA,OAAO,CAAA,GAAA,EACnB,GAAS,EAAE;;YAEP,IAAI,8BAA8B,GAAG,IAAI,UAAU,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACxG,IAAI,MAAM,GAAG,IAAI,0BAA0B,CAAC,8BAA8B,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9F,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACjG,IAAI,cAAc,CAAC,QAAQ,EAC3B,CAAC;gBACG,IAAI,kBAAkB,GAAG,MAAA,cAAc,CAAC,QAAQ,0CAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBACtF,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;gBAC/D,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAA,CACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAqB,EAAE,UAAkB,EAAE,OAAyD;QAElH,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,GAAG,GAAG,2BAA2B,OAAO,YAAY,UAAU,EAAE,CAAC;QAErE,OAAO,IAAI,YAAY,CACnB,GAAG,EACH,IAAI,aAAa,EAAE,EACnB,CAAC,GAAG,EAAE,GAAG,EAAE,EACX,GAAS,EAAE,gDAAC,OAAA,OAAO,CAAA,GAAA,EACnB,GAAS,EAAE;YAEP,IAAI,0BAA0B,GAAG,IAAI,UAAU,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChG,IAAI,MAAM,GAAG,IAAI,uBAAuB,CAAC,0BAA0B,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvF,IACA,CAAC;gBACG,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACxD,OAAO,GAAG,CAAC;YACf,CAAC;YACD,OAAO,KAAK,EACZ,CAAC;gBACG,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC,CAAA,CACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAgB;QAElC,OAAO,IAAI,YAAY,CACnB,6BAA6B,EAC7B,IAAI,aAAa,EAAE,EACnB,CAAC,GAAG,EAAE,GAAG,EAAE,EACX,GAAS,EAAE,gDAAC,OAAA,OAAO,CAAA,GAAA,EACnB,GAAS,EAAE;YAEP,IAAI,2BAA2B,GAAG,IAAI,UAAU,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAClG,IAAI,MAAM,GAAG,IAAI,uBAAuB,CAAC,2BAA2B,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAErF,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,MAAM,CAAC,GAAG,CAAC,CAAO,KAAK,EAAE,EAAE;gBAEvB,IACA,CAAC;oBACG,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oBACxF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,KAAK,EACZ,CAAC;oBACG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC,CAAA,CAAC,CACL,CAAC;YAEF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAA,CACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,mBAAmB;QAEtB,OAAO,IAAI,YAAY,CACnB,uBAAuB,EACvB,IAAI,aAAa,EAAE,EACnB,EAAE,GAAG,EAAE,GAAG,EAAE,EACZ,GAAS,EAAE,gDAAC,OAAA,OAAO,CAAA,GAAA,EACnB,GAAS,EAAE,gDAAC,OAAA,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA,GAAA,CAChC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,UAAkB;QAEtC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,IACA,CAAC;YACG,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,WACA,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,UAAkB,EAAE,OAA4B;QAEpE,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACJ"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FilterItemOperator } from "namirasoft-core";
|
|
2
|
+
import { VariableType } from "namirasoft-schema";
|
|
3
|
+
export declare const NUMERIC_OPERATORS: readonly ["equals", "notequals", "lessthan", "lessthanequal", "morethan", "morethanequal", "between", "empty", "exists"];
|
|
4
|
+
export declare const STRING_OPERATORS: readonly ["contains", "equals", "startswith", "empty", "exists", "notequals", "notcontains"];
|
|
5
|
+
export declare const DATE_OPERATORS: readonly ["equals", "lessthan", "lessthanequal", "morethan", "morethanequal", "between", "empty", "exists"];
|
|
6
|
+
export declare const ENUM_OPERATORS: readonly ["equals", "empty", "exists"];
|
|
7
|
+
export type NumericOperatorKey = typeof NUMERIC_OPERATORS[number];
|
|
8
|
+
export type StringOperatorKey = typeof STRING_OPERATORS[number];
|
|
9
|
+
export type DateOperatorKey = typeof DATE_OPERATORS[number];
|
|
10
|
+
export type EnumOperatorKey = typeof ENUM_OPERATORS[number];
|
|
11
|
+
type OperatorKeyForType<T> = T extends boolean ? never : T extends number ? NumericOperatorKey : T extends Date ? DateOperatorKey : T extends string ? StringOperatorKey : keyof typeof FilterItemOperator.all;
|
|
12
|
+
export type QuickFilterDef<EntityType> = NonNullable<{
|
|
13
|
+
[K in keyof EntityType]: NonNullable<EntityType[K]> extends boolean ? {
|
|
14
|
+
column: K;
|
|
15
|
+
operator?: never;
|
|
16
|
+
} : {
|
|
17
|
+
column: K;
|
|
18
|
+
operator: OperatorKeyForType<NonNullable<EntityType[K]>>;
|
|
19
|
+
};
|
|
20
|
+
}[keyof EntityType]>;
|
|
21
|
+
export declare class NSAFilterOperators {
|
|
22
|
+
private static readonly NUMERIC_TYPES;
|
|
23
|
+
private static readonly STRING_TYPES;
|
|
24
|
+
private static pick;
|
|
25
|
+
static getQuickFilterOperators(type: VariableType): FilterItemOperator[];
|
|
26
|
+
static getOperatorKey(op: FilterItemOperator): string;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { FilterItemColumnType, FilterItemOperator } from "namirasoft-core";
|
|
2
|
+
import { VariableType } from "namirasoft-schema";
|
|
3
|
+
const all = FilterItemOperator.all;
|
|
4
|
+
if (!all["between"])
|
|
5
|
+
all["between"] = new FilterItemOperator("Between", "><", 2, (type) => [FilterItemColumnType.Number, FilterItemColumnType.Date, FilterItemColumnType.DateTime, FilterItemColumnType.Time].includes(type));
|
|
6
|
+
if (!all["notequals"])
|
|
7
|
+
all["notequals"] = new FilterItemOperator("Not Equals", "!=", 1, (type) => type !== FilterItemColumnType.Unknown);
|
|
8
|
+
if (!all["notcontains"])
|
|
9
|
+
all["notcontains"] = new FilterItemOperator("Not Contains", "!:", 1, (type) => type !== FilterItemColumnType.Unknown && type !== FilterItemColumnType.Boolean);
|
|
10
|
+
export const NUMERIC_OPERATORS = ["equals", "notequals", "lessthan", "lessthanequal", "morethan", "morethanequal", "between", "empty", "exists"];
|
|
11
|
+
export const STRING_OPERATORS = ["contains", "equals", "startswith", "empty", "exists", "notequals", "notcontains"];
|
|
12
|
+
export const DATE_OPERATORS = ["equals", "lessthan", "lessthanequal", "morethan", "morethanequal", "between", "empty", "exists"];
|
|
13
|
+
export const ENUM_OPERATORS = ["equals", "empty", "exists"];
|
|
14
|
+
export class NSAFilterOperators {
|
|
15
|
+
static pick(keys) {
|
|
16
|
+
return keys.map(k => all[k]).filter(Boolean);
|
|
17
|
+
}
|
|
18
|
+
static getQuickFilterOperators(type) {
|
|
19
|
+
if (NSAFilterOperators.NUMERIC_TYPES.has(type))
|
|
20
|
+
return NSAFilterOperators.pick(NUMERIC_OPERATORS);
|
|
21
|
+
if (NSAFilterOperators.STRING_TYPES.has(type))
|
|
22
|
+
return NSAFilterOperators.pick(STRING_OPERATORS);
|
|
23
|
+
switch (type) {
|
|
24
|
+
case VariableType.Date:
|
|
25
|
+
case VariableType.DateTime:
|
|
26
|
+
case VariableType.Time:
|
|
27
|
+
return NSAFilterOperators.pick(DATE_OPERATORS);
|
|
28
|
+
case VariableType.Enum:
|
|
29
|
+
case VariableType.Entity:
|
|
30
|
+
return NSAFilterOperators.pick(ENUM_OPERATORS);
|
|
31
|
+
default:
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static getOperatorKey(op) {
|
|
36
|
+
var _a;
|
|
37
|
+
return (_a = Object.keys(all).find(k => all[k] === op)) !== null && _a !== void 0 ? _a : op.name.toLowerCase().replace(/\s+/g, "");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
NSAFilterOperators.NUMERIC_TYPES = new Set([
|
|
41
|
+
VariableType.TinyInt, VariableType.SmallInt, VariableType.MediumInt,
|
|
42
|
+
VariableType.Integer, VariableType.BigInt, VariableType.Float,
|
|
43
|
+
VariableType.Double, VariableType.Decimal, VariableType.Real, VariableType.Money,
|
|
44
|
+
]);
|
|
45
|
+
NSAFilterOperators.STRING_TYPES = new Set([
|
|
46
|
+
VariableType.String, VariableType.Email, VariableType.Phone, VariableType.URL,
|
|
47
|
+
VariableType.Color, VariableType.Font, VariableType.FilePath, VariableType.Version,
|
|
48
|
+
VariableType.IPV4, VariableType.IPV6, VariableType.IPV4Range, VariableType.IPV6Range,
|
|
49
|
+
]);
|
|
50
|
+
//# sourceMappingURL=NSAFilterOperators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterOperators.js","sourceRoot":"","sources":["../src/NSAFilterOperators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component } from "react";
|
|
2
|
+
import { FilterItem } from "namirasoft-core";
|
|
3
|
+
import { QuickFilterConfig } from "./NSAQuickFilterDialog";
|
|
4
|
+
export interface NSAFilterBoxBaseProps {
|
|
5
|
+
config: QuickFilterConfig;
|
|
6
|
+
onChanged: (items: FilterItem | FilterItem[] | null) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class NSAFilterBoxBase<P extends NSAFilterBoxBaseProps = NSAFilterBoxBaseProps, S = {}> extends Component<P, S> {
|
|
9
|
+
private static readonly NOT_OPERATOR_MAP;
|
|
10
|
+
private buildMeta;
|
|
11
|
+
protected buildFilterItem(...values: string[]): FilterItem;
|
|
12
|
+
protected buildBetweenFilterItems(from: string, to: string): FilterItem[];
|
|
13
|
+
protected getLabel(): string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Component } from "react";
|
|
2
|
+
import { BaseMetaColumn, BaseMetaTable, FilterItem, FilterItemOperator } from "namirasoft-core";
|
|
3
|
+
export class NSAFilterBoxBase extends Component {
|
|
4
|
+
buildMeta() {
|
|
5
|
+
const { config } = this.props;
|
|
6
|
+
const table = new BaseMetaTable(null, config.column.table.name, config.column.table.text);
|
|
7
|
+
const column = new BaseMetaColumn(table, config.column.name, config.column.text, config.column.type, false);
|
|
8
|
+
return { table, column };
|
|
9
|
+
}
|
|
10
|
+
buildFilterItem(...values) {
|
|
11
|
+
var _a;
|
|
12
|
+
const { table, column } = this.buildMeta();
|
|
13
|
+
const key = (_a = this.props.config.operatorName) !== null && _a !== void 0 ? _a : "";
|
|
14
|
+
const isNot = key in NSAFilterBoxBase.NOT_OPERATOR_MAP;
|
|
15
|
+
const resolvedKey = isNot ? NSAFilterBoxBase.NOT_OPERATOR_MAP[key] : key;
|
|
16
|
+
const operator = resolvedKey
|
|
17
|
+
? FilterItemOperator.getByName(resolvedKey)
|
|
18
|
+
: FilterItemOperator.all.equals;
|
|
19
|
+
return new FilterItem(table, column, isNot, operator, ...values);
|
|
20
|
+
}
|
|
21
|
+
buildBetweenFilterItems(from, to) {
|
|
22
|
+
const { table, column } = this.buildMeta();
|
|
23
|
+
return [
|
|
24
|
+
new FilterItem(table, column, false, FilterItemOperator.all.morethanequal, from),
|
|
25
|
+
new FilterItem(table, column, false, FilterItemOperator.all.lessthanequal, to),
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
getLabel() {
|
|
29
|
+
const { config } = this.props;
|
|
30
|
+
if (!config.operatorName)
|
|
31
|
+
return config.column.text;
|
|
32
|
+
const sign = FilterItemOperator.getByName(config.operatorName).sign;
|
|
33
|
+
return `${config.column.text} ${sign}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
NSAFilterBoxBase.NOT_OPERATOR_MAP = {
|
|
37
|
+
notequals: "equals",
|
|
38
|
+
notcontains: "contains",
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=NSAFilterBoxBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterBoxBase.js","sourceRoot":"","sources":["../../../src/components/NSAQuickFilter/NSAFilterBoxBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAShG,MAAM,OAAgB,gBAClB,SAAQ,SAAe;IAOf,SAAS;QAEb,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAES,eAAe,CAAC,GAAG,MAAgB;;QAEzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;QACvD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACzE,MAAM,QAAQ,GAAG,WAAW;YACxB,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;IACrE,CAAC;IAES,uBAAuB,CAAC,IAAY,EAAE,EAAU;QAEtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,OAAO;YACH,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC;YAChF,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;SACjF,CAAC;IACN,CAAC;IAES,QAAQ;QAEd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,YAAY;YACpB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;QACpE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAC3C,CAAC;;AAzCuB,iCAAgB,GAA2B;IAC/D,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,UAAU;CAC1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NSAFilterBoxBase, NSAFilterBoxBaseProps } from "./NSAFilterBoxBase";
|
|
2
|
+
interface NSAFilterBoxBooleanState {
|
|
3
|
+
value: boolean | null;
|
|
4
|
+
}
|
|
5
|
+
export declare class NSAFilterBoxBoolean extends NSAFilterBoxBase<NSAFilterBoxBaseProps, NSAFilterBoxBooleanState> {
|
|
6
|
+
private containerRef;
|
|
7
|
+
constructor(props: NSAFilterBoxBaseProps);
|
|
8
|
+
private isValueless;
|
|
9
|
+
private handleChange;
|
|
10
|
+
render(): JSX.Element;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FilterItemOperator } from "namirasoft-core";
|
|
3
|
+
import { NSBoxBoolean } from "namirasoft-site-react";
|
|
4
|
+
import { createRef } from "react";
|
|
5
|
+
import { NSAFilterBoxBase } from "./NSAFilterBoxBase";
|
|
6
|
+
export class NSAFilterBoxBoolean extends NSAFilterBoxBase {
|
|
7
|
+
constructor(props) {
|
|
8
|
+
super(props);
|
|
9
|
+
this.containerRef = createRef();
|
|
10
|
+
this.state = { value: this.isValueless() ? false : null };
|
|
11
|
+
this.handleChange = this.handleChange.bind(this);
|
|
12
|
+
}
|
|
13
|
+
isValueless() {
|
|
14
|
+
const name = this.props.config.operatorName;
|
|
15
|
+
return !!name && FilterItemOperator.getByName(name).count === 0;
|
|
16
|
+
}
|
|
17
|
+
handleChange(value) {
|
|
18
|
+
this.setState({ value });
|
|
19
|
+
if (this.isValueless())
|
|
20
|
+
this.props.onChanged(value === true ? this.buildFilterItem() : null);
|
|
21
|
+
else if (value !== null)
|
|
22
|
+
this.props.onChanged(this.buildFilterItem(String(Number(value))));
|
|
23
|
+
else
|
|
24
|
+
this.props.onChanged(null);
|
|
25
|
+
}
|
|
26
|
+
render() {
|
|
27
|
+
return (_jsx("div", { ref: this.containerRef, style: { width: "100%" }, children: _jsx(NSBoxBoolean, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, triState: !this.isValueless(), onChanged: e => this.handleChange(e.getValue()) }) }));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=NSAFilterBoxBoolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterBoxBoolean.js","sourceRoot":"","sources":["../../../src/components/NSAQuickFilter/NSAFilterBoxBoolean.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AAO7E,MAAM,OAAO,mBAAoB,SAAQ,gBAAiE;IAItG,YAAY,KAA4B;QAEpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAJT,iBAAY,GAAG,SAAS,EAAkB,CAAC;QAK/C,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEO,WAAW;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5C,OAAO,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IACpE,CAAC;IAGO,YAAY,CAAC,KAAqB;QAEtC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACpE,IAAI,KAAK,KAAK,IAAI;YACnB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;YAElE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEQ,MAAM;QAEX,OAAO,CACH,cAAK,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YACjD,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EACtB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC5B,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAC7B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GACjD,GACA,CACT,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NSAFilterBoxBase, NSAFilterBoxBaseProps } from "./NSAFilterBoxBase";
|
|
2
|
+
export interface NSAFilterBoxDateProps extends NSAFilterBoxBaseProps {
|
|
3
|
+
getValues: (search: string) => Promise<{
|
|
4
|
+
value: string;
|
|
5
|
+
title: string;
|
|
6
|
+
}[]>;
|
|
7
|
+
}
|
|
8
|
+
export declare class NSAFilterBoxDate extends NSAFilterBoxBase<NSAFilterBoxDateProps> {
|
|
9
|
+
private betweenActive;
|
|
10
|
+
private list;
|
|
11
|
+
render(): JSX.Element | null;
|
|
12
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
import { FilterItemOperator, TimeOperation } from "namirasoft-core";
|
|
12
|
+
import { NSBoxDate, NSBoxDateRange, NSBoxEntity } from "namirasoft-site-react";
|
|
13
|
+
import { NSAFilterBoxBase } from "./NSAFilterBoxBase";
|
|
14
|
+
import { NSAFilterBoxBoolean } from "./NSAFilterBoxBoolean";
|
|
15
|
+
const ENTITY_OPERATORS = ["equals"];
|
|
16
|
+
export class NSAFilterBoxDate extends NSAFilterBoxBase {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.betweenActive = false;
|
|
20
|
+
this.list = (filters, _page, _size, _sorts) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
var _a;
|
|
22
|
+
const searchFilter = filters === null || filters === void 0 ? void 0 : filters.find(f => f.values.length > 0);
|
|
23
|
+
const search = (_a = searchFilter === null || searchFilter === void 0 ? void 0 : searchFilter.values[0]) !== null && _a !== void 0 ? _a : "";
|
|
24
|
+
const rows = yield this.props.getValues(search);
|
|
25
|
+
return { count: rows.length, rows };
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
const { config, onChanged } = this.props;
|
|
30
|
+
const op = config.operatorName
|
|
31
|
+
? FilterItemOperator.getByName(config.operatorName)
|
|
32
|
+
: null;
|
|
33
|
+
if (op && op.count === 0)
|
|
34
|
+
return _jsx(NSAFilterBoxBoolean, { config: config, onChanged: onChanged });
|
|
35
|
+
if (config.operatorName === "between")
|
|
36
|
+
return (_jsx(NSBoxDateRange, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, preset: true, onChanged: e => {
|
|
37
|
+
const val = e.getValue();
|
|
38
|
+
if (val) {
|
|
39
|
+
this.betweenActive = true;
|
|
40
|
+
onChanged(this.buildBetweenFilterItems(TimeOperation.toDBFormat(val.from), TimeOperation.toDBFormat(val.to)));
|
|
41
|
+
}
|
|
42
|
+
else if (this.betweenActive) {
|
|
43
|
+
this.betweenActive = false;
|
|
44
|
+
onChanged(null);
|
|
45
|
+
}
|
|
46
|
+
} }));
|
|
47
|
+
if (config.operatorName && ENTITY_OPERATORS.includes(config.operatorName))
|
|
48
|
+
return (_jsx(NSBoxEntity, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, multiple: false, list: this.list, table_name: config.column.table.name, getValue: item => item.value, getTitle: item => item.title, getSort: () => null, onChanged: e => {
|
|
49
|
+
const val = e.getValueOne();
|
|
50
|
+
onChanged(val ? this.buildFilterItem(val) : null);
|
|
51
|
+
} }));
|
|
52
|
+
return (_jsx(NSBoxDate, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, onChanged: e => {
|
|
53
|
+
const val = e.getValue();
|
|
54
|
+
onChanged(val ? this.buildFilterItem(TimeOperation.toDBFormat(val)) : null);
|
|
55
|
+
} }));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=NSAFilterBoxDate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterBoxDate.js","sourceRoot":"","sources":["../../../src/components/NSAQuickFilter/NSAFilterBoxDate.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NSAFilterBoxBase, NSAFilterBoxBaseProps } from "./NSAFilterBoxBase";
|
|
2
|
+
export interface NSAFilterBoxDateTimeProps extends NSAFilterBoxBaseProps {
|
|
3
|
+
getValues: (search: string) => Promise<{
|
|
4
|
+
value: string;
|
|
5
|
+
title: string;
|
|
6
|
+
}[]>;
|
|
7
|
+
}
|
|
8
|
+
export declare class NSAFilterBoxDateTime extends NSAFilterBoxBase<NSAFilterBoxDateTimeProps> {
|
|
9
|
+
private betweenActive;
|
|
10
|
+
private list;
|
|
11
|
+
render(): JSX.Element | null;
|
|
12
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
import { FilterItemOperator, TimeOperation } from "namirasoft-core";
|
|
12
|
+
import { NSBoxDateTime, NSBoxDateTimeRange, NSBoxEntity } from "namirasoft-site-react";
|
|
13
|
+
import { NSAFilterBoxBase } from "./NSAFilterBoxBase";
|
|
14
|
+
import { NSAFilterBoxBoolean } from "./NSAFilterBoxBoolean";
|
|
15
|
+
const ENTITY_OPERATORS = ["equals"];
|
|
16
|
+
export class NSAFilterBoxDateTime extends NSAFilterBoxBase {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.betweenActive = false;
|
|
20
|
+
this.list = (filters, _page, _size, _sorts) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
var _a;
|
|
22
|
+
const searchFilter = filters === null || filters === void 0 ? void 0 : filters.find(f => f.values.length > 0);
|
|
23
|
+
const search = (_a = searchFilter === null || searchFilter === void 0 ? void 0 : searchFilter.values[0]) !== null && _a !== void 0 ? _a : "";
|
|
24
|
+
const rows = yield this.props.getValues(search);
|
|
25
|
+
return { count: rows.length, rows };
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
const { config, onChanged } = this.props;
|
|
30
|
+
const op = config.operatorName
|
|
31
|
+
? FilterItemOperator.getByName(config.operatorName)
|
|
32
|
+
: null;
|
|
33
|
+
if (op && op.count === 0)
|
|
34
|
+
return _jsx(NSAFilterBoxBoolean, { config: config, onChanged: onChanged });
|
|
35
|
+
if (config.operatorName === "between")
|
|
36
|
+
return (_jsx(NSBoxDateTimeRange, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, preset: true, onChanged: e => {
|
|
37
|
+
const val = e.getValue();
|
|
38
|
+
if (val) {
|
|
39
|
+
this.betweenActive = true;
|
|
40
|
+
onChanged(this.buildBetweenFilterItems(TimeOperation.toDBFormat(val.from), TimeOperation.toDBFormat(val.to)));
|
|
41
|
+
}
|
|
42
|
+
else if (this.betweenActive) {
|
|
43
|
+
this.betweenActive = false;
|
|
44
|
+
onChanged(null);
|
|
45
|
+
}
|
|
46
|
+
} }));
|
|
47
|
+
if (config.operatorName && ENTITY_OPERATORS.includes(config.operatorName))
|
|
48
|
+
return (_jsx(NSBoxEntity, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, multiple: false, list: this.list, table_name: config.column.table.name, getValue: item => item.value, getTitle: item => item.title, getSort: () => null, onChanged: e => {
|
|
49
|
+
const val = e.getValueOne();
|
|
50
|
+
onChanged(val ? this.buildFilterItem(val) : null);
|
|
51
|
+
} }));
|
|
52
|
+
return (_jsx(NSBoxDateTime, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, defaultValue: undefined, onChanged: e => {
|
|
53
|
+
const val = e.getValue();
|
|
54
|
+
onChanged(val ? this.buildFilterItem(TimeOperation.toDBFormat(val)) : null);
|
|
55
|
+
} }));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=NSAFilterBoxDateTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterBoxDateTime.js","sourceRoot":"","sources":["../../../src/components/NSAQuickFilter/NSAFilterBoxDateTime.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NSAFilterBoxBase, NSAFilterBoxBaseProps } from "./NSAFilterBoxBase";
|
|
2
|
+
export interface NSAFilterBoxEnumProps extends NSAFilterBoxBaseProps {
|
|
3
|
+
getValues: (search: string) => Promise<{
|
|
4
|
+
value: string;
|
|
5
|
+
title: string;
|
|
6
|
+
}[]>;
|
|
7
|
+
}
|
|
8
|
+
type ValueItem = {
|
|
9
|
+
value: string;
|
|
10
|
+
title: string;
|
|
11
|
+
};
|
|
12
|
+
type State = {
|
|
13
|
+
loading: boolean;
|
|
14
|
+
values: ValueItem[];
|
|
15
|
+
selectedValues: string[];
|
|
16
|
+
};
|
|
17
|
+
export declare class NSAFilterBoxEnum extends NSAFilterBoxBase<NSAFilterBoxEnumProps, State> {
|
|
18
|
+
constructor(props: NSAFilterBoxEnumProps);
|
|
19
|
+
componentDidMount(): Promise<void>;
|
|
20
|
+
render(): JSX.Element | null;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { FilterItemOperator } from "namirasoft-core";
|
|
12
|
+
import { NSLoading } from "namirasoft-site-react";
|
|
13
|
+
import { NSAFilterBoxBase } from "./NSAFilterBoxBase";
|
|
14
|
+
import { NSAFilterBoxBoolean } from "./NSAFilterBoxBoolean";
|
|
15
|
+
import Styles from "./NSAFilterBoxEnum.module.css";
|
|
16
|
+
export class NSAFilterBoxEnum extends NSAFilterBoxBase {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
super(props);
|
|
19
|
+
this.state = { loading: false, values: [], selectedValues: [] };
|
|
20
|
+
}
|
|
21
|
+
componentDidMount() {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
this.setState({ loading: true });
|
|
24
|
+
const values = yield this.props.getValues("");
|
|
25
|
+
this.setState({ loading: false, values });
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
const { config, onChanged } = this.props;
|
|
30
|
+
const op = config.operatorName
|
|
31
|
+
? FilterItemOperator.getByName(config.operatorName)
|
|
32
|
+
: null;
|
|
33
|
+
if (op && op.count === 0)
|
|
34
|
+
return _jsx(NSAFilterBoxBoolean, { config: config, onChanged: onChanged });
|
|
35
|
+
if (config.operatorName === "equals") {
|
|
36
|
+
return (_jsxs("div", { className: Styles.container, children: [_jsx("span", { className: Styles.title, children: this.getLabel() }), this.state.loading
|
|
37
|
+
? _jsx(NSLoading, { classList: ["p-2"], small: true, hideTitle: true, hideDescription: true })
|
|
38
|
+
: this.state.values.map(item => {
|
|
39
|
+
const isActive = this.state.selectedValues.includes(item.value);
|
|
40
|
+
return (_jsx("button", { className: `${Styles.option} ${isActive ? Styles.option_active : ""}`, onClick: () => {
|
|
41
|
+
const next = isActive
|
|
42
|
+
? this.state.selectedValues.filter(v => v !== item.value)
|
|
43
|
+
: [...this.state.selectedValues, item.value];
|
|
44
|
+
this.setState({ selectedValues: next });
|
|
45
|
+
onChanged(next.length > 0 ? next.map(v => this.buildFilterItem(v)) : null);
|
|
46
|
+
}, children: item.title }, item.value));
|
|
47
|
+
})] }));
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=NSAFilterBoxEnum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterBoxEnum.js","sourceRoot":"","sources":["../../../src/components/NSAQuickFilter/NSAFilterBoxEnum.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NSAFilterBoxBase, NSAFilterBoxBaseProps } from "./NSAFilterBoxBase";
|
|
2
|
+
export interface NSAFilterBoxNumberProps extends NSAFilterBoxBaseProps {
|
|
3
|
+
getValues: (search: string) => Promise<{
|
|
4
|
+
value: string;
|
|
5
|
+
title: string;
|
|
6
|
+
}[]>;
|
|
7
|
+
}
|
|
8
|
+
interface NSAFilterBoxNumberState {
|
|
9
|
+
valueFrom: number | null;
|
|
10
|
+
valueTo: number | null;
|
|
11
|
+
}
|
|
12
|
+
export declare class NSAFilterBoxNumber extends NSAFilterBoxBase<NSAFilterBoxNumberProps, NSAFilterBoxNumberState> {
|
|
13
|
+
private debounce;
|
|
14
|
+
private betweenDebounce;
|
|
15
|
+
private betweenActive;
|
|
16
|
+
constructor(props: NSAFilterBoxNumberProps);
|
|
17
|
+
private emitDebounced;
|
|
18
|
+
private handleBetweenChange;
|
|
19
|
+
private list;
|
|
20
|
+
render(): JSX.Element | null;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { FilterItemOperator, SetTimeouService } from "namirasoft-core";
|
|
12
|
+
import { NSBoxDouble, NSBoxEntity, NSRow } from "namirasoft-site-react";
|
|
13
|
+
import { NSAFilterBoxBase } from "./NSAFilterBoxBase";
|
|
14
|
+
import { NSAFilterBoxBoolean } from "./NSAFilterBoxBoolean";
|
|
15
|
+
const ENTITY_OPERATORS = ["equals", "notequals"];
|
|
16
|
+
const DEBOUNCE_MS = 1000;
|
|
17
|
+
export class NSAFilterBoxNumber extends NSAFilterBoxBase {
|
|
18
|
+
constructor(props) {
|
|
19
|
+
super(props);
|
|
20
|
+
this.debounce = new SetTimeouService();
|
|
21
|
+
this.betweenDebounce = new SetTimeouService();
|
|
22
|
+
this.betweenActive = false;
|
|
23
|
+
this.list = (filters, _page, _size, _sorts) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
var _a;
|
|
25
|
+
const searchFilter = filters === null || filters === void 0 ? void 0 : filters.find(f => f.values.length > 0);
|
|
26
|
+
const search = (_a = searchFilter === null || searchFilter === void 0 ? void 0 : searchFilter.values[0]) !== null && _a !== void 0 ? _a : "";
|
|
27
|
+
const rows = yield this.props.getValues(search);
|
|
28
|
+
return { count: rows.length, rows };
|
|
29
|
+
});
|
|
30
|
+
this.state = { valueFrom: null, valueTo: null };
|
|
31
|
+
}
|
|
32
|
+
emitDebounced(value) {
|
|
33
|
+
this.debounce.setTimeoutIfNotCalledAgain(() => this.props.onChanged(value !== null ? this.buildFilterItem(String(value)) : null), DEBOUNCE_MS);
|
|
34
|
+
}
|
|
35
|
+
handleBetweenChange(patch) {
|
|
36
|
+
this.setState(patch, () => {
|
|
37
|
+
const { valueFrom, valueTo } = this.state;
|
|
38
|
+
this.betweenDebounce.setTimeoutIfNotCalledAgain(() => {
|
|
39
|
+
if (valueFrom !== null && valueTo !== null) {
|
|
40
|
+
this.betweenActive = true;
|
|
41
|
+
this.props.onChanged(this.buildBetweenFilterItems(String(valueFrom), String(valueTo)));
|
|
42
|
+
}
|
|
43
|
+
else if (this.betweenActive) {
|
|
44
|
+
this.betweenActive = false;
|
|
45
|
+
this.props.onChanged(null);
|
|
46
|
+
}
|
|
47
|
+
}, DEBOUNCE_MS);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
render() {
|
|
51
|
+
const { config, onChanged } = this.props;
|
|
52
|
+
const op = config.operatorName
|
|
53
|
+
? FilterItemOperator.getByName(config.operatorName)
|
|
54
|
+
: null;
|
|
55
|
+
if (op && op.count === 0)
|
|
56
|
+
return _jsx(NSAFilterBoxBoolean, { config: config, onChanged: onChanged });
|
|
57
|
+
if (config.operatorName === "between")
|
|
58
|
+
return (_jsxs(NSRow, { children: [_jsx(NSBoxDouble, { title: `${this.getLabel()} From`, placeholder: `${this.getLabel()} From`, required: false, hideHeader: true, onChanged: e => this.handleBetweenChange({ valueFrom: e.getValue() }) }), _jsx(NSBoxDouble, { title: `${this.getLabel()} To`, placeholder: `${this.getLabel()} To`, required: false, hideHeader: true, onChanged: e => this.handleBetweenChange({ valueTo: e.getValue() }) })] }));
|
|
59
|
+
if (config.operatorName && ENTITY_OPERATORS.includes(config.operatorName))
|
|
60
|
+
return (_jsx(NSBoxEntity, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, multiple: false, list: this.list, table_name: config.column.table.name, getValue: item => item.value, getTitle: item => item.title, getSort: () => null, onChanged: e => {
|
|
61
|
+
const val = e.getValueOne();
|
|
62
|
+
onChanged(val ? this.buildFilterItem(val) : null);
|
|
63
|
+
} }));
|
|
64
|
+
return (_jsx(NSBoxDouble, { title: this.getLabel(), placeholder: this.getLabel(), required: false, hideHeader: true, onChanged: e => this.emitDebounced(e.getValue()) }));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=NSAFilterBoxNumber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAFilterBoxNumber.js","sourceRoot":"","sources":["../../../src/components/NSAQuickFilter/NSAFilterBoxNumber.tsx"],"names":[],"mappings":"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"}
|