@uxf/data-grid 11.32.0 → 11.33.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.
package/README.md CHANGED
@@ -14,12 +14,12 @@ yarn upgrade @uxf/core@latest @uxf/ui@latest @uxf/data-grid@latest
14
14
 
15
15
  ```css
16
16
  @import url("tailwindcss/components.css");
17
- @import url("@uxf/data-grid/styles.css");
18
17
  @import url("@uxf/ui/button/button.css");
19
18
  @import url("@uxf/ui/button-list/button-list.css");
20
19
  @import url("@uxf/ui/calendar/calendar.css");
21
20
  @import url("@uxf/ui/checkbox/checkbox.css");
22
21
  @import url("@uxf/ui/chip/chip.css");
22
+ @import url("@uxf/ui/dialog/dialog.css");
23
23
  @import url("@uxf/ui/dropdown/dropdown.css");
24
24
  @import url("@uxf/ui/icon/icon.css");
25
25
  @import url("@uxf/ui/label/label.css");
@@ -28,11 +28,15 @@ yarn upgrade @uxf/core@latest @uxf/ui@latest @uxf/data-grid@latest
28
28
  @import url("@uxf/ui/input/input.css");
29
29
  @import url("@uxf/ui/_input-with-popover/input-with-popover.css");
30
30
  @import url("@uxf/ui/combobox/combobox.css");
31
+ @import url("@uxf/ui/modal-header/modal-header.css");
31
32
  @import url("@uxf/ui/multi-select/multi-select.css");
32
33
  @import url("@uxf/ui/multi-combobox/multi-combobox.css");
33
34
  @import url("@uxf/ui/pagination/pagination.css");
34
35
  @import url("@uxf/ui/select/select.css");
35
36
  @import url("@uxf/ui/toggle/toggle.css");
37
+
38
+ /* must be after component css files */
39
+ @import url("@uxf/data-grid/styles.css");
36
40
  ```
37
41
 
38
42
  ## State and actions of data-grid
@@ -2,8 +2,8 @@ import React, { ReactNode } from "react";
2
2
  interface DrawerProps {
3
3
  title?: ReactNode;
4
4
  children?: ReactNode;
5
- open: boolean;
5
+ isOpen: boolean;
6
6
  onClose: () => void;
7
7
  }
8
- export declare const Drawer: React.FC<DrawerProps>;
8
+ export declare function Drawer(props: DrawerProps): React.JSX.Element | null;
9
9
  export {};
@@ -3,22 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Drawer = void 0;
6
+ exports.Drawer = Drawer;
7
7
  const react_1 = require("@floating-ui/react");
8
8
  const use_is_mounted_1 = require("@uxf/core-react/hooks/use-is-mounted");
9
+ const dialog_1 = require("@uxf/ui/dialog");
9
10
  const modal_header_1 = require("@uxf/ui/modal-header");
10
11
  const react_2 = __importDefault(require("react"));
11
- const Drawer = (props) => {
12
+ function Drawer(props) {
12
13
  const isMounted = (0, use_is_mounted_1.useIsMounted)();
13
14
  if (!isMounted) {
14
15
  return null;
15
16
  }
16
17
  return (react_2.default.createElement(react_1.FloatingPortal, null,
17
- react_2.default.createElement("div", { className: `uxf-data-grid__drawer uxf-data-grid__drawer--${props.open ? "open" : "closed"}` },
18
- react_2.default.createElement("div", { className: `uxf-data-grid__drawer-body-wrapper ${props.open ? "uxf-data-grid__drawer-body-wrapper--open" : ""}` },
19
- react_2.default.createElement("div", { className: "uxf-data-grid__drawer-body" },
20
- react_2.default.createElement(modal_header_1.ModalHeader, { onClose: props.onClose, title: props.title }),
21
- react_2.default.createElement("div", { className: "uxf-data-grid__drawer-content" }, props.children))),
22
- react_2.default.createElement("section", { className: "uxf-data-grid__drawer-backdrop", onClick: props.onClose }))));
23
- };
24
- exports.Drawer = Drawer;
18
+ react_2.default.createElement(dialog_1.Dialog, { className: "uxf-dg-modal", onClose: props.onClose, open: props.isOpen, variant: "drawer-right" },
19
+ react_2.default.createElement(modal_header_1.ModalHeader, { onClose: props.onClose, title: props.title }),
20
+ react_2.default.createElement("div", { className: "uxf-data-grid__drawer-content" }, props.children))));
21
+ }
@@ -87,6 +87,6 @@ function Default() {
87
87
  });
