@trsys-tech/matrix-library 0.3.3 → 0.3.4
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/command.es.js +52 -47
- package/dist/command.es.js.map +1 -1
- package/dist/components/text-field/TextField.d.ts +2 -2
- package/dist/components/text-field/TextField.d.ts.map +1 -1
- package/dist/datagrid.es.js +41 -41
- package/dist/datagrid.es.js.map +1 -1
- package/dist/formcheckbox.es.js +4 -4
- package/dist/formcheckbox.es.js.map +1 -1
- package/dist/formcombobox.es.js +6 -6
- package/dist/formcombobox.es.js.map +1 -1
- package/dist/formdatepicker.es.js +11 -11
- package/dist/formdatepicker.es.js.map +1 -1
- package/dist/formdaterangepicker.es.js +12 -12
- package/dist/formdaterangepicker.es.js.map +1 -1
- package/dist/forminput.es.js +8 -8
- package/dist/forminput.es.js.map +1 -1
- package/dist/formmultiselect.es.js +10 -10
- package/dist/formmultiselect.es.js.map +1 -1
- package/dist/formrating.es.js +21 -21
- package/dist/formrating.es.js.map +1 -1
- package/dist/formselect.es.js +11 -11
- package/dist/formselect.es.js.map +1 -1
- package/dist/formswitch.es.js +7 -7
- package/dist/formswitch.es.js.map +1 -1
- package/dist/formtextarea.es.js +5 -5
- package/dist/formtextarea.es.js.map +1 -1
- package/dist/formtimepicker.es.js +5 -5
- package/dist/formtimepicker.es.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +203 -193
- package/dist/index.es.js.map +1 -1
- package/dist/select.es.js +1 -1
- package/dist/select.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/textfield.es.js +12 -11
- package/dist/textfield.es.js.map +1 -1
- package/package.json +1 -1
package/dist/command.es.js
CHANGED
|
@@ -1,81 +1,86 @@
|
|
|
1
1
|
import { jsx as t, jsxs as s } from "react/jsx-runtime";
|
|
2
|
-
import * as
|
|
3
|
-
import { Command as
|
|
4
|
-
import { Magnifier as
|
|
2
|
+
import * as r from "react";
|
|
3
|
+
import { Command as o } from "cmdk";
|
|
4
|
+
import { Magnifier as p } from "@trsys-tech/matrix-icons";
|
|
5
5
|
import { cn as m } from "./utils.es.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import { Dialog as i, DialogContent as l } from "./dialog.es.js";
|
|
7
|
+
const n = r.forwardRef(
|
|
8
|
+
({ className: e, ...a }, d) => /* @__PURE__ */ t(
|
|
9
|
+
o,
|
|
9
10
|
{
|
|
10
|
-
ref:
|
|
11
|
-
className: m("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
12
|
-
...
|
|
11
|
+
ref: d,
|
|
12
|
+
className: m("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", e),
|
|
13
|
+
...a
|
|
13
14
|
}
|
|
14
15
|
)
|
|
15
16
|
);
|
|
16
|
-
|
|
17
|
-
const l =
|
|
18
|
-
({ className:
|
|
19
|
-
/* @__PURE__ */ t(
|
|
17
|
+
n.displayName = o.displayName;
|
|
18
|
+
const C = ({ children: e, ...a }) => /* @__PURE__ */ t(i, { ...a, children: /* @__PURE__ */ t(l, { className: "overflow-hidden p-0", children: /* @__PURE__ */ t(n, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: e }) }) }), c = r.forwardRef(
|
|
19
|
+
({ className: e, ...a }, d) => /* @__PURE__ */ s("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
20
|
+
/* @__PURE__ */ t(p, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
20
21
|
/* @__PURE__ */ t(
|
|
21
|
-
|
|
22
|
+
o.Input,
|
|
22
23
|
{
|
|
23
|
-
ref:
|
|
24
|
+
ref: d,
|
|
24
25
|
className: m(
|
|
25
26
|
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
26
|
-
|
|
27
|
+
e
|
|
27
28
|
),
|
|
28
|
-
...
|
|
29
|
+
...a
|
|
29
30
|
}
|
|
30
31
|
)
|
|
31
32
|
] })
|
|
32
33
|
);
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
({ className:
|
|
34
|
+
c.displayName = o.Input.displayName;
|
|
35
|
+
const u = r.forwardRef(
|
|
36
|
+
({ className: e, ...a }, d) => /* @__PURE__ */ t(o.List, { ref: d, className: m("max-h-[300px] overflow-y-auto overflow-x-hidden", e), ...a })
|
|
36
37
|
);
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
(
|
|
38
|
+
u.displayName = o.List.displayName;
|
|
39
|
+
const f = r.forwardRef(
|
|
40
|
+
(e, a) => /* @__PURE__ */ t(o.Empty, { ref: a, className: "py-6 text-center text-sm", ...e })
|
|
40
41
|
);
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
({ className:
|
|
44
|
-
|
|
42
|
+
f.displayName = o.Empty.displayName;
|
|
43
|
+
const g = r.forwardRef(
|
|
44
|
+
({ className: e, ...a }, d) => /* @__PURE__ */ t(
|
|
45
|
+
o.Group,
|
|
45
46
|
{
|
|
46
|
-
ref:
|
|
47
|
+
ref: d,
|
|
47
48
|
className: m(
|
|
48
49
|
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
49
|
-
|
|
50
|
+
e
|
|
50
51
|
),
|
|
51
|
-
...
|
|
52
|
+
...a
|
|
52
53
|
}
|
|
53
54
|
)
|
|
54
55
|
);
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
({ className:
|
|
60
|
-
|
|
56
|
+
g.displayName = o.Group.displayName;
|
|
57
|
+
const x = r.forwardRef(({ className: e, ...a }, d) => /* @__PURE__ */ t(o.Separator, { ref: d, className: m("-mx-1 h-px bg-border", e), ...a }));
|
|
58
|
+
x.displayName = o.Separator.displayName;
|
|
59
|
+
const h = r.forwardRef(
|
|
60
|
+
({ className: e, ...a }, d) => /* @__PURE__ */ t(
|
|
61
|
+
o.Item,
|
|
61
62
|
{
|
|
62
|
-
ref:
|
|
63
|
+
ref: d,
|
|
63
64
|
className: m(
|
|
64
65
|
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-gray-300 data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
65
|
-
|
|
66
|
+
e
|
|
66
67
|
),
|
|
67
|
-
...
|
|
68
|
+
...a
|
|
68
69
|
}
|
|
69
70
|
)
|
|
70
71
|
);
|
|
71
|
-
|
|
72
|
+
h.displayName = o.Item.displayName;
|
|
73
|
+
const y = ({ className: e, ...a }) => /* @__PURE__ */ t("span", { className: m("ml-auto text-xs tracking-widest text-muted-foreground", e), ...a });
|
|
74
|
+
y.displayName = "CommandShortcut";
|
|
72
75
|
export {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
f as
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
u as
|
|
76
|
+
n as Command,
|
|
77
|
+
C as CommandDialog,
|
|
78
|
+
f as CommandEmpty,
|
|
79
|
+
g as CommandGroup,
|
|
80
|
+
c as CommandInput,
|
|
81
|
+
h as CommandItem,
|
|
82
|
+
u as CommandList,
|
|
83
|
+
x as CommandSeparator,
|
|
84
|
+
y as CommandShortcut
|
|
80
85
|
};
|
|
81
86
|
//# sourceMappingURL=command.es.js.map
|
package/dist/command.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.es.js","sources":["../src/components/command/Command.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Command as CommandPrimitive } from \"cmdk\";\r\nimport { Magnifier } from \"@trsys-tech/matrix-icons\";\r\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Dialog, DialogContent } from \"../dialog/Dialog\";\r\n\r\nconst Command = React.forwardRef<React.ElementRef<typeof CommandPrimitive>, React.ComponentPropsWithoutRef<typeof CommandPrimitive>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive\r\n ref={ref}\r\n className={cn(\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\", className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\nCommand.displayName = CommandPrimitive.displayName;\r\n\r\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\r\n return (\r\n <Dialog {...props}>\r\n <DialogContent className=\"overflow-hidden p-0\">\r\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\r\n {children}\r\n </Command>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n\r\nconst CommandInput = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Input>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>>(\r\n ({ className, ...props }, ref) => (\r\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\r\n <Magnifier className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\r\n <CommandPrimitive.Input\r\n ref={ref}\r\n className={cn(\r\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n ),\r\n);\r\n\r\nCommandInput.displayName = CommandPrimitive.Input.displayName;\r\n\r\nconst CommandList = React.forwardRef<React.ElementRef<typeof CommandPrimitive.List>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive.List ref={ref} className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)} {...props} />\r\n ),\r\n);\r\n\r\nCommandList.displayName = CommandPrimitive.List.displayName;\r\n\r\nconst CommandEmpty = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Empty>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>>(\r\n (props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />,\r\n);\r\n\r\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\r\n\r\nconst CommandGroup = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Group>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive.Group\r\n ref={ref}\r\n className={cn(\r\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\r\n\r\nconst CommandSeparator = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\r\n>(({ className, ...props }, ref) => <CommandPrimitive.Separator ref={ref} className={cn(\"-mx-1 h-px bg-border\", className)} {...props} />);\r\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\r\n\r\nconst CommandItem = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Item>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-gray-300 data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nCommandItem.displayName = CommandPrimitive.Item.displayName;\r\n\r\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return <span className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />;\r\n};\r\nCommandShortcut.displayName = \"CommandShortcut\";\r\n\r\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };\r\n"],"names":["Command","React","className","props","ref","jsx","CommandPrimitive","cn","CommandInput","jsxs","Magnifier","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem"],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.es.js","sources":["../src/components/command/Command.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Command as CommandPrimitive } from \"cmdk\";\r\nimport { Magnifier } from \"@trsys-tech/matrix-icons\";\r\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Dialog, DialogContent } from \"../dialog/Dialog\";\r\n\r\nconst Command = React.forwardRef<React.ElementRef<typeof CommandPrimitive>, React.ComponentPropsWithoutRef<typeof CommandPrimitive>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive\r\n ref={ref}\r\n className={cn(\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\", className)}\r\n {...props}\r\n />\r\n ),\r\n);\r\nCommand.displayName = CommandPrimitive.displayName;\r\n\r\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\r\n return (\r\n <Dialog {...props}>\r\n <DialogContent className=\"overflow-hidden p-0\">\r\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\r\n {children}\r\n </Command>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n\r\nconst CommandInput = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Input>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>>(\r\n ({ className, ...props }, ref) => (\r\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\r\n <Magnifier className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\r\n <CommandPrimitive.Input\r\n ref={ref}\r\n className={cn(\r\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n ),\r\n);\r\n\r\nCommandInput.displayName = CommandPrimitive.Input.displayName;\r\n\r\nconst CommandList = React.forwardRef<React.ElementRef<typeof CommandPrimitive.List>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive.List ref={ref} className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)} {...props} />\r\n ),\r\n);\r\n\r\nCommandList.displayName = CommandPrimitive.List.displayName;\r\n\r\nconst CommandEmpty = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Empty>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>>(\r\n (props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />,\r\n);\r\n\r\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\r\n\r\nconst CommandGroup = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Group>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive.Group\r\n ref={ref}\r\n className={cn(\r\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\r\n\r\nconst CommandSeparator = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\r\n>(({ className, ...props }, ref) => <CommandPrimitive.Separator ref={ref} className={cn(\"-mx-1 h-px bg-border\", className)} {...props} />);\r\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\r\n\r\nconst CommandItem = React.forwardRef<React.ElementRef<typeof CommandPrimitive.Item>, React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>>(\r\n ({ className, ...props }, ref) => (\r\n <CommandPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-gray-300 data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n ),\r\n);\r\n\r\nCommandItem.displayName = CommandPrimitive.Item.displayName;\r\n\r\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return <span className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />;\r\n};\r\nCommandShortcut.displayName = \"CommandShortcut\";\r\n\r\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };\r\n"],"names":["Command","React","className","props","ref","jsx","CommandPrimitive","cn","CommandDialog","children","Dialog","DialogContent","CommandInput","jsxs","Magnifier","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":";;;;;;AAUA,MAAMA,IAAUC,EAAM;AAAA,EACpB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,WAAWG,EAAG,6FAA6FL,CAAS;AAAA,MACnH,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAH,EAAQ,cAAcM,EAAiB;AAEvC,MAAME,IAAgB,CAAC,EAAE,UAAAC,GAAU,GAAGN,QAEjC,gBAAAE,EAAAK,GAAA,EAAQ,GAAGP,GACV,4BAACQ,GAAc,EAAA,WAAU,uBACvB,UAAA,gBAAAN,EAACL,GAAQ,EAAA,WAAU,+WAChB,UAAAS,EAAA,CACH,EACF,CAAA,GACF,GAIEG,IAAeX,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MACxB,gBAAAS,EAAC,OAAI,EAAA,WAAU,mCAAkC,sBAAmB,IAClE,UAAA;AAAA,IAAC,gBAAAR,EAAAS,GAAA,EAAU,WAAU,mCAAmC,CAAA;AAAA,IACxD,gBAAAT;AAAA,MAACC,EAAiB;AAAA,MAAjB;AAAA,QACC,KAAAF;AAAA,QACA,WAAWG;AAAA,UACT;AAAA,UACAL;AAAA,QACF;AAAA,QACC,GAAGC;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,EACF,CAAA;AAEJ;AAEAS,EAAa,cAAcN,EAAiB,MAAM;AAElD,MAAMS,IAAcd,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MACvB,gBAAAC,EAAAC,EAAiB,MAAjB,EAAsB,KAAAF,GAAU,WAAWG,EAAG,mDAAmDL,CAAS,GAAI,GAAGC,EAAO,CAAA;AAE7H;AAEAY,EAAY,cAAcT,EAAiB,KAAK;AAEhD,MAAMU,IAAef,EAAM;AAAA,EACzB,CAACE,GAAOC,MAAS,gBAAAC,EAAAC,EAAiB,OAAjB,EAAuB,KAAAF,GAAU,WAAU,4BAA4B,GAAGD,EAAO,CAAA;AACpG;AAEAa,EAAa,cAAcV,EAAiB,MAAM;AAElD,MAAMW,IAAehB,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAACC,EAAiB;AAAA,IAAjB;AAAA,MACC,KAAAF;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAL;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEAc,EAAa,cAAcX,EAAiB,MAAM;AAE5C,MAAAY,IAAmBjB,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ,gBAAAC,EAACC,EAAiB,WAAjB,EAA2B,KAAAF,GAAU,WAAWG,EAAG,wBAAwBL,CAAS,GAAI,GAAGC,GAAO,CAAE;AACzIe,EAAiB,cAAcZ,EAAiB,UAAU;AAE1D,MAAMa,IAAclB,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAACC,EAAiB;AAAA,IAAjB;AAAA,MACC,KAAAF;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAL;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEAgB,EAAY,cAAcb,EAAiB,KAAK;AAEhD,MAAMc,IAAkB,CAAC,EAAE,WAAAlB,GAAW,GAAGC,QAChC,gBAAAE,EAAC,UAAK,WAAWE,EAAG,yDAAyDL,CAAS,GAAI,GAAGC,GAAO;AAE7GiB,EAAgB,cAAc;"}
|
|
@@ -47,8 +47,8 @@ declare const textFieldVariants: TVReturnType<{
|
|
|
47
47
|
interface TextFieldProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof textFieldVariants> {
|
|
48
48
|
type?: React.HTMLInputTypeAttribute;
|
|
49
49
|
suffix?: React.ReactNode;
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
endAdornment?: React.ReactNode;
|
|
51
|
+
startAdornment?: React.ReactNode;
|
|
52
52
|
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
53
53
|
value?: string | number;
|
|
54
54
|
defaultValue?: string | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/text-field/TextField.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAM,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIrD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAYrB,CAAC;AAEH,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC3G,IAAI,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/text-field/TextField.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAM,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIrD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAYrB,CAAC;AAEH,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC3G,IAAI,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D,CAAC;CACH;AAED,QAAA,MAAM,SAAS,yFA2Bd,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAC"}
|
package/dist/datagrid.es.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as r, jsxs as N } from "react/jsx-runtime";
|
|
2
2
|
import e from "react";
|
|
3
|
-
import { AgGridReact as
|
|
4
|
-
import { themeQuartz as
|
|
3
|
+
import { AgGridReact as A } from "ag-grid-react";
|
|
4
|
+
import { themeQuartz as T } from "ag-grid-community";
|
|
5
5
|
import { Magnifier as G, CircleXmark as k, Snowflake as F, Print as P, Refresh as z, Trashcan as I, ElipsisVertical as y } from "@trsys-tech/matrix-icons";
|
|
6
6
|
import { cn as w } from "./utils.es.js";
|
|
7
7
|
import { printHtml as H } from "./printhtml.es.js";
|
|
8
8
|
import { TextField as O } from "./textfield.es.js";
|
|
9
9
|
import { Button as E } from "./button.es.js";
|
|
10
10
|
import { IconButton as C } from "./iconbutton.es.js";
|
|
11
|
-
import { Popover as L, PopoverTrigger as
|
|
12
|
-
const M =
|
|
11
|
+
import { Popover as L, PopoverTrigger as Q, PopoverContent as B } from "./popover.es.js";
|
|
12
|
+
const M = T.withParams({
|
|
13
13
|
fontFamily: "DMSans",
|
|
14
14
|
fontSize: "12px",
|
|
15
15
|
headerFontSize: "12px",
|
|
@@ -20,8 +20,8 @@ const M = A.withParams({
|
|
|
20
20
|
throw new Error("useDataGrid should be used within <DataGrid>");
|
|
21
21
|
return s;
|
|
22
22
|
}, ee = ({ children: s }) => {
|
|
23
|
-
const
|
|
24
|
-
return /* @__PURE__ */
|
|
23
|
+
const o = e.useId(), [a, i] = e.useState(null), [n, d] = e.useState([]), [c, u] = e.useState(0), [l, h] = e.useState(""), [t, p] = e.useState(!1);
|
|
24
|
+
return /* @__PURE__ */ r(
|
|
25
25
|
m.Provider,
|
|
26
26
|
{
|
|
27
27
|
value: {
|
|
@@ -29,7 +29,7 @@ const M = A.withParams({
|
|
|
29
29
|
setApi: i,
|
|
30
30
|
rowData: n,
|
|
31
31
|
setRowData: d,
|
|
32
|
-
gridId:
|
|
32
|
+
gridId: o,
|
|
33
33
|
quickFilterText: l,
|
|
34
34
|
setQuickFilterText: h,
|
|
35
35
|
actionbarExists: t,
|
|
@@ -42,7 +42,7 @@ const M = A.withParams({
|
|
|
42
42
|
);
|
|
43
43
|
}, te = ({
|
|
44
44
|
theme: s,
|
|
45
|
-
onGridReady:
|
|
45
|
+
onGridReady: o,
|
|
46
46
|
quickFilterText: a,
|
|
47
47
|
rowData: i,
|
|
48
48
|
containerStyle: n,
|
|
@@ -55,14 +55,14 @@ const M = A.withParams({
|
|
|
55
55
|
headerHeight: 40,
|
|
56
56
|
wrapperBorderRadius: h ? "0px 0px 8px 8px" : "8px"
|
|
57
57
|
}), v = (b) => {
|
|
58
|
-
t(b.api),
|
|
58
|
+
t(b.api), o?.(b);
|
|
59
59
|
};
|
|
60
60
|
return e.useEffect(() => {
|
|
61
61
|
l(i);
|
|
62
62
|
}, [i, l]), e.useEffect(() => {
|
|
63
63
|
a !== void 0 && p(a ?? "");
|
|
64
|
-
}, [a, p]), /* @__PURE__ */
|
|
65
|
-
|
|
64
|
+
}, [a, p]), /* @__PURE__ */ r(
|
|
65
|
+
A,
|
|
66
66
|
{
|
|
67
67
|
gridId: D,
|
|
68
68
|
theme: s ?? f,
|
|
@@ -73,14 +73,14 @@ const M = A.withParams({
|
|
|
73
73
|
...d
|
|
74
74
|
}
|
|
75
75
|
);
|
|
76
|
-
}, ne = ({ className: s, ...
|
|
76
|
+
}, ne = ({ className: s, ...o }) => {
|
|
77
77
|
const a = e.useContext(m);
|
|
78
78
|
if (!a)
|
|
79
79
|
throw new Error("DataGridActionBar should be used within <DataGrid>");
|
|
80
|
-
const i = e.useRef(null), { setActionbarExists: n, setActionbarHeight: d } = a, { children: c } =
|
|
80
|
+
const i = e.useRef(null), { setActionbarExists: n, setActionbarHeight: d } = a, { children: c } = o;
|
|
81
81
|
return e.useEffect(() => (n(!0), () => n(!1)), [n]), e.useEffect(() => {
|
|
82
82
|
i.current && d(i.current.clientHeight);
|
|
83
|
-
}, [d]), /* @__PURE__ */
|
|
83
|
+
}, [d]), /* @__PURE__ */ r(
|
|
84
84
|
"div",
|
|
85
85
|
{
|
|
86
86
|
className: w(
|
|
@@ -91,12 +91,12 @@ const M = A.withParams({
|
|
|
91
91
|
children: c
|
|
92
92
|
}
|
|
93
93
|
);
|
|
94
|
-
},
|
|
95
|
-
const
|
|
96
|
-
if (!
|
|
94
|
+
}, re = ({ defaultOpen: s = !1 }) => {
|
|
95
|
+
const o = e.useContext(m);
|
|
96
|
+
if (!o)
|
|
97
97
|
throw new Error("SearchAction should be used within <DataGrid>");
|
|
98
|
-
const { quickFilterText: a, setQuickFilterText: i } =
|
|
99
|
-
|
|
98
|
+
const { quickFilterText: a, setQuickFilterText: i } = o, [n, d] = e.useState(s), [c, u] = e.useState(!1), l = e.useRef(null), h = () => {
|
|
99
|
+
o.setQuickFilterText(""), l.current && l.current.focus();
|
|
100
100
|
}, t = () => {
|
|
101
101
|
d(!0);
|
|
102
102
|
};
|
|
@@ -104,22 +104,22 @@ const M = A.withParams({
|
|
|
104
104
|
n && l?.current && l.current.focus();
|
|
105
105
|
}, [n]);
|
|
106
106
|
const p = () => {
|
|
107
|
-
u(!0),
|
|
107
|
+
u(!0), o.setQuickFilterText(""), setTimeout(() => {
|
|
108
108
|
d(!1), u(!1);
|
|
109
109
|
}, 200);
|
|
110
110
|
};
|
|
111
|
-
return /* @__PURE__ */
|
|
111
|
+
return /* @__PURE__ */ r("div", { className: "max-w-60", children: n || c ? /* @__PURE__ */ r(
|
|
112
112
|
O,
|
|
113
113
|
{
|
|
114
114
|
ref: l,
|
|
115
115
|
className: w("relative h-7.5", n && !c ? "animate-input-open" : "", c && "animate-input-close"),
|
|
116
116
|
onChange: (x) => i(x.target.value),
|
|
117
117
|
value: a,
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
startAdornment: /* @__PURE__ */ r(C, { variant: "toolbar", className: "p-0.5 h-6 w-6 border-none mx-1", onClick: p, children: /* @__PURE__ */ r(G, { className: "w-5 h-5" }) }),
|
|
119
|
+
endAdornment: a && /* @__PURE__ */ r(C, { variant: "toolbar", className: "p-0.5 w-6 h-6 border-none mx-1", onClick: h, children: /* @__PURE__ */ r(k, { className: "w-5 h-5" }) })
|
|
120
120
|
}
|
|
121
|
-
) : /* @__PURE__ */
|
|
122
|
-
},
|
|
121
|
+
) : /* @__PURE__ */ r(C, { variant: "toolbar", className: "p-0.5 w-6 h-6 m-1", onClick: t, children: /* @__PURE__ */ r(G, { className: "w-5 h-5" }) }) });
|
|
122
|
+
}, oe = ({ freezeText: s, unFreezeText: o, onClick: a, disabled: i, ...n }) => {
|
|
123
123
|
const d = e.useContext(m);
|
|
124
124
|
if (!d)
|
|
125
125
|
throw new Error("FreezeAction should be used within <DataGrid>");
|
|
@@ -152,18 +152,18 @@ const M = A.withParams({
|
|
|
152
152
|
}), t?.removeEventListener("selectionChanged", () => {
|
|
153
153
|
h(t.getSelectedNodes().length);
|
|
154
154
|
});
|
|
155
|
-
}), [t]), /* @__PURE__ */
|
|
155
|
+
}), [t]), /* @__PURE__ */ r(
|
|
156
156
|
E,
|
|
157
157
|
{
|
|
158
158
|
variant: "text",
|
|
159
159
|
onClick: R,
|
|
160
|
-
startIcon: /* @__PURE__ */
|
|
160
|
+
startIcon: /* @__PURE__ */ r(F, { className: "w-4.5 h-4.5" }),
|
|
161
161
|
disabled: !c && !l || i,
|
|
162
162
|
...n,
|
|
163
|
-
children: c ?
|
|
163
|
+
children: c ? o ?? "Unfreeze" : s ?? "Freeze"
|
|
164
164
|
}
|
|
165
165
|
);
|
|
166
|
-
}, ae = ({ children: s, className:
|
|
166
|
+
}, ae = ({ children: s, className: o, onClick: a, ...i }) => {
|
|
167
167
|
const n = e.useContext(m);
|
|
168
168
|
if (!n)
|
|
169
169
|
throw new Error("PrintAction should be used within <DataGrid>");
|
|
@@ -176,14 +176,14 @@ const M = A.withParams({
|
|
|
176
176
|
H(h), n?.api?.setGridOption("domLayout", void 0);
|
|
177
177
|
})), a?.(c);
|
|
178
178
|
};
|
|
179
|
-
return /* @__PURE__ */
|
|
180
|
-
}, ie = ({ className: s, refreshRowData:
|
|
179
|
+
return /* @__PURE__ */ r(C, { variant: "toolbar", className: w("p-0.5 w-6 h-6", o), onClick: d, ...i, children: s ?? /* @__PURE__ */ r(P, { className: "w-5 h-5" }) });
|
|
180
|
+
}, ie = ({ className: s, refreshRowData: o, children: a, loading: i, ...n }) => {
|
|
181
181
|
if (!e.useContext(m))
|
|
182
182
|
throw new Error("RefreshAction should be used within <DataGrid>");
|
|
183
183
|
const c = () => {
|
|
184
|
-
|
|
184
|
+
o();
|
|
185
185
|
};
|
|
186
|
-
return /* @__PURE__ */
|
|
186
|
+
return /* @__PURE__ */ r(
|
|
187
187
|
C,
|
|
188
188
|
{
|
|
189
189
|
className: w("p-0.5 w-6 h-6", i && "disabled:bg-transparent", s),
|
|
@@ -191,14 +191,14 @@ const M = A.withParams({
|
|
|
191
191
|
onClick: c,
|
|
192
192
|
disabled: i,
|
|
193
193
|
...n,
|
|
194
|
-
children: a ?? /* @__PURE__ */
|
|
194
|
+
children: a ?? /* @__PURE__ */ r(z, { className: w("w-4.5 h-4.5", i && "animate-spin") })
|
|
195
195
|
}
|
|
196
196
|
);
|
|
197
|
-
}, se = ({ onDelete: s, children:
|
|
197
|
+
}, se = ({ onDelete: s, children: o, ...a }) => /* @__PURE__ */ r(E, { variant: "danger", onClick: () => {
|
|
198
198
|
s();
|
|
199
|
-
}, startIcon: /* @__PURE__ */
|
|
200
|
-
/* @__PURE__ */
|
|
201
|
-
/* @__PURE__ */
|
|
199
|
+
}, startIcon: /* @__PURE__ */ r(I, { className: "w-4.5 h-4.5" }), ...a, children: o }), ce = ({ children: s, slotProps: o, className: a, ...i }) => /* @__PURE__ */ N(L, { ...o?.popoverProps ?? {}, children: [
|
|
200
|
+
/* @__PURE__ */ r(Q, { ...o?.triggerProps ?? {}, children: /* @__PURE__ */ r(y, { className: "w-4.5 h-4.5 text-primary" }) }),
|
|
201
|
+
/* @__PURE__ */ r(B, { align: "end", className: w("w-40", a), ...i, children: s })
|
|
202
202
|
] });
|
|
203
203
|
export {
|
|
204
204
|
ee as DataGrid,
|
|
@@ -206,10 +206,10 @@ export {
|
|
|
206
206
|
te as DataGridContent,
|
|
207
207
|
se as DeleteAction,
|
|
208
208
|
ce as ExtraActions,
|
|
209
|
-
|
|
209
|
+
oe as FreezeAction,
|
|
210
210
|
ae as PrintAction,
|
|
211
211
|
ie as RefreshAction,
|
|
212
|
-
|
|
212
|
+
re as SearchAction,
|
|
213
213
|
Z as useDataGrid
|
|
214
214
|
};
|
|
215
215
|
//# sourceMappingURL=datagrid.es.js.map
|
package/dist/datagrid.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datagrid.es.js","sources":["../src/components/data-grid/DataGrid.tsx"],"sourcesContent":["import React, { HTMLAttributes } from \"react\";\r\nimport { AgGridReact, AgGridReactProps } from \"ag-grid-react\";\r\nimport { GridApi, GridReadyEvent, themeQuartz } from \"ag-grid-community\";\r\nimport { CircleXmark, ElipsisVertical, Magnifier, Print, Refresh, Snowflake, Trashcan } from \"@trsys-tech/matrix-icons\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { printHtml } from \"../../lib/printHtml\";\r\nimport { TextField } from \"../text-field/TextField\";\r\nimport { Button, ButtonProps } from \"../button/Button\";\r\nimport { IconButton, IconButtonProps } from \"../icon-botton/IconButton\";\r\nimport { Popover, PopoverContent, PopoverContentProps, PopoverProps, PopoverTrigger, PopoverTriggerProps } from \"../popover/Popover\";\r\n\r\nconst appTheme = themeQuartz.withParams({\r\n fontFamily: \"DMSans\",\r\n fontSize: \"12px\",\r\n headerFontSize: \"12px\",\r\n headerFontWeight: 700,\r\n});\r\n\r\ntype DataGridContext = {\r\n api: GridApi | null;\r\n setApi: (value: GridApi) => void;\r\n rowData: any[] | null | undefined;\r\n setRowData: (value: any[] | null | undefined) => void;\r\n gridId: string;\r\n quickFilterText: string;\r\n setQuickFilterText: (value: string) => void;\r\n actionbarExists: boolean;\r\n setActionbarExists: (value: boolean) => void;\r\n actionbarHeight: number;\r\n setActionbarHeight: (value: number) => void;\r\n};\r\n\r\nconst DataGridContext = React.createContext<DataGridContext | null>(null);\r\n\r\nconst useDataGrid = () => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useDataGrid should be used within <DataGrid>\");\r\n }\r\n\r\n return context;\r\n};\r\n\r\ntype DataGridProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst DataGrid: React.FC<DataGridProps> = ({ children }) => {\r\n const gridId = React.useId();\r\n const [api, setApi] = React.useState<GridApi | null>(null);\r\n const [rowData, setRowData] = React.useState<any[] | null | undefined>([]);\r\n const [actionbarHeight, setActionbarHeight] = React.useState(0);\r\n\r\n const [quickFilterText, setQuickFilterText] = React.useState(\"\");\r\n const [actionbarExists, setActionbarExists] = React.useState(false);\r\n return (\r\n <DataGridContext.Provider\r\n value={{\r\n api,\r\n setApi,\r\n rowData,\r\n setRowData,\r\n gridId,\r\n quickFilterText,\r\n setQuickFilterText,\r\n actionbarExists,\r\n setActionbarExists,\r\n actionbarHeight,\r\n setActionbarHeight,\r\n }}\r\n >\r\n {children}\r\n </DataGridContext.Provider>\r\n );\r\n};\r\n\r\ntype DataGridContentProps = AgGridReactProps & {};\r\n\r\nconst DataGridContent: React.FC<DataGridContentProps> = ({\r\n theme: propTheme,\r\n onGridReady,\r\n quickFilterText: quickFilterTextProps,\r\n rowData: rowDataProps,\r\n containerStyle,\r\n ...props\r\n}) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"DataGridContent should be used within <DataGrid>\");\r\n }\r\n const { rowData, setRowData, actionbarExists, setApi, setQuickFilterText, quickFilterText, gridId, actionbarHeight } = context;\r\n\r\n const theme = appTheme.withParams({\r\n headerHeight: 40,\r\n wrapperBorderRadius: actionbarExists ? \"0px 0px 8px 8px\" : \"8px\",\r\n });\r\n\r\n const handleGridReady = (e: GridReadyEvent) => {\r\n setApi(e.api);\r\n onGridReady?.(e);\r\n };\r\n\r\n React.useEffect(() => {\r\n setRowData(rowDataProps);\r\n }, [rowDataProps, setRowData]);\r\n\r\n React.useEffect(() => {\r\n if (quickFilterTextProps !== undefined) {\r\n setQuickFilterText(quickFilterTextProps ?? \"\");\r\n }\r\n }, [quickFilterTextProps, setQuickFilterText]);\r\n\r\n return (\r\n <AgGridReact\r\n gridId={gridId}\r\n theme={propTheme ?? theme}\r\n rowData={rowData}\r\n quickFilterText={quickFilterText}\r\n onGridReady={handleGridReady}\r\n containerStyle={{ height: `calc(100% - ${actionbarHeight}px)`, ...containerStyle }}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\ntype DatagridActionBarProps = HTMLAttributes<HTMLDivElement> & {};\r\n\r\nconst DataGridActionBar: React.FC<DatagridActionBarProps> = ({ className, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"DataGridActionBar should be used within <DataGrid>\");\r\n }\r\n const ref = React.useRef<HTMLDivElement | null>(null);\r\n const { setActionbarExists, setActionbarHeight } = context;\r\n const { children } = props;\r\n\r\n React.useEffect(() => {\r\n setActionbarExists(true);\r\n return () => setActionbarExists(false);\r\n }, [setActionbarExists]);\r\n\r\n React.useEffect(() => {\r\n if (ref.current) {\r\n setActionbarHeight(ref.current.clientHeight);\r\n }\r\n }, [setActionbarHeight]);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"relative flex items-center p-2 h-12 w-full bg-gray-0 border border-gray-200 border-b-0 -mb-[1px] z-10 rounded-t-[8px]\",\r\n className,\r\n )}\r\n ref={ref}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\ntype SearchActionProps = {\r\n defaultOpen?: boolean;\r\n};\r\n\r\nconst SearchAction: React.FC<SearchActionProps> = ({ defaultOpen = false }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"SearchAction should be used within <DataGrid>\");\r\n }\r\n\r\n const { quickFilterText, setQuickFilterText } = context;\r\n\r\n const [isSearchInputOpen, setIsSearchInputOpen] = React.useState(defaultOpen);\r\n const [isClosing, setIsClosing] = React.useState(false);\r\n const inputRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const handleClear = () => {\r\n context.setQuickFilterText(\"\");\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n };\r\n\r\n const handleOpen = () => {\r\n setIsSearchInputOpen(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isSearchInputOpen && inputRef?.current) {\r\n inputRef.current.focus();\r\n }\r\n }, [isSearchInputOpen]);\r\n\r\n const handleClose = () => {\r\n setIsClosing(true);\r\n context.setQuickFilterText(\"\");\r\n setTimeout(() => {\r\n setIsSearchInputOpen(false);\r\n setIsClosing(false);\r\n }, 200);\r\n };\r\n\r\n return (\r\n <div className=\"max-w-60\">\r\n {isSearchInputOpen || isClosing ? (\r\n <TextField\r\n ref={inputRef}\r\n className={cn(\"relative h-7.5\", isSearchInputOpen && !isClosing ? \"animate-input-open\" : \"\", isClosing && \"animate-input-close\")}\r\n onChange={e => setQuickFilterText(e.target.value)}\r\n value={quickFilterText}\r\n startButton={\r\n <IconButton variant=\"toolbar\" className=\"p-0.5 h-6 w-6 border-none mx-1\" onClick={handleClose}>\r\n <Magnifier className=\"w-5 h-5\" />\r\n </IconButton>\r\n }\r\n endButton={\r\n quickFilterText && (\r\n <IconButton variant=\"toolbar\" className=\"p-0.5 w-6 h-6 border-none mx-1\" onClick={handleClear}>\r\n <CircleXmark className=\"w-5 h-5\" />\r\n </IconButton>\r\n )\r\n }\r\n />\r\n ) : (\r\n <IconButton variant=\"toolbar\" className=\"p-0.5 w-6 h-6 m-1\" onClick={handleOpen}>\r\n <Magnifier className=\"w-5 h-5\" />\r\n </IconButton>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\ntype FreezeActionProps = ButtonProps & {\r\n freezeText?: string;\r\n unFreezeText?: string;\r\n};\r\n\r\nconst FreezeAction: React.FC<FreezeActionProps> = ({ freezeText, unFreezeText, onClick, disabled, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"FreezeAction should be used within <DataGrid>\");\r\n }\r\n\r\n const [pinnedRowCount, setPinnedRowCount] = React.useState(0);\r\n const [selectedRowsCount, setSelectedRowsCount] = React.useState(0);\r\n\r\n const { api, rowData } = context;\r\n\r\n const freezeRows = () => {\r\n if (!api) return;\r\n\r\n // Get currently selected rows\r\n const selectedRows = api.getSelectedNodes();\r\n\r\n if (selectedRows.length > 0) {\r\n // Pin the selected rows\r\n api.setGridOption(\r\n \"pinnedTopRowData\",\r\n selectedRows.map(row => row.data),\r\n );\r\n\r\n // Get current row data\r\n const allData = api.getRenderedNodes();\r\n // Filter out pinned rows from the main data\r\n const updatedNodes = allData.filter(row => !selectedRows.some(pinnedRow => pinnedRow.id === row.id));\r\n\r\n // Update the grid with the filtered data\r\n api.setGridOption(\r\n \"rowData\",\r\n updatedNodes.map(node => node.data),\r\n );\r\n }\r\n };\r\n\r\n const unfreezeRows = () => {\r\n if (!api) return;\r\n api.setGridOption(\"pinnedTopRowData\", []);\r\n api.setGridOption(\"rowData\", rowData);\r\n };\r\n\r\n const handleFreezing = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n if (api) {\r\n const pinnedRowsCount = api.getPinnedTopRowCount();\r\n if (pinnedRowsCount > 0) {\r\n unfreezeRows();\r\n } else {\r\n freezeRows();\r\n }\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n React.useEffect(() => {\r\n api?.addEventListener(\"pinnedRowDataChanged\", () => {\r\n setPinnedRowCount(api.getPinnedTopRowCount());\r\n });\r\n\r\n api?.addEventListener(\"selectionChanged\", () => {\r\n setSelectedRowsCount(api.getSelectedNodes().length);\r\n });\r\n\r\n return () => {\r\n api?.removeEventListener(\"pinnedRowDataChanged\", () => {\r\n setPinnedRowCount(api.getPinnedTopRowCount());\r\n });\r\n\r\n api?.removeEventListener(\"selectionChanged\", () => {\r\n setSelectedRowsCount(api.getSelectedNodes().length);\r\n });\r\n };\r\n }, [api]);\r\n\r\n return (\r\n <Button\r\n variant=\"text\"\r\n onClick={handleFreezing}\r\n startIcon={<Snowflake className=\"w-4.5 h-4.5\" />}\r\n disabled={(!pinnedRowCount && !selectedRowsCount) || disabled}\r\n {...props}\r\n >\r\n {pinnedRowCount ? (unFreezeText ?? \"Unfreeze\") : (freezeText ?? \"Freeze\")}\r\n </Button>\r\n );\r\n};\r\n\r\ntype PrintActionProps = IconButtonProps & {};\r\n\r\nconst PrintAction: React.FC<PrintActionProps> = ({ children, className, onClick, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"PrintAction should be used within <DataGrid>\");\r\n }\r\n\r\n const handlePrint = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n if (context.api) {\r\n context.api.setGridOption(\"domLayout\", \"print\");\r\n\r\n setTimeout(() => {\r\n const element = document.querySelector(\"[grid-id='\" + context.gridId + \"']\") as HTMLElement;\r\n const header = document.head;\r\n const html = `<html>\r\n ${header.innerHTML}\r\n ${element.outerHTML}\r\n </html>`;\r\n printHtml(html);\r\n context?.api?.setGridOption(\"domLayout\", undefined);\r\n });\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n return (\r\n <IconButton variant=\"toolbar\" className={cn(\"p-0.5 w-6 h-6\", className)} onClick={handlePrint} {...props}>\r\n {children ?? <Print className=\"w-5 h-5\" />}\r\n </IconButton>\r\n );\r\n};\r\n\r\ntype RefreshActionProps = Omit<IconButtonProps, \"onClick\"> & {\r\n refreshRowData: () => void;\r\n};\r\n\r\nconst RefreshAction: React.FC<RefreshActionProps> = ({ className, refreshRowData, children, loading, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"RefreshAction should be used within <DataGrid>\");\r\n }\r\n\r\n const handleRefresh = () => {\r\n refreshRowData();\r\n };\r\n\r\n return (\r\n <IconButton\r\n className={cn(\"p-0.5 w-6 h-6\", loading && \"disabled:bg-transparent\", className)}\r\n variant=\"toolbar\"\r\n onClick={handleRefresh}\r\n disabled={loading}\r\n {...props}\r\n >\r\n {children ?? <Refresh className={cn(\"w-4.5 h-4.5\", loading && \"animate-spin\")} />}\r\n </IconButton>\r\n );\r\n};\r\n\r\ntype DeleteActionProps = Omit<ButtonProps, \"onClick\"> & {\r\n onDelete: () => void;\r\n};\r\n\r\nconst DeleteAction: React.FC<DeleteActionProps> = ({ onDelete, children, ...props }) => {\r\n const handleDelete = () => {\r\n onDelete();\r\n };\r\n\r\n return (\r\n <Button variant=\"danger\" onClick={handleDelete} startIcon={<Trashcan className=\"w-4.5 h-4.5\" />} {...props}>\r\n {children}\r\n </Button>\r\n );\r\n};\r\n\r\ntype ExtraActionsProps = PopoverContentProps & {\r\n children: React.ReactNode;\r\n slotProps?: {\r\n triggerProps?: PopoverTriggerProps;\r\n popoverProps?: PopoverProps;\r\n };\r\n};\r\n\r\nconst ExtraActions: React.FC<ExtraActionsProps> = ({ children, slotProps, className, ...props }) => {\r\n return (\r\n <Popover {...(slotProps?.popoverProps ?? {})}>\r\n <PopoverTrigger {...(slotProps?.triggerProps ?? {})}>\r\n <ElipsisVertical className=\"w-4.5 h-4.5 text-primary\" />\r\n </PopoverTrigger>\r\n <PopoverContent align=\"end\" className={cn(\"w-40\", className)} {...props}>\r\n {children}\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n};\r\n\r\nexport {\r\n DataGrid,\r\n DataGridContent,\r\n DataGridActionBar,\r\n SearchAction,\r\n FreezeAction,\r\n PrintAction,\r\n RefreshAction,\r\n ExtraActions,\r\n DeleteAction,\r\n type DataGridProps,\r\n type DataGridContentProps,\r\n type DatagridActionBarProps,\r\n type SearchActionProps,\r\n type FreezeActionProps,\r\n type RefreshActionProps,\r\n type ExtraActionsProps,\r\n type DeleteActionProps,\r\n useDataGrid,\r\n};\r\n"],"names":["appTheme","themeQuartz","DataGridContext","React","useDataGrid","context","DataGrid","children","gridId","api","setApi","rowData","setRowData","actionbarHeight","setActionbarHeight","quickFilterText","setQuickFilterText","actionbarExists","setActionbarExists","jsx","DataGridContent","propTheme","onGridReady","quickFilterTextProps","rowDataProps","containerStyle","props","theme","handleGridReady","e","AgGridReact","DataGridActionBar","className","ref","cn","SearchAction","defaultOpen","isSearchInputOpen","setIsSearchInputOpen","isClosing","setIsClosing","inputRef","handleClear","handleOpen","handleClose","TextField","IconButton","Magnifier","CircleXmark","FreezeAction","freezeText","unFreezeText","onClick","disabled","pinnedRowCount","setPinnedRowCount","selectedRowsCount","setSelectedRowsCount","freezeRows","selectedRows","row","updatedNodes","pinnedRow","node","unfreezeRows","handleFreezing","Button","Snowflake","PrintAction","handlePrint","element","html","printHtml","Print","RefreshAction","refreshRowData","loading","handleRefresh","Refresh","DeleteAction","onDelete","Trashcan","ExtraActions","slotProps","Popover","PopoverTrigger","ElipsisVertical","PopoverContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datagrid.es.js","sources":["../src/components/data-grid/DataGrid.tsx"],"sourcesContent":["import React, { HTMLAttributes } from \"react\";\r\nimport { AgGridReact, AgGridReactProps } from \"ag-grid-react\";\r\nimport { GridApi, GridReadyEvent, themeQuartz } from \"ag-grid-community\";\r\nimport { CircleXmark, ElipsisVertical, Magnifier, Print, Refresh, Snowflake, Trashcan } from \"@trsys-tech/matrix-icons\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { printHtml } from \"../../lib/printHtml\";\r\nimport { TextField } from \"../text-field/TextField\";\r\nimport { Button, ButtonProps } from \"../button/Button\";\r\nimport { IconButton, IconButtonProps } from \"../icon-botton/IconButton\";\r\nimport { Popover, PopoverContent, PopoverContentProps, PopoverProps, PopoverTrigger, PopoverTriggerProps } from \"../popover/Popover\";\r\n\r\nconst appTheme = themeQuartz.withParams({\r\n fontFamily: \"DMSans\",\r\n fontSize: \"12px\",\r\n headerFontSize: \"12px\",\r\n headerFontWeight: 700,\r\n});\r\n\r\ntype DataGridContext = {\r\n api: GridApi | null;\r\n setApi: (value: GridApi) => void;\r\n rowData: any[] | null | undefined;\r\n setRowData: (value: any[] | null | undefined) => void;\r\n gridId: string;\r\n quickFilterText: string;\r\n setQuickFilterText: (value: string) => void;\r\n actionbarExists: boolean;\r\n setActionbarExists: (value: boolean) => void;\r\n actionbarHeight: number;\r\n setActionbarHeight: (value: number) => void;\r\n};\r\n\r\nconst DataGridContext = React.createContext<DataGridContext | null>(null);\r\n\r\nconst useDataGrid = () => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useDataGrid should be used within <DataGrid>\");\r\n }\r\n\r\n return context;\r\n};\r\n\r\ntype DataGridProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst DataGrid: React.FC<DataGridProps> = ({ children }) => {\r\n const gridId = React.useId();\r\n const [api, setApi] = React.useState<GridApi | null>(null);\r\n const [rowData, setRowData] = React.useState<any[] | null | undefined>([]);\r\n const [actionbarHeight, setActionbarHeight] = React.useState(0);\r\n\r\n const [quickFilterText, setQuickFilterText] = React.useState(\"\");\r\n const [actionbarExists, setActionbarExists] = React.useState(false);\r\n return (\r\n <DataGridContext.Provider\r\n value={{\r\n api,\r\n setApi,\r\n rowData,\r\n setRowData,\r\n gridId,\r\n quickFilterText,\r\n setQuickFilterText,\r\n actionbarExists,\r\n setActionbarExists,\r\n actionbarHeight,\r\n setActionbarHeight,\r\n }}\r\n >\r\n {children}\r\n </DataGridContext.Provider>\r\n );\r\n};\r\n\r\ntype DataGridContentProps = AgGridReactProps & {};\r\n\r\nconst DataGridContent: React.FC<DataGridContentProps> = ({\r\n theme: propTheme,\r\n onGridReady,\r\n quickFilterText: quickFilterTextProps,\r\n rowData: rowDataProps,\r\n containerStyle,\r\n ...props\r\n}) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"DataGridContent should be used within <DataGrid>\");\r\n }\r\n const { rowData, setRowData, actionbarExists, setApi, setQuickFilterText, quickFilterText, gridId, actionbarHeight } = context;\r\n\r\n const theme = appTheme.withParams({\r\n headerHeight: 40,\r\n wrapperBorderRadius: actionbarExists ? \"0px 0px 8px 8px\" : \"8px\",\r\n });\r\n\r\n const handleGridReady = (e: GridReadyEvent) => {\r\n setApi(e.api);\r\n onGridReady?.(e);\r\n };\r\n\r\n React.useEffect(() => {\r\n setRowData(rowDataProps);\r\n }, [rowDataProps, setRowData]);\r\n\r\n React.useEffect(() => {\r\n if (quickFilterTextProps !== undefined) {\r\n setQuickFilterText(quickFilterTextProps ?? \"\");\r\n }\r\n }, [quickFilterTextProps, setQuickFilterText]);\r\n\r\n return (\r\n <AgGridReact\r\n gridId={gridId}\r\n theme={propTheme ?? theme}\r\n rowData={rowData}\r\n quickFilterText={quickFilterText}\r\n onGridReady={handleGridReady}\r\n containerStyle={{ height: `calc(100% - ${actionbarHeight}px)`, ...containerStyle }}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\ntype DatagridActionBarProps = HTMLAttributes<HTMLDivElement> & {};\r\n\r\nconst DataGridActionBar: React.FC<DatagridActionBarProps> = ({ className, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"DataGridActionBar should be used within <DataGrid>\");\r\n }\r\n const ref = React.useRef<HTMLDivElement | null>(null);\r\n const { setActionbarExists, setActionbarHeight } = context;\r\n const { children } = props;\r\n\r\n React.useEffect(() => {\r\n setActionbarExists(true);\r\n return () => setActionbarExists(false);\r\n }, [setActionbarExists]);\r\n\r\n React.useEffect(() => {\r\n if (ref.current) {\r\n setActionbarHeight(ref.current.clientHeight);\r\n }\r\n }, [setActionbarHeight]);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"relative flex items-center p-2 h-12 w-full bg-gray-0 border border-gray-200 border-b-0 -mb-[1px] z-10 rounded-t-[8px]\",\r\n className,\r\n )}\r\n ref={ref}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\ntype SearchActionProps = {\r\n defaultOpen?: boolean;\r\n};\r\n\r\nconst SearchAction: React.FC<SearchActionProps> = ({ defaultOpen = false }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"SearchAction should be used within <DataGrid>\");\r\n }\r\n\r\n const { quickFilterText, setQuickFilterText } = context;\r\n\r\n const [isSearchInputOpen, setIsSearchInputOpen] = React.useState(defaultOpen);\r\n const [isClosing, setIsClosing] = React.useState(false);\r\n const inputRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const handleClear = () => {\r\n context.setQuickFilterText(\"\");\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n };\r\n\r\n const handleOpen = () => {\r\n setIsSearchInputOpen(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isSearchInputOpen && inputRef?.current) {\r\n inputRef.current.focus();\r\n }\r\n }, [isSearchInputOpen]);\r\n\r\n const handleClose = () => {\r\n setIsClosing(true);\r\n context.setQuickFilterText(\"\");\r\n setTimeout(() => {\r\n setIsSearchInputOpen(false);\r\n setIsClosing(false);\r\n }, 200);\r\n };\r\n\r\n return (\r\n <div className=\"max-w-60\">\r\n {isSearchInputOpen || isClosing ? (\r\n <TextField\r\n ref={inputRef}\r\n className={cn(\"relative h-7.5\", isSearchInputOpen && !isClosing ? \"animate-input-open\" : \"\", isClosing && \"animate-input-close\")}\r\n onChange={e => setQuickFilterText(e.target.value)}\r\n value={quickFilterText}\r\n startAdornment={\r\n <IconButton variant=\"toolbar\" className=\"p-0.5 h-6 w-6 border-none mx-1\" onClick={handleClose}>\r\n <Magnifier className=\"w-5 h-5\" />\r\n </IconButton>\r\n }\r\n endAdornment={\r\n quickFilterText && (\r\n <IconButton variant=\"toolbar\" className=\"p-0.5 w-6 h-6 border-none mx-1\" onClick={handleClear}>\r\n <CircleXmark className=\"w-5 h-5\" />\r\n </IconButton>\r\n )\r\n }\r\n />\r\n ) : (\r\n <IconButton variant=\"toolbar\" className=\"p-0.5 w-6 h-6 m-1\" onClick={handleOpen}>\r\n <Magnifier className=\"w-5 h-5\" />\r\n </IconButton>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\ntype FreezeActionProps = ButtonProps & {\r\n freezeText?: string;\r\n unFreezeText?: string;\r\n};\r\n\r\nconst FreezeAction: React.FC<FreezeActionProps> = ({ freezeText, unFreezeText, onClick, disabled, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"FreezeAction should be used within <DataGrid>\");\r\n }\r\n\r\n const [pinnedRowCount, setPinnedRowCount] = React.useState(0);\r\n const [selectedRowsCount, setSelectedRowsCount] = React.useState(0);\r\n\r\n const { api, rowData } = context;\r\n\r\n const freezeRows = () => {\r\n if (!api) return;\r\n\r\n // Get currently selected rows\r\n const selectedRows = api.getSelectedNodes();\r\n\r\n if (selectedRows.length > 0) {\r\n // Pin the selected rows\r\n api.setGridOption(\r\n \"pinnedTopRowData\",\r\n selectedRows.map(row => row.data),\r\n );\r\n\r\n // Get current row data\r\n const allData = api.getRenderedNodes();\r\n // Filter out pinned rows from the main data\r\n const updatedNodes = allData.filter(row => !selectedRows.some(pinnedRow => pinnedRow.id === row.id));\r\n\r\n // Update the grid with the filtered data\r\n api.setGridOption(\r\n \"rowData\",\r\n updatedNodes.map(node => node.data),\r\n );\r\n }\r\n };\r\n\r\n const unfreezeRows = () => {\r\n if (!api) return;\r\n api.setGridOption(\"pinnedTopRowData\", []);\r\n api.setGridOption(\"rowData\", rowData);\r\n };\r\n\r\n const handleFreezing = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n if (api) {\r\n const pinnedRowsCount = api.getPinnedTopRowCount();\r\n if (pinnedRowsCount > 0) {\r\n unfreezeRows();\r\n } else {\r\n freezeRows();\r\n }\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n React.useEffect(() => {\r\n api?.addEventListener(\"pinnedRowDataChanged\", () => {\r\n setPinnedRowCount(api.getPinnedTopRowCount());\r\n });\r\n\r\n api?.addEventListener(\"selectionChanged\", () => {\r\n setSelectedRowsCount(api.getSelectedNodes().length);\r\n });\r\n\r\n return () => {\r\n api?.removeEventListener(\"pinnedRowDataChanged\", () => {\r\n setPinnedRowCount(api.getPinnedTopRowCount());\r\n });\r\n\r\n api?.removeEventListener(\"selectionChanged\", () => {\r\n setSelectedRowsCount(api.getSelectedNodes().length);\r\n });\r\n };\r\n }, [api]);\r\n\r\n return (\r\n <Button\r\n variant=\"text\"\r\n onClick={handleFreezing}\r\n startIcon={<Snowflake className=\"w-4.5 h-4.5\" />}\r\n disabled={(!pinnedRowCount && !selectedRowsCount) || disabled}\r\n {...props}\r\n >\r\n {pinnedRowCount ? (unFreezeText ?? \"Unfreeze\") : (freezeText ?? \"Freeze\")}\r\n </Button>\r\n );\r\n};\r\n\r\ntype PrintActionProps = IconButtonProps & {};\r\n\r\nconst PrintAction: React.FC<PrintActionProps> = ({ children, className, onClick, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"PrintAction should be used within <DataGrid>\");\r\n }\r\n\r\n const handlePrint = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n if (context.api) {\r\n context.api.setGridOption(\"domLayout\", \"print\");\r\n\r\n setTimeout(() => {\r\n const element = document.querySelector(\"[grid-id='\" + context.gridId + \"']\") as HTMLElement;\r\n const header = document.head;\r\n const html = `<html>\r\n ${header.innerHTML}\r\n ${element.outerHTML}\r\n </html>`;\r\n printHtml(html);\r\n context?.api?.setGridOption(\"domLayout\", undefined);\r\n });\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n return (\r\n <IconButton variant=\"toolbar\" className={cn(\"p-0.5 w-6 h-6\", className)} onClick={handlePrint} {...props}>\r\n {children ?? <Print className=\"w-5 h-5\" />}\r\n </IconButton>\r\n );\r\n};\r\n\r\ntype RefreshActionProps = Omit<IconButtonProps, \"onClick\"> & {\r\n refreshRowData: () => void;\r\n};\r\n\r\nconst RefreshAction: React.FC<RefreshActionProps> = ({ className, refreshRowData, children, loading, ...props }) => {\r\n const context = React.useContext(DataGridContext);\r\n\r\n if (!context) {\r\n throw new Error(\"RefreshAction should be used within <DataGrid>\");\r\n }\r\n\r\n const handleRefresh = () => {\r\n refreshRowData();\r\n };\r\n\r\n return (\r\n <IconButton\r\n className={cn(\"p-0.5 w-6 h-6\", loading && \"disabled:bg-transparent\", className)}\r\n variant=\"toolbar\"\r\n onClick={handleRefresh}\r\n disabled={loading}\r\n {...props}\r\n >\r\n {children ?? <Refresh className={cn(\"w-4.5 h-4.5\", loading && \"animate-spin\")} />}\r\n </IconButton>\r\n );\r\n};\r\n\r\ntype DeleteActionProps = Omit<ButtonProps, \"onClick\"> & {\r\n onDelete: () => void;\r\n};\r\n\r\nconst DeleteAction: React.FC<DeleteActionProps> = ({ onDelete, children, ...props }) => {\r\n const handleDelete = () => {\r\n onDelete();\r\n };\r\n\r\n return (\r\n <Button variant=\"danger\" onClick={handleDelete} startIcon={<Trashcan className=\"w-4.5 h-4.5\" />} {...props}>\r\n {children}\r\n </Button>\r\n );\r\n};\r\n\r\ntype ExtraActionsProps = PopoverContentProps & {\r\n children: React.ReactNode;\r\n slotProps?: {\r\n triggerProps?: PopoverTriggerProps;\r\n popoverProps?: PopoverProps;\r\n };\r\n};\r\n\r\nconst ExtraActions: React.FC<ExtraActionsProps> = ({ children, slotProps, className, ...props }) => {\r\n return (\r\n <Popover {...(slotProps?.popoverProps ?? {})}>\r\n <PopoverTrigger {...(slotProps?.triggerProps ?? {})}>\r\n <ElipsisVertical className=\"w-4.5 h-4.5 text-primary\" />\r\n </PopoverTrigger>\r\n <PopoverContent align=\"end\" className={cn(\"w-40\", className)} {...props}>\r\n {children}\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n};\r\n\r\nexport {\r\n DataGrid,\r\n DataGridContent,\r\n DataGridActionBar,\r\n SearchAction,\r\n FreezeAction,\r\n PrintAction,\r\n RefreshAction,\r\n ExtraActions,\r\n DeleteAction,\r\n type DataGridProps,\r\n type DataGridContentProps,\r\n type DatagridActionBarProps,\r\n type SearchActionProps,\r\n type FreezeActionProps,\r\n type RefreshActionProps,\r\n type ExtraActionsProps,\r\n type DeleteActionProps,\r\n useDataGrid,\r\n};\r\n"],"names":["appTheme","themeQuartz","DataGridContext","React","useDataGrid","context","DataGrid","children","gridId","api","setApi","rowData","setRowData","actionbarHeight","setActionbarHeight","quickFilterText","setQuickFilterText","actionbarExists","setActionbarExists","jsx","DataGridContent","propTheme","onGridReady","quickFilterTextProps","rowDataProps","containerStyle","props","theme","handleGridReady","e","AgGridReact","DataGridActionBar","className","ref","cn","SearchAction","defaultOpen","isSearchInputOpen","setIsSearchInputOpen","isClosing","setIsClosing","inputRef","handleClear","handleOpen","handleClose","TextField","IconButton","Magnifier","CircleXmark","FreezeAction","freezeText","unFreezeText","onClick","disabled","pinnedRowCount","setPinnedRowCount","selectedRowsCount","setSelectedRowsCount","freezeRows","selectedRows","row","updatedNodes","pinnedRow","node","unfreezeRows","handleFreezing","Button","Snowflake","PrintAction","handlePrint","element","html","printHtml","Print","RefreshAction","refreshRowData","loading","handleRefresh","Refresh","DeleteAction","onDelete","Trashcan","ExtraActions","slotProps","Popover","PopoverTrigger","ElipsisVertical","PopoverContent"],"mappings":"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"}
|
package/dist/formcheckbox.es.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Checkbox as P } from "./checkbox.es.js";
|
|
|
5
5
|
import { useCallback as N } from "react";
|
|
6
6
|
import { cn as j } from "./utils.es.js";
|
|
7
7
|
const U = (p) => {
|
|
8
|
-
const { name: t, control: a, defaultValue:
|
|
8
|
+
const { name: t, control: a, defaultValue: l, disabled: s, rules: m, shouldUnregister: n, label: f, slotProps: e, required: c, ...h } = p, { field: i } = F({ name: t, control: a, rules: m, defaultValue: l, disabled: s, shouldUnregister: n }), u = N(
|
|
9
9
|
(o) => {
|
|
10
10
|
i.onChange(o);
|
|
11
11
|
},
|
|
@@ -16,9 +16,9 @@ const U = (p) => {
|
|
|
16
16
|
{
|
|
17
17
|
control: a,
|
|
18
18
|
name: t,
|
|
19
|
-
defaultValue:
|
|
19
|
+
defaultValue: l,
|
|
20
20
|
disabled: s,
|
|
21
|
-
rules:
|
|
21
|
+
rules: m,
|
|
22
22
|
shouldUnregister: n,
|
|
23
23
|
render: ({ field: o }) => /* @__PURE__ */ d(C, { ...h, className: "flex items-center gap-2 justify-start space-y-0", children: [
|
|
24
24
|
/* @__PURE__ */ r(b, { ...e?.formControlProps ?? {}, children: /* @__PURE__ */ r(
|
|
@@ -34,7 +34,7 @@ const U = (p) => {
|
|
|
34
34
|
) }),
|
|
35
35
|
/* @__PURE__ */ d(g, { ...e?.formLabelProps ?? {}, className: j("text-text", e?.formLabelProps?.className), children: [
|
|
36
36
|
f,
|
|
37
|
-
c && /* @__PURE__ */ r("span", { className: "text-danger text-sm", children: "*" })
|
|
37
|
+
c && /* @__PURE__ */ r("span", { className: "text-danger text-sm leading-4", children: "*" })
|
|
38
38
|
] }),
|
|
39
39
|
/* @__PURE__ */ r(k, { ...e?.formMessageProps ?? {} })
|
|
40
40
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formcheckbox.es.js","sources":["../src/components/form-checkbox/FormCheckbox.tsx"],"sourcesContent":["import { FormControl, FormField, FormItem, FormLabel, FormMessage } from \"../form/Form\";\r\nimport { SlotProps } from \"@radix-ui/react-slot\";\r\nimport { Control, ControllerProps, FieldPath, FieldValues, useController } from \"react-hook-form\";\r\nimport { Checkbox, CheckboxProps } from \"../checkbox/Checkbox\";\r\nimport { useCallback } from \"react\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\ntype FormCheckboxProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<\r\n ControllerProps<TFieldValues, TName>,\r\n \"render\"\r\n> &\r\n React.ComponentProps<typeof FormItem> & {\r\n label: string;\r\n control: Control<TFieldValues>;\r\n required?: boolean;\r\n slotProps?: {\r\n formLabelProps?: React.HTMLAttributes<HTMLLabelElement> & React.RefAttributes<HTMLLabelElement>;\r\n formMessageProps?: React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>;\r\n formControlProps?: Omit<SlotProps & React.RefAttributes<HTMLElement>, \"ref\"> & React.RefAttributes<HTMLElement>;\r\n checkboxProps?: CheckboxProps;\r\n };\r\n };\r\n\r\nconst FormCheckbox = <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>(props: FormCheckboxProps<TFieldValues, TName>) => {\r\n const { name, control, defaultValue, disabled, rules, shouldUnregister, label, slotProps, required, ...formItemProps } = props;\r\n const { field } = useController({ name, control, rules, defaultValue, disabled, shouldUnregister });\r\n\r\n const handleCheckChanged = useCallback(\r\n (checked: boolean) => {\r\n field.onChange(checked);\r\n },\r\n [field],\r\n );\r\n\r\n return (\r\n <FormField\r\n control={control}\r\n name={name}\r\n defaultValue={defaultValue}\r\n disabled={disabled}\r\n rules={rules}\r\n shouldUnregister={shouldUnregister}\r\n render={({ field }) => {\r\n return (\r\n <FormItem {...formItemProps} className=\"flex items-center gap-2 justify-start space-y-0\">\r\n <FormControl {...(slotProps?.formControlProps ?? {})}>\r\n <Checkbox\r\n {...(slotProps?.checkboxProps ?? {})}\r\n {...field}\r\n checked={field.value}\r\n onCheckedChange={handleCheckChanged}\r\n aria-required={required}\r\n disabled={disabled}\r\n />\r\n </FormControl>\r\n <FormLabel {...(slotProps?.formLabelProps ?? {})} className={cn(\"text-text\", slotProps?.formLabelProps?.className)}>\r\n {label}\r\n {required && <span className=\"text-danger text-sm\">*</span>}\r\n </FormLabel>\r\n <FormMessage {...(slotProps?.formMessageProps ?? {})} />\r\n </FormItem>\r\n );\r\n }}\r\n />\r\n );\r\n};\r\nexport { FormCheckbox, type FormCheckboxProps };\r\n"],"names":["FormCheckbox","props","name","control","defaultValue","disabled","rules","shouldUnregister","label","slotProps","required","formItemProps","field","useController","handleCheckChanged","useCallback","checked","jsx","FormField","jsxs","FormItem","FormControl","Checkbox","FormLabel","cn","FormMessage"],"mappings":";;;;;;AAuBM,MAAAA,IAAe,CAA0EC,MAAkD;AAC/I,QAAM,EAAE,MAAAC,GAAM,SAAAC,GAAS,cAAAC,GAAc,UAAAC,GAAU,OAAAC,GAAO,kBAAAC,GAAkB,OAAAC,GAAO,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAkB,IAAAV,GACnH,EAAE,OAAAW,EAAM,IAAIC,EAAc,EAAE,MAAAX,GAAM,SAAAC,GAAS,OAAAG,GAAO,cAAAF,GAAc,UAAAC,GAAU,kBAAAE,GAAkB,GAE5FO,IAAqBC;AAAA,IACzB,CAACC,MAAqB;AACpB,MAAAJ,EAAM,SAASI,CAAO;AAAA,IACxB;AAAA,IACA,CAACJ,CAAK;AAAA,EACR;AAGE,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAf;AAAA,MACA,MAAAD;AAAA,MACA,cAAAE;AAAA,MACA,UAAAC;AAAA,MACA,OAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,QAAQ,CAAC,EAAE,OAAAK,QAEN,gBAAAO,EAAAC,GAAA,EAAU,GAAGT,GAAe,WAAU,mDACrC,UAAA;AAAA,QAAA,gBAAAM,EAACI,GAAa,EAAA,GAAIZ,GAAW,oBAAoB,CAAA,GAC/C,UAAA,gBAAAQ;AAAA,UAACK;AAAA,UAAA;AAAA,YACE,GAAIb,GAAW,iBAAiB,CAAC;AAAA,YACjC,GAAGG;AAAAA,YACJ,SAASA,EAAM;AAAA,YACf,iBAAiBE;AAAA,YACjB,iBAAeJ;AAAA,YACf,UAAAL;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,QACC,gBAAAc,EAAAI,GAAA,EAAW,GAAId,GAAW,kBAAkB,CAAA,GAAK,WAAWe,EAAG,aAAaf,GAAW,gBAAgB,SAAS,GAC9G,UAAA;AAAA,UAAAD;AAAA,UACAE,KAAY,gBAAAO,EAAC,QAAK,EAAA,WAAU,
|
|
1
|
+
{"version":3,"file":"formcheckbox.es.js","sources":["../src/components/form-checkbox/FormCheckbox.tsx"],"sourcesContent":["import { FormControl, FormField, FormItem, FormLabel, FormMessage } from \"../form/Form\";\r\nimport { SlotProps } from \"@radix-ui/react-slot\";\r\nimport { Control, ControllerProps, FieldPath, FieldValues, useController } from \"react-hook-form\";\r\nimport { Checkbox, CheckboxProps } from \"../checkbox/Checkbox\";\r\nimport { useCallback } from \"react\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\ntype FormCheckboxProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<\r\n ControllerProps<TFieldValues, TName>,\r\n \"render\"\r\n> &\r\n React.ComponentProps<typeof FormItem> & {\r\n label: string;\r\n control: Control<TFieldValues>;\r\n required?: boolean;\r\n slotProps?: {\r\n formLabelProps?: React.HTMLAttributes<HTMLLabelElement> & React.RefAttributes<HTMLLabelElement>;\r\n formMessageProps?: React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>;\r\n formControlProps?: Omit<SlotProps & React.RefAttributes<HTMLElement>, \"ref\"> & React.RefAttributes<HTMLElement>;\r\n checkboxProps?: CheckboxProps;\r\n };\r\n };\r\n\r\nconst FormCheckbox = <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>(props: FormCheckboxProps<TFieldValues, TName>) => {\r\n const { name, control, defaultValue, disabled, rules, shouldUnregister, label, slotProps, required, ...formItemProps } = props;\r\n const { field } = useController({ name, control, rules, defaultValue, disabled, shouldUnregister });\r\n\r\n const handleCheckChanged = useCallback(\r\n (checked: boolean) => {\r\n field.onChange(checked);\r\n },\r\n [field],\r\n );\r\n\r\n return (\r\n <FormField\r\n control={control}\r\n name={name}\r\n defaultValue={defaultValue}\r\n disabled={disabled}\r\n rules={rules}\r\n shouldUnregister={shouldUnregister}\r\n render={({ field }) => {\r\n return (\r\n <FormItem {...formItemProps} className=\"flex items-center gap-2 justify-start space-y-0\">\r\n <FormControl {...(slotProps?.formControlProps ?? {})}>\r\n <Checkbox\r\n {...(slotProps?.checkboxProps ?? {})}\r\n {...field}\r\n checked={field.value}\r\n onCheckedChange={handleCheckChanged}\r\n aria-required={required}\r\n disabled={disabled}\r\n />\r\n </FormControl>\r\n <FormLabel {...(slotProps?.formLabelProps ?? {})} className={cn(\"text-text\", slotProps?.formLabelProps?.className)}>\r\n {label}\r\n {required && <span className=\"text-danger text-sm leading-4\">*</span>}\r\n </FormLabel>\r\n <FormMessage {...(slotProps?.formMessageProps ?? {})} />\r\n </FormItem>\r\n );\r\n }}\r\n />\r\n );\r\n};\r\nexport { FormCheckbox, type FormCheckboxProps };\r\n"],"names":["FormCheckbox","props","name","control","defaultValue","disabled","rules","shouldUnregister","label","slotProps","required","formItemProps","field","useController","handleCheckChanged","useCallback","checked","jsx","FormField","jsxs","FormItem","FormControl","Checkbox","FormLabel","cn","FormMessage"],"mappings":";;;;;;AAuBM,MAAAA,IAAe,CAA0EC,MAAkD;AAC/I,QAAM,EAAE,MAAAC,GAAM,SAAAC,GAAS,cAAAC,GAAc,UAAAC,GAAU,OAAAC,GAAO,kBAAAC,GAAkB,OAAAC,GAAO,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAkB,IAAAV,GACnH,EAAE,OAAAW,EAAM,IAAIC,EAAc,EAAE,MAAAX,GAAM,SAAAC,GAAS,OAAAG,GAAO,cAAAF,GAAc,UAAAC,GAAU,kBAAAE,GAAkB,GAE5FO,IAAqBC;AAAA,IACzB,CAACC,MAAqB;AACpB,MAAAJ,EAAM,SAASI,CAAO;AAAA,IACxB;AAAA,IACA,CAACJ,CAAK;AAAA,EACR;AAGE,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAf;AAAA,MACA,MAAAD;AAAA,MACA,cAAAE;AAAA,MACA,UAAAC;AAAA,MACA,OAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,QAAQ,CAAC,EAAE,OAAAK,QAEN,gBAAAO,EAAAC,GAAA,EAAU,GAAGT,GAAe,WAAU,mDACrC,UAAA;AAAA,QAAA,gBAAAM,EAACI,GAAa,EAAA,GAAIZ,GAAW,oBAAoB,CAAA,GAC/C,UAAA,gBAAAQ;AAAA,UAACK;AAAA,UAAA;AAAA,YACE,GAAIb,GAAW,iBAAiB,CAAC;AAAA,YACjC,GAAGG;AAAAA,YACJ,SAASA,EAAM;AAAA,YACf,iBAAiBE;AAAA,YACjB,iBAAeJ;AAAA,YACf,UAAAL;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,QACC,gBAAAc,EAAAI,GAAA,EAAW,GAAId,GAAW,kBAAkB,CAAA,GAAK,WAAWe,EAAG,aAAaf,GAAW,gBAAgB,SAAS,GAC9G,UAAA;AAAA,UAAAD;AAAA,UACAE,KAAY,gBAAAO,EAAC,QAAK,EAAA,WAAU,iCAAgC,UAAC,IAAA,CAAA;AAAA,QAAA,GAChE;AAAA,0BACCQ,GAAa,EAAA,GAAIhB,GAAW,oBAAoB,CAAA,EAAK,CAAA;AAAA,MAAA,GACxD;AAAA,IAEJ;AAAA,EACF;AAEJ;"}
|
package/dist/formcombobox.es.js
CHANGED
|
@@ -21,10 +21,10 @@ const ro = (N) => {
|
|
|
21
21
|
emptyOptionsText: v,
|
|
22
22
|
placeholder: I,
|
|
23
23
|
slotProps: e,
|
|
24
|
-
required:
|
|
24
|
+
required: g,
|
|
25
25
|
...y
|
|
26
|
-
} = N, { field: m } = j({ name: d, control: b, rules: u, defaultValue: p, disabled: l, shouldUnregister: x }), [F,
|
|
27
|
-
m.onChange(t),
|
|
26
|
+
} = N, { field: m } = j({ name: d, control: b, rules: u, defaultValue: p, disabled: l, shouldUnregister: x }), [F, h] = w(!1), S = (t) => {
|
|
27
|
+
m.onChange(t), h(!1);
|
|
28
28
|
}, T = L(() => n.find((t) => t.value === m.value), [m.value, n]);
|
|
29
29
|
return /* @__PURE__ */ o(
|
|
30
30
|
B,
|
|
@@ -38,16 +38,16 @@ const ro = (N) => {
|
|
|
38
38
|
render: ({ field: t }) => /* @__PURE__ */ r(D, { ...y, children: [
|
|
39
39
|
/* @__PURE__ */ r(U, { ...e?.formLabelProps ?? {}, children: [
|
|
40
40
|
f,
|
|
41
|
-
|
|
41
|
+
g && /* @__PURE__ */ o("span", { className: "text-danger text-sm leading-4", children: "*" })
|
|
42
42
|
] }),
|
|
43
|
-
/* @__PURE__ */ r(A, { ...e?.comboboxProps ?? {}, open: F, onOpenChange:
|
|
43
|
+
/* @__PURE__ */ r(A, { ...e?.comboboxProps ?? {}, open: F, onOpenChange: h, children: [
|
|
44
44
|
/* @__PURE__ */ o(_, { children: /* @__PURE__ */ o(
|
|
45
45
|
G,
|
|
46
46
|
{
|
|
47
47
|
className: i("*:truncate [&>span]:inline-block", e?.comboboxTriggerProps?.className),
|
|
48
48
|
disabled: l ?? a,
|
|
49
49
|
asChild: !0,
|
|
50
|
-
"aria-required":
|
|
50
|
+
"aria-required": g,
|
|
51
51
|
...e?.comboboxTriggerProps ?? {},
|
|
52
52
|
children: /* @__PURE__ */ o(
|
|
53
53
|
q,
|