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
@@ -0,0 +1,61 @@
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 { BaseMetaColumn, BaseMetaTable, SortItem } from "namirasoft-core";
12
+ import { NSBoxBaseCombo, NSBoxBoolean, NSBoxCombo, NSButtonBlue, NSColumn, NSDialog, NSTitle } from "namirasoft-site-react";
13
+ import { Component, createRef } from "react";
14
+ export class NSASortDialog extends Component {
15
+ constructor(props) {
16
+ super(props);
17
+ this.sortBoolRef = createRef();
18
+ this.sortColumnRef = createRef();
19
+ this.sortDirectionRef = createRef();
20
+ this.handleApply = () => {
21
+ var _a, _b, _c;
22
+ if (!((_a = this.sortBoolRef.current) === null || _a === void 0 ? void 0 : _a.getValueBool())) {
23
+ this.props.onApply(null);
24
+ return;
25
+ }
26
+ const column = (_b = this.sortColumnRef.current) === null || _b === void 0 ? void 0 : _b.getDataOne();
27
+ const direction = (_c = this.sortDirectionRef.current) === null || _c === void 0 ? void 0 : _c.getValueOne();
28
+ if (column) {
29
+ const t = new BaseMetaTable(null, column.table.name, column.table.text);
30
+ const c = new BaseMetaColumn(t, column.name, column.text, "", true);
31
+ const sort = new SortItem(t, c, direction === "true");
32
+ this.props.onApply([sort]);
33
+ }
34
+ else
35
+ this.props.onApply(null);
36
+ };
37
+ this.state = { sortEnabled: props.sorts.length > 0 };
38
+ }
39
+ render() {
40
+ var _a, _b;
41
+ const { sorts, getColumns, onCancel } = this.props;
42
+ return (_jsxs(NSDialog, { center_dialog: true, closeButton: { show: true }, onClose: onCancel, children: [_jsx(NSTitle, { title: "Sort", style: { marginBottom: 0, fontSize: 24 } }), _jsxs(NSColumn, { classList: ["align-items-center mt-3"], children: [_jsx(NSBoxBoolean, { ref: this.sortBoolRef, required: true, title: "Sort", hideHeader: true, checked: sorts.length > 0, onChanged: () => this.setState(prev => ({ sortEnabled: !prev.sortEnabled })) }), _jsx(NSBoxBaseCombo, { ref: this.sortColumnRef, title: "Column", required: true, defaultValue: (_a = sorts[0]) === null || _a === void 0 ? void 0 : _a.column.name, getItems: () => __awaiter(this, void 0, void 0, function* () {
43
+ const cs = getColumns();
44
+ return { count: cs.length, rows: cs };
45
+ }), getTitle: c => c.text, getValue: c => c.name, getSort: () => null, multiple: false, disabled: this.state.sortEnabled, menu: {
46
+ builtin: {
47
+ copy: { enabled: false, getValue: () => "" }
48
+ },
49
+ items: []
50
+ } }), _jsx(NSBoxCombo, { ref: this.sortDirectionRef, title: "Direction", required: true, defaultValue: ((_b = sorts[0]) === null || _b === void 0 ? void 0 : _b.ascending) + "", getOptions: () => [
51
+ { value: "true", title: "Ascending" },
52
+ { value: "false", title: "Descending" }
53
+ ], multiple: false, disabled: this.state.sortEnabled, menu: {
54
+ builtin: {
55
+ copy: { enabled: false, getValue: () => "" }
56
+ },
57
+ items: []
58
+ } }), _jsx(NSButtonBlue, { title: "Apply", onClick: { action: this.handleApply, showLoading: false } })] })] }));
59
+ }
60
+ }
61
+ //# sourceMappingURL=NSASortDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NSASortDialog.js","sourceRoot":"","sources":["../../src/components/NSASortDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { FilterItem, SortItem } from "namirasoft-core";
2
+ import { CategoryRow, FieldRow } from "namirasoft-field";
3
+ import { IBaseComponentProps, NSButtonProps, NSFilterBox, NSTable, TableColumnInfo, TableRowInfo } from "namirasoft-site-react";
4
+ import { Component, ReactNode } from "react";
5
+ import { IEntityInfo } from "../IEntityInfo";
6
+ import { NSAQuickFilterBar } from "./NSAQuickFilter/NSAQuickFilterBar";
7
+ import { QuickFilterConfig } from "./NSAQuickFilter/NSAQuickFilterDialog";
8
+ export interface NSATableUIProps<RowType> {
9
+ getRowAttributes?: (row_value: RowType, row_index: number, res: {
10
+ rows: RowType[];
11
+ count: number;
12
+ } | null) => {
13
+ [key: string]: any;
14
+ };
15
+ getColumnAttributes?: (column: TableColumnInfo) => {
16
+ [key: string]: any;
17
+ };
18
+ getCellFormattedValue?: (value: any, column: TableColumnInfo, row: TableRowInfo<RowType>) => any;
19
+ search_box?: {
20
+ exclude?: {
21
+ show?: {
22
+ table?: (table: string) => boolean;
23
+ column?: (table: string, column: string) => boolean;
24
+ };
25
+ load_value?: (table: string, column: string) => boolean;
26
+ };
27
+ };
28
+ }
29
+ export interface NSATableProps<RowType extends {
30
+ id: string;
31
+ }, RowTypeInput = RowType> extends IBaseComponentProps {
32
+ entity: IEntityInfo<RowType, RowTypeInput>;
33
+ ctf: {
34
+ enabled: boolean;
35
+ fields: FieldRow[] | null;
36
+ categories: CategoryRow[] | null;
37
+ };
38
+ url: {
39
+ getQuery(name: string, base64?: boolean, remove?: boolean): string;
40
+ };
41
+ ui?: NSATableUIProps<RowType>;
42
+ checkbox?: boolean;
43
+ buttons?: NSButtonProps[];
44
+ onSelectionChanged?: () => void;
45
+ }
46
+ interface NSATableState<RowType> {
47
+ res: {
48
+ rows: RowType[];
49
+ count: number;
50
+ } | null;
51
+ sorts: SortItem[];
52
+ visible_column_keys: string[];
53
+ quick_filter_configs: QuickFilterConfig[];
54
+ show_sort_dialog: boolean;
55
+ show_reorder_dialog: boolean;
56
+ show_quick_filter_dialog: boolean;
57
+ filter_revision: number;
58
+ }
59
+ export declare class NSATable<RowType extends {
60
+ id: string;
61
+ }, RowTypeInput = RowType> extends Component<NSATableProps<RowType, RowTypeInput>, NSATableState<RowType>> {
62
+ NSTable_Main: import("react").RefObject<NSTable<RowType>>;
63
+ NSFilterBox_Top: import("react").RefObject<NSFilterBox>;
64
+ NSAQuickFilterBar_Ref: import("react").RefObject<NSAQuickFilterBar>;
65
+ constructor(props: NSATableProps<RowType, RowTypeInput>);
66
+ componentDidMount(): void;
67
+ private getColumns;
68
+ private buildDefaultQuickFilters;
69
+ private filterItemTypeConverter;
70
+ private getIncomingFilterItems;
71
+ reload(page: number | null, size: number | null): Promise<void> | undefined;
72
+ getSelectedIDs(): string[];
73
+ getSelectedRows(): RowType[];
74
+ setSelectedIDs(ids: string[], rows: RowType[], callback?: () => void): void;
75
+ getSortItems(): SortItem[];
76
+ setSortItems(items: SortItem[] | null): void;
77
+ getVisibleColumns(): {
78
+ table: string;
79
+ column: string;
80
+ }[];
81
+ setVisibleColumns(visible_columns: {
82
+ table: string;
83
+ column: string;
84
+ }[]): void;
85
+ getFilterBoxItems(): FilterItem[];
86
+ getQuickFilterItems(): FilterItem[];
87
+ getFilterItems(): FilterItem[];
88
+ private reloadFromFilters;
89
+ private onFilterBoxChanged;
90
+ private buildButtons;
91
+ private renderFilterHeader;
92
+ private getOrderedColumns;
93
+ render(): ReactNode;
94
+ }
95
+ export {};
@@ -0,0 +1,335 @@
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, Fragment as _Fragment } from "react/jsx-runtime";
11
+ import { FilterItem, FilterItemColumnType, NamingConvention, ObjectService, SearchOperation } from "namirasoft-core";
12
+ import { FilterItemColumnTypeBuilder, VariableType } from "namirasoft-schema";
13
+ import { NSFilterBox, NSFilterBoxItems, NSTable } from "namirasoft-site-react";
14
+ import { Component, createRef } from "react";
15
+ import { NSACacheService } from "../NSACacheService";
16
+ import { NSAQuickFilterBar } from "./NSAQuickFilter/NSAQuickFilterBar";
17
+ import { NSAQuickFilterDialog } from "./NSAQuickFilter/NSAQuickFilterDialog";
18
+ import { NSAReorderDialog } from "./NSAReorderDialog";
19
+ import { NSASortDialog } from "./NSASortDialog";
20
+ export class NSATable extends Component {
21
+ constructor(props) {
22
+ super(props);
23
+ this.NSTable_Main = createRef();
24
+ this.NSFilterBox_Top = createRef();
25
+ this.NSAQuickFilterBar_Ref = createRef();
26
+ this.onFilterBoxChanged = () => {
27
+ this.reloadFromFilters();
28
+ this.setState(prev => ({ filter_revision: prev.filter_revision + 1 }));
29
+ };
30
+ this.state = {
31
+ res: null,
32
+ sorts: [],
33
+ visible_column_keys: [],
34
+ quick_filter_configs: [],
35
+ show_sort_dialog: false,
36
+ show_reorder_dialog: false,
37
+ show_quick_filter_dialog: false,
38
+ filter_revision: 0,
39
+ };
40
+ }
41
+ componentDidMount() {
42
+ var _a, _b;
43
+ const visible = (_b = (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.getVisibleColumns()) !== null && _b !== void 0 ? _b : [];
44
+ if (visible.length > 0)
45
+ this.setState({ visible_column_keys: visible.map(v => v.table + "." + v.column) });
46
+ let quick_filter_configs = NSACacheService.loadQuickFilters(this.props.entity.name);
47
+ if (quick_filter_configs.length === 0)
48
+ quick_filter_configs = this.buildDefaultQuickFilters();
49
+ this.setState(prev => ({ quick_filter_configs, filter_revision: prev.filter_revision + 1 }));
50
+ }
51
+ getColumns() {
52
+ let columns = Object.values(this.props.entity.client.getColumns()).flat();
53
+ columns.forEach(col => {
54
+ col.text = NamingConvention.auto.convert(col.text, NamingConvention.Pascal_Case_Space);
55
+ });
56
+ return columns;
57
+ }
58
+ buildDefaultQuickFilters() {
59
+ const getDefaults = this.props.entity.client.getQuickFilters;
60
+ if (!getDefaults)
61
+ return [];
62
+ const columns = this.getColumns();
63
+ const ans = [];
64
+ for (const def of getDefaults()) {
65
+ const col = columns.find(c => c.name === def.column);
66
+ if (!col)
67
+ continue;
68
+ const columnType = new ObjectService(col.type).getEnum(VariableType, VariableType.Any);
69
+ ans.push({
70
+ id: `default-${col.table.name}-${col.name}`,
71
+ column: {
72
+ table: { name: col.table.name, text: col.table.text },
73
+ name: col.name,
74
+ text: col.text,
75
+ type: col.type,
76
+ columnType,
77
+ },
78
+ operatorName: def.operator,
79
+ });
80
+ }
81
+ return ans;
82
+ }
83
+ filterItemTypeConverter(type) {
84
+ var _a;
85
+ let t = new ObjectService(type).getEnum(VariableType, VariableType.Any);
86
+ let builder = new FilterItemColumnTypeBuilder(t);
87
+ return (_a = builder.runSynch(() => { })) !== null && _a !== void 0 ? _a : FilterItemColumnType.Unknown;
88
+ }
89
+ getIncomingFilterItems() {
90
+ var _a;
91
+ try {
92
+ let encoded = this.props.url.getQuery("filters");
93
+ if (encoded)
94
+ return (_a = FilterItem.decode(encoded)) !== null && _a !== void 0 ? _a : undefined;
95
+ }
96
+ catch (error) {
97
+ }
98
+ return undefined;
99
+ }
100
+ reload(page, size) {
101
+ var _a;
102
+ return (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.reload(page, size);
103
+ }
104
+ getSelectedIDs() {
105
+ var _a, _b;
106
+ return (_b = (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.getSelectedIDs()) !== null && _b !== void 0 ? _b : [];
107
+ }
108
+ getSelectedRows() {
109
+ var _a, _b;
110
+ return (_b = (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.getSelectedRows()) !== null && _b !== void 0 ? _b : [];
111
+ }
112
+ setSelectedIDs(ids, rows, callback) {
113
+ var _a;
114
+ (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.setSelectedIDs(ids, rows, callback);
115
+ }
116
+ getSortItems() {
117
+ var _a, _b;
118
+ return (_b = (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.getSortItems()) !== null && _b !== void 0 ? _b : [];
119
+ }
120
+ setSortItems(items) {
121
+ var _a;
122
+ (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.setSortItems(items);
123
+ }
124
+ getVisibleColumns() {
125
+ var _a, _b;
126
+ return (_b = (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.getVisibleColumns()) !== null && _b !== void 0 ? _b : [];
127
+ }
128
+ setVisibleColumns(visible_columns) {
129
+ var _a;
130
+ (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.setVisibleColumns(visible_columns);
131
+ }
132
+ getFilterBoxItems() {
133
+ var _a, _b;
134
+ return (_b = (_a = this.NSFilterBox_Top.current) === null || _a === void 0 ? void 0 : _a.getFilterItems()) !== null && _b !== void 0 ? _b : [];
135
+ }
136
+ getQuickFilterItems() {
137
+ var _a, _b;
138
+ return (_b = (_a = this.NSAQuickFilterBar_Ref.current) === null || _a === void 0 ? void 0 : _a.getFilterItems()) !== null && _b !== void 0 ? _b : [];
139
+ }
140
+ getFilterItems() {
141
+ return [...this.getFilterBoxItems(), ...this.getQuickFilterItems()];
142
+ }
143
+ reloadFromFilters() {
144
+ var _a, _b;
145
+ (_a = this.NSTable_Main.current) === null || _a === void 0 ? void 0 : _a.setSelectedIDs([], []);
146
+ (_b = this.NSTable_Main.current) === null || _b === void 0 ? void 0 : _b.reload(null, null);
147
+ }
148
+ buildButtons() {
149
+ var _a;
150
+ const buttons = [
151
+ {
152
+ title: "",
153
+ icon: { src: "https://static.namirasoft.com/image/concept/grip-vertical/blue.svg", alt: "reorder" },
154
+ attributes: { title: "Reorder" },
155
+ onClick: {
156
+ action: () => this.setState({ show_reorder_dialog: true, visible_column_keys: this.getVisibleColumns().map(c => c.table + "." + c.column) }),
157
+ showLoading: false,
158
+ },
159
+ },
160
+ {
161
+ title: "",
162
+ icon: { src: "https://static.namirasoft.com/image/concept/arrow-down-short-wide/blue.svg", alt: "sort" },
163
+ attributes: { title: "Sort" },
164
+ onClick: {
165
+ action: () => this.setState({ show_sort_dialog: true, sorts: this.getSortItems() }),
166
+ showLoading: false,
167
+ },
168
+ },
169
+ {
170
+ title: "",
171
+ icon: { src: "https://static.namirasoft.com/image/concept/sliders/blue.svg", alt: "filter" },
172
+ attributes: { title: "Quick Filters" },
173
+ onClick: {
174
+ action: () => this.setState({ show_quick_filter_dialog: true }),
175
+ showLoading: false,
176
+ },
177
+ },
178
+ ];
179
+ return [...buttons, ...((_a = this.props.buttons) !== null && _a !== void 0 ? _a : [])];
180
+ }
181
+ renderFilterHeader() {
182
+ return (_jsx(NSFilterBox, { ref: this.NSFilterBox_Top, filterItems: this.getIncomingFilterItems(), getTables: () => {
183
+ return this.props.entity.tables.map(table => {
184
+ let columns = table.table.getColumns().map(c => (Object.assign(Object.assign({ id: c.name }, c), { type: this.filterItemTypeConverter(c.type) })));
185
+ columns = columns.filter(c => {
186
+ var _a, _b, _c, _d, _e, _f, _g;
187
+ if ((_d = (_c = (_b = (_a = this.props.ui) === null || _a === void 0 ? void 0 : _a.search_box) === null || _b === void 0 ? void 0 : _b.exclude) === null || _c === void 0 ? void 0 : _c.show) === null || _d === void 0 ? void 0 : _d.column)
188
+ if ((_g = (_f = (_e = this.props.ui) === null || _e === void 0 ? void 0 : _e.search_box) === null || _f === void 0 ? void 0 : _f.exclude.show) === null || _g === void 0 ? void 0 : _g.column(table.table.name, c.name))
189
+ return false;
190
+ return true;
191
+ });
192
+ return { name: table.table.name, text: table.table.text, columns, required: table.required };
193
+ }).filter(t => {
194
+ var _a, _b, _c, _d, _e, _f;
195
+ if ((_d = (_c = (_b = (_a = this.props.ui) === null || _a === void 0 ? void 0 : _a.search_box) === null || _b === void 0 ? void 0 : _b.exclude) === null || _c === void 0 ? void 0 : _c.show) === null || _d === void 0 ? void 0 : _d.table)
196
+ if ((_f = (_e = this.props.ui) === null || _e === void 0 ? void 0 : _e.search_box) === null || _f === void 0 ? void 0 : _f.exclude.show.table(t.name))
197
+ return false;
198
+ return true;
199
+ });
200
+ }, getMoreTables: () => __awaiter(this, void 0, void 0, function* () {
201
+ let ans = [];
202
+ if (this.props.ctf.enabled)
203
+ try {
204
+ if (this.props.ctf.fields)
205
+ if (this.props.ctf.fields.length > 0) {
206
+ let name = this.props.entity.name + "_field";
207
+ ans.push({
208
+ name,
209
+ text: "Fields",
210
+ columns: [{
211
+ id: "field_id",
212
+ name: "field_id",
213
+ text: "ID",
214
+ type: FilterItemColumnType.Unknown,
215
+ getValues: (search) => __awaiter(this, void 0, void 0, function* () {
216
+ var _a, _b;
217
+ return (_b = (_a = this.props.ctf.fields) === null || _a === void 0 ? void 0 : _a.filter(c => SearchOperation.match(c.id, search)).map(c => { return { value: c.id, title: c.id }; })) !== null && _b !== void 0 ? _b : [];
218
+ })
219
+ }, {
220
+ id: "field_name",
221
+ name: "field_id",
222
+ text: "Name",
223
+ type: FilterItemColumnType.Unknown,
224
+ getValues: (search) => __awaiter(this, void 0, void 0, function* () {
225
+ var _a, _b;
226
+ return (_b = (_a = this.props.ctf.fields) === null || _a === void 0 ? void 0 : _a.filter(c => SearchOperation.match(c.name, search)).map(c => { return { value: c.id, title: c.name }; })) !== null && _b !== void 0 ? _b : [];
227
+ })
228
+ }, {
229
+ id: "field_value",
230
+ name: "value",
231
+ text: "Value",
232
+ type: FilterItemColumnType.Unknown
233
+ },
234
+ ...this.props.ctf.fields.map(f => {
235
+ return {
236
+ id: f.id,
237
+ name: f.id,
238
+ text: f.name,
239
+ type: this.filterItemTypeConverter(f.type.type.type),
240
+ getValues: (search) => __awaiter(this, void 0, void 0, function* () {
241
+ let values = yield this.props.entity.server.value_list(name, "value", search, f.id, null);
242
+ return values.map(v => { return { value: v, title: v }; });
243
+ })
244
+ };
245
+ }),],
246
+ required: false
247
+ });
248
+ }
249
+ if (this.props.ctf.categories)
250
+ if (this.props.ctf.categories.length > 0)
251
+ ans.push({
252
+ name: this.props.entity.name + "_category",
253
+ text: "Categories",
254
+ columns: [{
255
+ id: "category_id",
256
+ name: "category_id",
257
+ text: "ID",
258
+ type: FilterItemColumnType.Unknown,
259
+ getValues: (search) => __awaiter(this, void 0, void 0, function* () {
260
+ var _a, _b;
261
+ return (_b = (_a = this.props.ctf.categories) === null || _a === void 0 ? void 0 : _a.filter(c => SearchOperation.match(c.id, search)).map(c => { return { value: c.id, title: c.id }; })) !== null && _b !== void 0 ? _b : [];
262
+ })
263
+ }, {
264
+ id: "category_name",
265
+ name: "category_id",
266
+ text: "Name",
267
+ type: FilterItemColumnType.Unknown,
268
+ getValues: (search) => __awaiter(this, void 0, void 0, function* () {
269
+ var _a, _b;
270
+ return (_b = (_a = this.props.ctf.categories) === null || _a === void 0 ? void 0 : _a.filter(c => SearchOperation.match(c.name, search)).map(c => { return { value: c.id, title: c.name }; })) !== null && _b !== void 0 ? _b : [];
271
+ })
272
+ }],
273
+ required: false
274
+ });
275
+ }
276
+ catch (error) {
277
+ }
278
+ return ans;
279
+ }), getValues: (table, column, value) => __awaiter(this, void 0, void 0, function* () {
280
+ var _a, _b, _c, _d, _e, _f;
281
+ if ((_c = (_b = (_a = this.props.ui) === null || _a === void 0 ? void 0 : _a.search_box) === null || _b === void 0 ? void 0 : _b.exclude) === null || _c === void 0 ? void 0 : _c.load_value)
282
+ if ((_f = (_e = (_d = this.props.ui) === null || _d === void 0 ? void 0 : _d.search_box) === null || _e === void 0 ? void 0 : _e.exclude) === null || _f === void 0 ? void 0 : _f.load_value(table.name, column.name))
283
+ return [];
284
+ let values = yield this.props.entity.server.value_list(table.name, column.name, value, null, null);
285
+ return values.map(v => { return { value: v, title: v }; });
286
+ }), onChanged: this.onFilterBoxChanged }));
287
+ }
288
+ getOrderedColumns() {
289
+ const all = this.getColumns();
290
+ const vk = this.state.visible_column_keys;
291
+ if (vk.length === 0)
292
+ return all;
293
+ const ordered = vk.map(k => all.find(c => c.table.name + "." + c.name === k)).filter((c) => !!c);
294
+ const rest = all.filter(c => !vk.includes(c.table.name + "." + c.name));
295
+ return [...ordered, ...rest];
296
+ }
297
+ render() {
298
+ var _a, _b, _c, _d, _e;
299
+ const filterBoxItems = (_b = (_a = this.NSFilterBox_Top.current) === null || _a === void 0 ? void 0 : _a.getFilterItems()) !== null && _b !== void 0 ? _b : [];
300
+ const filterChips = filterBoxItems.length > 0 && (_jsx(NSFilterBoxItems, { filterItems: filterBoxItems, onClearFilterItems: () => { var _a; return (_a = this.NSFilterBox_Top.current) === null || _a === void 0 ? void 0 : _a.setFilterItems([]); }, onRemoveFilterItem: (item) => { var _a; return (_a = this.NSFilterBox_Top.current) === null || _a === void 0 ? void 0 : _a.removeFilterItem(item); } }));
301
+ const quickFilterBar = this.state.quick_filter_configs.length > 0 && (_jsx(NSAQuickFilterBar, { ref: this.NSAQuickFilterBar_Ref, configs: this.state.quick_filter_configs, getValues: (tableName, columnName, search) => __awaiter(this, void 0, void 0, function* () {
302
+ const values = yield this.props.entity.server.value_list(tableName, columnName, search, null, null);
303
+ const col = this.getColumns().find(c => c.table.name === tableName && c.name === columnName);
304
+ return values.map(v => {
305
+ const formatted = col ? col.formatter.format(v, col, { value: {} }, true) : null;
306
+ return { value: v, title: formatted != null ? String(formatted) : v };
307
+ });
308
+ }), onChanged: () => this.reloadFromFilters() }, this.state.quick_filter_configs.map(c => c.id).join("-")));
309
+ return (_jsxs(_Fragment, { children: [_jsxs(NSTable, { id: this.props.id, classList: this.props.classList, style: this.props.style, ref: this.NSTable_Main, name: NamingConvention.lower_case_dash.convert(this.props.entity.name, NamingConvention.Pascal_Case_Space), checkbox: (_c = this.props.checkbox) !== null && _c !== void 0 ? _c : true, headerChildren: this.renderFilterHeader(), buttons: this.buildButtons(), columns: this.getOrderedColumns(), getRows: (page, size, sorts) => __awaiter(this, void 0, void 0, function* () {
310
+ let res = { rows: [], count: 0 };
311
+ if (this.props.entity.server.list)
312
+ res = yield this.props.entity.server.list(this.getFilterItems(), page, size, sorts, null);
313
+ this.setState({ res });
314
+ return res;
315
+ }), getRowKey: (row) => row.value.id.toString(), getRowAttributes: (row_value, row_index) => { var _a, _b, _c; return (_c = (_b = (_a = this.props.ui) === null || _a === void 0 ? void 0 : _a.getRowAttributes) === null || _b === void 0 ? void 0 : _b.call(_a, row_value, row_index, this.state.res)) !== null && _c !== void 0 ? _c : {}; }, getColumnAttributes: (_d = this.props.ui) === null || _d === void 0 ? void 0 : _d.getColumnAttributes, getCellFormattedValue: (_e = this.props.ui) === null || _e === void 0 ? void 0 : _e.getCellFormattedValue, onVisibleColumnsChanged: (visible_columns) => this.setState({ visible_column_keys: visible_columns.map(c => c.table + "." + c.column) }), onSelectedIDsChanged: () => { var _a, _b; return (_b = (_a = this.props).onSelectionChanged) === null || _b === void 0 ? void 0 : _b.call(_a); }, children: [filterChips, quickFilterBar] }), this.state.show_sort_dialog &&
316
+ _jsx(NSASortDialog, { sorts: this.state.sorts, getColumns: () => this.getColumns(), onCancel: () => this.setState({ show_sort_dialog: false }), onApply: sorts => {
317
+ this.setSortItems(sorts);
318
+ this.setState({ show_sort_dialog: false, sorts: sorts !== null && sorts !== void 0 ? sorts : [] });
319
+ } }), this.state.show_reorder_dialog &&
320
+ _jsx(NSAReorderDialog, { visibleColumnKeys: this.state.visible_column_keys, getColumns: () => this.getColumns(), onCancel: () => this.setState({ show_reorder_dialog: false }), onApply: orderedKeys => {
321
+ const cs_all = this.getColumns();
322
+ const cs = orderedKeys.map((v) => cs_all.find((c) => v === c.table.name + "." + c.name)).filter(Boolean);
323
+ this.setVisibleColumns(cs.map(c => ({ table: c.table.name, column: c.name })));
324
+ this.setState({ show_reorder_dialog: false, visible_column_keys: orderedKeys });
325
+ } }), this.state.show_quick_filter_dialog &&
326
+ _jsx(NSAQuickFilterDialog, { configs: this.state.quick_filter_configs, getColumns: () => this.getColumns(), typeConverter: (type) => new ObjectService(type).getEnum(VariableType, VariableType.Any), onSave: configs => {
327
+ NSACacheService.saveQuickFilters(this.props.entity.name, configs);
328
+ this.setState({ quick_filter_configs: configs }, () => this.reloadFromFilters());
329
+ }, onConfirm: configs => {
330
+ NSACacheService.saveQuickFilters(this.props.entity.name, configs);
331
+ this.setState({ quick_filter_configs: configs, show_quick_filter_dialog: false }, () => this.reloadFromFilters());
332
+ }, onClose: () => this.setState({ show_quick_filter_dialog: false }) })] }));
333
+ }
334
+ }
335
+ //# sourceMappingURL=NSATable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NSATable.js","sourceRoot":"","sources":["../../src/components/NSATable.tsx"],"names":[],"mappings":"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"}
@@ -1,37 +1,18 @@
1
- import { Component, ReactNode } from "react";
2
- import { SortItem } from "namirasoft-core";
3
- import { NSTable, NSFilterBox, TableColumnInfo, TableRowInfo, IBaseComponentProps, NSBoxCombo, NSBoxBooleans, NSBoxBoolean, NSBoxBaseCombo } from "namirasoft-site-react";
4
1
  import { CategoryRow, FieldRow } from "namirasoft-field";
2
+ import { IBaseComponentProps, NSBoxCombo } from "namirasoft-site-react";
3
+ import { Component, ReactNode } from "react";
5
4
  import { IEntityInfo } from "../IEntityInfo";
6
5
  import { NSARouterMakerProps } from "../NSARouterMakerProps";
6
+ import { NSATable, NSATableUIProps } from "../components/NSATable";
7
7
  import { NSASectionViewTabPage, NSASectionViewTabPageUIProps } from "./NSASectionViewTabPage";
8
8
  export interface NSASectionListCustomProps<RowType extends {
9
9
  id: string;
10
10
  }, RowTypeInput = RowType> {
11
- ui?: {
12
- getRowAttributes?: (row_value: RowType, row_index: number, res: {
13
- rows: RowType[];
14
- count: number;
15
- } | null) => {
16
- [key: string]: any;
17
- };
18
- getColumnAttributes?: (column: TableColumnInfo) => {
19
- [key: string]: any;
20
- };
21
- getCellFormattedValue?: (value: any, column: TableColumnInfo, row: TableRowInfo<RowType>) => any;
11
+ ui?: NSATableUIProps<RowType> & {
22
12
  modes?: {
23
13
  [name: string]: (entity: IEntityInfo<RowType, RowTypeInput>) => JSX.Element;
24
14
  };
25
15
  default_mode?: string;
26
- search_box?: {
27
- exclude?: {
28
- show?: {
29
- table?: (table: string) => boolean;
30
- column?: (table: string, column: string) => boolean;
31
- };
32
- load_value?: (table: string, column: string) => boolean;
33
- };
34
- };
35
16
  tab_page_view?: NSASectionViewTabPageUIProps<RowType>;
36
17
  };
37
18
  onIDsChanged?: () => void;
@@ -49,26 +30,15 @@ export interface NSASectionListProps<RowType extends {
49
30
  deleteFieldCache: () => void;
50
31
  children?: ReactNode;
51
32
  }
52
- export interface NSASectionListState<RowType> {
53
- res: {
54
- rows: RowType[];
55
- count: number;
56
- } | null;
57
- show_dialog_columns: boolean;
58
- sorts: SortItem[];
33
+ export interface NSASectionListState {
59
34
  mode: string;
60
35
  selected_row_ids: string[];
61
36
  }
62
37
  export declare class NSASectionList<RowType extends {
63
38
  id: string;
64
- }, RowTypeInput = RowType> extends Component<NSASectionListProps<RowType, RowTypeInput>, NSASectionListState<RowType>> {
65
- NSFilterBox_Top: import("react").RefObject<NSFilterBox>;
39
+ }, RowTypeInput = RowType> extends Component<NSASectionListProps<RowType, RowTypeInput>, NSASectionListState> {
66
40
  NSBoxCombo_Mode: import("react").RefObject<NSBoxCombo>;
67
- NSTable_Main: import("react").RefObject<NSTable<RowType>>;
68
- NSBoxBoolean_Sort: import("react").RefObject<NSBoxBoolean>;
69
- NSBoxBaseCombo_Sort_Column: import("react").RefObject<NSBoxBaseCombo<TableColumnInfo>>;
70
- NSBoxCombo_Sort_Direction: import("react").RefObject<NSBoxCombo>;
71
- NSBoxBooleans_Columns: import("react").RefObject<NSBoxBooleans>;
41
+ NSTable_Main: import("react").RefObject<NSATable<RowType, RowTypeInput>>;
72
42
  NSASectionViewTabPage_Ref: import("react").RefObject<NSASectionViewTabPage<RowType, RowTypeInput>>;
73
43
  constructor(props: NSASectionListProps<RowType, RowTypeInput>);
74
44
  getSelectedIDs(): string[];