@medusajs/ui 4.0.5-preview-20250211104335 → 4.0.5-snapshot-20250203091247
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/blocks/data-table/components/data-table-table.js +4 -4
- package/dist/cjs/blocks/data-table/components/data-table-table.js.map +1 -1
- package/dist/cjs/blocks/data-table/index.d.ts +1 -1
- package/dist/cjs/blocks/data-table/index.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/index.js.map +1 -1
- package/dist/cjs/blocks/data-table/types.d.ts +1 -2
- package/dist/cjs/blocks/data-table/types.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/types.js.map +1 -1
- package/dist/cjs/blocks/data-table/use-data-table.d.ts +1 -2
- package/dist/cjs/blocks/data-table/use-data-table.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/use-data-table.js +1 -2
- package/dist/cjs/blocks/data-table/use-data-table.js.map +1 -1
- package/dist/cjs/components/alert/alert.d.ts.map +1 -1
- package/dist/cjs/components/alert/alert.js +0 -1
- package/dist/cjs/components/alert/alert.js.map +1 -1
- package/dist/cjs/components/calender/calendar.d.ts.map +1 -1
- package/dist/cjs/components/calender/calendar.js +0 -1
- package/dist/cjs/components/calender/calendar.js.map +1 -1
- package/dist/cjs/components/command-bar/command-bar.d.ts.map +1 -1
- package/dist/cjs/components/command-bar/command-bar.js +0 -4
- package/dist/cjs/components/command-bar/command-bar.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-table.js +4 -4
- package/dist/esm/blocks/data-table/components/data-table-table.js.map +1 -1
- package/dist/esm/blocks/data-table/index.d.ts +1 -1
- package/dist/esm/blocks/data-table/index.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/index.js.map +1 -1
- package/dist/esm/blocks/data-table/types.d.ts +1 -2
- package/dist/esm/blocks/data-table/types.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/types.js.map +1 -1
- package/dist/esm/blocks/data-table/use-data-table.d.ts +1 -2
- package/dist/esm/blocks/data-table/use-data-table.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/use-data-table.js +1 -2
- package/dist/esm/blocks/data-table/use-data-table.js.map +1 -1
- package/dist/esm/components/alert/alert.d.ts.map +1 -1
- package/dist/esm/components/alert/alert.js +0 -1
- package/dist/esm/components/alert/alert.js.map +1 -1
- package/dist/esm/components/calender/calendar.d.ts.map +1 -1
- package/dist/esm/components/calender/calendar.js +0 -1
- package/dist/esm/components/calender/calendar.js.map +1 -1
- package/dist/esm/components/command-bar/command-bar.d.ts.map +1 -1
- package/dist/esm/components/command-bar/command-bar.js +0 -4
- package/dist/esm/components/command-bar/command-bar.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/cjs/components/divider/divider.d.ts +0 -8
- package/dist/cjs/components/divider/divider.d.ts.map +0 -1
- package/dist/cjs/components/divider/divider.js +0 -17
- package/dist/cjs/components/divider/divider.js.map +0 -1
- package/dist/cjs/components/divider/index.d.ts +0 -2
- package/dist/cjs/components/divider/index.d.ts.map +0 -1
- package/dist/cjs/components/divider/index.js +0 -5
- package/dist/cjs/components/divider/index.js.map +0 -1
- package/dist/cjs/utils/is-input-element.d.ts +0 -3
- package/dist/cjs/utils/is-input-element.d.ts.map +0 -1
- package/dist/cjs/utils/is-input-element.js +0 -12
- package/dist/cjs/utils/is-input-element.js.map +0 -1
- package/dist/esm/components/divider/divider.d.ts +0 -8
- package/dist/esm/components/divider/divider.d.ts.map +0 -1
- package/dist/esm/components/divider/divider.js +0 -12
- package/dist/esm/components/divider/divider.js.map +0 -1
- package/dist/esm/components/divider/index.d.ts +0 -2
- package/dist/esm/components/divider/index.d.ts.map +0 -1
- package/dist/esm/components/divider/index.js +0 -2
- package/dist/esm/components/divider/index.js.map +0 -1
- package/dist/esm/utils/is-input-element.d.ts +0 -3
- package/dist/esm/utils/is-input-element.d.ts.map +0 -1
- package/dist/esm/utils/is-input-element.js +0 -9
- package/dist/esm/utils/is-input-element.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"command-bar.js","sourceRoot":"","sources":["../../../../src/components/command-bar/command-bar.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,uCAA0C;AAC1C,qDAA8B;AAE9B,0CAAsC;AACtC,qCAAiC;
|
1
|
+
{"version":3,"file":"command-bar.js","sourceRoot":"","sources":["../../../../src/components/command-bar/command-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Popover, Portal } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { Kbd } from \"@/components/kbd\"\nimport { clx } from \"@/utils/clx\"\n\ninterface CommandBarProps extends React.PropsWithChildren {\n open?: boolean\n onOpenChange?: (open: boolean) => void\n defaultOpen?: boolean\n disableAutoFocus?: boolean\n}\n\n/**\n * The root component of the command bar. This component manages the state of the command bar.\n */\nconst Root = ({\n /**\n * Whether to open (show) the command bar.\n */\n open = false,\n /**\n * Specify a function to handle the change of `open`'s value.\n */\n onOpenChange,\n /**\n * Whether the command bar is open by default.\n */\n defaultOpen = false,\n /**\n * Whether to disable focusing automatically on the command bar when it's opened.\n */\n disableAutoFocus = true,\n children,\n}: CommandBarProps) => {\n return (\n <Popover.Root\n open={open}\n onOpenChange={onOpenChange}\n defaultOpen={defaultOpen}\n >\n <Portal.Root>\n <Popover.Anchor\n className={clx(\"fixed bottom-8 left-1/2 h-px w-px -translate-x-1/2\")}\n />\n </Portal.Root>\n <Popover.Portal>\n <Popover.Content\n side=\"top\"\n sideOffset={0}\n onOpenAutoFocus={(e) => {\n if (disableAutoFocus) {\n e.preventDefault()\n }\n }}\n className={clx(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n )}\n >\n {children}\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\nRoot.displayName = \"CommandBar\"\n\n/**\n * The value component of the command bar. This component is used to display a value,\n * such as the number of selected items which the commands will act on.\n */\nconst Value = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"txt-compact-small-plus text-ui-contrast-fg-secondary px-3 py-2.5\",\n className\n )}\n {...props}\n />\n )\n})\nValue.displayName = \"CommandBar.Value\"\n\n/**\n * The bar component of the command bar. This component is used to display the commands.\n */\nconst Bar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"bg-ui-contrast-bg-base relative flex items-center overflow-hidden rounded-full px-1\",\n \"after:shadow-elevation-flyout after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:content-['']\",\n className\n )}\n {...props}\n />\n )\n})\nBar.displayName = \"CommandBar.Bar\"\n\n/**\n * The seperator component of the command bar. This component is used to display a seperator between commands.\n */\nconst Seperator = React.forwardRef<\n HTMLDivElement,\n Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\"bg-ui-contrast-border-base h-10 w-px\", className)}\n {...props}\n />\n )\n})\nSeperator.displayName = \"CommandBar.Seperator\"\n\ninterface CommandProps\n extends Omit<\n React.ComponentPropsWithoutRef<\"button\">,\n \"children\" | \"onClick\"\n > {\n action: () => void | Promise<void>\n label: string\n shortcut: string\n}\n\n/**\n * The command component of the command bar. This component is used to display a command, as well as registering the keyboad shortcut.\n */\nconst Command = React.forwardRef<HTMLButtonElement, CommandProps>(\n (\n {\n className,\n /**\n * @ignore\n */\n type = \"button\",\n /**\n * The command's label.\n */\n label,\n /**\n * The function to execute when the command is triggered.\n */\n action,\n /**\n * The command's shortcut\n */\n shortcut,\n disabled,\n ...props\n }: CommandProps,\n ref\n ) => {\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key.toLowerCase() === shortcut.toLowerCase()) {\n event.preventDefault()\n event.stopPropagation()\n action()\n }\n }\n\n if (!disabled) {\n document.addEventListener(\"keydown\", handleKeyDown)\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n }\n }, [action, shortcut, disabled])\n\n return (\n <button\n ref={ref}\n className={clx(\n \"bg-ui-contrast-bg-base txt-compact-small-plus transition-fg text-ui-contrast-fg-primary flex items-center gap-x-2 px-3 py-2.5 outline-none\",\n \"focus-visible:bg-ui-contrast-bg-highlight focus-visible:hover:bg-ui-contrast-bg-base-hover hover:bg-ui-contrast-bg-base-hover active:bg-ui-contrast-bg-base-pressed focus-visible:active:bg-ui-contrast-bg-base-pressed disabled:!bg-ui-bg-disabled disabled:!text-ui-fg-disabled\",\n \"last-of-type:-mr-1 last-of-type:pr-4\",\n className\n )}\n type={type}\n onClick={action}\n {...props}\n >\n <span>{label}</span>\n <Kbd className=\"bg-ui-contrast-bg-subtle border-ui-contrast-border-base text-ui-contrast-fg-secondary\">\n {shortcut.toUpperCase()}\n </Kbd>\n </button>\n )\n }\n)\nCommand.displayName = \"CommandBar.Command\"\n\nconst CommandBar = Object.assign(Root, {\n Command,\n Value,\n Bar,\n Seperator,\n})\n\nexport { CommandBar }\n"]}
|
package/dist/cjs/index.d.ts
CHANGED
@@ -12,7 +12,6 @@ export { Container } from "./components/container";
|
|
12
12
|
export { Copy } from "./components/copy";
|
13
13
|
export { CurrencyInput } from "./components/currency-input";
|
14
14
|
export { DatePicker } from "./components/date-picker";
|
15
|
-
export { Divider } from "./components/divider";
|
16
15
|
export { Drawer } from "./components/drawer";
|
17
16
|
export { DropdownMenu } from "./components/dropdown-menu";
|
18
17
|
export { FocusModal } from "./components/focus-modal";
|
package/dist/cjs/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.toast = exports.clx = exports.useToggleState = exports.usePrompt = exports.TooltipProvider = exports.Tooltip = exports.Toaster = exports.Toast = exports.Textarea = exports.Text = exports.Tabs = exports.Table = exports.Switch = exports.StatusBadge = exports.Skeleton = exports.Select = exports.RadioGroup = exports.Prompt = exports.ProgressTabs = exports.ProgressAccordion = exports.Popover = exports.Label = exports.Kbd = exports.Input = exports.IconButton = exports.IconBadge = exports.I18nProvider = exports.Hint = exports.Heading = exports.FocusModal = exports.DropdownMenu = exports.Drawer = exports.
|
3
|
+
exports.toast = exports.clx = exports.useToggleState = exports.usePrompt = exports.TooltipProvider = exports.Tooltip = exports.Toaster = exports.Toast = exports.Textarea = exports.Text = exports.Tabs = exports.Table = exports.Switch = exports.StatusBadge = exports.Skeleton = exports.Select = exports.RadioGroup = exports.Prompt = exports.ProgressTabs = exports.ProgressAccordion = exports.Popover = exports.Label = exports.Kbd = exports.Input = exports.IconButton = exports.IconBadge = exports.I18nProvider = exports.Hint = exports.Heading = exports.FocusModal = exports.DropdownMenu = exports.Drawer = exports.DatePicker = exports.CurrencyInput = exports.Copy = exports.Container = exports.CommandBar = exports.Command = exports.CodeBlock = exports.Code = exports.Checkbox = exports.Calendar = exports.Button = exports.Badge = exports.Avatar = exports.Alert = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
// Components
|
6
6
|
var alert_1 = require("./components/alert");
|
@@ -31,8 +31,6 @@ var currency_input_1 = require("./components/currency-input");
|
|
31
31
|
Object.defineProperty(exports, "CurrencyInput", { enumerable: true, get: function () { return currency_input_1.CurrencyInput; } });
|
32
32
|
var date_picker_1 = require("./components/date-picker");
|
33
33
|
Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return date_picker_1.DatePicker; } });
|
34
|
-
var divider_1 = require("./components/divider");
|
35
|
-
Object.defineProperty(exports, "Divider", { enumerable: true, get: function () { return divider_1.Divider; } });
|
36
34
|
var drawer_1 = require("./components/drawer");
|
37
35
|
Object.defineProperty(exports, "Drawer", { enumerable: true, get: function () { return drawer_1.Drawer; } });
|
38
36
|
var dropdown_menu_1 = require("./components/dropdown-menu");
|
package/dist/cjs/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,kDAA2E;AAAlE,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,oDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,8DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,kDAA2E;AAAlE,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,oDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,8DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,wCAAsC;AAA7B,0FAAA,GAAG,OAAA;AACZ,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,sEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,0DAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA+D;AAAtD,kGAAA,OAAO,OAAA;AAAE,0GAAA,eAAe,OAAA;AAEjC,SAAS;AACT,8DAAmC;AAEnC,QAAQ;AACR,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,6DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAEvB,QAAQ;AACR,mCAAiC;AAAxB,0FAAA,GAAG,OAAA;AACZ,uCAAqC;AAA5B,8FAAA,KAAK,OAAA;AAEd,QAAQ;AACR,kDAAuB","sourcesContent":["// Components\nexport { Alert } from \"./components/alert\"\nexport { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calender\"\nexport { Checkbox, type CheckboxCheckedState } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { I18nProvider } from \"./components/i18n-provider\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { Popover } from \"./components/popover\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { Skeleton } from \"./components/skeleton\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip, TooltipProvider } from \"./components/tooltip\"\n\n// Blocks\nexport * from \"./blocks/data-table\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\nexport { toast } from \"./utils/toast\"\n\n// Types\nexport * from \"./types\"\n"]}
|
@@ -12,7 +12,7 @@ import { DataTableSortingIcon } from "./data-table-sorting-icon";
|
|
12
12
|
* This component renders the table in a data table, supporting advanced features.
|
13
13
|
*/
|
14
14
|
const DataTableTable = (props) => {
|
15
|
-
const hoveredRowId = React.
|
15
|
+
const [hoveredRowId, setHoveredRowId] = React.useState(null);
|
16
16
|
const isKeyDown = React.useRef(false);
|
17
17
|
const [showStickyBorder, setShowStickyBorder] = React.useState(false);
|
18
18
|
const scrollableRef = React.useRef(null);
|
@@ -32,7 +32,7 @@ const DataTableTable = (props) => {
|
|
32
32
|
isKeyDown.current = true;
|
33
33
|
const row = instance
|
34
34
|
.getRowModel()
|
35
|
-
.rows.find((r) => r.id === hoveredRowId
|
35
|
+
.rows.find((r) => r.id === hoveredRowId);
|
36
36
|
if (row && row.getCanSelect()) {
|
37
37
|
row.toggleSelected();
|
38
38
|
}
|
@@ -103,7 +103,7 @@ const DataTableTable = (props) => {
|
|
103
103
|
canSort && (React.createElement(DataTableSortingIcon, { direction: sortDirection })))));
|
104
104
|
}))))),
|
105
105
|
React.createElement(Table.Body, { className: "border-b-0 border-t-0" }, instance.getRowModel().rows.map((row) => {
|
106
|
-
return (React.createElement(Table.Row, { key: row.id, onMouseEnter: () => (
|
106
|
+
return (React.createElement(Table.Row, { key: row.id, onMouseEnter: () => setHoveredRowId(row.id), onMouseLeave: () => setHoveredRowId(null), onClick: (e) => { var _a; return (_a = instance.onRowClick) === null || _a === void 0 ? void 0 : _a.call(instance, e, row); }, className: clx("group/row last:border-b-0", {
|
107
107
|
"cursor-pointer": !!instance.onRowClick,
|
108
108
|
}) }, row.getVisibleCells().map((cell, idx) => {
|
109
109
|
const isSelectCell = cell.column.id === "select";
|
@@ -139,7 +139,7 @@ const DataTableEmptyStateDisplay = ({ state, props, }) => {
|
|
139
139
|
return null;
|
140
140
|
}
|
141
141
|
const content = state === DataTableEmptyState.EMPTY ? props === null || props === void 0 ? void 0 : props.empty : props === null || props === void 0 ? void 0 : props.filtered;
|
142
|
-
return (React.createElement("div", { className: "flex min-h-[250px] w-full flex-
|
142
|
+
return (React.createElement("div", { className: "flex min-h-[250px] w-full flex-col items-center justify-center border-y px-6 py-4" }, (_a = content === null || content === void 0 ? void 0 : content.custom) !== null && _a !== void 0 ? _a : (React.createElement(DefaultEmptyStateContent, { heading: content === null || content === void 0 ? void 0 : content.heading, description: content === null || content === void 0 ? void 0 : content.description }))));
|
143
143
|
};
|
144
144
|
const DataTableTableSkeleton = ({ pageSize = 10, }) => {
|
145
145
|
return (React.createElement("div", { className: "flex w-full flex-1 flex-col overflow-hidden" },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-table.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-table.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Table } from \"@/components/table\"\nimport { flexRender } from \"@tanstack/react-table\"\n\nimport { useDataTableContext } from \"@/blocks/data-table/context/use-data-table-context\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport { Text } from \"@/components/text\"\nimport { clx } from \"@/utils/clx\"\nimport {\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n} from \"../types\"\nimport { DataTableSortingIcon } from \"./data-table-sorting-icon\"\n\ninterface DataTableTableProps {\n /**\n * The empty state to display when the table is empty.\n */\n emptyState?: DataTableEmptyStateProps\n}\n\n/**\n * This component renders the table in a data table, supporting advanced features.\n */\nconst DataTableTable = (props: DataTableTableProps) => {\n const hoveredRowId = React.useRef<string | null>(null)\n const isKeyDown = React.useRef(false)\n\n const [showStickyBorder, setShowStickyBorder] = React.useState(false)\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n\n const { instance } = useDataTableContext()\n\n const pageIndex = instance.pageIndex\n\n const columns = instance.getAllColumns()\n\n const hasSelect = columns.find((c) => c.id === \"select\")\n const hasActions = columns.find((c) => c.id === \"action\")\n\n React.useEffect(() => {\n const onKeyDownHandler = (event: KeyboardEvent) => {\n // If an editable element is focused, we don't want to select a row\n const isEditableElementFocused = getIsEditableElementFocused()\n\n if (\n event.key.toLowerCase() === \"x\" &&\n hoveredRowId &&\n !isKeyDown.current &&\n !isEditableElementFocused\n ) {\n isKeyDown.current = true\n\n const row = instance\n .getRowModel()\n .rows.find((r) => r.id === hoveredRowId.current)\n\n if (row && row.getCanSelect()) {\n row.toggleSelected()\n }\n }\n }\n\n const onKeyUpHandler = (event: KeyboardEvent) => {\n if (event.key.toLowerCase() === \"x\") {\n isKeyDown.current = false\n }\n }\n\n document.addEventListener(\"keydown\", onKeyDownHandler)\n document.addEventListener(\"keyup\", onKeyUpHandler)\n return () => {\n document.removeEventListener(\"keydown\", onKeyDownHandler)\n document.removeEventListener(\"keyup\", onKeyUpHandler)\n }\n }, [hoveredRowId, instance])\n\n const handleHorizontalScroll = (e: React.UIEvent<HTMLDivElement>) => {\n const scrollLeft = e.currentTarget.scrollLeft\n\n if (scrollLeft > 0) {\n setShowStickyBorder(true)\n } else {\n setShowStickyBorder(false)\n }\n }\n\n React.useEffect(() => {\n scrollableRef.current?.scroll({ top: 0, left: 0 })\n }, [pageIndex])\n\n if (instance.showSkeleton) {\n return <DataTableTableSkeleton pageSize={instance.pageSize} />\n }\n\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n {instance.emptyState === DataTableEmptyState.POPULATED && (\n <div\n ref={scrollableRef}\n onScroll={handleHorizontalScroll}\n className=\"min-h-0 w-full flex-1 overflow-auto overscroll-none border-y\"\n >\n <Table className=\"relative isolate w-full\">\n <Table.Header\n className=\"shadow-ui-border-base sticky inset-x-0 top-0 z-[1] w-full border-b-0 border-t-0 shadow-[0_1px_1px_0]\"\n style={{ transform: \"translate3d(0,0,0)\" }}\n >\n {instance.getHeaderGroups().map((headerGroup) => (\n <Table.Row\n key={headerGroup.id}\n className={clx(\"border-b-0\", {\n \"[&_th:last-of-type]:w-[1%] [&_th:last-of-type]:whitespace-nowrap\":\n hasActions,\n \"[&_th:first-of-type]:w-[1%] [&_th:first-of-type]:whitespace-nowrap\":\n hasSelect,\n })}\n >\n {headerGroup.headers.map((header, idx) => {\n const canSort = header.column.getCanSort()\n const sortDirection = header.column.getIsSorted()\n const sortHandler = header.column.getToggleSortingHandler()\n\n const isActionHeader = header.id === \"action\"\n const isSelectHeader = header.id === \"select\"\n const isSpecialHeader = isActionHeader || isSelectHeader\n\n const Wrapper = canSort ? \"button\" : \"div\"\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.HeaderCell\n key={header.id}\n className={clx(\"whitespace-nowrap\", {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectHeader,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionHeader,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"bg-ui-bg-subtle sticky\":\n isFirstColumn || isSelectHeader,\n \"left-0\":\n isSelectHeader || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n })}\n style={\n !isSpecialHeader\n ? {\n width: header.column.columnDef.size,\n maxWidth: header.column.columnDef.maxSize,\n minWidth: header.column.columnDef.minSize,\n }\n : undefined\n }\n >\n <Wrapper\n type={canSort ? \"button\" : undefined}\n onClick={canSort ? sortHandler : undefined}\n className={clx(\n \"group flex w-fit cursor-default items-center gap-2\",\n {\n \"cursor-pointer\": canSort,\n }\n )}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {canSort && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n </Wrapper>\n </Table.HeaderCell>\n )\n })}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body className=\"border-b-0 border-t-0\">\n {instance.getRowModel().rows.map((row) => {\n return (\n <Table.Row\n key={row.id}\n onMouseEnter={() => (hoveredRowId.current = row.id)}\n onMouseLeave={() => (hoveredRowId.current = null)}\n onClick={(e) => instance.onRowClick?.(e, row)}\n className={clx(\"group/row last-of-type:border-b-0\", {\n \"cursor-pointer\": !!instance.onRowClick,\n })}\n >\n {row.getVisibleCells().map((cell, idx) => {\n const isSelectCell = cell.column.id === \"select\"\n const isActionCell = cell.column.id === \"action\"\n const isSpecialCell = isSelectCell || isActionCell\n\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.Cell\n key={cell.id}\n className={clx(\n \"items-stretch truncate whitespace-nowrap\",\n {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectCell,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionCell,\n \"bg-ui-bg-base group-hover/row:bg-ui-bg-base-hover transition-fg sticky h-full\":\n isFirstColumn || isSelectCell,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"left-0\":\n isSelectCell || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n }\n )}\n style={\n !isSpecialCell\n ? {\n width: cell.column.columnDef.size,\n maxWidth: cell.column.columnDef.maxSize,\n minWidth: cell.column.columnDef.minSize,\n }\n : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </Table.Cell>\n )\n })}\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </div>\n )}\n <DataTableEmptyStateDisplay\n state={instance.emptyState}\n props={props.emptyState}\n />\n </div>\n )\n}\nDataTableTable.displayName = \"DataTable.Table\"\n\ninterface DataTableEmptyStateDisplayProps {\n state: DataTableEmptyState\n props?: DataTableEmptyStateProps\n}\n\nconst DefaultEmptyStateContent = ({\n heading,\n description,\n}: DataTableEmptyStateContent) => (\n <div className=\"flex size-full flex-col items-center justify-center gap-2\">\n <Text size=\"base\" weight=\"plus\">\n {heading}\n </Text>\n <Text>{description}</Text>\n </div>\n)\n\nconst DataTableEmptyStateDisplay = ({\n state,\n props,\n}: DataTableEmptyStateDisplayProps) => {\n if (state === DataTableEmptyState.POPULATED) {\n return null\n }\n\n const content =\n state === DataTableEmptyState.EMPTY ? props?.empty : props?.filtered\n\n return (\n <div className=\"flex min-h-[250px] w-full flex-1 flex-col items-center justify-center border-y px-6 py-4\">\n {content?.custom ?? (\n <DefaultEmptyStateContent\n heading={content?.heading}\n description={content?.description}\n />\n )}\n </div>\n )\n}\n\ninterface DataTableTableSkeletonProps {\n pageSize?: number\n}\n\nconst DataTableTableSkeleton = ({\n pageSize = 10,\n}: DataTableTableSkeletonProps) => {\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n <div className=\"min-h-0 w-full flex-1 overscroll-none border-y\">\n <div className=\"flex flex-col divide-y\">\n <Skeleton className=\"h-12 w-full\" />\n {Array.from({ length: pageSize }, (_, i) => i).map((row) => (\n <Skeleton key={row} className=\"h-12 w-full rounded-none\" />\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getIsEditableElementFocused() {\n const activeElement = !!document ? document.activeElement : null\n const isEditableElementFocused =\n activeElement instanceof HTMLInputElement ||\n activeElement instanceof HTMLTextAreaElement ||\n activeElement?.getAttribute(\"contenteditable\") === \"true\"\n\n return isEditableElementFocused\n}\n\nexport { DataTableTable }\nexport type { DataTableEmptyStateProps, DataTableTableProps }\n"]}
|
1
|
+
{"version":3,"file":"data-table-table.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-table.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Table } from \"@/components/table\"\nimport { flexRender } from \"@tanstack/react-table\"\n\nimport { useDataTableContext } from \"@/blocks/data-table/context/use-data-table-context\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport { Text } from \"@/components/text\"\nimport { clx } from \"@/utils/clx\"\nimport {\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n} from \"../types\"\nimport { DataTableSortingIcon } from \"./data-table-sorting-icon\"\n\ninterface DataTableTableProps {\n /**\n * The empty state to display when the table is empty.\n */\n emptyState?: DataTableEmptyStateProps\n}\n\n/**\n * This component renders the table in a data table, supporting advanced features.\n */\nconst DataTableTable = (props: DataTableTableProps) => {\n const [hoveredRowId, setHoveredRowId] = React.useState<string | null>(null)\n const isKeyDown = React.useRef(false)\n\n const [showStickyBorder, setShowStickyBorder] = React.useState(false)\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n\n const { instance } = useDataTableContext()\n\n const pageIndex = instance.pageIndex\n\n const columns = instance.getAllColumns()\n\n const hasSelect = columns.find((c) => c.id === \"select\")\n const hasActions = columns.find((c) => c.id === \"action\")\n\n React.useEffect(() => {\n const onKeyDownHandler = (event: KeyboardEvent) => {\n // If an editable element is focused, we don't want to select a row\n const isEditableElementFocused = getIsEditableElementFocused()\n\n if (\n event.key.toLowerCase() === \"x\" &&\n hoveredRowId &&\n !isKeyDown.current &&\n !isEditableElementFocused\n ) {\n isKeyDown.current = true\n\n const row = instance\n .getRowModel()\n .rows.find((r) => r.id === hoveredRowId)\n\n if (row && row.getCanSelect()) {\n row.toggleSelected()\n }\n }\n }\n\n const onKeyUpHandler = (event: KeyboardEvent) => {\n if (event.key.toLowerCase() === \"x\") {\n isKeyDown.current = false\n }\n }\n\n document.addEventListener(\"keydown\", onKeyDownHandler)\n document.addEventListener(\"keyup\", onKeyUpHandler)\n return () => {\n document.removeEventListener(\"keydown\", onKeyDownHandler)\n document.removeEventListener(\"keyup\", onKeyUpHandler)\n }\n }, [hoveredRowId, instance])\n\n const handleHorizontalScroll = (e: React.UIEvent<HTMLDivElement>) => {\n const scrollLeft = e.currentTarget.scrollLeft\n\n if (scrollLeft > 0) {\n setShowStickyBorder(true)\n } else {\n setShowStickyBorder(false)\n }\n }\n\n React.useEffect(() => {\n scrollableRef.current?.scroll({ top: 0, left: 0 })\n }, [pageIndex])\n\n if (instance.showSkeleton) {\n return <DataTableTableSkeleton pageSize={instance.pageSize} />\n }\n\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n {instance.emptyState === DataTableEmptyState.POPULATED && (\n <div\n ref={scrollableRef}\n onScroll={handleHorizontalScroll}\n className=\"min-h-0 w-full flex-1 overflow-auto overscroll-none border-y\"\n >\n <Table className=\"relative isolate w-full\">\n <Table.Header\n className=\"shadow-ui-border-base sticky inset-x-0 top-0 z-[1] w-full border-b-0 border-t-0 shadow-[0_1px_1px_0]\"\n style={{ transform: \"translate3d(0,0,0)\" }}\n >\n {instance.getHeaderGroups().map((headerGroup) => (\n <Table.Row\n key={headerGroup.id}\n className={clx(\"border-b-0\", {\n \"[&_th:last-of-type]:w-[1%] [&_th:last-of-type]:whitespace-nowrap\":\n hasActions,\n \"[&_th:first-of-type]:w-[1%] [&_th:first-of-type]:whitespace-nowrap\":\n hasSelect,\n })}\n >\n {headerGroup.headers.map((header, idx) => {\n const canSort = header.column.getCanSort()\n const sortDirection = header.column.getIsSorted()\n const sortHandler = header.column.getToggleSortingHandler()\n\n const isActionHeader = header.id === \"action\"\n const isSelectHeader = header.id === \"select\"\n const isSpecialHeader = isActionHeader || isSelectHeader\n\n const Wrapper = canSort ? \"button\" : \"div\"\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.HeaderCell\n key={header.id}\n className={clx(\"whitespace-nowrap\", {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectHeader,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionHeader,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"bg-ui-bg-subtle sticky\":\n isFirstColumn || isSelectHeader,\n \"left-0\":\n isSelectHeader || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n })}\n style={\n !isSpecialHeader\n ? {\n width: header.column.columnDef.size,\n maxWidth: header.column.columnDef.maxSize,\n minWidth: header.column.columnDef.minSize,\n }\n : undefined\n }\n >\n <Wrapper\n type={canSort ? \"button\" : undefined}\n onClick={canSort ? sortHandler : undefined}\n className={clx(\n \"group flex w-fit cursor-default items-center gap-2\",\n {\n \"cursor-pointer\": canSort,\n }\n )}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {canSort && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n </Wrapper>\n </Table.HeaderCell>\n )\n })}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body className=\"border-b-0 border-t-0\">\n {instance.getRowModel().rows.map((row) => {\n return (\n <Table.Row\n key={row.id}\n onMouseEnter={() => setHoveredRowId(row.id)}\n onMouseLeave={() => setHoveredRowId(null)}\n onClick={(e) => instance.onRowClick?.(e, row)}\n className={clx(\"group/row last:border-b-0\", {\n \"cursor-pointer\": !!instance.onRowClick,\n })}\n >\n {row.getVisibleCells().map((cell, idx) => {\n const isSelectCell = cell.column.id === \"select\"\n const isActionCell = cell.column.id === \"action\"\n const isSpecialCell = isSelectCell || isActionCell\n\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.Cell\n key={cell.id}\n className={clx(\n \"items-stretch truncate whitespace-nowrap\",\n {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectCell,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionCell,\n \"bg-ui-bg-base group-hover/row:bg-ui-bg-base-hover transition-fg sticky h-full\":\n isFirstColumn || isSelectCell,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"left-0\":\n isSelectCell || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n }\n )}\n style={\n !isSpecialCell\n ? {\n width: cell.column.columnDef.size,\n maxWidth: cell.column.columnDef.maxSize,\n minWidth: cell.column.columnDef.minSize,\n }\n : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </Table.Cell>\n )\n })}\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </div>\n )}\n <DataTableEmptyStateDisplay\n state={instance.emptyState}\n props={props.emptyState}\n />\n </div>\n )\n}\nDataTableTable.displayName = \"DataTable.Table\"\n\ninterface DataTableEmptyStateDisplayProps {\n state: DataTableEmptyState\n props?: DataTableEmptyStateProps\n}\n\nconst DefaultEmptyStateContent = ({\n heading,\n description,\n}: DataTableEmptyStateContent) => (\n <div className=\"flex size-full flex-col items-center justify-center gap-2\">\n <Text size=\"base\" weight=\"plus\">\n {heading}\n </Text>\n <Text>{description}</Text>\n </div>\n)\n\nconst DataTableEmptyStateDisplay = ({\n state,\n props,\n}: DataTableEmptyStateDisplayProps) => {\n if (state === DataTableEmptyState.POPULATED) {\n return null\n }\n\n const content =\n state === DataTableEmptyState.EMPTY ? props?.empty : props?.filtered\n\n return (\n <div className=\"flex min-h-[250px] w-full flex-col items-center justify-center border-y px-6 py-4\">\n {content?.custom ?? (\n <DefaultEmptyStateContent\n heading={content?.heading}\n description={content?.description}\n />\n )}\n </div>\n )\n}\n\ninterface DataTableTableSkeletonProps {\n pageSize?: number\n}\n\nconst DataTableTableSkeleton = ({\n pageSize = 10,\n}: DataTableTableSkeletonProps) => {\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n <div className=\"min-h-0 w-full flex-1 overscroll-none border-y\">\n <div className=\"flex flex-col divide-y\">\n <Skeleton className=\"h-12 w-full\" />\n {Array.from({ length: pageSize }, (_, i) => i).map((row) => (\n <Skeleton key={row} className=\"h-12 w-full rounded-none\" />\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getIsEditableElementFocused() {\n const activeElement = !!document ? document.activeElement : null\n const isEditableElementFocused =\n activeElement instanceof HTMLInputElement ||\n activeElement instanceof HTMLTextAreaElement ||\n activeElement?.getAttribute(\"contenteditable\") === \"true\"\n\n return isEditableElementFocused\n}\n\nexport { DataTableTable }\nexport type { DataTableEmptyStateProps, DataTableTableProps }\n\n"]}
|
@@ -3,5 +3,5 @@ export * from "./use-data-table";
|
|
3
3
|
export * from "./utils/create-data-table-column-helper";
|
4
4
|
export * from "./utils/create-data-table-command-helper";
|
5
5
|
export * from "./utils/create-data-table-filter-helper";
|
6
|
-
export type { DataTableAction, DataTableCellContext, DataTableColumn, DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableEmptyState, DataTableEmptyStateContent, DataTableEmptyStateProps, DataTableFilter, DataTableFilteringState, DataTableHeaderContext, DataTablePaginationState,
|
6
|
+
export type { DataTableAction, DataTableCellContext, DataTableColumn, DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableEmptyState, DataTableEmptyStateContent, DataTableEmptyStateProps, DataTableFilter, DataTableFilteringState, DataTableHeaderContext, DataTablePaginationState, DataTableRowSelectionState, DataTableSortDirection, DataTableSortingState, } from "./types";
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yCAAyC,CAAA;AACvD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA;AAEvD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,+BAA+B,EAC/B,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yCAAyC,CAAA;AACvD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA;AAEvD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,+BAA+B,EAC/B,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yCAAyC,CAAA;AACvD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA","sourcesContent":["export * from \"./data-table\"\nexport * from \"./use-data-table\"\nexport * from \"./utils/create-data-table-column-helper\"\nexport * from \"./utils/create-data-table-command-helper\"\nexport * from \"./utils/create-data-table-filter-helper\"\n\nexport type {\n DataTableAction,\n DataTableCellContext,\n DataTableColumn,\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n DataTableFilter,\n DataTableFilteringState,\n DataTableHeaderContext,\n DataTablePaginationState,\n
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yCAAyC,CAAA;AACvD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA","sourcesContent":["export * from \"./data-table\"\nexport * from \"./use-data-table\"\nexport * from \"./utils/create-data-table-column-helper\"\nexport * from \"./utils/create-data-table-command-helper\"\nexport * from \"./utils/create-data-table-filter-helper\"\n\nexport type {\n DataTableAction,\n DataTableCellContext,\n DataTableColumn,\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n DataTableFilter,\n DataTableFilteringState,\n DataTableHeaderContext,\n DataTablePaginationState,\n DataTableRowSelectionState,\n DataTableSortDirection,\n DataTableSortingState,\n} from \"./types\"\n"]}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
-
import type { AccessorFn, AccessorFnColumnDef, AccessorKeyColumnDef, CellContext, Column, ColumnDef, ColumnFilter, ColumnSort, DeepKeys, DeepValue, DisplayColumnDef, HeaderContext, IdentifiedColumnDef, IdIdentifier, PaginationState,
|
2
|
+
import type { AccessorFn, AccessorFnColumnDef, AccessorKeyColumnDef, CellContext, Column, ColumnDef, ColumnFilter, ColumnSort, DeepKeys, DeepValue, DisplayColumnDef, HeaderContext, IdentifiedColumnDef, IdIdentifier, PaginationState, RowData, RowSelectionState, SortDirection, StringHeaderIdentifier, StringOrTemplateHeader } from "@tanstack/react-table";
|
3
3
|
export type DataTableRowData = RowData;
|
4
|
-
export type DataTableRow<TData extends DataTableRowData> = Row<TData>;
|
5
4
|
export type DataTableAction<TData> = {
|
6
5
|
label: string;
|
7
6
|
onClick: (ctx: CellContext<TData, unknown>) => void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":"AA6QA,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,wDAAiC,CAAA;IACjC,8CAAuB,CAAA;AACzB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B","sourcesContent":["import type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n CellContext,\n Column,\n ColumnDef,\n ColumnFilter,\n ColumnSort,\n DeepKeys,\n DeepValue,\n DisplayColumnDef,\n HeaderContext,\n IdentifiedColumnDef,\n IdIdentifier,\n PaginationState,\n RowData,\n RowSelectionState,\n SortDirection,\n StringHeaderIdentifier,\n StringOrTemplateHeader,\n} from \"@tanstack/react-table\"\n\nexport type DataTableRowData = RowData\n\nexport type DataTableAction<TData> = {\n label: string\n onClick: (ctx: CellContext<TData, unknown>) => void\n icon?: React.ReactNode\n}\n\nexport interface DataTableCellContext<TData extends DataTableRowData, TValue>\n extends CellContext<TData, TValue> {}\n\nexport interface DataTableHeaderContext<TData extends DataTableRowData, TValue>\n extends HeaderContext<TData, TValue> {}\n\nexport type DataTableSortDirection = SortDirection\n\nexport interface DataTableActionColumnDef<TData>\n extends Pick<DisplayColumnDef<TData>, \"meta\"> {\n actions:\n | DataTableAction<TData>[]\n | DataTableAction<TData>[][]\n | ((\n ctx: DataTableCellContext<TData, unknown>\n ) => DataTableAction<TData>[] | DataTableAction<TData>[][])\n}\n\nexport interface DataTableSelectColumnDef<TData>\n extends Pick<DisplayColumnDef<TData>, \"cell\" | \"header\"> {}\n\nexport type DataTableSortableColumnDef = {\n /**\n * The label to display in the sorting menu.\n */\n sortLabel?: string\n /**\n * The label to display in the sorting menu when sorting in ascending order.\n */\n sortAscLabel?: string\n /**\n * The label to display in the sorting menu when sorting in descending order.\n */\n sortDescLabel?: string\n /**\n * Whether the column is sortable.\n * @default false\n */\n enableSorting?: boolean\n}\n\nexport type DataTableSortableColumnDefMeta = {\n ___sortMetaData?: DataTableSortableColumnDef\n}\n\nexport type DataTableActionColumnDefMeta<TData> = {\n ___actions?:\n | DataTableAction<TData>[]\n | DataTableAction<TData>[][]\n | ((ctx: DataTableCellContext<TData, unknown>) => DataTableAction<TData>[])\n}\n\nexport interface DataTableColumn<\n TData extends DataTableRowData,\n TValue = unknown\n> extends Column<TData, TValue> {}\n\nexport type DataTableColumnDef<\n TData extends DataTableRowData,\n TValue = unknown\n> = ColumnDef<TData, TValue>\n\nexport type DataTableColumnSizing = {\n /**\n * The maximum size of the column.\n */\n maxSize?: number\n /**\n * The minimum size of the column.\n */\n minSize?: number\n /**\n * The size of the column.\n */\n size?: number\n}\n\ntype DataTableColumnIdentifiers<TData extends DataTableRowData, TValue> =\n | IdIdentifier<TData, TValue>\n | StringHeaderIdentifier\n\nexport type DataTableDisplayColumnDef<\n TData extends DataTableRowData,\n TValue = unknown\n> = Pick<\n DisplayColumnDef<TData, TValue>,\n \"meta\" | \"header\" | \"cell\" | \"minSize\" | \"maxSize\" | \"size\"\n> &\n DataTableColumnIdentifiers<TData, TValue>\n\nexport interface DataTableIdentifiedColumnDef<\n TData extends DataTableRowData,\n TValue\n> extends Pick<\n IdentifiedColumnDef<TData, TValue>,\n \"meta\" | \"header\" | \"cell\" | \"minSize\" | \"maxSize\" | \"size\"\n > {\n id?: string\n header?: StringOrTemplateHeader<TData, TValue>\n}\n\nexport interface DataTableColumnHelper<TData> {\n /**\n * Create a accessor column.\n *\n * @param accessor The accessor to create the column for.\n * @param column The column to create for the accessor.\n * @returns The created accessor.\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DataTableDisplayColumnDef<TData, TValue> & DataTableSortableColumnDef\n : DataTableIdentifiedColumnDef<TData, TValue> & DataTableSortableColumnDef\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TData, TValue>\n : AccessorKeyColumnDef<TData, TValue>\n /**\n * Create a display column.\n *\n * @param column The column to create the display for.\n * @returns The created display column.\n */\n display: (column: DataTableDisplayColumnDef<TData>) => DisplayColumnDef<TData>\n /**\n * Create an action column.\n *\n * @param props The props to create the action column for.\n * @returns The created action column.\n */\n action: (\n props: DataTableActionColumnDef<TData>\n ) => DisplayColumnDef<TData, unknown>\n /**\n * Create a select column.\n *\n * @param props The props to create the select column for.\n * @returns The created select column.\n */\n select: (\n props?: DataTableSelectColumnDef<TData>\n ) => DisplayColumnDef<TData, unknown>\n}\n\nexport interface DataTableSortingState extends ColumnSort {}\nexport interface DataTableRowSelectionState extends RowSelectionState {}\nexport interface DataTablePaginationState extends PaginationState {}\nexport type DataTableFilteringState<\n T extends Record<string, unknown> = Record<string, unknown>\n> = {\n [K in keyof T]: T[K]\n}\n\nexport type DataTableFilterType = \"radio\" | \"select\" | \"date\"\nexport type DataTableFilterOption<T = string> = {\n label: string\n value: T\n}\n\ninterface DataTableBaseFilterProps {\n type: DataTableFilterType\n label: string\n}\n\nexport interface DataTableRadioFilterProps extends DataTableBaseFilterProps {\n type: \"radio\"\n options: DataTableFilterOption[]\n}\n\nexport interface DataTableSelectFilterProps extends DataTableBaseFilterProps {\n type: \"select\"\n options: DataTableFilterOption[]\n}\n\nexport interface DataTableDateFilterProps extends DataTableBaseFilterProps {\n type: \"date\"\n /**\n * The format of the date.\n * @default \"date\"\n */\n format?: \"date\" | \"date-time\"\n /**\n * The label to display for the range option.\n */\n rangeOptionLabel?: string\n /**\n * The label to display for the start of the range option.\n */\n rangeOptionStartLabel?: string\n /**\n * The label to display for the end of the range option.\n */\n rangeOptionEndLabel?: string\n /**\n * Whether to disable the range option.\n */\n disableRangeOption?: boolean\n /**\n * A function to format the date value.\n *\n * @example\n * ```tsx\n * formatDateValue={(value) => value.toLocaleDateString()}\n * ```\n */\n formatDateValue?: (value: Date) => string\n /**\n * The options to display in the filter.\n *\n * @example\n * ```tsx\n * options: [\n * { label: \"Today\", value: { $gte: new Date().toISOString() } },\n * { label: \"Yesterday\", value: { $gte: new Date(new Date().getTime() - 24 * 60 * 60 * 1000).toISOString() } },\n * ]\n * ```\n */\n options: DataTableFilterOption<DataTableDateComparisonOperator>[]\n}\n\nexport type DataTableFilterProps =\n | DataTableRadioFilterProps\n | DataTableSelectFilterProps\n | DataTableDateFilterProps\n\nexport type DataTableFilter<\n T extends DataTableFilterProps = DataTableFilterProps\n> = T & {\n id: string\n}\n\nexport enum DataTableEmptyState {\n EMPTY = \"EMPTY\",\n FILTERED_EMPTY = \"FILTERED_EMPTY\",\n POPULATED = \"POPULATED\",\n}\n\nexport type DataTableDateComparisonOperator = {\n /**\n * The filtered date must be greater than or equal to this value.\n */\n $gte?: string\n /**\n * The filtered date must be less than or equal to this value.\n */\n $lte?: string\n /**\n * The filtered date must be less than this value.\n */\n $lt?: string\n /**\n * The filtered date must be greater than this value.\n */\n $gt?: string\n}\n\ntype DataTableCommandAction = (\n selection: DataTableRowSelectionState\n) => void | Promise<void>\n\nexport interface DataTableCommand {\n /**\n * The label to display in the command bar.\n */\n label: string\n /**\n * The action to perform when the command is selected.\n */\n action: DataTableCommandAction\n /**\n * The shortcut to use for the command.\n *\n * @example \"i\"\n */\n shortcut: string\n}\n\nexport type DataTableEmptyStateContent = {\n /**\n * The heading to display in the empty state.\n */\n heading?: string\n /**\n * The description to display in the empty state.\n */\n description?: string\n /**\n * A custom component to display in the empty state, if provided it will override the heading and description.\n */\n custom?: React.ReactNode\n}\n\nexport type DataTableEmptyStateProps = {\n /**\n * The empty state to display when the table is filtered, but no rows are found.\n */\n filtered?: DataTableEmptyStateContent\n /**\n * The empty state to display when the table is empty.\n */\n empty?: DataTableEmptyStateContent\n}\n\nexport interface DataTableColumnFilter extends ColumnFilter {}\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type TableOptions, useReactTable } from "@tanstack/react-table";
|
2
2
|
import * as React from "react";
|
3
|
-
import { DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableEmptyState, DataTableFilter, DataTableFilteringState, DataTableFilterOption, DataTablePaginationState,
|
3
|
+
import { DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableEmptyState, DataTableFilter, DataTableFilteringState, DataTableFilterOption, DataTablePaginationState, DataTableRowSelectionState, DataTableSortingState } from "./types";
|
4
4
|
interface DataTableOptions<TData> extends Pick<TableOptions<TData>, "data" | "getRowId"> {
|
5
5
|
/**
|
6
6
|
* The columns to use for the table.
|
@@ -31,7 +31,6 @@ interface DataTableOptions<TData> extends Pick<TableOptions<TData>, "data" | "ge
|
|
31
31
|
rowSelection?: {
|
32
32
|
state: DataTableRowSelectionState;
|
33
33
|
onRowSelectionChange: (state: DataTableRowSelectionState) => void;
|
34
|
-
enableRowSelection?: boolean | ((row: DataTableRow<TData>) => boolean) | undefined;
|
35
34
|
};
|
36
35
|
/**
|
37
36
|
* The state and callback for the sorting.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EAEjB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,+BAA+B,EAC/B,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,
|
1
|
+
{"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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"}
|
@@ -6,7 +6,7 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
|
|
6
6
|
const { state: sortingState, onSortingChange } = sorting !== null && sorting !== void 0 ? sorting : {};
|
7
7
|
const { state: filteringState, onFilteringChange } = filtering !== null && filtering !== void 0 ? filtering : {};
|
8
8
|
const { state: paginationState, onPaginationChange } = pagination !== null && pagination !== void 0 ? pagination : {};
|
9
|
-
const { state: rowSelectionState, onRowSelectionChange
|
9
|
+
const { state: rowSelectionState, onRowSelectionChange } = rowSelection !== null && rowSelection !== void 0 ? rowSelection : {};
|
10
10
|
const autoResetPageIndexHandler = React.useCallback(() => {
|
11
11
|
return autoResetPageIndex
|
12
12
|
? () => paginationState &&
|
@@ -57,7 +57,6 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
|
|
57
57
|
})),
|
58
58
|
pagination: paginationState,
|
59
59
|
},
|
60
|
-
enableRowSelection,
|
61
60
|
rowCount,
|
62
61
|
onColumnFiltersChange: filteringStateHandler(),
|
63
62
|
onRowSelectionChange: rowSelectionStateHandler(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport * as React from \"react\";\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\";\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[];\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?: boolean | ((row: DataTableRow<TData>) => boolean) | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const { state: rowSelectionState, onRowSelectionChange, enableRowSelection } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n autoResetPageIndexHandler()?.()\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable };\nexport type { DataTableOptions, UseDataTableReturn };\n\n"]}
|
1
|
+
{"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAMf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAKL,mBAAmB,GAOpB,MAAM,SAAS,CAAC;AAkIjB,MAAM,YAAY,GAAG,CAAS,EAC5B,QAAQ,GAAG,CAAC,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,SAAS,EACT,UAAU,EACV,MAAM,EACN,UAAU,EACV,kBAAkB,GAAG,IAAI,EACzB,SAAS,GAAG,KAAK,EACjB,GAAG,OAAO,EACc,EAA6B,EAAE;;IACvD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAA;IAC9D,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAA;IACpE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAA;IACvE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAA;IAE7E,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvD,OAAO,kBAAkB;YACvB,CAAC,CAAC,GAAG,EAAE,CACH,eAAe;iBACf,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,EAAE,GAAG,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;YAC9D,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE7D,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACjD,OAAO,eAAe;YACpB,CAAC,CAAC,CAAC,cAAqC,EAAE,EAAE;;gBACxC,MAAA,yBAAyB,EAAE,2CAAI,CAAA;gBAC/B,0BAA0B,CACxB,eAAe,EACf,YAAY,CACb,CAAC,cAAc,CAAC,CAAA;YACnB,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC,CAAA;IAE9D,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtD,OAAO,oBAAoB;YACzB,CAAC,CAAC,CAAC,cAA0C,EAAE,EAAE;;gBAC7C,MAAA,yBAAyB,EAAE,2CAAI,CAAA;gBAC/B,+BAA+B,CAC7B,oBAAoB,EACpB,iBAAiB,CAClB,CAAC,cAAc,CAAC,CAAA;YACnB,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,CAAC,CAAA;IAExE,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnD,OAAO,iBAAiB;YACtB,CAAC,CAAC,CAAC,cAA2C,EAAE,EAAE;;gBAC9C,MAAA,yBAAyB,EAAE,2CAAI,CAAA;gBAC/B,4BAA4B,CAC1B,iBAAiB,EACjB,cAAc,CACf,CAAC,cAAc,CAAC,CAAA;YACnB,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,CAAC,CAAC,CAAA;IAElE,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,OAAO,kBAAkB;YACvB,CAAC,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,eAAe,CAAC;YACpE,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAA;IAEzC,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,GAAG,OAAO;QACV,eAAe,EAAE,eAAe,EAAE;QAClC,KAAK,EAAE;YACL,YAAY,EAAE,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE;YACrC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YAClD,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAC,GAAG,CACrD,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjB,EAAE;gBACF,KAAK,EAAE,MAAM;aACd,CAAC,CACH;YACD,UAAU,EAAE,eAAe;SAC5B;QACD,QAAQ;QACR,qBAAqB,EAAE,qBAAqB,EAAE;QAC9C,oBAAoB,EAAE,wBAAwB,EAAE;QAChD,eAAe,EAAE,mBAAmB,EAAE;QACtC,kBAAkB,EAAE,sBAAsB,EAAE;QAC5C,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;QACtB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;;QACxC,OAAO,MAAA,MAAA,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,0CAAG,CAAC,CAAC,mCAAI,IAAI,CAAA;IACjD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAClC,CACE,gBAAwE,EACxE,EAAE;;QACF,MAAM,WAAW,GAAG,MAAA,MAAA,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,0CAAG,CAAC,CAAC,mCAAI,IAAI,CAAA;QAC5D,MAAM,UAAU,GACd,OAAO,gBAAgB,KAAK,UAAU;YACpC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;YAC/B,CAAC,CAAC,gBAAgB,CAAA;QAEtB,MAAA,yBAAyB,EAAE,2CAAI,CAAA;QAC/B,QAAQ,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACnC,CAAC,EACD,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CACtC,CAAA;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,OAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAA;IACtB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CACxC,CACE,EAAU,EACV,EAAE;QACF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAE9D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,MAAM,CAAC,OAAqC,CAAA;IACrD,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAA;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,EAAU,EAAE,EAAE;QACb,OAAO,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAA;IAChE,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;;QAC1C,MAAM,KAAK,GAAG,MAAA,QAAQ,CAAC,QAAQ,EAAE,CAAC,aAAa,mCAAI,EAAE,CAAA;QACrD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7E,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,MAAoB,EAAE,EAAE;;QACvB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAA,yBAAyB,EAAE,2CAAI,CAAA;QACjC,CAAC;QACD,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,EAAE,GAAG,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IACvE,CAAC,EACD,CAAC,iBAAiB,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAC7D,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,EAAU,EAAE,EAAE;;QACb,MAAM,cAAc,GAAG,YAAY,EAAE,CAAA;QACrC,OAAO,cAAc,CAAC,EAAE,CAAC,CAAA;QACzB,MAAA,yBAAyB,EAAE,2CAAI,CAAA;QAC/B,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,cAAc,CAAC,CAAA;IACrC,CAAC,EACD,CAAC,iBAAiB,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAC7D,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;;QAC1C,MAAA,yBAAyB,EAAE,2CAAI,CAAA;QAC/B,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,EAAE,CAAC,CAAA;IACzB,CAAC,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC,CAAA;IAElD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,MAAoB,EAAE,EAAE;QACvB,SAAS,CAAC,MAAM,CAAC,CAAA;IACnB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;IAE3E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAA;IACvE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAiC,CAAA;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,cAAc,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvC,OAAO,WAAW,CAAA;IACpB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,CAAC,KAAa,EAAE,EAAE;;YACvB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC;YAED,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAA,yBAAyB,EAAE,2CAAI,CAAA;gBAC/B,cAAc,CAAC,KAAK,CAAC,CAAA;gBACrB,OAAM;YACR,CAAC;YAED,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;;gBACnC,MAAA,yBAAyB,EAAE,2CAAI,CAAA;gBAC/B,cAAc,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC,EAAE,QAAQ,CAAC,CAAA;QACd,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAA;IAEzD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE;YACV,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,CAAC,MAAc,EAAE,EAAE;QACjB,cAAc,CAAC,MAAM,CAAC,CAAA;QACtB,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,MAAM,CAAC,CAAA;IACjC,CAAC,EACD,CAAC,qBAAqB,CAAC,CACxB,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,OAAO,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAA;IACvB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAA;IACzC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAA;IAExC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;QAE/D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,mBAAmB,CAAC,SAAS,CAAA;QACtC,CAAC;QAED,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,OAAO,mBAAmB,CAAC,cAAc,CAAA;QAC3C,CAAC;QAED,OAAO,mBAAmB,CAAC,KAAK,CAAA;IAClC,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;IAEvC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,OAAO,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA;IAChD,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAErB,MAAM,gBAAgB,GAAY,CAAC,CAAC,UAAU,CAAA;IAC9C,MAAM,eAAe,GAAY,CAAC,CAAC,SAAS,CAAA;IAC5C,MAAM,aAAa,GAAY,CAAC,CAAC,OAAO,CAAA;IACxC,MAAM,YAAY,GAAY,CAAC,CAAC,MAAM,CAAA;IAEtC,OAAO;QACL,QAAQ;QACR,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,aAAa;QACb,gBAAgB;QAChB,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,CAAC,QAAQ,EAAE,0CAAE,UAAU,0CAAE,SAAS,mCAAI,CAAC;QAC1D,QAAQ,EAAE,MAAA,MAAA,MAAA,QAAQ,CAAC,QAAQ,EAAE,0CAAE,UAAU,0CAAE,QAAQ,mCAAI,EAAE;QACzD,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,SAAS;QACT,cAAc,EAAE,qBAAqB;QACrC,UAAU;QACV,aAAa;QACb,UAAU;QACV,UAAU;QACV,YAAY;QACZ,eAAe;QACf,UAAU;QACV,gBAAgB;QAChB,aAAa;QACb,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,WAAW;QACX,eAAe;QACf,WAAW;QACX,UAAU;QACV,cAAc;QACd,UAAU;QACV,UAAU;QACV,SAAS;QACT,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAED,SAAS,0BAA0B,CACjC,eAA4C,EAC5C,KAAyB;IAEzB,OAAO,CAAC,cAAqC,EAAE,EAAE;QAC/C,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU;YAClC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,CAAC,CAAC,cAAc,CAAA;QACpB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAE3B,eAAe,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,oBAAwD,EACxD,KAAyB;IAEzB,OAAO,CAAC,cAA0C,EAAE,EAAE;QACpD,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU;YAClC,CAAC,CAAC,cAAc,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,CAAA;QAEpB,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,iBAA2D,EAC3D,KAA+B;IAE/B,OAAO,CAAC,cAA2C,EAAE,EAAE;QACrD,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU;YAClC,CAAC,CAAC,cAAc,CACZ,MAAM,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjD,EAAE;gBACF,KAAK,EAAE,MAAM;aACd,CAAC,CAAC,CACJ;YACH,CAAC,CAAC,cAAc,CAAA;QAEpB,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CACzC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAC3C,CAAA;QAED,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IACrC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,kBAAoD,EACpD,KAAuB;IAEvB,OAAO,CAAC,cAAwC,EAAE,EAAE;QAClD,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU;YAClC,CAAC,CAAC,cAAc,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YACzD,CAAC,CAAC,cAAc,CAAA;QAEpB,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAA;AACH,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport * as React from \"react\";\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\";\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[];\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const { state: rowSelectionState, onRowSelectionChange } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n autoResetPageIndexHandler()?.()\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable };\nexport type { DataTableOptions, UseDataTableReturn };\n\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../src/components/alert/alert.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../src/components/alert/alert.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,UAAU,UAAW,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAChE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;IAClD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,mFAqEjB,CAAA"}
|