@ceed/cds 0.0.127 → 0.0.128

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.
Files changed (100) hide show
  1. package/dist/index.js +1 -169
  2. package/package.json +4 -4
  3. package/dist/components/Accordions/Accordions.js +0 -72
  4. package/dist/components/Accordions/index.js +0 -19
  5. package/dist/components/Autocomplete/Autocomplete.js +0 -280
  6. package/dist/components/Autocomplete/index.js +0 -19
  7. package/dist/components/Box/Box.js +0 -9
  8. package/dist/components/Box/index.js +0 -19
  9. package/dist/components/Breadcrumbs/Breadcrumbs.js +0 -96
  10. package/dist/components/Breadcrumbs/index.js +0 -19
  11. package/dist/components/Button/Button.js +0 -54
  12. package/dist/components/Button/index.js +0 -19
  13. package/dist/components/Calendar/Calendar.js +0 -412
  14. package/dist/components/Calendar/hooks/use-calendar-props.js +0 -84
  15. package/dist/components/Calendar/hooks/use-calendar.js +0 -248
  16. package/dist/components/Calendar/index.js +0 -19
  17. package/dist/components/Calendar/types.js +0 -2
  18. package/dist/components/Calendar/utils/index.js +0 -84
  19. package/dist/components/Card/Card.js +0 -25
  20. package/dist/components/Card/index.js +0 -19
  21. package/dist/components/Checkbox/Checkbox.js +0 -34
  22. package/dist/components/Checkbox/index.js +0 -19
  23. package/dist/components/Chip/Chip.js +0 -9
  24. package/dist/components/Chip/index.js +0 -19
  25. package/dist/components/Container/Container.js +0 -91
  26. package/dist/components/Container/index.js +0 -19
  27. package/dist/components/CurrencyInput/CurrencyInput.js +0 -137
  28. package/dist/components/CurrencyInput/hooks/use-currency-setting.js +0 -172
  29. package/dist/components/CurrencyInput/index.js +0 -19
  30. package/dist/components/DataTable/DataTable.js +0 -466
  31. package/dist/components/DataTable/index.js +0 -19
  32. package/dist/components/DataTable/types.js +0 -2
  33. package/dist/components/DatePicker/DatePicker.js +0 -236
  34. package/dist/components/DatePicker/index.js +0 -19
  35. package/dist/components/DateRangePicker/DateRangePicker.js +0 -238
  36. package/dist/components/DateRangePicker/index.js +0 -19
  37. package/dist/components/DialogActions/DialogActions.js +0 -18
  38. package/dist/components/DialogActions/index.js +0 -19
  39. package/dist/components/DialogContent/DialogContent.js +0 -15
  40. package/dist/components/DialogContent/index.js +0 -19
  41. package/dist/components/DialogFrame/DialogFrame.js +0 -57
  42. package/dist/components/DialogFrame/index.js +0 -19
  43. package/dist/components/DialogTitle/DialogTitle.js +0 -15
  44. package/dist/components/DialogTitle/index.js +0 -19
  45. package/dist/components/Divider/Divider.js +0 -34
  46. package/dist/components/Divider/index.js +0 -19
  47. package/dist/components/Dropdown/Dropdown.js +0 -9
  48. package/dist/components/Dropdown/index.js +0 -19
  49. package/dist/components/FormControl/FormControl.js +0 -20
  50. package/dist/components/FormControl/index.js +0 -19
  51. package/dist/components/FormHelperText/FormHelperText.js +0 -9
  52. package/dist/components/FormHelperText/index.js +0 -19
  53. package/dist/components/FormLabel/FormLabel.js +0 -9
  54. package/dist/components/FormLabel/index.js +0 -19
  55. package/dist/components/Grid/Grid.js +0 -9
  56. package/dist/components/Grid/index.js +0 -19
  57. package/dist/components/IconButton/IconButton.js +0 -34
  58. package/dist/components/IconButton/index.js +0 -19
  59. package/dist/components/Input/Input.js +0 -57
  60. package/dist/components/Input/index.js +0 -19
  61. package/dist/components/InsetDrawer/InsetDrawer.js +0 -51
  62. package/dist/components/InsetDrawer/index.js +0 -19
  63. package/dist/components/Markdown/Markdown.js +0 -65
  64. package/dist/components/Markdown/index.js +0 -19
  65. package/dist/components/Menu/Menu.js +0 -62
  66. package/dist/components/Menu/index.js +0 -19
  67. package/dist/components/Modal/Modal.js +0 -69
  68. package/dist/components/Modal/index.js +0 -19
  69. package/dist/components/MonthPicker/MonthPicker.js +0 -232
  70. package/dist/components/MonthPicker/index.js +0 -19
  71. package/dist/components/MonthRangePicker/MonthRangePicker.js +0 -236
  72. package/dist/components/MonthRangePicker/index.js +0 -19
  73. package/dist/components/Radio/Radio.js +0 -13
  74. package/dist/components/Radio/index.js +0 -19
  75. package/dist/components/RadioList/RadioList.js +0 -44
  76. package/dist/components/RadioList/index.js +0 -19
  77. package/dist/components/Select/Select.js +0 -105
  78. package/dist/components/Select/index.js +0 -19
  79. package/dist/components/Sheet/Sheet.js +0 -9
  80. package/dist/components/Sheet/index.js +0 -19
  81. package/dist/components/Stack/Stack.js +0 -9
  82. package/dist/components/Stack/index.js +0 -19
  83. package/dist/components/Switch/Switch.js +0 -60
  84. package/dist/components/Switch/index.js +0 -19
  85. package/dist/components/Table/Table.js +0 -95
  86. package/dist/components/Table/index.js +0 -19
  87. package/dist/components/Tabs/Tabs.js +0 -21
  88. package/dist/components/Tabs/index.js +0 -19
  89. package/dist/components/Textarea/Textarea.js +0 -56
  90. package/dist/components/Textarea/index.js +0 -19
  91. package/dist/components/ThemeProvider/ThemeProvider.js +0 -165
  92. package/dist/components/ThemeProvider/index.js +0 -19
  93. package/dist/components/Tooltip/Tooltip.js +0 -34
  94. package/dist/components/Tooltip/index.js +0 -19
  95. package/dist/components/Typography/Typography.js +0 -34
  96. package/dist/components/Typography/index.js +0 -19
  97. package/dist/components/Uploader/Uploader.js +0 -378
  98. package/dist/components/Uploader/index.js +0 -19
  99. package/dist/components/index.js +0 -108
  100. package/dist/index.mjs +0 -1
