pixelize-design-library 2.1.66 → 2.1.68

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.
@@ -34,6 +34,7 @@ var TableHeader_1 = __importDefault(require("./Components/TableHeader"));
34
34
  var TableBody_1 = __importDefault(require("./Components/TableBody"));
35
35
  var useCustomTheme_1 = require("../../Theme/useCustomTheme");
36
36
  var useTable_1 = __importDefault(require("./Components/useTable"));
37
+ var table_1 = require("../../Utils/table");
37
38
  var usePreferences_1 = require("../../Hooks/usePreferences");
38
39
  var TableSettings_1 = __importDefault(require("./TableSettings/TableSettings"));
39
40
  var HeaderActions_1 = __importDefault(require("./Components/HeaderActions"));
@@ -41,14 +42,14 @@ var Divider_1 = __importDefault(require("../Divider/Divider"));
41
42
  var TableSearch_1 = __importDefault(require("./Components/TableSearch"));
42
43
  function Table(_a) {
43
44
  var _b, _c, _d, _e, _f, _g;
44
- var data = _a.data, columns = _a.columns, onSelection = _a.onSelection, isLoading = _a.isLoading, _h = _a.isCheckbox, isCheckbox = _h === void 0 ? false : _h, headerBgColor = _a.headerBgColor, freezedBgColor = _a.freezedBgColor, headerTextColor = _a.headerTextColor, freezedTextColor = _a.freezedTextColor, tableBorderColor = _a.tableBorderColor, _j = _a.noBorders, noBorders = _j === void 0 ? false : _j, _k = _a.isPagination, isPagination = _k === void 0 ? true : _k, onRowClick = _a.onRowClick, selections = _a.selections, _l = _a.isActionFreeze, isActionFreeze = _l === void 0 ? true : _l, _m = _a.preferencesUrl, preferencesUrl = _m === void 0 ? "" : _m, _o = _a.preferencesKey, preferencesKey = _o === void 0 ? "" : _o, _p = _a.preferencesName, preferencesName = _p === void 0 ? "" : _p, _q = _a.preferencesPage, preferencesPage = _q === void 0 ? "" : _q, _r = _a.authToken, authToken = _r === void 0 ? "" : _r, _s = _a.paginationMode, paginationMode = _s === void 0 ? "client" : _s, _t = _a.noOfRowsPerPage, noOfRowsPerPage = _t === void 0 ? 50 : _t, _u = _a.totalRecords, totalRecords = _u === void 0 ? 0 : _u, onPagination = _a.onPagination, _v = _a.isTableSettings, isTableSettings = _v === void 0 ? false : _v, headerActions = _a.headerActions, onGlobalSearch = _a.onGlobalSearch, onColumnFilter = _a.onColumnFilter;
45
+ var data = _a.data, columns = _a.columns, onSelection = _a.onSelection, isLoading = _a.isLoading, _h = _a.isCheckbox, isCheckbox = _h === void 0 ? false : _h, headerBgColor = _a.headerBgColor, freezedBgColor = _a.freezedBgColor, headerTextColor = _a.headerTextColor, freezedTextColor = _a.freezedTextColor, tableBorderColor = _a.tableBorderColor, _j = _a.noBorders, noBorders = _j === void 0 ? false : _j, _k = _a.isPagination, isPagination = _k === void 0 ? true : _k, onRowClick = _a.onRowClick, selections = _a.selections, _l = _a.isActionFreeze, isActionFreeze = _l === void 0 ? true : _l, _m = _a.preferencesUrl, preferencesUrl = _m === void 0 ? "" : _m, _o = _a.preferencesKey, preferencesKey = _o === void 0 ? "" : _o, _p = _a.preferencesName, preferencesName = _p === void 0 ? "" : _p, _q = _a.preferencesPage, preferencesPage = _q === void 0 ? "" : _q, _r = _a.authToken, authToken = _r === void 0 ? "" : _r, _s = _a.paginationMode, paginationMode = _s === void 0 ? "client" : _s, _t = _a.noOfRowsPerPage, noOfRowsPerPage = _t === void 0 ? 50 : _t, _u = _a.totalRecords, totalRecords = _u === void 0 ? 0 : _u, onPagination = _a.onPagination, _v = _a.isTableSettings, isTableSettings = _v === void 0 ? false : _v, headerActions = _a.headerActions, onGlobalSearch = _a.onGlobalSearch;
45
46
  var theme = (0, useCustomTheme_1.useCustomTheme)();
46
47
  var _w = (0, react_1.useState)({}), columnsSearch = _w[0], setColumnsSearch = _w[1];
47
- (0, react_1.useEffect)(function () {
48
- if (onColumnFilter) {
49
- onColumnFilter(columnsSearch);
50
- }
51
- }, [columnsSearch, onColumnFilter]);
48
+ // useEffect(() => {
49
+ // if (onColumnFilter) {
50
+ // onColumnFilter(columnsSearch);
51
+ // }
52
+ // }, [columnsSearch, onColumnFilter]);
52
53
  var isServerPagination = paginationMode === "server";
53
54
  var _x = (0, usePreferences_1.useGetPreferences)({
54
55
  baseUrl: preferencesUrl,
@@ -86,9 +87,9 @@ function Table(_a) {
86
87
  totalRecords: totalRecords,
87
88
  isServerPagination: isServerPagination,
88
89
  }), tableData = _y.tableData, isContent = _y.isContent, isLink = _y.isLink, headerRefs = _y.headerRefs, columnWidths = _y.columnWidths, handleSort = _y.handleSort, handleCheckbox = _y.handleCheckbox, filteredData = _y.filteredData, startRow = _y.startRow, endRow = _y.endRow, selection = _y.selection, columnsSort = _y.columnsSort, currentPage = _y.currentPage, pages = _y.pages, rowsPerPage = _y.rowsPerPage, handlePageSizeChange = _y.handlePageSizeChange, setCurrentPage = _y.setCurrentPage, columnsList = _y.columnsList, handleColumnPreferences = _y.handleColumnPreferences;
89
- // const _filteredData = useMemo(() => {
90
- // return searchAndSortData(filteredData, columnsSearch);
91
- // }, [columnsSearch, filteredData]);
90
+ var _filteredData = (0, react_1.useMemo)(function () {
91
+ return (0, table_1.searchAndSortData)(filteredData, columnsSearch);
92
+ }, [columnsSearch, filteredData]);
92
93
  (0, react_1.useEffect)(function () {
93
94
  if (onPagination) {
94
95
  onPagination(currentPage + 1, noOfRowsPerPage);
@@ -128,6 +129,6 @@ function Table(_a) {
128
129
  ? false
129
130
  : "indeterminate", isContent: isContent, isLink: isLink, isActionFreeze: isActionFreeze, setColumnsSearch: setColumnsSearch, columnsSearch: columnsSearch })),
130
131
  react_1.default.createElement(react_3.Tbody, null,
131
- react_1.default.createElement(TableBody_1.default, { data: filteredData, columns: columnsList, startRow: startRow, endRow: endRow, isCheckbox: isCheckbox, columnWidths: columnWidths, noBorders: noBorders, freezedBgColor: freezedBgColor !== null && freezedBgColor !== void 0 ? freezedBgColor : theme.colors.backgroundColor.secondary, freezedTextColor: freezedTextColor !== null && freezedTextColor !== void 0 ? freezedTextColor : (_g = theme.colors) === null || _g === void 0 ? void 0 : _g.gray[600], handleCheckbox: handleCheckbox, selections: selection, isLoading: isTableLoading, onRowClick: onRowClick, isContent: isContent, isLink: isLink, isActionFreeze: isActionFreeze }))))));
132
+ react_1.default.createElement(TableBody_1.default, { data: _filteredData, columns: columnsList, startRow: startRow, endRow: endRow, isCheckbox: isCheckbox, columnWidths: columnWidths, noBorders: noBorders, freezedBgColor: freezedBgColor !== null && freezedBgColor !== void 0 ? freezedBgColor : theme.colors.backgroundColor.secondary, freezedTextColor: freezedTextColor !== null && freezedTextColor !== void 0 ? freezedTextColor : (_g = theme.colors) === null || _g === void 0 ? void 0 : _g.gray[600], handleCheckbox: handleCheckbox, selections: selection, isLoading: isTableLoading, onRowClick: onRowClick, isContent: isContent, isLink: isLink, isActionFreeze: isActionFreeze }))))));
132
133
  }
