@uxf/data-grid 3.0.0-beta.9 → 3.1.2
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/DataGrid.d.ts +4 -4
- package/DataGrid.js +98 -45
- package/README.md +71 -5
- package/components/ActionCellBase.d.ts +2 -0
- package/components/ActionCellBase.js +56 -14
- package/components/BodyCellBase.d.ts +1 -1
- package/components/BodyCellBase.js +9 -30
- package/components/BodyCellWrapper.js +4 -2
- package/components/FilterInputBase.d.ts +1 -1
- package/components/FilterInputBase.js +3 -2
- package/components/FilterListItemBase.d.ts +1 -1
- package/components/FilterListItemBase.js +1 -1
- package/components/Filters.d.ts +2 -2
- package/components/Filters.js +4 -4
- package/components/FiltersList.d.ts +3 -2
- package/components/FiltersList.js +6 -7
- package/components/HiddenColumns.d.ts +1 -1
- package/components/HiddenColumns.js +1 -1
- package/components/Paper.d.ts +1 -1
- package/package.json +9 -4
- package/store/actions.d.ts +7 -0
- package/store/actions.js +11 -2
- package/store/reducer.d.ts +1 -1
- package/store/reducer.js +7 -1
- package/types.d.ts +66 -32
- package/utils/utils.d.ts +2 -2
- package/utils/utils.js +6 -4
package/DataGrid.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component } from "react";
|
|
2
|
-
import { DataGridProps, DataGridState } from "./types";
|
|
3
|
-
export declare class DataGrid<R extends
|
|
4
|
-
constructor(props: Readonly<DataGridProps<R>>
|
|
2
|
+
import { BaseGridType, DataGridProps, DataGridState } from "./types";
|
|
3
|
+
export declare class DataGrid<GridType extends BaseGridType, R extends any = any> extends Component<DataGridProps<GridType, R>, DataGridState> {
|
|
4
|
+
constructor(props: Readonly<DataGridProps<GridType, R>>);
|
|
5
5
|
reload: () => Promise<void>;
|
|
6
6
|
private dispatch;
|
|
7
7
|
componentDidMount(): void;
|
|
8
|
-
componentDidUpdate(_: Readonly<DataGridProps<R>>, prevState: Readonly<DataGridState>): void;
|
|
8
|
+
componentDidUpdate(_: Readonly<DataGridProps<GridType, R>>, prevState: Readonly<DataGridState>): void;
|
|
9
9
|
render(): JSX.Element;
|
|
10
10
|
}
|
package/DataGrid.js
CHANGED
|
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
17
28
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
29
|
if (k2 === undefined) k2 = k;
|
|
19
30
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -74,16 +85,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
74
85
|
};
|
|
75
86
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
87
|
exports.DataGrid = void 0;
|
|
88
|
+
var material_1 = require("@mui/material");
|
|
89
|
+
var NoSsr_1 = __importDefault(require("@mui/material/NoSsr"));
|
|
77
90
|
var CircularProgress_1 = __importDefault(require("@mui/material/CircularProgress"));
|
|
78
91
|
var LinearProgress_1 = __importDefault(require("@mui/material/LinearProgress"));
|
|
79
92
|
var Tooltip_1 = __importDefault(require("@mui/material/Tooltip"));
|
|
80
93
|
var Box_1 = __importDefault(require("@mui/material/Box"));
|
|
81
94
|
var IconButton_1 = __importDefault(require("@mui/material/IconButton"));
|
|
82
95
|
var CloudDownload_1 = __importDefault(require("@mui/icons-material/CloudDownload"));
|
|
96
|
+
var Search_1 = __importDefault(require("@mui/icons-material/Search"));
|
|
83
97
|
var Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
84
98
|
var Toolbar_1 = __importDefault(require("@mui/material/Toolbar"));
|
|
85
99
|
var ActionCellBase_1 = require("./components/ActionCellBase");
|
|
86
100
|
var FilterInputBase_1 = require("./components/FilterInputBase");
|
|
101
|
+
var FilterListItemBase_1 = require("./components/FilterListItemBase");
|
|
87
102
|
var Filters_1 = require("./components/Filters");
|
|
88
103
|
var FiltersList_1 = require("./components/FiltersList");
|
|
89
104
|
var HiddenColumns_1 = require("./components/HiddenColumns");
|
|
@@ -95,20 +110,24 @@ var reducer_1 = require("./store/reducer");
|
|
|
95
110
|
var utils_1 = require("./utils/utils");
|
|
96
111
|
var react_data_grid_1 = __importDefault(require("react-data-grid"));
|
|
97
112
|
var TablePagination_1 = __importDefault(require("@mui/material/TablePagination"));
|
|
113
|
+
var setLightness_1 = __importDefault(require("polished/lib/color/setLightness"));
|
|
114
|
+
var SCROLLBAR_HEIGHT = 24;
|
|
115
|
+
// eslint-disable-next-line react/require-optimization
|
|
98
116
|
var DataGrid = /** @class */ (function (_super) {
|
|
99
117
|
__extends(DataGrid, _super);
|
|
100
118
|
function DataGrid(props) {
|
|
101
119
|
var _this = _super.call(this, props) || this;
|
|
102
120
|
_this.reload = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
103
|
-
var request, response, e_1;
|
|
121
|
+
var schema, request, response, e_1;
|
|
104
122
|
return __generator(this, function (_a) {
|
|
105
123
|
switch (_a.label) {
|
|
106
124
|
case 0:
|
|
107
125
|
_a.trys.push([0, 4, , 6]);
|
|
126
|
+
schema = this.props.schema;
|
|
108
127
|
return [4 /*yield*/, this.dispatch((0, actions_1.reload)())];
|
|
109
128
|
case 1:
|
|
110
129
|
_a.sent();
|
|
111
|
-
request = (0, utils_1.createRequest)(this.state);
|
|
130
|
+
request = (0, utils_1.createRequest)(this.state, schema.sort, schema.dir);
|
|
112
131
|
return [4 /*yield*/, this.props.loader(this.props.gridName, request, (0, utils_1.encodeFilter)(request))];
|
|
113
132
|
case 2:
|
|
114
133
|
response = _a.sent();
|
|
@@ -121,6 +140,7 @@ var DataGrid = /** @class */ (function (_super) {
|
|
|
121
140
|
return [4 /*yield*/, this.dispatch((0, actions_1.reloadFailed)(e_1))];
|
|
122
141
|
case 5:
|
|
123
142
|
_a.sent();
|
|
143
|
+
// eslint-disable-next-line no-console
|
|
124
144
|
console.error(e_1);
|
|
125
145
|
return [3 /*break*/, 6];
|
|
126
146
|
case 6: return [2 /*return*/];
|
|
@@ -142,38 +162,42 @@ var DataGrid = /** @class */ (function (_super) {
|
|
|
142
162
|
prevState.sort !== state.sort ||
|
|
143
163
|
prevState.perPage !== state.perPage ||
|
|
144
164
|
prevState.page !== state.page ||
|
|
145
|
-
prevState.f !== state.f
|
|
165
|
+
prevState.f !== state.f ||
|
|
166
|
+
prevState.fullText !== state.fullText) {
|
|
146
167
|
this.reload();
|
|
147
168
|
}
|
|
148
169
|
};
|
|
170
|
+
// eslint-disable-next-line complexity
|
|
149
171
|
DataGrid.prototype.render = function () {
|
|
150
172
|
var _this = this;
|
|
151
173
|
var _a, _b, _c, _d, _e, _f;
|
|
152
|
-
var _g = this.props, schema = _g.schema, _h = _g.BodyCell, BodyCell = _h === void 0 ? BodyCellBase_1.BodyCellBase : _h, _j = _g.FilterInput, FilterInput = _j === void 0 ? FilterInputBase_1.FilterInputBase : _j, title = _g.title, ActionCell = _g.ActionCell, actionCellWidth = _g.actionCellWidth, onOpen = _g.onOpen, onEdit = _g.onEdit, onRemove = _g.onRemove, gridName = _g.gridName,
|
|
174
|
+
var _g = this.props, schema = _g.schema, _h = _g.BodyCell, BodyCell = _h === void 0 ? BodyCellBase_1.BodyCellBase : _h, _j = _g.FilterInput, FilterInput = _j === void 0 ? FilterInputBase_1.FilterInputBase : _j, _k = _g.FilterListItem, FilterListItem = _k === void 0 ? FilterListItemBase_1.FilterListItemBase : _k, title = _g.title, ActionCell = _g.ActionCell, actionCellWidth = _g.actionCellWidth, onOpen = _g.onOpen, getOpenUrl = _g.getOpenUrl, onEdit = _g.onEdit, getEditUrl = _g.getEditUrl, onRemove = _g.onRemove, gridName = _g.gridName, _l = _g.rowHeight, rowHeight = _l === void 0 ? 44 : _l, _m = _g.headerRowHeight, headerRowHeight = _m === void 0 ? 44 : _m, onCsvDownload = _g.onCsvDownload, onChangeHiddenColumns = _g.onChangeHiddenColumns, _o = _g.hiddenColumns, hiddenColumns = _o === void 0 ? [] : _o, defaultConfig = _g.defaultConfig, FullTextInputProps = _g.FullTextInputProps, noBorder = _g.noBorder, rowClass = _g.rowClass, ToolbarContent = _g.ToolbarContent, ml = _g.ml, mt = _g.mt, mb = _g.mb, mr = _g.mr;
|
|
153
175
|
var state = this.state;
|
|
154
|
-
console.log(hiddenColumns);
|
|
155
176
|
var rows = (_b = (_a = state.response) === null || _a === void 0 ? void 0 : _a.result) !== null && _b !== void 0 ? _b : [];
|
|
156
177
|
var columns = schema.columns
|
|
157
178
|
.filter(function (c) { return !hiddenColumns.includes(c.name); })
|
|
158
|
-
.map(function (c) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
179
|
+
.map(function (c) {
|
|
180
|
+
var _a, _b;
|
|
181
|
+
return ({
|
|
182
|
+
key: c.name,
|
|
183
|
+
name: c.label,
|
|
184
|
+
headerCellClass: c.type,
|
|
185
|
+
resizable: true,
|
|
186
|
+
sortable: c.sort,
|
|
187
|
+
width: (_a = c.width) !== null && _a !== void 0 ? _a : (_b = defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.columns[c.name]) === null || _b === void 0 ? void 0 : _b.width,
|
|
188
|
+
minWidth: c.minWidth,
|
|
189
|
+
maxWidth: c.maxWidth,
|
|
190
|
+
formatter: function (props) {
|
|
191
|
+
return (react_1.default.createElement(BodyCell, { column: {
|
|
192
|
+
name: props.column.key,
|
|
193
|
+
label: props.column.name,
|
|
194
|
+
sort: props.column.sortable,
|
|
195
|
+
type: props.column.headerCellClass, //TODO
|
|
196
|
+
}, reload: _this.reload, row: props.row }));
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
if (ActionCell || onOpen || onEdit || getOpenUrl || getEditUrl || onRemove) {
|
|
177
201
|
var ActionCellComponent_1 = ActionCell !== null && ActionCell !== void 0 ? ActionCell : ActionCellBase_1.ActionCellBase;
|
|
178
202
|
columns.push({
|
|
179
203
|
key: "__action_column",
|
|
@@ -183,18 +207,26 @@ var DataGrid = /** @class */ (function (_super) {
|
|
|
183
207
|
cellClass: "action rdg-action-cell",
|
|
184
208
|
width: ActionCell ? actionCellWidth : [onRemove, onEdit, onOpen].filter(function (i) { return i; }).length * 44 + 8 * 2,
|
|
185
209
|
formatter: function (props) {
|
|
186
|
-
return (react_1.default.createElement(
|
|
210
|
+
return (react_1.default.createElement(ActionCellBase_1.ActionCellWrapper, null,
|
|
211
|
+
react_1.default.createElement(ActionCellComponent_1, { row: props.row, reload: _this.reload, onRemove: onRemove, onEdit: onEdit, getEditUrl: getEditUrl, onOpen: onOpen, getOpenUrl: getOpenUrl })));
|
|
187
212
|
},
|
|
188
213
|
});
|
|
189
214
|
}
|
|
190
215
|
var contentHeight = typeof rowHeight === "function"
|
|
191
216
|
? rows.reduce(function (prev, curr) { return prev + rowHeight(curr); })
|
|
192
217
|
: ((rowHeight !== null && rowHeight !== void 0 ? rowHeight : 44) + 1) * rows.length;
|
|
218
|
+
var visibleToolbar = schema.fullText ||
|
|
219
|
+
title ||
|
|
220
|
+
onCsvDownload ||
|
|
221
|
+
onChangeHiddenColumns ||
|
|
222
|
+
schema.filters.length > 0 ||
|
|
223
|
+
ToolbarContent;
|
|
193
224
|
return (react_1.default.createElement(Paper_1.Paper, { variant: "outlined", sx: {
|
|
194
225
|
ml: ml,
|
|
195
226
|
mr: mr,
|
|
196
227
|
mb: mb,
|
|
197
228
|
mt: mt,
|
|
229
|
+
borderWidth: noBorder ? 0 : undefined,
|
|
198
230
|
"& .rdg-action-cell": {
|
|
199
231
|
alignItems: "center",
|
|
200
232
|
boxShadow: 2,
|
|
@@ -203,33 +235,54 @@ var DataGrid = /** @class */ (function (_super) {
|
|
|
203
235
|
position: "sticky",
|
|
204
236
|
right: 0,
|
|
205
237
|
},
|
|
238
|
+
".rdg-row.primary > .rdg-cell": {
|
|
239
|
+
backgroundColor: function (theme) { return (0, setLightness_1.default)(0.9, theme.palette.primary.main); },
|
|
240
|
+
},
|
|
241
|
+
".rdg-row.secondary > .rdg-cell": {
|
|
242
|
+
backgroundColor: function (theme) { return (0, setLightness_1.default)(0.9, theme.palette.secondary.main); },
|
|
243
|
+
},
|
|
244
|
+
".rdg-row.success > .rdg-cell": {
|
|
245
|
+
backgroundColor: function (theme) { return (0, setLightness_1.default)(0.9, theme.palette.success.main); },
|
|
246
|
+
},
|
|
247
|
+
".rdg-row.warning > .rdg-cell": {
|
|
248
|
+
backgroundColor: function (theme) { return (0, setLightness_1.default)(0.9, theme.palette.warning.main); },
|
|
249
|
+
},
|
|
250
|
+
".rdg-row.error > .rdg-cell": {
|
|
251
|
+
backgroundColor: function (theme) { return (0, setLightness_1.default)(0.9, theme.palette.error.main); },
|
|
252
|
+
},
|
|
206
253
|
} },
|
|
207
|
-
react_1.default.createElement(Toolbar_1.default,
|
|
208
|
-
react_1.default.createElement(Typography_1.default, { sx: { flex: "1 1 100%" }, variant: "h6", id: "tableTitle", component: "div" }, title),
|
|
254
|
+
visibleToolbar && (react_1.default.createElement(Toolbar_1.default, { style: { paddingLeft: 16, paddingRight: 16 } },
|
|
255
|
+
ToolbarContent ? (react_1.default.createElement(ToolbarContent, { filtersData: state.f, onFilter: function (v) { return _this.dispatch((0, actions_1.filter)(v)); } })) : schema.fullText ? (react_1.default.createElement(material_1.TextField, __assign({ fullWidth: true, variant: "outlined", size: "small", InputProps: { startAdornment: react_1.default.createElement(Search_1.default, null) } }, FullTextInputProps, { value: state.fullText || "", onChange: function (e) { return _this.dispatch((0, actions_1.search)(e.target.value)); } }))) : (react_1.default.createElement(Typography_1.default, { sx: { flex: "1 1 100%" }, variant: "h6", id: "tableTitle", component: "div" }, title)),
|
|
209
256
|
react_1.default.createElement(Box_1.default, { display: "flex", flexDirection: "row" },
|
|
210
257
|
onCsvDownload && (react_1.default.createElement(Tooltip_1.default, { title: "St\u00E1hnout csv" },
|
|
211
|
-
react_1.default.createElement(IconButton_1.default, { sx: { ml: 1 }, onClick: function () {
|
|
258
|
+
react_1.default.createElement(IconButton_1.default, { sx: { ml: 1 }, onClick: function () {
|
|
259
|
+
return onCsvDownload((0, utils_1.createRequest)(_this.state, schema.sort, schema.dir));
|
|
260
|
+
} },
|
|
212
261
|
react_1.default.createElement(CloudDownload_1.default, null)))),
|
|
213
262
|
onChangeHiddenColumns && (react_1.default.createElement(HiddenColumns_1.HiddenColumns, { dispatch: this.dispatch, columns: schema.columns, hiddenColumns: hiddenColumns !== null && hiddenColumns !== void 0 ? hiddenColumns : [], onChangeHiddenColumns: onChangeHiddenColumns })),
|
|
214
|
-
react_1.default.createElement(Filters_1.Filters, { dispatch: this.dispatch, filters: schema.filters, filtersData: state.f, gridName: gridName !== null && gridName !== void 0 ? gridName : null, FilterInput: FilterInput }))),
|
|
215
|
-
react_1.default.createElement(FiltersList_1.FiltersList, { dispatch: this.dispatch, filters: schema.filters, filtersData: state.f }),
|
|
263
|
+
react_1.default.createElement(Filters_1.Filters, { dispatch: this.dispatch, filters: schema.filters, filtersData: state.f, gridName: gridName !== null && gridName !== void 0 ? gridName : null, FilterInput: FilterInput })))),
|
|
264
|
+
schema.filters.length > 0 && (react_1.default.createElement(FiltersList_1.FiltersList, { dispatch: this.dispatch, filters: schema.filters, filtersData: state.f, FilterListItem: FilterListItem })),
|
|
216
265
|
state.loading && react_1.default.createElement(LinearProgress_1.default, { style: { marginTop: -4 } }),
|
|
217
|
-
react_1.default.createElement(
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
266
|
+
react_1.default.createElement(NoSsr_1.default, null,
|
|
267
|
+
react_1.default.createElement(react_data_grid_1.default, { style: {
|
|
268
|
+
border: 0,
|
|
269
|
+
borderRadius: 4,
|
|
270
|
+
height: contentHeight + headerRowHeight + SCROLLBAR_HEIGHT + (rows.length === 0 ? 44 : 0),
|
|
271
|
+
overflowY: "hidden",
|
|
272
|
+
}, className: "rdg-light", columns: columns, rows: (_d = (_c = state.response) === null || _c === void 0 ? void 0 : _c.result) !== null && _d !== void 0 ? _d : [], enableVirtualization: false, onSortColumnsChange: function (sortColumns) {
|
|
273
|
+
if (sortColumns.length > 0) {
|
|
274
|
+
var sc = sortColumns[0];
|
|
275
|
+
_this.dispatch((0, actions_1.sort)(sc.columnKey, sc.direction.toLowerCase()));
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
_this.dispatch((0, actions_1.sortClear)());
|
|
279
|
+
}
|
|
280
|
+
}, sortColumns: state.sort && state.dir
|
|
281
|
+
? [{ columnKey: state.sort, direction: state.dir.toUpperCase() }]
|
|
282
|
+
: [], rowHeight: rowHeight, headerRowHeight: headerRowHeight, noRowsFallback: react_1.default.createElement(Box_1.default, { height: 48, display: "flex", alignItems: "center", justifyContent: "center" }, state.loading ? (react_1.default.createElement(CircularProgress_1.default, { size: 24 })) : state.error ? (react_1.default.createElement(Typography_1.default, { textAlign: "center" }, "Vyskytla se chyba")) : (react_1.default.createElement(Typography_1.default, { textAlign: "center" }, "\u017D\u00E1dn\u00E9 z\u00E1znamy"))), rowClass: rowClass })),
|
|
283
|
+
react_1.default.createElement(TablePagination_1.default, { sx: { mx: 2 }, component: "div", count: (_f = (_e = state.response) === null || _e === void 0 ? void 0 : _e.count) !== null && _f !== void 0 ? _f : 0, page: state.page, onPageChange: function (_, page) { return _this.dispatch((0, actions_1.changePage)(page)); }, rowsPerPage: state.perPage, onRowsPerPageChange: function (event) { return _this.dispatch((0, actions_1.changePerPage)(Number.parseInt(event.target.value, 10))); }, showFirstButton: true, showLastButton: true })));
|
|
231
284
|
};
|
|
232
285
|
return DataGrid;
|
|
233
286
|
}(react_1.Component));
|
|
234
287
|
exports.DataGrid = DataGrid;
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRGF0YUdyaWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRkFBOEQ7QUFDOUQsZ0ZBQTBEO0FBQzFELGtFQUE0QztBQUM1QywwREFBb0M7QUFDcEMsd0VBQWtEO0FBQ2xELG9GQUE4RDtBQUM5RCx3RUFBa0Q7QUFDbEQsa0VBQTRDO0FBQzVDLDhEQUE2RDtBQUM3RCxnRUFBK0Q7QUFDL0QsZ0RBQStDO0FBQy9DLHdEQUF1RDtBQUN2RCw0REFBMkQ7QUFDM0QsNENBQTJDO0FBQzNDLDZDQUF5QztBQUN6QywwREFBeUQ7QUFDekQsMkNBQW9HO0FBQ3BHLDJDQUEyRDtBQUUzRCx1Q0FBNEQ7QUFDNUQsb0VBQXdEO0FBQ3hELGtGQUE0RDtBQUU1RDtJQUFzRCw0QkFBMEM7SUFDNUYsa0JBQVksS0FBb0Q7UUFBaEUsWUFDSSxrQkFBTSxLQUFLLENBQUMsU0FFZjtRQUVNLFlBQU0sR0FBRzs7Ozs7O3dCQUVSLHFCQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBQSxnQkFBTSxHQUFFLENBQUMsRUFBQTs7d0JBQTdCLFNBQTZCLENBQUM7d0JBRXhCLE9BQU8sR0FBRyxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN6QixxQkFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUE7O3dCQUF2RixRQUFRLEdBQUcsU0FBNEU7d0JBRTdGLHFCQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBQSxvQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUE7O3dCQUF6QyxT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
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRGF0YUdyaWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUEwQztBQUMxQyw4REFBd0M7QUFDeEMsb0ZBQThEO0FBQzlELGdGQUEwRDtBQUMxRCxrRUFBNEM7QUFDNUMsMERBQW9DO0FBQ3BDLHdFQUFrRDtBQUNsRCxvRkFBOEQ7QUFDOUQsc0VBQW9EO0FBQ3BELHdFQUFrRDtBQUNsRCxrRUFBNEM7QUFDNUMsOERBQWdGO0FBQ2hGLGdFQUErRDtBQUMvRCxzRUFBcUU7QUFDckUsZ0RBQStDO0FBQy9DLHdEQUF1RDtBQUN2RCw0REFBMkQ7QUFDM0QsNENBQTJDO0FBQzNDLDZDQUF5QztBQUN6QywwREFBeUQ7QUFDekQsMkNBVXlCO0FBQ3pCLDJDQUEyRDtBQUUzRCx1Q0FBNEQ7QUFDNUQsb0VBQXdEO0FBQ3hELGtGQUE0RDtBQUM1RCxpRkFBMkQ7QUFFM0QsSUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFNUIsc0RBQXNEO0FBQ3REO0lBQWtGLDRCQUdqRjtJQUNHLGtCQUFZLEtBQTJDO1FBQXZELFlBQ0ksa0JBQU0sS0FBSyxDQUFDLFNBRWY7UUFFTSxZQUFNLEdBQUc7Ozs7Ozt3QkFFQSxNQUFNLEdBQUssSUFBSSxDQUFDLEtBQUssT0FBZixDQUFnQjt3QkFDOUIscUJBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFBLGdCQUFNLEdBQUUsQ0FBQyxFQUFBOzt3QkFBN0IsU0FBNkIsQ0FBQzt3QkFFeEIsT0FBTyxHQUFHLElBQUEscUJBQWEsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNsRCxxQkFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUE7O3dCQUF2RixRQUFRLEdBQUcsU0FBNEU7d0JBRTdGLHFCQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBQSxvQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUE7O3dCQUF6QyxTQUF5QyxDQUFDOzs7O3dCQUUxQyxxQkFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUEsc0JBQVksRUFBQyxHQUFDLENBQUMsQ0FBQyxFQUFBOzt3QkFBcEMsU0FBb0MsQ0FBQzt3QkFDckMsc0NBQXNDO3dCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUMsQ0FBQyxDQUFDOzs7OzthQUV4QixDQUFDO1FBRU0sY0FBUSxHQUFHLFVBQUMsTUFBVztZQUMzQixPQUFPLElBQUksT0FBTyxDQUFPLFVBQUEsT0FBTyxJQUFJLE9BQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLElBQUEsaUJBQU8sRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQXRCLENBQXNCLEVBQUUsT0FBTyxDQUFDLEVBQXZELENBQXVELENBQUMsQ0FBQztRQUNqRyxDQUFDLENBQUM7UUFyQkUsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFBLHlCQUFlLEVBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7O0lBQ25FLENBQUM7SUFzQkQsb0NBQWlCLEdBQWpCO1FBQ0ksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxxQ0FBa0IsR0FBekIsVUFBMEIsQ0FBdUMsRUFBRSxTQUFrQztRQUNqRyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQ0ksU0FBUyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRztZQUMzQixTQUFTLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJO1lBQzdCLFNBQVMsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU87WUFDbkMsU0FBUyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSTtZQUM3QixTQUFTLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFDdkM7WUFDRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRUQsc0NBQXNDO0lBQy9CLHlCQUFNLEdBQWI7UUFBQSxpQkF5UEM7O1FBeFBTLElBQUEsS0E0QkYsSUFBSSxDQUFDLEtBQUssRUEzQlYsTUFBTSxZQUFBLEVBQ04sZ0JBQXVCLEVBQXZCLFFBQVEsbUJBQUcsMkJBQVksS0FBQSxFQUN2QixtQkFBNkIsRUFBN0IsV0FBVyxtQkFBRyxpQ0FBZSxLQUFBLEVBQzdCLHNCQUFtQyxFQUFuQyxjQUFjLG1CQUFHLHVDQUFrQixLQUFBLEVBQ25DLEtBQUssV0FBQSxFQUNMLFVBQVUsZ0JBQUEsRUFDVixlQUFlLHFCQUFBLEVBQ2YsTUFBTSxZQUFBLEVBQ04sVUFBVSxnQkFBQSxFQUNWLE1BQU0sWUFBQSxFQUNOLFVBQVUsZ0JBQUEsRUFDVixRQUFRLGNBQUEsRUFDUixRQUFRLGNBQUEsRUFDUixpQkFBYyxFQUFkLFNBQVMsbUJBQUcsRUFBRSxLQUFBLEVBQ2QsdUJBQW9CLEVBQXBCLGVBQWUsbUJBQUcsRUFBRSxLQUFBLEVBQ3BCLGFBQWEsbUJBQUEsRUFDYixxQkFBcUIsMkJBQUEsRUFDckIscUJBQWtCLEVBQWxCLGFBQWEsbUJBQUcsRUFBRSxLQUFBLEVBQ2xCLGFBQWEsbUJBQUEsRUFDYixrQkFBa0Isd0JBQUEsRUFDbEIsUUFBUSxjQUFBLEVBQ1IsUUFBUSxjQUFBLEVBQ1IsY0FBYyxvQkFBQSxFQUNkLEVBQUUsUUFBQSxFQUNGLEVBQUUsUUFBQSxFQUNGLEVBQUUsUUFBQSxFQUNGLEVBQUUsUUFDUSxDQUFDO1FBRVAsSUFBQSxLQUFLLEdBQUssSUFBSSxNQUFULENBQVU7UUFFdkIsSUFBTSxJQUFJLEdBQUcsTUFBQSxNQUFBLEtBQUssQ0FBQyxRQUFRLDBDQUFFLE1BQU0sbUNBQUksRUFBRSxDQUFDO1FBRTFDLElBQU0sT0FBTyxHQUFrQixNQUFNLENBQUMsT0FBTzthQUN4QyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQWMsQ0FBQyxFQUF6QyxDQUF5QyxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxVQUFBLENBQUM7O1lBQUksT0FBQSxDQUFDO2dCQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBVztnQkFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLO2dCQUNiLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDdkIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNoQixLQUFLLEVBQUUsTUFBQSxDQUFDLENBQUMsS0FBSyxtQ0FBSSxNQUFBLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQ0FBRSxLQUFLO2dCQUN2RCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7Z0JBQ3BCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsU0FBUyxFQUFFLFVBQUEsS0FBSztvQkFDWixPQUFPLENBQ0gsOEJBQUMsUUFBUSxJQUNMLE1BQU0sRUFBRTs0QkFDSixJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHOzRCQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJOzRCQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFROzRCQUMzQixJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFzQixFQUFFLE1BQU07eUJBQ3BELEVBQ0QsTUFBTSxFQUFFLEtBQUksQ0FBQyxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUNoQixDQUNMLENBQUM7Z0JBQ04sQ0FBQzthQUNKLENBQUMsQ0FBQTtTQUFBLENBQUMsQ0FBQztRQUVSLElBQUksVUFBVSxJQUFJLE1BQU0sSUFBSSxNQUFNLElBQUksVUFBVSxJQUFJLFVBQVUsSUFBSSxRQUFRLEVBQUU7WUFDeEUsSUFBTSxxQkFBbUIsR0FBRyxVQUFVLGFBQVYsVUFBVSxjQUFWLFVBQVUsR0FBSSwrQkFBYyxDQUFDO1lBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLGVBQWUsRUFBRSxpQkFBaUI7Z0JBQ2xDLFNBQVMsRUFBRSx3QkFBd0I7Z0JBQ25DLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsRUFBRCxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNuRyxTQUFTLEVBQUUsVUFBQSxLQUFLO29CQUNaLE9BQU8sQ0FDSCw4QkFBQyxrQ0FBaUI7d0JBQ2QsOEJBQUMscUJBQW1CLElBQ2hCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUNkLE1BQU0sRUFBRSxLQUFJLENBQUMsTUFBTSxFQUNuQixRQUFRLEVBQUUsUUFBUSxFQUNsQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLFVBQVUsR0FDeEIsQ0FDYyxDQUN2QixDQUFDO2dCQUNOLENBQUM7YUFDSixDQUFDLENBQUM7U0FDTjtRQUVELElBQU0sYUFBYSxHQUNmLE9BQU8sU0FBUyxLQUFLLFVBQVU7WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLEVBQUUsSUFBSSxJQUFLLE9BQUEsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFaEQsSUFBTSxjQUFjLEdBQ2hCLE1BQU0sQ0FBQyxRQUFRO1lBQ2YsS0FBSztZQUNMLGFBQWE7WUFDYixxQkFBcUI7WUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUN6QixjQUFjLENBQUM7UUFFbkIsT0FBTyxDQUNILDhCQUFDLGFBQUssSUFDRixPQUFPLEVBQUMsVUFBVSxFQUNsQixFQUFFLEVBQUU7Z0JBQ0EsRUFBRSxJQUFBO2dCQUNGLEVBQUUsSUFBQTtnQkFDRixFQUFFLElBQUE7Z0JBQ0YsRUFBRSxJQUFBO2dCQUNGLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDckMsb0JBQW9CLEVBQUU7b0JBQ2xCLFVBQVUsRUFBRSxRQUFRO29CQUNwQixTQUFTLEVBQUUsQ0FBQztvQkFDWixPQUFPLEVBQUUsTUFBTTtvQkFDZixjQUFjLEVBQUUsUUFBUTtvQkFDeEIsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNYO2dCQUNELDhCQUE4QixFQUFFO29CQUM1QixlQUFlLEVBQUUsVUFBQSxLQUFLLElBQUksT0FBQSxJQUFBLHNCQUFZLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUE3QyxDQUE2QztpQkFDMUU7Z0JBQ0QsZ0NBQWdDLEVBQUU7b0JBQzlCLGVBQWUsRUFBRSxVQUFBLEtBQUssSUFBSSxPQUFBLElBQUEsc0JBQVksRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQS9DLENBQStDO2lCQUM1RTtnQkFDRCw4QkFBOEIsRUFBRTtvQkFDNUIsZUFBZSxFQUFFLFVBQUEsS0FBSyxJQUFJLE9BQUEsSUFBQSxzQkFBWSxFQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBN0MsQ0FBNkM7aUJBQzFFO2dCQUNELDhCQUE4QixFQUFFO29CQUM1QixlQUFlLEVBQUUsVUFBQSxLQUFLLElBQUksT0FBQSxJQUFBLHNCQUFZLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUE3QyxDQUE2QztpQkFDMUU7Z0JBQ0QsNEJBQTRCLEVBQUU7b0JBQzFCLGVBQWUsRUFBRSxVQUFBLEtBQUssSUFBSSxPQUFBLElBQUEsc0JBQVksRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQTNDLENBQTJDO2lCQUN4RTthQUNKO1lBRUEsY0FBYyxJQUFJLENBQ2YsOEJBQUMsaUJBQU8sSUFBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7Z0JBQ2hELGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FDZCw4QkFBQyxjQUFjLElBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFBLGdCQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBOUIsQ0FBOEIsR0FBSSxDQUMxRixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNsQiw4QkFBQyxvQkFBUyxhQUNOLFNBQVMsUUFDVCxPQUFPLEVBQUMsVUFBVSxFQUNsQixJQUFJLEVBQUMsT0FBTyxFQUNaLFVBQVUsRUFBRSxFQUFFLGNBQWMsRUFBRSw4QkFBQyxnQkFBVSxPQUFHLEVBQUUsSUFDMUMsa0JBQWtCLElBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDM0IsUUFBUSxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFBLGdCQUFNLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFyQyxDQUFxQyxJQUN0RCxDQUNMLENBQUMsQ0FBQyxDQUFDLENBQ0EsOEJBQUMsb0JBQVUsSUFBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxLQUFLLElBQzdFLEtBQUssQ0FDRyxDQUNoQjtnQkFDRCw4QkFBQyxhQUFHLElBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxhQUFhLEVBQUMsS0FBSztvQkFDbEMsYUFBYSxJQUFJLENBQ2QsOEJBQUMsaUJBQU8sSUFBQyxLQUFLLEVBQUMsbUJBQWM7d0JBQ3pCLDhCQUFDLG9CQUFVLElBQ1AsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUNiLE9BQU8sRUFBRTtnQ0FDTCxPQUFBLGFBQWEsQ0FBQyxJQUFBLHFCQUFhLEVBQUMsS0FBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFBakUsQ0FBaUU7NEJBR3JFLDhCQUFDLHVCQUFhLE9BQUcsQ0FDUixDQUNQLENBQ2I7b0JBQ0EscUJBQXFCLElBQUksQ0FDdEIsOEJBQUMsNkJBQWEsSUFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQ3ZCLGFBQWEsRUFBRSxhQUFhLGFBQWIsYUFBYSxjQUFiLGFBQWEsR0FBSSxFQUFFLEVBQ2xDLHFCQUFxQixFQUFFLHFCQUFxQixHQUM5QyxDQUNMO29CQUNELDhCQUFDLGlCQUFPLElBQ0osUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUN2QixXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDcEIsUUFBUSxFQUFFLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLElBQUksRUFDMUIsV0FBVyxFQUFFLFdBQWtCLEdBQ2pDLENBQ0EsQ0FDQSxDQUNiO1lBQ0EsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQzFCLDhCQUFDLHlCQUFXLElBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUN2QixXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDcEIsY0FBYyxFQUFFLGNBQXFCLEdBQ3ZDLENBQ0w7WUFDQSxLQUFLLENBQUMsT0FBTyxJQUFJLDhCQUFDLHdCQUFjLElBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUk7WUFDOUQsOEJBQUMsZUFBSztnQkFDRiw4QkFBQyx5QkFBYSxJQUNWLEtBQUssRUFBRTt3QkFDSCxNQUFNLEVBQUUsQ0FBQzt3QkFDVCxZQUFZLEVBQUUsQ0FBQzt3QkFDZixNQUFNLEVBQUUsYUFBYSxHQUFHLGVBQWUsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDekYsU0FBUyxFQUFFLFFBQVE7cUJBQ3RCLEVBQ0QsU0FBUyxFQUFDLFdBQVcsRUFDckIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsSUFBSSxFQUFFLE1BQUEsTUFBQSxLQUFLLENBQUMsUUFBUSwwQ0FBRSxNQUFNLG1DQUFJLEVBQUUsRUFDbEMsb0JBQW9CLEVBQUUsS0FBSyxFQUMzQixtQkFBbUIsRUFBRSxVQUFBLFdBQVc7d0JBQzVCLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7NEJBQ3hCLElBQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDMUIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFBLGNBQUksRUFBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFTLENBQUMsQ0FBQyxDQUFDO3lCQUN4RTs2QkFBTTs0QkFDSCxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUEsbUJBQVMsR0FBRSxDQUFDLENBQUM7eUJBQzlCO29CQUNMLENBQUMsRUFDRCxXQUFXLEVBQ1AsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRzt3QkFDbkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQVMsRUFBRSxDQUFDO3dCQUN4RSxDQUFDLENBQUMsRUFBRSxFQUVaLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGNBQWMsRUFDViw4QkFBQyxhQUFHLElBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsY0FBYyxFQUFDLFFBQVEsSUFDdEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDYiw4QkFBQywwQkFBZ0IsSUFBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLENBQ2pDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2QsOEJBQUMsb0JBQVUsSUFBQyxTQUFTLEVBQUMsUUFBUSx3QkFBK0IsQ0FDaEUsQ0FBQyxDQUFDLENBQUMsQ0FDQSw4QkFBQyxvQkFBVSxJQUFDLFNBQVMsRUFBQyxRQUFRLHdDQUEyQixDQUM1RCxDQUNDLEVBRVYsUUFBUSxFQUFFLFFBQVEsR0FDcEIsQ0FDRTtZQUNSLDhCQUFDLHlCQUFlLElBQ1osRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUNiLFNBQVMsRUFBQyxLQUFLLEVBQ2YsS0FBSyxFQUFFLE1BQUEsTUFBQSxLQUFLLENBQUMsUUFBUSwwQ0FBRSxLQUFLLG1DQUFJLENBQUMsRUFDakMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQ2hCLFlBQVksRUFBRSxVQUFDLENBQUMsRUFBRSxJQUFJLElBQUssT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxFQUEvQixDQUErQixFQUMxRCxXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFDMUIsbUJBQW1CLEVBQUUsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUEsdUJBQWEsRUFBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBckUsQ0FBcUUsRUFDbkcsZUFBZSxRQUNmLGNBQWMsU0FDaEIsQ0FDRSxDQUNYLENBQUM7SUFDTixDQUFDO0lBQ0wsZUFBQztBQUFELENBQUMsQUExU0QsQ0FBa0YsaUJBQVMsR0EwUzFGO0FBMVNZLDRCQUFRIn0=
|
package/README.md
CHANGED
|
@@ -1,14 +1,80 @@
|
|
|
1
1
|
# @uxf/data-grid
|
|
2
|
+
[](https://www.npmjs.com/package/@uxf/data-grid)
|
|
3
|
+
[](https://www.npmjs.com/package/@uxf/data-grid)
|
|
4
|
+
[](https://www.npmjs.com/package/@uxf/data-grid)
|
|
5
|
+
[](https://www.npmjs.com/package/@uxf/data-grid)
|
|
2
6
|
|
|
3
|
-
##
|
|
7
|
+
## Typescript
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Schema } from "@uxf/data-grid";
|
|
11
|
+
|
|
12
|
+
type GridType = {
|
|
13
|
+
columns: {
|
|
14
|
+
// columnName : columnType
|
|
15
|
+
id: "number";
|
|
16
|
+
name: "string";
|
|
17
|
+
active: "boolean"
|
|
18
|
+
};
|
|
19
|
+
filters: {
|
|
20
|
+
// filterName : filterType
|
|
21
|
+
id: "number",
|
|
22
|
+
name: "text",
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const schema: Schema<GridType> = {
|
|
27
|
+
columns: [
|
|
28
|
+
{ name: "id", type: "number", label: "Id"},
|
|
29
|
+
{ name: "name", type: "string", label: "Jméno" },
|
|
30
|
+
{ name: "active", type: "boolean", label: "Aktivní"},
|
|
31
|
+
],
|
|
32
|
+
filters: [
|
|
33
|
+
{ name: "id", type: "number", label: "Id" },
|
|
34
|
+
{ name: "name", type: "text", label: "Jméno" },
|
|
35
|
+
],
|
|
36
|
+
dir: "asc",
|
|
37
|
+
sort: "id",
|
|
38
|
+
perPage: 10,
|
|
39
|
+
fullText: true,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
<DataGrid<GridType> schema={schema}/>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Props
|
|
46
|
+
|
|
47
|
+
#### getOpenUrl
|
|
48
|
+
Return value: null or undefined hides button
|
|
49
|
+
```tsx
|
|
50
|
+
getOpenUrl: (row: T) => string | null | undefined;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### getEditUrl
|
|
54
|
+
Return value: null or undefined hides button
|
|
55
|
+
```tsx
|
|
56
|
+
getOpenUrl: (row: T) => string | null | undefined;
|
|
4
57
|
```
|
|
5
|
-
DataGridConfigurator => removed
|
|
6
|
-
LoaderFunction => Loader
|
|
7
58
|
|
|
8
|
-
|
|
9
|
-
|
|
59
|
+
#### rowClass
|
|
60
|
+
```tsx
|
|
61
|
+
rowClass: (row: T) => "primary" | "secondary" | "success" | "warning" | "error" | string | null;
|
|
10
62
|
```
|
|
11
63
|
|
|
64
|
+
#### ToolbarContent
|
|
65
|
+
```tsx
|
|
66
|
+
<DataGrid
|
|
67
|
+
ToolbarContent={({ onFilter, filtersData }) => (
|
|
68
|
+
<Checkbox
|
|
69
|
+
label="Boolean filter in toolbar"
|
|
70
|
+
checked={filtersData.find(f => f.name === "neighbors")?.value}
|
|
71
|
+
onChange={e => onFilter({ name: "neighbors", value: e.target.checked })}
|
|
72
|
+
/>
|
|
73
|
+
)}
|
|
74
|
+
/>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
|
|
12
78
|
## Example usage ##
|
|
13
79
|
|
|
14
80
|
```tsx
|
|
@@ -22,33 +22,75 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.ActionCellBase = void 0;
|
|
25
|
+
exports.ActionCellBase = exports.ActionCellWrapper = void 0;
|
|
26
26
|
var ArrowRightAlt_1 = __importDefault(require("@mui/icons-material/ArrowRightAlt"));
|
|
27
27
|
var Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
|
|
28
28
|
var Edit_1 = __importDefault(require("@mui/icons-material/Edit"));
|
|
29
29
|
var Box_1 = __importDefault(require("@mui/material/Box"));
|
|
30
30
|
var IconButton_1 = __importDefault(require("@mui/material/IconButton"));
|
|
31
31
|
var react_1 = __importStar(require("react"));
|
|
32
|
+
exports.ActionCellWrapper = (0, react_1.memo)(function (_a) {
|
|
33
|
+
var children = _a.children;
|
|
34
|
+
var innerRef = (0, react_1.useRef)(null);
|
|
35
|
+
(0, react_1.useEffect)(function () {
|
|
36
|
+
var _a;
|
|
37
|
+
var scrollLeft = 0;
|
|
38
|
+
var grid = null;
|
|
39
|
+
var node = innerRef.current;
|
|
40
|
+
if (!node) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
var scrollHandler = function () {
|
|
44
|
+
grid === null || grid === void 0 ? void 0 : grid.scrollTo({ left: scrollLeft });
|
|
45
|
+
grid === null || grid === void 0 ? void 0 : grid.removeEventListener("scroll", scrollHandler);
|
|
46
|
+
};
|
|
47
|
+
var focusHandler = function () {
|
|
48
|
+
grid = node.closest(".rdg");
|
|
49
|
+
if (grid) {
|
|
50
|
+
scrollLeft = grid.scrollLeft;
|
|
51
|
+
grid.addEventListener("scroll", scrollHandler);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
(_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.addEventListener("focus", focusHandler, { capture: true });
|
|
55
|
+
return function () {
|
|
56
|
+
var _a;
|
|
57
|
+
grid === null || grid === void 0 ? void 0 : grid.removeEventListener("scroll", scrollHandler);
|
|
58
|
+
(_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.removeEventListener("focus", focusHandler);
|
|
59
|
+
};
|
|
60
|
+
}, []);
|
|
61
|
+
return (react_1.default.createElement(Box_1.default, { alignItems: "center", display: "flex", justifyContent: "center", ref: innerRef, textAlign: "center", width: "100%" }, children));
|
|
62
|
+
});
|
|
63
|
+
exports.ActionCellWrapper.displayName = "ActionCellWrapper";
|
|
32
64
|
var ActionCellItem = (0, react_1.memo)(function (_a) {
|
|
33
65
|
var children = _a.children;
|
|
34
|
-
return (react_1.default.createElement(Box_1.default, { alignItems: "center", justifyContent: "center", textAlign: "center", width: "100%" }, children));
|
|
66
|
+
return (react_1.default.createElement(Box_1.default, { alignItems: "center", display: "flex", justifyContent: "center", textAlign: "center", width: "100%" }, children));
|
|
35
67
|
});
|
|
36
68
|
ActionCellItem.displayName = "ActionCellItem";
|
|
69
|
+
var Button = function (props) {
|
|
70
|
+
var getUrl = props.getUrl, onClick = props.onClick, row = props.row, icon = props.icon;
|
|
71
|
+
if (getUrl) {
|
|
72
|
+
var href = getUrl(row);
|
|
73
|
+
if (!href) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return (react_1.default.createElement(ActionCellItem, null,
|
|
77
|
+
react_1.default.createElement(IconButton_1.default, { href: href, size: "small" }, icon)));
|
|
78
|
+
}
|
|
79
|
+
if (onClick) {
|
|
80
|
+
return (react_1.default.createElement(ActionCellItem, null,
|
|
81
|
+
react_1.default.createElement(IconButton_1.default, { size: "small", onClick: function () { return onClick(row); } }, icon)));
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
37
85
|
var ActionCellBase = function (props) {
|
|
38
|
-
var onOpen = props.onOpen, onEdit = props.onEdit, onRemove = props.onRemove, row = props.row;
|
|
39
|
-
if (!onOpen && !onEdit && !onRemove) {
|
|
86
|
+
var onOpen = props.onOpen, getOpenUrl = props.getOpenUrl, onEdit = props.onEdit, getEditUrl = props.getEditUrl, onRemove = props.onRemove, row = props.row;
|
|
87
|
+
if (!onOpen && !getOpenUrl && !onEdit && !getEditUrl && !onRemove) {
|
|
40
88
|
return null;
|
|
41
89
|
}
|
|
42
90
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
43
|
-
onRemove
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
onEdit && (react_1.default.createElement(ActionCellItem, null,
|
|
47
|
-
react_1.default.createElement(IconButton_1.default, { size: "small", onClick: function () { return onEdit(row); } },
|
|
48
|
-
react_1.default.createElement(Edit_1.default, null)))),
|
|
49
|
-
onOpen && (react_1.default.createElement(ActionCellItem, null,
|
|
50
|
-
react_1.default.createElement(IconButton_1.default, { onClick: function () { return onOpen(row); } },
|
|
51
|
-
react_1.default.createElement(ArrowRightAlt_1.default, null))))));
|
|
91
|
+
react_1.default.createElement(Button, { row: row, onClick: onRemove, getUrl: undefined, icon: react_1.default.createElement(Delete_1.default, null) }),
|
|
92
|
+
react_1.default.createElement(Button, { row: row, onClick: onEdit, getUrl: getEditUrl, icon: react_1.default.createElement(Edit_1.default, null) }),
|
|
93
|
+
react_1.default.createElement(Button, { row: row, onClick: onOpen, getUrl: getOpenUrl, icon: react_1.default.createElement(ArrowRightAlt_1.default, null) })));
|
|
52
94
|
};
|
|
53
95
|
exports.ActionCellBase = ActionCellBase;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0aW9uQ2VsbEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9BY3Rpb25DZWxsQmFzZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9GQUErRDtBQUMvRCxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELDBEQUFvQztBQUNwQyx3RUFBa0Q7QUFDbEQsNkNBQWtFO0FBR3JELFFBQUEsaUJBQWlCLEdBQUcsSUFBQSxZQUFJLEVBQUMsVUFBQyxFQUFZO1FBQVYsUUFBUSxjQUFBO0lBQzdDLElBQU0sUUFBUSxHQUFHLElBQUEsY0FBTSxFQUFpQixJQUFJLENBQUMsQ0FBQztJQUU5QyxJQUFBLGlCQUFTLEVBQUM7O1FBQ04sSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksSUFBSSxHQUFtQixJQUFJLENBQUM7UUFFaEMsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBRUQsSUFBTSxhQUFhLEdBQUc7WUFDbEIsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO1FBRUYsSUFBTSxZQUFZLEdBQUc7WUFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDbEQ7UUFD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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { BodyCellComponent } from "../types";
|
|
2
|
-
export declare const BodyCellBase: BodyCellComponent<any>;
|
|
2
|
+
export declare const BodyCellBase: BodyCellComponent<any, any>;
|
|
@@ -1,44 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
4
|
};
|
|
21
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
6
|
exports.BodyCellBase = void 0;
|
|
23
|
-
var
|
|
7
|
+
var Checkbox_1 = __importDefault(require("@mui/material/Checkbox"));
|
|
8
|
+
var react_1 = __importDefault(require("react"));
|
|
24
9
|
var BodyCellWrapper_1 = require("./BodyCellWrapper");
|
|
25
10
|
var BodyCellBase = function (props) {
|
|
26
11
|
var column = props.column, row = props.row;
|
|
27
12
|
var value = row[column.name];
|
|
13
|
+
if (column.type === "boolean") {
|
|
14
|
+
return (react_1.default.createElement(BodyCellWrapper_1.BodyCellWrapper, { label: column.name }, typeof value === "boolean" ? react_1.default.createElement(Checkbox_1.default, { checked: value, disabled: true }) : null));
|
|
15
|
+
}
|
|
28
16
|
var canRender = typeof value === "string" || typeof value === "number" || value === undefined || value === null;
|
|
29
|
-
(0, react_1.useEffect)(function () {
|
|
30
|
-
if (!canRender) {
|
|
31
|
-
console.warn("Unknown value for column '" + column.name + "'.", value);
|
|
32
|
-
}
|
|
33
|
-
}, [value, canRender]);
|
|
34
17
|
if (canRender) {
|
|
35
18
|
return react_1.default.createElement(BodyCellWrapper_1.BodyCellWrapper, { label: column.name }, value);
|
|
36
19
|
}
|
|
37
|
-
return
|
|
38
|
-
"Nezn\u00E1m\u00E1",
|
|
39
|
-
react_1.default.createElement("br", null),
|
|
40
|
-
react_1.default.createElement("br", null),
|
|
41
|
-
" hodnota"));
|
|
20
|
+
return react_1.default.createElement(BodyCellWrapper_1.BodyCellWrapper, { label: column.name }, "Nezn\u00E1m\u00E1 hodnota");
|
|
42
21
|
};
|
|
43
22
|
exports.BodyCellBase = BodyCellBase;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keUNlbGxCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvQm9keUNlbGxCYXNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvRUFBOEM7QUFDOUMsZ0RBQTBCO0FBRTFCLHFEQUFvRDtBQUU3QyxJQUFNLFlBQVksR0FBZ0MsVUFBQSxLQUFLO0lBQ2xELElBQUEsTUFBTSxHQUFVLEtBQUssT0FBZixFQUFFLEdBQUcsR0FBSyxLQUFLLElBQVYsQ0FBVztJQUM5QixJQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDM0IsT0FBTyxDQUNILDhCQUFDLGlDQUFlLElBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQzlCLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsOEJBQUMsa0JBQVEsSUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsU0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzVELENBQ3JCLENBQUM7S0FDTDtJQUVELElBQU0sU0FBUyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0lBRWxILElBQUksU0FBUyxFQUFFO1FBQ1gsT0FBTyw4QkFBQyxpQ0FBZSxJQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFHLEtBQUssQ0FBbUIsQ0FBQztLQUN6RTtJQUVELE9BQU8sOEJBQUMsaUNBQWUsSUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksZ0NBQW1DLENBQUM7QUFDbEYsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsWUFBWSxnQkFtQnZCIn0=
|
|
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BodyCellWrapper = void 0;
|
|
7
|
+
var Box_1 = __importDefault(require("@mui/material/Box"));
|
|
7
8
|
var react_1 = __importDefault(require("react"));
|
|
8
9
|
var BodyCellWrapper = function (props) {
|
|
9
|
-
return react_1.default.createElement("
|
|
10
|
+
return (react_1.default.createElement(Box_1.default, { display: "flex", alignItems: "center", height: "100%", lineHeight: 1.5, sx: { userSelect: "text" } },
|
|
11
|
+
react_1.default.createElement(Box_1.default, { width: "100%" }, props.children)));
|
|
10
12
|
};
|
|
11
13
|
exports.BodyCellWrapper = BodyCellWrapper;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keUNlbGxXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvQm9keUNlbGxXcmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBb0M7QUFDcEMsZ0RBQXlDO0FBTWxDLElBQU0sZUFBZSxHQUFvQixVQUFBLEtBQUs7SUFDakQsT0FBTyxDQUNILDhCQUFDLGFBQUcsSUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7UUFDN0YsOEJBQUMsYUFBRyxJQUFDLEtBQUssRUFBQyxNQUFNLElBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBTyxDQUN0QyxDQUNULENBQUM7QUFDTixDQUFDLENBQUM7QUFOVyxRQUFBLGVBQWUsbUJBTTFCIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { FilterInputComponent } from "../types";
|
|
2
|
-
export declare const FilterInputBase: FilterInputComponent
|
|
2
|
+
export declare const FilterInputBase: FilterInputComponent<any>;
|
|
@@ -27,7 +27,7 @@ var FilterInputBase = function (props) {
|
|
|
27
27
|
switch (filter.type) {
|
|
28
28
|
case "select":
|
|
29
29
|
return (react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
|
|
30
|
-
react_1.default.createElement(Autocomplete_1.default, { options: (_a = filter.options) !== null && _a !== void 0 ? _a : [], renderInput: function (params) { return react_1.default.createElement(TextField_1.default, __assign({}, params, { label: filter.label, size: "small", fullWidth: true })); }, getOptionLabel: function (o) { return o.label; }, onChange: function (_,
|
|
30
|
+
react_1.default.createElement(Autocomplete_1.default, { options: (_a = filter.options) !== null && _a !== void 0 ? _a : [], renderInput: function (params) { return react_1.default.createElement(TextField_1.default, __assign({}, params, { label: filter.label, size: "small", fullWidth: true })); }, getOptionLabel: function (o) { return o.label; }, onChange: function (_, v) { var _a; return onFilter({ name: filter.name, value: (_a = v === null || v === void 0 ? void 0 : v.value) !== null && _a !== void 0 ? _a : null }); }, value: (_c = (_b = filter.options) === null || _b === void 0 ? void 0 : _b.find(function (o) { return o.value === (value === null || value === void 0 ? void 0 : value.value); })) !== null && _c !== void 0 ? _c : null })));
|
|
31
31
|
case "boolean":
|
|
32
32
|
return (react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
|
|
33
33
|
react_1.default.createElement(FormControlLabel_1.default, { control: react_1.default.createElement(Checkbox_1.default, { value: !!(value === null || value === void 0 ? void 0 : value.value), onChange: function (e) { return onFilter({ name: filter.name, value: e.target.checked }); } }), label: filter.label })));
|
|
@@ -35,9 +35,10 @@ var FilterInputBase = function (props) {
|
|
|
35
35
|
return (react_1.default.createElement(Grid_1.default, { item: true, xs: 12 },
|
|
36
36
|
react_1.default.createElement(TextField_1.default, { value: (_d = value === null || value === void 0 ? void 0 : value.value) !== null && _d !== void 0 ? _d : "", onChange: function (e) { var _a; return onFilter({ name: filter.name, value: (_a = e.target.value) !== null && _a !== void 0 ? _a : "" }); }, label: filter.label, size: "small", fullWidth: true })));
|
|
37
37
|
default:
|
|
38
|
+
// eslint-disable-next-line no-console
|
|
38
39
|
console.warn("Unknown filter type '" + filter.type + "'.");
|
|
39
40
|
return null;
|
|
40
41
|
}
|
|
41
42
|
};
|
|
42
43
|
exports.FilterInputBase = FilterInputBase;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVySW5wdXRCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvRmlsdGVySW5wdXRCYXNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRFQUFzRDtBQUN0RCxvRUFBOEM7QUFDOUMsb0ZBQThEO0FBQzlELHNFQUFnRDtBQUNoRCxnREFBMEI7QUFDMUIsNERBQXNDO0FBRy9CLElBQU0sZUFBZSxHQUE4QixVQUFBLEtBQUs7O0lBQ25ELElBQUEsTUFBTSxHQUFzQixLQUFLLE9BQTNCLEVBQUUsUUFBUSxHQUFZLEtBQUssU0FBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVc7SUFFMUMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssUUFBUTtZQUNULE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQUMsSUFBSSxRQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNiLDhCQUFDLHNCQUFZLElBQ1QsT0FBTyxFQUFFLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksRUFBRSxFQUM3QixXQUFXLEVBQUUsVUFBQSxNQUFNLElBQUksT0FBQSw4QkFBQyxtQkFBUyxlQUFLLE1BQU0sSUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsT0FBTyxFQUFDLFNBQVMsVUFBRyxFQUFyRSxDQUFxRSxFQUM1RixjQUFjLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFQLENBQU8sRUFDNUIsUUFBUSxFQUFFLFVBQUMsQ0FBQyxFQUFFLENBQUMsWUFBSyxPQUFBLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFBLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRSxLQUFLLG1DQUFJLElBQUksRUFBRSxDQUFDLENBQUEsRUFBQSxFQUM1RSxLQUFLLEVBQUUsTUFBQSxNQUFBLE1BQU0sQ0FBQyxPQUFPLDBDQUFFLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLE1BQUssS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssQ0FBQSxFQUF4QixDQUF3QixDQUFDLG1DQUFJLElBQUksR0FDcEUsQ0FDQyxDQUNWLENBQUM7UUFDTixLQUFLLFNBQVM7WUFDVixPQUFPLENBQ0gsOEJBQUMsY0FBSSxJQUFDLElBQUksUUFBQyxFQUFFLEVBQUUsRUFBRTtnQkFDYiw4QkFBQywwQkFBZ0IsSUFDYixPQUFPLEVBQ0gsOEJBQUMsa0JBQVEsSUFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssQ0FBQSxFQUNyQixRQUFRLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUF4RCxDQUF3RCxHQUN6RSxFQUVOLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUNyQixDQUNDLENBQ1YsQ0FBQztRQUNOLEtBQUssTUFBTTtZQUNQLE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQUMsSUFBSSxRQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNiLDhCQUFDLG1CQUFTLElBQ04sS0FBSyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssbUNBQUksRUFBRSxFQUN6QixRQUFRLEVBQUUsVUFBQSxDQUFDLFlBQUksT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssbUNBQUksRUFBRSxFQUFFLENBQUMsQ0FBQSxFQUFBLEVBQzNFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNuQixJQUFJLEVBQUMsT0FBTyxFQUNaLFNBQVMsU0FDWCxDQUNDLENBQ1YsQ0FBQztRQUNOO1lBQ0ksc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQXdCLE1BQU0sQ0FBQyxJQUFJLE9BQUksQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxDQUFDO0tBQ25CO0FBQ0wsQ0FBQyxDQUFDO0FBL0NXLFFBQUEsZUFBZSxtQkErQzFCIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { FilterListItemComponent } from "../types";
|
|
2
|
-
export declare const FilterListItemBase: FilterListItemComponent
|
|
2
|
+
export declare const FilterListItemBase: FilterListItemComponent<any>;
|
|
@@ -17,4 +17,4 @@ var FilterListItemBase = function (props) {
|
|
|
17
17
|
return (react_1.default.createElement(Chip_1.default, { label: filter.label + ": " + value.value, variant: "outlined", onDelete: function () { return onFilter({ name: filter.name, value: null }); } }));
|
|
18
18
|
};
|
|
19
19
|
exports.FilterListItemBase = FilterListItemBase;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyTGlzdEl0ZW1CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvRmlsdGVyTGlzdEl0ZW1CYXNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBMEI7QUFFMUIsNERBQXNDO0FBRS9CLElBQU0sa0JBQWtCLEdBQWlDLFVBQUEsS0FBSztJQUN6RCxJQUFBLE1BQU0sR0FBc0IsS0FBSyxPQUEzQixFQUFFLEtBQUssR0FBZSxLQUFLLE1BQXBCLEVBQUUsUUFBUSxHQUFLLEtBQUssU0FBVixDQUFXO0lBRTFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ2QsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDM0IsT0FBTyxDQUNILDhCQUFDLGNBQUksSUFDRCxLQUFLLEVBQUUsS0FBRyxNQUFNLENBQUMsS0FBTyxFQUN4QixPQUFPLEVBQUMsVUFBVSxFQUNsQixRQUFRLEVBQUUsY0FBTSxPQUFBLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUE1QyxDQUE0QyxHQUM5RCxDQUNMLENBQUM7S0FDTDtJQUVELE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQ0QsS0FBSyxFQUFLLE1BQU0sQ0FBQyxLQUFLLFVBQUssS0FBSyxDQUFDLEtBQU8sRUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFDbEIsUUFBUSxFQUFFLGNBQU0sT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBNUMsQ0FBNEMsR0FDOUQsQ0FDTCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBeEJXLFFBQUEsa0JBQWtCLHNCQXdCN0IifQ==
|
package/components/Filters.d.ts
CHANGED
|
@@ -2,10 +2,10 @@ import React from "react";
|
|
|
2
2
|
import { Filter, FilterInputComponent, RequestFilter } from "../types";
|
|
3
3
|
interface FiltersProps {
|
|
4
4
|
dispatch: (action: any) => void;
|
|
5
|
-
filters: Filter<any>[];
|
|
5
|
+
filters: Filter<any, any>[];
|
|
6
6
|
filtersData: RequestFilter[];
|
|
7
7
|
gridName: string | null;
|
|
8
|
-
FilterInput: FilterInputComponent
|
|
8
|
+
FilterInput: FilterInputComponent<any>;
|
|
9
9
|
}
|
|
10
10
|
export declare const Filters: React.FC<FiltersProps>;
|
|
11
11
|
export {};
|
package/components/Filters.js
CHANGED
|
@@ -39,13 +39,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
};
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
exports.Filters = void 0;
|
|
42
|
+
var FilterList_1 = __importDefault(require("@mui/icons-material/FilterList"));
|
|
42
43
|
var Grid_1 = __importDefault(require("@mui/material/Grid"));
|
|
43
|
-
var Tooltip_1 = __importDefault(require("@mui/material/Tooltip"));
|
|
44
44
|
var IconButton_1 = __importDefault(require("@mui/material/IconButton"));
|
|
45
|
-
var
|
|
45
|
+
var Tooltip_1 = __importDefault(require("@mui/material/Tooltip"));
|
|
46
46
|
var react_1 = __importStar(require("react"));
|
|
47
|
-
var Drawer_1 = require("./Drawer");
|
|
48
47
|
var actions_1 = require("../store/actions");
|
|
48
|
+
var Drawer_1 = require("./Drawer");
|
|
49
49
|
var Filters = function (props) {
|
|
50
50
|
var filters = props.filters, dispatch = props.dispatch, filtersData = props.filtersData, gridName = props.gridName, FilterInput = props.FilterInput;
|
|
51
51
|
var _a = __read((0, react_1.useState)(false), 2), isOpen = _a[0], setIsOpen = _a[1];
|
|
@@ -63,4 +63,4 @@ var Filters = function (props) {
|
|
|
63
63
|
})))));
|
|
64
64
|
};
|
|
65
65
|
exports.Filters = Filters;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0ZpbHRlcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOEVBQTREO0FBQzVELDREQUFzQztBQUN0Qyx3RUFBa0Q7QUFDbEQsa0VBQTRDO0FBQzVDLDZDQUF3QztBQUN4Qyw0Q0FBMEQ7QUFFMUQsbUNBQWtDO0FBVTNCLElBQU0sT0FBTyxHQUEyQixVQUFBLEtBQUs7SUFDeEMsSUFBQSxPQUFPLEdBQW1ELEtBQUssUUFBeEQsRUFBRSxRQUFRLEdBQXlDLEtBQUssU0FBOUMsRUFBRSxXQUFXLEdBQTRCLEtBQUssWUFBakMsRUFBRSxRQUFRLEdBQWtCLEtBQUssU0FBdkIsRUFBRSxXQUFXLEdBQUssS0FBSyxZQUFWLENBQVc7SUFDbEUsSUFBQSxLQUFBLE9BQXNCLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsSUFBQSxFQUFwQyxNQUFNLFFBQUEsRUFBRSxTQUFTLFFBQW1CLENBQUM7SUFFNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN0QixPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsT0FBTyxDQUNIO1FBQ0ksOEJBQUMsaUJBQU8sSUFBQyxLQUFLLEVBQUMsV0FBVztZQUN0Qiw4QkFBQyxvQkFBVSxJQUFDLE9BQU8sRUFBRSxjQUFNLE9BQUEsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFmLENBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNyRCw4QkFBQyxvQkFBYyxPQUFHLENBQ1QsQ0FDUDtRQUNWLDhCQUFDLGVBQU0sSUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFNLE9BQUEsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFoQixDQUFnQixFQUFFLEtBQUssRUFBQyxRQUFRO1lBQ2pFLDhCQUFDLGNBQUksSUFBQyxTQUFTLFFBQUMsT0FBTyxFQUFFLENBQUMsSUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFBLE1BQU07O2dCQUFJLE9BQUEsQ0FDbkIsOEJBQUMsV0FBVyxJQUNSLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUNoQixNQUFNLEVBQUUsTUFBTSxFQUNkLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxNQUFBLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQXRCLENBQXNCLENBQUMsbUNBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQzFGLFFBQVEsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLFFBQVEsQ0FBQyxJQUFBLGdCQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBekIsQ0FBeUIsR0FDMUMsQ0FDTCxDQUFBO2FBQUEsQ0FBQyxDQUNDLENBQ0YsQ0FDVixDQUNOLENBQUM7QUFDTixDQUFDLENBQUM7QUE5QlcsUUFBQSxPQUFPLFdBOEJsQiJ9
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { Filter, RequestFilter } from "../types";
|
|
2
|
+
import { Filter, FilterListItemComponent, RequestFilter } from "../types";
|
|
3
3
|
interface FiltersListProps {
|
|
4
4
|
dispatch: (action: any) => void;
|
|
5
|
-
filters: Filter<any>[];
|
|
5
|
+
filters: Filter<any, any>[];
|
|
6
6
|
filtersData: RequestFilter[];
|
|
7
|
+
FilterListItem: FilterListItemComponent<any>;
|
|
7
8
|
}
|
|
8
9
|
export declare const FiltersList: React.FC<FiltersListProps>;
|
|
9
10
|
export {};
|
|
@@ -27,22 +27,21 @@ var Box_1 = __importDefault(require("@mui/material/Box"));
|
|
|
27
27
|
var Grid_1 = __importDefault(require("@mui/material/Grid"));
|
|
28
28
|
var react_1 = __importStar(require("react"));
|
|
29
29
|
var actions_1 = require("../store/actions");
|
|
30
|
-
var FilterListItemBase_1 = require("./FilterListItemBase");
|
|
31
30
|
var FiltersList = function (props) {
|
|
32
|
-
var filters = props.filters, filtersData = props.filtersData, dispatch = props.dispatch;
|
|
31
|
+
var filters = props.filters, filtersData = props.filtersData, dispatch = props.dispatch, FilterListItem = props.FilterListItem;
|
|
33
32
|
var onFilter = (0, react_1.useCallback)(function (v) {
|
|
34
33
|
dispatch((0, actions_1.filter)(v));
|
|
35
34
|
}, [dispatch]);
|
|
36
35
|
return (react_1.default.createElement(Box_1.default, { sx: { p: 2, pt: 0 } },
|
|
37
|
-
react_1.default.createElement(Grid_1.default, { container: true, spacing: 1 }, filters.map(function (
|
|
36
|
+
react_1.default.createElement(Grid_1.default, { container: true, spacing: 1 }, filters.map(function (f1) {
|
|
38
37
|
var _a;
|
|
39
|
-
var value = (_a = filtersData.find(function (
|
|
38
|
+
var value = (_a = filtersData.find(function (f2) { return f2.name === f1.name; })) !== null && _a !== void 0 ? _a : { name: f1.name, value: null };
|
|
40
39
|
if (!value.value) {
|
|
41
40
|
return null;
|
|
42
41
|
}
|
|
43
|
-
return (react_1.default.createElement(Grid_1.default, { item: true },
|
|
44
|
-
react_1.default.createElement(
|
|
42
|
+
return (react_1.default.createElement(Grid_1.default, { item: true, key: "" + f1.name },
|
|
43
|
+
react_1.default.createElement(FilterListItem, { filter: f1, value: value, onFilter: onFilter })));
|
|
45
44
|
}))));
|
|
46
45
|
};
|
|
47
46
|
exports.FiltersList = FiltersList;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyc0xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJzTGlzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUFvQztBQUNwQyw0REFBc0M7QUFDdEMsNkNBQTJDO0FBQzNDLDRDQUEwQztBQVVuQyxJQUFNLFdBQVcsR0FBK0IsVUFBQSxLQUFLO0lBQ2hELElBQUEsT0FBTyxHQUE0QyxLQUFLLFFBQWpELEVBQUUsV0FBVyxHQUErQixLQUFLLFlBQXBDLEVBQUUsUUFBUSxHQUFxQixLQUFLLFNBQTFCLEVBQUUsY0FBYyxHQUFLLEtBQUssZUFBVixDQUFXO0lBQ2pFLElBQU0sUUFBUSxHQUFHLElBQUEsbUJBQVcsRUFDeEIsVUFBQSxDQUFDO1FBQ0csUUFBUSxDQUFDLElBQUEsZ0JBQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFDRCxDQUFDLFFBQVEsQ0FBQyxDQUNiLENBQUM7SUFFRixPQUFPLENBQ0gsOEJBQUMsYUFBRyxJQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNwQiw4QkFBQyxjQUFJLElBQUMsU0FBUyxRQUFDLE9BQU8sRUFBRSxDQUFDLElBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxFQUFFOztZQUNYLElBQU0sS0FBSyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksRUFBbkIsQ0FBbUIsQ0FBQyxtQ0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUU1RixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDZCxPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsT0FBTyxDQUNILDhCQUFDLGNBQUksSUFBQyxJQUFJLFFBQUMsR0FBRyxFQUFFLEtBQUcsRUFBRSxDQUFDLElBQU07Z0JBQ3hCLDhCQUFDLGNBQWMsSUFBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsR0FBSSxDQUM3RCxDQUNWLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDQyxDQUNMLENBQ1QsQ0FBQztBQUNOLENBQUMsQ0FBQztBQTVCVyxRQUFBLFdBQVcsZUE0QnRCIn0=
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { Column } from "../types";
|
|
3
3
|
interface HiddenColumnsProps {
|
|
4
4
|
dispatch: (action: any) => void;
|
|
5
|
-
columns: Column
|
|
5
|
+
columns: Array<Column<any, any>>;
|
|
6
6
|
hiddenColumns: string[];
|
|
7
7
|
onChangeHiddenColumns: (hiddenColumns: string[]) => void;
|
|
8
8
|
}
|
|
@@ -76,4 +76,4 @@ var HiddenColumns = function (props) {
|
|
|
76
76
|
react_1.default.createElement(FormControlLabel_1.default, { key: column.name, control: react_1.default.createElement(Switch_1.default, { checked: !hiddenColumns.includes(column.name), onChange: onChange(column), name: column.name, color: "primary" }), label: column.label }))); })))));
|
|
77
77
|
};
|
|
78
78
|
exports.HiddenColumns = HiddenColumns;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlkZGVuQ29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0hpZGRlbkNvbHVtbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0VBQTRDO0FBQzVDLDREQUFzQztBQUN0QyxnRUFBMEM7QUFDMUMsb0ZBQThEO0FBQzlELHdFQUFrRDtBQUNsRCw2Q0FBd0M7QUFDeEMsOEVBQTREO0FBRTVELG1DQUFrQztBQVMzQixJQUFNLGFBQWEsR0FBaUMsVUFBQSxLQUFLO0lBQ3BELElBQUEsT0FBTyxHQUEyQyxLQUFLLFFBQWhELEVBQUUsYUFBYSxHQUE0QixLQUFLLGNBQWpDLEVBQUUscUJBQXFCLEdBQUssS0FBSyxzQkFBVixDQUFXO0lBQzFELElBQUEsS0FBQSxPQUFzQixJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLElBQUEsRUFBcEMsTUFBTSxRQUFBLEVBQUUsU0FBUyxRQUFtQixDQUFDO0lBRTVDLElBQU0sUUFBUSxHQUFHLFVBQUMsTUFBd0IsSUFBSyxPQUFBO1FBQzNDLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFsQixDQUFrQixDQUFDLENBQUMsQ0FBQztTQUN6RTthQUFNO1lBQ0gscUJBQXFCLHdDQUFLLGFBQWEsWUFBRSxNQUFNLENBQUMsSUFBSSxVQUFFLENBQUM7U0FDMUQ7SUFDTCxDQUFDLEVBTjhDLENBTTlDLENBQUM7SUFDRixPQUFPLENBQ0g7UUFDSSw4QkFBQyxpQkFBTyxJQUFDLEtBQUssRUFBQyxrQkFBa0I7WUFDN0IsOEJBQUMsb0JBQVUsSUFBQyxPQUFPLEVBQUUsY0FBTSxPQUFBLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBZixDQUFlO2dCQUN0Qyw4QkFBQyxvQkFBYyxPQUFHLENBQ1QsQ0FDUDtRQUNWLDhCQUFDLGVBQU0sSUFBQyxLQUFLLEVBQUMsa0JBQWtCLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBTSxPQUFBLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBaEIsQ0FBZ0IsRUFBRSxNQUFNLEVBQUMsT0FBTztZQUMxRiw4QkFBQyxjQUFJLElBQUMsU0FBUyxRQUFDLE9BQU8sRUFBRSxDQUFDLElBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxDQUNuQiw4QkFBQyxjQUFJLElBQUMsSUFBSSxRQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUMvQiw4QkFBQywwQkFBZ0IsSUFDYixHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFDaEIsT0FBTyxFQUNILDhCQUFDLGdCQUFNLElBQ0gsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQzdDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzFCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUNqQixLQUFLLEVBQUMsU0FBUyxHQUNqQixFQUVOLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUNyQixDQUNDLENBQ1YsRUFmc0IsQ0FldEIsQ0FBQyxDQUNDLENBQ0YsQ0FDVixDQUNOLENBQUM7QUFDTixDQUFDLENBQUM7QUF4Q1csUUFBQSxhQUFhLGlCQXdDeEIifQ==
|
package/components/Paper.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare const Paper: import("@mui/system").StyledComponent<{
|
|
|
7
7
|
sx?: import("@mui/system").SxProps<import("@mui/material/styles").Theme> | undefined;
|
|
8
8
|
variant?: "elevation" | "outlined" | undefined;
|
|
9
9
|
} & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
10
|
-
ref?: ((instance: HTMLDivElement | null) => void) |
|
|
10
|
+
ref?: import("react").RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
|
|
11
11
|
}, "children" | keyof import("@mui/material/OverridableComponent").CommonProps | "sx" | "elevation" | "square" | "variant"> & {
|
|
12
12
|
theme?: import("@mui/material/styles").Theme | undefined;
|
|
13
13
|
as?: import("react").ElementType<any> | undefined;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/data-grid",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "Redux DataGrid",
|
|
5
5
|
"homepage": "https://gitlab.com/uxf-npm/data-grid#readme",
|
|
6
|
-
"main": "
|
|
7
|
-
"typings": "
|
|
8
|
-
"module": "
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"typings": "index.d.ts",
|
|
8
|
+
"module": "index.js",
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"clean": "rm -rf ./dist",
|
|
25
25
|
"compile": "tsc -P tsconfig.build.json",
|
|
26
26
|
"dev": "parcel demo/index.html",
|
|
27
|
+
"lint": "./node_modules/.bin/eslint -c .eslintrc.js \"./**/*.ts*\"",
|
|
27
28
|
"test": "npm run-script typecheck",
|
|
28
29
|
"test:update": "npm run-script typecheck && jest --coverage -u",
|
|
29
30
|
"typecheck": "tsc --noEmit --skipLibCheck"
|
|
@@ -40,6 +41,7 @@
|
|
|
40
41
|
"react-dom": "^17.0.2"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
44
|
+
"polished": "^4.1.3",
|
|
43
45
|
"react-data-grid": "^7.0.0-beta.5"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
@@ -56,6 +58,9 @@
|
|
|
56
58
|
"@uxf/eslint-config": "^1.0.3",
|
|
57
59
|
"babel-polyfill": "^6.26.0",
|
|
58
60
|
"eslint": "^7.32.0",
|
|
61
|
+
"eslint-plugin-import": "^2.25.2",
|
|
62
|
+
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
63
|
+
"eslint-plugin-react": "^7.26.0",
|
|
59
64
|
"jest": "^26.6.3",
|
|
60
65
|
"parcel-bundler": "^1.12.5",
|
|
61
66
|
"prettier": "^1.18.2",
|
package/store/actions.d.ts
CHANGED
|
@@ -15,6 +15,9 @@ export declare const sort: (columnName: string, direction: SortDirection) => {
|
|
|
15
15
|
columnName: string;
|
|
16
16
|
direction: SortDirection;
|
|
17
17
|
};
|
|
18
|
+
export declare const sortClear: () => {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
18
21
|
export declare const changePage: (page: number) => {
|
|
19
22
|
type: string;
|
|
20
23
|
page: number;
|
|
@@ -30,3 +33,7 @@ export declare const changePerPage: (perPage: number) => {
|
|
|
30
33
|
type: string;
|
|
31
34
|
perPage: number;
|
|
32
35
|
};
|
|
36
|
+
export declare const search: (term: string) => {
|
|
37
|
+
type: string;
|
|
38
|
+
fullText: string;
|
|
39
|
+
};
|
package/store/actions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.changePerPage = exports.filterReset = exports.filter = exports.changePage = exports.sort = exports.reloadFailed = exports.reloadDone = exports.reload = void 0;
|
|
3
|
+
exports.search = exports.changePerPage = exports.filterReset = exports.filter = exports.changePage = exports.sortClear = exports.sort = exports.reloadFailed = exports.reloadDone = exports.reload = void 0;
|
|
4
4
|
var reload = function () { return ({ type: "RELOAD" }); };
|
|
5
5
|
exports.reload = reload;
|
|
6
6
|
var reloadDone = function (response) { return ({
|
|
@@ -19,6 +19,10 @@ var sort = function (columnName, direction) { return ({
|
|
|
19
19
|
direction: direction,
|
|
20
20
|
}); };
|
|
21
21
|
exports.sort = sort;
|
|
22
|
+
var sortClear = function () { return ({
|
|
23
|
+
type: "SORT_CLEAR",
|
|
24
|
+
}); };
|
|
25
|
+
exports.sortClear = sortClear;
|
|
22
26
|
var changePage = function (page) { return ({ type: "CHANGE_PAGE", page: page }); };
|
|
23
27
|
exports.changePage = changePage;
|
|
24
28
|
var filter = function (filterValue) { return ({
|
|
@@ -33,4 +37,9 @@ var changePerPage = function (perPage) { return ({
|
|
|
33
37
|
perPage: perPage,
|
|
34
38
|
}); };
|
|
35
39
|
exports.changePerPage = changePerPage;
|
|
36
|
-
|
|
40
|
+
var search = function (term) { return ({
|
|
41
|
+
type: "FULLTEXT",
|
|
42
|
+
fullText: term,
|
|
43
|
+
}); };
|
|
44
|
+
exports.search = search;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLElBQU0sTUFBTSxHQUFHLGNBQU0sT0FBQSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQXBCLENBQW9CLENBQUM7QUFBcEMsUUFBQSxNQUFNLFVBQThCO0FBRTFDLElBQU0sVUFBVSxHQUFHLFVBQUMsUUFBa0IsSUFBSyxPQUFBLENBQUM7SUFDL0MsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxVQUFBO0NBQ1gsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxVQUFVLGNBR3BCO0FBRUksSUFBTSxZQUFZLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxDQUFDO0lBQ3pDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssT0FBQTtDQUNSLENBQUMsRUFIMEMsQ0FHMUMsQ0FBQztBQUhVLFFBQUEsWUFBWSxnQkFHdEI7QUFFSSxJQUFNLElBQUksR0FBRyxVQUFDLFVBQWtCLEVBQUUsU0FBd0IsSUFBSyxPQUFBLENBQUM7SUFDbkUsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLFlBQUE7SUFDVixTQUFTLFdBQUE7Q0FDWixDQUFDLEVBSm9FLENBSXBFLENBQUM7QUFKVSxRQUFBLElBQUksUUFJZDtBQUVJLElBQU0sU0FBUyxHQUFHLGNBQU0sT0FBQSxDQUFDO0lBQzVCLElBQUksRUFBRSxZQUFZO0NBQ3JCLENBQUMsRUFGNkIsQ0FFN0IsQ0FBQztBQUZVLFFBQUEsU0FBUyxhQUVuQjtBQUVJLElBQU0sVUFBVSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxFQUEvQixDQUErQixDQUFDO0FBQS9ELFFBQUEsVUFBVSxjQUFxRDtBQUVyRSxJQUFNLE1BQU0sR0FBRyxVQUFDLFdBQTBCLElBQUssT0FBQSxDQUFDO0lBQ25ELElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxhQUFBO0NBQ2QsQ0FBQyxFQUhvRCxDQUdwRCxDQUFDO0FBSFUsUUFBQSxNQUFNLFVBR2hCO0FBRUksSUFBTSxXQUFXLEdBQUcsY0FBTSxPQUFBLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQztBQUEvQyxRQUFBLFdBQVcsZUFBb0M7QUFFckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQSxDQUFDO0lBQy9DLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxTQUFBO0NBQ1YsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxhQUFhLGlCQUd2QjtBQUVJLElBQU0sTUFBTSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQztJQUNyQyxJQUFJLEVBQUUsVUFBVTtJQUNoQixRQUFRLEVBQUUsSUFBSTtDQUNqQixDQUFDLEVBSHNDLENBR3RDLENBQUM7QUFIVSxRQUFBLE1BQU0sVUFHaEIifQ==
|
package/store/reducer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Reducer } from "react";
|
|
2
2
|
import { Schema, Request, DataGridState } from "../types";
|
|
3
|
-
export declare const getInitialState: (schema: Schema
|
|
3
|
+
export declare const getInitialState: (schema: Schema<any>, init?: string | Request | undefined) => DataGridState;
|
|
4
4
|
export declare const reducer: Reducer<DataGridState, any>;
|
package/store/reducer.js
CHANGED
|
@@ -63,6 +63,7 @@ var reducer = function (state, action) {
|
|
|
63
63
|
case "CHANGE_PER_PAGE":
|
|
64
64
|
return __assign(__assign({}, state), { perPage: action.perPage });
|
|
65
65
|
case "FILTER":
|
|
66
|
+
// eslint-disable-next-line no-case-declarations
|
|
66
67
|
var filterValue_1 = action.filterValue;
|
|
67
68
|
return __assign(__assign({}, state), { page: 0, f: state.f.find(function (f) { return f.name === filterValue_1.name; })
|
|
68
69
|
? state.f.map(function (f) { return (f.name === filterValue_1.name ? filterValue_1 : f); })
|
|
@@ -71,10 +72,15 @@ var reducer = function (state, action) {
|
|
|
71
72
|
return __assign(__assign({}, state), { page: 0, f: [] });
|
|
72
73
|
case "SORT":
|
|
73
74
|
return __assign(__assign({}, state), { sort: action.columnName, dir: action.direction });
|
|
75
|
+
case "SORT_CLEAR":
|
|
76
|
+
return __assign(__assign({}, state), { sort: null, dir: null });
|
|
77
|
+
case "FULLTEXT":
|
|
78
|
+
return __assign(__assign({}, state), { fullText: action.fullText, page: 0 });
|
|
74
79
|
default:
|
|
80
|
+
// eslint-disable-next-line no-console
|
|
75
81
|
console.warn("Unknown datagrid action.", action);
|
|
76
82
|
return state;
|
|
77
83
|
}
|
|
78
84
|
};
|
|
79
85
|
exports.reducer = reducer;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHdDQUE4QztBQUV2QyxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQW1CLEVBQUUsSUFBdUI7O0lBQ3hFLElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUEsb0JBQVksRUFBQyxJQUFJLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUcsT0FBTztRQUNILENBQUMsRUFBRSxNQUFBLFlBQVksQ0FBQyxDQUFDLG1DQUFJLEVBQUU7UUFDdkIsSUFBSSxFQUFFLE1BQUEsWUFBWSxDQUFDLElBQUksbUNBQUksQ0FBQztRQUM1QixHQUFHLEVBQUUsTUFBQSxZQUFZLENBQUMsR0FBRyxtQ0FBSSxNQUFNLENBQUMsR0FBRztRQUNuQyxJQUFJLEVBQUUsTUFBQSxZQUFZLENBQUMsSUFBSSxtQ0FBSSxNQUFNLENBQUMsSUFBSTtRQUN0QyxPQUFPLEVBQUUsTUFBQSxZQUFZLENBQUMsT0FBTyxtQ0FBSSxNQUFNLENBQUMsT0FBTztLQUNsRCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBVFcsUUFBQSxlQUFlLG1CQVMxQjtBQUVLLElBQU0sT0FBTyxHQUFnQyxVQUFDLEtBQUssRUFBRSxNQUFNO0lBQzlELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNqQixLQUFLLFFBQVE7WUFDVCw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLElBQUksSUFDZjtRQUNOLEtBQUssYUFBYTtZQUNkLDZCQUNPLEtBQUssS0FDUixPQUFPLEVBQUUsS0FBSyxFQUNkLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUMzQjtRQUNOLEtBQUssZUFBZTtZQUNoQiw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLEtBQUssRUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFDckI7UUFDTixLQUFLLGFBQWE7WUFDZCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQ25CO1FBQ04sS0FBSyxpQkFBaUI7WUFDbEIsNkJBQ08sS0FBSyxLQUNSLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUN6QjtRQUNOLEtBQUssUUFBUTtZQUNULGdEQUFnRDtZQUNoRCxJQUFNLGFBQVcsR0FBa0IsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN0RCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLENBQUMsRUFDUCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQVcsQ0FBQyxJQUFJLEVBQTNCLENBQTJCLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUEvQyxDQUErQyxDQUFDO29CQUNuRSxDQUFDLHdDQUFLLEtBQUssQ0FBQyxDQUFDLFlBQUUsYUFBVyxTQUFDLElBQ2pDO1FBQ04sS0FBSyxjQUFjO1lBQ2YsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxDQUFDLEVBQ1AsQ0FBQyxFQUFFLEVBQUUsSUFDUDtRQUNOLEtBQUssTUFBTTtZQUNQLDZCQUNPLEtBQUssS0FDUixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFDdkIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQ3ZCO1FBQ04sS0FBSyxZQUFZO1lBQ2IsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxJQUFJLEVBQ1YsR0FBRyxFQUFFLElBQUksSUFDWDtRQUNOLEtBQUssVUFBVTtZQUNYLDZCQUNPLEtBQUssS0FDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFDekIsSUFBSSxFQUFFLENBQUMsSUFDVDtRQUNOO1lBQ0ksc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7S0FDcEI7QUFDTCxDQUFDLENBQUM7QUFwRVcsUUFBQSxPQUFPLFdBb0VsQiJ9
|
package/types.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { TextFieldProps } from "@mui/material";
|
|
1
2
|
import { ComponentType, ReactElement, ReactNode } from "react";
|
|
2
3
|
import { DataGridProps as RDGProps } from "react-data-grid";
|
|
4
|
+
export declare type BaseGridType = {
|
|
5
|
+
columns: any;
|
|
6
|
+
filters: any;
|
|
7
|
+
};
|
|
3
8
|
export declare type SortDirection = "asc" | "desc";
|
|
4
9
|
export declare type SelectableRows = "none" | "single" | "multiple";
|
|
5
10
|
export declare type ResultItem = any;
|
|
@@ -7,17 +12,25 @@ export declare type KeyExtractor = (row: ResultItem) => string;
|
|
|
7
12
|
export declare type CsvDownloadHandler = (request: Request) => void;
|
|
8
13
|
export declare type ChangeHiddenColumnsHandler = (hiddenColumns: string[]) => void;
|
|
9
14
|
export declare type Loader = (gridName: string | undefined, request: Request, encodedRequest: string) => Promise<Response>;
|
|
10
|
-
declare type
|
|
15
|
+
export declare type Config<C extends BaseGridType["columns"]> = {
|
|
16
|
+
columns: Partial<{
|
|
17
|
+
[columnName in keyof C]: {
|
|
18
|
+
width?: number;
|
|
19
|
+
hidden?: boolean;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
22
|
+
};
|
|
23
|
+
export declare type ActionCellWithRequiredWidth<R extends any> = {
|
|
11
24
|
ActionCell?: ActionCellComponent<R>;
|
|
12
25
|
actionCellWidth: number;
|
|
13
26
|
} | {
|
|
14
27
|
ActionCell?: never;
|
|
15
28
|
actionCellWidth?: never;
|
|
16
29
|
};
|
|
17
|
-
export declare type DataGridProps<R extends any> = {
|
|
30
|
+
export declare type DataGridProps<GridType extends BaseGridType, R extends any> = {
|
|
18
31
|
gridName?: string;
|
|
19
32
|
title?: ReactNode;
|
|
20
|
-
schema: Schema
|
|
33
|
+
schema: Schema<GridType>;
|
|
21
34
|
keyExtractor?: KeyExtractor;
|
|
22
35
|
loader: Loader;
|
|
23
36
|
initialState?: Request | string;
|
|
@@ -27,28 +40,38 @@ export declare type DataGridProps<R extends any> = {
|
|
|
27
40
|
search?: boolean;
|
|
28
41
|
print?: boolean;
|
|
29
42
|
onCsvDownload?: CsvDownloadHandler;
|
|
30
|
-
BodyCell?: BodyCellComponent<R>;
|
|
31
|
-
HeadCell?: HeadCellComponent<R>;
|
|
32
|
-
FilterInput?: FilterInputComponent
|
|
33
|
-
FilterListItem?: FilterListItemComponent
|
|
43
|
+
BodyCell?: BodyCellComponent<GridType["columns"], R>;
|
|
44
|
+
HeadCell?: HeadCellComponent<GridType["columns"], R>;
|
|
45
|
+
FilterInput?: FilterInputComponent<GridType["filters"]>;
|
|
46
|
+
FilterListItem?: FilterListItemComponent<GridType["filters"]>;
|
|
47
|
+
ToolbarContent?: ToolbarContentComponent;
|
|
34
48
|
Footer?: import("react").ReactNode;
|
|
35
49
|
locale?: "cs" | "en";
|
|
36
50
|
onChangeSelectedRows?: (selectedRows: R[]) => void;
|
|
37
51
|
selectedRows?: R[];
|
|
38
52
|
onOpen?: (row: R) => void;
|
|
53
|
+
getOpenUrl?: (row: R) => string | null | undefined;
|
|
39
54
|
onEdit?: (row: R) => void;
|
|
55
|
+
getEditUrl?: (row: R) => string | null | undefined;
|
|
40
56
|
onRemove?: (row: R) => void;
|
|
41
57
|
noBorder?: boolean;
|
|
42
58
|
rowHeight?: RDGProps<any>["rowHeight"];
|
|
59
|
+
headerRowHeight?: RDGProps<any>["headerRowHeight"];
|
|
43
60
|
ml?: number;
|
|
44
61
|
mt?: number;
|
|
45
62
|
mr?: number;
|
|
46
63
|
mb?: number;
|
|
64
|
+
defaultConfig?: Config<GridType["columns"]>;
|
|
65
|
+
FullTextInputProps?: Partial<TextFieldProps>;
|
|
66
|
+
rowClass?: (row: R) => "success" | "warning" | "error" | "primary" | "secondary" | string | null | undefined;
|
|
47
67
|
} & ActionCellWithRequiredWidth<R>;
|
|
48
|
-
export
|
|
49
|
-
|
|
68
|
+
export declare type Columns<C extends BaseGridType["columns"]> = {
|
|
69
|
+
[K in keyof C]: Column<K, C[K]>;
|
|
70
|
+
}[keyof C];
|
|
71
|
+
export declare type Column<Name, Type> = {
|
|
72
|
+
name: Name;
|
|
50
73
|
label: string | ReactElement;
|
|
51
|
-
type
|
|
74
|
+
type: Type;
|
|
52
75
|
sort?: boolean;
|
|
53
76
|
hint?: string;
|
|
54
77
|
print?: boolean;
|
|
@@ -56,24 +79,27 @@ export interface Column<T = string> {
|
|
|
56
79
|
minWidth?: number;
|
|
57
80
|
maxWidth?: number;
|
|
58
81
|
frozen?: boolean;
|
|
59
|
-
}
|
|
82
|
+
};
|
|
60
83
|
export interface FilterOption {
|
|
61
84
|
value: string | number;
|
|
62
85
|
label: string;
|
|
63
86
|
}
|
|
64
|
-
export declare type
|
|
65
|
-
|
|
66
|
-
|
|
87
|
+
export declare type Filters<F extends BaseGridType["filters"]> = {
|
|
88
|
+
[K in keyof F]: Filter<K, F[K]>;
|
|
89
|
+
}[keyof F];
|
|
90
|
+
export interface Filter<N, T> {
|
|
91
|
+
name: N;
|
|
67
92
|
label: string;
|
|
68
93
|
type?: T;
|
|
69
94
|
options?: FilterOption[];
|
|
70
95
|
}
|
|
71
|
-
export interface Schema {
|
|
72
|
-
columns:
|
|
73
|
-
filters:
|
|
96
|
+
export interface Schema<GritType extends BaseGridType> {
|
|
97
|
+
columns: Columns<GritType["columns"]>[];
|
|
98
|
+
filters: Filters<GritType["filters"]>[];
|
|
74
99
|
sort: string;
|
|
75
100
|
dir: SortDirection;
|
|
76
101
|
perPage: number;
|
|
102
|
+
fullText?: boolean;
|
|
77
103
|
}
|
|
78
104
|
export interface RequestFilter<T = any> {
|
|
79
105
|
name: string;
|
|
@@ -87,53 +113,61 @@ export interface Request {
|
|
|
87
113
|
dir?: SortDirection;
|
|
88
114
|
page?: number;
|
|
89
115
|
perPage?: number;
|
|
116
|
+
search?: string;
|
|
90
117
|
}
|
|
91
118
|
export interface Response {
|
|
92
119
|
totalCount: number;
|
|
93
120
|
count: number;
|
|
94
121
|
result: ResultItem[];
|
|
95
122
|
}
|
|
96
|
-
export interface
|
|
97
|
-
|
|
123
|
+
export interface ToolbarContentProps {
|
|
124
|
+
filtersData: RequestFilter[];
|
|
125
|
+
onFilter: (value: RequestFilter) => void;
|
|
126
|
+
}
|
|
127
|
+
export declare type ToolbarContentComponent = ComponentType<ToolbarContentProps>;
|
|
128
|
+
export interface BodyCellProps<C, R> {
|
|
129
|
+
column: C;
|
|
98
130
|
row: R;
|
|
99
131
|
reload: () => Promise<void>;
|
|
100
132
|
}
|
|
101
|
-
export declare type BodyCellComponent<
|
|
102
|
-
export interface ActionCellProps<R
|
|
133
|
+
export declare type BodyCellComponent<C extends BaseGridType["columns"], R> = ComponentType<BodyCellProps<Columns<C>, R>>;
|
|
134
|
+
export interface ActionCellProps<R> {
|
|
103
135
|
row: R;
|
|
104
136
|
onOpen?: (row: R) => void;
|
|
137
|
+
getOpenUrl?: (row: R) => string | null | undefined;
|
|
105
138
|
onEdit?: (row: R) => void;
|
|
139
|
+
getEditUrl?: (row: R) => string | null | undefined;
|
|
106
140
|
onRemove?: (row: R) => void;
|
|
107
141
|
reload: () => Promise<void>;
|
|
108
142
|
}
|
|
109
143
|
export declare type ActionCellComponent<R extends any> = ComponentType<ActionCellProps<R>>;
|
|
110
|
-
export interface HeadCellProps<R extends any> extends BodyCellProps<R> {
|
|
144
|
+
export interface HeadCellProps<C extends Column<any, any>, R extends any> extends BodyCellProps<C, R> {
|
|
111
145
|
sort: boolean;
|
|
112
146
|
sortDirection: SortDirection;
|
|
113
147
|
onSort: (sortDirection: SortDirection) => void;
|
|
114
148
|
}
|
|
115
|
-
export declare type HeadCellComponent<R extends any> = ComponentType<HeadCellProps<R>>;
|
|
116
|
-
export interface FilterListItemProps<T extends any> {
|
|
117
|
-
filter:
|
|
149
|
+
export declare type HeadCellComponent<C extends BaseGridType["columns"], R extends any> = ComponentType<HeadCellProps<Columns<C>, R>>;
|
|
150
|
+
export interface FilterListItemProps<F extends Filter<any, any>, T extends any> {
|
|
151
|
+
filter: F;
|
|
118
152
|
value: RequestFilter<T>;
|
|
119
153
|
onFilter: (value: RequestFilter<T>) => void;
|
|
120
154
|
}
|
|
121
|
-
export declare type FilterListItemComponent<T = any> = ComponentType<FilterListItemProps<T>>;
|
|
122
|
-
export interface FilterInputProps<T extends any> {
|
|
155
|
+
export declare type FilterListItemComponent<F extends BaseGridType["filters"], T = any> = ComponentType<FilterListItemProps<Filters<F>, T>>;
|
|
156
|
+
export interface FilterInputProps<F extends Filter<any, any>, T extends any> {
|
|
123
157
|
gridName: string | null;
|
|
124
|
-
filter:
|
|
158
|
+
filter: F;
|
|
125
159
|
value?: RequestFilter<T>;
|
|
126
160
|
onFilter: (value: RequestFilter<T>) => void;
|
|
127
161
|
}
|
|
128
|
-
export declare type FilterInputComponent<T = any> = ComponentType<FilterInputProps<T>>;
|
|
162
|
+
export declare type FilterInputComponent<F extends BaseGridType["filters"], T = any> = ComponentType<FilterInputProps<Filters<F>, T>>;
|
|
129
163
|
export interface DataGridState {
|
|
130
164
|
loading?: boolean;
|
|
131
165
|
response?: Response;
|
|
132
166
|
f: RequestFilter[];
|
|
133
|
-
sort: string;
|
|
134
|
-
dir: SortDirection;
|
|
167
|
+
sort: string | null;
|
|
168
|
+
dir: SortDirection | null;
|
|
135
169
|
page: number;
|
|
136
170
|
perPage: number;
|
|
137
171
|
error?: any;
|
|
172
|
+
fullText?: string;
|
|
138
173
|
}
|
|
139
|
-
export {};
|
package/utils/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataGridState, Request } from "../types";
|
|
1
|
+
import { DataGridState, Request, SortDirection } from "../types";
|
|
2
2
|
export declare function decodeFilter(filterString: string): null | Request;
|
|
3
3
|
export declare function encodeFilter(request: Request): string;
|
|
4
|
-
export declare function createRequest(state: DataGridState): Request;
|
|
4
|
+
export declare function createRequest(state: DataGridState, defaultSort: string, defaultDir: SortDirection): Request;
|
package/utils/utils.js
CHANGED
|
@@ -21,14 +21,16 @@ function encodeFilter(request) {
|
|
|
21
21
|
return btoa(unescape(encodeURIComponent(JSON.stringify(request))));
|
|
22
22
|
}
|
|
23
23
|
exports.encodeFilter = encodeFilter;
|
|
24
|
-
function createRequest(state) {
|
|
24
|
+
function createRequest(state, defaultSort, defaultDir) {
|
|
25
|
+
var _a, _b;
|
|
25
26
|
return {
|
|
26
|
-
sort: state.sort,
|
|
27
|
-
dir: state.dir,
|
|
27
|
+
sort: (_a = state.sort) !== null && _a !== void 0 ? _a : defaultSort,
|
|
28
|
+
dir: (_b = state.dir) !== null && _b !== void 0 ? _b : defaultDir,
|
|
28
29
|
perPage: state.perPage,
|
|
29
30
|
page: state.page,
|
|
30
31
|
f: state.f.filter(function (f) { return !!f.value; }),
|
|
32
|
+
search: state.fullText,
|
|
31
33
|
};
|
|
32
34
|
}
|
|
33
35
|
exports.createRequest = createRequest;
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsWUFBWSxDQUFDLFlBQW9CO0lBQzdDLElBQUk7UUFDQSxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUUsT0FBTztZQUNILENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtZQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ3RCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUs7WUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSTtTQUM1QixDQUFDO0tBQ0w7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNSLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDO0FBZEQsb0NBY0M7QUFFRCxTQUFnQixZQUFZLENBQUMsT0FBZ0I7SUFDekMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLEtBQW9CLEVBQUUsV0FBbUIsRUFBRSxVQUF5Qjs7SUFDOUYsT0FBTztRQUNILElBQUksRUFBRSxNQUFBLEtBQUssQ0FBQyxJQUFJLG1DQUFJLFdBQVc7UUFDL0IsR0FBRyxFQUFFLE1BQUEsS0FBSyxDQUFDLEdBQUcsbUNBQUksVUFBVTtRQUM1QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFULENBQVMsQ0FBQztRQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVE7S0FDekIsQ0FBQztBQUNOLENBQUM7QUFURCxzQ0FTQyJ9
|