@addev-be/ui 0.2.5 → 0.2.7
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/assets/icons/arrow-down-1-9.svg +1 -0
- package/assets/icons/arrow-down-a-z.svg +1 -1
- package/assets/icons/arrow-down-big-small.svg +1 -0
- package/assets/icons/arrow-up-9-1.svg +1 -0
- package/assets/icons/arrow-up-big-small.svg +1 -0
- package/assets/icons/arrow-up-z-a.svg +1 -1
- package/assets/icons/check.svg +1 -1
- package/assets/icons/chevron-down.svg +1 -0
- package/assets/icons/down.svg +1 -1
- package/assets/icons/ellipsis.svg +1 -0
- package/assets/icons/filter-full.svg +1 -1
- package/assets/icons/filter.svg +1 -1
- package/assets/icons/hashtag.svg +1 -1
- package/assets/icons/image-slash.svg +1 -1
- package/assets/icons/left.svg +1 -1
- package/assets/icons/magnifier.svg +1 -1
- package/assets/icons/phone.svg +1 -1
- package/assets/icons/right.svg +1 -1
- package/assets/icons/sigma.svg +1 -0
- package/assets/icons/spinner-third.svg +1 -1
- package/assets/icons/table-columns.svg +1 -1
- package/assets/icons/table-footer-slash.svg +5 -0
- package/assets/icons/table-footer.svg +4 -0
- package/assets/icons/table.svg +1 -0
- package/assets/icons/tally.svg +1 -0
- package/assets/icons/up.svg +1 -1
- package/assets/icons/user-tie.svg +1 -1
- package/assets/icons/x-bar.svg +4 -0
- package/dist/Icons.d.ts +13 -1
- package/dist/Icons.js +25 -1
- package/dist/components/data/AdvancedRequestDataGrid/index.js +3 -3
- package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +1 -2
- package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +3 -5
- package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
- package/dist/components/data/DataGrid/DataGridCell.js +5 -5
- package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +2 -1
- package/dist/components/data/DataGrid/DataGridEditableCell.js +2 -7
- package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +90 -10
- package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +3 -9
- package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +10 -37
- package/dist/components/data/DataGrid/DataGridFooter.d.ts +1 -1
- package/dist/components/data/DataGrid/DataGridFooter.js +35 -22
- package/dist/components/data/DataGrid/DataGridHeader.js +1 -3
- package/dist/components/data/DataGrid/DataGridHeaderCell.js +8 -23
- package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +5 -5
- package/dist/components/data/DataGrid/FilterModalContent/index.js +11 -9
- package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +8 -7
- package/dist/components/data/DataGrid/FilterValuesScroller.js +5 -6
- package/dist/components/data/DataGrid/helpers/columns.d.ts +1 -1
- package/dist/components/data/DataGrid/helpers/columns.js +72 -20
- package/dist/components/data/DataGrid/helpers/filters.d.ts +4 -3
- package/dist/components/data/DataGrid/helpers/filters.js +13 -5
- package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +1 -1
- package/dist/components/data/DataGrid/hooks/useDataGrid.js +60 -30
- package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +2 -2
- package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +41 -40
- package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -1
- package/dist/components/data/DataGrid/index.d.ts +4 -2
- package/dist/components/data/DataGrid/index.js +38 -17
- package/dist/components/data/DataGrid/styles.d.ts +12 -5
- package/dist/components/data/DataGrid/styles.js +31 -18
- package/dist/components/data/DataGrid/types.d.ts +28 -16
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +1 -1
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +30 -19
- package/dist/components/data/SqlRequestDataGrid/index.js +125 -37
- package/dist/components/data/SqlRequestDataGrid/types.d.ts +1 -0
- package/dist/components/data/index.d.ts +2 -0
- package/dist/components/data/index.js +2 -0
- package/dist/components/ui/ContextMenu/index.d.ts +11 -0
- package/dist/components/ui/ContextMenu/index.js +58 -0
- package/dist/components/ui/ContextMenu/styles.d.ts +18 -0
- package/dist/components/ui/ContextMenu/styles.js +56 -0
- package/dist/helpers/dates.d.ts +2 -0
- package/dist/helpers/dates.js +13 -0
- package/dist/services/advancedRequests.d.ts +1 -1
- package/dist/services/sqlRequests.d.ts +9 -4
- package/dist/services/sqlRequests.js +1 -0
- package/package.json +1 -1
- package/src/Icons.tsx +104 -80
- package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
- package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
- package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
- package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -269
- package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
- package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
- package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
- package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -58
- package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
- package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
- package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -54
- package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
- package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +364 -190
- package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +49 -100
- package/src/components/data/DataGrid/DataGridFooter.tsx +42 -64
- package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
- package/src/components/data/DataGrid/DataGridHeaderCell.tsx +132 -167
- package/src/components/data/DataGrid/FilterModalContent/index.tsx +124 -125
- package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
- package/src/components/data/DataGrid/FilterValuesScroller.tsx +133 -131
- package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
- package/src/components/data/DataGrid/helpers/columns.tsx +287 -196
- package/src/components/data/DataGrid/helpers/filters.ts +220 -207
- package/src/components/data/DataGrid/helpers/index.ts +2 -2
- package/src/components/data/DataGrid/hooks/index.ts +30 -30
- package/src/components/data/DataGrid/hooks/useDataGrid.tsx +305 -264
- package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +170 -165
- package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
- package/src/components/data/DataGrid/index.tsx +139 -132
- package/src/components/data/DataGrid/styles.ts +347 -326
- package/src/components/data/DataGrid/types.ts +260 -240
- package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +259 -224
- package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
- package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
- package/src/components/data/SqlRequestDataGrid/index.tsx +347 -252
- package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
- package/src/components/data/index.ts +8 -8
- package/src/components/forms/Button.tsx +99 -99
- package/src/components/forms/IconButton.tsx +56 -56
- package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
- package/src/components/forms/Select.tsx +40 -40
- package/src/components/forms/index.ts +5 -5
- package/src/components/forms/styles.ts +20 -20
- package/src/components/index.ts +3 -3
- package/src/components/layout/Dropdown/index.tsx +79 -79
- package/src/components/layout/Dropdown/styles.ts +44 -44
- package/src/components/layout/Loading/index.tsx +29 -29
- package/src/components/layout/Loading/styles.ts +29 -29
- package/src/components/layout/Modal/index.tsx +51 -51
- package/src/components/layout/Modal/styles.ts +110 -110
- package/src/components/layout/index.ts +3 -3
- package/src/components/ui/ContextMenu/index.tsx +73 -0
- package/src/components/ui/ContextMenu/styles.ts +115 -0
- package/src/config/index.ts +14 -14
- package/src/helpers/dates.ts +9 -9
- package/src/helpers/getScrollbarSize.ts +14 -14
- package/src/helpers/numbers.ts +20 -20
- package/src/hooks/index.ts +2 -2
- package/src/hooks/useElementSize.ts +24 -24
- package/src/hooks/useWindowSize.ts +20 -20
- package/src/index.ts +7 -7
- package/src/providers/PortalsProvider/index.tsx +54 -54
- package/src/providers/PortalsProvider/styles.ts +27 -27
- package/src/providers/SettingsProvider/index.tsx +70 -70
- package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
- package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
- package/src/providers/ThemeProvider/index.ts +3 -3
- package/src/providers/ThemeProvider/types.ts +123 -123
- package/src/providers/UiProviders/index.tsx +65 -65
- package/src/providers/UiProviders/styles.ts +10 -10
- package/src/providers/hooks.ts +8 -8
- package/src/providers/index.ts +5 -5
- package/src/services/HttpService.ts +80 -80
- package/src/services/WebSocketService.ts +147 -147
- package/src/services/advancedRequests.ts +101 -101
- package/src/services/base.ts +31 -31
- package/src/services/hooks.ts +23 -23
- package/src/services/index.ts +2 -2
- package/src/services/sqlRequests.ts +110 -99
- package/src/styles/animations.scss +30 -30
- package/src/styles/index.scss +42 -42
- package/src/typings.d.ts +6 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/components/data/DataGrid/helpers.d.ts +0 -28
- package/dist/components/data/DataGrid/helpers.js +0 -436
- package/dist/config/types.d.ts +0 -11
- package/dist/config/types.js +0 -2
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import * as t from 'io-ts';
|
|
2
|
-
import { CSSProperties, Context, Dispatch, MouseEvent, ReactNode, SetStateAction } from 'react';
|
|
2
|
+
import { CSSProperties, Context, Dispatch, FC, MouseEvent, MouseEventHandler, ReactNode, SetStateAction } from 'react';
|
|
3
3
|
import { SettingsContextProps } from '../../../providers/SettingsProvider';
|
|
4
4
|
import { ThemeColor } from '../../../providers/ThemeProvider/types';
|
|
5
|
-
export type
|
|
5
|
+
export type DataGridCellFC = FC<{
|
|
6
|
+
onDoubleClick?: MouseEventHandler;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
}>;
|
|
9
|
+
export type DataGridFooterPredefinedFunction = 'average' | 'count' | 'max' | 'min' | 'sum';
|
|
10
|
+
export type DataGridFooterFunction<R> = (allRows: R[], filteredRows: R[], selectedRows: R[]) => ReactNode;
|
|
6
11
|
export type DataGridColumn<R> = {
|
|
7
|
-
|
|
8
|
-
className?: string;
|
|
12
|
+
component?: DataGridCellFC;
|
|
9
13
|
editable?: boolean;
|
|
10
14
|
excelFormatter?: (value: any) => string;
|
|
11
15
|
excelValue?: (value: any) => string;
|
|
12
16
|
filter?: DataGridFilter;
|
|
13
|
-
footer?:
|
|
14
|
-
|
|
15
|
-
getter?: (row: R) => string | number | MysqlJsonObject;
|
|
16
|
-
headerClassName?: string;
|
|
17
|
+
footer?: DataGridFooterFunction<R> | Record<string, DataGridFooterFunction<R> | null>;
|
|
18
|
+
getter?: (row: R) => string | number;
|
|
17
19
|
name: string;
|
|
18
20
|
order?: number;
|
|
19
21
|
propertyName?: keyof R;
|
|
@@ -49,7 +51,10 @@ export type DataGridProps<R> = {
|
|
|
49
51
|
rowHeight?: number;
|
|
50
52
|
filter?: boolean;
|
|
51
53
|
sort?: boolean;
|
|
52
|
-
|
|
54
|
+
initialSorts?: Record<string, DataGridSort>;
|
|
55
|
+
initialFooters?: Record<string, string>;
|
|
56
|
+
onFootersChanged?: (footers: Record<string, string>) => void;
|
|
57
|
+
filterValuesLoader?: (columnKey: string) => Promise<(string | number | null)[]>;
|
|
53
58
|
loadCopyRows?: () => Promise<R[]>;
|
|
54
59
|
refresh?: () => void;
|
|
55
60
|
headerColor?: ThemeColor;
|
|
@@ -65,6 +70,9 @@ export type DataGridContextProps<R> = DataGridProps<R> & {
|
|
|
65
70
|
setSorts: (sorts: Record<string, DataGridSort>) => void;
|
|
66
71
|
filters?: DataGridFilters;
|
|
67
72
|
setFilters: Dispatch<SetStateAction<DataGridFilters>>;
|
|
73
|
+
footers?: Record<string, string>;
|
|
74
|
+
setFooters: Dispatch<SetStateAction<Record<string, string>>>;
|
|
75
|
+
footerFunctions?: Record<string, DataGridFooterFunction<R>>;
|
|
68
76
|
visibleColumns: DataGridColumnKeyValuePair<R>[];
|
|
69
77
|
copyTable: (includeHeaders?: boolean, includeFooters?: boolean) => Promise<void>;
|
|
70
78
|
setColumnWidth: (key: string, width: number) => void;
|
|
@@ -129,22 +137,26 @@ export type DataGridFilterPredicates = {
|
|
|
129
137
|
export type DataGridFilterType = keyof DataGridFilterPredicates;
|
|
130
138
|
export type DataGridFilterDataType<T extends DataGridFilterType> = DataGridFilterPredicates[T] extends DataGridFilterOperators<string, infer U> ? U : never;
|
|
131
139
|
export type DataGridFilterGetter<T extends DataGridFilterType> = (value: any) => DataGridFilterDataType<T> | null;
|
|
132
|
-
export type
|
|
140
|
+
export type DataGridFilterRenderer = (value: any) => ReactNode;
|
|
141
|
+
export type DataGridFilterFormatter = (value: any) => string;
|
|
133
142
|
export type DataGridFilterOperator<T extends DataGridFilterType> = DataGridFilterPredicates[T] extends DataGridFilterOperators<infer K, any> ? K : never;
|
|
134
143
|
export type DataGridFilter<T extends string = DataGridFilterType> = T extends DataGridFilterType ? {
|
|
135
144
|
type: T;
|
|
136
145
|
operator: DataGridFilterOperator<T>;
|
|
137
146
|
getter: DataGridFilterGetter<T>;
|
|
147
|
+
renderer?: DataGridFilterRenderer;
|
|
138
148
|
formatter?: DataGridFilterFormatter;
|
|
139
149
|
values: (DataGridFilterDataType<T> | null)[];
|
|
140
150
|
} : never;
|
|
141
|
-
export type DataGridFilterGroup
|
|
151
|
+
export type DataGridFilterGroup = {
|
|
142
152
|
name: string;
|
|
143
|
-
values?:
|
|
144
|
-
groups?: DataGridFilterGroup
|
|
153
|
+
values?: (string | number | null)[];
|
|
154
|
+
groups?: DataGridFilterGroup[];
|
|
145
155
|
};
|
|
146
|
-
export type
|
|
147
|
-
|
|
148
|
-
|
|
156
|
+
export type DataGridFilterValue = string | number | null;
|
|
157
|
+
export type DataGridFilterCheckbox = {
|
|
158
|
+
displayValue: ReactNode;
|
|
159
|
+
title: string;
|
|
160
|
+
value: DataGridFilterValue;
|
|
149
161
|
level: number;
|
|
150
162
|
};
|
|
@@ -11,6 +11,6 @@ export declare const sqlDateColumn: <R extends Record<string, any>>(key: string,
|
|
|
11
11
|
export declare const sqlMonthColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
12
12
|
export declare const sqlNumberColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
13
13
|
export declare const sqlMoneyColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
14
|
-
export declare const sqlPercentageColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
14
|
+
export declare const sqlPercentageColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
15
15
|
export declare const sqlCheckboxColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
16
16
|
export declare const sqlColorColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<SqlRequestDataGridColumn<R>>) => SqlRequestDataGridColumns<R>;
|
|
@@ -10,19 +10,16 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
14
|
exports.sqlColorColumn = exports.sqlCheckboxColumn = exports.sqlPercentageColumn = exports.sqlMoneyColumn = exports.sqlNumberColumn = exports.sqlMonthColumn = exports.sqlDateColumn = exports.sqlPhoneColumn = exports.sqlMailColumn = exports.sqlComposedColumn = exports.sqlTextColumn = void 0;
|
|
18
15
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
16
|
var numbers_1 = require("../../../../helpers/numbers");
|
|
20
17
|
var helpers_1 = require("../../DataGrid/helpers");
|
|
21
|
-
var
|
|
18
|
+
var dates_1 = require("../../../../helpers/dates");
|
|
22
19
|
var sqlTextColumn = function (key, title, options) {
|
|
23
20
|
var _a;
|
|
24
21
|
return (_a = {},
|
|
25
|
-
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }) }, options),
|
|
22
|
+
_a[key] = __assign(__assign({ name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }) }, options), { footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }),
|
|
26
23
|
_a);
|
|
27
24
|
};
|
|
28
25
|
exports.sqlTextColumn = sqlTextColumn;
|
|
@@ -40,35 +37,35 @@ var sqlComposedColumn = function (key, title, fields, options) {
|
|
|
40
37
|
{ constantValue: field },
|
|
41
38
|
{ fieldName: field },
|
|
42
39
|
]; }),
|
|
43
|
-
}, name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(fields[0])), { getter: function (value) { var _a; return (_a = value[fields[0]]) !== null && _a !== void 0 ? _a : 0; } }), filterField: fields[0], sortField: fields[0] }, options),
|
|
40
|
+
}, name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(fields[0])), { getter: function (value) { var _a; return (_a = value[fields[0]]) !== null && _a !== void 0 ? _a : 0; } }), filterField: fields[0], sortField: fields[0], footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
|
|
44
41
|
_a);
|
|
45
42
|
};
|
|
46
43
|
exports.sqlComposedColumn = sqlComposedColumn;
|
|
47
44
|
var sqlMailColumn = function (key, title, options) {
|
|
48
45
|
var _a;
|
|
49
46
|
return (_a = {},
|
|
50
|
-
_a[key] = __assign({ name: title, render: function (row) { var _a; return (0, jsx_runtime_1.jsx)("a", { href: "mailto:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }) }, options),
|
|
47
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (0, jsx_runtime_1.jsx)("a", { href: "mailto:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
|
|
51
48
|
_a);
|
|
52
49
|
};
|
|
53
50
|
exports.sqlMailColumn = sqlMailColumn;
|
|
54
51
|
var sqlPhoneColumn = function (key, title, options) {
|
|
55
52
|
var _a;
|
|
56
53
|
return (_a = {},
|
|
57
|
-
_a[key] = __assign({ name: title, render: function (row) { var _a; return (0, jsx_runtime_1.jsx)("a", { href: "tel:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }) }, options),
|
|
54
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (0, jsx_runtime_1.jsx)("a", { href: "tel:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
|
|
58
55
|
_a);
|
|
59
56
|
};
|
|
60
57
|
exports.sqlPhoneColumn = sqlPhoneColumn;
|
|
61
58
|
var sqlDateColumn = function (key, title, options) {
|
|
62
59
|
var _a;
|
|
63
60
|
return (_a = {},
|
|
64
|
-
_a[key] = __assign({ name: title, render: function (row) {
|
|
61
|
+
_a[key] = __assign({ name: title, render: function (row) { return (0, dates_1.formatDate)(row[key]); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
|
|
65
62
|
_a);
|
|
66
63
|
};
|
|
67
64
|
exports.sqlDateColumn = sqlDateColumn;
|
|
68
65
|
var sqlMonthColumn = function (key, title, options) {
|
|
69
66
|
var _a;
|
|
70
67
|
return (_a = {},
|
|
71
|
-
_a[key] = __assign({ name: title, render: function (row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }) }, options),
|
|
68
|
+
_a[key] = __assign({ name: title, render: function (row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
|
|
72
69
|
_a);
|
|
73
70
|
};
|
|
74
71
|
exports.sqlMonthColumn = sqlMonthColumn;
|
|
@@ -76,7 +73,13 @@ var sqlNumberColumn = function (key, title, decimals, options) {
|
|
|
76
73
|
var _a;
|
|
77
74
|
if (decimals === void 0) { decimals = 2; }
|
|
78
75
|
return (_a = {},
|
|
79
|
-
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }
|
|
76
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
|
|
77
|
+
sum: null,
|
|
78
|
+
avg: null,
|
|
79
|
+
count: null,
|
|
80
|
+
max: null,
|
|
81
|
+
min: null,
|
|
82
|
+
} }, options),
|
|
80
83
|
_a);
|
|
81
84
|
};
|
|
82
85
|
exports.sqlNumberColumn = sqlNumberColumn;
|
|
@@ -84,31 +87,39 @@ var sqlMoneyColumn = function (key, title, decimals, options) {
|
|
|
84
87
|
var _a;
|
|
85
88
|
if (decimals === void 0) { decimals = 2; }
|
|
86
89
|
return (_a = {},
|
|
87
|
-
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }
|
|
90
|
+
_a[key] = __assign({ name: title, type: 'number', render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
|
|
91
|
+
sum: null,
|
|
92
|
+
avg: null,
|
|
93
|
+
count: null,
|
|
94
|
+
max: null,
|
|
95
|
+
min: null,
|
|
96
|
+
} }, options),
|
|
88
97
|
_a);
|
|
89
98
|
};
|
|
90
99
|
exports.sqlMoneyColumn = sqlMoneyColumn;
|
|
91
|
-
var sqlPercentageColumn = function (key, title, options) {
|
|
100
|
+
var sqlPercentageColumn = function (key, title, decimals, options) {
|
|
92
101
|
var _a;
|
|
102
|
+
if (decimals === void 0) { decimals = 2; }
|
|
93
103
|
return (_a = {},
|
|
94
|
-
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; } }) }, options),
|
|
104
|
+
_a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatPercentage)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }) }, options),
|
|
95
105
|
_a);
|
|
96
106
|
};
|
|
97
107
|
exports.sqlPercentageColumn = sqlPercentageColumn;
|
|
98
108
|
var sqlCheckboxColumn = function (key, title, options) {
|
|
99
109
|
var _a;
|
|
100
110
|
return (_a = {},
|
|
101
|
-
_a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key] }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; } }) }, options),
|
|
111
|
+
_a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key] }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
|
|
102
112
|
_a);
|
|
103
113
|
};
|
|
104
114
|
exports.sqlCheckboxColumn = sqlCheckboxColumn;
|
|
105
115
|
var sqlColorColumn = function (key, title, options) {
|
|
106
116
|
var _a;
|
|
107
117
|
return (_a = {},
|
|
108
|
-
_a[key] = __assign({ name: title, render: function (row) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
118
|
+
_a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsx)("div", { style: { position: 'absolute', inset: 0, backgroundColor: row[key] }, children: "\u00A0" })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, renderer: function (value) { return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
119
|
+
backgroundColor: value,
|
|
120
|
+
width: 'var(--space-16)',
|
|
121
|
+
height: '1em',
|
|
122
|
+
}, children: "\u00A0" })); } }) }, options),
|
|
112
123
|
_a);
|
|
113
124
|
};
|
|
114
125
|
exports.sqlColorColumn = sqlColorColumn;
|
|
@@ -63,30 +63,45 @@ var DataGrid_1 = require("../DataGrid");
|
|
|
63
63
|
var helpers_1 = require("./helpers");
|
|
64
64
|
var helpers_2 = require("../DataGrid/helpers");
|
|
65
65
|
var SqlRequestDataGrid = function (_a) {
|
|
66
|
+
var _b, _c;
|
|
66
67
|
var onSelectionChangeFromProps = _a.onSelectionChange, props = __rest(_a, ["onSelectionChange"]);
|
|
67
68
|
var currentRows = (0, react_1.useRef)([]);
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
var _d = (0, react_1.useState)([]), rows = _d[0], setRows = _d[1];
|
|
70
|
+
var _e = (0, react_1.useState)(0), start = _e[0], setStart = _e[1];
|
|
71
|
+
var _f = (0, react_1.useState)(50), length = _f[0], setLength = _f[1];
|
|
72
|
+
var _g = (0, react_1.useState)(-1), count = _g[0], setCount = _g[1];
|
|
73
|
+
var _h = (0, sqlRequests_1.useSqlRequestHandler)(props.type), sqlRequest = _h[0], sqlIdRequest = _h[1], sqlPartialRequest = _h[2];
|
|
74
|
+
var _j = (0, react_1.useState)({}), conditions = _j[0], setConditions = _j[1];
|
|
75
|
+
var _k = (0, react_1.useState)(Object.entries((_b = props.initialSorts) !== null && _b !== void 0 ? _b : {}).map(function (_a) {
|
|
76
|
+
var _b, _c, _d;
|
|
77
|
+
var columnKey = _a[0], direction = _a[1];
|
|
78
|
+
return ({
|
|
79
|
+
field: (_c = (_b = props.columns[columnKey].field) === null || _b === void 0 ? void 0 : _b.fieldAlias) !== null && _c !== void 0 ? _c : columnKey,
|
|
80
|
+
type: (_d = props.columns[columnKey].type) !== null && _d !== void 0 ? _d : 'text',
|
|
81
|
+
direction: direction.toUpperCase(),
|
|
82
|
+
});
|
|
83
|
+
})), orderBy = _k[0], setOrderBy = _k[1];
|
|
84
|
+
var _l = (0, react_1.useMemo)(function () {
|
|
85
|
+
var _a, _b;
|
|
86
|
+
return [
|
|
87
|
+
__spreadArray(__spreadArray([], Object.keys(props.columns), true), ((_a = props.hiddenColumns) !== null && _a !== void 0 ? _a : []), true),
|
|
88
|
+
__spreadArray(__spreadArray([], Object.keys(props.columns).filter(function (key) {
|
|
89
|
+
return (0, helpers_2.isColumnVisible)(props.columns[key]);
|
|
90
|
+
}), true), ((_b = props.hiddenColumns) !== null && _b !== void 0 ? _b : []), true),
|
|
91
|
+
];
|
|
92
|
+
}, [props.columns, props.hiddenColumns]), columnsKeys = _l[0], visibleColumnsKeys = _l[1];
|
|
93
|
+
var columnTypes = (0, react_1.useMemo)(function () {
|
|
94
|
+
return visibleColumnsKeys.map(function (key) { var _a; return String((_a = props.columns[key].type) !== null && _a !== void 0 ? _a : 'text'); });
|
|
95
|
+
}, [visibleColumnsKeys, props.columns]);
|
|
81
96
|
var refresh = (0, react_1.useCallback)(function () {
|
|
82
97
|
setRows([]);
|
|
83
98
|
setStart(0);
|
|
84
99
|
setLength(50);
|
|
85
|
-
|
|
100
|
+
setCount(-1);
|
|
86
101
|
}, []);
|
|
87
102
|
var onFiltersChanged = (0, react_1.useCallback)(function (filters) {
|
|
88
103
|
var newConditions = (0, helpers_1.convertSqlFiltersToConditions)(filters);
|
|
89
|
-
|
|
104
|
+
setCount(-1);
|
|
90
105
|
setConditions(newConditions);
|
|
91
106
|
}, []);
|
|
92
107
|
var onSortsChanged = (0, react_1.useCallback)(function (sorts) {
|
|
@@ -98,30 +113,34 @@ var SqlRequestDataGrid = function (_a) {
|
|
|
98
113
|
direction: direction.toUpperCase(),
|
|
99
114
|
});
|
|
100
115
|
});
|
|
101
|
-
console.log('newOrderBy=', newOrderBy);
|
|
102
116
|
setOrderBy(newOrderBy);
|
|
103
117
|
}, [refresh]);
|
|
104
|
-
var loadRows = (0, react_1.useRef)((0, lodash_1.debounce)(function (columns, returnColumns, conditions, orderBy, start, length,
|
|
118
|
+
var loadRows = (0, react_1.useRef)((0, lodash_1.debounce)(function (columns, returnColumns, conditions, orderBy, start, length, getCount) {
|
|
105
119
|
if (conditions === void 0) { conditions = []; }
|
|
106
120
|
if (orderBy === void 0) { orderBy = []; }
|
|
107
121
|
if (start === void 0) { start = 0; }
|
|
108
122
|
if (length === void 0) { length = 100; }
|
|
109
|
-
if (
|
|
123
|
+
if (getCount === void 0) { getCount = false; }
|
|
110
124
|
sqlRequest({
|
|
111
125
|
columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
|
|
112
|
-
returnColumns: returnColumns
|
|
126
|
+
returnColumns: returnColumns.includes('Id')
|
|
127
|
+
? returnColumns
|
|
128
|
+
: __spreadArray(__spreadArray([], returnColumns, true), ['Id'], false),
|
|
129
|
+
columnTypes: columnTypes.includes('Id')
|
|
130
|
+
? columnTypes
|
|
131
|
+
: __spreadArray(__spreadArray([], columnTypes, true), ['Id'], false),
|
|
113
132
|
conditions: conditions,
|
|
114
133
|
orderBy: orderBy,
|
|
115
134
|
start: start,
|
|
116
135
|
length: length,
|
|
117
|
-
|
|
136
|
+
getCount: getCount,
|
|
118
137
|
}).then(function (response) {
|
|
119
138
|
var _a;
|
|
120
139
|
var _b;
|
|
121
|
-
if (
|
|
122
|
-
currentRows.current = Array(response.
|
|
123
|
-
if (
|
|
124
|
-
|
|
140
|
+
if (getCount) {
|
|
141
|
+
currentRows.current = Array(response.count).fill(null);
|
|
142
|
+
if (getCount)
|
|
143
|
+
setCount((_b = response.count) !== null && _b !== void 0 ? _b : 0);
|
|
125
144
|
}
|
|
126
145
|
var parsedRows = props.parser
|
|
127
146
|
? response.data.map(props.parser)
|
|
@@ -129,20 +148,25 @@ var SqlRequestDataGrid = function (_a) {
|
|
|
129
148
|
(_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], parsedRows, false));
|
|
130
149
|
setRows(__spreadArray([], currentRows.current, true));
|
|
131
150
|
});
|
|
132
|
-
}, 100
|
|
151
|
+
}, 100, {
|
|
152
|
+
leading: true,
|
|
153
|
+
trailing: true,
|
|
154
|
+
}));
|
|
133
155
|
var loadFilterValues = (0, react_1.useCallback)(function (columnKey) {
|
|
134
|
-
var _a, _b, _c, _d, _e, _f;
|
|
156
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
135
157
|
return sqlRequest({
|
|
136
158
|
columns: columnsKeys,
|
|
137
159
|
returnColumns: [columnKey],
|
|
138
|
-
|
|
160
|
+
columnTypes: [(_a = props.columns[columnKey].type) !== null && _a !== void 0 ? _a : 'text'],
|
|
161
|
+
conditions: __spreadArray(__spreadArray([], ((_b = props.conditions) !== null && _b !== void 0 ? _b : []), true), Object.values(lodash_1.default.pickBy(conditions, function (_, key) { return key !== columnKey; })), true).filter(function (condition) { return condition.field !== columnKey; }),
|
|
139
162
|
orderBy: [
|
|
140
163
|
{
|
|
141
|
-
field: (
|
|
164
|
+
field: (_g = (_e = (_c = props.columns[columnKey].filterField) !== null && _c !== void 0 ? _c : (_d = props.columns[columnKey].field) === null || _d === void 0 ? void 0 : _d.fieldAlias) !== null && _e !== void 0 ? _e : (_f = props.columns[columnKey].field) === null || _f === void 0 ? void 0 : _f.fieldName) !== null && _g !== void 0 ? _g : columnKey,
|
|
165
|
+
type: (_h = props.columns[columnKey].type) !== null && _h !== void 0 ? _h : 'text',
|
|
142
166
|
direction: 'ASC',
|
|
143
167
|
},
|
|
144
168
|
],
|
|
145
|
-
|
|
169
|
+
getCount: false,
|
|
146
170
|
unique: true,
|
|
147
171
|
}).then(function (response) {
|
|
148
172
|
return response.data.map(function (row) { var _a, _b, _c; return (_c = (_b = (_a = props.columns[columnKey].filter) === null || _a === void 0 ? void 0 : _a.getter) === null || _b === void 0 ? void 0 : _b.call(_a, row)) !== null && _c !== void 0 ? _c : null; });
|
|
@@ -150,14 +174,14 @@ var SqlRequestDataGrid = function (_a) {
|
|
|
150
174
|
}, [columnsKeys, conditions, props.columns, props.conditions, sqlRequest]);
|
|
151
175
|
(0, react_1.useEffect)(function () {
|
|
152
176
|
var _a, _b;
|
|
153
|
-
return loadRows.current(columnsKeys, visibleColumnsKeys, __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true), orderBy, start, length,
|
|
177
|
+
return loadRows.current(columnsKeys, visibleColumnsKeys, __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true), orderBy, start, length, count < 0);
|
|
154
178
|
}, [
|
|
155
179
|
props.columns,
|
|
156
180
|
conditions,
|
|
157
181
|
orderBy,
|
|
158
182
|
start,
|
|
159
183
|
length,
|
|
160
|
-
|
|
184
|
+
count,
|
|
161
185
|
props.conditions,
|
|
162
186
|
columnsKeys,
|
|
163
187
|
visibleColumnsKeys,
|
|
@@ -167,10 +191,11 @@ var SqlRequestDataGrid = function (_a) {
|
|
|
167
191
|
return sqlRequest({
|
|
168
192
|
columns: columnsKeys,
|
|
169
193
|
returnColumns: visibleColumnsKeys,
|
|
194
|
+
columnTypes: columnTypes,
|
|
170
195
|
conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
|
|
171
196
|
orderBy: orderBy,
|
|
172
197
|
start: 0,
|
|
173
|
-
length:
|
|
198
|
+
length: count,
|
|
174
199
|
}).then(function (response) {
|
|
175
200
|
return props.parser ? response.data.map(props.parser) : response.data;
|
|
176
201
|
});
|
|
@@ -178,22 +203,27 @@ var SqlRequestDataGrid = function (_a) {
|
|
|
178
203
|
sqlRequest,
|
|
179
204
|
columnsKeys,
|
|
180
205
|
visibleColumnsKeys,
|
|
206
|
+
columnTypes,
|
|
181
207
|
props.conditions,
|
|
182
208
|
props.parser,
|
|
183
209
|
conditions,
|
|
184
210
|
orderBy,
|
|
185
|
-
|
|
211
|
+
count,
|
|
186
212
|
]);
|
|
187
213
|
var loadAllIds = (0, react_1.useCallback)(function () {
|
|
188
214
|
var _a, _b;
|
|
189
215
|
return sqlIdRequest({
|
|
190
|
-
columns:
|
|
216
|
+
columns: columnsKeys.includes('Id')
|
|
217
|
+
? columnsKeys
|
|
218
|
+
: __spreadArray(__spreadArray([], columnsKeys, true), ['Id'], false),
|
|
219
|
+
returnColumns: ['Id'],
|
|
220
|
+
columnTypes: ['text'],
|
|
191
221
|
conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
|
|
192
222
|
orderBy: orderBy,
|
|
193
223
|
start: 0,
|
|
194
|
-
length:
|
|
224
|
+
length: count,
|
|
195
225
|
}).then(function (response) { return response.data.map(function (row) { return row['Id']; }); });
|
|
196
|
-
}, [conditions, orderBy, props.conditions, sqlIdRequest,
|
|
226
|
+
}, [columnsKeys, conditions, orderBy, props.conditions, sqlIdRequest, count]);
|
|
197
227
|
var onVisibleRowsChanged = (0, react_1.useCallback)(function (newStart, newLength) {
|
|
198
228
|
if (newStart !== start || newLength !== length) {
|
|
199
229
|
setStart(newStart);
|
|
@@ -203,6 +233,64 @@ var SqlRequestDataGrid = function (_a) {
|
|
|
203
233
|
var onSelectionChange = (0, react_1.useCallback)(function (selectedKeys) {
|
|
204
234
|
onSelectionChangeFromProps === null || onSelectionChangeFromProps === void 0 ? void 0 : onSelectionChangeFromProps(selectedKeys);
|
|
205
235
|
}, [onSelectionChangeFromProps]);
|
|
206
|
-
|
|
236
|
+
/** FOOTERS */
|
|
237
|
+
var _m = (0, react_1.useState)((_c = props.initialFooters) !== null && _c !== void 0 ? _c : {}), footers = _m[0], setFooters = _m[1];
|
|
238
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
239
|
+
var _o = (0, react_1.useState)({}), footerData = _o[0], setFooterData = _o[1];
|
|
240
|
+
var loadFooters = (0, react_1.useCallback)(function () {
|
|
241
|
+
var _a, _b;
|
|
242
|
+
if (Object.keys(footers).length === 0) {
|
|
243
|
+
setFooterData({});
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
sqlPartialRequest({
|
|
247
|
+
columns: columnsKeys.includes('Id')
|
|
248
|
+
? columnsKeys
|
|
249
|
+
: __spreadArray(__spreadArray([], columnsKeys, true), ['Id'], false),
|
|
250
|
+
returnColumns: [],
|
|
251
|
+
columnTypes: [],
|
|
252
|
+
totalColumns: footers,
|
|
253
|
+
conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
|
|
254
|
+
orderBy: orderBy,
|
|
255
|
+
}).then(function (response) { var _a; return setFooterData((_a = response.totals) !== null && _a !== void 0 ? _a : {}); });
|
|
256
|
+
}
|
|
257
|
+
}, [
|
|
258
|
+
columnsKeys,
|
|
259
|
+
conditions,
|
|
260
|
+
footers,
|
|
261
|
+
orderBy,
|
|
262
|
+
props.conditions,
|
|
263
|
+
sqlPartialRequest,
|
|
264
|
+
]);
|
|
265
|
+
(0, react_1.useEffect)(function () {
|
|
266
|
+
loadFooters();
|
|
267
|
+
}, [loadFooters]);
|
|
268
|
+
var footerFunctions = (0, react_1.useMemo)(function () {
|
|
269
|
+
return !footerData
|
|
270
|
+
? {}
|
|
271
|
+
: Object.entries(footers).reduce(function (acc, _a) {
|
|
272
|
+
var _b, _c;
|
|
273
|
+
var columnKey = _a[0], footerKey = _a[1];
|
|
274
|
+
var column = props.columns[columnKey];
|
|
275
|
+
var footerFunc = typeof (column === null || column === void 0 ? void 0 : column.footer) === 'function'
|
|
276
|
+
? column.footer
|
|
277
|
+
: (_b = column === null || column === void 0 ? void 0 : column.footer) === null || _b === void 0 ? void 0 : _b[footerKey];
|
|
278
|
+
var render = footerFunc
|
|
279
|
+
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
280
|
+
function (data) { return footerFunc([data], [], []); }
|
|
281
|
+
: (_c = column === null || column === void 0 ? void 0 : column.render) !== null && _c !== void 0 ? _c : lodash_1.default.identity;
|
|
282
|
+
if (!column) {
|
|
283
|
+
return acc;
|
|
284
|
+
}
|
|
285
|
+
acc[columnKey] = function () { return render(footerData, column); };
|
|
286
|
+
return acc;
|
|
287
|
+
}, {});
|
|
288
|
+
}, [footerData, footers, props.columns]);
|
|
289
|
+
var contextOverride = (0, react_1.useMemo)(function () { return ({
|
|
290
|
+
footers: footers,
|
|
291
|
+
setFooters: setFooters,
|
|
292
|
+
footerFunctions: footerFunctions,
|
|
293
|
+
}); }, [footers, setFooters, footerFunctions]);
|
|
294
|
+
return ((0, jsx_runtime_1.jsx)(DataGrid_1.DataGrid, __assign({ onVisibleRowsChange: onVisibleRowsChanged, filter: false, sort: false, onFiltersChanged: onFiltersChanged, onSortsChanged: onSortsChanged, filterValuesLoader: loadFilterValues, rows: rows, loadCopyRows: loadCopyRows, refresh: refresh, onSelectionChange: onSelectionChange, getAllIds: loadAllIds, contextOverride: contextOverride }, props)));
|
|
207
295
|
};
|
|
208
296
|
exports.SqlRequestDataGrid = SqlRequestDataGrid;
|
|
@@ -13,6 +13,7 @@ export type SqlRequestDataGridColumn<R> = DataGridColumn<R> & {
|
|
|
13
13
|
export type SqlRequestDataGridColumns<R> = Record<string, SqlRequestDataGridColumn<R>>;
|
|
14
14
|
export type SqlRequestDataGridProps<R> = Omit<DataGridProps<R>, 'rows' | 'columns'> & {
|
|
15
15
|
columns: SqlRequestDataGridColumns<R>;
|
|
16
|
+
hiddenColumns?: string[];
|
|
16
17
|
type: string;
|
|
17
18
|
orderBy?: OrderByDTO[];
|
|
18
19
|
conditions?: ConditionDTO[];
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './DataGrid';
|
|
2
2
|
export * from './DataGrid/helpers';
|
|
3
|
+
export * from './DataGrid/styles';
|
|
3
4
|
export * from './AdvancedRequestDataGrid';
|
|
4
5
|
export * from './SqlRequestDataGrid';
|
|
5
6
|
export * from './SqlRequestDataGrid/helpers';
|
|
7
|
+
export * from './SqlRequestDataGrid/types';
|
|
6
8
|
export * from './AdvancedRequestDataGrid/helpers';
|
|
@@ -16,7 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./DataGrid"), exports);
|
|
18
18
|
__exportStar(require("./DataGrid/helpers"), exports);
|
|
19
|
+
__exportStar(require("./DataGrid/styles"), exports);
|
|
19
20
|
__exportStar(require("./AdvancedRequestDataGrid"), exports);
|
|
20
21
|
__exportStar(require("./SqlRequestDataGrid"), exports);
|
|
21
22
|
__exportStar(require("./SqlRequestDataGrid/helpers"), exports);
|
|
23
|
+
__exportStar(require("./SqlRequestDataGrid/types"), exports);
|
|
22
24
|
__exportStar(require("./AdvancedRequestDataGrid/helpers"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Divider, MenuItemContainer, SubMenu } from './styles';
|
|
2
|
+
import { FC, HTMLAttributes, PropsWithChildren } from 'react';
|
|
3
|
+
type ContextMenuFC = FC<PropsWithChildren<HTMLAttributes<HTMLDivElement>>> & {
|
|
4
|
+
Item: typeof MenuItemContainer;
|
|
5
|
+
ParentItem: typeof ParentMenuItem;
|
|
6
|
+
Divider: typeof Divider;
|
|
7
|
+
SubMenu: typeof SubMenu;
|
|
8
|
+
};
|
|
9
|
+
export declare const ContextMenu: ContextMenuFC;
|
|
10
|
+
export declare const ParentMenuItem: FC<HTMLAttributes<HTMLDivElement>>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.ParentMenuItem = exports.ContextMenu = void 0;
|
|
26
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
27
|
+
var styles_1 = require("./styles");
|
|
28
|
+
var react_1 = require("react");
|
|
29
|
+
var ContextMenu = function (_a) {
|
|
30
|
+
var children = _a.children;
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.MenuContainer, { onClick: function (e) { return e.stopPropagation(); }, children: children }));
|
|
32
|
+
};
|
|
33
|
+
exports.ContextMenu = ContextMenu;
|
|
34
|
+
var ParentMenuItem = function (_a) {
|
|
35
|
+
var children = _a.children, props = __rest(_a, ["children"]);
|
|
36
|
+
var _b = (0, react_1.useState)(false), isOpened = _b[0], setIsOpened = _b[1];
|
|
37
|
+
var _c = (0, react_1.useState)(null), currentTimeout = _c[0], setCurrentTimeout = _c[1];
|
|
38
|
+
var stopTimeout = (0, react_1.useCallback)(function () {
|
|
39
|
+
if (currentTimeout) {
|
|
40
|
+
clearTimeout(currentTimeout);
|
|
41
|
+
}
|
|
42
|
+
setCurrentTimeout(null);
|
|
43
|
+
}, [currentTimeout]);
|
|
44
|
+
var startTimeout = (0, react_1.useCallback)(function (open) {
|
|
45
|
+
stopTimeout();
|
|
46
|
+
setCurrentTimeout(window.setTimeout(function () {
|
|
47
|
+
setIsOpened(open);
|
|
48
|
+
}, open ? 100 : 300));
|
|
49
|
+
}, [stopTimeout]);
|
|
50
|
+
var open = (0, react_1.useCallback)(function () { return startTimeout(true); }, [startTimeout]);
|
|
51
|
+
var close = (0, react_1.useCallback)(function () { return startTimeout(false); }, [startTimeout]);
|
|
52
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.MenuItemContainer, __assign({}, props, { className: isOpened ? 'opened' : '', onMouseEnter: open, onMouseLeave: close, "$withArrow": true, children: children })));
|
|
53
|
+
};
|
|
54
|
+
exports.ParentMenuItem = ParentMenuItem;
|
|
55
|
+
exports.ContextMenu.Item = styles_1.MenuItemContainer;
|
|
56
|
+
exports.ContextMenu.ParentItem = exports.ParentMenuItem;
|
|
57
|
+
exports.ContextMenu.Divider = styles_1.Divider;
|
|
58
|
+
exports.ContextMenu.SubMenu = styles_1.SubMenu;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ThemeColor } from '../../../providers/ThemeProvider/types';
|
|
2
|
+
export declare const MenuContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
3
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
4
|
+
}>, never>, never>> & string;
|
|
5
|
+
export declare const SubMenu: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
6
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
7
|
+
}>, never>, never>> & string;
|
|
8
|
+
export declare const MenuItemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
9
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
10
|
+
}>, never>, {
|
|
11
|
+
$color?: ThemeColor;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
$withArrow?: boolean;
|
|
14
|
+
$opened?: boolean;
|
|
15
|
+
}>> & string;
|
|
16
|
+
export declare const Divider: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
17
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
18
|
+
}>, never>, never>> & string;
|