88
88
  return (react_1.default.createElement(react_1.default.Fragment, null,
89
89
  react_1.default.createElement(toggle_1.Toggle, { label: "No border", name: "noBorder", onChange: (value) => setNoBorder(Boolean(value)), value: noBorder }),
90
- react_1.default.createElement(data_grid_1.DataGrid, { actionCell: actionCell, actions: actions, data: data, error: error, isLoading: isLoading, isRowSelectable: true, onCsvDownload: console.log, onReload: onReload, schema: schemaWithFrontendConfig, state: state }),
90
+ react_1.default.createElement(data_grid_1.DataGrid, { actionCell: actionCell, actions: actions, data: data, error: error, isLoading: isLoading, isRowSelectable: true, noBorder: noBorder, onCsvDownload: console.log, onReload: onReload, schema: schemaWithFrontendConfig, state: state }),
91
91
  react_1.default.createElement(json_renderer_1.JsonRenderer, { value: state })));
92
92
  }
@@ -11,7 +11,7 @@ const react_1 = __importDefault(require("react"));
11
11
  const utils_1 = require("../utils");
12
12
  /** @deprecated Use DataGridExportButton */
13
13
  function ExportButton(props) {
14
- return (react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => props.onCsvDownload((0, utils_1.createRequest)(props.state.request)), title: "St\u00E1hnout CSV", variant: "secondary" },
14
+ return (react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => props.onCsvDownload((0, utils_1.createRequest)(props.state.request)), size: "sm", title: "St\u00E1hnout CSV", variant: "secondary" },
15
15
  react_1.default.createElement(icon_1.Icon, { name: "file-arrow-down" })));
16
16
  }
17
17
  exports.DataGridExportButton = ExportButton;