133
134
  exports.default = Table;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const KaTableExample: () => React.JSX.Element;
3
+ export default KaTableExample;
@@ -0,0 +1,259 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ var react_1 = __importStar(require("react"));
41
+ var KaTable_1 = __importDefault(require("../Components/KaTable/KaTable"));
42
+ var KaTable_2 = require("../Components/KaTable/KaTable");
43
+ var icons_1 = require("@chakra-ui/icons");
44
+ var react_2 = require("@chakra-ui/react");
45
+ var menuItems = [
46
+ { label: "Hide column", action: "hidecolumn" },
47
+ {
48
+ label: "Filter",
49
+ submenu: [
50
+ { label: "Filter by Date", action: "Filter by Date" },
51
+ { label: "Filter by Name", action: "Filter by Name" },
52
+ { label: "Filter by Status", action: "Filter by Status" },
53
+ ],
54
+ },
55
+ ];
56
+ var DataType = KaTable_2.TableEnums.DataType;
57
+ var dataArray = Array(5)
58
+ .fill(undefined)
59
+ .map(function (_, index) { return ({
60
+ column1: index % 2 === 0,
61
+ column2: "column:2 row:".concat(index + 1),
62
+ column3: "column:3 row:".concat(index + 1),
63
+ column4: "column:4 row:".concat(index + 1),
64
+ column5: "column:5 row:".concat(index + 1),
65
+ column6: index + 20,
66
+ column7: index + 25,
67
+ column8: index + 30,
68
+ column9: index + 35,
69
+ column10: index + 40,
70
+ column11: index + 45,
71
+ column12: index + 50,
72
+ column13: index + 55,
73
+ column14: index + 60,
74
+ column15: new Date(2022, 11, index),
75
+ id: index + 1,
76
+ }); });
77
+ var columns = [
78
+ {
79
+ key: "column1",
80
+ title: "Column 1",
81
+ dataType: DataType.Boolean,
82
+ width: 100,
83
+ columnFreeze: true,
84
+ customHeader: false,
85
+ },
86
+ {
87
+ key: "column2",
88
+ title: "Column 2",
89
+ dataType: DataType.String,
90
+ width: 250,
91
+ // visible: false,
92
+ },
93
+ {
94
+ key: "column3",
95
+ title: "Column 3",
96
+ dataType: DataType.Number,
97
+ width: 150,
98
+ filter: true,
99
+ menu: [
100
+ {
101
+ label: "Filter",
102
+ onClick: function () { return console.log("MENU Filter clicks"); },
103
+ submenu: [
104
+ {
105
+ label: "Filter by Date",
106
+ onClick: function () { return console.log("SUBMENU Date clicks"); },
107
+ },
108
+ { label: "Filter by Name" },
109
+ // { label: "Filter by Status", action: "Filter by Status" },
110
+ ],
111
+ },
112
+ ],
113
+ },
114
+ {
115
+ key: "column4",
116
+ title: "Column 4",
117
+ dataType: DataType.Number,
118
+ width: 150,
119
+ sortable: true,
120
+ },
121
+ {
122
+ key: "column5",
123
+ title: "Column 5",
124
+ dataType: DataType.Number,
125
+ width: 150,
126
+ },
127
+ {
128
+ key: "column6",
129
+ title: "Column 6",
130
+ dataType: DataType.Number,
131
+ width: 150,
132
+ },
133
+ {
134
+ key: "column7",
135
+ title: "Column 7",
136
+ dataType: DataType.Number,
137
+ width: 150,
138
+ sortable: true,
139
+ },
140
+ {
141
+ key: "column8",
142
+ title: "Column 8",
143
+ dataType: DataType.Number,
144
+ width: 150,
145
+ },
146
+ {
147
+ key: "column9",
148
+ title: "Column 9",
149
+ dataType: DataType.Number,
150
+ width: 150,
151
+ },
152
+ {
153
+ key: "column10",
154
+ title: "Column 10",
155
+ dataType: DataType.Number,
156
+ width: 150,
157
+ },
158
+ {
159
+ key: "column11",
160
+ title: "Column 11",
161
+ dataType: DataType.Number,
162
+ width: 150,
163
+ },
164
+ {
165
+ key: "column12",
166
+ title: "Column 12",
167
+ dataType: DataType.Number,
168
+ width: 150,
169
+ },
170
+ {
171
+ key: "column13",
172
+ title: "Column 13",
173
+ dataType: DataType.Number,
174
+ width: 150,
175
+ },
176
+ {
177
+ key: "column14",
178
+ title: "Column 14",
179
+ dataType: DataType.Number,
180
+ width: 150,
181
+ },
182
+ {
183
+ key: "column15",
184
+ title: "Column 15",
185
+ dataType: DataType.Date,
186
+ width: 150,
187
+ },
188
+ {
189
+ key: "editColumn",
190
+ width: 80,
191
+ customHeader: false,
192
+ },
193
+ ];
194
+ var KaTableExample = function () {
195
+ var _a = (0, react_1.useState)(false), actionButtons = _a[0], setActionButtons = _a[1];
196
+ var _b = (0, react_1.useState)([]), selectedRows = _b[0], setSelectedRows = _b[1];
197
+ // const kaTableFormat = (props: any) => {
198
+ // if (props.column.dataType === DataType.Date) {
199
+ // return (
200
+ // props.value &&
201
+ // props.value.toLocaleDateString("en", {
202
+ // month: "2-digit",
203
+ // day: "2-digit",
204
+ // year: "numeric",
205
+ // })
206
+ // );
207
+ // }
208
+ // };
209
+ var EditButton = function (_a) {
210
+ var dispatch = _a.dispatch, rowKeyValue = _a.rowKeyValue;
211
+ return (react_1.default.createElement("div", { className: "edit-cell-button" },
212
+ react_1.default.createElement(icons_1.EditIcon, null),
213
+ react_1.default.createElement(icons_1.DeleteIcon, null)));
214
+ };
215
+ // const handleSortChange = (newSortState: any, columnName: any) => {
216
+ // console.log(`Sort state for ${columnName} changed to:`, newSortState);
217
+ // };
218
+ // const handleMenuItemClick = (action: any, columnName: any) => {
219
+ // console.log(`Menu item clicked for ${columnName}:`, action);
220
+ // };
221
+ var handleCheckSelect = (0, react_1.useCallback)(function (selectedRows) {
222
+ console.log("CB", selectedRows);
223
+ if (selectedRows.length !== 0) {
224
+ setActionButtons(true);
225
+ }
226
+ else {
227
+ setActionButtons(false);
228
+ }
229
+ setSelectedRows(selectedRows);
230
+ }, []);
231
+ // console.log(actionButtons, "actionButtons");
232
+ var handleExample = function () {
233
+ setSelectedRows([]);
234
+ };
235
+ // console.log(selectedRows, "selectedRows");
236
+ return (react_1.default.createElement("div", null,
237
+ react_1.default.createElement(react_2.Button, { onClick: handleExample }, "click here"),
238
+ react_1.default.createElement(KaTable_1.default, { data: dataArray, columns: columns, checkSelect: true, onRowClick: function (rowKeyValue) {
239
+ console.log("Row clicked", rowKeyValue);
240
+ }, selected: selectedRows, onSelectionChange: function (selectedRows) {
241
+ handleCheckSelect(selectedRows);
242
+ }, columnVisibility: true,
243
+ // onSortChange={handleSortChange}
244
+ // onMenuItemClick={handleMenuItemClick}
245
+ // format={kaTableFormat}
246
+ childComponents: {
247
+ cellText: {
248
+ content: function (props) {
249
+ if (props.column.key === "editColumn") {
250
+ return react_1.default.createElement(EditButton, __assign({}, props));
251
+ }
252
+ },
253
+ },
254
+ }, loading: {
255
+ enabled: false,
256
+ text: "Loading data",
257
+ } })));
258
+ };
259
+ exports.default = KaTableExample;
@@ -59,10 +59,13 @@ var DatePick = function () {
59
59
  return (react_1.default.createElement("div", null,
60
60
  react_1.default.createElement("h2", null, "Single Date Picker"),
61
61
  react_1.default.createElement("h2", null, "Date "),
62
+ react_1.default.createElement(DatePicker_1.default, { selectedDate: selectedDate, onChange: handleDateChange, dateFormat: "dd/MM/yyyy", pickerType: "date", width: "300px", error: true, errorMessage: "Invalid date", disableToday: true }),
62
63
  react_1.default.createElement("h2", null, "time "),
64
+ react_1.default.createElement(DatePicker_1.default, { selectedDate: selectedTime, onChange: handleTimeChange, dateFormat: "HH:mm", pickerType: "time", width: "300px", error: true, errorMessage: "Invalid date" }),
63
65
  react_1.default.createElement("h2", null, "datetime "),
64
66
  react_1.default.createElement(DatePicker_1.default, { selectedDate: selectedDateTime, onChange: handleDateTimeChange, dateFormat: "dd/MM/yyyy HH:mm", pickerType: "datetime", width: "300px", error: true, errorMessage: "Invalid date" }),
65
67
  react_1.default.createElement("br", null),
66
- react_1.default.createElement("h2", null, "Date Range Picker")));
68
+ react_1.default.createElement("h2", null, "Date Range Picker"),
69
+ react_1.default.createElement(DatePicker_1.default, { isRange: true, dateFormat: "dd/MM/yyyy", pickerType: "date", onChange: handleDateRangeChange, selectedDate: selectedDateRange, width: "300px", error: true, errorMessage: "Invalid date" })));
67
70
  };
68
71
  exports.default = DatePick;
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TableExample = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var Table_1 = __importDefault(require("../Components/Table/Table"));
9
+ var react_2 = require("@chakra-ui/react");
9
10
  var tableData = [
10
11
  {
11
12
  id: 1,
12
- name: "John Doe1",
13
+ name: (react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: "0.5rem" },
14
+ react_1.default.createElement("span", null, "\uD83D\uDE00"),
15
+ " John Doe1")),
13
16
  age: 30,
14
17
  gender: "Male",
15
18
  onLink: function (url) {
@@ -0,0 +1,35 @@
1
+ import "@fontsource/ubuntu-sans";
2
+ declare const fontOptions: {
3
+ fonts: {
4
+ body: string;
5
+ heading: string;
6
+ mono: string;
7
+ };
8
+ fontSizes: {
9
+ xs: string;
10
+ sm: string;
11
+ md: string;
12
+ lg: string;
13
+ xl: string;
14
+ "2xl": string;
15
+ "3xl": string;
16
+ "4xl": string;
17
+ "5xl": string;
18
+ "6xl": string;
19
+ "7xl": string;
20
+ "8xl": string;
21
+ "9xl": string;
22
+ };
23
+ fontWeights: {
24
+ hairline: number;
25
+ thin: number;
26
+ light: number;
27
+ normal: number;
28
+ medium: number;
29
+ semibold: number;
30
+ bold: number;
31
+ extrabold: number;
32
+ black: number;
33
+ };
34
+ };
35
+ export default fontOptions;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("@fontsource/ubuntu-sans");
4
+ var fontOptions = {
5
+ fonts: {
6
+ body: "Ubuntu Sans, serif",
7
+ heading: "Ubuntu Sans, serif",
8
+ mono: "Ubuntu Sans, monospace",
9
+ },
10
+ fontSizes: {
11
+ xs: "0.75rem",
12
+ sm: "0.875rem",
13
+ md: "1rem",
14
+ lg: "1.125rem",
15
+ xl: "1.25rem",
16
+ "2xl": "1.5rem",
17
+ "3xl": "1.875rem",
18
+ "4xl": "2.25rem",
19
+ "5xl": "3rem",
20
+ "6xl": "3.75rem",
21
+ "7xl": "4.5rem",
22
+ "8xl": "6rem",
23
+ "9xl": "8rem",
24
+ },
25
+ fontWeights: {
26
+ hairline: 100,
27
+ thin: 200,
28
+ light: 300,
29
+ normal: 400,
30
+ medium: 500,
31
+ semibold: 600,
32
+ bold: 700,
33
+ extrabold: 800,
34
+ black: 900,
35
+ },
36
+ };
37
+ exports.default = fontOptions;
@@ -1,4 +1,27 @@
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
26
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
27
  if (ar || !(i in from)) {
@@ -10,7 +33,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
10
33
  };
11
34
  Object.defineProperty(exports, "__esModule", { value: true });
12
35
  exports.globalSearchFilter = exports.TableCellCalculation = exports.pageSizeCalculation = exports.useDebounce = exports.debounce = exports.searchAndSortData = exports.calculateLeftOffset = exports.SortMultiColumnData = void 0;
13
- var react_1 = require("react");
36
+ var react_1 = __importStar(require("react"));
14
37
  var useCustomTheme_1 = require("../Theme/useCustomTheme");
15
38
  function SortMultiColumnData(data, sortConfig) {
16
39
  if (!sortConfig.length)
@@ -37,11 +60,65 @@ var calculateLeftOffset = function (columns, index) {
37
60
  return columns.slice(0, index).reduce(function (sum, width) { return sum + width; }, 0);
38
61
  };
39
62
  exports.calculateLeftOffset = calculateLeftOffset;
63
+ // export const searchAndSortData = (
64
+ // data: DataObject[],
65
+ // searchValues: Record<string, string>
66
+ // ) => {
67
+ // const filteredData = data.filter((item) => {
68
+ // return Object.keys(searchValues).every((key) => {
69
+ // const searchValue = searchValues[key].toLowerCase();
70
+ // return item[key].toString().toLowerCase().includes(searchValue);
71
+ // });
72
+ // });
73
+ // return filteredData.sort((a, b) => {
74
+ // let aMatchCount = 0;
75
+ // let bMatchCount = 0;
76
+ // Object.keys(searchValues).forEach((key) => {
77
+ // const searchValue = searchValues[key].toLowerCase();
78
+ // if (a[key] && a[key].toString().toLowerCase() === searchValue) {
79
+ // aMatchCount++;
80
+ // }
81
+ // if (b[key] && b[key].toString().toLowerCase() === searchValue) {
82
+ // bMatchCount++;
83
+ // }
84
+ // if (a[key] && a[key].toString().toLowerCase().includes(searchValue)) {
85
+ // aMatchCount += 0.5;
86
+ // }
87
+ // if (b[key] && b[key].toString().toLowerCase().includes(searchValue)) {
88
+ // bMatchCount += 0.5;
89
+ // }
90
+ // });
91
+ // return bMatchCount - aMatchCount;
92
+ // });
93
+ // };
94
+ var extractTextFromReactNode = function (node) {
95
+ if (typeof node === "string" || typeof node === "number") {
96
+ return String(node);
97
+ }
98
+ if (Array.isArray(node)) {
99
+ return node.map(extractTextFromReactNode).join(" ");
100
+ }
101
+ if (react_1.default.isValidElement(node)) {
102
+ var element = node;
103
+ return extractTextFromReactNode(element.props.children);
104
+ }
105
+ return "";
106
+ };
107
+ var getStringValue = function (value) {
108
+ if (typeof value === "string" || typeof value === "number") {
109
+ return String(value);
110
+ }
111
+ if (react_1.default.isValidElement(value)) {
112
+ return extractTextFromReactNode(value);
113
+ }
114
+ return "";
115
+ };
40
116
  var searchAndSortData = function (data, searchValues) {
41
117
  var filteredData = data.filter(function (item) {
42
118
  return Object.keys(searchValues).every(function (key) {
43
119
  var searchValue = searchValues[key].toLowerCase();
44
- return item[key].toString().toLowerCase().includes(searchValue);
120
+ var itemValue = getStringValue(item[key]).toLowerCase();
121
+ return itemValue.includes(searchValue);
45
122
  });
46
123
  });
47
124
  return filteredData.sort(function (a, b) {
@@ -49,18 +126,16 @@ var searchAndSortData = function (data, searchValues) {
49
126
  var bMatchCount = 0;
50
127
  Object.keys(searchValues).forEach(function (key) {
51
128
  var searchValue = searchValues[key].toLowerCase();
52
- if (a[key] && a[key].toString().toLowerCase() === searchValue) {
129
+ var aValue = getStringValue(a[key]).toLowerCase();
130
+ var bValue = getStringValue(b[key]).toLowerCase();
131
+ if (aValue === searchValue)
53
132
  aMatchCount++;
54
- }
55
- if (b[key] && b[key].toString().toLowerCase() === searchValue) {
133
+ if (bValue === searchValue)
56
134
  bMatchCount++;
57
- }
58
- if (a[key] && a[key].toString().toLowerCase().includes(searchValue)) {
135
+ if (aValue.includes(searchValue))
59
136
  aMatchCount += 0.5;
60
- }
61
- if (b[key] && b[key].toString().toLowerCase().includes(searchValue)) {
137
+ if (bValue.includes(searchValue))
62
138
  bMatchCount += 0.5;
63
- }
64
139
  });
65
140
  return bMatchCount - aMatchCount;
66
141
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.1.66",
3
+ "version": "2.1.68",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",