@uxf/data-grid 11.28.4 → 11.30.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/_components/drawer.d.ts +1 -1
- package/_components/drawer.js +2 -5
- package/filters-button/filters-button.d.ts +3 -2
- package/filters-button/filters-button.js +2 -1
- package/hidden-columns/hidden-columns.js +28 -6
- package/hidden-columns-button/hidden-columns-button.d.ts +2 -1
- package/hidden-columns-button/hidden-columns-button.js +2 -1
- package/package.json +4 -4
- package/styles.css +45 -14
package/_components/drawer.d.ts
CHANGED
package/_components/drawer.js
CHANGED
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Drawer = void 0;
|
|
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
|
|
10
|
-
const icon_1 = require("@uxf/ui/icon");
|
|
9
|
+
const modal_header_1 = require("@uxf/ui/modal-header");
|
|
11
10
|
const react_2 = __importDefault(require("react"));
|
|
12
11
|
const Drawer = (props) => {
|
|
13
12
|
const isMounted = (0, use_is_mounted_1.useIsMounted)();
|
|
@@ -18,9 +17,7 @@ const Drawer = (props) => {
|
|
|
18
17
|
react_2.default.createElement("div", { className: `uxf-data-grid__drawer uxf-data-grid__drawer--${props.open ? "open" : "closed"}` },
|
|
19
18
|
react_2.default.createElement("div", { className: `uxf-data-grid__drawer-body-wrapper ${props.open ? "uxf-data-grid__drawer-body-wrapper--open" : ""}` },
|
|
20
19
|
react_2.default.createElement("div", { className: "uxf-data-grid__drawer-body" },
|
|
21
|
-
react_2.default.createElement(
|
|
22
|
-
react_2.default.createElement(icon_1.Icon, { name: "xmarkLarge" })),
|
|
23
|
-
react_2.default.createElement("header", { className: "uxf-data-grid__drawer-header" }, props.title),
|
|
20
|
+
react_2.default.createElement(modal_header_1.ModalHeader, { title: props.title, onClose: props.onClose }),
|
|
24
21
|
react_2.default.createElement("div", { className: "uxf-data-grid__drawer-content" }, props.children))),
|
|
25
22
|
react_2.default.createElement("section", { className: "uxf-data-grid__drawer-backdrop", onClick: props.onClose }))));
|
|
26
23
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
import { FilterHandlers } from "../filter-handler";
|
|
3
3
|
import { Schema } from "../types";
|
|
4
4
|
import { DataGridControl } from "../use-data-grid-control";
|
|
5
5
|
export interface DataGridFiltersButtonProps extends DataGridControl {
|
|
6
|
-
|
|
6
|
+
drawerTitle?: ReactNode;
|
|
7
7
|
filterHandlers: FilterHandlers;
|
|
8
|
+
schema: Schema<any>;
|
|
8
9
|
}
|
|
9
10
|
/** @deprecated Use DataGridFiltersButton */
|
|
10
11
|
export declare function FiltersButton(props: DataGridFiltersButtonProps): React.JSX.Element | null;
|
|
@@ -31,6 +31,7 @@ const drawer_1 = require("../_components/drawer");
|
|
|
31
31
|
const filters_1 = require("../filters");
|
|
32
32
|
/** @deprecated Use DataGridFiltersButton */
|
|
33
33
|
function FiltersButton(props) {
|
|
34
|
+
var _a;
|
|
34
35
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
35
36
|
if (props.schema.filters.length === 0) {
|
|
36
37
|
return null;
|
|
@@ -38,7 +39,7 @@ function FiltersButton(props) {
|
|
|
38
39
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
39
40
|
react_1.default.createElement(button_1.Button, { isIconButton: true, variant: "secondary", size: "sm", onClick: () => setIsOpen(true), title: "Filtrovat", className: "uxf-data-grid__plugin-button" },
|
|
40
41
|
react_1.default.createElement(icon_1.Icon, { name: "filter" })),
|
|
41
|
-
react_1.default.createElement(drawer_1.Drawer, { open: isOpen, onClose: () => setIsOpen(false) },
|
|
42
|
+
react_1.default.createElement(drawer_1.Drawer, { title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Filtrování", open: isOpen, onClose: () => setIsOpen(false) },
|
|
42
43
|
react_1.default.createElement(filters_1.DataGridFilters, { state: props.state, actions: props.actions, schema: props.schema, filterHandlers: props.filterHandlers }))));
|
|
43
44
|
}
|
|
44
45
|
exports.FiltersButton = FiltersButton;
|
|
@@ -4,16 +4,38 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DataGridHiddenColumns = exports.HiddenColumns = void 0;
|
|
7
|
+
const show_1 = require("@uxf/core-react/components/show");
|
|
8
|
+
const is_empty_1 = require("@uxf/core/utils/is-empty");
|
|
9
|
+
const is_not_empty_1 = require("@uxf/core/utils/is-not-empty");
|
|
10
|
+
const icon_1 = require("@uxf/ui/icon");
|
|
11
|
+
const text_link_1 = require("@uxf/ui/text-link");
|
|
7
12
|
const toggle_1 = require("@uxf/ui/toggle");
|
|
8
13
|
const react_1 = __importDefault(require("react"));
|
|
9
14
|
/** @deprecated Use DataGridHiddenColumns */
|
|
10
15
|
function HiddenColumns(props) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
const columns = props.schema.columns.filter((c) => !c.hidden);
|
|
17
|
+
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); });
|
|
18
|
+
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; });
|
|
19
|
+
const onToggleChange = (columnName) => (value) => value ? props.actions.showColumn(columnName) : props.actions.hideColumn(columnName);
|
|
20
|
+
const onChangeAll = (value) => () => {
|
|
21
|
+
columns.forEach((column) => {
|
|
22
|
+
value ? props.actions.showColumn(column.name) : props.actions.hideColumn(column.name);
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
return (react_1.default.createElement("div", { className: "uxf-data-grid__toolbar-control-columns" },
|
|
26
|
+
react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-title" },
|
|
27
|
+
react_1.default.createElement("div", null, "Zobrazen\u00E9 sloupce"),
|
|
28
|
+
react_1.default.createElement(text_link_1.TextLink, { disabled: (0, is_empty_1.isEmpty)(visibleColumns), onClick: onChangeAll(false), variant: "text" }, "skr\u00FDt v\u0161e")),
|
|
29
|
+
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" }))),
|
|
30
|
+
react_1.default.createElement(show_1.Show, { when: (0, is_empty_1.isEmpty)(visibleColumns) },
|
|
31
|
+
react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-empty-box" },
|
|
32
|
+
react_1.default.createElement(icon_1.Icon, { name: "triangle-exclamation-solid", size: 20 }),
|
|
33
|
+
"Tabulka m\u00E1 v\u0161echny sloupce skryt\u00E9. Pro zobrazen\u00ED vyberte sloupec n\u00ED\u017Ee.")),
|
|
34
|
+
react_1.default.createElement(show_1.Show, { when: (0, is_not_empty_1.isNotEmpty)(hiddenColumns) },
|
|
35
|
+
react_1.default.createElement("div", { className: "uxf-data-grid__hidden-columns-title" },
|
|
36
|
+
react_1.default.createElement("div", null, "Skryt\u00E9 sloupce"),
|
|
37
|
+
react_1.default.createElement(text_link_1.TextLink, { onClick: onChangeAll(true), variant: "text" }, "zobrazit v\u0161e")),
|
|
38
|
+
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" }))))));
|
|
17
39
|
}
|
|
18
40
|
exports.HiddenColumns = HiddenColumns;
|
|
19
41
|
exports.DataGridHiddenColumns = HiddenColumns;
|
|
@@ -1,7 +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 DataGridHiddenColumnsButtonProps extends DataGridControl {
|
|
5
|
+
drawerTitle?: ReactNode;
|
|
5
6
|
schema: Schema<any>;
|
|
6
7
|
}
|
|
7
8
|
/** @deprecated Use DataGridHiddenColumnsButton */
|
|
@@ -31,11 +31,12 @@ const drawer_1 = require("../_components/drawer");
|
|
|
31
31
|
const hidden_columns_1 = require("../hidden-columns");
|
|
32
32
|
/** @deprecated Use DataGridHiddenColumnsButton */
|
|
33
33
|
function HiddenColumnsButton(props) {
|
|
34
|
+
var _a;
|
|
34
35
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
35
36
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
36
37
|
react_1.default.createElement(button_1.Button, { isIconButton: true, variant: "secondary", size: "sm", onClick: () => setIsOpen(true), title: "Nastaven\u00ED sloupc\u016F", className: "uxf-data-grid__plugin-button" },
|
|
37
38
|
react_1.default.createElement(icon_1.Icon, { name: "table-columns" })),
|
|
38
|
-
react_1.default.createElement(drawer_1.Drawer, { open: isOpen, onClose: () => setIsOpen(false), title:
|
|
39
|
+
react_1.default.createElement(drawer_1.Drawer, { open: isOpen, onClose: () => setIsOpen(false), title: (_a = props.drawerTitle) !== null && _a !== void 0 ? _a : "Sloupce" },
|
|
39
40
|
react_1.default.createElement(hidden_columns_1.HiddenColumns, { state: props.state, actions: props.actions, schema: props.schema }))));
|
|
40
41
|
}
|
|
41
42
|
exports.HiddenColumnsButton = HiddenColumnsButton;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/data-grid",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.30.0",
|
|
4
4
|
"description": "UXF DataGrid",
|
|
5
5
|
"homepage": "https://gitlab.com/uxf-npm/data-grid#readme",
|
|
6
6
|
"main": "index.js",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"typecheck": "tsc --noEmit --skipLibCheck"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@uxf/core": "11.
|
|
35
|
-
"@uxf/core-react": "11.
|
|
36
|
-
"@uxf/ui": "11.
|
|
34
|
+
"@uxf/core": "11.29.0",
|
|
35
|
+
"@uxf/core-react": "11.29.0",
|
|
36
|
+
"@uxf/ui": "11.30.0",
|
|
37
37
|
"dayjs": "1.11.10",
|
|
38
38
|
"deepmerge": "4.3.1",
|
|
39
39
|
"fast-glob": "3.3.2",
|
package/styles.css
CHANGED
|
@@ -75,6 +75,8 @@
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
&__drawer {
|
|
78
|
+
--uxf-dg-drawer-max-w: 400px;
|
|
79
|
+
|
|
78
80
|
@apply ease-in-out;
|
|
79
81
|
|
|
80
82
|
background-color: theme("colors.gray.900/.25");
|
|
@@ -107,7 +109,7 @@
|
|
|
107
109
|
background-color: theme("colors.white");
|
|
108
110
|
box-shadow: theme("boxShadow.xl");
|
|
109
111
|
height: 100%;
|
|
110
|
-
max-width:
|
|
112
|
+
max-width: var(--uxf-dg-drawer-max-w);
|
|
111
113
|
position: absolute;
|
|
112
114
|
right: 0;
|
|
113
115
|
transform: translateX(100%);
|
|
@@ -122,8 +124,8 @@
|
|
|
122
124
|
display: flex;
|
|
123
125
|
flex-direction: column;
|
|
124
126
|
height: 100%;
|
|
125
|
-
max-width:
|
|
126
|
-
overflow-y:
|
|
127
|
+
max-width: var(--uxf-dg-drawer-max-w);
|
|
128
|
+
overflow-y: auto;
|
|
127
129
|
padding-bottom: theme("spacing.10");
|
|
128
130
|
position: relative;
|
|
129
131
|
width: 100%;
|
|
@@ -134,17 +136,6 @@
|
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
|
|
137
|
-
&-close-button {
|
|
138
|
-
margin-left: auto;
|
|
139
|
-
margin-right: theme("spacing.4");
|
|
140
|
-
margin-top: theme("spacing.4") !important;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
&-header {
|
|
144
|
-
font-weight: theme("fontWeight.bold");
|
|
145
|
-
padding: theme("spacing.8") theme("spacing.4") theme("spacing.4");
|
|
146
|
-
}
|
|
147
|
-
|
|
148
139
|
&-content {
|
|
149
140
|
padding: theme("spacing.4");
|
|
150
141
|
}
|
|
@@ -495,6 +486,46 @@
|
|
|
495
486
|
}
|
|
496
487
|
}
|
|
497
488
|
|
|
489
|
+
&__toolbar-control-columns {
|
|
490
|
+
font-size: theme("fontSize.body2");
|
|
491
|
+
font-weight: theme("fontWeight.medium");
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
&__hidden-columns-title {
|
|
495
|
+
display: flex;
|
|
496
|
+
gap: 8px;
|
|
497
|
+
justify-content: space-between;
|
|
498
|
+
padding: 24px 0 12px;
|
|
499
|
+
|
|
500
|
+
div {
|
|
501
|
+
text-transform: uppercase;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
a {
|
|
505
|
+
text-decoration: underline;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
&:first-child {
|
|
509
|
+
margin-top: -16px;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
&__hidden-columns-empty-box {
|
|
514
|
+
background-color: var(--uxf-color-warning-surface-muted);
|
|
515
|
+
border: theme("borderWidth.DEFAULT") solid var(--uxf-color-warning-border);
|
|
516
|
+
border-radius: theme("borderRadius.lg");
|
|
517
|
+
color: var(--uxf-color-base-text-high-emphasis);
|
|
518
|
+
display: flex;
|
|
519
|
+
gap: 12px;
|
|
520
|
+
margin: 8px 0;
|
|
521
|
+
padding: 8px 16px;
|
|
522
|
+
|
|
523
|
+
.uxf-icon {
|
|
524
|
+
color: var(--uxf-color-warning-icon-on-muted);
|
|
525
|
+
margin-top: 4px;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
|
|
498
529
|
&__toolbar-customs {
|
|
499
530
|
align-items: center;
|
|
500
531
|
display: flex;
|