@uxf/data-grid 3.0.0-beta.7 → 3.1.0

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.
@@ -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 (_, value) { var _a; return onFilter({ name: filter.name, value: (_a = value === null || value === void 0 ? void 0 : value.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 })));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVySW5wdXRCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvRmlsdGVySW5wdXRCYXNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRFQUFzRDtBQUN0RCxvRUFBOEM7QUFDOUMsb0ZBQThEO0FBQzlELHNFQUFnRDtBQUNoRCxnREFBMEI7QUFDMUIsNERBQXNDO0FBRy9CLElBQU0sZUFBZSxHQUF5QixVQUFBLEtBQUs7O0lBQzlDLElBQUEsTUFBTSxHQUFzQixLQUFLLE9BQTNCLEVBQUUsUUFBUSxHQUFZLEtBQUssU0FBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVc7SUFFMUMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssUUFBUTtZQUNULE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQUMsSUFBSSxRQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNiLDhCQUFDLHNCQUFZLElBQ1QsT0FBTyxFQUFFLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksRUFBRSxFQUM3QixXQUFXLEVBQUUsVUFBQSxNQUFNLElBQUksT0FBQSw4QkFBQyxtQkFBUyxlQUFLLE1BQU0sSUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsT0FBTyxFQUFDLFNBQVMsVUFBRyxFQUFyRSxDQUFxRSxFQUM1RixjQUFjLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFQLENBQU8sRUFDNUIsUUFBUSxFQUFFLFVBQUMsQ0FBQyxFQUFFLEtBQUssWUFBSyxPQUFBLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLG1DQUFJLElBQUksRUFBRSxDQUFDLENBQUEsRUFBQSxFQUNwRixLQUFLLEVBQUUsTUFBQSxNQUFBLE1BQU0sQ0FBQyxPQUFPLDBDQUFFLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLE1BQUssS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssQ0FBQSxFQUF4QixDQUF3QixDQUFDLG1DQUFJLElBQUksR0FDcEUsQ0FDQyxDQUNWLENBQUM7UUFDTixLQUFLLFNBQVM7WUFDVixPQUFPLENBQ0gsOEJBQUMsY0FBSSxJQUFDLElBQUksUUFBQyxFQUFFLEVBQUUsRUFBRTtnQkFDYiw4QkFBQywwQkFBZ0IsSUFDYixPQUFPLEVBQ0gsOEJBQUMsa0JBQVEsSUFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssQ0FBQSxFQUNyQixRQUFRLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUF4RCxDQUF3RCxHQUN6RSxFQUVOLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUNyQixDQUNDLENBQ1YsQ0FBQztRQUNOLEtBQUssTUFBTTtZQUNQLE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQUMsSUFBSSxRQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNiLDhCQUFDLG1CQUFTLElBQ04sS0FBSyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssbUNBQUksRUFBRSxFQUN6QixRQUFRLEVBQUUsVUFBQSxDQUFDLFlBQUksT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssbUNBQUksRUFBRSxFQUFFLENBQUMsQ0FBQSxFQUFBLEVBQzNFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNuQixJQUFJLEVBQUMsT0FBTyxFQUNaLFNBQVMsU0FDWCxDQUNDLENBQ1YsQ0FBQztRQUNOO1lBQ0ksT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBd0IsTUFBTSxDQUFDLElBQUksT0FBSSxDQUFDLENBQUM7WUFDdEQsT0FBTyxJQUFJLENBQUM7S0FDbkI7QUFDTCxDQUFDLENBQUM7QUE5Q1csUUFBQSxlQUFlLG1CQThDMUIifQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyTGlzdEl0ZW1CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvRmlsdGVyTGlzdEl0ZW1CYXNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBMEI7QUFFMUIsNERBQXNDO0FBRS9CLElBQU0sa0JBQWtCLEdBQTRCLFVBQUEsS0FBSztJQUNwRCxJQUFBLE1BQU0sR0FBc0IsS0FBSyxPQUEzQixFQUFFLEtBQUssR0FBZSxLQUFLLE1BQXBCLEVBQUUsUUFBUSxHQUFLLEtBQUssU0FBVixDQUFXO0lBRTFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ2QsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDM0IsT0FBTyxDQUNILDhCQUFDLGNBQUksSUFDRCxLQUFLLEVBQUUsS0FBRyxNQUFNLENBQUMsS0FBTyxFQUN4QixPQUFPLEVBQUMsVUFBVSxFQUNsQixRQUFRLEVBQUUsY0FBTSxPQUFBLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUE1QyxDQUE0QyxHQUM5RCxDQUNMLENBQUM7S0FDTDtJQUVELE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQ0QsS0FBSyxFQUFLLE1BQU0sQ0FBQyxLQUFLLFVBQUssS0FBSyxDQUFDLEtBQU8sRUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFDbEIsUUFBUSxFQUFFLGNBQU0sT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBNUMsQ0FBNEMsR0FDOUQsQ0FDTCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBeEJXLFFBQUEsa0JBQWtCLHNCQXdCN0IifQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyTGlzdEl0ZW1CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvRmlsdGVyTGlzdEl0ZW1CYXNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBMEI7QUFFMUIsNERBQXNDO0FBRS9CLElBQU0sa0JBQWtCLEdBQWlDLFVBQUEsS0FBSztJQUN6RCxJQUFBLE1BQU0sR0FBc0IsS0FBSyxPQUEzQixFQUFFLEtBQUssR0FBZSxLQUFLLE1BQXBCLEVBQUUsUUFBUSxHQUFLLEtBQUssU0FBVixDQUFXO0lBRTFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ2QsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDM0IsT0FBTyxDQUNILDhCQUFDLGNBQUksSUFDRCxLQUFLLEVBQUUsS0FBRyxNQUFNLENBQUMsS0FBTyxFQUN4QixPQUFPLEVBQUMsVUFBVSxFQUNsQixRQUFRLEVBQUUsY0FBTSxPQUFBLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUE1QyxDQUE0QyxHQUM5RCxDQUNMLENBQUM7S0FDTDtJQUVELE9BQU8sQ0FDSCw4QkFBQyxjQUFJLElBQ0QsS0FBSyxFQUFLLE1BQU0sQ0FBQyxLQUFLLFVBQUssS0FBSyxDQUFDLEtBQU8sRUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFDbEIsUUFBUSxFQUFFLGNBQU0sT0FBQSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBNUMsQ0FBNEMsR0FDOUQsQ0FDTCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBeEJXLFFBQUEsa0JBQWtCLHNCQXdCN0IifQ==
@@ -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 {};
@@ -39,19 +39,22 @@ 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 FilterList_1 = __importDefault(require("@mui/icons-material/FilterList"));
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];
52
+ if (filters.length === 0) {
53
+ return null;
54
+ }
52
55
  return (react_1.default.createElement(react_1.default.Fragment, null,
53
56
  react_1.default.createElement(Tooltip_1.default, { title: "Filtrovat" },
54
- react_1.default.createElement(IconButton_1.default, { onClick: function () { return setIsOpen(true); } },
57
+ react_1.default.createElement(IconButton_1.default, { onClick: function () { return setIsOpen(true); }, sx: { ml: 1 } },
55
58
  react_1.default.createElement(FilterList_1.default, null))),
56
59
  react_1.default.createElement(Drawer_1.Drawer, { open: isOpen, onClose: function () { return setIsOpen(false); }, title: "Filtry" },
57
60
  react_1.default.createElement(Grid_1.default, { container: true, spacing: 2 }, filters.map(function (filter) {
@@ -60,4 +63,4 @@ var Filters = function (props) {
60
63
  })))));
61
64
  };
62
65
  exports.Filters = Filters;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0ZpbHRlcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQXNDO0FBQ3RDLGtFQUE0QztBQUM1Qyx3RUFBa0Q7QUFDbEQsOEVBQTREO0FBQzVELDZDQUF3QztBQUV4QyxtQ0FBa0M7QUFDbEMsNENBQTBEO0FBVW5ELElBQU0sT0FBTyxHQUEyQixVQUFBLEtBQUs7SUFDeEMsSUFBQSxPQUFPLEdBQW1ELEtBQUssUUFBeEQsRUFBRSxRQUFRLEdBQXlDLEtBQUssU0FBOUMsRUFBRSxXQUFXLEdBQTRCLEtBQUssWUFBakMsRUFBRSxRQUFRLEdBQWtCLEtBQUssU0FBdkIsRUFBRSxXQUFXLEdBQUssS0FBSyxZQUFWLENBQVc7SUFDbEUsSUFBQSxLQUFBLE9BQXNCLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsSUFBQSxFQUFwQyxNQUFNLFFBQUEsRUFBRSxTQUFTLFFBQW1CLENBQUM7SUFDNUMsT0FBTyxDQUNIO1FBQ0ksOEJBQUMsaUJBQU8sSUFBQyxLQUFLLEVBQUMsV0FBVztZQUN0Qiw4QkFBQyxvQkFBVSxJQUFDLE9BQU8sRUFBRSxjQUFNLE9BQUEsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFmLENBQWU7Z0JBQ3RDLDhCQUFDLG9CQUFjLE9BQUcsQ0FDVCxDQUNQO1FBQ1YsOEJBQUMsZUFBTSxJQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQU0sT0FBQSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQWhCLENBQWdCLEVBQUUsS0FBSyxFQUFDLFFBQVE7WUFDakUsOEJBQUMsY0FBSSxJQUFDLFNBQVMsUUFBQyxPQUFPLEVBQUUsQ0FBQyxJQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUEsTUFBTTs7Z0JBQUksT0FBQSxDQUNuQiw4QkFBQyxXQUFXLElBQ1IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxFQUFFLFFBQVEsRUFDbEIsS0FBSyxFQUFFLE1BQUEsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksRUFBdEIsQ0FBc0IsQ0FBQyxtQ0FBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFDMUYsUUFBUSxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsUUFBUSxDQUFDLElBQUEsZ0JBQVksRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUF6QixDQUF5QixHQUMxQyxDQUNMLENBQUE7YUFBQSxDQUFDLENBQ0MsQ0FDRixDQUNWLENBQ04sQ0FBQztBQUNOLENBQUMsQ0FBQztBQXpCVyxRQUFBLE9BQU8sV0F5QmxCIn0=
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 (filter) {
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 (f) { return f.name === filter.name; })) !== null && _a !== void 0 ? _a : { name: filter.name, value: null };
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(FilterListItemBase_1.FilterListItemBase, { key: "" + filter.name, filter: filter, value: value, onFilter: onFilter })));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyc0xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJzTGlzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUFvQztBQUNwQyw0REFBc0M7QUFDdEMsNkNBQTJDO0FBQzNDLDRDQUEwQztBQUUxQywyREFBMEQ7QUFRbkQsSUFBTSxXQUFXLEdBQStCLFVBQUEsS0FBSztJQUNoRCxJQUFBLE9BQU8sR0FBNEIsS0FBSyxRQUFqQyxFQUFFLFdBQVcsR0FBZSxLQUFLLFlBQXBCLEVBQUUsUUFBUSxHQUFLLEtBQUssU0FBVixDQUFXO0lBQ2pELElBQU0sUUFBUSxHQUFHLElBQUEsbUJBQVcsRUFDeEIsVUFBQSxDQUFDO1FBQ0csUUFBUSxDQUFDLElBQUEsZ0JBQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFDRCxDQUFDLFFBQVEsQ0FBQyxDQUNiLENBQUM7SUFFRixPQUFPLENBQ0gsOEJBQUMsYUFBRyxJQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNwQiw4QkFBQyxjQUFJLElBQUMsU0FBUyxRQUFDLE9BQU8sRUFBRSxDQUFDLElBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxNQUFNOztZQUNmLElBQU0sS0FBSyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksRUFBdEIsQ0FBc0IsQ0FBQyxtQ0FBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUVsRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDZCxPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsT0FBTyxDQUNILDhCQUFDLGNBQUksSUFBQyxJQUFJO2dCQUNOLDhCQUFDLHVDQUFrQixJQUNmLEdBQUcsRUFBRSxLQUFHLE1BQU0sQ0FBQyxJQUFNLEVBQ3JCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsS0FBSyxFQUFFLEtBQUssRUFDWixRQUFRLEVBQUUsUUFBUSxHQUNwQixDQUNDLENBQ1YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUNDLENBQ0wsQ0FDVCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBakNXLFFBQUEsV0FBVyxlQWlDdEIifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyc0xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJzTGlzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUFvQztBQUNwQyw0REFBc0M7QUFDdEMsNkNBQTJDO0FBQzNDLDRDQUEwQztBQVVuQyxJQUFNLFdBQVcsR0FBK0IsVUFBQSxLQUFLO0lBQ2hELElBQUEsT0FBTyxHQUE0QyxLQUFLLFFBQWpELEVBQUUsV0FBVyxHQUErQixLQUFLLFlBQXBDLEVBQUUsUUFBUSxHQUFxQixLQUFLLFNBQTFCLEVBQUUsY0FBYyxHQUFLLEtBQUssZUFBVixDQUFXO0lBQ2pFLElBQU0sUUFBUSxHQUFHLElBQUEsbUJBQVcsRUFDeEIsVUFBQSxDQUFDO1FBQ0csUUFBUSxDQUFDLElBQUEsZ0JBQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFDRCxDQUFDLFFBQVEsQ0FBQyxDQUNiLENBQUM7SUFFRixPQUFPLENBQ0gsOEJBQUMsYUFBRyxJQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNwQiw4QkFBQyxjQUFJLElBQUMsU0FBUyxRQUFDLE9BQU8sRUFBRSxDQUFDLElBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxFQUFFOztZQUNYLElBQU0sS0FBSyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksRUFBbkIsQ0FBbUIsQ0FBQyxtQ0FBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUU1RixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDZCxPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsT0FBTyxDQUNILDhCQUFDLGNBQUksSUFBQyxJQUFJLFFBQUMsR0FBRyxFQUFFLEtBQUcsRUFBRSxDQUFDLElBQU07Z0JBQ3hCLDhCQUFDLGNBQWMsSUFBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsR0FBSSxDQUM3RCxDQUNWLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDQyxDQUNMLENBQ1QsQ0FBQztBQUNOLENBQUMsQ0FBQztBQTVCVyxRQUFBLFdBQVcsZUE0QnRCIn0=
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { Column } from "../types";
3
+ interface HiddenColumnsProps {
4
+ dispatch: (action: any) => void;
5
+ columns: Array<Column<any, any>>;
6
+ hiddenColumns: string[];
7
+ onChangeHiddenColumns: (hiddenColumns: string[]) => void;
8
+ }
9
+ export declare const HiddenColumns: React.FC<HiddenColumnsProps>;
10
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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;
20
+ };
21
+ var __read = (this && this.__read) || function (o, n) {
22
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
23
+ if (!m) return o;
24
+ var i = m.call(o), r, ar = [], e;
25
+ try {
26
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27
+ }
28
+ catch (error) { e = { error: error }; }
29
+ finally {
30
+ try {
31
+ if (r && !r.done && (m = i["return"])) m.call(i);
32
+ }
33
+ finally { if (e) throw e.error; }
34
+ }
35
+ return ar;
36
+ };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
46
+ var __importDefault = (this && this.__importDefault) || function (mod) {
47
+ return (mod && mod.__esModule) ? mod : { "default": mod };
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.HiddenColumns = void 0;
51
+ var Tooltip_1 = __importDefault(require("@mui/material/Tooltip"));
52
+ var Grid_1 = __importDefault(require("@mui/material/Grid"));
53
+ var Switch_1 = __importDefault(require("@mui/material/Switch"));
54
+ var FormControlLabel_1 = __importDefault(require("@mui/material/FormControlLabel"));
55
+ var IconButton_1 = __importDefault(require("@mui/material/IconButton"));
56
+ var react_1 = __importStar(require("react"));
57
+ var ViewColumn_1 = __importDefault(require("@mui/icons-material/ViewColumn"));
58
+ var Drawer_1 = require("./Drawer");
59
+ var HiddenColumns = function (props) {
60
+ var columns = props.columns, hiddenColumns = props.hiddenColumns, onChangeHiddenColumns = props.onChangeHiddenColumns;
61
+ var _a = __read((0, react_1.useState)(false), 2), isOpen = _a[0], setIsOpen = _a[1];
62
+ var onChange = function (column) { return function () {
63
+ if (hiddenColumns.includes(column.name)) {
64
+ onChangeHiddenColumns(hiddenColumns.filter(function (cn) { return cn !== column.name; }));
65
+ }
66
+ else {
67
+ onChangeHiddenColumns(__spreadArray(__spreadArray([], __read(hiddenColumns), false), [column.name], false));
68
+ }
69
+ }; };
70
+ return (react_1.default.createElement(react_1.default.Fragment, null,
71
+ react_1.default.createElement(Tooltip_1.default, { title: "Zobrazit sloupce" },
72
+ react_1.default.createElement(IconButton_1.default, { onClick: function () { return setIsOpen(true); } },
73
+ react_1.default.createElement(ViewColumn_1.default, null))),
74
+ react_1.default.createElement(Drawer_1.Drawer, { title: "Zobrazit sloupce", open: isOpen, onClose: function () { return setIsOpen(false); }, anchor: "right" },
75
+ react_1.default.createElement(Grid_1.default, { container: true, spacing: 1 }, columns.map(function (column) { return (react_1.default.createElement(Grid_1.default, { item: true, xs: 12, key: column.name },
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
+ };
78
+ exports.HiddenColumns = HiddenColumns;
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlkZGVuQ29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0hpZGRlbkNvbHVtbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0VBQTRDO0FBQzVDLDREQUFzQztBQUN0QyxnRUFBMEM7QUFDMUMsb0ZBQThEO0FBQzlELHdFQUFrRDtBQUNsRCw2Q0FBd0M7QUFDeEMsOEVBQTREO0FBRTVELG1DQUFrQztBQVMzQixJQUFNLGFBQWEsR0FBaUMsVUFBQSxLQUFLO0lBQ3BELElBQUEsT0FBTyxHQUEyQyxLQUFLLFFBQWhELEVBQUUsYUFBYSxHQUE0QixLQUFLLGNBQWpDLEVBQUUscUJBQXFCLEdBQUssS0FBSyxzQkFBVixDQUFXO0lBQzFELElBQUEsS0FBQSxPQUFzQixJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLElBQUEsRUFBcEMsTUFBTSxRQUFBLEVBQUUsU0FBUyxRQUFtQixDQUFDO0lBRTVDLElBQU0sUUFBUSxHQUFHLFVBQUMsTUFBd0IsSUFBSyxPQUFBO1FBQzNDLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFsQixDQUFrQixDQUFDLENBQUMsQ0FBQztTQUN6RTthQUFNO1lBQ0gscUJBQXFCLHdDQUFLLGFBQWEsWUFBRSxNQUFNLENBQUMsSUFBSSxVQUFFLENBQUM7U0FDMUQ7SUFDTCxDQUFDLEVBTjhDLENBTTlDLENBQUM7SUFDRixPQUFPLENBQ0g7UUFDSSw4QkFBQyxpQkFBTyxJQUFDLEtBQUssRUFBQyxrQkFBa0I7WUFDN0IsOEJBQUMsb0JBQVUsSUFBQyxPQUFPLEVBQUUsY0FBTSxPQUFBLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBZixDQUFlO2dCQUN0Qyw4QkFBQyxvQkFBYyxPQUFHLENBQ1QsQ0FDUDtRQUNWLDhCQUFDLGVBQU0sSUFBQyxLQUFLLEVBQUMsa0JBQWtCLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBTSxPQUFBLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBaEIsQ0FBZ0IsRUFBRSxNQUFNLEVBQUMsT0FBTztZQUMxRiw4QkFBQyxjQUFJLElBQUMsU0FBUyxRQUFDLE9BQU8sRUFBRSxDQUFDLElBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxDQUNuQiw4QkFBQyxjQUFJLElBQUMsSUFBSSxRQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUMvQiw4QkFBQywwQkFBZ0IsSUFDYixHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksRUFDaEIsT0FBTyxFQUNILDhCQUFDLGdCQUFNLElBQ0gsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQzdDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzFCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUNqQixLQUFLLEVBQUMsU0FBUyxHQUNqQixFQUVOLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUNyQixDQUNDLENBQ1YsRUFmc0IsQ0FldEIsQ0FBQyxDQUNDLENBQ0YsQ0FDVixDQUNOLENBQUM7QUFDTixDQUFDLENBQUM7QUF4Q1csUUFBQSxhQUFhLGlCQXdDeEIifQ==
@@ -7,8 +7,8 @@ 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) | import("react").RefObject<HTMLDivElement> | null | undefined;
11
- }, keyof import("@mui/material/OverridableComponent").CommonProps | "children" | "sx" | "elevation" | "square" | "variant"> & {
10
+ ref?: import("react").RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
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;
14
14
  sx?: import("@mui/system").SxProps<import("@mui/material/styles").Theme> | undefined;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@uxf/data-grid",
3
- "version": "3.0.0-beta.7",
3
+ "version": "3.1.0",
4
4
  "description": "Redux DataGrid",
5
5
  "homepage": "https://gitlab.com/uxf-npm/data-grid#readme",
6
- "main": "dist/index.js",
7
- "typings": "dist/index.d.ts",
8
- "module": "dist/index.js",
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,15 +41,16 @@
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": {
46
48
  "@emotion/react": "^11.4.1",
47
49
  "@emotion/styled": "^11.3.0",
48
- "@mui/icons-material": "^5.0.0-rc.1",
49
- "@mui/material": "^5.0.0-rc.1",
50
+ "@mui/icons-material": "^5.0.0",
51
+ "@mui/material": "^5.0.0",
50
52
  "@types/jest": "^26.0.19",
51
- "@types/react": "^17.0.21",
53
+ "@types/react": "^17.0.22",
52
54
  "@types/react-dom": "^17.0.0",
53
55
  "@types/react-test-renderer": "^16.9.4",
54
56
  "@typescript-eslint/eslint-plugin": "^4.11.0",
@@ -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",
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLElBQU0sTUFBTSxHQUFHLGNBQU0sT0FBQSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQXBCLENBQW9CLENBQUM7QUFBcEMsUUFBQSxNQUFNLFVBQThCO0FBRTFDLElBQU0sVUFBVSxHQUFHLFVBQUMsUUFBa0IsSUFBSyxPQUFBLENBQUM7SUFDL0MsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxVQUFBO0NBQ1gsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxVQUFVLGNBR3BCO0FBRUksSUFBTSxZQUFZLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxDQUFDO0lBQ3pDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssT0FBQTtDQUNSLENBQUMsRUFIMEMsQ0FHMUMsQ0FBQztBQUhVLFFBQUEsWUFBWSxnQkFHdEI7QUFFSSxJQUFNLElBQUksR0FBRyxVQUFDLFVBQWtCLEVBQUUsU0FBd0IsSUFBSyxPQUFBLENBQUM7SUFDbkUsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLFlBQUE7SUFDVixTQUFTLFdBQUE7Q0FDWixDQUFDLEVBSm9FLENBSXBFLENBQUM7QUFKVSxRQUFBLElBQUksUUFJZDtBQUVJLElBQU0sVUFBVSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxFQUEvQixDQUErQixDQUFDO0FBQS9ELFFBQUEsVUFBVSxjQUFxRDtBQUVyRSxJQUFNLE1BQU0sR0FBRyxVQUFDLFdBQTBCLElBQUssT0FBQSxDQUFDO0lBQ25ELElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxhQUFBO0NBQ2QsQ0FBQyxFQUhvRCxDQUdwRCxDQUFDO0FBSFUsUUFBQSxNQUFNLFVBR2hCO0FBRUksSUFBTSxXQUFXLEdBQUcsY0FBTSxPQUFBLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQztBQUEvQyxRQUFBLFdBQVcsZUFBb0M7QUFFckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQSxDQUFDO0lBQy9DLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxTQUFBO0NBQ1YsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxhQUFhLGlCQUd2QiJ9
40
+ var search = function (term) { return ({
41
+ type: "FULLTEXT",
42
+ fullText: term,
43
+ }); };
44
+ exports.search = search;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLElBQU0sTUFBTSxHQUFHLGNBQU0sT0FBQSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQXBCLENBQW9CLENBQUM7QUFBcEMsUUFBQSxNQUFNLFVBQThCO0FBRTFDLElBQU0sVUFBVSxHQUFHLFVBQUMsUUFBa0IsSUFBSyxPQUFBLENBQUM7SUFDL0MsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxVQUFBO0NBQ1gsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxVQUFVLGNBR3BCO0FBRUksSUFBTSxZQUFZLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxDQUFDO0lBQ3pDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssT0FBQTtDQUNSLENBQUMsRUFIMEMsQ0FHMUMsQ0FBQztBQUhVLFFBQUEsWUFBWSxnQkFHdEI7QUFFSSxJQUFNLElBQUksR0FBRyxVQUFDLFVBQWtCLEVBQUUsU0FBd0IsSUFBSyxPQUFBLENBQUM7SUFDbkUsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLFlBQUE7SUFDVixTQUFTLFdBQUE7Q0FDWixDQUFDLEVBSm9FLENBSXBFLENBQUM7QUFKVSxRQUFBLElBQUksUUFJZDtBQUVJLElBQU0sU0FBUyxHQUFHLGNBQU0sT0FBQSxDQUFDO0lBQzVCLElBQUksRUFBRSxZQUFZO0NBQ3JCLENBQUMsRUFGNkIsQ0FFN0IsQ0FBQztBQUZVLFFBQUEsU0FBUyxhQUVuQjtBQUVJLElBQU0sVUFBVSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxFQUEvQixDQUErQixDQUFDO0FBQS9ELFFBQUEsVUFBVSxjQUFxRDtBQUVyRSxJQUFNLE1BQU0sR0FBRyxVQUFDLFdBQTBCLElBQUssT0FBQSxDQUFDO0lBQ25ELElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxhQUFBO0NBQ2QsQ0FBQyxFQUhvRCxDQUdwRCxDQUFDO0FBSFUsUUFBQSxNQUFNLFVBR2hCO0FBRUksSUFBTSxXQUFXLEdBQUcsY0FBTSxPQUFBLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQztBQUEvQyxRQUFBLFdBQVcsZUFBb0M7QUFFckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQSxDQUFDO0lBQy9DLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxTQUFBO0NBQ1YsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxhQUFhLGlCQUd2QjtBQUVJLElBQU0sTUFBTSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQztJQUNyQyxJQUFJLEVBQUUsVUFBVTtJQUNoQixRQUFRLEVBQUUsSUFBSTtDQUNqQixDQUFDLEVBSHNDLENBR3RDLENBQUM7QUFIVSxRQUFBLE1BQU0sVUFHaEIifQ==
@@ -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, init?: string | Request | undefined) => DataGridState;
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 });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHdDQUE4QztBQUV2QyxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQWMsRUFBRSxJQUF1Qjs7SUFDbkUsSUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQUEsSUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQyxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRyxPQUFPO1FBQ0gsQ0FBQyxFQUFFLE1BQUEsWUFBWSxDQUFDLENBQUMsbUNBQUksRUFBRTtRQUN2QixJQUFJLEVBQUUsTUFBQSxZQUFZLENBQUMsSUFBSSxtQ0FBSSxDQUFDO1FBQzVCLEdBQUcsRUFBRSxNQUFBLFlBQVksQ0FBQyxHQUFHLG1DQUFJLE1BQU0sQ0FBQyxHQUFHO1FBQ25DLElBQUksRUFBRSxNQUFBLFlBQVksQ0FBQyxJQUFJLG1DQUFJLE1BQU0sQ0FBQyxJQUFJO1FBQ3RDLE9BQU8sRUFBRSxNQUFBLFlBQVksQ0FBQyxPQUFPLG1DQUFJLE1BQU0sQ0FBQyxPQUFPO0tBQ2xELENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLGVBQWUsbUJBUzFCO0FBRUssSUFBTSxPQUFPLEdBQWdDLFVBQUMsS0FBSyxFQUFFLE1BQU07SUFDOUQsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssUUFBUTtZQUNULDZCQUNPLEtBQUssS0FDUixPQUFPLEVBQUUsSUFBSSxJQUNmO1FBQ04sS0FBSyxhQUFhO1lBQ2QsNkJBQ08sS0FBSyxLQUNSLE9BQU8sRUFBRSxLQUFLLEVBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQzNCO1FBQ04sS0FBSyxlQUFlO1lBQ2hCLDZCQUNPLEtBQUssS0FDUixPQUFPLEVBQUUsS0FBSyxFQUNkLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUNyQjtRQUNOLEtBQUssYUFBYTtZQUNkLDZCQUNPLEtBQUssS0FDUixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFDbkI7UUFDTixLQUFLLGlCQUFpQjtZQUNsQiw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQ3pCO1FBQ04sS0FBSyxRQUFRO1lBQ1QsSUFBTSxhQUFXLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDdEQsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxDQUFDLEVBQ1AsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFXLENBQUMsSUFBSSxFQUEzQixDQUEyQixDQUFDO29CQUM3QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssYUFBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBL0MsQ0FBK0MsQ0FBQztvQkFDbkUsQ0FBQyx3Q0FBSyxLQUFLLENBQUMsQ0FBQyxZQUFFLGFBQVcsU0FBQyxJQUNqQztRQUNOLEtBQUssY0FBYztZQUNmLDZCQUNPLEtBQUssS0FDUixJQUFJLEVBQUUsQ0FBQyxFQUNQLENBQUMsRUFBRSxFQUFFLElBQ1A7UUFDTixLQUFLLE1BQU07WUFDUCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUN2QjtRQUNOO1lBQ0ksT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRCxPQUFPLEtBQUssQ0FBQztLQUNwQjtBQUNMLENBQUMsQ0FBQztBQXREVyxRQUFBLE9BQU8sV0FzRGxCIn0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHdDQUE4QztBQUV2QyxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQW1CLEVBQUUsSUFBdUI7O0lBQ3hFLElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUEsb0JBQVksRUFBQyxJQUFJLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUcsT0FBTztRQUNILENBQUMsRUFBRSxNQUFBLFlBQVksQ0FBQyxDQUFDLG1DQUFJLEVBQUU7UUFDdkIsSUFBSSxFQUFFLE1BQUEsWUFBWSxDQUFDLElBQUksbUNBQUksQ0FBQztRQUM1QixHQUFHLEVBQUUsTUFBQSxZQUFZLENBQUMsR0FBRyxtQ0FBSSxNQUFNLENBQUMsR0FBRztRQUNuQyxJQUFJLEVBQUUsTUFBQSxZQUFZLENBQUMsSUFBSSxtQ0FBSSxNQUFNLENBQUMsSUFBSTtRQUN0QyxPQUFPLEVBQUUsTUFBQSxZQUFZLENBQUMsT0FBTyxtQ0FBSSxNQUFNLENBQUMsT0FBTztLQUNsRCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBVFcsUUFBQSxlQUFlLG1CQVMxQjtBQUVLLElBQU0sT0FBTyxHQUFnQyxVQUFDLEtBQUssRUFBRSxNQUFNO0lBQzlELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNqQixLQUFLLFFBQVE7WUFDVCw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLElBQUksSUFDZjtRQUNOLEtBQUssYUFBYTtZQUNkLDZCQUNPLEtBQUssS0FDUixPQUFPLEVBQUUsS0FBSyxFQUNkLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUMzQjtRQUNOLEtBQUssZUFBZTtZQUNoQiw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLEtBQUssRUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFDckI7UUFDTixLQUFLLGFBQWE7WUFDZCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQ25CO1FBQ04sS0FBSyxpQkFBaUI7WUFDbEIsNkJBQ08sS0FBSyxLQUNSLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUN6QjtRQUNOLEtBQUssUUFBUTtZQUNULGdEQUFnRDtZQUNoRCxJQUFNLGFBQVcsR0FBa0IsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN0RCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLENBQUMsRUFDUCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQVcsQ0FBQyxJQUFJLEVBQTNCLENBQTJCLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUEvQyxDQUErQyxDQUFDO29CQUNuRSxDQUFDLHdDQUFLLEtBQUssQ0FBQyxDQUFDLFlBQUUsYUFBVyxTQUFDLElBQ2pDO1FBQ04sS0FBSyxjQUFjO1lBQ2YsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxDQUFDLEVBQ1AsQ0FBQyxFQUFFLEVBQUUsSUFDUDtRQUNOLEtBQUssTUFBTTtZQUNQLDZCQUNPLEtBQUssS0FDUixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFDdkIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQ3ZCO1FBQ04sS0FBSyxZQUFZO1lBQ2IsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxJQUFJLEVBQ1YsR0FBRyxFQUFFLElBQUksSUFDWDtRQUNOLEtBQUssVUFBVTtZQUNYLDZCQUNPLEtBQUssS0FDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFDM0I7UUFDTjtZQUNJLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQyxDQUFDO0FBbkVXLFFBQUEsT0FBTyxXQW1FbEIifQ==
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,10 +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
- export interface DataGridProps<R extends any> {
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> = {
24
+ ActionCell?: ActionCellComponent<R>;
25
+ actionCellWidth: number;
26
+ } | {
27
+ ActionCell?: never;
28
+ actionCellWidth?: never;
29
+ };
30
+ export declare type DataGridProps<GridType extends BaseGridType, R extends any> = {
11
31
  gridName?: string;
12
32
  title?: ReactNode;
13
- schema: Schema;
33
+ schema: Schema<GridType>;
14
34
  keyExtractor?: KeyExtractor;
15
35
  loader: Loader;
16
36
  initialState?: Request | string;
@@ -20,25 +40,38 @@ export interface DataGridProps<R extends any> {
20
40
  search?: boolean;
21
41
  print?: boolean;
22
42
  onCsvDownload?: CsvDownloadHandler;
23
- BodyCell?: BodyCellComponent<R>;
24
- HeadCell?: HeadCellComponent<R>;
25
- ActionCell?: ActionCellComponent<R>;
26
- FilterInput?: FilterInputComponent;
27
- 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;
28
48
  Footer?: import("react").ReactNode;
29
49
  locale?: "cs" | "en";
30
50
  onChangeSelectedRows?: (selectedRows: R[]) => void;
31
51
  selectedRows?: R[];
32
52
  onOpen?: (row: R) => void;
53
+ getOpenUrl?: (row: R) => string | null | undefined;
33
54
  onEdit?: (row: R) => void;
55
+ getEditUrl?: (row: R) => string | null | undefined;
34
56
  onRemove?: (row: R) => void;
35
57
  noBorder?: boolean;
36
58
  rowHeight?: RDGProps<any>["rowHeight"];
37
- }
38
- export interface Column<T = string> {
39
- name: string;
59
+ headerRowHeight?: RDGProps<any>["headerRowHeight"];
60
+ ml?: number;
61
+ mt?: number;
62
+ mr?: number;
63
+ mb?: number;
64
+ defaultConfig?: Config<GridType["columns"]>;
65
+ FullTextInputProps?: Partial<TextFieldProps>;
66
+ rowClass?: (row: R) => "success" | "warning" | "error" | "primary" | "secondary" | string | null | undefined;
67
+ } & ActionCellWithRequiredWidth<R>;
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;
40
73
  label: string | ReactElement;
41
- type?: T | null;
74
+ type: Type;
42
75
  sort?: boolean;
43
76
  hint?: string;
44
77
  print?: boolean;
@@ -46,24 +79,27 @@ export interface Column<T = string> {
46
79
  minWidth?: number;
47
80
  maxWidth?: number;
48
81
  frozen?: boolean;
49
- }
82
+ };
50
83
  export interface FilterOption {
51
84
  value: string | number;
52
85
  label: string;
53
86
  }
54
- export declare type FilterType = string;
55
- export interface Filter<T extends FilterType> {
56
- name: string;
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;
57
92
  label: string;
58
93
  type?: T;
59
94
  options?: FilterOption[];
60
95
  }
61
- export interface Schema {
62
- columns: Column[];
63
- filters: Filter<any>[];
96
+ export interface Schema<GritType extends BaseGridType> {
97
+ columns: Columns<GritType["columns"]>[];
98
+ filters: Filters<GritType["filters"]>[];
64
99
  sort: string;
65
100
  dir: SortDirection;
66
101
  perPage: number;
102
+ fullText?: boolean;
67
103
  }
68
104
  export interface RequestFilter<T = any> {
69
105
  name: string;
@@ -77,52 +113,61 @@ export interface Request {
77
113
  dir?: SortDirection;
78
114
  page?: number;
79
115
  perPage?: number;
116
+ search?: string;
80
117
  }
81
118
  export interface Response {
82
119
  totalCount: number;
83
120
  count: number;
84
121
  result: ResultItem[];
85
122
  }
86
- export interface BodyCellProps<R extends any> {
87
- column: Column;
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;
88
130
  row: R;
89
131
  reload: () => Promise<void>;
90
132
  }
91
- export declare type BodyCellComponent<R extends any, P = {}> = ComponentType<BodyCellProps<R> & P>;
92
- export interface ActionCellProps<R extends any> {
133
+ export declare type BodyCellComponent<C extends BaseGridType["columns"], R> = ComponentType<BodyCellProps<Columns<C>, R>>;
134
+ export interface ActionCellProps<R> {
93
135
  row: R;
94
136
  onOpen?: (row: R) => void;
137
+ getOpenUrl?: (row: R) => string | null | undefined;
95
138
  onEdit?: (row: R) => void;
139
+ getEditUrl?: (row: R) => string | null | undefined;
96
140
  onRemove?: (row: R) => void;
97
141
  reload: () => Promise<void>;
98
142
  }
99
143
  export declare type ActionCellComponent<R extends any> = ComponentType<ActionCellProps<R>>;
100
- 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> {
101
145
  sort: boolean;
102
146
  sortDirection: SortDirection;
103
147
  onSort: (sortDirection: SortDirection) => void;
104
148
  }
105
- export declare type HeadCellComponent<R extends any> = ComponentType<HeadCellProps<R>>;
106
- export interface FilterListItemProps<T extends any> {
107
- filter: Filter<any>;
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;
108
152
  value: RequestFilter<T>;
109
153
  onFilter: (value: RequestFilter<T>) => void;
110
154
  }
111
- export declare type FilterListItemComponent<T = any> = ComponentType<FilterListItemProps<T>>;
112
- 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> {
113
157
  gridName: string | null;
114
- filter: Filter<any>;
158
+ filter: F;
115
159
  value?: RequestFilter<T>;
116
160
  onFilter: (value: RequestFilter<T>) => void;
117
161
  }
118
- 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>>;
119
163
  export interface DataGridState {
120
164
  loading?: boolean;
121
165
  response?: Response;
122
166
  f: RequestFilter[];
123
- sort: string;
124
- dir: SortDirection;
167
+ sort: string | null;
168
+ dir: SortDirection | null;
125
169
  page: number;
126
170
  perPage: number;
127
171
  error?: any;
172
+ fullText?: string;
128
173
  }
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;