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.
Files changed (74) hide show
  1. package/dist/IEntityInfo.d.ts +3 -1
  2. package/dist/NSACacheService.d.ts +3 -0
  3. package/dist/NSACacheService.js +13 -0
  4. package/dist/NSACacheService.js.map +1 -1
  5. package/dist/NSAFilterOperators.d.ts +28 -0
  6. package/dist/NSAFilterOperators.js +50 -0
  7. package/dist/NSAFilterOperators.js.map +1 -0
  8. package/dist/components/NSAQuickFilter/NSAFilterBoxBase.d.ts +14 -0
  9. package/dist/components/NSAQuickFilter/NSAFilterBoxBase.js +40 -0
  10. package/dist/components/NSAQuickFilter/NSAFilterBoxBase.js.map +1 -0
  11. package/dist/components/NSAQuickFilter/NSAFilterBoxBoolean.d.ts +12 -0
  12. package/dist/components/NSAQuickFilter/NSAFilterBoxBoolean.js +30 -0
  13. package/dist/components/NSAQuickFilter/NSAFilterBoxBoolean.js.map +1 -0
  14. package/dist/components/NSAQuickFilter/NSAFilterBoxDate.d.ts +12 -0
  15. package/dist/components/NSAQuickFilter/NSAFilterBoxDate.js +58 -0
  16. package/dist/components/NSAQuickFilter/NSAFilterBoxDate.js.map +1 -0
  17. package/dist/components/NSAQuickFilter/NSAFilterBoxDateTime.d.ts +12 -0
  18. package/dist/components/NSAQuickFilter/NSAFilterBoxDateTime.js +58 -0
  19. package/dist/components/NSAQuickFilter/NSAFilterBoxDateTime.js.map +1 -0
  20. package/dist/components/NSAQuickFilter/NSAFilterBoxEnum.d.ts +22 -0
  21. package/dist/components/NSAQuickFilter/NSAFilterBoxEnum.js +52 -0
  22. package/dist/components/NSAQuickFilter/NSAFilterBoxEnum.js.map +1 -0
  23. package/dist/components/NSAQuickFilter/NSAFilterBoxNumber.d.ts +22 -0
  24. package/dist/components/NSAQuickFilter/NSAFilterBoxNumber.js +67 -0
  25. package/dist/components/NSAQuickFilter/NSAFilterBoxNumber.js.map +1 -0
  26. package/dist/components/NSAQuickFilter/NSAFilterBoxString.d.ts +13 -0
  27. package/dist/components/NSAQuickFilter/NSAFilterBoxString.js +47 -0
  28. package/dist/components/NSAQuickFilter/NSAFilterBoxString.js.map +1 -0
  29. package/dist/components/NSAQuickFilter/NSAFilterBoxTime.d.ts +12 -0
  30. package/dist/components/NSAQuickFilter/NSAFilterBoxTime.js +58 -0
  31. package/dist/components/NSAQuickFilter/NSAFilterBoxTime.js.map +1 -0
  32. package/dist/components/NSAQuickFilter/NSAQuickFilterBar.d.ts +28 -0
  33. package/dist/components/NSAQuickFilter/NSAQuickFilterBar.js +74 -0
  34. package/dist/components/NSAQuickFilter/NSAQuickFilterBar.js.map +1 -0
  35. package/dist/components/NSAQuickFilter/NSAQuickFilterDialog.d.ts +43 -0
  36. package/dist/components/NSAQuickFilter/NSAQuickFilterDialog.js +114 -0
  37. package/dist/components/NSAQuickFilter/NSAQuickFilterDialog.js.map +1 -0
  38. package/dist/components/NSAReorderDialog.d.ts +30 -0
  39. package/dist/components/NSAReorderDialog.js +69 -0
  40. package/dist/components/NSAReorderDialog.js.map +1 -0
  41. package/dist/components/NSAReorderDialog.module.css +50 -0
  42. package/dist/components/NSASortDialog.d.ts +21 -0
  43. package/dist/components/NSASortDialog.js +61 -0
  44. package/dist/components/NSASortDialog.js.map +1 -0
  45. package/dist/components/NSATable.d.ts +95 -0
  46. package/dist/components/NSATable.js +335 -0
  47. package/dist/components/NSATable.js.map +1 -0
  48. package/dist/layouts/NSASectionList.d.ts +7 -37
  49. package/dist/layouts/NSASectionList.js +17 -247
  50. package/dist/layouts/NSASectionList.js.map +1 -1
  51. package/dist/layouts/NSASectionList.module.css +15 -18
  52. package/package.json +2 -2
  53. package/src/IEntityInfo.ts +3 -1
  54. package/src/NSACacheService.ts +20 -0
  55. package/src/NSAFilterOperators.ts +93 -0
  56. package/src/components/NSAQuickFilter/NSAFilterBoxBase.tsx +56 -0
  57. package/src/components/NSAQuickFilter/NSAFilterBoxBoolean.tsx +55 -0
  58. package/src/components/NSAQuickFilter/NSAFilterBoxDate.tsx +105 -0
  59. package/src/components/NSAQuickFilter/NSAFilterBoxDateTime.tsx +106 -0
  60. package/src/components/NSAQuickFilter/NSAFilterBoxEnum.module.css +45 -0
  61. package/src/components/NSAQuickFilter/NSAFilterBoxEnum.tsx +80 -0
  62. package/src/components/NSAQuickFilter/NSAFilterBoxNumber.tsx +137 -0
  63. package/src/components/NSAQuickFilter/NSAFilterBoxString.tsx +82 -0
  64. package/src/components/NSAQuickFilter/NSAFilterBoxTime.tsx +102 -0
  65. package/src/components/NSAQuickFilter/NSAQuickFilterBar.module.css +20 -0
  66. package/src/components/NSAQuickFilter/NSAQuickFilterBar.tsx +115 -0
  67. package/src/components/NSAQuickFilter/NSAQuickFilterDialog.module.css +75 -0
  68. package/src/components/NSAQuickFilter/NSAQuickFilterDialog.tsx +261 -0
  69. package/src/components/NSAReorderDialog.module.css +50 -0
  70. package/src/components/NSAReorderDialog.tsx +150 -0
  71. package/src/components/NSASortDialog.tsx +118 -0
  72. package/src/components/NSATable.tsx +490 -0
  73. package/src/layouts/NSASectionList.module.css +15 -18
  74. package/src/layouts/NSASectionList.tsx +43 -395