@@ -40,7 +40,7 @@ function FiltersButton(props) {
40
40
  return (react_1.default.createElement(react_1.default.Fragment, null,
41
41
  react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => setIsOpen(true), size: "sm", title: "Filtrovat", variant: "secondary" },
42
42
  react_1.default.createElement(icon_1.Icon, { name: "filter" })),
43
- react_1.default.createElement(drawer_1.Drawer, { onClose: () => setIsOpen(false), open: isOpen, title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Filtrování" },
43
+ react_1.default.createElement(drawer_1.Drawer, { isOpen: isOpen, onClose: () => setIsOpen(false), title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Filtrování" },
44
44
  react_1.default.createElement(filters_1.DataGridFilters, { actions: props.actions, filterHandlers: props.filterHandlers, schema: props.schema, state: props.state }))));
45
45
  }
46
46
  exports.DataGridFiltersButton = FiltersButton;
@@ -1,9 +1,8 @@
1
- import React from "react";
1
+ import React, { ReactNode } from "react";
2
2
  import { Schema } from "../types";
3
3
  import { DataGridControl } from "../use-data-grid-control";
4
4
  export interface DataGridHiddenColumnsProps extends DataGridControl {
5
5
  schema: Schema<any>;
6
+ title?: ReactNode;
6
7
  }
7
- /** @deprecated Use DataGridHiddenColumns */
8
- export declare function HiddenColumns(props: DataGridHiddenColumnsProps): React.JSX.Element;
9
- export declare const DataGridHiddenColumns: typeof HiddenColumns;
8
+ export declare function DataGridHiddenColumns(props: DataGridHiddenColumnsProps): React.JSX.Element;
@@ -3,8 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DataGridHiddenColumns = void 0;
7
- exports.HiddenColumns = HiddenColumns;
6
+ exports.DataGridHiddenColumns = DataGridHiddenColumns;
8
7
  const show_1 = require("@uxf/core-react/components/show");
9
8
  const is_empty_1 = require("@uxf/core/utils/is-empty");
10
9
  const is_not_empty_1 = require("@uxf/core/utils/is-not-empty");
@@ -12,8 +11,7 @@ const icon_1 = require("@uxf/ui/icon");
12
11
  const text_link_1 = require("@uxf/ui/text-link");
13
12
  const toggle_1 = require("@uxf/ui/toggle");
14
13
  const react_1 = __importDefault(require("react"));
15
- /** @deprecated Use DataGridHiddenColumns */
16
- function HiddenColumns(props) {
14
+ function DataGridHiddenColumns(props) {
17
15
  const columns = props.schema.columns.filter((c) => !c.hidden);
18
16
  const visibleColumns = columns.filter((c) => { var _a, _b, _c, _d; return !((_c = (_b = (_a = props.state.userConfig.columns) === null || _a === void 0 ? void 0 : _a[c.name]) === null || _b === void 0 ? void 0 : _b.isHidden) !== null && _c !== void 0 ? _c : (_d = c.config) === null || _d === void 0 ? void 0 : _d.isHidden); });
19
17
  const hiddenColumns = columns.filter((c) => { var _a, _b, _c, _d; return (_c = (_b = (_a = props.state.userConfig.columns) === null || _a === void 0 ? void 0 : _a[c.name]) === null || _b === void 0 ? void 0 : _b.isHidden) !== null && _c !== void 0 ? _c : (_d = c.config) === null || _d === void 0 ? void 0 : _d.isHidden; });
@@ -22,7 +20,7 @@ function HiddenColumns(props) {
22
20
  return (react_1.default.createElement("div", { className: "uxf-data-grid__toolbar-control-columns" },
23
21
  react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-title" },
24
22
  react_1.default.createElement("div", null, "Zobrazen\u00E9 sloupce"),
25
- react_1.default.createElement(text_link_1.TextLink, { disabled: (0, is_empty_1.isEmpty)(visibleColumns), onClick: onChangeAll(false), variant: "text" }, "skr\u00FDt v\u0161e")),
23
+ react_1.default.createElement(text_link_1.TextLink, { isDisabled: (0, is_empty_1.isEmpty)(visibleColumns), onClick: onChangeAll(false), variant: "text" }, "skr\u00FDt v\u0161e")),
26
24
  visibleColumns.map((column) => (react_1.default.createElement(toggle_1.Toggle, { key: column.name, label: typeof column.label === "string" ? column.label : "", name: column.name, onChange: onToggleChange(column.name), size: "sm", value: true, variant: "reversed" }))),
27
25
  react_1.default.createElement(show_1.Show, { when: (0, is_empty_1.isEmpty)(visibleColumns) },
28
26
  react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-empty-box" },
@@ -34,4 +32,3 @@ function HiddenColumns(props) {
34
32
  react_1.default.createElement(text_link_1.TextLink, { onClick: onChangeAll(true), variant: "text" }, "zobrazit v\u0161e")),
35
33
  hiddenColumns.map((column) => (react_1.default.createElement(toggle_1.Toggle, { key: column.name, label: typeof column.label === "string" ? column.label : "", name: column.name, onChange: onToggleChange(column.name), size: "sm", value: false, variant: "reversed" }))))));
36
34
  }
37
- exports.DataGridHiddenColumns = HiddenColumns;
@@ -5,6 +5,4 @@ export interface DataGridHiddenColumnsButtonProps extends DataGridControl {
5
5
  drawerTitle?: ReactNode;
6
6
  schema: Schema<any>;
7
7
  }
8
- /** @deprecated Use DataGridHiddenColumnsButton */
9
- export declare function HiddenColumnsButton(props: DataGridHiddenColumnsButtonProps): React.JSX.Element;
10
- export declare const DataGridHiddenColumnsButton: typeof HiddenColumnsButton;
8
+ export declare function DataGridHiddenColumnsButton(props: DataGridHiddenColumnsButtonProps): React.JSX.Element;
@@ -23,21 +23,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DataGridHiddenColumnsButton = void 0;
27
- exports.HiddenColumnsButton = HiddenColumnsButton;
26
+ exports.DataGridHiddenColumnsButton = DataGridHiddenColumnsButton;
28
27
  const button_1 = require("@uxf/ui/button");
29
28
  const icon_1 = require("@uxf/ui/icon");
30
29
  const react_1 = __importStar(require("react"));
31
30
  const drawer_1 = require("../_components/drawer");
32
31
  const hidden_columns_1 = require("../hidden-columns");
33
- /** @deprecated Use DataGridHiddenColumnsButton */
34
- function HiddenColumnsButton(props) {
32
+ function DataGridHiddenColumnsButton(props) {
35
33
  var _a;
36
34
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
37
35
  return (react_1.default.createElement(react_1.default.Fragment, null,
38
36
  react_1.default.createElement(button_1.Button, { className: "uxf-data-grid__plugin-button", isIconButton: true, onClick: () => setIsOpen(true), size: "sm", title: "Nastaven\u00ED sloupc\u016F", variant: "secondary" },
39
37
  react_1.default.createElement(icon_1.Icon, { name: "table-columns" })),
40
- react_1.default.createElement(drawer_1.Drawer, { onClose: () => setIsOpen(false), open: isOpen, title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Sloupce" },
41
- react_1.default.createElement(hidden_columns_1.HiddenColumns, { actions: props.actions, schema: props.schema, state: props.state }))));
38
+ react_1.default.createElement(drawer_1.Drawer, { isOpen: isOpen, onClose: () => setIsOpen(false), title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Sloupce" },
39
+ react_1.default.createElement(hidden_columns_1.DataGridHiddenColumns, { actions: props.actions, schema: props.schema, state: props.state }))));
42
40
  }
43
- exports.DataGridHiddenColumnsButton = HiddenColumnsButton;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/data-grid",
3
- "version": "11.32.0",
3
+ "version": "11.33.0",
4
4
  "description": "UXF DataGrid",
5
5
  "homepage": "https://gitlab.com/uxf-npm/data-grid#readme",
6
6
  "main": "index.js",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@uxf/core": "11.32.0",
35
- "@uxf/core-react": "11.32.0",
36
- "@uxf/ui": "11.32.0",
35
+ "@uxf/core-react": "11.33.0",
36
+ "@uxf/ui": "11.33.0",
37
37
  "dayjs": "1.11.13",
38
38
  "deepmerge": "4.3.1",
39
39
  "fast-glob": "3.3.2",
package/styles.css CHANGED
@@ -75,9 +75,7 @@
75
75
  }
76
76
 
77
77
  &__drawer {
78
- --uxf-dg-drawer-max-w: 400px;
79
-
80
- @apply ease-in-out;
78
+ /* @apply ease-in-out; TODO animate
81
79
 
82
80
  background-color: theme("colors.gray.900/.25");
83
81
  inset: 0;
@@ -104,12 +102,13 @@
104
102
  }
105
103
 
106
104
  &-body-wrapper {
105
+ --panel-max-w: 400px;
106
+
107
107
  @apply transition-all duration-500 ease-in-out;
108
108
 
109
- background-color: theme("colors.white");
110
- box-shadow: theme("boxShadow.xl");
109
+ !* background-color: theme("colors.white"); *!
111
110
  height: 100%;
112
- max-width: var(--uxf-dg-drawer-max-w);
111
+ max-width: var(--panel-max-w);
113
112
  position: absolute;
114
113
  right: 0;
115
114
  transform: translateX(100%);
@@ -118,26 +117,10 @@
118
117
  &--open {
119
118
  transform: translateX(0);
120
119
  }
121
- }
122
-
123
- &-body {
124
- display: flex;
125
- flex-direction: column;
126
- height: 100%;
127
- max-width: var(--uxf-dg-drawer-max-w);
128
- overflow-y: auto;
129
- padding-bottom: theme("spacing.10");
130
- position: relative;
131
- width: 100%;
132
-
133
- :root .dark & {
134
- background-color: theme("colors.gray.950");
135
- color: theme("colors.gray.100");
136
- }
137
- }
120
+ } */
138
121
 
139
122
  &-content {
140
- padding: theme("spacing.4");
123
+ padding: theme("spacing.4") theme("spacing.4") theme("spacing.14");
141
124
  }
142
125
 
143
126
  &-backdrop {
@@ -560,6 +543,10 @@
560
543
  }
561
544
  }
562
545
 
546
+ .uxf-dg-modal {
547
+ --panel-max-w: 400px;
548
+ }
549
+
563
550
  /* TODO: tohle je imo k ničemu, že Vejvis? */
564
551
 
565
552
  /* .rdg-cell.action {
@@ -1,21 +1,24 @@
1
1
  :root {
2
2
  --uxf-dg-table-font-size: theme("fontSize.sm");
3
3
  --uxf-dg-table-cell-padding: theme("spacing.2");
4
- --uxf-dg-table-action-cell-bg-color: theme("colors.white");
5
- --uxf-dg-table-action-cell-left-divider-color: theme("colors.lightBorder");
6
4
  --uxf-dg-table-action-cell-left-divider-size: 1px;
7
5
  --uxf-dg-table-row-divider-size: 1px;
8
- --uxf-dg-table-row-divider-color: theme("colors.lightBorder");
9
- --uxf-dg-table-row-bg-color-odd: theme("colors.white");
10
- --uxf-dg-table-row-bg-color-even: theme("colors.white");
11
- --uxf-dg-table-header-action-cell-bg-color: theme("colors.neutral.50");
12
- --uxf-dg-table-header-bg-color: theme("colors.neutral.50");
13
- --uxf-dg-table-header-color: theme("colors.neutral.400");
14
- --uxf-dg-table-header-divider-size: var(--uxf-dg-table-row-divider-size);
15
- --uxf-dg-table-header-divider-color: var(--uxf-dg-table-row-divider-color);
16
6
  }
17
7
 
18
8
  .uxf-dg-table {
9
+ --uxf-dg-table-text-color: var(--uxf-color-base-text-high-emphasis);
10
+ --uxf-dg-table-action-cell-left-divider-color: var(--uxf-color-base-border-border);
11
+ --uxf-dg-table-row-divider-color: var(--uxf-color-base-border-border);
12
+ --uxf-dg-table-action-cell-bg-color: var(--uxf-color-base-surface-main);
13
+ --uxf-dg-table-row-bg-color-odd: var(--uxf-color-base-surface-main);
14
+ --uxf-dg-table-row-bg-color-even: var(--uxf-color-base-surface-main);
15
+ --uxf-dg-table-header-action-cell-bg-color: var(--uxf-color-base-surface-background);
16
+ --uxf-dg-table-header-bg-color: var(--uxf-color-base-surface-background);
17
+ --uxf-dg-table-header-color: var(--uxf-color-base-text-disabled);
18
+ --uxf-dg-table-header-divider-size: var(--uxf-dg-table-row-divider-size);
19
+ --uxf-dg-table-header-divider-color: var(--uxf-dg-table-row-divider-color);
20
+
21
+ color: var(--uxf-dg-table-text-color);
19
22
  display: grid;
20
23
  font-size: var(--uxf-dg-table-font-size);
21
24
  overflow-x: auto;
@@ -70,6 +73,10 @@
70
73
  width: 12px;
71
74
  }
72
75
  }
76
+
77
+ span {
78
+ @apply truncate;
79
+ }
73
80
  }
74
81
 
75
82
  &__action-cell {
@@ -96,7 +103,7 @@
96
103
  z-index: 2;
97
104
 
98
105
  &::before {
99
- background-color: theme("colors.lightBorder");
106
+ background-color: var(--uxf-color-base-border-border);
100
107
  bottom: 0;
101
108
  content: "";
102
109
  position: absolute;