brd-ui-kit 0.1.72 → 0.1.75
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/dist/brd-ui-kit.css +1 -1
- package/dist/calendar-C0DXP3T-.js +3118 -0
- package/dist/calendar-C0DXP3T-.js.map +1 -0
- package/dist/calendar-DReGV_22.cjs +2 -0
- package/dist/calendar-DReGV_22.cjs.map +1 -0
- package/dist/calendar-locale-CP2pxhFK.cjs +2 -0
- package/dist/calendar-locale-CP2pxhFK.cjs.map +1 -0
- package/dist/calendar-locale-DJf03PI9.js +592 -0
- package/dist/calendar-locale-DJf03PI9.js.map +1 -0
- package/dist/{chart-CgVfpT_X.cjs → chart-C69jBlXa.cjs} +2 -2
- package/dist/{chart-CgVfpT_X.cjs.map → chart-C69jBlXa.cjs.map} +1 -1
- package/dist/{chart-D15EtNmb.js → chart-CAPCe8o5.js} +3 -3
- package/dist/{chart-D15EtNmb.js.map → chart-CAPCe8o5.js.map} +1 -1
- package/dist/components/basic-table/basic-table.d.ts +33 -2
- package/dist/components/basic-table/index.d.ts +1 -1
- package/dist/components/data-table/data-table-actions-column.d.ts +23 -0
- package/dist/components/data-table/data-table-bulk-actions.d.ts +20 -0
- package/dist/components/data-table/data-table-column-visibility.d.ts +17 -0
- package/dist/components/data-table/data-table-editable-column.d.ts +12 -0
- package/dist/components/data-table/data-table-filter.d.ts +12 -0
- package/dist/components/data-table/data-table-row-actions-column.d.ts +53 -0
- package/dist/components/data-table/data-table-select-column.d.ts +2 -0
- package/dist/components/data-table/data-table.d.ts +2 -0
- package/dist/components/data-table/data-table.styles.d.ts +8 -0
- package/dist/components/data-table/index.d.ts +17 -0
- package/dist/components/data-table/use-data-table-editable-rows.d.ts +60 -0
- package/dist/components/data-table.d.ts +2 -0
- package/dist/components/files-uploader/files-uploader.d.ts +8 -6
- package/dist/components/textarea-field/index.d.ts +1 -1
- package/dist/components/ui/button/button.styles.d.ts +2 -2
- package/dist/components/ui/calendar/calendar.d.ts +14 -10
- package/dist/components/ui/calendar/calendar.styles.d.ts +60 -2
- package/dist/components/ui/calendar/index.d.ts +3 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +102 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.styles.d.ts +9 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
- package/dist/components/ui/dropdown-menu.d.ts +2 -0
- package/dist/components/ui/icon/icon-presets.d.ts +5 -5
- package/dist/components/ui/icon/icon.d.ts +2 -1
- package/dist/components/ui/pagination/pagination.d.ts +6 -5
- package/dist/components/ui/select/select.styles.d.ts +2 -2
- package/dist/components/ui/select-calendar-menu/index.d.ts +1 -0
- package/dist/components/ui/select-calendar-menu/select-calendar-menu.d.ts +33 -0
- package/dist/components/ui/select-calendar-menu.d.ts +2 -0
- package/dist/components/ui/textarea/textarea.d.ts +2 -2
- package/dist/components/ui/toggle/index.d.ts +3 -0
- package/dist/components/ui/toggle/toggle.d.ts +5 -0
- package/dist/components/ui/toggle/toggle.styles.d.ts +10 -0
- package/dist/components/ui/toggle-group/index.d.ts +1 -0
- package/dist/components/ui/toggle-group/toggle-group.d.ts +13 -0
- package/dist/components/ui/toggle-group/toggle-group.styles.d.ts +14 -0
- package/dist/components/ui/toggle-group.d.ts +2 -0
- package/dist/components/ui/toggle.d.ts +2 -0
- package/dist/components-app-pagination-app-pagination.cjs +1 -1
- package/dist/components-app-pagination-app-pagination.cjs.map +1 -1
- package/dist/components-app-pagination-app-pagination.js +46 -30
- package/dist/components-app-pagination-app-pagination.js.map +1 -1
- package/dist/components-app-pagination-app-pagination.styles.cjs +2 -2
- package/dist/components-app-pagination-app-pagination.styles.cjs.map +1 -1
- package/dist/components-app-pagination-app-pagination.styles.js +12 -12
- package/dist/components-app-pagination-app-pagination.styles.js.map +1 -1
- package/dist/components-avatar-uploader-avatar-uploader.cjs +2 -2
- package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
- package/dist/components-avatar-uploader-avatar-uploader.js +8 -4
- package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -1
- package/dist/components-basic-avatar-basic-avatar.cjs +2 -2
- package/dist/components-basic-avatar-basic-avatar.cjs.map +1 -1
- package/dist/components-basic-avatar-basic-avatar.js +8 -4
- package/dist/components-basic-avatar-basic-avatar.js.map +1 -1
- package/dist/components-basic-chart-basic-chart.cjs +1 -1
- package/dist/components-basic-chart-basic-chart.js +1 -1
- package/dist/components-basic-drawer-basic-drawer.cjs +1 -1
- package/dist/components-basic-drawer-basic-drawer.cjs.map +1 -1
- package/dist/components-basic-drawer-basic-drawer.js +13 -14
- package/dist/components-basic-drawer-basic-drawer.js.map +1 -1
- package/dist/components-basic-table-basic-table.cjs +2 -2
- package/dist/components-basic-table-basic-table.cjs.map +1 -1
- package/dist/components-basic-table-basic-table.js +874 -757
- package/dist/components-basic-table-basic-table.js.map +1 -1
- package/dist/components-data-table-data-table-actions-column.cjs +2 -0
- package/dist/components-data-table-data-table-actions-column.cjs.map +1 -0
- package/dist/components-data-table-data-table-actions-column.js +72 -0
- package/dist/components-data-table-data-table-actions-column.js.map +1 -0
- package/dist/components-data-table-data-table-bulk-actions.cjs +2 -0
- package/dist/components-data-table-data-table-bulk-actions.cjs.map +1 -0
- package/dist/components-data-table-data-table-bulk-actions.js +60 -0
- package/dist/components-data-table-data-table-bulk-actions.js.map +1 -0
- package/dist/components-data-table-data-table-column-visibility.cjs +3 -0
- package/dist/components-data-table-data-table-column-visibility.cjs.map +1 -0
- package/dist/components-data-table-data-table-column-visibility.js +100 -0
- package/dist/components-data-table-data-table-column-visibility.js.map +1 -0
- package/dist/components-data-table-data-table-editable-column.cjs +2 -0
- package/dist/components-data-table-data-table-editable-column.cjs.map +1 -0
- package/dist/components-data-table-data-table-editable-column.js +15 -0
- package/dist/components-data-table-data-table-editable-column.js.map +1 -0
- package/dist/components-data-table-data-table-filter.cjs +2 -0
- package/dist/components-data-table-data-table-filter.cjs.map +1 -0
- package/dist/components-data-table-data-table-filter.js +39 -0
- package/dist/components-data-table-data-table-filter.js.map +1 -0
- package/dist/components-data-table-data-table-row-actions-column.cjs +2 -0
- package/dist/components-data-table-data-table-row-actions-column.cjs.map +1 -0
- package/dist/components-data-table-data-table-row-actions-column.js +174 -0
- package/dist/components-data-table-data-table-row-actions-column.js.map +1 -0
- package/dist/components-data-table-data-table-select-column.cjs +2 -0
- package/dist/components-data-table-data-table-select-column.cjs.map +1 -0
- package/dist/components-data-table-data-table-select-column.js +44 -0
- package/dist/components-data-table-data-table-select-column.js.map +1 -0
- package/dist/components-data-table-data-table.cjs +2 -0
- package/dist/components-data-table-data-table.cjs.map +1 -0
- package/dist/components-data-table-data-table.js +37 -0
- package/dist/components-data-table-data-table.js.map +1 -0
- package/dist/components-data-table-data-table.styles.cjs +4 -0
- package/dist/components-data-table-data-table.styles.cjs.map +1 -0
- package/dist/components-data-table-data-table.styles.js +22 -0
- package/dist/components-data-table-data-table.styles.js.map +1 -0
- package/dist/components-data-table-use-data-table-editable-rows.cjs +2 -0
- package/dist/components-data-table-use-data-table-editable-rows.cjs.map +1 -0
- package/dist/components-data-table-use-data-table-editable-rows.js +156 -0
- package/dist/components-data-table-use-data-table-editable-rows.js.map +1 -0
- package/dist/components-data-table.cjs +2 -0
- package/dist/components-data-table.cjs.map +1 -0
- package/dist/components-data-table.js +21 -0
- package/dist/components-data-table.js.map +1 -0
- package/dist/components-files-uploader-files-uploader.cjs +6 -6
- package/dist/components-files-uploader-files-uploader.cjs.map +1 -1
- package/dist/components-files-uploader-files-uploader.js +108 -109
- package/dist/components-files-uploader-files-uploader.js.map +1 -1
- package/dist/components-input-contact-input-contact.cjs +1 -1
- package/dist/components-input-contact-input-contact.cjs.map +1 -1
- package/dist/components-input-contact-input-contact.js +8 -4
- package/dist/components-input-contact-input-contact.js.map +1 -1
- package/dist/components-input-password-input-password.cjs +1 -1
- package/dist/components-input-password-input-password.cjs.map +1 -1
- package/dist/components-input-password-input-password.js +8 -4
- package/dist/components-input-password-input-password.js.map +1 -1
- package/dist/components-popover-modal-popover-modal.cjs.map +1 -1
- package/dist/components-popover-modal-popover-modal.js +27 -20
- package/dist/components-popover-modal-popover-modal.js.map +1 -1
- package/dist/components-textarea-field-textarea-field.cjs.map +1 -1
- package/dist/components-textarea-field-textarea-field.js.map +1 -1
- package/dist/components-ui-button-button.styles.cjs +18 -8
- package/dist/components-ui-button-button.styles.cjs.map +1 -1
- package/dist/components-ui-button-button.styles.js +49 -33
- package/dist/components-ui-button-button.styles.js.map +1 -1
- package/dist/components-ui-calendar-calendar.cjs +1 -12
- package/dist/components-ui-calendar-calendar.cjs.map +1 -1
- package/dist/components-ui-calendar-calendar.js +12 -3757
- package/dist/components-ui-calendar-calendar.js.map +1 -1
- package/dist/components-ui-calendar-calendar.styles.cjs +17 -13
- package/dist/components-ui-calendar-calendar.styles.cjs.map +1 -1
- package/dist/components-ui-calendar-calendar.styles.js +193 -24
- package/dist/components-ui-calendar-calendar.styles.js.map +1 -1
- package/dist/components-ui-calendar.cjs +1 -1
- package/dist/components-ui-calendar.js +3 -2
- package/dist/components-ui-calendar.js.map +1 -1
- package/dist/components-ui-card-card.styles.cjs +2 -2
- package/dist/components-ui-card-card.styles.cjs.map +1 -1
- package/dist/components-ui-card-card.styles.js +2 -2
- package/dist/components-ui-card-card.styles.js.map +1 -1
- package/dist/components-ui-chart-chart.cjs +1 -1
- package/dist/components-ui-chart-chart.js +1 -1
- package/dist/components-ui-chart.cjs +1 -1
- package/dist/components-ui-chart.js +1 -1
- package/dist/components-ui-dropdown-menu-dropdown-menu.cjs +3 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.cjs.map +1 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.js +293 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.js.map +1 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.styles.cjs +29 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.styles.cjs.map +1 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.styles.js +43 -0
- package/dist/components-ui-dropdown-menu-dropdown-menu.styles.js.map +1 -0
- package/dist/components-ui-dropdown-menu.cjs +2 -0
- package/dist/components-ui-dropdown-menu.cjs.map +1 -0
- package/dist/components-ui-dropdown-menu.js +17 -0
- package/dist/components-ui-dropdown-menu.js.map +1 -0
- package/dist/components-ui-field-field.cjs +1 -1
- package/dist/components-ui-field-field.cjs.map +1 -1
- package/dist/components-ui-field-field.js +14 -14
- package/dist/components-ui-field-field.js.map +1 -1
- package/dist/components-ui-icon-icon-presets.cjs +1 -1
- package/dist/components-ui-icon-icon-presets.cjs.map +1 -1
- package/dist/components-ui-icon-icon-presets.js +3 -3
- package/dist/components-ui-icon-icon-presets.js.map +1 -1
- package/dist/components-ui-icon-icon.cjs +1 -1
- package/dist/components-ui-icon-icon.cjs.map +1 -1
- package/dist/components-ui-icon-icon.js +2621 -3595
- package/dist/components-ui-icon-icon.js.map +1 -1
- package/dist/components-ui-input-group-input-group.cjs.map +1 -1
- package/dist/components-ui-input-group-input-group.js.map +1 -1
- package/dist/components-ui-pagination-pagination.cjs +2 -1
- package/dist/components-ui-pagination-pagination.cjs.map +1 -1
- package/dist/components-ui-pagination-pagination.js +93 -62
- package/dist/components-ui-pagination-pagination.js.map +1 -1
- package/dist/components-ui-popover-popover.cjs.map +1 -1
- package/dist/components-ui-popover-popover.js +24 -14
- package/dist/components-ui-popover-popover.js.map +1 -1
- package/dist/components-ui-popover-popover.styles.cjs.map +1 -1
- package/dist/components-ui-popover-popover.styles.js.map +1 -1
- package/dist/components-ui-select-calendar-menu-select-calendar-menu.cjs +2 -0
- package/dist/components-ui-select-calendar-menu-select-calendar-menu.cjs.map +1 -0
- package/dist/components-ui-select-calendar-menu-select-calendar-menu.js +138 -0
- package/dist/components-ui-select-calendar-menu-select-calendar-menu.js.map +1 -0
- package/dist/components-ui-select-calendar-menu.cjs +2 -0
- package/dist/components-ui-select-calendar-menu.cjs.map +1 -0
- package/dist/components-ui-select-calendar-menu.js +5 -0
- package/dist/components-ui-select-calendar-menu.js.map +1 -0
- package/dist/components-ui-select-select.cjs.map +1 -1
- package/dist/components-ui-select-select.js.map +1 -1
- package/dist/components-ui-select-select.styles.cjs +2 -2
- package/dist/components-ui-select-select.styles.cjs.map +1 -1
- package/dist/components-ui-select-select.styles.js +5 -5
- package/dist/components-ui-select-select.styles.js.map +1 -1
- package/dist/components-ui-sonner-sonner.styles.cjs.map +1 -1
- package/dist/components-ui-sonner-sonner.styles.js.map +1 -1
- package/dist/components-ui-textarea-textarea.cjs +1 -1
- package/dist/components-ui-textarea-textarea.cjs.map +1 -1
- package/dist/components-ui-textarea-textarea.js +2 -3
- package/dist/components-ui-textarea-textarea.js.map +1 -1
- package/dist/components-ui-textarea-textarea.styles.cjs +1 -1
- package/dist/components-ui-textarea-textarea.styles.cjs.map +1 -1
- package/dist/components-ui-textarea-textarea.styles.js +1 -1
- package/dist/components-ui-textarea-textarea.styles.js.map +1 -1
- package/dist/components-ui-toggle-group-toggle-group.cjs +2 -0
- package/dist/components-ui-toggle-group-toggle-group.cjs.map +1 -0
- package/dist/components-ui-toggle-group-toggle-group.js +122 -0
- package/dist/components-ui-toggle-group-toggle-group.js.map +1 -0
- package/dist/components-ui-toggle-group-toggle-group.styles.cjs +2 -0
- package/dist/components-ui-toggle-group-toggle-group.styles.cjs.map +1 -0
- package/dist/components-ui-toggle-group-toggle-group.styles.js +81 -0
- package/dist/components-ui-toggle-group-toggle-group.styles.js.map +1 -0
- package/dist/components-ui-toggle-group.cjs +2 -0
- package/dist/components-ui-toggle-group.cjs.map +1 -0
- package/dist/components-ui-toggle-group.js +6 -0
- package/dist/components-ui-toggle-group.js.map +1 -0
- package/dist/components-ui-toggle-toggle.cjs +2 -0
- package/dist/components-ui-toggle-toggle.cjs.map +1 -0
- package/dist/components-ui-toggle-toggle.js +57 -0
- package/dist/components-ui-toggle-toggle.js.map +1 -0
- package/dist/components-ui-toggle-toggle.styles.cjs +7 -0
- package/dist/components-ui-toggle-toggle.styles.cjs.map +1 -0
- package/dist/components-ui-toggle-toggle.styles.js +33 -0
- package/dist/components-ui-toggle-toggle.styles.js.map +1 -0
- package/dist/components-ui-toggle.cjs +2 -0
- package/dist/components-ui-toggle.cjs.map +1 -0
- package/dist/components-ui-toggle.js +7 -0
- package/dist/components-ui-toggle.js.map +1 -0
- package/dist/constants/calendar-locale.d.ts +5 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.js +227 -191
- package/dist/index.js.map +1 -1
- package/package.json +62 -17
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { jsxs as T, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
import { Button as u } from "./components-ui-button-button.js";
|
|
4
|
+
import "./components-ui-button-button.styles.js";
|
|
5
|
+
import { ConfigurableDropdownMenu as $ } from "./components-ui-dropdown-menu-dropdown-menu.js";
|
|
6
|
+
import { Icon as y } from "./components-ui-icon-icon.js";
|
|
7
|
+
import { cn as k } from "./lib-utils.js";
|
|
8
|
+
import { createDataTableActionsColumn as E } from "./components-data-table-data-table-actions-column.js";
|
|
9
|
+
function g(e, o) {
|
|
10
|
+
if (e.hidden)
|
|
11
|
+
return null;
|
|
12
|
+
if (e.type === "separator")
|
|
13
|
+
return {
|
|
14
|
+
id: e.id,
|
|
15
|
+
type: "separator"
|
|
16
|
+
};
|
|
17
|
+
if (e.type === "label")
|
|
18
|
+
return {
|
|
19
|
+
id: e.id,
|
|
20
|
+
type: "label",
|
|
21
|
+
label: e.label
|
|
22
|
+
};
|
|
23
|
+
const c = e.children?.map((i) => g(i, o)).filter((i) => i !== null);
|
|
24
|
+
return {
|
|
25
|
+
id: e.id,
|
|
26
|
+
type: "item",
|
|
27
|
+
label: e.label,
|
|
28
|
+
disabled: e.disabled,
|
|
29
|
+
readOnly: e.readOnly,
|
|
30
|
+
alert: e.alert,
|
|
31
|
+
icon: e.icon,
|
|
32
|
+
iconType: e.iconType,
|
|
33
|
+
shortcut: e.shortcut,
|
|
34
|
+
children: c,
|
|
35
|
+
onSelect: e.onSelect ? () => e.onSelect?.(o) : void 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function K(e = {}) {
|
|
39
|
+
const {
|
|
40
|
+
id: o = "actions",
|
|
41
|
+
header: c,
|
|
42
|
+
align: i = "end",
|
|
43
|
+
editingRowId: x,
|
|
44
|
+
trigger: b,
|
|
45
|
+
actions: d,
|
|
46
|
+
onStartEdit: f,
|
|
47
|
+
onSaveEdit: s,
|
|
48
|
+
onCancelEdit: p,
|
|
49
|
+
onDelete: h,
|
|
50
|
+
labels: r,
|
|
51
|
+
includeDefaultActions: v = !0
|
|
52
|
+
} = e;
|
|
53
|
+
return E({
|
|
54
|
+
id: o,
|
|
55
|
+
header: c,
|
|
56
|
+
renderCell: ({ row: l, data: C }) => {
|
|
57
|
+
const a = { row: l, data: C };
|
|
58
|
+
if (x === l.id && (s || p))
|
|
59
|
+
return /* @__PURE__ */ T(
|
|
60
|
+
"div",
|
|
61
|
+
{
|
|
62
|
+
className: "flex flex-col items-center gap-6",
|
|
63
|
+
onClick: (t) => t.stopPropagation(),
|
|
64
|
+
onKeyDown: (t) => t.stopPropagation(),
|
|
65
|
+
role: "presentation",
|
|
66
|
+
children: [
|
|
67
|
+
s ? /* @__PURE__ */ n(
|
|
68
|
+
u,
|
|
69
|
+
{
|
|
70
|
+
type: "button",
|
|
71
|
+
variant: "circleGhost",
|
|
72
|
+
size: "icon-md",
|
|
73
|
+
"aria-label": r?.saveAriaLabel ?? "Сохранить изменения",
|
|
74
|
+
onClick: () => s(a),
|
|
75
|
+
children: /* @__PURE__ */ n(
|
|
76
|
+
y,
|
|
77
|
+
{
|
|
78
|
+
type: "check-circle",
|
|
79
|
+
className: "text-success-text",
|
|
80
|
+
"aria-hidden": !0
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
) : null,
|
|
85
|
+
p ? /* @__PURE__ */ n(
|
|
86
|
+
u,
|
|
87
|
+
{
|
|
88
|
+
type: "button",
|
|
89
|
+
variant: "circleGhost",
|
|
90
|
+
size: "icon-md",
|
|
91
|
+
"aria-label": r?.cancelAriaLabel ?? "Отменить редактирование",
|
|
92
|
+
onClick: () => p(a),
|
|
93
|
+
children: /* @__PURE__ */ n(
|
|
94
|
+
y,
|
|
95
|
+
{
|
|
96
|
+
type: "x-circle",
|
|
97
|
+
className: "text-error-text",
|
|
98
|
+
"aria-hidden": !0
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
) : null
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
const A = typeof d == "function" ? d(a) : d ?? [], D = [
|
|
107
|
+
...f ? [
|
|
108
|
+
{
|
|
109
|
+
id: `${o}-edit-${l.id}`,
|
|
110
|
+
label: r?.edit ?? "Редактировать",
|
|
111
|
+
onSelect: f,
|
|
112
|
+
iconType: "pencil-simple"
|
|
113
|
+
}
|
|
114
|
+
] : [],
|
|
115
|
+
...h ? [
|
|
116
|
+
{ type: "separator" },
|
|
117
|
+
{
|
|
118
|
+
id: `${o}-delete-${l.id}`,
|
|
119
|
+
label: r?.delete ?? "Удалить",
|
|
120
|
+
iconType: "trash",
|
|
121
|
+
alert: !0,
|
|
122
|
+
onSelect: h
|
|
123
|
+
}
|
|
124
|
+
] : []
|
|
125
|
+
], m = [
|
|
126
|
+
...A,
|
|
127
|
+
...v ? D : []
|
|
128
|
+
].map((t) => g(t, a)).filter((t) => t !== null), S = b ? b(a) : /* @__PURE__ */ n(
|
|
129
|
+
u,
|
|
130
|
+
{
|
|
131
|
+
type: "button",
|
|
132
|
+
variant: "circleGhost",
|
|
133
|
+
size: "icon-xs",
|
|
134
|
+
"aria-label": "Открыть действия строки",
|
|
135
|
+
children: /* @__PURE__ */ n(
|
|
136
|
+
y,
|
|
137
|
+
{
|
|
138
|
+
type: "dots-three",
|
|
139
|
+
"aria-hidden": !0
|
|
140
|
+
}
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
return /* @__PURE__ */ n(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
className: k("flex justify-end"),
|
|
148
|
+
onClick: (t) => t.stopPropagation(),
|
|
149
|
+
onKeyDown: (t) => t.stopPropagation(),
|
|
150
|
+
role: "presentation",
|
|
151
|
+
children: /* @__PURE__ */ n(
|
|
152
|
+
$,
|
|
153
|
+
{
|
|
154
|
+
trigger: S,
|
|
155
|
+
items: m.length > 0 ? m : [
|
|
156
|
+
{
|
|
157
|
+
id: `${o}-empty-${l.id}`,
|
|
158
|
+
type: "item",
|
|
159
|
+
label: r?.empty ?? "Нет действий",
|
|
160
|
+
readOnly: !0
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
contentProps: { align: i }
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
export {
|
|
172
|
+
K as createDataTableRowActionsColumn
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=components-data-table-data-table-row-actions-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table-row-actions-column.js","sources":["../src/components/data-table/data-table-row-actions-column.tsx"],"sourcesContent":["import type { ColumnDef, Row } from \"@tanstack/react-table\";\nimport type { IconName } from \"phosphor-strokes-icons/by-name\";\nimport * as React from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n ConfigurableDropdownMenu,\n type DropdownMenuConfigNode,\n} from \"@/components/ui/dropdown-menu\";\nimport { Icon } from \"@/components/ui/icon\";\nimport { cn } from \"@/lib/utils\";\n\nimport { createDataTableActionsColumn } from \"./data-table-actions-column\";\n\ntype DataTableRowActionContext<TData> = {\n row: Row<TData>;\n data: TData;\n};\n\ntype DataTableRowActionBase = {\n hidden?: boolean;\n id?: string;\n};\n\ntype DataTableRowActionLabel = DataTableRowActionBase & {\n label: string;\n type: \"label\";\n};\n\ntype DataTableRowActionSeparator = DataTableRowActionBase & {\n type: \"separator\";\n};\n\ntype DataTableRowActionItem<TData> = DataTableRowActionBase & {\n type?: \"item\";\n label: string;\n icon?: React.ReactNode;\n iconType?: IconName;\n shortcut?: string;\n disabled?: boolean;\n readOnly?: boolean;\n alert?: boolean;\n children?: DataTableRowActionNode<TData>[];\n onSelect?: (ctx: DataTableRowActionContext<TData>) => void;\n};\n\ntype DataTableRowActionNode<TData> =\n | DataTableRowActionItem<TData>\n | DataTableRowActionLabel\n | DataTableRowActionSeparator;\n\ntype DataTableRowActionsColumnOptions<TData> = {\n id?: string;\n header?: ColumnDef<TData>[\"header\"];\n align?: \"start\" | \"center\" | \"end\";\n editingRowId?: string | null;\n trigger?: (ctx: DataTableRowActionContext<TData>) => React.ReactNode;\n actions?:\n | DataTableRowActionNode<TData>[]\n | ((ctx: DataTableRowActionContext<TData>) => DataTableRowActionNode<TData>[]);\n onStartEdit?: (ctx: DataTableRowActionContext<TData>) => void;\n onSaveEdit?: (ctx: DataTableRowActionContext<TData>) => void;\n onCancelEdit?: (ctx: DataTableRowActionContext<TData>) => void;\n onDelete?: (ctx: DataTableRowActionContext<TData>) => void;\n includeDefaultActions?: boolean;\n labels?: {\n cancelAriaLabel?: string;\n delete?: string;\n edit?: string;\n empty?: string;\n saveAriaLabel?: string;\n };\n};\n\nfunction mapRowActionNode<TData>(\n item: DataTableRowActionNode<TData>,\n ctx: DataTableRowActionContext<TData>,\n): DropdownMenuConfigNode | null {\n if (item.hidden) {\n return null;\n }\n\n if (item.type === \"separator\") {\n return {\n id: item.id,\n type: \"separator\",\n };\n }\n\n if (item.type === \"label\") {\n return {\n id: item.id,\n type: \"label\",\n label: item.label,\n };\n }\n\n const children = item.children\n ?.map((child) => mapRowActionNode(child, ctx))\n .filter((child): child is DropdownMenuConfigNode => child !== null);\n\n return {\n id: item.id,\n type: \"item\",\n label: item.label,\n disabled: item.disabled,\n readOnly: item.readOnly,\n alert: item.alert,\n icon: item.icon,\n iconType: item.iconType,\n shortcut: item.shortcut,\n children,\n onSelect: item.onSelect ? () => item.onSelect?.(ctx) : undefined,\n };\n}\n\nexport function createDataTableRowActionsColumn<TData>(\n options: DataTableRowActionsColumnOptions<TData> = {},\n): ColumnDef<TData> {\n const {\n id = \"actions\",\n header,\n align = \"end\",\n editingRowId,\n trigger,\n actions,\n onStartEdit,\n onSaveEdit,\n onCancelEdit,\n onDelete,\n labels,\n includeDefaultActions = true,\n } = options;\n\n return createDataTableActionsColumn<TData>({\n id,\n header,\n renderCell: ({ row, data }) => {\n const ctx = { row, data };\n const isEditingRow = editingRowId === row.id;\n\n if (isEditingRow && (onSaveEdit || onCancelEdit)) {\n return (\n <div\n className=\"flex flex-col items-center gap-6\"\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"presentation\"\n >\n {onSaveEdit ? (\n <Button\n type=\"button\"\n variant=\"circleGhost\"\n size=\"icon-md\"\n aria-label={labels?.saveAriaLabel ?? \"Сохранить изменения\"}\n onClick={() => onSaveEdit(ctx)}\n >\n <Icon\n type=\"check-circle\"\n className=\"text-success-text\"\n aria-hidden\n />\n </Button>\n ) : null}\n {onCancelEdit ? (\n <Button\n type=\"button\"\n variant=\"circleGhost\"\n size=\"icon-md\"\n aria-label={labels?.cancelAriaLabel ?? \"Отменить редактирование\"}\n onClick={() => onCancelEdit(ctx)}\n >\n <Icon\n type=\"x-circle\"\n className=\"text-error-text\"\n aria-hidden\n />\n </Button>\n ) : null}\n </div>\n );\n }\n\n const resolvedActions =\n typeof actions === \"function\" ? actions(ctx) : (actions ?? []);\n const defaultActions: DataTableRowActionNode<TData>[] = [\n ...(onStartEdit\n ? [\n {\n id: `${id}-edit-${row.id}`,\n label: labels?.edit ?? \"Редактировать\",\n onSelect: onStartEdit,\n iconType: \"pencil-simple\",\n } satisfies DataTableRowActionItem<TData>,\n ]\n : []),\n ...(onDelete\n ? [\n { type: \"separator\" } satisfies DataTableRowActionSeparator,\n {\n id: `${id}-delete-${row.id}`,\n label: labels?.delete ?? \"Удалить\",\n iconType: \"trash\",\n alert: true,\n onSelect: onDelete,\n } satisfies DataTableRowActionItem<TData>,\n ]\n : []),\n ];\n\n const menuItems = [\n ...resolvedActions,\n ...(includeDefaultActions ? defaultActions : []),\n ]\n .map((item) => mapRowActionNode(item, ctx))\n .filter((item): item is DropdownMenuConfigNode => item !== null);\n\n const resolvedTrigger = trigger ? (\n trigger(ctx)\n ) : (\n <Button\n type=\"button\"\n variant=\"circleGhost\"\n size=\"icon-xs\"\n aria-label=\"Открыть действия строки\"\n >\n <Icon\n type=\"dots-three\"\n aria-hidden\n />\n </Button>\n );\n\n return (\n <div\n className={cn(\"flex justify-end\")}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"presentation\"\n >\n <ConfigurableDropdownMenu\n trigger={resolvedTrigger}\n items={\n menuItems.length > 0\n ? menuItems\n : [\n {\n id: `${id}-empty-${row.id}`,\n type: \"item\",\n label: labels?.empty ?? \"Нет действий\",\n readOnly: true,\n },\n ]\n }\n contentProps={{ align }}\n />\n </div>\n );\n },\n });\n}\n\nexport type {\n DataTableRowActionContext,\n DataTableRowActionItem,\n DataTableRowActionLabel,\n DataTableRowActionNode,\n DataTableRowActionSeparator,\n DataTableRowActionsColumnOptions,\n};\n"],"names":["mapRowActionNode","item","ctx","children","child","createDataTableRowActionsColumn","options","id","header","align","editingRowId","trigger","actions","onStartEdit","onSaveEdit","onCancelEdit","onDelete","labels","includeDefaultActions","createDataTableActionsColumn","row","data","jsxs","event","jsx","Button","Icon","resolvedActions","defaultActions","menuItems","resolvedTrigger","cn","ConfigurableDropdownMenu"],"mappings":";;;;;;;;AA0EA,SAASA,EACPC,GACAC,GAC+B;AAC/B,MAAID,EAAK;AACP,WAAO;AAGT,MAAIA,EAAK,SAAS;AAChB,WAAO;AAAA,MACL,IAAIA,EAAK;AAAA,MACT,MAAM;AAAA,IAAA;AAIV,MAAIA,EAAK,SAAS;AAChB,WAAO;AAAA,MACL,IAAIA,EAAK;AAAA,MACT,MAAM;AAAA,MACN,OAAOA,EAAK;AAAA,IAAA;AAIhB,QAAME,IAAWF,EAAK,UAClB,IAAI,CAACG,MAAUJ,EAAiBI,GAAOF,CAAG,CAAC,EAC5C,OAAO,CAACE,MAA2CA,MAAU,IAAI;AAEpE,SAAO;AAAA,IACL,IAAIH,EAAK;AAAA,IACT,MAAM;AAAA,IACN,OAAOA,EAAK;AAAA,IACZ,UAAUA,EAAK;AAAA,IACf,UAAUA,EAAK;AAAA,IACf,OAAOA,EAAK;AAAA,IACZ,MAAMA,EAAK;AAAA,IACX,UAAUA,EAAK;AAAA,IACf,UAAUA,EAAK;AAAA,IACf,UAAAE;AAAA,IACA,UAAUF,EAAK,WAAW,MAAMA,EAAK,WAAWC,CAAG,IAAI;AAAA,EAAA;AAE3D;AAEO,SAASG,EACdC,IAAmD,IACjC;AAClB,QAAM;AAAA,IACJ,IAAAC,IAAK;AAAA,IACL,QAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,uBAAAC,IAAwB;AAAA,EAAA,IACtBZ;AAEJ,SAAOa,EAAoC;AAAA,IACzC,IAAAZ;AAAA,IACA,QAAAC;AAAA,IACA,YAAY,CAAC,EAAE,KAAAY,GAAK,MAAAC,QAAW;AAC7B,YAAMnB,IAAM,EAAE,KAAAkB,GAAK,MAAAC,EAAA;AAGnB,UAFqBX,MAAiBU,EAAI,OAErBN,KAAcC;AACjC,eACE,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS,CAACC,MAAUA,EAAM,gBAAA;AAAA,YAC1B,WAAW,CAACA,MAAUA,EAAM,gBAAA;AAAA,YAC5B,MAAK;AAAA,YAEJ,UAAA;AAAA,cAAAT,IACC,gBAAAU;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,MAAK;AAAA,kBACL,cAAYR,GAAQ,iBAAiB;AAAA,kBACrC,SAAS,MAAMH,EAAWZ,CAAG;AAAA,kBAE7B,UAAA,gBAAAsB;AAAA,oBAACE;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,WAAU;AAAA,sBACV,eAAW;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACb;AAAA,cAAA,IAEA;AAAA,cACHX,IACC,gBAAAS;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,MAAK;AAAA,kBACL,cAAYR,GAAQ,mBAAmB;AAAA,kBACvC,SAAS,MAAMF,EAAab,CAAG;AAAA,kBAE/B,UAAA,gBAAAsB;AAAA,oBAACE;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,WAAU;AAAA,sBACV,eAAW;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACb;AAAA,cAAA,IAEA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAKV,YAAMC,IACJ,OAAOf,KAAY,aAAaA,EAAQV,CAAG,IAAKU,KAAW,CAAA,GACvDgB,IAAkD;AAAA,QACtD,GAAIf,IACA;AAAA,UACE;AAAA,YACE,IAAI,GAAGN,CAAE,SAASa,EAAI,EAAE;AAAA,YACxB,OAAOH,GAAQ,QAAQ;AAAA,YACvB,UAAUJ;AAAA,YACV,UAAU;AAAA,UAAA;AAAA,QACZ,IAEF,CAAA;AAAA,QACJ,GAAIG,IACA;AAAA,UACE,EAAE,MAAM,YAAA;AAAA,UACR;AAAA,YACE,IAAI,GAAGT,CAAE,WAAWa,EAAI,EAAE;AAAA,YAC1B,OAAOH,GAAQ,UAAU;AAAA,YACzB,UAAU;AAAA,YACV,OAAO;AAAA,YACP,UAAUD;AAAA,UAAA;AAAA,QACZ,IAEF,CAAA;AAAA,MAAC,GAGDa,IAAY;AAAA,QAChB,GAAGF;AAAA,QACH,GAAIT,IAAwBU,IAAiB,CAAA;AAAA,MAAC,EAE7C,IAAI,CAAC3B,MAASD,EAAiBC,GAAMC,CAAG,CAAC,EACzC,OAAO,CAACD,MAAyCA,MAAS,IAAI,GAE3D6B,IAAkBnB,IACtBA,EAAQT,CAAG,IAEX,gBAAAsB;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,cAAW;AAAA,UAEX,UAAA,gBAAAD;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,eAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QACb;AAAA,MAAA;AAIJ,aACE,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWO,EAAG,kBAAkB;AAAA,UAChC,SAAS,CAACR,MAAUA,EAAM,gBAAA;AAAA,UAC1B,WAAW,CAACA,MAAUA,EAAM,gBAAA;AAAA,UAC5B,MAAK;AAAA,UAEL,UAAA,gBAAAC;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,SAASF;AAAA,cACT,OACED,EAAU,SAAS,IACfA,IACA;AAAA,gBACE;AAAA,kBACE,IAAI,GAAGtB,CAAE,UAAUa,EAAI,EAAE;AAAA,kBACzB,MAAM;AAAA,kBACN,OAAOH,GAAQ,SAAS;AAAA,kBACxB,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,cAGR,cAAc,EAAE,OAAAR,EAAA;AAAA,YAAM;AAAA,UAAA;AAAA,QACxB;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),a=require("./components-ui-checkbox-checkbox.cjs");function c(){return{id:"select",header:({table:e})=>l.jsx(a.Checkbox,{checked:e.getIsAllPageRowsSelected()?!0:e.getIsSomePageRowsSelected()?"indeterminate":!1,onCheckedChange:t=>e.toggleAllPageRowsSelected(t===!0),"aria-label":"Выбрать все на странице"}),cell:({row:e})=>l.jsx("div",{className:"flex items-center",onClick:t=>t.stopPropagation(),onKeyDown:t=>t.stopPropagation(),role:"presentation",children:l.jsx(a.Checkbox,{checked:e.getIsSelected(),disabled:!e.getCanSelect(),onCheckedChange:t=>e.toggleSelected(t===!0),"aria-label":"Выбрать строку"})}),meta:{label:"Выбор строки",headClassName:"w-13 text-center",cellClassName:"w-13 text-center"},enableSorting:!1,enableHiding:!1}}exports.createDataTableSelectColumn=c;
|
|
2
|
+
//# sourceMappingURL=components-data-table-data-table-select-column.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table-select-column.cjs","sources":["../src/components/data-table/data-table-select-column.tsx"],"sourcesContent":["import type { ColumnDef } from \"@tanstack/react-table\";\n\nimport { Checkbox } from \"@/components/ui/checkbox\";\n\nexport function createDataTableSelectColumn<TData>(): ColumnDef<TData> {\n return {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected()\n ? true\n : table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(value === true)}\n aria-label=\"Выбрать все на странице\"\n />\n ),\n cell: ({ row }) => (\n <div\n className=\"flex items-center\"\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n role=\"presentation\"\n >\n <Checkbox\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onCheckedChange={(value) => row.toggleSelected(value === true)}\n aria-label=\"Выбрать строку\"\n />\n </div>\n ),\n meta: {\n label: \"Выбор строки\",\n headClassName: \"w-13 text-center\",\n cellClassName: \"w-13 text-center\",\n },\n enableSorting: false,\n enableHiding: false,\n };\n}\n"],"names":["createDataTableSelectColumn","table","jsx","Checkbox","value","row","e"],"mappings":"wKAIO,SAASA,GAAuD,CACrE,MAAO,CACL,GAAI,SACJ,OAAQ,CAAC,CAAE,MAAAC,CAAA,IACTC,EAAAA,IAACC,EAAAA,SAAA,CACC,QACEF,EAAM,2BACF,GACAA,EAAM,0BAAA,EACJ,gBACA,GAER,gBAAkBG,GAAUH,EAAM,0BAA0BG,IAAU,EAAI,EAC1E,aAAW,yBAAA,CAAA,EAGf,KAAM,CAAC,CAAE,IAAAC,CAAA,IACPH,EAAAA,IAAC,MAAA,CACC,UAAU,oBACV,QAAUI,GAAMA,EAAE,gBAAA,EAClB,UAAYA,GAAMA,EAAE,gBAAA,EACpB,KAAK,eAEL,SAAAJ,EAAAA,IAACC,EAAAA,SAAA,CACC,QAASE,EAAI,cAAA,EACb,SAAU,CAACA,EAAI,aAAA,EACf,gBAAkBD,GAAUC,EAAI,eAAeD,IAAU,EAAI,EAC7D,aAAW,gBAAA,CAAA,CACb,CAAA,EAGJ,KAAM,CACJ,MAAO,eACP,cAAe,mBACf,cAAe,kBAAA,EAEjB,cAAe,GACf,aAAc,EAAA,CAElB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { Checkbox as a } from "./components-ui-checkbox-checkbox.js";
|
|
3
|
+
function c() {
|
|
4
|
+
return {
|
|
5
|
+
id: "select",
|
|
6
|
+
header: ({ table: e }) => /* @__PURE__ */ l(
|
|
7
|
+
a,
|
|
8
|
+
{
|
|
9
|
+
checked: e.getIsAllPageRowsSelected() ? !0 : e.getIsSomePageRowsSelected() ? "indeterminate" : !1,
|
|
10
|
+
onCheckedChange: (t) => e.toggleAllPageRowsSelected(t === !0),
|
|
11
|
+
"aria-label": "Выбрать все на странице"
|
|
12
|
+
}
|
|
13
|
+
),
|
|
14
|
+
cell: ({ row: e }) => /* @__PURE__ */ l(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
className: "flex items-center",
|
|
18
|
+
onClick: (t) => t.stopPropagation(),
|
|
19
|
+
onKeyDown: (t) => t.stopPropagation(),
|
|
20
|
+
role: "presentation",
|
|
21
|
+
children: /* @__PURE__ */ l(
|
|
22
|
+
a,
|
|
23
|
+
{
|
|
24
|
+
checked: e.getIsSelected(),
|
|
25
|
+
disabled: !e.getCanSelect(),
|
|
26
|
+
onCheckedChange: (t) => e.toggleSelected(t === !0),
|
|
27
|
+
"aria-label": "Выбрать строку"
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
),
|
|
32
|
+
meta: {
|
|
33
|
+
label: "Выбор строки",
|
|
34
|
+
headClassName: "w-13 text-center",
|
|
35
|
+
cellClassName: "w-13 text-center"
|
|
36
|
+
},
|
|
37
|
+
enableSorting: !1,
|
|
38
|
+
enableHiding: !1
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
c as createDataTableSelectColumn
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=components-data-table-data-table-select-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table-select-column.js","sources":["../src/components/data-table/data-table-select-column.tsx"],"sourcesContent":["import type { ColumnDef } from \"@tanstack/react-table\";\n\nimport { Checkbox } from \"@/components/ui/checkbox\";\n\nexport function createDataTableSelectColumn<TData>(): ColumnDef<TData> {\n return {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected()\n ? true\n : table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(value === true)}\n aria-label=\"Выбрать все на странице\"\n />\n ),\n cell: ({ row }) => (\n <div\n className=\"flex items-center\"\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n role=\"presentation\"\n >\n <Checkbox\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onCheckedChange={(value) => row.toggleSelected(value === true)}\n aria-label=\"Выбрать строку\"\n />\n </div>\n ),\n meta: {\n label: \"Выбор строки\",\n headClassName: \"w-13 text-center\",\n cellClassName: \"w-13 text-center\",\n },\n enableSorting: false,\n enableHiding: false,\n };\n}\n"],"names":["createDataTableSelectColumn","table","jsx","Checkbox","value","row","e"],"mappings":";;AAIO,SAASA,IAAuD;AACrE,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ,CAAC,EAAE,OAAAC,EAAA,MACT,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SACEF,EAAM,6BACF,KACAA,EAAM,0BAAA,IACJ,kBACA;AAAA,QAER,iBAAiB,CAACG,MAAUH,EAAM,0BAA0BG,MAAU,EAAI;AAAA,QAC1E,cAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAGf,MAAM,CAAC,EAAE,KAAAC,EAAA,MACP,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,CAACI,MAAMA,EAAE,gBAAA;AAAA,QAClB,WAAW,CAACA,MAAMA,EAAE,gBAAA;AAAA,QACpB,MAAK;AAAA,QAEL,UAAA,gBAAAJ;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAASE,EAAI,cAAA;AAAA,YACb,UAAU,CAACA,EAAI,aAAA;AAAA,YACf,iBAAiB,CAACD,MAAUC,EAAI,eAAeD,MAAU,EAAI;AAAA,YAC7D,cAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MACb;AAAA,IAAA;AAAA,IAGJ,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,eAAe;AAAA,MACf,eAAe;AAAA,IAAA;AAAA,IAEjB,eAAe;AAAA,IACf,cAAc;AAAA,EAAA;AAElB;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),C=require("./components-basic-table-basic-table.cjs"),e=require("./lib-utils.cjs"),l=require("./components-data-table-data-table.styles.cjs");function o({className:a,...s}){return t.jsx(C.BasicTable,{...s,className:{...a,className:e.cn(l.dataTableContainerClassName,a?.className),tableClassName:e.cn(l.dataTableTableClassName,a?.tableClassName),headRowClassName:e.cn(l.dataTableHeadRowClassName,a?.headRowClassName),bodyRowClassName:e.cn(l.dataTableBodyRowClassName,a?.bodyRowClassName),editingRowClassName:e.cn(l.dataTableEditingRowClassName,a?.editingRowClassName),emptyRowClassName:e.cn(l.dataTableBodyRowClassName,a?.emptyRowClassName),headCellClassName:e.cn(l.dataTableHeadCellClassName,a?.headCellClassName),cellClassName:e.cn(l.dataTableCellClassName,a?.cellClassName),emptyCellClassName:e.cn(l.dataTableEmptyCellClassName,a?.emptyCellClassName)}})}exports.DataTable=o;
|
|
2
|
+
//# sourceMappingURL=components-data-table-data-table.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table.cjs","sources":["../src/components/data-table/data-table.tsx"],"sourcesContent":["import { BasicTable, type DataTableProps } from \"@/components/basic-table\";\nimport { cn } from \"@/lib/utils\";\n\nimport {\n dataTableBodyRowClassName,\n dataTableCellClassName,\n dataTableContainerClassName,\n dataTableEditingRowClassName,\n dataTableEmptyCellClassName,\n dataTableHeadCellClassName,\n dataTableHeadRowClassName,\n dataTableTableClassName,\n} from \"./data-table.styles\";\n\nexport function DataTable<TData, TValue>({\n className,\n ...props\n}: DataTableProps<TData, TValue>) {\n return (\n <BasicTable\n {...props}\n className={{\n ...className,\n className: cn(dataTableContainerClassName, className?.className),\n tableClassName: cn(dataTableTableClassName, className?.tableClassName),\n headRowClassName: cn(dataTableHeadRowClassName, className?.headRowClassName),\n bodyRowClassName: cn(dataTableBodyRowClassName, className?.bodyRowClassName),\n editingRowClassName: cn(\n dataTableEditingRowClassName,\n className?.editingRowClassName,\n ),\n emptyRowClassName: cn(dataTableBodyRowClassName, className?.emptyRowClassName),\n headCellClassName: cn(dataTableHeadCellClassName, className?.headCellClassName),\n cellClassName: cn(dataTableCellClassName, className?.cellClassName),\n emptyCellClassName: cn(\n dataTableEmptyCellClassName,\n className?.emptyCellClassName,\n ),\n }}\n />\n );\n}\n"],"names":["DataTable","className","props","jsx","BasicTable","cn","dataTableContainerClassName","dataTableTableClassName","dataTableHeadRowClassName","dataTableBodyRowClassName","dataTableEditingRowClassName","dataTableHeadCellClassName","dataTableCellClassName","dataTableEmptyCellClassName"],"mappings":"mQAcO,SAASA,EAAyB,CACvC,UAAAC,EACA,GAAGC,CACL,EAAkC,CAChC,OACEC,EAAAA,IAACC,EAAAA,WAAA,CACE,GAAGF,EACJ,UAAW,CACT,GAAGD,EACH,UAAWI,EAAAA,GAAGC,8BAA6BL,GAAW,SAAS,EAC/D,eAAgBI,EAAAA,GAAGE,0BAAyBN,GAAW,cAAc,EACrE,iBAAkBI,EAAAA,GAAGG,4BAA2BP,GAAW,gBAAgB,EAC3E,iBAAkBI,EAAAA,GAAGI,4BAA2BR,GAAW,gBAAgB,EAC3E,oBAAqBI,EAAAA,GACnBK,EAAAA,6BACAT,GAAW,mBAAA,EAEb,kBAAmBI,EAAAA,GAAGI,4BAA2BR,GAAW,iBAAiB,EAC7E,kBAAmBI,EAAAA,GAAGM,6BAA4BV,GAAW,iBAAiB,EAC9E,cAAeI,EAAAA,GAAGO,yBAAwBX,GAAW,aAAa,EAClE,mBAAoBI,EAAAA,GAClBQ,EAAAA,4BACAZ,GAAW,kBAAA,CACb,CACF,CAAA,CAGN"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as C } from "react/jsx-runtime";
|
|
2
|
+
import { BasicTable as m } from "./components-basic-table-basic-table.js";
|
|
3
|
+
import { cn as e } from "./lib-utils.js";
|
|
4
|
+
import { dataTableEmptyCellClassName as t, dataTableCellClassName as o, dataTableHeadCellClassName as d, dataTableBodyRowClassName as l, dataTableEditingRowClassName as N, dataTableHeadRowClassName as b, dataTableTableClassName as i, dataTableContainerClassName as r } from "./components-data-table-data-table.styles.js";
|
|
5
|
+
function n({
|
|
6
|
+
className: a,
|
|
7
|
+
...s
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ C(
|
|
10
|
+
m,
|
|
11
|
+
{
|
|
12
|
+
...s,
|
|
13
|
+
className: {
|
|
14
|
+
...a,
|
|
15
|
+
className: e(r, a?.className),
|
|
16
|
+
tableClassName: e(i, a?.tableClassName),
|
|
17
|
+
headRowClassName: e(b, a?.headRowClassName),
|
|
18
|
+
bodyRowClassName: e(l, a?.bodyRowClassName),
|
|
19
|
+
editingRowClassName: e(
|
|
20
|
+
N,
|
|
21
|
+
a?.editingRowClassName
|
|
22
|
+
),
|
|
23
|
+
emptyRowClassName: e(l, a?.emptyRowClassName),
|
|
24
|
+
headCellClassName: e(d, a?.headCellClassName),
|
|
25
|
+
cellClassName: e(o, a?.cellClassName),
|
|
26
|
+
emptyCellClassName: e(
|
|
27
|
+
t,
|
|
28
|
+
a?.emptyCellClassName
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
n as DataTable
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=components-data-table-data-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table.js","sources":["../src/components/data-table/data-table.tsx"],"sourcesContent":["import { BasicTable, type DataTableProps } from \"@/components/basic-table\";\nimport { cn } from \"@/lib/utils\";\n\nimport {\n dataTableBodyRowClassName,\n dataTableCellClassName,\n dataTableContainerClassName,\n dataTableEditingRowClassName,\n dataTableEmptyCellClassName,\n dataTableHeadCellClassName,\n dataTableHeadRowClassName,\n dataTableTableClassName,\n} from \"./data-table.styles\";\n\nexport function DataTable<TData, TValue>({\n className,\n ...props\n}: DataTableProps<TData, TValue>) {\n return (\n <BasicTable\n {...props}\n className={{\n ...className,\n className: cn(dataTableContainerClassName, className?.className),\n tableClassName: cn(dataTableTableClassName, className?.tableClassName),\n headRowClassName: cn(dataTableHeadRowClassName, className?.headRowClassName),\n bodyRowClassName: cn(dataTableBodyRowClassName, className?.bodyRowClassName),\n editingRowClassName: cn(\n dataTableEditingRowClassName,\n className?.editingRowClassName,\n ),\n emptyRowClassName: cn(dataTableBodyRowClassName, className?.emptyRowClassName),\n headCellClassName: cn(dataTableHeadCellClassName, className?.headCellClassName),\n cellClassName: cn(dataTableCellClassName, className?.cellClassName),\n emptyCellClassName: cn(\n dataTableEmptyCellClassName,\n className?.emptyCellClassName,\n ),\n }}\n />\n );\n}\n"],"names":["DataTable","className","props","jsx","BasicTable","cn","dataTableContainerClassName","dataTableTableClassName","dataTableHeadRowClassName","dataTableBodyRowClassName","dataTableEditingRowClassName","dataTableHeadCellClassName","dataTableCellClassName","dataTableEmptyCellClassName"],"mappings":";;;;AAcO,SAASA,EAAyB;AAAA,EACvC,WAAAC;AAAA,EACA,GAAGC;AACL,GAAkC;AAChC,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,WAAW;AAAA,QACT,GAAGD;AAAA,QACH,WAAWI,EAAGC,GAA6BL,GAAW,SAAS;AAAA,QAC/D,gBAAgBI,EAAGE,GAAyBN,GAAW,cAAc;AAAA,QACrE,kBAAkBI,EAAGG,GAA2BP,GAAW,gBAAgB;AAAA,QAC3E,kBAAkBI,EAAGI,GAA2BR,GAAW,gBAAgB;AAAA,QAC3E,qBAAqBI;AAAA,UACnBK;AAAA,UACAT,GAAW;AAAA,QAAA;AAAA,QAEb,mBAAmBI,EAAGI,GAA2BR,GAAW,iBAAiB;AAAA,QAC7E,mBAAmBI,EAAGM,GAA4BV,GAAW,iBAAiB;AAAA,QAC9E,eAAeI,EAAGO,GAAwBX,GAAW,aAAa;AAAA,QAClE,oBAAoBI;AAAA,UAClBQ;AAAA,UACAZ,GAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./components-ui-typography-typography.styles.cjs"),e=require("./lib-utils.cjs"),t="w-full overflow-hidden rounded-xl border border-delicate-border bg-primary-bg",l="w-full",s="h-13 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent",r="h-15 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent",o="h-[7.5rem]",d=e.cn(`text-primary-text h-13 px-4 py-2 text-left align-middle [&:has([role=checkbox])]:pr-4
|
|
2
|
+
*:[[role=checkbox]]:translate-y-0`,a.getTypographyClassName("body-sm-medium")),b=e.cn(`text-primary-text px-4 py-2 align-middle [&:has([role=checkbox])]:pr-4
|
|
3
|
+
*:[[role=checkbox]]:translate-y-0`,a.getTypographyClassName("body-sm-regular")),n="h-24 text-center";exports.dataTableBodyRowClassName=r;exports.dataTableCellClassName=b;exports.dataTableContainerClassName=t;exports.dataTableEditingRowClassName=o;exports.dataTableEmptyCellClassName=n;exports.dataTableHeadCellClassName=d;exports.dataTableHeadRowClassName=s;exports.dataTableTableClassName=l;
|
|
4
|
+
//# sourceMappingURL=components-data-table-data-table.styles.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table.styles.cjs","sources":["../src/components/data-table/data-table.styles.ts"],"sourcesContent":["import { getTypographyClassName } from \"@/components/ui/typography/typography.styles\";\nimport { cn } from \"@/lib/utils\";\n\nexport const dataTableContainerClassName =\n \"w-full overflow-hidden rounded-xl border border-delicate-border bg-primary-bg\";\nexport const dataTableTableClassName = \"w-full\";\nexport const dataTableHeadRowClassName =\n \"h-13 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent\";\nexport const dataTableBodyRowClassName =\n \"h-15 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent\";\nexport const dataTableEditingRowClassName = \"h-[7.5rem]\";\nexport const dataTableHeadCellClassName = cn(\n `text-primary-text h-13 px-4 py-2 text-left align-middle [&:has([role=checkbox])]:pr-4\n *:[[role=checkbox]]:translate-y-0`,\n getTypographyClassName(\"body-sm-medium\"),\n);\nexport const dataTableCellClassName = cn(\n `text-primary-text px-4 py-2 align-middle [&:has([role=checkbox])]:pr-4\n *:[[role=checkbox]]:translate-y-0`,\n getTypographyClassName(\"body-sm-regular\"),\n);\nexport const dataTableEmptyCellClassName = \"h-24 text-center\";\n"],"names":["dataTableContainerClassName","dataTableTableClassName","dataTableHeadRowClassName","dataTableBodyRowClassName","dataTableEditingRowClassName","dataTableHeadCellClassName","cn","getTypographyClassName","dataTableCellClassName","dataTableEmptyCellClassName"],"mappings":"iLAGaA,EACX,gFACWC,EAA0B,SAC1BC,EACX,wFACWC,EACX,wFACWC,EAA+B,aAC/BC,EAA6BC,EAAAA,GACxC;AAAA,qCAEAC,EAAAA,uBAAuB,gBAAgB,CACzC,EACaC,EAAyBF,EAAAA,GACpC;AAAA,qCAEAC,EAAAA,uBAAuB,iBAAiB,CAC1C,EACaE,EAA8B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { getTypographyClassName as e } from "./components-ui-typography-typography.styles.js";
|
|
2
|
+
import { cn as a } from "./lib-utils.js";
|
|
3
|
+
const l = "w-full overflow-hidden rounded-xl border border-delicate-border bg-primary-bg", o = "w-full", s = "h-13 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent", d = "h-15 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent", b = "h-[7.5rem]", n = a(
|
|
4
|
+
`text-primary-text h-13 px-4 py-2 text-left align-middle [&:has([role=checkbox])]:pr-4
|
|
5
|
+
*:[[role=checkbox]]:translate-y-0`,
|
|
6
|
+
e("body-sm-medium")
|
|
7
|
+
), m = a(
|
|
8
|
+
`text-primary-text px-4 py-2 align-middle [&:has([role=checkbox])]:pr-4
|
|
9
|
+
*:[[role=checkbox]]:translate-y-0`,
|
|
10
|
+
e("body-sm-regular")
|
|
11
|
+
), c = "h-24 text-center";
|
|
12
|
+
export {
|
|
13
|
+
d as dataTableBodyRowClassName,
|
|
14
|
+
m as dataTableCellClassName,
|
|
15
|
+
l as dataTableContainerClassName,
|
|
16
|
+
b as dataTableEditingRowClassName,
|
|
17
|
+
c as dataTableEmptyCellClassName,
|
|
18
|
+
n as dataTableHeadCellClassName,
|
|
19
|
+
s as dataTableHeadRowClassName,
|
|
20
|
+
o as dataTableTableClassName
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=components-data-table-data-table.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-data-table.styles.js","sources":["../src/components/data-table/data-table.styles.ts"],"sourcesContent":["import { getTypographyClassName } from \"@/components/ui/typography/typography.styles\";\nimport { cn } from \"@/lib/utils\";\n\nexport const dataTableContainerClassName =\n \"w-full overflow-hidden rounded-xl border border-delicate-border bg-primary-bg\";\nexport const dataTableTableClassName = \"w-full\";\nexport const dataTableHeadRowClassName =\n \"h-13 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent\";\nexport const dataTableBodyRowClassName =\n \"h-15 border-delicate-border hover:bg-transparent data-[state=selected]:bg-transparent\";\nexport const dataTableEditingRowClassName = \"h-[7.5rem]\";\nexport const dataTableHeadCellClassName = cn(\n `text-primary-text h-13 px-4 py-2 text-left align-middle [&:has([role=checkbox])]:pr-4\n *:[[role=checkbox]]:translate-y-0`,\n getTypographyClassName(\"body-sm-medium\"),\n);\nexport const dataTableCellClassName = cn(\n `text-primary-text px-4 py-2 align-middle [&:has([role=checkbox])]:pr-4\n *:[[role=checkbox]]:translate-y-0`,\n getTypographyClassName(\"body-sm-regular\"),\n);\nexport const dataTableEmptyCellClassName = \"h-24 text-center\";\n"],"names":["dataTableContainerClassName","dataTableTableClassName","dataTableHeadRowClassName","dataTableBodyRowClassName","dataTableEditingRowClassName","dataTableHeadCellClassName","cn","getTypographyClassName","dataTableCellClassName","dataTableEmptyCellClassName"],"mappings":";;AAGO,MAAMA,IACX,iFACWC,IAA0B,UAC1BC,IACX,yFACWC,IACX,yFACWC,IAA+B,cAC/BC,IAA6BC;AAAA,EACxC;AAAA;AAAA,EAEAC,EAAuB,gBAAgB;AACzC,GACaC,IAAyBF;AAAA,EACpC;AAAA;AAAA,EAEAC,EAAuB,iBAAiB;AAC1C,GACaE,IAA8B;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("react");function q(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const i in t)if(i!=="default"){const b=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,b.get?b:{enumerable:!0,get:()=>t[i]})}}return n.default=t,Object.freeze(n)}const c=q(U);function z(t){return typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):""}function A(t,n){return typeof n=="function"?n(t):n}function j(t,n,i){const[b,E]=c.useState(i),y=t!==void 0,V=y?t:b,R=c.useCallback(x=>{const m=A(V,x);y||E(m),n?.(m)},[y,n,V]);return[V,R]}function B({rows:t,getRowId:n,setRows:i,editingRowId:b,onEditingRowIdChange:E,editingValues:y,onEditingValuesChange:V,onRowDelete:R,onRowEditCancel:x,onRowEditSave:m,onRowEditStart:S,onRowsChange:k}){const[r,l]=j(b,E,null),[f,u]=j(y,V,{}),[P,O]=c.useState(!0);c.useEffect(()=>{O(!0)},[t]);const d=c.useCallback(e=>t.find(s=>n(s)===e)??null,[n,t]),C=c.useCallback((e,s)=>{O(!1),i?.(e),k?.(s)},[k,i]),T=c.useCallback((e,s,o)=>{const a=n(e),p=s.reduce((v,g)=>(v[g]=o?.[g]??z(e[g]),v),{});l(a),u(p),S?.({editableKeys:s,initialValues:p,row:e,rowId:a})},[n,S,l,u]),D=c.useCallback(()=>{const e=r?d(r):null,s=f;l(null),u({}),x?.({editingValues:s,row:e,rowId:r})},[r,f,d,x,l,u]),_=c.useCallback(e=>{const s=d(e);if(!s)return;const o={...s,...f},a=t,p=a.map(g=>n(g)===e?o:g);C(p,{editingValues:f,nextRow:o,nextRows:p,previousRow:s,previousRows:a,rowId:e,type:"edit-save"}),l(null),u({}),m?.({editingValues:f,nextRow:o,previousRow:s,rowId:e})},[C,f,d,n,m,t,l,u]),M=c.useCallback(e=>{const s=d(e);if(!s)return;const o=t,a=o.filter(v=>n(v)!==e);C(a,{nextRows:a,previousRows:o,row:s,rowId:e,type:"delete"}),r===e&&(l(null),u({})),R?.({row:s,rowId:e})},[C,r,d,n,R,t,l,u]);return{autoResetPageIndex:P,cancelEditingRow:D,deleteRow:M,editingRowId:r,editingValues:f,saveEditingRow:_,setEditingValues:u,setEditingRowId:l,startEditingRow:T}}exports.useDataTableEditableRows=B;
|
|
2
|
+
//# sourceMappingURL=components-data-table-use-data-table-editable-rows.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-use-data-table-editable-rows.cjs","sources":["../src/components/data-table/use-data-table-editable-rows.ts"],"sourcesContent":["import * as React from \"react\";\n\ntype EditableRowKey<TData> = Extract<keyof TData, string>;\ntype EditableValues = Record<string, string>;\n\ntype DataTableRowEditStartEvent<TData> = {\n editableKeys: readonly EditableRowKey<TData>[];\n initialValues: EditableValues;\n row: TData;\n rowId: string;\n};\n\ntype DataTableRowEditCancelEvent<TData> = {\n editingValues: EditableValues;\n row: TData | null;\n rowId: string | null;\n};\n\ntype DataTableRowEditSaveEvent<TData> = {\n editingValues: EditableValues;\n nextRow: TData;\n previousRow: TData;\n rowId: string;\n};\n\ntype DataTableRowDeleteEvent<TData> = {\n row: TData;\n rowId: string;\n};\n\ntype DataTableRowsChangeEvent<TData> =\n | ({\n nextRows: TData[];\n previousRows: TData[];\n type: \"edit-save\";\n } & DataTableRowEditSaveEvent<TData>)\n | ({\n nextRows: TData[];\n previousRows: TData[];\n type: \"delete\";\n } & DataTableRowDeleteEvent<TData>);\n\ntype UseDataTableEditableRowsOptions<TData> = {\n rows: TData[];\n getRowId: (row: TData) => string;\n setRows?: React.Dispatch<React.SetStateAction<TData[]>>;\n editingRowId?: string | null;\n onEditingRowIdChange?: (rowId: string | null) => void;\n editingValues?: EditableValues;\n onEditingValuesChange?: React.Dispatch<React.SetStateAction<EditableValues>>;\n onRowDelete?: (event: DataTableRowDeleteEvent<TData>) => void;\n onRowEditCancel?: (event: DataTableRowEditCancelEvent<TData>) => void;\n onRowEditSave?: (event: DataTableRowEditSaveEvent<TData>) => void;\n onRowEditStart?: (event: DataTableRowEditStartEvent<TData>) => void;\n onRowsChange?: (event: DataTableRowsChangeEvent<TData>) => void;\n};\n\nfunction toEditableString(value: unknown) {\n if (typeof value === \"string\") {\n return value;\n }\n\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n return String(value);\n }\n\n return \"\";\n}\n\nfunction applyUpdater<TData>(previousValue: TData, updater: React.SetStateAction<TData>) {\n return typeof updater === \"function\"\n ? (updater as (value: TData) => TData)(previousValue)\n : updater;\n}\n\nfunction useControllableState<TData>(\n controlledValue: TData | undefined,\n onChange: ((nextValue: TData) => void) | undefined,\n defaultValue: TData,\n) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const setValue = React.useCallback(\n (updater: React.SetStateAction<TData>) => {\n const nextValue = applyUpdater(value, updater);\n\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n\n onChange?.(nextValue);\n },\n [isControlled, onChange, value],\n );\n\n return [value, setValue] as const;\n}\n\nfunction useDataTableEditableRows<TData>({\n rows,\n getRowId,\n setRows,\n editingRowId: controlledEditingRowId,\n onEditingRowIdChange,\n editingValues: controlledEditingValues,\n onEditingValuesChange,\n onRowDelete,\n onRowEditCancel,\n onRowEditSave,\n onRowEditStart,\n onRowsChange,\n}: UseDataTableEditableRowsOptions<TData>) {\n const [editingRowId, setEditingRowId] = useControllableState<string | null>(\n controlledEditingRowId,\n onEditingRowIdChange,\n null,\n );\n const [editingValues, setEditingValues] = useControllableState<EditableValues>(\n controlledEditingValues,\n onEditingValuesChange,\n {},\n );\n const [autoResetPageIndex, setAutoResetPageIndex] = React.useState(true);\n\n React.useEffect(() => {\n setAutoResetPageIndex(true);\n }, [rows]);\n\n const findRowById = React.useCallback(\n (rowId: string) => rows.find((row) => getRowId(row) === rowId) ?? null,\n [getRowId, rows],\n );\n\n const commitRowsChange = React.useCallback(\n (nextRows: TData[], event: DataTableRowsChangeEvent<TData>) => {\n setAutoResetPageIndex(false);\n setRows?.(nextRows);\n onRowsChange?.(event);\n },\n [onRowsChange, setRows],\n );\n\n const startEditingRow = React.useCallback(\n (\n row: TData,\n editableKeys: readonly EditableRowKey<TData>[],\n overrides?: Partial<Record<EditableRowKey<TData>, string>>,\n ) => {\n const rowId = getRowId(row);\n const initialValues = editableKeys.reduce<EditableValues>((accumulator, key) => {\n accumulator[key] = overrides?.[key] ?? toEditableString(row[key]);\n return accumulator;\n }, {});\n\n setEditingRowId(rowId);\n setEditingValues(initialValues);\n onRowEditStart?.({\n editableKeys,\n initialValues,\n row,\n rowId,\n });\n },\n [getRowId, onRowEditStart, setEditingRowId, setEditingValues],\n );\n\n const cancelEditingRow = React.useCallback(() => {\n const row = editingRowId ? findRowById(editingRowId) : null;\n const nextEditingValues = editingValues;\n\n setEditingRowId(null);\n setEditingValues({});\n onRowEditCancel?.({\n editingValues: nextEditingValues,\n row,\n rowId: editingRowId,\n });\n }, [\n editingRowId,\n editingValues,\n findRowById,\n onRowEditCancel,\n setEditingRowId,\n setEditingValues,\n ]);\n\n const saveEditingRow = React.useCallback(\n (rowId: string) => {\n const previousRow = findRowById(rowId);\n\n if (!previousRow) {\n return;\n }\n\n const nextRow = {\n ...previousRow,\n ...editingValues,\n };\n const previousRows = rows;\n const nextRows = previousRows.map((row) =>\n getRowId(row) === rowId ? nextRow : row,\n );\n const event: DataTableRowsChangeEvent<TData> = {\n editingValues,\n nextRow,\n nextRows,\n previousRow,\n previousRows,\n rowId,\n type: \"edit-save\",\n };\n\n commitRowsChange(nextRows, event);\n setEditingRowId(null);\n setEditingValues({});\n onRowEditSave?.({\n editingValues,\n nextRow,\n previousRow,\n rowId,\n });\n },\n [\n commitRowsChange,\n editingValues,\n findRowById,\n getRowId,\n onRowEditSave,\n rows,\n setEditingRowId,\n setEditingValues,\n ],\n );\n\n const deleteRow = React.useCallback(\n (rowId: string) => {\n const row = findRowById(rowId);\n\n if (!row) {\n return;\n }\n\n const previousRows = rows;\n const nextRows = previousRows.filter((item) => getRowId(item) !== rowId);\n const event: DataTableRowsChangeEvent<TData> = {\n nextRows,\n previousRows,\n row,\n rowId,\n type: \"delete\",\n };\n\n commitRowsChange(nextRows, event);\n\n if (editingRowId === rowId) {\n setEditingRowId(null);\n setEditingValues({});\n }\n\n onRowDelete?.({\n row,\n rowId,\n });\n },\n [\n commitRowsChange,\n editingRowId,\n findRowById,\n getRowId,\n onRowDelete,\n rows,\n setEditingRowId,\n setEditingValues,\n ],\n );\n\n return {\n autoResetPageIndex,\n cancelEditingRow,\n deleteRow,\n editingRowId,\n editingValues,\n saveEditingRow,\n setEditingValues,\n setEditingRowId,\n startEditingRow,\n };\n}\n\nexport { useDataTableEditableRows };\nexport type {\n DataTableRowDeleteEvent,\n DataTableRowEditCancelEvent,\n DataTableRowEditSaveEvent,\n DataTableRowEditStartEvent,\n DataTableRowsChangeEvent,\n EditableRowKey,\n UseDataTableEditableRowsOptions,\n};\n"],"names":["toEditableString","value","applyUpdater","previousValue","updater","useControllableState","controlledValue","onChange","defaultValue","uncontrolledValue","setUncontrolledValue","React","isControlled","setValue","nextValue","useDataTableEditableRows","rows","getRowId","setRows","controlledEditingRowId","onEditingRowIdChange","controlledEditingValues","onEditingValuesChange","onRowDelete","onRowEditCancel","onRowEditSave","onRowEditStart","onRowsChange","editingRowId","setEditingRowId","editingValues","setEditingValues","autoResetPageIndex","setAutoResetPageIndex","findRowById","rowId","row","commitRowsChange","nextRows","event","startEditingRow","editableKeys","overrides","initialValues","accumulator","key","cancelEditingRow","nextEditingValues","saveEditingRow","previousRow","nextRow","previousRows","deleteRow","item"],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import * as i from "react";
|
|
2
|
+
function z(n) {
|
|
3
|
+
return typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
|
|
4
|
+
}
|
|
5
|
+
function D(n, s) {
|
|
6
|
+
return typeof s == "function" ? s(n) : s;
|
|
7
|
+
}
|
|
8
|
+
function U(n, s, C) {
|
|
9
|
+
const [k, m] = i.useState(C), d = n !== void 0, V = d ? n : k, v = i.useCallback(
|
|
10
|
+
(E) => {
|
|
11
|
+
const g = D(V, E);
|
|
12
|
+
d || m(g), s?.(g);
|
|
13
|
+
},
|
|
14
|
+
[d, s, V]
|
|
15
|
+
);
|
|
16
|
+
return [V, v];
|
|
17
|
+
}
|
|
18
|
+
function F({
|
|
19
|
+
rows: n,
|
|
20
|
+
getRowId: s,
|
|
21
|
+
setRows: C,
|
|
22
|
+
editingRowId: k,
|
|
23
|
+
onEditingRowIdChange: m,
|
|
24
|
+
editingValues: d,
|
|
25
|
+
onEditingValuesChange: V,
|
|
26
|
+
onRowDelete: v,
|
|
27
|
+
onRowEditCancel: E,
|
|
28
|
+
onRowEditSave: g,
|
|
29
|
+
onRowEditStart: y,
|
|
30
|
+
onRowsChange: S
|
|
31
|
+
}) {
|
|
32
|
+
const [a, l] = U(
|
|
33
|
+
k,
|
|
34
|
+
m,
|
|
35
|
+
null
|
|
36
|
+
), [f, u] = U(
|
|
37
|
+
d,
|
|
38
|
+
V,
|
|
39
|
+
{}
|
|
40
|
+
), [A, P] = i.useState(!0);
|
|
41
|
+
i.useEffect(() => {
|
|
42
|
+
P(!0);
|
|
43
|
+
}, [n]);
|
|
44
|
+
const r = i.useCallback(
|
|
45
|
+
(t) => n.find((e) => s(e) === t) ?? null,
|
|
46
|
+
[s, n]
|
|
47
|
+
), R = i.useCallback(
|
|
48
|
+
(t, e) => {
|
|
49
|
+
P(!1), C?.(t), S?.(e);
|
|
50
|
+
},
|
|
51
|
+
[S, C]
|
|
52
|
+
), B = i.useCallback(
|
|
53
|
+
(t, e, c) => {
|
|
54
|
+
const o = s(t), p = e.reduce((x, b) => (x[b] = c?.[b] ?? z(t[b]), x), {});
|
|
55
|
+
l(o), u(p), y?.({
|
|
56
|
+
editableKeys: e,
|
|
57
|
+
initialValues: p,
|
|
58
|
+
row: t,
|
|
59
|
+
rowId: o
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
[s, y, l, u]
|
|
63
|
+
), T = i.useCallback(() => {
|
|
64
|
+
const t = a ? r(a) : null, e = f;
|
|
65
|
+
l(null), u({}), E?.({
|
|
66
|
+
editingValues: e,
|
|
67
|
+
row: t,
|
|
68
|
+
rowId: a
|
|
69
|
+
});
|
|
70
|
+
}, [
|
|
71
|
+
a,
|
|
72
|
+
f,
|
|
73
|
+
r,
|
|
74
|
+
E,
|
|
75
|
+
l,
|
|
76
|
+
u
|
|
77
|
+
]), j = i.useCallback(
|
|
78
|
+
(t) => {
|
|
79
|
+
const e = r(t);
|
|
80
|
+
if (!e)
|
|
81
|
+
return;
|
|
82
|
+
const c = {
|
|
83
|
+
...e,
|
|
84
|
+
...f
|
|
85
|
+
}, o = n, p = o.map(
|
|
86
|
+
(b) => s(b) === t ? c : b
|
|
87
|
+
);
|
|
88
|
+
R(p, {
|
|
89
|
+
editingValues: f,
|
|
90
|
+
nextRow: c,
|
|
91
|
+
nextRows: p,
|
|
92
|
+
previousRow: e,
|
|
93
|
+
previousRows: o,
|
|
94
|
+
rowId: t,
|
|
95
|
+
type: "edit-save"
|
|
96
|
+
}), l(null), u({}), g?.({
|
|
97
|
+
editingValues: f,
|
|
98
|
+
nextRow: c,
|
|
99
|
+
previousRow: e,
|
|
100
|
+
rowId: t
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
[
|
|
104
|
+
R,
|
|
105
|
+
f,
|
|
106
|
+
r,
|
|
107
|
+
s,
|
|
108
|
+
g,
|
|
109
|
+
n,
|
|
110
|
+
l,
|
|
111
|
+
u
|
|
112
|
+
]
|
|
113
|
+
), q = i.useCallback(
|
|
114
|
+
(t) => {
|
|
115
|
+
const e = r(t);
|
|
116
|
+
if (!e)
|
|
117
|
+
return;
|
|
118
|
+
const c = n, o = c.filter((x) => s(x) !== t);
|
|
119
|
+
R(o, {
|
|
120
|
+
nextRows: o,
|
|
121
|
+
previousRows: c,
|
|
122
|
+
row: e,
|
|
123
|
+
rowId: t,
|
|
124
|
+
type: "delete"
|
|
125
|
+
}), a === t && (l(null), u({})), v?.({
|
|
126
|
+
row: e,
|
|
127
|
+
rowId: t
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
[
|
|
131
|
+
R,
|
|
132
|
+
a,
|
|
133
|
+
r,
|
|
134
|
+
s,
|
|
135
|
+
v,
|
|
136
|
+
n,
|
|
137
|
+
l,
|
|
138
|
+
u
|
|
139
|
+
]
|
|
140
|
+
);
|
|
141
|
+
return {
|
|
142
|
+
autoResetPageIndex: A,
|
|
143
|
+
cancelEditingRow: T,
|
|
144
|
+
deleteRow: q,
|
|
145
|
+
editingRowId: a,
|
|
146
|
+
editingValues: f,
|
|
147
|
+
saveEditingRow: j,
|
|
148
|
+
setEditingValues: u,
|
|
149
|
+
setEditingRowId: l,
|
|
150
|
+
startEditingRow: B
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export {
|
|
154
|
+
F as useDataTableEditableRows
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=components-data-table-use-data-table-editable-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table-use-data-table-editable-rows.js","sources":["../src/components/data-table/use-data-table-editable-rows.ts"],"sourcesContent":["import * as React from \"react\";\n\ntype EditableRowKey<TData> = Extract<keyof TData, string>;\ntype EditableValues = Record<string, string>;\n\ntype DataTableRowEditStartEvent<TData> = {\n editableKeys: readonly EditableRowKey<TData>[];\n initialValues: EditableValues;\n row: TData;\n rowId: string;\n};\n\ntype DataTableRowEditCancelEvent<TData> = {\n editingValues: EditableValues;\n row: TData | null;\n rowId: string | null;\n};\n\ntype DataTableRowEditSaveEvent<TData> = {\n editingValues: EditableValues;\n nextRow: TData;\n previousRow: TData;\n rowId: string;\n};\n\ntype DataTableRowDeleteEvent<TData> = {\n row: TData;\n rowId: string;\n};\n\ntype DataTableRowsChangeEvent<TData> =\n | ({\n nextRows: TData[];\n previousRows: TData[];\n type: \"edit-save\";\n } & DataTableRowEditSaveEvent<TData>)\n | ({\n nextRows: TData[];\n previousRows: TData[];\n type: \"delete\";\n } & DataTableRowDeleteEvent<TData>);\n\ntype UseDataTableEditableRowsOptions<TData> = {\n rows: TData[];\n getRowId: (row: TData) => string;\n setRows?: React.Dispatch<React.SetStateAction<TData[]>>;\n editingRowId?: string | null;\n onEditingRowIdChange?: (rowId: string | null) => void;\n editingValues?: EditableValues;\n onEditingValuesChange?: React.Dispatch<React.SetStateAction<EditableValues>>;\n onRowDelete?: (event: DataTableRowDeleteEvent<TData>) => void;\n onRowEditCancel?: (event: DataTableRowEditCancelEvent<TData>) => void;\n onRowEditSave?: (event: DataTableRowEditSaveEvent<TData>) => void;\n onRowEditStart?: (event: DataTableRowEditStartEvent<TData>) => void;\n onRowsChange?: (event: DataTableRowsChangeEvent<TData>) => void;\n};\n\nfunction toEditableString(value: unknown) {\n if (typeof value === \"string\") {\n return value;\n }\n\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n return String(value);\n }\n\n return \"\";\n}\n\nfunction applyUpdater<TData>(previousValue: TData, updater: React.SetStateAction<TData>) {\n return typeof updater === \"function\"\n ? (updater as (value: TData) => TData)(previousValue)\n : updater;\n}\n\nfunction useControllableState<TData>(\n controlledValue: TData | undefined,\n onChange: ((nextValue: TData) => void) | undefined,\n defaultValue: TData,\n) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const setValue = React.useCallback(\n (updater: React.SetStateAction<TData>) => {\n const nextValue = applyUpdater(value, updater);\n\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n\n onChange?.(nextValue);\n },\n [isControlled, onChange, value],\n );\n\n return [value, setValue] as const;\n}\n\nfunction useDataTableEditableRows<TData>({\n rows,\n getRowId,\n setRows,\n editingRowId: controlledEditingRowId,\n onEditingRowIdChange,\n editingValues: controlledEditingValues,\n onEditingValuesChange,\n onRowDelete,\n onRowEditCancel,\n onRowEditSave,\n onRowEditStart,\n onRowsChange,\n}: UseDataTableEditableRowsOptions<TData>) {\n const [editingRowId, setEditingRowId] = useControllableState<string | null>(\n controlledEditingRowId,\n onEditingRowIdChange,\n null,\n );\n const [editingValues, setEditingValues] = useControllableState<EditableValues>(\n controlledEditingValues,\n onEditingValuesChange,\n {},\n );\n const [autoResetPageIndex, setAutoResetPageIndex] = React.useState(true);\n\n React.useEffect(() => {\n setAutoResetPageIndex(true);\n }, [rows]);\n\n const findRowById = React.useCallback(\n (rowId: string) => rows.find((row) => getRowId(row) === rowId) ?? null,\n [getRowId, rows],\n );\n\n const commitRowsChange = React.useCallback(\n (nextRows: TData[], event: DataTableRowsChangeEvent<TData>) => {\n setAutoResetPageIndex(false);\n setRows?.(nextRows);\n onRowsChange?.(event);\n },\n [onRowsChange, setRows],\n );\n\n const startEditingRow = React.useCallback(\n (\n row: TData,\n editableKeys: readonly EditableRowKey<TData>[],\n overrides?: Partial<Record<EditableRowKey<TData>, string>>,\n ) => {\n const rowId = getRowId(row);\n const initialValues = editableKeys.reduce<EditableValues>((accumulator, key) => {\n accumulator[key] = overrides?.[key] ?? toEditableString(row[key]);\n return accumulator;\n }, {});\n\n setEditingRowId(rowId);\n setEditingValues(initialValues);\n onRowEditStart?.({\n editableKeys,\n initialValues,\n row,\n rowId,\n });\n },\n [getRowId, onRowEditStart, setEditingRowId, setEditingValues],\n );\n\n const cancelEditingRow = React.useCallback(() => {\n const row = editingRowId ? findRowById(editingRowId) : null;\n const nextEditingValues = editingValues;\n\n setEditingRowId(null);\n setEditingValues({});\n onRowEditCancel?.({\n editingValues: nextEditingValues,\n row,\n rowId: editingRowId,\n });\n }, [\n editingRowId,\n editingValues,\n findRowById,\n onRowEditCancel,\n setEditingRowId,\n setEditingValues,\n ]);\n\n const saveEditingRow = React.useCallback(\n (rowId: string) => {\n const previousRow = findRowById(rowId);\n\n if (!previousRow) {\n return;\n }\n\n const nextRow = {\n ...previousRow,\n ...editingValues,\n };\n const previousRows = rows;\n const nextRows = previousRows.map((row) =>\n getRowId(row) === rowId ? nextRow : row,\n );\n const event: DataTableRowsChangeEvent<TData> = {\n editingValues,\n nextRow,\n nextRows,\n previousRow,\n previousRows,\n rowId,\n type: \"edit-save\",\n };\n\n commitRowsChange(nextRows, event);\n setEditingRowId(null);\n setEditingValues({});\n onRowEditSave?.({\n editingValues,\n nextRow,\n previousRow,\n rowId,\n });\n },\n [\n commitRowsChange,\n editingValues,\n findRowById,\n getRowId,\n onRowEditSave,\n rows,\n setEditingRowId,\n setEditingValues,\n ],\n );\n\n const deleteRow = React.useCallback(\n (rowId: string) => {\n const row = findRowById(rowId);\n\n if (!row) {\n return;\n }\n\n const previousRows = rows;\n const nextRows = previousRows.filter((item) => getRowId(item) !== rowId);\n const event: DataTableRowsChangeEvent<TData> = {\n nextRows,\n previousRows,\n row,\n rowId,\n type: \"delete\",\n };\n\n commitRowsChange(nextRows, event);\n\n if (editingRowId === rowId) {\n setEditingRowId(null);\n setEditingValues({});\n }\n\n onRowDelete?.({\n row,\n rowId,\n });\n },\n [\n commitRowsChange,\n editingRowId,\n findRowById,\n getRowId,\n onRowDelete,\n rows,\n setEditingRowId,\n setEditingValues,\n ],\n );\n\n return {\n autoResetPageIndex,\n cancelEditingRow,\n deleteRow,\n editingRowId,\n editingValues,\n saveEditingRow,\n setEditingValues,\n setEditingRowId,\n startEditingRow,\n };\n}\n\nexport { useDataTableEditableRows };\nexport type {\n DataTableRowDeleteEvent,\n DataTableRowEditCancelEvent,\n DataTableRowEditSaveEvent,\n DataTableRowEditStartEvent,\n DataTableRowsChangeEvent,\n EditableRowKey,\n UseDataTableEditableRowsOptions,\n};\n"],"names":["toEditableString","value","applyUpdater","previousValue","updater","useControllableState","controlledValue","onChange","defaultValue","uncontrolledValue","setUncontrolledValue","React","isControlled","setValue","nextValue","useDataTableEditableRows","rows","getRowId","setRows","controlledEditingRowId","onEditingRowIdChange","controlledEditingValues","onEditingValuesChange","onRowDelete","onRowEditCancel","onRowEditSave","onRowEditStart","onRowsChange","editingRowId","setEditingRowId","editingValues","setEditingValues","autoResetPageIndex","setAutoResetPageIndex","findRowById","rowId","row","commitRowsChange","nextRows","event","startEditingRow","editableKeys","overrides","initialValues","accumulator","key","cancelEditingRow","nextEditingValues","saveEditingRow","previousRow","nextRow","previousRows","deleteRow","item"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./components-data-table-data-table.cjs"),e=require("./components-data-table-data-table-actions-column.cjs"),t=require("./components-data-table-data-table-editable-column.cjs"),l=require("./components-data-table-data-table-row-actions-column.cjs"),o=require("./components-data-table-data-table-bulk-actions.cjs"),n=require("./components-data-table-data-table-column-visibility.cjs"),b=require("./components-data-table-data-table-filter.cjs"),i=require("./components-data-table-data-table-select-column.cjs"),c=require("./components-data-table-use-data-table-editable-rows.cjs");exports.DataTable=a.DataTable;exports.createDataTableActionsColumn=e.createDataTableActionsColumn;exports.withDataTableEditableColumn=t.withDataTableEditableColumn;exports.createDataTableRowActionsColumn=l.createDataTableRowActionsColumn;exports.DataTableBulkActions=o.DataTableBulkActions;exports.DataTableColumnVisibility=n.DataTableColumnVisibility;exports.DataTableFilter=b.DataTableFilter;exports.createDataTableSelectColumn=i.createDataTableSelectColumn;exports.useDataTableEditableRows=c.useDataTableEditableRows;
|
|
2
|
+
//# sourceMappingURL=components-data-table.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DataTable as t } from "./components-data-table-data-table.js";
|
|
2
|
+
import { createDataTableActionsColumn as r } from "./components-data-table-data-table-actions-column.js";
|
|
3
|
+
import { withDataTableEditableColumn as m } from "./components-data-table-data-table-editable-column.js";
|
|
4
|
+
import { createDataTableRowActionsColumn as i } from "./components-data-table-data-table-row-actions-column.js";
|
|
5
|
+
import { DataTableBulkActions as p } from "./components-data-table-data-table-bulk-actions.js";
|
|
6
|
+
import { DataTableColumnVisibility as D } from "./components-data-table-data-table-column-visibility.js";
|
|
7
|
+
import { DataTableFilter as n } from "./components-data-table-data-table-filter.js";
|
|
8
|
+
import { createDataTableSelectColumn as u } from "./components-data-table-data-table-select-column.js";
|
|
9
|
+
import { useDataTableEditableRows as C } from "./components-data-table-use-data-table-editable-rows.js";
|
|
10
|
+
export {
|
|
11
|
+
t as DataTable,
|
|
12
|
+
p as DataTableBulkActions,
|
|
13
|
+
D as DataTableColumnVisibility,
|
|
14
|
+
n as DataTableFilter,
|
|
15
|
+
r as createDataTableActionsColumn,
|
|
16
|
+
i as createDataTableRowActionsColumn,
|
|
17
|
+
u as createDataTableSelectColumn,
|
|
18
|
+
C as useDataTableEditableRows,
|
|
19
|
+
m as withDataTableEditableColumn
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=components-data-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-data-table.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|