@@ -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
  }
@@ -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":"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"}
1
+ {"version":3,"file":"NSACacheService.js","sourceRoot":"","sources":["../src/NSACacheService.ts"],"names":[],"mappings":"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"}
@@ -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":";;;;;;;;;;AAAA,OAAO,EAAc,kBAAkB,EAAY,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS5D,MAAM,gBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEpC,MAAM,OAAO,oBAAqB,SAAQ,gBAA2C;IAArF;;QAEY,kBAAa,GAAG,KAAK,CAAC;QAEtB,SAAI,GAAG,CACX,OAA4B,EAC5B,KAAoB,EACpB,KAAoB,EACpB,MAAkB,EAC2B,EAAE;;YAE/C,MAAM,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC,CAAA,CAAC;IA4EN,CAAC;IA1EY,MAAM;QAEX,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY;YAC1B,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC;YACpB,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;QAEzE,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;YACjC,OAAO,CACH,KAAC,kBAAkB,IACf,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EACtB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC5B,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,IAAI,EAChB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,CAAC,CAAC,EAAE;oBAEX,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACzB,IAAI,GAAG,EACP,CAAC;wBACG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAClC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAClC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CACnC,CAAC,CAAC;oBACP,CAAC;yBACI,IAAI,IAAI,CAAC,aAAa,EAC3B,CAAC;wBACG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpB,CAAC;gBACL,CAAC,GACH,CACL,CAAC;QAEN,IAAI,MAAM,CAAC,YAAY,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;YACrE,OAAO,CACH,KAAC,WAAW,IACR,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EACtB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC5B,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EACpC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAC5B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EACnB,SAAS,EAAE,CAAC,CAAC,EAAE;oBAEX,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC5B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC,GACH,CACL,CAAC;QAEN,OAAO,CACH,KAAC,aAAa,IACV,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EACtB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC5B,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,IAAI,EAChB,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,CAAC,CAAC,EAAE;gBAEX,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChF,CAAC,GACH,CACL,CAAC;IACN,CAAC;CACJ"}
@@ -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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"}