@@ -1,466 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __rest = (this && this.__rest) || function (s, e) {
37
- var t = {};
38
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
39
- t[p] = s[p];
40
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
41
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
42
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
43
- t[p[i]] = s[p[i]];
44
- }
45
- return t;
46
- };
47
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
48
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
49
- if (ar || !(i in from)) {
50
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
51
- ar[i] = from[i];
52
- }
53
- }
54
- return to.concat(ar || Array.prototype.slice.call(from));
55
- };
56
- var __importDefault = (this && this.__importDefault) || function (mod) {
57
- return (mod && mod.__esModule) ? mod : { "default": mod };
58
- };
59
- Object.defineProperty(exports, "__esModule", { value: true });
60
- exports.DataTable = void 0;
61
- var react_1 = __importStar(require("react"));
62
- var joy_1 = require("@mui/joy");
63
- // @ts-ignore: ESM import 해야만 프레이머에서 정상적으로 동작한다. https://github.com/mui/material-ui/issues/35233
64
- var ChevronLeft_js_1 = __importDefault(require("@mui/icons-material/esm/ChevronLeft.js"));
65
- // @ts-ignore: ESM import 해야만 프레이머에서 정상적으로 동작한다. https://github.com/mui/material-ui/issues/35233
66
- var ChevronRight_js_1 = __importDefault(require("@mui/icons-material/esm/ChevronRight.js"));
67
- var Sheet_1 = __importDefault(require("../Sheet"));
68
- var Table_1 = require("../Table");
69
- var Checkbox_1 = __importDefault(require("../Checkbox"));
70
- var Box_1 = __importDefault(require("../Box"));
71
- var Stack_1 = __importDefault(require("../Stack"));
72
- var Typography_1 = __importDefault(require("../Typography"));
73
- var Button_1 = __importDefault(require("../Button"));
74
- var IconButton_1 = __importDefault(require("../IconButton"));
75
- var CurrencyInput_1 = __importDefault(require("../CurrencyInput"));
76
- var DatePicker_1 = __importDefault(require("../DatePicker"));
77
- var Input_1 = __importDefault(require("../Input"));
78
- var Textarea_1 = __importDefault(require("../Textarea"));
79
- var Autocomplete_1 = __importDefault(require("../Autocomplete"));
80
- var Select_1 = __importDefault(require("../Select"));
81
- var Tooltip_1 = __importDefault(require("../Tooltip"));
82
- function getTextAlign(props) {
83
- return !props.editMode &&
84
- ["number", "date", "currency"].includes(props.type || "")
85
- ? "end"
86
- : "start";
87
- }
88
- var OverlayWrapper = (0, joy_1.styled)("tr", {
89
- name: "DataTable",
90
- slot: "overlayWrapper",
91
- })({
92
- position: "sticky",
93
- top: "calc(var(--unstable_TableCell-height, 32px))",
94
- left: 0,
95
- right: 0,
96
- zIndex: 1,
97
- "& > td": {
98
- height: 0,
99
- padding: 0,
100
- border: "none !important",
101
- },
102
- });
103
- var numberFormatter = function (value) {
104
- return "Intl" in window ? new Intl.NumberFormat().format(value) : value;
105
- };
106
- function TablePagination(props) {
107
- // prop destruction
108
- var _a = props.paginationModel, page = _a.page, pageSize = _a.pageSize, rowCount = props.rowCount, onPageChange = props.onPageChange;
109
- // lib hooks
110
- // state, ref, querystring hooks
111
- // form hooks
112
- // query hooks
113
- // calculated values
114
- var firstPage = 1;
115
- var lastPage = Math.ceil(rowCount / pageSize);
116
- var beforePages = [page - 2, page - 1].filter(function (p) { return p > 1; });
117
- var afterPages = [page + 1, page + 2].filter(function (p) { return p <= lastPage - 1; });
118
- var isMoreAfterPages = lastPage > 1 && page < lastPage - 3;
119
- var isMoreBeforePages = lastPage > 1 && page > 4;
120
- // effects
121
- // handlers
122
- return (react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 1, sx: {
123
- pt: 1,
124
- pb: 1,
125
- }, justifyContent: "end", alignItems: "center" },
126
- react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 0.5, alignItems: "center" },
127
- react_1.default.createElement(IconButton_1.default, { size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(page - 1); }, disabled: page === firstPage, "aria-label": "Previous page" },
128
- react_1.default.createElement(ChevronLeft_js_1.default, null)),
129
- page !== firstPage && (react_1.default.createElement(Button_1.default, { size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(firstPage); } }, firstPage)),
130
- isMoreBeforePages && (react_1.default.createElement(Button_1.default, { size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(page - 3); } }, "...")),
131
- beforePages.map(function (p) { return (react_1.default.createElement(Button_1.default, { key: p, size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(p); } }, p)); }),
132
- react_1.default.createElement(Button_1.default, { variant: "soft", size: "sm" }, page),
133
- afterPages.map(function (p) { return (react_1.default.createElement(Button_1.default, { key: p, size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(p); } }, p)); }),
134
- isMoreAfterPages && (react_1.default.createElement(Button_1.default, { size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(page + 3); } }, "...")),
135
- page !== lastPage && (react_1.default.createElement(Button_1.default, { size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(lastPage); } }, lastPage)),
136
- react_1.default.createElement(IconButton_1.default, { size: "sm", variant: "plain", color: "neutral", onClick: function () { return onPageChange(page + 1); }, disabled: page === lastPage, "aria-label": "Next page" },
137
- react_1.default.createElement(ChevronRight_js_1.default, null)))));
138
- }
139
- var Resizer = function (ref) { return (react_1.default.createElement(Box_1.default, { sx: {
140
- position: "absolute",
141
- top: 0,
142
- right: 0,
143
- bottom: 0,
144
- width: "4px",
145
- cursor: "col-resize",
146
- }, onMouseDown: function (e) {
147
- var _a;
148
- var initialX = e.clientX;
149
- var initialWidth = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;
150
- var onMouseMove = function (e) {
151
- if (initialWidth && initialX) {
152
- ref.current.style.width = "".concat(initialWidth + (e.clientX - initialX), "px");
153
- }
154
- };
155
- var onMouseUp = function () {
156
- document.removeEventListener("mousemove", onMouseMove);
157
- document.removeEventListener("mouseup", onMouseUp);
158
- };
159
- document.addEventListener("mousemove", onMouseMove);
160
- document.addEventListener("mouseup", onMouseUp);
161
- } })); };
162
- var Asterisk = (0, joy_1.styled)("span", {
163
- name: "DataTable",
164
- slot: "headCellAsterisk",
165
- })(function (_a) {
166
- var theme = _a.theme;
167
- return ({
168
- color: "var(--ceed-palette-danger-500)",
169
- marginLeft: theme.spacing(0.5),
170
- });
171
- });
172
- var HeadCell = function (props) {
173
- var _a, _b, _c, _d, _e;
174
- var ref = (0, react_1.useRef)(null);
175
- var style = {
176
- width: props.width,
177
- minWidth: (_a = props.minWidth) !== null && _a !== void 0 ? _a : "50px",
178
- maxWidth: props.maxWidth,
179
- textAlign: getTextAlign(props),
180
- position: props.stickyHeader ? undefined : "relative",
181
- };
182
- var resizer = ((_b = props.resizable) !== null && _b !== void 0 ? _b : true) ? Resizer(ref) : null;
183
- return (react_1.default.createElement("th", { id: "".concat(props.tableId, "_header_").concat((_c = props.headerName) !== null && _c !== void 0 ? _c : props.field), "aria-label": (_d = props.headerName) !== null && _d !== void 0 ? _d : props.field, ref: ref, key: props.field, style: style }, (_e = props.headerName) !== null && _e !== void 0 ? _e : props.field,
184
- props.editMode && props.required && react_1.default.createElement(Asterisk, null, "*"),
185
- resizer));
186
- };
187
- var BodyCell = function (props) {
188
- var _a;
189
- // prop destruction
190
- var tableId = props.tableId, field = props.field, type = props.type, renderCell = props.renderCell, renderEditCell = props.renderEditCell, isCellEditable = props.isCellEditable, noWrap = props.noWrap, row = props.row, rowId = props.rowId;
191
- // lib hooks
192
- // state, ref, querystring hooks
193
- var _b = (0, react_1.useState)(row[field]), value = _b[0], setValue = _b[1];
194
- var cellRef = (0, react_1.useRef)(null);
195
- // form hooks
196
- // query hooks
197
- // calculated values
198
- var params = (0, react_1.useMemo)(function () { return ({
199
- row: row,
200
- value: value,
201
- id: rowId,
202
- }); }, [row, rowId, value]);
203
- var editMode = (0, react_1.useMemo)(function () {
204
- return !!(props.editMode &&
205
- (typeof isCellEditable === "function"
206
- ? isCellEditable(params)
207
- : isCellEditable !== null && isCellEditable !== void 0 ? isCellEditable : true));
208
- }, [props.editMode, isCellEditable, params]);
209
- var componentProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, (typeof props.componentProps === "function"
210
- ? props.componentProps(params)
211
- : props.componentProps || {})), { size: "sm" })); }, [props, params]);
212
- var editModeComponentProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, componentProps), { onChange: function (e) {
213
- var _a;
214
- var _b, _c;
215
- (_b = componentProps.onChange) === null || _b === void 0 ? void 0 : _b.call(componentProps, e);
216
- setValue(e.target.value);
217
- if (type === "select") {
218
- (_c = props.onCellEditStop) === null || _c === void 0 ? void 0 : _c.call(props, __assign(__assign({}, params), { originalRow: row, row: __assign(__assign({}, params.row), (_a = {}, _a[field] = e.target.value, _a)), value: e.target.value }));
219
- }
220
- }, onFocus: function (e) {
221
- var _a, _b;
222
- (_a = componentProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(componentProps, e);
223
- (_b = props.onCellEditStart) === null || _b === void 0 ? void 0 : _b.call(props, __assign(__assign({}, params), { originalRow: row, row: __assign(__assign({}, params.row), { value: value }), value: value }));
224
- }, onBlur: function (e) {
225
- var _a;
226
- var _b, _c;
227
- (_b = componentProps.onBlur) === null || _b === void 0 ? void 0 : _b.call(componentProps, e);
228
- if (type &&
229
- ["number", "text", "longText", "currency", "date"].includes(type)) {
230
- (_c = props.onCellEditStop) === null || _c === void 0 ? void 0 : _c.call(props, __assign(__assign({}, params), { originalRow: row, row: __assign(__assign({}, params.row), (_a = {}, _a[field] = value, _a)), value: value }));
231
- }
232
- } }), (type === "autocomplete" && {
233
- onChangeComplete: function (e) {
234
- var _a;
235
- var _b, _c, _d;
236
- (_c = (_b = componentProps).onChangeComplete) === null || _c === void 0 ? void 0 : _c.call(_b, e);
237
- setValue(e.target.value);
238
- (_d = props.onCellEditStop) === null || _d === void 0 ? void 0 : _d.call(props, __assign(__assign({}, params), { originalRow: row, row: __assign(__assign({}, params.row), (_a = {}, _a[field] = e.target.value, _a)), value: e.target.value }));
239
- },
240
- }))); }, [params, row, field, value, componentProps, type, props]);
241
- var EditModeComponent = (0, react_1.useMemo)(function () {
242
- if (renderEditCell) {
243
- return renderEditCell(params);
244
- }
245
- return {
246
- date: (react_1.default.createElement(DatePicker_1.default, __assign({ value: value }, editModeComponentProps))),
247
- currency: (react_1.default.createElement(CurrencyInput_1.default, __assign({ value: value }, editModeComponentProps))),
248
- number: (react_1.default.createElement(Input_1.default, __assign({ value: value, type: "number" }, editModeComponentProps))),
249
- text: (react_1.default.createElement(Input_1.default, __assign({ value: value, type: "text" }, editModeComponentProps))),
250
- longText: (react_1.default.createElement(Textarea_1.default, __assign({ value: value }, editModeComponentProps))),
251
- autocomplete: (react_1.default.createElement(Autocomplete_1.default, __assign({ value: value,
252
- // @ts-expect-error NOTE: editComponentProps로 option이 넘어오면 Override되어야 한다
253
- options: editModeComponentProps.options || [value] }, editModeComponentProps))),
254
- select: (react_1.default.createElement(Select_1.default, __assign({ value: value,
255
- // @ts-expect-error NOTE: editComponentProps로 option이 넘어오면 Override되어야 한다
256
- options: editModeComponentProps.options || [value] }, editModeComponentProps))),
257
- }[type || "text"];
258
- }, [value, editModeComponentProps, type]);
259
- var ReadModeComponent = (0, react_1.useMemo)(function () {
260
- if (renderCell) {
261
- return renderCell(params);
262
- }
263
- var innerText = value;
264
- var typedComponent = {
265
- link: react_1.default.createElement(props.component || joy_1.Link, __assign({ children: innerText }, componentProps)),
266
- }[type || "text"];
267
- return typedComponent || innerText;
268
- }, [value, renderCell, params, type, componentProps, props]);
269
- var CellComponent = (0, react_1.useMemo)(function () {
270
- return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
271
- }, [editMode, EditModeComponent, ReadModeComponent]);
272
- var showTooltip = (0, react_1.useMemo)(function () { return noWrap && props.type === "longText"; }, [noWrap, props.type]);
273
- // effects
274
- (0, react_1.useEffect)(function () {
275
- setValue(row[field]);
276
- }, [row, field]);
277
- // handlers
278
- return (react_1.default.createElement("td", { ref: cellRef, key: field, headers: "".concat(tableId, "_header_").concat((_a = props.headerName) !== null && _a !== void 0 ? _a : field), style: {
279
- textAlign: getTextAlign({ type: type }),
280
- verticalAlign: editMode ? "top" : "middle",
281
- overflow: "auto",
282
- } }, showTooltip ? (react_1.default.createElement(Tooltip_1.default, { title: value, placement: "bottom", style: { maxWidth: "100%" }, enterDelay: 1500, enterNextDelay: 1500 },
283
- react_1.default.createElement("div", { style: {
284
- overflow: "hidden",
285
- textOverflow: "ellipsis",
286
- } }, CellComponent))) : (CellComponent)));
287
- };
288
- var BodyRow = function (props) {
289
- // prop destruction
290
- var tableId = props.tableId, columns = props.columns, rowId = props.rowId, editMode = props.editMode, noWrap = props.noWrap, row = props.row;
291
- // lib hooks
292
- // state, ref, querystring hooks
293
- // form hooks
294
- // query hooks
295
- // calculated values
296
- // effects
297
- // handlers
298
- return (react_1.default.createElement(react_1.default.Fragment, null, columns.map(function (column, i) { return (react_1.default.createElement(BodyCell, __assign({}, column, { tableId: tableId, key: "".concat(rowId, "_").concat(column.field.toString(), "_").concat(i), row: row, rowId: rowId, editMode: editMode, noWrap: noWrap }))); })));
299
- };
300
- function useDataTableRenderer(_a) {
301
- var rows = _a.rows, columnsProp = _a.columns, totalRowsProp = _a.rowCount, pagination = _a.pagination, paginationMode = _a.paginationMode, paginationModel = _a.paginationModel, onPaginationModelChange = _a.onPaginationModelChange, _b = _a.selectionModel, selectionModel = _b === void 0 ? [] : _b, onSelectionModelChange = _a.onSelectionModelChange, editMode = _a.editMode, _getId = _a.getId, _isTotalSelected = _a.isTotalSelected;
302
- var _c = (0, react_1.useState)((paginationModel === null || paginationModel === void 0 ? void 0 : paginationModel.page) || 1), page = _c[0], setPage = _c[1];
303
- var pageSize = (paginationModel === null || paginationModel === void 0 ? void 0 : paginationModel.pageSize) || 20;
304
- var getId = (0, react_1.useCallback)(function (row, index) {
305
- var _a, _b;
306
- return (_b = (_a = _getId === null || _getId === void 0 ? void 0 : _getId(row)) !== null && _a !== void 0 ? _a : row === null || row === void 0 ? void 0 : row.id) !== null && _b !== void 0 ? _b : "".concat((index || 0) + (page - 1) * pageSize);
307
- }, [_getId !== null && _getId !== void 0 ? _getId : page, pageSize]);
308
- var selectedModelSet = (0, react_1.useMemo)(function () { return new Set(selectionModel); }, [selectionModel]);
309
- var dataInPage = (0, react_1.useMemo)(function () {
310
- return !pagination || paginationMode === "server"
311
- ? rows
312
- : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize);
313
- }, [rows, page, pageSize, paginationMode, pagination]);
314
- var isAllSelected = (0, react_1.useMemo)(function () {
315
- return dataInPage.length > 0 &&
316
- dataInPage.every(function (row, i) { return selectedModelSet.has(getId(row, i)); });
317
- }, [dataInPage, selectedModelSet, getId]);
318
- var rowCount = totalRowsProp || rows.length;
319
- var isTotalSelected = (0, react_1.useMemo)(function () {
320
- return _isTotalSelected !== null && _isTotalSelected !== void 0 ? _isTotalSelected : (rowCount > 0 && selectionModel.length === rowCount);
321
- }, [_isTotalSelected, selectionModel, rowCount]);
322
- var columns = (0, react_1.useMemo)(function () {
323
- var baseColumns = columnsProp ||
324
- // fallback
325
- Object.keys(rows[0] || {}).map(function (key) { return ({
326
- field: key,
327
- }); });
328
- return baseColumns.map(function (column) {
329
- var _a;
330
- return (__assign(__assign({}, column), { isCellEditable: editMode &&
331
- (typeof column.isCellEditable === "function"
332
- ? column.isCellEditable
333
- : (_a = column.isCellEditable) !== null && _a !== void 0 ? _a : true) }));
334
- });
335
- }, [rows, columnsProp, editMode]);
336
- var handlePageChange = (0, react_1.useCallback)(function (newPage) {
337
- setPage(newPage);
338
- onPaginationModelChange === null || onPaginationModelChange === void 0 ? void 0 : onPaginationModelChange({ page: newPage, pageSize: pageSize });
339
- }, [onPaginationModelChange, pageSize]);
340
- (0, react_1.useEffect)(function () {
341
- handlePageChange(1);
342
- }, [rowCount, handlePageChange]);
343
- (0, react_1.useEffect)(function () {
344
- var lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
345
- if (page > lastPage) {
346
- handlePageChange(lastPage);
347
- }
348
- }, [page, rowCount, pageSize, handlePageChange]);
349
- (0, react_1.useEffect)(function () {
350
- onSelectionModelChange === null || onSelectionModelChange === void 0 ? void 0 : onSelectionModelChange([]);
351
- }, [page]);
352
- return {
353
- rowCount: rowCount,
354
- page: page,
355
- pageSize: pageSize,
356
- onPaginationModelChange: handlePageChange,
357
- getId: getId,
358
- HeadCell: HeadCell,
359
- BodyRow: BodyRow,
360
- dataInPage: dataInPage,
361
- isAllSelected: isAllSelected, // all rows are selected on this page
362
- isTotalSelected: isTotalSelected,
363
- isSelectedRow: (0, react_1.useCallback)(function (model) { return selectedModelSet.has(model); }, [selectedModelSet]),
364
- onAllCheckboxChange: (0, react_1.useCallback)(function () {
365
- onSelectionModelChange === null || onSelectionModelChange === void 0 ? void 0 : onSelectionModelChange(isAllSelected ? [] : dataInPage.map(getId));
366
- }, [isAllSelected, dataInPage, onSelectionModelChange, getId]),
367
- onCheckboxChange: (0, react_1.useCallback)(function (event, selectedModel) {
368
- if (selectedModelSet.has(selectedModel)) {
369
- var newSelectionModel = selectionModel.filter(function (model) { return model !== selectedModel; });
370
- onSelectionModelChange === null || onSelectionModelChange === void 0 ? void 0 : onSelectionModelChange(newSelectionModel);
371
- }
372
- else {
373
- var newSelectionModel = __spreadArray(__spreadArray([], selectionModel, true), [selectedModel], false);
374
- onSelectionModelChange === null || onSelectionModelChange === void 0 ? void 0 : onSelectionModelChange(newSelectionModel);
375
- }
376
- }, [selectionModel, onSelectionModelChange, selectedModelSet]),
377
- columns: columns,
378
- onTotalSelect: (0, react_1.useCallback)(function () {
379
- onSelectionModelChange === null || onSelectionModelChange === void 0 ? void 0 : onSelectionModelChange(isTotalSelected ? [] : rows.map(getId), !isTotalSelected);
380
- }, [isTotalSelected, rows, onSelectionModelChange, getId]),
381
- };
382
- }
383
- function DataTable(props) {
384
- // prop destruction
385
- var rows = props.rows, checkboxSelection = props.checkboxSelection, editMode = props.editMode, selectionModel = props.selectionModel, onSelectionModelChange = props.onSelectionModelChange, _ = props.rowCount, // rowCount is used in useDataTableRenderer
386
- __ = props.columns, // columns is used in useDataTableRenderer
387
- ___ = props.onPaginationModelChange, // onPaginationModelChange is used in useDataTableRenderer
388
- pagination = props.pagination, ____ = props.paginationMode, // paginationMode is used in useDataTableRenderer
389
- _____ = props.paginationModel, // paginationModel is used in useDataTableRenderer
390
- loading = props.loading, _a = props.slots, _b = _a === void 0 ? {} : _a, _c = _b.checkbox, RenderCheckbox = _c === void 0 ? Checkbox_1.default : _c, Toolbar = _b.toolbar, Footer = _b.footer, _d = _b.loadingOverlay, LoadingOverlay = _d === void 0 ? function () { return (react_1.default.createElement(joy_1.LinearProgress, { value: 8, variant: "plain" })); } : _d, _e = props.slotProps, _f = _e === void 0 ? {} : _e, _g = _f.checkbox, checkboxProps = _g === void 0 ? {} : _g, toolbarProps = _f.toolbar, _h = _f.background, backgroundProps = _h === void 0 ? {} : _h, innerProps = __rest(props, ["rows", "checkboxSelection", "editMode", "selectionModel", "onSelectionModelChange", "rowCount", "columns", "onPaginationModelChange", "pagination", "paginationMode", "paginationModel", "loading", "slots", "slotProps"]);
391
- // lib hooks
392
- var _j = useDataTableRenderer(props), columns = _j.columns, isAllSelected = _j.isAllSelected, isSelectedRow = _j.isSelectedRow, onAllCheckboxChange = _j.onAllCheckboxChange, onCheckboxChange = _j.onCheckboxChange, getId = _j.getId, rowCount = _j.rowCount, page = _j.page, pageSize = _j.pageSize, onPaginationModelChange = _j.onPaginationModelChange, dataInPage = _j.dataInPage, isTotalSelected = _j.isTotalSelected, onTotalSelect = _j.onTotalSelect, HeadCell = _j.HeadCell, BodyRow = _j.BodyRow;
393
- // state, ref, querystring hooks
394
- var tableId = (0, react_1.useId)();
395
- // form hooks
396
- // query hooks
397
- // calculated values
398
- var paginationModel = (0, react_1.useMemo)(function () { return ({ page: page, pageSize: pageSize }); }, [page, pageSize]);
399
- // effects
400
- // handlers
401
- return (react_1.default.createElement(Box_1.default, null,
402
- (!!checkboxSelection || !!Toolbar) && (react_1.default.createElement(Stack_1.default, { direction: "row", sx: {
403
- pt: 1,
404
- pb: 1,
405
- }, justifyContent: "space-between", alignItems: "center" },
406
- !!checkboxSelection && (react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 1 },
407
- !isAllSelected && (react_1.default.createElement(Typography_1.default, { level: "body-xs" },
408
- numberFormatter((selectionModel === null || selectionModel === void 0 ? void 0 : selectionModel.length) || 0),
409
- " items selected")),
410
- isAllSelected && !isTotalSelected && (react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 1, alignItems: "center" },
411
- react_1.default.createElement(Typography_1.default, { level: "body-xs" },
412
- "All ",
413
- numberFormatter((selectionModel === null || selectionModel === void 0 ? void 0 : selectionModel.length) || 0),
414
- " items on this page are selected."),
415
- react_1.default.createElement(Button_1.default, { size: "sm", variant: "plain", onClick: onTotalSelect },
416
- "Select all ",
417
- numberFormatter(rowCount !== null && rowCount !== void 0 ? rowCount : rows.length),
418
- " items"))),
419
- isTotalSelected && (react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 1, alignItems: "center" },
420
- react_1.default.createElement(Typography_1.default, { level: "body-xs" },
421
- "All ",
422
- numberFormatter(rowCount !== null && rowCount !== void 0 ? rowCount : rows.length),
423
- " items are selected."),
424
- react_1.default.createElement(Button_1.default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))))),
425
- Toolbar && react_1.default.createElement(Toolbar, __assign({}, (toolbarProps || {}))))),
426
- react_1.default.createElement(Sheet_1.default, __assign({ variant: "outlined", sx: {
427
- overflow: "auto",
428
- width: "100%",
429
- boxShadow: "sm",
430
- borderRadius: "sm",
431
- } }, backgroundProps),
432
- react_1.default.createElement(Table_1.Table, __assign({}, innerProps),
433
- react_1.default.createElement("thead", null,
434
- react_1.default.createElement("tr", null,
435
- checkboxSelection && (react_1.default.createElement("th", { style: {
436
- width: "40px",
437
- textAlign: "center",
438
- } },
439
- react_1.default.createElement(RenderCheckbox, __assign({ onChange: onAllCheckboxChange, checked: isAllSelected, indeterminate: (selectionModel || []).length > 0 && !isAllSelected }, checkboxProps)))),
440
- columns.map(function (c, i) { return (react_1.default.createElement(HeadCell, __assign({ tableId: tableId, key: "".concat(c.field.toString(), "_").concat(i), stickyHeader: props.stickyHeader, editMode: !!c.isCellEditable }, c))); }))),
441
- react_1.default.createElement("tbody", null,
442
- react_1.default.createElement(OverlayWrapper, null, !!loading && (react_1.default.createElement("td", null,
443
- react_1.default.createElement(Box_1.default, { sx: {
444
- position: "absolute",
445
- top: 0,
446
- left: 0,
447
- right: 0,
448
- } },
449
- react_1.default.createElement(LoadingOverlay, null))))),
450
- react_1.default.createElement(OverlayWrapper, null),
451
- dataInPage.map(function (row, rowIndex) {
452
- var rowId = getId(row, rowIndex);
453
- return (react_1.default.createElement("tr", { key: rowId, role: checkboxSelection ? "checkbox" : undefined, tabIndex: checkboxSelection ? -1 : undefined, onClick: checkboxSelection
454
- ? function (e) { return onCheckboxChange(e, rowId); }
455
- : undefined, "aria-checked": checkboxSelection ? isSelectedRow(rowId) : undefined },
456
- checkboxSelection && (react_1.default.createElement("th", { scope: "row", style: {
457
- textAlign: "center",
458
- } },
459
- react_1.default.createElement(RenderCheckbox, __assign({ onChange: function (e) { return onCheckboxChange(e, rowId); }, checked: isSelectedRow(rowId) }, checkboxProps)))),
460
- react_1.default.createElement(BodyRow, { tableId: tableId, columns: columns, row: row, rowId: rowId, editMode: editMode, noWrap: props.noWrap })));
461
- })),
462
- Footer && react_1.default.createElement(Footer, null))),
463
- pageSize < rowCount && pagination && (react_1.default.createElement(TablePagination, { paginationModel: paginationModel, rowCount: rowCount, onPageChange: onPaginationModelChange }))));
464
- }
465
- exports.DataTable = DataTable;
466
- DataTable.displayName = "DataTable";
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- var DataTable_1 = require("./DataTable");
18
- __exportStar(require("./DataTable"), exports);
19
- exports.default = DataTable_1.DataTable;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });