pixelize-design-library 2.2.46 → 2.2.51

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 (43) hide show
  1. package/dist/Assets/defaultLogo.tsx +31 -0
  2. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.d.ts +1 -0
  3. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.js +6 -0
  4. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.d.ts +4 -0
  5. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.js +58 -0
  6. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChartProps.d.ts +21 -0
  7. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChartProps.js +2 -0
  8. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.d.ts +1 -0
  9. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.js +6 -0
  10. package/dist/Components/Card/PaymentCard/PaymentCard.js +1 -1
  11. package/dist/Components/DatePicker/DatePicker.js +2 -2
  12. package/dist/Components/DatePicker/RangeDatePicker.js +1 -1
  13. package/dist/Components/DatePicker/SingleDatePicker.js +2 -2
  14. package/dist/Components/DatePicker/TimePicker.js +13 -5
  15. package/dist/Components/InputTextArea/InputTextArea.stories.d.ts +1 -0
  16. package/dist/Components/InputTextArea/InputTextArea.stories.js +7 -0
  17. package/dist/Components/KaTable/CustomHeader.d.ts +14 -0
  18. package/dist/Components/KaTable/CustomHeader.js +69 -0
  19. package/dist/Components/KaTable/KaTable.d.ts +13 -0
  20. package/dist/Components/KaTable/KaTable.js +111 -0
  21. package/dist/Components/KaTable/KaTableProps.d.ts +23 -0
  22. package/dist/Components/KaTable/KaTableProps.js +2 -0
  23. package/dist/Components/KaTable/SelectionCell.d.ts +8 -0
  24. package/dist/Components/KaTable/SelectionCell.js +38 -0
  25. package/dist/Components/KaTable/SelectionHeader.d.ts +3 -0
  26. package/dist/Components/KaTable/SelectionHeader.js +56 -0
  27. package/dist/Components/KaTable/ka-table.css +27 -0
  28. package/dist/Components/KaTable/useMergedChildComponents.d.ts +14 -0
  29. package/dist/Components/KaTable/useMergedChildComponents.js +224 -0
  30. package/dist/Components/NumberInput/NumberInput.stories.d.ts +1 -0
  31. package/dist/Components/NumberInput/NumberInput.stories.js +5 -0
  32. package/dist/Components/Table/Table.css +16 -0
  33. package/dist/Components/Table/Table.d.ts +1 -1
  34. package/dist/Components/Table/Table.js +2 -2
  35. package/dist/Components/Table/TableProps.d.ts +6 -1
  36. package/dist/Components/Table/TableSettings/ManageColumns.js +1 -1
  37. package/dist/Components/Table/TableSettings/TableFilters.d.ts +10 -0
  38. package/dist/Components/Table/TableSettings/TableFilters.js +66 -0
  39. package/dist/Components/Table/TableSettings/TableSettings.d.ts +2 -1
  40. package/dist/Components/Table/TableSettings/TableSettings.js +25 -18
  41. package/dist/Theme/Default/fonts.d.ts +35 -0
  42. package/dist/Theme/Default/fonts.js +37 -0
  43. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { useCustomTheme } from "../Theme/useCustomTheme";
3
+
4
+ const DefaultLogo = () => {
5
+ const theme = useCustomTheme();
6
+ return (
7
+ <svg
8
+ width="12.09"
9
+ height="15.95"
10
+ viewBox="0 0 31 29"
11
+ fill="none"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ >
14
+ <path
15
+ d="M30.4999 6.26137V7.81058H15.9761H14.8787V22.8508V28.8862H12.5226C9.6824 28.8862 7.32632 26.4656 7.06812 23.3995C7.06812 23.2381 7.06812 23.0444 7.06812 22.8508V18.3323C7.06812 18.2677 7.06812 18.2032 7.06812 18.1063V15.5889V6.2291C7.06812 2.80793 9.84378 -5.72205e-06 13.2972 -5.72205e-06H24.8517C28.0147 0.355021 30.4676 3.00158 30.4676 6.2291L30.4999 6.26137Z"
16
+ fill={theme.colors.black}
17
+ />
18
+ <path
19
+ d="M7.10053 23.3672H7.03598C5.16402 23.2381 3.48571 22.4635 2.25926 21.3338C0.871428 20.0428 0 18.2677 0 16.3312V15.6211H7.06825V18.1386C7.06825 18.2032 7.06825 18.2677 7.06825 18.3645V22.883C7.06825 23.0767 7.06825 23.2381 7.06825 23.4317L7.10053 23.3672Z"
20
+ fill={theme.colors.black}
21
+ />
22
+ <path
23
+ d="M30.4678 12.0063V15.6211V17.1703C30.4678 20.6238 26.272 23.3994 21.0757 23.3994H14.8789V22.8508V15.6211H22.6572V7.81056C22.6895 7.81056 30.5001 7.81056 30.5001 7.81056V11.5868C30.5001 11.7159 30.5001 11.8772 30.5001 12.0063H30.4678Z"
24
+ fill={theme.colors.black}
25
+ />
26
+ </svg>
27
+
28
+ )
29
+ };
30
+
31
+ export default DefaultLogo;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // import React from 'react';
3
+ // import { StoryFn, Meta } from '@storybook/react';
4
+ // import ApexBarChart from './ApexBarChart';
5
+ // import { ApexBarChartProps } from './ApexBarChartProps';
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ApexDonutChartProps } from "./ApexDonutChartProps";
3
+ declare const ApexDonutChart: ({ data, labels, title, titlePosition, height, width, donutColors, chartColor, titleStyle, legendStyle, }: ApexDonutChartProps) => React.JSX.Element;
4
+ export default ApexDonutChart;
@@ -0,0 +1,58 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var react_apexcharts_1 = __importDefault(require("react-apexcharts"));
19
+ var ApexDonutChart = function (_a) {
20
+ var _b;
21
+ var data = _a.data, labels = _a.labels, title = _a.title, _c = _a.titlePosition, titlePosition = _c === void 0 ? "center" : _c, _d = _a.height, height = _d === void 0 ? 400 : _d, _e = _a.width, width = _e === void 0 ? 500 : _e, donutColors = _a.donutColors, chartColor = _a.chartColor, _f = _a.titleStyle, titleStyle = _f === void 0 ? {
22
+ color: "#3182ce",
23
+ fontSize: "16px",
24
+ fontWeight: 600,
25
+ fontFamily: "Arial",
26
+ } : _f, _g = _a.legendStyle, legendStyle = _g === void 0 ? {
27
+ colors: "#000",
28
+ position: "bottom",
29
+ useSeriesColors: false,
30
+ } : _g;
31
+ var options = {
32
+ chart: {
33
+ type: "donut",
34
+ },
35
+ labels: labels,
36
+ colors: (_b = chartColor !== null && chartColor !== void 0 ? chartColor : donutColors) !== null && _b !== void 0 ? _b : ["#3182ce", "#e53e3e", "#38a169", "#dd6b20"],
37
+ legend: {
38
+ position: legendStyle.position,
39
+ labels: {
40
+ colors: legendStyle.colors,
41
+ useSeriesColors: legendStyle.useSeriesColors,
42
+ },
43
+ },
44
+ title: {
45
+ text: title,
46
+ align: titlePosition,
47
+ style: __assign(__assign({}, titleStyle), { fontSize: (titleStyle === null || titleStyle === void 0 ? void 0 : titleStyle.fontSize)
48
+ ? String(titleStyle.fontSize) // ✅ ensures string if number passed
49
+ : undefined }),
50
+ },
51
+ dataLabels: {
52
+ enabled: true,
53
+ },
54
+ };
55
+ return (react_1.default.createElement("div", null,
56
+ react_1.default.createElement(react_apexcharts_1.default, { options: options, series: data, type: "donut", height: height, width: width })));
57
+ };
58
+ exports.default = ApexDonutChart;
@@ -0,0 +1,21 @@
1
+ export type ApexDonutChartProps = {
2
+ data: number[];
3
+ labels: string[];
4
+ title?: string;
5
+ titlePosition?: "left" | "center" | "right";
6
+ height?: number;
7
+ width?: number;
8
+ donutColors?: string[];
9
+ chartColor?: string[];
10
+ titleStyle?: {
11
+ color?: string;
12
+ fontSize?: string | number;
13
+ fontWeight?: number | string;
14
+ fontFamily?: string;
15
+ };
16
+ legendStyle?: {
17
+ colors?: string | string[];
18
+ useSeriesColors?: boolean;
19
+ position?: "top" | "right" | "bottom" | "left";
20
+ };
21
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // import React from 'react';
3
+ // import { StoryFn, Meta } from '@storybook/react';
4
+ // import ApexPieChart from './ApexPieChart';
5
+ // import { ApexPieChartProps } from './ApexPieChartProps';
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -89,7 +89,7 @@ var PaymentCard = function (_a) {
89
89
  react_1.default.createElement(react_2.Box, { display: "flex", flexDirection: "column", justifyContent: "end", ml: 1 },
90
90
  react_1.default.createElement(react_2.Text, { fontSize: "0.9rem", fontWeight: "normal", color: theme.colors.gray[600] }, plan.billing),
91
91
  react_1.default.createElement(react_2.Text, { fontSize: "0.7rem", fontWeight: "normal", color: theme.colors.gray[600] }, plan.tax)))),
92
- plan.priceDescription && (react_1.default.createElement(react_2.Text, { color: theme.colors.gray[600], mt: 2 }, plan === null || plan === void 0 ? void 0 : plan.priceDescription)),
92
+ plan.priceDescription && (react_1.default.createElement(react_2.Text, { color: theme.colors.green[800], mt: 2 }, plan === null || plan === void 0 ? void 0 : plan.priceDescription)),
93
93
  react_1.default.createElement(react_2.Text, { color: theme.colors.gray[600], mt: 2 }, plan.description)),
94
94
  !isActive && (react_1.default.createElement(Button_1.default, __assign({ isLoading: plan.plan_id === buttonLoading, loadingText: plan.buttonLoadingText, width: "full", variant: plan.buttonVariant, size: "lg", onClick: function () { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(plan.plan_id); }, onMouseEnter: function () { return onHover === null || onHover === void 0 ? void 0 : onHover(plan.plan_id, "button", true); }, onMouseLeave: function () { return onHover === null || onHover === void 0 ? void 0 : onHover(plan.plan_id, "button", false); } }, variantStyles), plan.buttonText)),
95
95
  react_1.default.createElement(react_2.VStack, { align: "start", spacing: 3, mt: 6 }, plan.features.map(function (feature, i) { return (react_1.default.createElement(react_2.Flex, { key: i, align: "center" },
@@ -195,7 +195,7 @@ function CustomDatePicker(props) {
195
195
  !popoverRef.current.contains(event.target) &&
196
196
  !((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
197
197
  if (tempDate) {
198
- props.onChange(tempDate); // add new
198
+ props.onChange(tempDate); // commit latest temp on outside click
199
199
  }
200
200
  onClose();
201
201
  }
@@ -209,7 +209,7 @@ function CustomDatePicker(props) {
209
209
  return function () {
210
210
  document.removeEventListener("mousedown", handleClickOutside);
211
211
  };
212
- }, [isOpen, onClose]);
212
+ }, [isOpen, onClose, tempDate, props]);
213
213
  return (react_1.default.createElement(react_2.Box, { width: width, position: "relative" },
214
214
  label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })),
215
215
  react_1.default.createElement(react_2.Popover, { isLazy: true, isOpen: isOpen, onClose: onClose, placement: "bottom-start", initialFocusRef: inputRef, closeOnBlur: true },
@@ -134,7 +134,7 @@ var RangeDatePicker = function (props) {
134
134
  };
135
135
  document.addEventListener("mousedown", handleMouseDownOutside, true);
136
136
  return function () { return document.removeEventListener("mousedown", handleMouseDownOutside, true); };
137
- }, [isOpen, onClose]);
137
+ }, [isOpen, onClose, tempRangeStart, tempRangeEnd]);
138
138
  var handleClear = function () {
139
139
  setTempRangeStart(null);
140
140
  setTempRangeEnd(null);
@@ -542,7 +542,7 @@ var SingleDatePicker = function (props) {
542
542
  document.removeEventListener("mousedown", handleClickOutside, true);
543
543
  document.removeEventListener("click", handleClickOutside, true);
544
544
  };
545
- }, [isOpen]);
545
+ }, [isOpen, tempDate, activeFormat]);
546
546
  var ensureMaskValue = (0, react_1.useCallback)(function () {
547
547
  var _a, _b, _c, _d;
548
548
  if (!enableMask) {
@@ -933,7 +933,7 @@ var SingleDatePicker = function (props) {
933
933
  : tempDate
934
934
  ? (0, date_fns_1.format)(tempDate, resolvedDateFormat)
935
935
  : "";
936
- return (react_1.default.createElement(react_2.FormControl, { id: id, isInvalid: error, isRequired: isRequired, isDisabled: disabled, width: width },
936
+ return (react_1.default.createElement(react_2.FormControl, { id: id, isDisabled: disabled, width: width },
937
937
  label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })),
938
938
  react_1.default.createElement(react_2.Popover, { isLazy: true, isOpen: isOpen, onClose: function () {
939
939
  if (suppressOnCloseFinalizeRef.current) {
@@ -28,15 +28,22 @@ var react_2 = require("@chakra-ui/react");
28
28
  var TimePicker = function (_a) {
29
29
  var date = _a.date, onChange = _a.onChange, dateFormat = _a.dateFormat;
30
30
  var is12HourFormat = /(hh|h).*a/i.test(dateFormat);
31
- var _b = (0, react_1.useState)(date.getHours()), hour = _b[0], setHour = _b[1];
31
+ var deriveDisplayHour = function (rawHour) {
32
+ if (!is12HourFormat)
33
+ return rawHour;
34
+ var mod = rawHour % 12;
35
+ return mod === 0 ? 12 : mod;
36
+ };
37
+ var initialHour = deriveDisplayHour(date.getHours());
38
+ var _b = (0, react_1.useState)(initialHour), hour = _b[0], setHour = _b[1];
32
39
  var _c = (0, react_1.useState)(date.getMinutes()), minute = _c[0], setMinute = _c[1];
33
40
  var _d = (0, react_1.useState)(is12HourFormat ? (date.getHours() >= 12 ? "PM" : "AM") : ""), ampm = _d[0], setAmpm = _d[1];
34
41
  (0, react_1.useEffect)(function () {
35
- var newHour = date.getHours();
36
- setHour(newHour);
42
+ var rawHour = date.getHours();
43
+ setHour(deriveDisplayHour(rawHour));
37
44
  setMinute(date.getMinutes());
38
45
  if (is12HourFormat) {
39
- setAmpm(newHour >= 12 ? "PM" : "AM");
46
+ setAmpm(rawHour >= 12 ? "PM" : "AM");
40
47
  }
41
48
  }, [date, is12HourFormat]);
42
49
  var convertTo24Hour = function (hr, meridiem) {
@@ -45,8 +52,9 @@ var TimePicker = function (_a) {
45
52
  return hr === 12 ? 12 : hr + 12;
46
53
  };
47
54
  var updateTime = function (hrInput, min, meridiem) {
55
+ var effectiveMeridiem = meridiem || ampm || "AM";
48
56
  var newHour = is12HourFormat
49
- ? convertTo24Hour(hrInput, meridiem || ampm)
57
+ ? convertTo24Hour(hrInput, effectiveMeridiem)
50
58
  : hrInput;
51
59
  var newDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), newHour, min, 0, 0);
52
60
  onChange(newDate);
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ // import React from "react";
3
+ // import type { Meta, StoryObj } from "@storybook/react/*";
4
+ // import { InputTextAreaProps } from "./InputTextAreaProps";
5
+ // import InputTextArea from "./InputTextArea";
6
+ // import { useState } from "react";
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ type CustomHeaderProps = {
3
+ column: any;
4
+ onSortChange?: (sortState: string, columnName: string) => void;
5
+ menuItems?: Array<{
6
+ label: string;
7
+ onClick: () => void;
8
+ submenu?: any[];
9
+ }>;
10
+ isSort?: boolean;
11
+ sortDirection: string;
12
+ };
13
+ declare const CustomHeader: React.MemoExoticComponent<({ column, onSortChange, menuItems, isSort, sortDirection, }: CustomHeaderProps) => React.JSX.Element>;
14
+ export default CustomHeader;
@@ -0,0 +1,69 @@
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
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var react_1 = __importStar(require("react"));
27
+ var react_2 = require("@chakra-ui/react");
28
+ var bs_1 = require("react-icons/bs");
29
+ var fa_1 = require("react-icons/fa");
30
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
31
+ var CustomHeader = (0, react_1.memo)(function (_a) {
32
+ var column = _a.column, onSortChange = _a.onSortChange, menuItems = _a.menuItems, isSort = _a.isSort, sortDirection = _a.sortDirection;
33
+ var handleSortClick = (0, react_1.useCallback)(function () {
34
+ var sortOrder = "none";
35
+ if (sortDirection === "none")
36
+ sortOrder = "asc";
37
+ else if (sortDirection === "asc")
38
+ sortOrder = "desc";
39
+ onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(sortOrder, column.key);
40
+ }, [sortDirection, column.key, onSortChange]);
41
+ return (react_1.default.createElement(react_2.Box, { display: "flex", justifyContent: "space-between", alignItems: "center" },
42
+ react_1.default.createElement(react_2.Box, { fontWeight: "bold" }, column.title),
43
+ react_1.default.createElement(react_2.Flex, { alignItems: "center" },
44
+ isSort && (react_1.default.createElement(SortingIcon, { sortState: sortDirection, handleSortClick: handleSortClick })),
45
+ menuItems && (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (react_1.default.createElement(react_2.Menu, null,
46
+ react_1.default.createElement(react_2.MenuButton, { as: react_2.IconButton, "aria-label": "Options", icon: react_1.default.createElement(bs_1.BsThreeDots, null), size: "sm", variant: "ghost", _hover: { bg: "none" }, _active: { bg: "none" } }),
47
+ react_1.default.createElement(react_2.Portal, null,
48
+ react_1.default.createElement(react_2.MenuList, null, menuItems.map(function (item, index) { return (react_1.default.createElement(react_1.default.Fragment, { key: index },
49
+ react_1.default.createElement(react_2.MenuItem, { onClick: function () { return item === null || item === void 0 ? void 0 : item.onClick(); } }, item.label),
50
+ item.submenu && react_1.default.createElement(Submenu, { items: item.submenu }))); }))))) : null)));
51
+ });
52
+ var SortingIcon = (0, react_1.memo)(function (_a) {
53
+ var sortState = _a.sortState, handleSortClick = _a.handleSortClick;
54
+ var theme = (0, useCustomTheme_1.useCustomTheme)();
55
+ return (react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", justifyContent: "center", bg: theme.colors.white, borderRadius: "full", cursor: "pointer", w: "24px", h: "24px", onClick: handleSortClick, transition: "transform 0.2s ease-in-out", _hover: { transform: "scale(1.1)" } },
56
+ sortState === "none" && react_1.default.createElement(fa_1.FaSort, { size: 14 }),
57
+ sortState === "asc" && react_1.default.createElement(fa_1.FaCaretUp, { size: 14 }),
58
+ sortState === "desc" && react_1.default.createElement(fa_1.FaCaretDown, { size: 14 })));
59
+ });
60
+ var Submenu = (0, react_1.memo)(function (_a) {
61
+ var items = _a.items;
62
+ return (react_1.default.createElement(react_2.MenuGroup, null, items.map(function (subItem, index) { return (react_1.default.createElement(react_2.MenuItem, { key: index, onClick: function () { return (subItem === null || subItem === void 0 ? void 0 : subItem.onClick) && (subItem === null || subItem === void 0 ? void 0 : subItem.onClick()); }, sx: {
63
+ pl: 6,
64
+ fontSize: "sm",
65
+ color: "gray.600",
66
+ _hover: { bg: "gray.100", color: "gray.800" }, // Hover styles
67
+ } }, subItem.label)); })));
68
+ });
69
+ exports.default = CustomHeader;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import * as TableEnums from "ka-table/enums";
3
+ import * as TableProps from "ka-table/props";
4
+ import * as TableActionCreator from "ka-table/actionCreators";
5
+ import * as TableModel from "ka-table/models";
6
+ import * as TableUtils from "ka-table/utils";
7
+ import * as TableFun from "ka-table";
8
+ import "ka-table/style.css";
9
+ import "./ka-table.css";
10
+ import { KaTableProps } from "./KaTableProps";
11
+ declare const _default: React.MemoExoticComponent<({ columns, data, rowKey, Edit, format, filter, childComponents, columnReorder, columnResizing, editableCells, validation, loading, checkSelect, onRowClick, onSelectionChange, selected, columnVisibility, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, }: KaTableProps) => React.JSX.Element>;
12
+ export default _default;
13
+ export { TableEnums, TableActionCreator, TableProps, TableModel, TableUtils, TableFun, };
@@ -0,0 +1,111 @@
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
+ };
25
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.TableFun = exports.TableUtils = exports.TableModel = exports.TableProps = exports.TableActionCreator = exports.TableEnums = void 0;
39
+ var react_1 = __importStar(require("react"));
40
+ var ka_table_1 = require("ka-table");
41
+ var TableEnums = __importStar(require("ka-table/enums"));
42
+ exports.TableEnums = TableEnums;
43
+ var TableProps = __importStar(require("ka-table/props"));
44
+ exports.TableProps = TableProps;
45
+ var TableActionCreator = __importStar(require("ka-table/actionCreators"));
46
+ exports.TableActionCreator = TableActionCreator;
47
+ var TableModel = __importStar(require("ka-table/models"));
48
+ exports.TableModel = TableModel;
49
+ var TableUtils = __importStar(require("ka-table/utils"));
50
+ exports.TableUtils = TableUtils;
51
+ var TableFun = __importStar(require("ka-table"));
52
+ exports.TableFun = TableFun;
53
+ require("ka-table/style.css");
54
+ require("./ka-table.css");
55
+ var useMergedChildComponents_1 = __importDefault(require("./useMergedChildComponents"));
56
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
57
+ var table_1 = require("../../Utils/table");
58
+ var selectionCellColumn = {
59
+ key: "select-cell",
60
+ width: 50,
61
+ columnFreeze: true,
62
+ customHeader: false,
63
+ className: "select-cell",
64
+ };
65
+ var KaTable = function (_a) {
66
+ var _b, _c;
67
+ var columns = _a.columns, data = _a.data, _d = _a.rowKey, rowKey = _d === void 0 ? "id" : _d, Edit = _a.Edit,
68
+ // sorting,
69
+ format = _a.format,
70
+ // paging,
71
+ filter = _a.filter, childComponents = _a.childComponents, columnReorder = _a.columnReorder, columnResizing = _a.columnResizing, editableCells = _a.editableCells, validation = _a.validation, loading = _a.loading, checkSelect = _a.checkSelect, onRowClick = _a.onRowClick, onSelectionChange = _a.onSelectionChange, selected = _a.selected, columnVisibility = _a.columnVisibility, headerBgColor = _a.headerBgColor, freezedBgColor = _a.freezedBgColor, headerTextColor = _a.headerTextColor, freezedTextColor = _a.freezedTextColor;
72
+ var theme = (0, useCustomTheme_1.useCustomTheme)();
73
+ var _e = (0, react_1.useState)([]), sortState = _e[0], setSortState = _e[1];
74
+ if (checkSelect &&
75
+ !columns.some(function (column) { return column.key === "select-cell"; })) {
76
+ columns.unshift(selectionCellColumn);
77
+ }
78
+ var dataLength = (_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0;
79
+ // const columnVisibilitys = columnVisibility ?? false;
80
+ var handleSort = function (sort) {
81
+ setSortState(sort);
82
+ };
83
+ var sortedData = (0, react_1.useMemo)(function () { return (0, table_1.SortMultiColumnData)(__spreadArray([], data, true), sortState); }, [sortState, data]);
84
+ var mergedChildComponents = (0, useMergedChildComponents_1.default)({
85
+ childComponents: childComponents,
86
+ onSortChange: handleSort,
87
+ handleSelection: onSelectionChange,
88
+ rowKey: rowKey,
89
+ onRowClick: onRowClick,
90
+ selected: selected,
91
+ dataLength: dataLength,
92
+ columns: columns,
93
+ headerBgColor: headerBgColor,
94
+ freezedBgColor: freezedBgColor,
95
+ headerTextColor: headerTextColor,
96
+ freezedTextColor: freezedTextColor,
97
+ sortState: sortState,
98
+ });
99
+ return (react_1.default.createElement("div", { style: {
100
+ borderRadius: "10px 0 0 10px",
101
+ borderWidth: "0px 0px 0px 5px",
102
+ borderColor: (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[500],
103
+ boxShadow: theme.shadows.lg,
104
+ } },
105
+ react_1.default.createElement(ka_table_1.Table, { columns: columns, data: sortedData, rowKeyField: rowKey, editingMode: Edit, key: columns, sortingMode: TableEnums.SortingMode.MultipleRemote, format: format,
106
+ // paging={paging}
107
+ filteringMode: undefined, childComponents: mergedChildComponents, columnReordering: columnReorder, columnResizing: columnResizing, editableCells: editableCells, validation: validation, loading: loading, virtualScrolling: {
108
+ enabled: true,
109
+ } })));
110
+ };
111
+ exports.default = react_1.default.memo(KaTable);
@@ -0,0 +1,23 @@
1
+ export type KaTableProps = {
2
+ columns: any;
3
+ data: any;
4
+ rowKey?: any;
5
+ Edit?: any;
6
+ format?: (props: any) => void;
7
+ validation?: (props: any) => void;
8
+ filter?: any;
9
+ childComponents?: any;
10
+ columnReorder?: any;
11
+ columnResizing?: any;
12
+ editableCells?: any;
13
+ loading?: any;
14
+ checkSelect?: any;
15
+ onRowClick?: (rowData: any, column: any) => void;
16
+ onSelectionChange?: (selectedIds: any[]) => void;
17
+ selected?: any;
18
+ columnVisibility?: boolean;
19
+ headerBgColor?: string;
20
+ headerTextColor?: string;
21
+ freezedBgColor?: string;
22
+ freezedTextColor?: string;
23
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { TableProps } from "./KaTable";
3
+ declare const _default: React.MemoExoticComponent<({ rowKeyValue, selectedRows, onSelectionChange, selected, }: TableProps.ICellTextProps<any> & {
4
+ onSelectionChange: (ids: any[], type: string) => void;
5
+ rowKey: any;
6
+ selected: any;
7
+ }) => React.JSX.Element>;
8
+ export default _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ var react_1 = __importDefault(require("react"));
16
+ var KaTable_1 = require("./KaTable");
17
+ var SelectionCell = function (_a) {
18
+ var rowKeyValue = _a.rowKeyValue, selectedRows = _a.selectedRows, onSelectionChange = _a.onSelectionChange, selected = _a.selected;
19
+ var table = KaTable_1.TableFun.useTableInstance();
20
+ var onChangeHandle = function (event) {
21
+ if (event.nativeEvent.shiftKey) {
22
+ table.selectRowsRange(rowKeyValue, __spreadArray([], selectedRows, true).pop());
23
+ }
24
+ else {
25
+ var isChecked = event.currentTarget.checked;
26
+ var action = isChecked ? "add" : "remove";
27
+ onSelectionChange(rowKeyValue, action);
28
+ if (isChecked) {
29
+ table.selectRow(rowKeyValue);
30
+ }
31
+ else {
32
+ table.deselectRow(rowKeyValue);
33
+ }
34
+ }
35
+ };
36
+ return react_1.default.createElement("input", { type: "checkbox", checked: selected, onChange: onChangeHandle, style: { marginLeft: "37%" } });
37
+ };
38
+ exports.default = react_1.default.memo(SelectionCell);
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const _default: React.MemoExoticComponent<({ onSelectionChange, rowKey, selected }: any) => React.JSX.Element>;
3
+ export default _default;
@@ -0,0 +1,56 @@
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
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var react_1 = __importStar(require("react"));
27
+ var KaTable_1 = require("./KaTable");
28
+ var SelectionHeader = function (_a) {
29
+ var onSelectionChange = _a.onSelectionChange, rowKey = _a.rowKey, selected = _a.selected;
30
+ var table = KaTable_1.TableFun.useTableInstance();
31
+ var selectAllRef = (0, react_1.useRef)(null);
32
+ (0, react_1.useEffect)(function () {
33
+ if (selectAllRef.current) {
34
+ selectAllRef.current.indeterminate = selected === null || selected === void 0 ? void 0 : selected.intederminate;
35
+ }
36
+ }, [selected.intederminate]);
37
+ var handleSelectionChange = (0, react_1.useCallback)(function (checked) {
38
+ onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(checked);
39
+ }, [onSelectionChange]);
40
+ return (react_1.default.createElement("input", { ref: selectAllRef, type: "checkbox", checked: selected === null || selected === void 0 ? void 0 : selected.checked, onChange: function (event) {
41
+ var _a, _b;
42
+ var isChecked = event.currentTarget.checked;
43
+ // const action = isChecked ? "add" : "remove";
44
+ var totalIds = isChecked
45
+ ? (_b = (_a = table === null || table === void 0 ? void 0 : table.props) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.map(function (row) { return row[rowKey]; })
46
+ : [];
47
+ handleSelectionChange(totalIds);
48
+ if (isChecked) {
49
+ table.selectAllFilteredRows();
50
+ }
51
+ else {
52
+ table.deselectAllFilteredRows();
53
+ }
54
+ }, style: { marginLeft: "40%" } }));
55
+ };
56
+ exports.default = react_1.default.memo(SelectionHeader);
@@ -0,0 +1,27 @@
1
+ .ka-thead-cell {
2
+ padding: 7px 7px;
3
+ }
4
+ .ka-cell {
5
+ padding: 7px 0px;
6
+ }
7
+
8
+ .ka-thead-background {
9
+ background-color: #bfbcbc;
10
+ z-index: 1;
11
+ }
12
+
13
+ .ka-cell-text {
14
+ overflow: hidden;
15
+ text-overflow: ellipsis;
16
+ white-space: nowrap;
17
+ padding-left: 5%;
18
+ }
19
+ .ka-row {
20
+ box-sizing: unset;
21
+ border-bottom: none;
22
+ border-top: none;
23
+ }
24
+ .ka-table-wrapper {
25
+ border-bottom: 2px solid #d8d9db;
26
+ border-right: 2px solid #d8d9db;
27
+ }
@@ -0,0 +1,14 @@
1
+ import { KaTableProps } from "./KaTableProps";
2
+ type MergedChildComponentsProps = Pick<KaTableProps, "headerBgColor" | "headerTextColor" | "freezedBgColor" | "freezedTextColor"> & {
3
+ childComponents: any;
4
+ onSortChange: any;
5
+ handleSelection: any;
6
+ rowKey: any;
7
+ onRowClick: any;
8
+ selected: any;
9
+ dataLength: number;
10
+ columns: any;
11
+ sortState: any;
12
+ };
13
+ declare const useMergedChildComponents: ({ childComponents, onSortChange, handleSelection, rowKey, onRowClick, selected, dataLength, columns, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, sortState, }: MergedChildComponentsProps) => any;
14
+ export default useMergedChildComponents;
@@ -0,0 +1,224 @@
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ var react_1 = __importStar(require("react"));
50
+ var CustomHeader_1 = __importDefault(require("./CustomHeader"));
51
+ var SelectionHeader_1 = __importDefault(require("./SelectionHeader"));
52
+ var SelectionCell_1 = __importDefault(require("./SelectionCell"));
53
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
54
+ var table_1 = require("../../Utils/table");
55
+ var useMergedChildComponents = function (_a) {
56
+ var childComponents = _a.childComponents, onSortChange = _a.onSortChange, handleSelection = _a.handleSelection, rowKey = _a.rowKey, onRowClick = _a.onRowClick, selected = _a.selected, dataLength = _a.dataLength, columns = _a.columns, headerBgColor = _a.headerBgColor, freezedBgColor = _a.freezedBgColor, headerTextColor = _a.headerTextColor, freezedTextColor = _a.freezedTextColor, sortState = _a.sortState;
57
+ var theme = (0, useCustomTheme_1.useCustomTheme)();
58
+ var handleSortChange = (0, react_1.useCallback)(function (newState, columnKey) {
59
+ var newSortState = __spreadArray([], sortState, true);
60
+ var existingIndex = newSortState.findIndex(function (sort) { return sort.column === columnKey; });
61
+ if (existingIndex === -1) {
62
+ newSortState.push({
63
+ column: columnKey,
64
+ direction: newState, // Default to ascending when adding a column
65
+ });
66
+ }
67
+ else {
68
+ var existingSort = newSortState[existingIndex];
69
+ existingSort.direction = newState;
70
+ }
71
+ var column = columns.find(function (col) { return col.key === columnKey; });
72
+ column.sortDirection = newState;
73
+ onSortChange(newSortState);
74
+ }, [sortState, onSortChange, columns]);
75
+ var _b = react_1.default.useState(selected), selections = _b[0], setSelections = _b[1];
76
+ (0, react_1.useEffect)(function () {
77
+ setSelections(selected);
78
+ }, [selected]);
79
+ var isAllSelected = (0, react_1.useMemo)(function () {
80
+ return {
81
+ checked: (selections === null || selections === void 0 ? void 0 : selections.length) === (dataLength || -1),
82
+ intederminate: (selections === null || selections === void 0 ? void 0 : selections.length) > 0 && (selections === null || selections === void 0 ? void 0 : selections.length) < dataLength,
83
+ };
84
+ }, [selections, dataLength]);
85
+ var cellSelectionHandle = (0, react_1.useCallback)(function (values, type) {
86
+ if (type === "add") {
87
+ setSelections(__spreadArray(__spreadArray([], selections, true), [values], false));
88
+ handleSelection(__spreadArray(__spreadArray([], selections, true), [values], false));
89
+ }
90
+ else if (type === "remove") {
91
+ setSelections(selections.filter(function (value) { return value !== values; }));
92
+ handleSelection(selections.filter(function (value) { return value !== values; }));
93
+ }
94
+ else {
95
+ handleSelection(selections.filter(function (value) { return value !== values; }));
96
+ }
97
+ }, [selections, handleSelection]);
98
+ var headerSelectionHandle = (0, react_1.useCallback)(function (values) {
99
+ setSelections(values);
100
+ handleSelection(values);
101
+ }, [handleSelection]);
102
+ return (0, react_1.useMemo)(function () {
103
+ return __assign(__assign({}, childComponents), { dataRow: {
104
+ elementAttributes: function (props) {
105
+ var _a, _b;
106
+ var existingElementAttributes = (_a = childComponents.dataRow) === null || _a === void 0 ? void 0 : _a.elementAttributes;
107
+ var attributes = existingElementAttributes
108
+ ? existingElementAttributes(props)
109
+ : {};
110
+ var isSelected = selections === null || selections === void 0 ? void 0 : selections.includes(props.rowData[rowKey]);
111
+ var className = "".concat(attributes.className || "", " ").concat(isSelected ? "ka-row-selected" : "", " ka-row-hover").trim();
112
+ // const className =
113
+ // `${attributes.className || ""} ${isSelected ? "ka-row-selected" : ""}`.trim();
114
+ return __assign(__assign({}, attributes), { className: className, style: __assign(__assign({}, (attributes.style || {})), { backgroundColor: isSelected
115
+ ? theme.colors.backgroundColor.subtle
116
+ : undefined, border: "1px solid ".concat((_b = theme.colors) === null || _b === void 0 ? void 0 : _b.gray[200]) }) });
117
+ },
118
+ }, headCell: {
119
+ content: function (props) {
120
+ var _a, _b, _c;
121
+ var existingContent = (_a = childComponents.headCell) === null || _a === void 0 ? void 0 : _a.content;
122
+ if (existingContent) {
123
+ var result = existingContent(props);
124
+ if (result) {
125
+ return result;
126
+ }
127
+ }
128
+ var column = props.column;
129
+ if (column.sortable || column.filter) {
130
+ return (react_1.default.createElement(CustomHeader_1.default, __assign({}, props, { onSortChange: handleSortChange, menuItems: (_b = column === null || column === void 0 ? void 0 : column.menu) !== null && _b !== void 0 ? _b : [], isSort: props.column.sortable, sortDirection: (_c = props.column.sortDirection) !== null && _c !== void 0 ? _c : "none" })));
131
+ }
132
+ if (props.column.key === "select-cell") {
133
+ return (react_1.default.createElement(SelectionHeader_1.default, { onSelectionChange: headerSelectionHandle, rowKey: rowKey, selected: isAllSelected }));
134
+ }
135
+ return null;
136
+ },
137
+ elementAttributes: function (props) {
138
+ var _a, _b, _c, _d, _e, _f;
139
+ var existingElementAttributes = (_a = childComponents.headCell) === null || _a === void 0 ? void 0 : _a.elementAttributes;
140
+ if (existingElementAttributes) {
141
+ var result = existingElementAttributes(props);
142
+ if (result) {
143
+ return result;
144
+ }
145
+ }
146
+ if (props.column.columnFreeze) {
147
+ var stickyLeft = (0, table_1.getPreviousColumnWidth)(columns, props.column.key);
148
+ return {
149
+ style: __assign(__assign({}, props.column.style), { position: "sticky", left: stickyLeft, zIndex: 3, backgroundColor: freezedBgColor !== null && freezedBgColor !== void 0 ? freezedBgColor : (_b = theme.colors) === null || _b === void 0 ? void 0 : _b.backgroundColor.subtle, color: freezedTextColor !== null && freezedTextColor !== void 0 ? freezedTextColor : (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[600] }),
150
+ };
151
+ }
152
+ return {
153
+ style: {
154
+ backgroundColor: headerBgColor !== null && headerBgColor !== void 0 ? headerBgColor : (_d = theme.colors.backgroundColor) === null || _d === void 0 ? void 0 : _d.subtle,
155
+ color: headerTextColor !== null && headerTextColor !== void 0 ? headerTextColor : (_e = theme.colors) === null || _e === void 0 ? void 0 : _e.gray[600],
156
+ border: "1px solid ".concat((_f = theme.colors) === null || _f === void 0 ? void 0 : _f.gray[200]),
157
+ },
158
+ };
159
+ },
160
+ }, cell: {
161
+ elementAttributes: function (props) {
162
+ var _a, _b, _c, _d, _e;
163
+ var existingElementAttributes = (_a = childComponents.cell) === null || _a === void 0 ? void 0 : _a.elementAttributes;
164
+ if (existingElementAttributes) {
165
+ var result = existingElementAttributes(props);
166
+ if (result) {
167
+ return result;
168
+ }
169
+ }
170
+ if (props.column.columnFreeze) {
171
+ var stickyLeft = (0, table_1.getPreviousColumnWidth)(columns, props.column.key);
172
+ return {
173
+ style: __assign(__assign({}, props.column.style), { position: "sticky", left: stickyLeft, zIndex: 2, backgroundColor: freezedBgColor !== null && freezedBgColor !== void 0 ? freezedBgColor : (_b = theme.colors) === null || _b === void 0 ? void 0 : _b.backgroundColor.subtle, color: freezedTextColor !== null && freezedTextColor !== void 0 ? freezedTextColor : (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.gray[600], fontWeight: 600 }),
174
+ };
175
+ }
176
+ return {
177
+ style: {
178
+ color: (_d = theme.colors) === null || _d === void 0 ? void 0 : _d.gray[600],
179
+ fontWeight: 500,
180
+ border: "1px solid ".concat((_e = theme.colors) === null || _e === void 0 ? void 0 : _e.gray[200]),
181
+ },
182
+ onClick: function () {
183
+ if (onRowClick) {
184
+ onRowClick(props.rowData, props.column.key);
185
+ }
186
+ },
187
+ };
188
+ },
189
+ }, tableWrapper: {
190
+ elementAttributes: function () { return ({ style: { maxHeight: 600 } }); },
191
+ }, cellText: {
192
+ content: function (props) {
193
+ var _a;
194
+ var existingContent = (_a = childComponents.cellText) === null || _a === void 0 ? void 0 : _a.content;
195
+ if (existingContent) {
196
+ var result = existingContent(props);
197
+ if (result) {
198
+ return result;
199
+ }
200
+ }
201
+ if (props.column.key === "select-cell") {
202
+ var isSelected = selections === null || selections === void 0 ? void 0 : selections.includes(props.rowData[rowKey]);
203
+ return (react_1.default.createElement(SelectionCell_1.default, __assign({}, props, { selected: isSelected, onSelectionChange: cellSelectionHandle })));
204
+ }
205
+ },
206
+ } });
207
+ }, [
208
+ childComponents,
209
+ rowKey,
210
+ onRowClick,
211
+ selections,
212
+ columns,
213
+ cellSelectionHandle,
214
+ headerSelectionHandle,
215
+ isAllSelected,
216
+ theme.colors,
217
+ headerBgColor,
218
+ headerTextColor,
219
+ freezedBgColor,
220
+ freezedTextColor,
221
+ handleSortChange,
222
+ ]);
223
+ };
224
+ exports.default = useMergedChildComponents;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // import React from 'react';
3
+ // import { StoryFn, Meta } from '@storybook/react';
4
+ // import NumberInputs from './NumberInput';
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ .table_wrapper {
2
+ width: 100%;
3
+ border-collapse: collapse;
4
+ /* table-layout: fixed; */
5
+ }
6
+
7
+ .table_wrapper th .resize-handle {
8
+ position: absolute;
9
+ top: 0;
10
+ right: 0;
11
+ width: 8px;
12
+ height: 100%;
13
+ cursor: col-resize;
14
+ background-color: transparent;
15
+ z-index: 999;
16
+ }
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { TableProps } from "./TableProps";
3
- export default function Table({ data, columns, onSelection, isLoading, isCheckbox, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, tableBorderColor, noBorders, isPagination, onRowClick, selections, isActionFreeze, preferences, paginationMode, noOfRowsPerPage, totalRecords, onPagination, isTableSettings, headerActions, onGlobalSearch, }: TableProps): React.JSX.Element;
3
+ export default function Table({ data, columns, onSelection, isLoading, isCheckbox, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, tableBorderColor, noBorders, isPagination, onRowClick, selections, isActionFreeze, preferences, paginationMode, noOfRowsPerPage, totalRecords, onPagination, isTableSettings, headerActions, onGlobalSearch, tableSettings, }: TableProps): React.JSX.Element;
@@ -49,7 +49,7 @@ function Table(_a) {
49
49
  name: "",
50
50
  page: "",
51
51
  orgId: "",
52
- } : _m, _o = _a.paginationMode, paginationMode = _o === void 0 ? "client" : _o, _p = _a.noOfRowsPerPage, noOfRowsPerPage = _p === void 0 ? 50 : _p, _q = _a.totalRecords, totalRecords = _q === void 0 ? 0 : _q, onPagination = _a.onPagination, _r = _a.isTableSettings, isTableSettings = _r === void 0 ? false : _r, headerActions = _a.headerActions, onGlobalSearch = _a.onGlobalSearch;
52
+ } : _m, _o = _a.paginationMode, paginationMode = _o === void 0 ? "client" : _o, _p = _a.noOfRowsPerPage, noOfRowsPerPage = _p === void 0 ? 50 : _p, _q = _a.totalRecords, totalRecords = _q === void 0 ? 0 : _q, onPagination = _a.onPagination, _r = _a.isTableSettings, isTableSettings = _r === void 0 ? false : _r, headerActions = _a.headerActions, onGlobalSearch = _a.onGlobalSearch, tableSettings = _a.tableSettings;
53
53
  var theme = (0, useCustomTheme_1.useCustomTheme)();
54
54
  var _s = (0, react_1.useState)({}), columnsSearch = _s[0], setColumnsSearch = _s[1];
55
55
  // useEffect(() => {
@@ -110,7 +110,7 @@ function Table(_a) {
110
110
  react_1.default.createElement(TableSearch_1.default, { onSearch: onGlobalSearch }),
111
111
  isTableSettings && (react_1.default.createElement(react_1.default.Fragment, null,
112
112
  react_1.default.createElement(Divider_1.default, null),
113
- react_1.default.createElement(TableSettings_1.default, { columns: columnsList, onSave: function (cols) { return handleColumnPreferences(cols); } }))),
113
+ react_1.default.createElement(TableSettings_1.default, { columns: columnsList, onSave: function (cols) { return handleColumnPreferences(cols); }, tableSettings: tableSettings }))),
114
114
  selection.length ? (react_1.default.createElement(react_1.default.Fragment, null,
115
115
  react_1.default.createElement(Divider_1.default, null),
116
116
  react_1.default.createElement(HeaderActions_1.default, { actions: headerActions, selections: selection }))) : null,
@@ -23,10 +23,15 @@ export type TableProps = {
23
23
  noOfRowsPerPage?: number;
24
24
  totalRecords?: number;
25
25
  onPagination?: (page: number, noOfRecords: number) => void;
26
- isTableSettings?: boolean;
27
26
  headerActions?: HeaderActionsProps;
28
27
  onGlobalSearch?: (searchVal: string) => void;
29
28
  onColumnFilter?: (filters: Record<string, any>) => void;
29
+ isTableSettings?: boolean;
30
+ tableSettings?: {
31
+ filters?: string[];
32
+ filterSelected?: string[];
33
+ onFilterSelection?: (filters: string[]) => void;
34
+ };
30
35
  preferences?: {
31
36
  url: string;
32
37
  token: string;
@@ -113,7 +113,7 @@ var ManageColumns = function (_a) {
113
113
  react_1.default.createElement(react_2.Input, { placeholder: "Search", mb: "4", value: searchTerm, onChange: function (e) { return setSearchTerm(e.target.value); } }),
114
114
  !searchTerm.length && (react_1.default.createElement(react_2.Flex, { align: "center", mb: "2" },
115
115
  react_1.default.createElement(Checkbox_1.default, { label: "Select all", isChecked: allChecked, isIndeterminate: someChecked, onChange: handleSelectAll }))),
116
- react_1.default.createElement(react_2.List, { spacing: "2" }, filteredItems.length > 0 ? (filteredItems.map(function (item, index) { return (react_1.default.createElement(react_2.ListItem, { key: item.id, draggable: true, onDragStart: function () { return handleDragStart(index); }, onDragOver: function (e) { return handleDragOver(e, index); }, onDragEnd: handleDragEnd, bg: theme.colors.gray[50], display: "flex", alignItems: "center", borderRadius: "md", border: "1px solid", borderColor: "gray.200", cursor: "grab", position: "relative", fontSize: 14, px: "2", py: "1" },
116
+ react_1.default.createElement(react_2.List, { spacing: "2", maxH: "300px", overflowY: "auto" }, filteredItems.length > 0 ? (filteredItems.map(function (item, index) { return (react_1.default.createElement(react_2.ListItem, { key: "".concat(item.id, "-").concat(index), draggable: true, onDragStart: function () { return handleDragStart(index); }, onDragOver: function (e) { return handleDragOver(e, index); }, onDragEnd: handleDragEnd, bg: theme.colors.gray[50], display: "flex", alignItems: "center", borderRadius: "md", border: "1px solid", borderColor: "gray.200", cursor: "grab", position: "relative", fontSize: 14, px: "2", py: "1" },
117
117
  react_1.default.createElement(react_2.IconButton, { "aria-label": "Drag", icon: react_1.default.createElement(lucide_react_1.GripVertical, null), variant: "ghost", cursor: "grab", mr: "1" }),
118
118
  react_1.default.createElement(Checkbox_1.default, { isChecked: !item.isHidden, label: String(item.label), onChange: function () { return toggleCheckbox(index); }, sx: { marginRight: "4" } }))); })) : (react_1.default.createElement(react_2.Text, { color: "gray.500", textAlign: "center" }, "No items found"))),
119
119
  error && (react_1.default.createElement(react_2.Text, { color: "red.500", mt: "3", fontSize: "sm" }, error))));
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ type TableFiltersMethods = {
3
+ getSelectedFilters: () => string[];
4
+ };
5
+ declare const TableFilters: ({ filters, childFilterMethodsRef, filterSelected }: {
6
+ filters?: string[] | undefined;
7
+ childFilterMethodsRef?: React.Ref<TableFiltersMethods> | undefined;
8
+ filterSelected?: string[] | undefined;
9
+ }) => React.JSX.Element | null;
10
+ export default TableFilters;
@@ -0,0 +1,66 @@
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
+ };
25
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ var react_1 = require("@chakra-ui/react");
39
+ var react_2 = __importStar(require("react"));
40
+ var Checkbox_1 = __importDefault(require("../../Checkbox/Checkbox"));
41
+ var TableFilters = function (_a) {
42
+ var filters = _a.filters, childFilterMethodsRef = _a.childFilterMethodsRef, filterSelected = _a.filterSelected;
43
+ var _b = (0, react_2.useState)(filterSelected !== null && filterSelected !== void 0 ? filterSelected : []), selectedFilters = _b[0], setSelectedFilters = _b[1];
44
+ (0, react_2.useImperativeHandle)(childFilterMethodsRef, function () {
45
+ return {
46
+ getSelectedFilters: function () {
47
+ return selectedFilters;
48
+ },
49
+ };
50
+ }, [selectedFilters]);
51
+ if (!filters)
52
+ return null;
53
+ return (react_2.default.createElement(react_1.Box, { display: "flex", flexDirection: "column", gap: "0.75rem" }, Object.entries(filters !== null && filters !== void 0 ? filters : {}).map(function (_a) {
54
+ var key = _a[0], value = _a[1];
55
+ return (react_2.default.createElement(react_1.Box, { key: key },
56
+ react_2.default.createElement(Checkbox_1.default, { value: value, isChecked: selectedFilters.includes(value), onChange: function (e) {
57
+ if (e.target.checked) {
58
+ setSelectedFilters(__spreadArray(__spreadArray([], selectedFilters, true), [value], false));
59
+ }
60
+ else {
61
+ setSelectedFilters(selectedFilters.filter(function (filter) { return filter !== value; }));
62
+ }
63
+ }, label: value })));
64
+ })));
65
+ };
66
+ exports.default = TableFilters;
@@ -1,7 +1,8 @@
1
1
  import React from "react";
2
2
  import { TableProps } from "../TableProps";
3
- declare const TableSettings: ({ columns, onSave, }: {
3
+ declare const TableSettings: ({ columns, onSave, tableSettings, }: {
4
4
  columns: TableProps["columns"];
5
5
  onSave: (updatedColumns: TableProps["columns"]) => void;
6
+ tableSettings?: TableProps["tableSettings"];
6
7
  }) => React.JSX.Element;
7
8
  export default TableSettings;
@@ -32,13 +32,25 @@ var ManageColumns_1 = __importDefault(require("./ManageColumns"));
32
32
  var Button_1 = __importDefault(require("../../Button/Button"));
33
33
  var useCustomTheme_1 = require("../../../Theme/useCustomTheme");
34
34
  var lucide_react_1 = require("lucide-react");
35
+ var TableFilters_1 = __importDefault(require("./TableFilters"));
35
36
  var TableSettings = function (_a) {
36
37
  var _b, _c;
37
- var columns = _a.columns, onSave = _a.onSave;
38
+ var columns = _a.columns, onSave = _a.onSave, tableSettings = _a.tableSettings;
38
39
  var theme = (0, useCustomTheme_1.useCustomTheme)();
39
40
  var childInputMethodsRef = (0, react_2.useRef)({});
41
+ var childFilterMethodsRef = (0, react_2.useRef)(null);
40
42
  var _d = (0, react_2.useState)(false), settingsOpen = _d[0], setSettingsOpen = _d[1];
41
43
  var _e = (0, react_2.useState)(0), selectedIndex = _e[0], setSelectedIndex = _e[1];
44
+ var filters = (0, react_2.useMemo)(function () {
45
+ var _a;
46
+ return (_a = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filters) !== null && _a !== void 0 ? _a : [];
47
+ }, [tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filters]);
48
+ var handleSave = (0, react_2.useCallback)(function () {
49
+ var _a, _b, _c, _d, _e, _f, _g;
50
+ onSave((_c = (_b = (_a = childInputMethodsRef.current) === null || _a === void 0 ? void 0 : _a.getManageColumnsData) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : []);
51
+ (_d = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.onFilterSelection) === null || _d === void 0 ? void 0 : _d.call(tableSettings, (_g = (_f = (_e = childFilterMethodsRef.current) === null || _e === void 0 ? void 0 : _e.getSelectedFilters) === null || _f === void 0 ? void 0 : _f.call(_e)) !== null && _g !== void 0 ? _g : []);
52
+ setSettingsOpen(false);
53
+ }, [onSave, tableSettings]);
42
54
  return (react_2.default.createElement(react_1.Box, null,
43
55
  react_2.default.createElement(react_1.Box, { display: "flex", justifyContent: "flex-end", cursor: "pointer" },
44
56
  react_2.default.createElement(lucide_react_1.Settings, { onClick: function () { return setSettingsOpen(true); }, size: "1.25rem", color: (_c = (_b = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c[500] })),
@@ -49,25 +61,20 @@ var TableSettings = function (_a) {
49
61
  react_2.default.createElement(react_1.ModalCloseButton, null),
50
62
  react_2.default.createElement(react_1.ModalBody, null,
51
63
  react_2.default.createElement(react_1.Tabs, { index: selectedIndex, onChange: setSelectedIndex, orientation: "vertical", variant: "unstyled" },
52
- react_2.default.createElement(react_1.TabList, { whiteSpace: "nowrap", minWidth: 160, height: "fit-content" },
53
- react_2.default.createElement(react_1.Tab, { _selected: {
64
+ react_2.default.createElement(react_1.TabList, { whiteSpace: "nowrap", minWidth: 160, height: "fit-content", borderRight: "1px solid", borderColor: "gray.200" },
65
+ filters && filters.length > 0 && (react_2.default.createElement(react_1.Tab, { borderLeft: "2px solid transparent", _selected: {
66
+ borderLeft: "2px solid ".concat(theme.colors.primary[600]),
67
+ }, fontSize: "14px", justifyContent: "flex-start" }, "Filters")),
68
+ react_2.default.createElement(react_1.Tab, { borderLeft: "2px solid transparent", _selected: {
54
69
  borderLeft: "2px solid ".concat(theme.colors.primary[600]),
55
70
  }, fontSize: "14px", justifyContent: "flex-start" }, "Manage columns")),
56
- react_2.default.createElement(react_1.TabPanels, null,
57
- react_2.default.createElement(react_1.TabPanel, null,
58
- react_2.default.createElement(ManageColumns_1.default, { columns: columns, childInputMethodsRef: childInputMethodsRef })),
59
- react_2.default.createElement(react_1.TabPanel, null,
60
- react_2.default.createElement(react_1.Text, null, "Font size settings")),
61
- react_2.default.createElement(react_1.TabPanel, null,
62
- react_2.default.createElement(react_1.Text, null, "Density settings")),
71
+ react_2.default.createElement(react_1.TabPanels, { pl: 4, maxH: "450px", overflowY: "auto", backgroundColor: theme.colors.gray[50] },
72
+ filters.length > 0 && (react_2.default.createElement(react_1.TabPanel, null,
73
+ react_2.default.createElement(TableFilters_1.default, { filters: filters, childFilterMethodsRef: childFilterMethodsRef, filterSelected: tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filterSelected }))),
63
74
  react_2.default.createElement(react_1.TabPanel, null,
64
- react_2.default.createElement(react_1.Text, null, "Scrollbar settings"))))),
65
- react_2.default.createElement(react_1.ModalFooter, null,
66
- react_2.default.createElement(Button_1.default, { label: "Close", size: "sm", onClick: function () { return setSettingsOpen(false); }, sx: { marginRight: "0.5rem" } }),
67
- react_2.default.createElement(Button_1.default, { label: "Save", size: "sm", onClick: function () {
68
- var _a, _b, _c;
69
- onSave((_c = (_b = (_a = childInputMethodsRef.current) === null || _a === void 0 ? void 0 : _a.getManageColumnsData) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : []);
70
- setSettingsOpen(false);
71
- } }))))));
75
+ react_2.default.createElement(ManageColumns_1.default, { columns: columns, childInputMethodsRef: childInputMethodsRef }))))),
76
+ react_2.default.createElement(react_1.ModalFooter, { gap: "0.5rem" },
77
+ react_2.default.createElement(Button_1.default, { label: "Close", size: "sm", onClick: function () { return setSettingsOpen(false); }, variant: "outline", colorScheme: "gray" }),
78
+ react_2.default.createElement(Button_1.default, { label: "Save", size: "sm", onClick: handleSave }))))));
72
79
  };
73
80
  exports.default = TableSettings;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.2.46",
3
+ "version": "2.2.51",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",