@tsed/react-formio 3.0.0-rc.23 → 3.0.0-rc.24
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/all.js +1 -2
- package/dist/all.js.map +1 -1
- package/dist/atoms/icon/Icon.js +4 -4
- package/dist/atoms/icon/Icon.js.map +1 -1
- package/dist/chunks/clsx.js +17 -0
- package/dist/chunks/clsx.js.map +1 -0
- package/dist/chunks/index.js +59969 -36
- package/dist/chunks/index.js.map +1 -1
- package/dist/contexts/FormioContext.js +1 -1
- package/dist/index.js +1 -1
- package/dist/molecules/button/Button.js +4 -4
- package/dist/molecules/button/Button.js.map +1 -1
- package/dist/molecules/card/Card.js +4 -4
- package/dist/molecules/card/Card.js.map +1 -1
- package/dist/molecules/forms/form-control/FormControl.js +1 -1
- package/dist/molecules/forms/form-control/FormControl.js.map +1 -1
- package/dist/molecules/forms/select/components/ChoicesSelect.js +53 -46
- package/dist/molecules/forms/select/components/ChoicesSelect.js.map +1 -1
- package/dist/molecules/forms/select/components/HtmlSelect.js +8 -8
- package/dist/molecules/forms/select/components/HtmlSelect.js.map +1 -1
- package/dist/molecules/forms/select/components/choices.template.d.ts +27 -2
- package/dist/molecules/forms/select/components/choices.template.js +1085 -1086
- package/dist/molecules/forms/select/components/choices.template.js.map +1 -1
- package/dist/molecules/forms/select/hooks/useOptions.d.ts +1 -1
- package/dist/molecules/forms/select/hooks/useOptions.js +15 -15
- package/dist/molecules/forms/select/hooks/useOptions.js.map +1 -1
- package/dist/molecules/loader/Loader.js +2 -5
- package/dist/molecules/loader/Loader.js.map +1 -1
- package/dist/molecules/pagination/Pagination.js +8 -8
- package/dist/molecules/pagination/Pagination.js.map +1 -1
- package/dist/molecules/pagination/PaginationButton.js +4 -4
- package/dist/molecules/pagination/PaginationButton.js.map +1 -1
- package/dist/molecules/table/Table.js +1 -1
- package/dist/molecules/table/Table.js.map +1 -1
- package/dist/molecules/table/components/DefaultCellHeader.js +1 -1
- package/dist/molecules/table/components/DefaultCellHeader.js.map +1 -1
- package/dist/molecules/table/components/DefaultOperationButton.js +1 -1
- package/dist/molecules/table/components/DefaultOperationButton.js.map +1 -1
- package/dist/molecules/table/filters/Filters.d.ts +2 -2
- package/dist/molecules/table/hooks/useUniqValues.d.ts +6 -2
- package/dist/molecules/table/hooks/useUniqValues.js.map +1 -1
- package/dist/molecules/table/utils/mapFormToColumns.js +27 -28
- package/dist/molecules/table/utils/mapFormToColumns.js.map +1 -1
- package/dist/molecules/tabs/Tab.js +1 -1
- package/dist/molecules/tabs/Tab.js.map +1 -1
- package/dist/molecules/tabs/TabPanel.js +4 -4
- package/dist/molecules/tabs/TabPanel.js.map +1 -1
- package/dist/molecules/tabs/Tabs.js +1 -1
- package/dist/molecules/tabs/Tabs.js.map +1 -1
- package/dist/organisms/form/actions/FormAction.js +1 -1
- package/dist/organisms/form/builder/FormEdit.js +1 -1
- package/dist/organisms/form/builder/FormEdit.js.map +1 -1
- package/dist/organisms/form/builder/useFormBuilder.js +1 -1
- package/dist/organisms/form/useForm.js +1 -1
- package/dist/organisms/modal/RemoveModal.js +1 -1
- package/dist/organisms/modal/RemoveModal.js.map +1 -1
- package/dist/organisms/table/actions/ActionsTable.js +1 -1
- package/dist/organisms/table/actions/ActionsTable.js.map +1 -1
- package/dist/organisms/table/forms/components/FormsCell.js +1 -1
- package/dist/organisms/table/forms/components/FormsCell.js.map +1 -1
- package/dist/utils/iconClass.js +1 -1
- package/package.json +4 -4
- package/src/atoms/icon/Icon.tsx +1 -1
- package/src/molecules/button/Button.tsx +1 -1
- package/src/molecules/card/Card.tsx +2 -2
- package/src/molecules/forms/form-control/FormControl.tsx +2 -2
- package/src/molecules/forms/select/components/ChoicesSelect.stories.tsx +134 -2
- package/src/molecules/forms/select/components/ChoicesSelect.tsx +11 -4
- package/src/molecules/forms/select/components/HtmlSelect.tsx +1 -1
- package/src/molecules/forms/select/components/choices.template.tsx +51 -29
- package/src/molecules/forms/select/hooks/useOptions.ts +1 -5
- package/src/molecules/loader/Loader.tsx +3 -7
- package/src/molecules/pagination/Pagination.tsx +5 -5
- package/src/molecules/pagination/PaginationButton.tsx +2 -2
- package/src/molecules/table/Table.tsx +2 -2
- package/src/molecules/table/components/DefaultCellHeader.tsx +3 -3
- package/src/molecules/table/components/DefaultOperationButton.tsx +1 -1
- package/src/molecules/table/filters/Filters.ts +2 -2
- package/src/molecules/table/hooks/useUniqValues.tsx +7 -3
- package/src/molecules/table/utils/mapFormToColumns.tsx +4 -4
- package/src/molecules/tabs/Tab.tsx +3 -3
- package/src/molecules/tabs/TabPanel.tsx +2 -2
- package/src/molecules/tabs/Tabs.tsx +2 -2
- package/src/organisms/form/builder/FormEdit.tsx +2 -2
- package/src/organisms/modal/RemoveModal.tsx +3 -3
- package/src/organisms/table/actions/ActionsTable.tsx +2 -2
- package/src/organisms/table/forms/components/FormsCell.tsx +1 -1
- package/dist/chunks/index2.js +0 -59979
- package/dist/chunks/index2.js.map +0 -1
|
@@ -3,7 +3,7 @@ export declare function mapOptions(options: AllSelectProps["options"]): (import(
|
|
|
3
3
|
label: any;
|
|
4
4
|
options: any;
|
|
5
5
|
}[];
|
|
6
|
-
export declare function useOptions<Data = string>({ options
|
|
6
|
+
export declare function useOptions<Data = string>({ options }: AllSelectProps<Data>): (import('../Select.interface').SelectOptionBaseProps<string> | Omit<import('../Select.interface').SelectOptionProps<string>, "value">)[] | {
|
|
7
7
|
label: any;
|
|
8
8
|
options: any;
|
|
9
9
|
}[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useMemo as n } from "react";
|
|
2
|
-
function o(
|
|
3
|
-
if (
|
|
4
|
-
let
|
|
2
|
+
function o(t) {
|
|
3
|
+
if (t.find((p) => p.group)) {
|
|
4
|
+
let p = function(r) {
|
|
5
5
|
return {
|
|
6
6
|
...r,
|
|
7
7
|
customProperties: {
|
|
@@ -9,27 +9,27 @@ function o(e) {
|
|
|
9
9
|
template: r.template
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
|
-
},
|
|
13
|
-
return
|
|
12
|
+
}, u = /* @__PURE__ */ new Map();
|
|
13
|
+
return t.forEach((r) => {
|
|
14
14
|
if (r.group) {
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const e = u.get(r.group) || [];
|
|
16
|
+
e.push(r), u.set(r.group, e);
|
|
17
17
|
} else {
|
|
18
|
-
const
|
|
19
|
-
|
|
18
|
+
const e = u.get("default") || [];
|
|
19
|
+
e.push(p(r)), u.set("default", e);
|
|
20
20
|
}
|
|
21
|
-
}), [...
|
|
21
|
+
}), [...u.entries()].map(([r, e]) => ({
|
|
22
22
|
label: r,
|
|
23
|
-
options:
|
|
23
|
+
options: e
|
|
24
24
|
}));
|
|
25
25
|
}
|
|
26
|
-
return
|
|
26
|
+
return t;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
return
|
|
28
|
+
function a({ options: t }) {
|
|
29
|
+
return n(() => o(t), [t]);
|
|
30
30
|
}
|
|
31
31
|
export {
|
|
32
32
|
o as mapOptions,
|
|
33
|
-
|
|
33
|
+
a as useOptions
|
|
34
34
|
};
|
|
35
35
|
//# sourceMappingURL=useOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOptions.js","sources":["../../../../../src/molecules/forms/select/hooks/useOptions.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport type { AllSelectProps } from \"../Select.interface\";\n\nexport function mapOptions(options: AllSelectProps[\"options\"]) {\n if (options.find((item) => item.group)) {\n let groupsMap = new Map();\n\n function mapItem(item: AllSelectProps[\"options\"][0]) {\n return {\n ...item,\n customProperties: {\n ...item.data,\n template: item.template\n }\n };\n }\n\n options.forEach((item) => {\n if (item.group) {\n // legacy model group\n const group = groupsMap.get(item.group) || [];\n\n group.push(item);\n\n groupsMap.set(item.group, group);\n } else {\n const group = groupsMap.get(\"default\") || [];\n group.push(mapItem(item));\n groupsMap.set(\"default\", group);\n }\n });\n\n return [...groupsMap.entries()].map(([label, options]) => {\n return {\n label,\n options\n };\n });\n }\n\n return options;\n}\n\nexport function useOptions<Data = string>({ options
|
|
1
|
+
{"version":3,"file":"useOptions.js","sources":["../../../../../src/molecules/forms/select/hooks/useOptions.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport type { AllSelectProps } from \"../Select.interface\";\n\nexport function mapOptions(options: AllSelectProps[\"options\"]) {\n if (options.find((item) => item.group)) {\n let groupsMap = new Map();\n\n function mapItem(item: AllSelectProps[\"options\"][0]) {\n return {\n ...item,\n customProperties: {\n ...item.data,\n template: item.template\n }\n };\n }\n\n options.forEach((item) => {\n if (item.group) {\n // legacy model group\n const group = groupsMap.get(item.group) || [];\n\n group.push(item);\n\n groupsMap.set(item.group, group);\n } else {\n const group = groupsMap.get(\"default\") || [];\n group.push(mapItem(item));\n groupsMap.set(\"default\", group);\n }\n });\n\n return [...groupsMap.entries()].map(([label, options]) => {\n return {\n label,\n options\n };\n });\n }\n\n return options;\n}\n\nexport function useOptions<Data = string>({ options }: AllSelectProps<Data>) {\n return useMemo(() => {\n return mapOptions(options);\n }, [options]);\n}\n"],"names":["mapOptions","options","item","mapItem","groupsMap","group","label","useOptions","useMemo"],"mappings":";AAIO,SAASA,EAAWC,GAAoC;AAC7D,MAAIA,EAAQ,KAAK,CAACC,MAASA,EAAK,KAAK,GAAG;AAGtC,QAASC,IAAT,SAAiBD,GAAoC;AACnD,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,kBAAkB;AAAA,UAChB,GAAGA,EAAK;AAAA,UACR,UAAUA,EAAK;AAAA,QAAA;AAAA,MACjB;AAAA,IAEJ,GAVIE,wBAAgB,IAAA;AAYpB,WAAAH,EAAQ,QAAQ,CAACC,MAAS;AACxB,UAAIA,EAAK,OAAO;AAEd,cAAMG,IAAQD,EAAU,IAAIF,EAAK,KAAK,KAAK,CAAA;AAE3C,QAAAG,EAAM,KAAKH,CAAI,GAEfE,EAAU,IAAIF,EAAK,OAAOG,CAAK;AAAA,MACjC,OAAO;AACL,cAAMA,IAAQD,EAAU,IAAI,SAAS,KAAK,CAAA;AAC1C,QAAAC,EAAM,KAAKF,EAAQD,CAAI,CAAC,GACxBE,EAAU,IAAI,WAAWC,CAAK;AAAA,MAChC;AAAA,IACF,CAAC,GAEM,CAAC,GAAGD,EAAU,QAAA,CAAS,EAAE,IAAI,CAAC,CAACE,GAAOL,CAAO,OAC3C;AAAA,MACL,OAAAK;AAAA,MACA,SAAAL;AAAAA,IAAA,EAEH;AAAA,EACH;AAEA,SAAOA;AACT;AAEO,SAASM,EAA0B,EAAE,SAAAN,KAAiC;AAC3E,SAAOO,EAAQ,MACNR,EAAWC,CAAO,GACxB,CAACA,CAAO,CAAC;AACd;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { c as r } from "../../chunks/
|
|
2
|
+
import { c as r } from "../../chunks/clsx.js";
|
|
3
3
|
import { Icon as s } from "../../atoms/icon/Icon.js";
|
|
4
4
|
function f({
|
|
5
5
|
isActive: i,
|
|
@@ -13,10 +13,7 @@ function f({
|
|
|
13
13
|
"div",
|
|
14
14
|
{
|
|
15
15
|
...m,
|
|
16
|
-
className: r(
|
|
17
|
-
"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white",
|
|
18
|
-
n
|
|
19
|
-
),
|
|
16
|
+
className: r("opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white", n),
|
|
20
17
|
children: /* @__PURE__ */ e(s, { "data-testid": `icon_${t}`, className: r("text-8xl", o), iconset: a, name: t, spinning: !0 })
|
|
21
18
|
}
|
|
22
19
|
) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","sources":["../../../src/molecules/loader/Loader.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Loader.js","sources":["../../../src/molecules/loader/Loader.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { type ComponentPropsWithoutRef, PropsWithChildren } from \"react\";\n\nimport { Icon } from \"../../atoms/icon/Icon.js\";\n\nexport interface LoaderProps extends ComponentPropsWithoutRef<\"div\"> {\n isActive?: boolean;\n color?: string;\n icon?: string;\n iconset?: string;\n}\n\nexport function Loader({\n isActive,\n color = \"text-primary\",\n icon = \"loader\",\n iconset,\n className = \"\",\n ...props\n}: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n {...props}\n className={clsx(\"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\", className)}\n >\n <Icon data-testid={`icon_${icon}`} className={clsx(\"text-8xl\", color)} iconset={iconset} name={icon} spinning={true} />\n </div>\n );\n }\n\n return null;\n}\n"],"names":["Loader","isActive","color","icon","iconset","className","props","jsx","clsx","Icon"],"mappings":";;;AAYO,SAASA,EAAO;AAAA,EACrB,UAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAmC;AACjC,SAAIL,IAEA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGD;AAAA,MACJ,WAAWE,EAAK,wGAAwGH,CAAS;AAAA,MAEjI,UAAA,gBAAAE,EAACE,GAAA,EAAK,eAAa,QAAQN,CAAI,IAAI,WAAWK,EAAK,YAAYN,CAAK,GAAG,SAAAE,GAAkB,MAAMD,GAAM,UAAU,GAAA,CAAM;AAAA,IAAA;AAAA,EAAA,IAKpH;AACT;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { c as
|
|
2
|
+
import { c as o } from "../../chunks/clsx.js";
|
|
3
3
|
import { useI18n as S } from "../../hooks/useI18n.js";
|
|
4
4
|
import { registerComponent as z, getComponent as p } from "../../registries/components.js";
|
|
5
5
|
import { getPageNumbers as E, LEFT_PAGE as G, RIGHT_PAGE as T } from "./utils/getPageNumbers.js";
|
|
@@ -23,16 +23,16 @@ function _(r) {
|
|
|
23
23
|
// pageNeighbours,
|
|
24
24
|
totalPages: f
|
|
25
25
|
}), I = P.map((a) => ({ value: a, label: a })), k = p("Select"), l = p("PaginationButton");
|
|
26
|
-
return /* @__PURE__ */ n("nav", { "aria-label": "Page navigation", className:
|
|
26
|
+
return /* @__PURE__ */ n("nav", { "aria-label": "Page navigation", className: o("pagination-group -mb-3", u), children: [
|
|
27
27
|
/* @__PURE__ */ n("ul", { className: "pagination mb-3 mr-3", children: [
|
|
28
|
-
/* @__PURE__ */ e("li", { className:
|
|
28
|
+
/* @__PURE__ */ e("li", { className: o("page-item", !c && "disabled"), children: /* @__PURE__ */ e(l, { tabIndex: -1, disabled: !c, onClick: () => b(), children: i("Previous") }) }),
|
|
29
29
|
h.map((a) => {
|
|
30
30
|
if ([G, T].includes(a))
|
|
31
31
|
return /* @__PURE__ */ e("li", { className: "page-item", children: /* @__PURE__ */ e(l, { "aria-hidden": "true", children: "..." }) }, a);
|
|
32
|
-
const
|
|
33
|
-
return /* @__PURE__ */ e("li", { className:
|
|
32
|
+
const s = a - 1 === t;
|
|
33
|
+
return /* @__PURE__ */ e("li", { className: o("page-item", s && "active"), children: /* @__PURE__ */ e(l, { tabIndex: t, active: s, onClick: () => N(a - 1), children: a }) }, a);
|
|
34
34
|
}),
|
|
35
|
-
/* @__PURE__ */ e("li", { className:
|
|
35
|
+
/* @__PURE__ */ e("li", { className: o("page-item", !m && "disabled"), children: /* @__PURE__ */ e(l, { tabIndex: h.length, disabled: !m, onClick: () => x(), children: i("Next") }) })
|
|
36
36
|
] }),
|
|
37
37
|
/* @__PURE__ */ n("li", { className: "mb-3 mr-3 flex items-center", children: [
|
|
38
38
|
/* @__PURE__ */ e(
|
|
@@ -43,8 +43,8 @@ function _(r) {
|
|
|
43
43
|
options: I,
|
|
44
44
|
multiple: !1,
|
|
45
45
|
layout: r.layout,
|
|
46
|
-
onChange: (a,
|
|
47
|
-
v(+
|
|
46
|
+
onChange: (a, s) => {
|
|
47
|
+
v(+s);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/molecules/pagination/Pagination.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/molecules/pagination/Pagination.tsx"],"sourcesContent":["import clsx from \"clsx\";\n\nimport { useI18n } from \"../../hooks/useI18n.js\";\nimport type { FormOptions } from \"../../interfaces/index.js\";\nimport { getComponent, registerComponent } from \"../../registries/components\";\nimport type { Select as DefaultSelect } from \"../forms/select/Select\";\nimport type { PaginationButton as DefaultPaginationButton } from \"./PaginationButton\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"./utils/getPageNumbers.js\";\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n canPreviousPage: boolean;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: number[];\n pageSize: number;\n rowCount?: number;\n layout?: \"html5\" | \"react\" | \"choicesjs\";\n i18n?: FormOptions[\"i18n\"];\n onPageIndexChange: (pageIndex: number) => void;\n onClickPreviousPage: () => void;\n onClickNextPage: () => void;\n onPageSizeChange: (pageSize: number) => void;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n onPageIndexChange,\n canPreviousPage,\n onClickPreviousPage,\n onClickNextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n onPageSizeChange,\n rowCount\n } = props;\n const { t } = useI18n(props.i18n);\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n\n const options: any[] = pageSizes.map((value) => ({ value, label: value }));\n const Select = getComponent<typeof DefaultSelect>(\"Select\");\n const PaginationButton = getComponent<typeof DefaultPaginationButton>(\"PaginationButton\");\n\n return (\n <nav aria-label='Page navigation' className={clsx(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={clsx(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => onClickPreviousPage()}>\n {t(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={clsx(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => onPageIndexChange(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={clsx(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => onClickNextPage()}>\n {t(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select<number>\n name={\"page\"}\n value={pageSize}\n options={options}\n multiple={false}\n layout={props.layout}\n onChange={(_, value) => {\n onPageSizeChange(+value);\n }}\n />\n <span className={\"ml-3\"}>{t(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 mr-3 flex items-center\"}>\n <span>{t(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n {rowCount !== undefined && (\n <li className={\"mb-3 flex items-center\"} data-testid='pagination-total-items'>\n {t(\"Total\")}: <strong className='mx-1'>{new Intl.NumberFormat(undefined).format(rowCount)}</strong> {t(\"items\")}\n </li>\n )}\n </nav>\n );\n}\n\nregisterComponent(\"Pagination\", Pagination);\n"],"names":["Pagination","props","className","pageSizes","onPageIndexChange","canPreviousPage","onClickPreviousPage","onClickNextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","onPageSizeChange","rowCount","t","useI18n","pageNumbers","getPageNumbers","options","value","Select","getComponent","PaginationButton","jsxs","clsx","jsx","page","LEFT_PAGE","RIGHT_PAGE","active","_","registerComponent"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { c as
|
|
3
|
-
import { registerComponent as
|
|
2
|
+
import { c as s } from "../../chunks/clsx.js";
|
|
3
|
+
import { registerComponent as m } from "../../registries/components.js";
|
|
4
4
|
function c(t) {
|
|
5
5
|
const { component: n = "button", children: a, disabled: o, active: i, ...e } = t;
|
|
6
6
|
return /* @__PURE__ */ r(
|
|
@@ -9,12 +9,12 @@ function c(t) {
|
|
|
9
9
|
...e,
|
|
10
10
|
"data-testid": "pagination-button",
|
|
11
11
|
disabled: o,
|
|
12
|
-
className:
|
|
12
|
+
className: s("page-link", o ? "disabled" : "", "", t.className),
|
|
13
13
|
children: a
|
|
14
14
|
}
|
|
15
15
|
);
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
m("PaginationButton", c);
|
|
18
18
|
export {
|
|
19
19
|
c as PaginationButton
|
|
20
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationButton.js","sources":["../../../src/molecules/pagination/PaginationButton.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"PaginationButton.js","sources":["../../../src/molecules/pagination/PaginationButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { PropsWithChildren } from \"react\";\n\nimport { registerComponent } from \"../../registries/components\";\n\nexport function PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={clsx(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nregisterComponent(\"PaginationButton\", PaginationButton);\n"],"names":["PaginationButton","props","Component","children","disabled","active","otherProps","jsx","clsx","registerComponent"],"mappings":";;;AAKO,SAASA,EACdC,GAQA;AACA,QAAM,EAAE,WAAWC,IAAY,UAAU,UAAAC,GAAU,UAAAC,GAAU,QAAAC,GAAQ,GAAGC,EAAA,IAAeL;AAEvF,SACE,gBAAAM;AAAA,IAACL;AAAA,IAAA;AAAA,MACE,GAAGI;AAAA,MACJ,eAAY;AAAA,MACZ,UAAAF;AAAA,MACA,WAAWI,EAAK,aAAaJ,IAAW,aAAa,IAAa,IAASH,EAAM,SAAS;AAAA,MAEzF,UAAAE;AAAA,IAAA;AAAA,EAAA;AAGP;AAEAM,EAAkB,oBAAoBT,CAAgB;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as l, jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import { createElement as p } from "react";
|
|
3
3
|
import { flexRender as b } from "@tanstack/react-table";
|
|
4
|
-
import { c as x } from "../../chunks/
|
|
4
|
+
import { c as x } from "../../chunks/clsx.js";
|
|
5
5
|
import { getComponent as r } from "../../registries/components.js";
|
|
6
6
|
import { useTable as f } from "./hooks/useTable.js";
|
|
7
7
|
function w({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../src/molecules/table/Table.tsx"],"sourcesContent":["import { flexRender } from \"@tanstack/react-table\";\nimport
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../src/molecules/table/Table.tsx"],"sourcesContent":["import { flexRender } from \"@tanstack/react-table\";\nimport clsx from \"clsx\";\nimport { PropsWithChildren } from \"react\";\n\nimport type { JSONRecord } from \"../../interfaces/JSONRecord.js\";\nimport { getComponent } from \"../../registries/components\";\nimport type { Pagination as DefaultPagination } from \"../pagination/Pagination\";\nimport type { DefaultCellFooter } from \"./components/DefaultCellFooter\";\nimport type { DefaultCellHeader } from \"./components/DefaultCellHeader\";\nimport { useTable, UseTableProps } from \"./hooks/useTable\";\n\nexport interface TableProps<Data extends object = JSONRecord> extends UseTableProps<Data> {\n className?: string;\n enableFooter?: boolean;\n enablePagination?: boolean;\n}\n\nexport function Table<Data extends object = JSONRecord>({\n className,\n enableFooter,\n enablePagination = true,\n children,\n ...props\n}: PropsWithChildren<TableProps<Data>>) {\n const { tableInstance, i18n } = useTable<Data>(props);\n const CellHeader = getComponent<typeof DefaultCellHeader>(\"CellHeader\");\n const CellFooter = getComponent<typeof DefaultCellFooter>(\"CellFooter\");\n const Pagination = getComponent<typeof DefaultPagination>(\"Pagination\");\n\n const { pagination } = tableInstance.getState();\n\n return (\n <div className={clsx(\"table-group\", className)}>\n <div className='table-group-body'>\n <table className='table table-striped table-hover'>\n <thead>\n {tableInstance.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const sort = header.column.getIsSorted();\n return (\n <th\n data-testid={`head-cell-${header.id}`}\n key={header.id}\n aria-sort={sort ? (sort === \"asc\" ? \"ascending\" : \"descending\") : \"none\"}\n >\n {header.isPlaceholder ? null : <CellHeader header={header} i18n={i18n} />}\n </th>\n );\n })}\n </tr>\n ))}\n </thead>\n <tbody>\n {tableInstance.getRowModel().rows.map((row) => {\n return (\n <tr key={row.id} data-testid={`body-row-${row.id}`}>\n {row\n .getVisibleCells()\n .filter((cell) => !cell.column.columnDef.meta?.hidden)\n .map((cell) => {\n return (\n <td\n onClick={() => props.onClick?.(cell.row.original, { action: \"row\" })}\n {...cell.column.columnDef?.meta?.cellProps}\n key={cell.id}\n data-testid={`body-cell-${cell.id}`}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n {enableFooter && (\n <tfoot>\n {tableInstance.getFooterGroups().map((footerGroup) => (\n <tr key={footerGroup.id}>\n {footerGroup.headers.map((header) => (\n <th key={header.id}>{header.isPlaceholder ? null : <CellFooter header={header} i18n={i18n} />}</th>\n ))}\n </tr>\n ))}\n </tfoot>\n )}\n </table>\n </div>\n <div className='table-group-footer'>\n {props.data.length && pagination && enablePagination ? (\n <Pagination\n className={\"flex-1\"}\n canNextPage={tableInstance.getCanNextPage()}\n canPreviousPage={tableInstance.getCanPreviousPage()}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n pageSizes={props.pageSizes}\n i18n={props.i18n}\n pageCount={tableInstance.getPageCount()}\n rowCount={props.rowCount}\n onPageIndexChange={(page) => tableInstance.setPageIndex(page)}\n onClickPreviousPage={() => tableInstance.previousPage()}\n onClickNextPage={() => tableInstance.nextPage()}\n onPageSizeChange={(pageSize) => tableInstance.setPageSize(pageSize)}\n />\n ) : null}\n <div>{children}</div>\n </div>\n </div>\n );\n}\n"],"names":["Table","className","enableFooter","enablePagination","children","props","tableInstance","i18n","useTable","CellHeader","getComponent","CellFooter","Pagination","pagination","clsx","jsx","jsxs","headerGroup","header","sort","row","cell","createElement","flexRender","footerGroup","page","pageSize"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as o, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { flexRender as d } from "@tanstack/react-table";
|
|
3
|
-
import { c as t } from "../../../chunks/
|
|
3
|
+
import { c as t } from "../../../chunks/clsx.js";
|
|
4
4
|
import { registerComponent as g, getComponent as n } from "../../../registries/components.js";
|
|
5
5
|
function u(l) {
|
|
6
6
|
const { header: e, i18n: c } = l, a = n("ArrowSort"), i = n("Filter"), m = e.column.getCanSort(), s = e.column.getCanFilter();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultCellHeader.js","sources":["../../../../src/molecules/table/components/DefaultCellHeader.tsx"],"sourcesContent":["import { flexRender, type Header } from \"@tanstack/react-table\";\nimport
|
|
1
|
+
{"version":3,"file":"DefaultCellHeader.js","sources":["../../../../src/molecules/table/components/DefaultCellHeader.tsx"],"sourcesContent":["import { flexRender, type Header } from \"@tanstack/react-table\";\nimport clsx from \"clsx\";\n\nimport { getComponent, registerComponent } from \"../../../registries/components\";\nimport type { DefaultArrowSort } from \"./DefaultArrowSort\";\nimport type { DefaultFilter } from \"./DefaultFilter\";\n\nexport interface DefaultCellHeaderProps<Data = any> {\n header: Header<Data, unknown>;\n i18n?: (f: string) => string;\n}\n\nexport function DefaultCellHeader<Data = any>(props: DefaultCellHeaderProps<Data>) {\n const { header, i18n } = props;\n\n const ArrowSort = getComponent<typeof DefaultArrowSort>(\"ArrowSort\");\n const Filter = getComponent<typeof DefaultFilter>(\"Filter\");\n const canSort = header.column.getCanSort();\n const canFilter = header.column.getCanFilter();\n\n return (\n <div className={clsx(\"table-cell-header\", {})}>\n <div\n className={clsx(\"table-cell-header__label\", {\n \"cursor-pointer select-none\": header.column.getCanSort()\n })}\n {...(canSort\n ? {\n onClick: header.column.getToggleSortingHandler()\n }\n : {})}\n >\n <span>{flexRender(header.column.columnDef.header, header.getContext())}</span>\n\n <ArrowSort header={header} />\n </div>\n {canFilter && <Filter header={header} i18n={i18n} />}\n </div>\n );\n}\n\nregisterComponent(\"CellHeader\", DefaultCellHeader);\n"],"names":["DefaultCellHeader","props","header","i18n","ArrowSort","getComponent","Filter","canSort","canFilter","clsx","jsxs","jsx","registerComponent"],"mappings":";;;;AAYO,SAASA,EAA8BC,GAAqC;AACjF,QAAM,EAAE,QAAAC,GAAQ,MAAAC,EAAA,IAASF,GAEnBG,IAAYC,EAAsC,WAAW,GAC7DC,IAASD,EAAmC,QAAQ,GACpDE,IAAUL,EAAO,OAAO,WAAA,GACxBM,IAAYN,EAAO,OAAO,aAAA;AAEhC,2BACG,OAAA,EAAI,WAAWO,EAAK,qBAAqB,CAAA,CAAE,GAC1C,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD,EAAK,4BAA4B;AAAA,UAC1C,8BAA8BP,EAAO,OAAO,WAAA;AAAA,QAAW,CACxD;AAAA,QACA,GAAIK,IACD;AAAA,UACE,SAASL,EAAO,OAAO,wBAAA;AAAA,QAAwB,IAEjD,CAAA;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAS,EAAC,QAAA,EAAM,YAAWT,EAAO,OAAO,UAAU,QAAQA,EAAO,WAAA,CAAY,EAAA,CAAE;AAAA,UAEvE,gBAAAS,EAACP,KAAU,QAAAF,EAAA,CAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAE5BM,KAAa,gBAAAG,EAACL,GAAA,EAAO,QAAAJ,GAAgB,MAAAC,EAAA,CAAY;AAAA,EAAA,GACpD;AAEJ;AAEAS,EAAkB,cAAcZ,CAAiB;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as n, jsx as i, Fragment as x } from "react/jsx-runtime";
|
|
2
|
-
import { c as d } from "../../../chunks/
|
|
2
|
+
import { c as d } from "../../../chunks/clsx.js";
|
|
3
3
|
import { registerComponent as C } from "../../../registries/components.js";
|
|
4
4
|
import { iconClass as N } from "../../../utils/iconClass.js";
|
|
5
5
|
import { stopPropagationWrapper as O } from "../../../utils/stopPropagationWrapper.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultOperationButton.js","sources":["../../../../src/molecules/table/components/DefaultOperationButton.tsx"],"sourcesContent":["import { CellContext } from \"@tanstack/react-table\";\nimport cx from \"
|
|
1
|
+
{"version":3,"file":"DefaultOperationButton.js","sources":["../../../../src/molecules/table/components/DefaultOperationButton.tsx"],"sourcesContent":["import { CellContext } from \"@tanstack/react-table\";\nimport cx from \"clsx\";\nimport { HTMLAttributes } from \"react\";\n\nimport { type CellMetadata, Operation } from \"../../../interfaces\";\nimport type { JSONRecord } from \"../../../interfaces/JSONRecord.js\";\nimport { registerComponent } from \"../../../registries/components\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps<Data extends object = JSONRecord> extends Omit<HTMLAttributes<HTMLButtonElement>, \"onClick\"> {\n operation: Operation<Data>;\n info: CellContext<Data, unknown>;\n metadata?: CellMetadata;\n onClick: () => void;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton<Data extends object = JSONRecord>(props: OperationButtonProps<Data>) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { i18n = (f: string) => f, onClick, operation, info, ...extraProps } = props;\n const { className = \"btn\", buttonSize = \"xs\", buttonType = \"primary\", buttonOutline, action, title = \"\", icon = \"\" } = operation;\n\n return (\n <button\n {...extraProps}\n aria-label={\"Operation button: \" + (title || action)}\n className={cx(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick())}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n\nregisterComponent(\"OperationButton\", DefaultOperationButton);\n"],"names":["DefaultOperationButton","props","i18n","onClick","operation","info","extraProps","className","buttonSize","buttonType","buttonOutline","action","title","icon","jsxs","cx","stopPropagationWrapper","Fragment","jsx","iconClass","registerComponent"],"mappings":";;;;;AAkBO,SAASA,EAAyDC,GAAmC;AAE1G,QAAM,EAAE,MAAAC,IAAO,CAAC,MAAc,GAAG,SAAAC,GAAS,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,IAAeL,GACvE,EAAE,WAAAM,IAAY,OAAO,YAAAC,IAAa,MAAM,YAAAC,IAAa,WAAW,eAAAC,GAAe,QAAAC,GAAQ,OAAAC,IAAQ,IAAI,MAAAC,IAAO,OAAOT;AAEvH,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGR;AAAA,MACJ,cAAY,wBAAwBM,KAASD;AAAA,MAC7C,WAAWI,EAAGR,GAAW,CAAC,OAAOG,KAAiB,WAAWD,CAAU,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAAG,OAAOD,CAAU,EAAE;AAAA,MACvH,SAASQ,EAAuB,MAAMb,GAAS;AAAA,MAE9C,UAAA;AAAA,QAAAU,IACC,gBAAAC,EAAAG,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAC,EAAC,KAAA,EAAE,WAAWC,EAAU,QAAWN,CAAI,GAAG;AAAA,UAAE;AAAA,UAAED,KAAS;AAAA,QAAA,EAAA,CACzD,IACE;AAAA,QACHA,KAAS,gBAAAM,EAAC,QAAA,EAAK,WAAWL,KAAQD,IAAQ,SAAS,IAAK,UAAAV,EAAKU,CAAK,EAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG3E;AAEAQ,EAAkB,mBAAmBpB,CAAsB;"}
|
|
@@ -3,7 +3,7 @@ import { SelectOptionProps, SelectProps } from '../../forms/select/Select.interf
|
|
|
3
3
|
import { FilterProps } from '../components/DefaultFilter';
|
|
4
4
|
export type FilterVariants = "text" | "range" | "select" | "boolean";
|
|
5
5
|
export interface FilterBaseOptions extends Record<string, unknown> {
|
|
6
|
-
variant:
|
|
6
|
+
variant: FilterVariants;
|
|
7
7
|
}
|
|
8
8
|
export interface FilterTextOptions extends FilterBaseOptions {
|
|
9
9
|
variant: "text";
|
|
@@ -18,7 +18,7 @@ export interface FilterRangeOptions extends FilterBaseOptions {
|
|
|
18
18
|
}
|
|
19
19
|
export interface FilterSelectOptions<Data extends RowData = any> extends FilterBaseOptions, Omit<SelectProps<string>, "options"> {
|
|
20
20
|
variant: "select";
|
|
21
|
-
options?: SelectOptionProps<string>[] | ((props: FilterProps<Data, FilterSelectOptions>) => SelectOptionProps<string>
|
|
21
|
+
options?: SelectOptionProps<string>[] | ((props: FilterProps<Data, FilterSelectOptions>) => SelectOptionProps<string>[]);
|
|
22
22
|
}
|
|
23
23
|
export interface FilterBooleanOptions extends FilterBaseOptions {
|
|
24
24
|
variant: "boolean";
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { SelectOptionProps } from '../../../molecules/forms/select/Select.interface';
|
|
2
|
-
import {
|
|
2
|
+
import { DefaultFilterProps } from '../components/DefaultFilter';
|
|
3
3
|
import { FilterSelectOptions } from '../filters/Filters';
|
|
4
|
-
|
|
4
|
+
type UseUniqValuesProps<Data = any> = DefaultFilterProps<Data> & {
|
|
5
|
+
options?: FilterSelectOptions<Data>;
|
|
6
|
+
};
|
|
7
|
+
export declare function useUniqValues<Data = any>({ header, options }: UseUniqValuesProps<Data>): SelectOptionProps[];
|
|
8
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUniqValues.js","sources":["../../../../src/molecules/table/hooks/useUniqValues.tsx"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport { SelectOptionProps } from \"../../../molecules/forms/select/Select.interface\";\nimport type {
|
|
1
|
+
{"version":3,"file":"useUniqValues.js","sources":["../../../../src/molecules/table/hooks/useUniqValues.tsx"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport { SelectOptionProps } from \"../../../molecules/forms/select/Select.interface\";\nimport type { DefaultFilterProps } from \"../components/DefaultFilter\";\nimport { FilterSelectOptions } from \"../filters/Filters\";\n\ntype UseUniqValuesProps<Data = any> = DefaultFilterProps<Data> & {\n options?: FilterSelectOptions<Data>;\n};\n\nexport function useUniqValues<Data = any>({ header, options }: UseUniqValuesProps<Data>): SelectOptionProps[] {\n return useMemo(() => {\n const providedOptions = options?.options;\n\n if (providedOptions) {\n if (typeof providedOptions === \"function\") {\n return providedOptions({ header, options: options as FilterSelectOptions<Data> });\n }\n\n return providedOptions;\n }\n\n switch (header.column.columnDef.meta?.filter?.variant) {\n case \"boolean\":\n return [\n { label: header.column.columnDef.meta?.labels?.[\"yes\"] || \"Yes\", value: \"true\" },\n {\n label: header.column.columnDef.meta?.labels?.[\"no\"] || header.column.columnDef.meta?.labels?.[\"No\"] || \"No\",\n value: \"false\"\n }\n ];\n\n default:\n return Array.from(header.column.getFacetedUniqueValues().keys())\n .flat()\n .filter((value) => value !== undefined && value !== null)\n .map((value) => String(value))\n .sort()\n .slice(0, 5000)\n .map((value) => ({\n label: value,\n value\n }));\n }\n }, [header, options]);\n}\n"],"names":["useUniqValues","header","options","useMemo","providedOptions","value"],"mappings":";AAUO,SAASA,EAA0B,EAAE,QAAAC,GAAQ,SAAAC,KAA0D;AAC5G,SAAOC,EAAQ,MAAM;AACnB,UAAMC,IAAkBF,GAAS;AAEjC,QAAIE;AACF,aAAI,OAAOA,KAAoB,aACtBA,EAAgB,EAAE,QAAAH,GAAQ,SAAAC,GAA+C,IAG3EE;AAGT,YAAQH,EAAO,OAAO,UAAU,MAAM,QAAQ,SAAA;AAAA,MAC5C,KAAK;AACH,eAAO;AAAA,UACL,EAAE,OAAOA,EAAO,OAAO,UAAU,MAAM,QAAS,OAAU,OAAO,OAAO,OAAA;AAAA,UACxE;AAAA,YACE,OAAOA,EAAO,OAAO,UAAU,MAAM,QAAS,MAASA,EAAO,OAAO,UAAU,MAAM,QAAS,MAAS;AAAA,YACvG,OAAO;AAAA,UAAA;AAAA,QACT;AAAA,MAGJ;AACE,eAAO,MAAM,KAAKA,EAAO,OAAO,yBAAyB,KAAA,CAAM,EAC5D,OACA,OAAO,CAACI,MAAiCA,KAAU,IAAI,EACvD,IAAI,CAACA,MAAU,OAAOA,CAAK,CAAC,EAC5B,KAAA,EACA,MAAM,GAAG,GAAI,EACb,IAAI,CAACA,OAAW;AAAA,UACf,OAAOA;AAAA,UACP,OAAAA;AAAA,QAAA,EACA;AAAA,IAAA;AAAA,EAEV,GAAG,CAACJ,GAAQC,CAAO,CAAC;AACtB;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { createColumnHelper as
|
|
2
|
-
import { c as
|
|
3
|
-
import { g as
|
|
4
|
-
import { r as
|
|
5
|
-
import { getComponent as
|
|
6
|
-
var
|
|
7
|
-
const
|
|
1
|
+
import { createColumnHelper as C } from "@tanstack/react-table";
|
|
2
|
+
import { c as g } from "../../../chunks/cloneDeep.js";
|
|
3
|
+
import { g as b } from "../../../chunks/_commonjsHelpers.js";
|
|
4
|
+
import { r as x } from "../../../chunks/get.js";
|
|
5
|
+
import { getComponent as h } from "../../../registries/components.js";
|
|
6
|
+
var K = x();
|
|
7
|
+
const k = /* @__PURE__ */ b(K), E = {
|
|
8
8
|
number: "range",
|
|
9
9
|
currency: "range",
|
|
10
10
|
checkbox: "boolean"
|
|
11
|
-
},
|
|
11
|
+
}, F = {
|
|
12
12
|
date: "date",
|
|
13
13
|
datetime: "date",
|
|
14
14
|
number: "number",
|
|
@@ -21,46 +21,45 @@ function m(r) {
|
|
|
21
21
|
if ("accessorKey" in r && typeof r.accessorKey == "string")
|
|
22
22
|
return r.accessorKey;
|
|
23
23
|
}
|
|
24
|
-
function
|
|
24
|
+
function w({
|
|
25
25
|
form: r,
|
|
26
26
|
columns: p = [],
|
|
27
27
|
prefix: l = "data."
|
|
28
28
|
}) {
|
|
29
|
-
const d =
|
|
29
|
+
const d = C(), s = g(p);
|
|
30
30
|
return [...r.components.flatMap((e) => e.type === "tabs" ? e.components?.flatMap((t) => t.components) : [e]).filter((e) => e?.tableView).map((e) => {
|
|
31
|
-
const t = e,
|
|
32
|
-
const c = m(
|
|
31
|
+
const t = e, n = `${l}${t.key}`, a = /* @__PURE__ */ new Set([t.key, n]), i = s.findIndex((y) => {
|
|
32
|
+
const c = m(y);
|
|
33
33
|
return c ? a.has(c) : !1;
|
|
34
34
|
});
|
|
35
|
-
let
|
|
36
|
-
|
|
35
|
+
let o = s[i];
|
|
36
|
+
o && s.splice(i, 1);
|
|
37
|
+
const u = E[t.type] || "text", f = o?.meta?.filter?.variant ? o.meta.filter : { variant: u };
|
|
38
|
+
return d.accessor(n, {
|
|
37
39
|
header: (t.label || t.title || t.key)?.replace(/:/, ""),
|
|
38
40
|
meta: {
|
|
39
|
-
type:
|
|
40
|
-
filter:
|
|
41
|
-
|
|
42
|
-
variant: K[t.type] || "text"
|
|
43
|
-
},
|
|
44
|
-
...s?.meta || {}
|
|
41
|
+
type: F[t.type] || t.type,
|
|
42
|
+
filter: f,
|
|
43
|
+
...o?.meta || {}
|
|
45
44
|
},
|
|
46
|
-
...
|
|
45
|
+
...o || {}
|
|
47
46
|
});
|
|
48
|
-
}), ...
|
|
49
|
-
const
|
|
50
|
-
return
|
|
47
|
+
}), ...s].reduce((e, t) => {
|
|
48
|
+
const n = m(t);
|
|
49
|
+
return n && e.some((a) => m(a) === n) || e.push(t), e;
|
|
51
50
|
}, []).map((e, t) => {
|
|
52
|
-
const
|
|
51
|
+
const n = h([`Cell.${e.id}`, `Cell.${e.meta?.type}`, "Cell"]);
|
|
53
52
|
return {
|
|
54
53
|
...e,
|
|
55
54
|
meta: {
|
|
56
55
|
...e?.meta,
|
|
57
|
-
order:
|
|
56
|
+
order: k(e, "meta.order", t * 10)
|
|
58
57
|
},
|
|
59
|
-
cell: e.cell ||
|
|
58
|
+
cell: e.cell || n
|
|
60
59
|
};
|
|
61
60
|
}).sort((e, t) => e.meta.order > t.meta.order ? 1 : -1);
|
|
62
61
|
}
|
|
63
62
|
export {
|
|
64
|
-
|
|
63
|
+
w as mapFormToColumns
|
|
65
64
|
};
|
|
66
65
|
//# sourceMappingURL=mapFormToColumns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFormToColumns.js","sources":["../../../../src/molecules/table/utils/mapFormToColumns.tsx"],"sourcesContent":["import \"../interfaces/extends\";\n\nimport { ColumnDef, ColumnDefResolved, createColumnHelper } from \"@tanstack/react-table\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport get from \"lodash/get\";\n\nimport type { ComponentType, FormType } from \"../../../interfaces\";\nimport { getComponent } from \"../../../registries/components\";\nimport type { DefaultCell } from \"../components/DefaultCell\";\nimport type { FilterVariants } from \"../filters/Filters\";\n\nconst MAP_FILTER_TYPES: Record<string, FilterVariants> = {\n number: \"range\",\n currency: \"range\",\n checkbox: \"boolean\"\n} as const;\n\nconst MAP_TYPES = {\n date: \"date\",\n datetime: \"date\",\n number: \"number\",\n currency: \"currency\",\n checkbox: \"boolean\"\n} as const;\n\nfunction getColumnIdentity<Data>(column: ColumnDef<Data, any> | ColumnDefResolved<Data, any>) {\n if (\"id\" in column && typeof column.id === \"string\") {\n return column.id;\n }\n\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n return column.accessorKey;\n }\n\n return undefined;\n}\n\nexport function mapFormToColumns<Data = any>({\n form,\n columns = [],\n prefix = \"data.\"\n}: {\n form: FormType;\n columns?: ColumnDefResolved<Data, any>[];\n prefix?: string;\n}): ColumnDef<Data, any>[] {\n const columnHelper = createColumnHelper<Data>();\n const columnsToKeep = cloneDeep(columns);\n\n const columnsFromComponents = form.components\n .flatMap((component) => {\n if (component.type === \"tabs\") {\n return component.components?.flatMap((subComponent: ComponentType) => subComponent.components);\n }\n\n return [component];\n })\n .filter((component) => component?.tableView)\n .map((c) => {\n const component = c as ComponentType;\n const componentColumnKey = `${prefix}${component.key}`;\n const matchingKeys = new Set([component.key, componentColumnKey]);\n\n const columnIndex = columnsToKeep.findIndex((column) => {\n const identity = getColumnIdentity(column);\n\n return identity ? matchingKeys.has(identity) : false;\n });\n\n let column = columnsToKeep[columnIndex];\n\n if (column) {\n columnsToKeep.splice(columnIndex, 1);\n }\n\n return columnHelper.accessor(componentColumnKey as any, {\n header: (component.label || component.title || component.key)?.replace(/:/, \"\"),\n meta: {\n type: (MAP_TYPES[component.type as keyof typeof MAP_TYPES] || component.type) as any,\n filter
|
|
1
|
+
{"version":3,"file":"mapFormToColumns.js","sources":["../../../../src/molecules/table/utils/mapFormToColumns.tsx"],"sourcesContent":["import \"../interfaces/extends\";\n\nimport { ColumnDef, ColumnDefResolved, createColumnHelper } from \"@tanstack/react-table\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport get from \"lodash/get\";\n\nimport type { ComponentType, FormType } from \"../../../interfaces\";\nimport { getComponent } from \"../../../registries/components\";\nimport type { DefaultCell } from \"../components/DefaultCell\";\nimport type { FilterVariants } from \"../filters/Filters\";\n\nconst MAP_FILTER_TYPES: Record<string, FilterVariants> = {\n number: \"range\",\n currency: \"range\",\n checkbox: \"boolean\"\n} as const;\n\nconst MAP_TYPES = {\n date: \"date\",\n datetime: \"date\",\n number: \"number\",\n currency: \"currency\",\n checkbox: \"boolean\"\n} as const;\n\nfunction getColumnIdentity<Data>(column: ColumnDef<Data, any> | ColumnDefResolved<Data, any>) {\n if (\"id\" in column && typeof column.id === \"string\") {\n return column.id;\n }\n\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n return column.accessorKey;\n }\n\n return undefined;\n}\n\nexport function mapFormToColumns<Data = any>({\n form,\n columns = [],\n prefix = \"data.\"\n}: {\n form: FormType;\n columns?: ColumnDefResolved<Data, any>[];\n prefix?: string;\n}): ColumnDef<Data, any>[] {\n const columnHelper = createColumnHelper<Data>();\n const columnsToKeep = cloneDeep(columns);\n\n const columnsFromComponents = form.components\n .flatMap((component) => {\n if (component.type === \"tabs\") {\n return component.components?.flatMap((subComponent: ComponentType) => subComponent.components);\n }\n\n return [component];\n })\n .filter((component) => component?.tableView)\n .map((c) => {\n const component = c as ComponentType;\n const componentColumnKey = `${prefix}${component.key}`;\n const matchingKeys = new Set([component.key, componentColumnKey]);\n\n const columnIndex = columnsToKeep.findIndex((column) => {\n const identity = getColumnIdentity(column);\n\n return identity ? matchingKeys.has(identity) : false;\n });\n\n let column = columnsToKeep[columnIndex];\n\n if (column) {\n columnsToKeep.splice(columnIndex, 1);\n }\n\n const mappedVariant = MAP_FILTER_TYPES[component.type as keyof typeof MAP_FILTER_TYPES] || \"text\";\n const filter = column?.meta?.filter?.variant ? column.meta.filter : { variant: mappedVariant };\n\n return columnHelper.accessor(componentColumnKey as any, {\n header: (component.label || component.title || component.key)?.replace(/:/, \"\"),\n meta: {\n type: (MAP_TYPES[component.type as keyof typeof MAP_TYPES] || component.type) as any,\n filter,\n ...(column?.meta || {})\n },\n ...(column || {})\n });\n });\n\n const dedupedColumns = [...columnsFromComponents, ...(columnsToKeep as any[])].reduce<ColumnDef<Data, any>[]>((acc, column) => {\n const identity = getColumnIdentity(column);\n\n if (identity && acc.some((existingColumn) => getColumnIdentity(existingColumn) === identity)) {\n return acc;\n }\n\n acc.push(column);\n return acc;\n }, []);\n\n const mergedColumns = dedupedColumns.map((column, index) => {\n const Cell = getComponent<typeof DefaultCell>([`Cell.${column.id}`, `Cell.${column.meta?.type}`, \"Cell\"]);\n\n return {\n ...column,\n meta: {\n ...column?.meta,\n order: get(column, \"meta.order\", index * 10)\n },\n cell: column.cell || Cell\n };\n });\n\n return mergedColumns.sort((a, b) => (a.meta.order > b.meta.order ? 1 : -1)) as ColumnDef<Data, any>[];\n}\n"],"names":["MAP_FILTER_TYPES","MAP_TYPES","getColumnIdentity","column","mapFormToColumns","form","columns","prefix","columnHelper","createColumnHelper","columnsToKeep","cloneDeep","component","subComponent","c","componentColumnKey","matchingKeys","columnIndex","identity","mappedVariant","filter","acc","existingColumn","index","Cell","getComponent","get","a","b"],"mappings":";;;;;;gCAWMA,IAAmD;AAAA,EACvD,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AACZ,GAEMC,IAAY;AAAA,EAChB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AACZ;AAEA,SAASC,EAAwBC,GAA6D;AAC5F,MAAI,QAAQA,KAAU,OAAOA,EAAO,MAAO;AACzC,WAAOA,EAAO;AAGhB,MAAI,iBAAiBA,KAAU,OAAOA,EAAO,eAAgB;AAC3D,WAAOA,EAAO;AAIlB;AAEO,SAASC,EAA6B;AAAA,EAC3C,MAAAC;AAAA,EACA,SAAAC,IAAU,CAAA;AAAA,EACV,QAAAC,IAAS;AACX,GAI2B;AACzB,QAAMC,IAAeC,EAAA,GACfC,IAAgBC,EAAUL,CAAO;AAkEvC,SAxBuB,CAAC,GAxCMD,EAAK,WAChC,QAAQ,CAACO,MACJA,EAAU,SAAS,SACdA,EAAU,YAAY,QAAQ,CAACC,MAAgCA,EAAa,UAAU,IAGxF,CAACD,CAAS,CAClB,EACA,OAAO,CAACA,MAAcA,GAAW,SAAS,EAC1C,IAAI,CAACE,MAAM;AACV,UAAMF,IAAYE,GACZC,IAAqB,GAAGR,CAAM,GAAGK,EAAU,GAAG,IAC9CI,IAAe,oBAAI,IAAI,CAACJ,EAAU,KAAKG,CAAkB,CAAC,GAE1DE,IAAcP,EAAc,UAAU,CAACP,MAAW;AACtD,YAAMe,IAAWhB,EAAkBC,CAAM;AAEzC,aAAOe,IAAWF,EAAa,IAAIE,CAAQ,IAAI;AAAA,IACjD,CAAC;AAED,QAAIf,IAASO,EAAcO,CAAW;AAEtC,IAAId,KACFO,EAAc,OAAOO,GAAa,CAAC;AAGrC,UAAME,IAAgBnB,EAAiBY,EAAU,IAAqC,KAAK,QACrFQ,IAASjB,GAAQ,MAAM,QAAQ,UAAUA,EAAO,KAAK,SAAS,EAAE,SAASgB,EAAA;AAE/E,WAAOX,EAAa,SAASO,GAA2B;AAAA,MACtD,SAASH,EAAU,SAASA,EAAU,SAASA,EAAU,MAAM,QAAQ,KAAK,EAAE;AAAA,MAC9E,MAAM;AAAA,QACJ,MAAOX,EAAUW,EAAU,IAA8B,KAAKA,EAAU;AAAA,QACxE,QAAAQ;AAAA,QACA,GAAIjB,GAAQ,QAAQ,CAAA;AAAA,MAAC;AAAA,MAEvB,GAAIA,KAAU,CAAA;AAAA,IAAC,CAChB;AAAA,EACH,CAAC,GAE+C,GAAIO,CAAuB,EAAE,OAA+B,CAACW,GAAKlB,MAAW;AAC7H,UAAMe,IAAWhB,EAAkBC,CAAM;AAEzC,WAAIe,KAAYG,EAAI,KAAK,CAACC,MAAmBpB,EAAkBoB,CAAc,MAAMJ,CAAQ,KAI3FG,EAAI,KAAKlB,CAAM,GACRkB;AAAA,EACT,GAAG,CAAA,CAAE,EAEgC,IAAI,CAAClB,GAAQoB,MAAU;AAC1D,UAAMC,IAAOC,EAAiC,CAAC,QAAQtB,EAAO,EAAE,IAAI,QAAQA,EAAO,MAAM,IAAI,IAAI,MAAM,CAAC;AAExG,WAAO;AAAA,MACL,GAAGA;AAAA,MACH,MAAM;AAAA,QACJ,GAAGA,GAAQ;AAAA,QACX,OAAOuB,EAAIvB,GAAQ,cAAcoB,IAAQ,EAAE;AAAA,MAAA;AAAA,MAE7C,MAAMpB,EAAO,QAAQqB;AAAA,IAAA;AAAA,EAEzB,CAAC,EAEoB,KAAK,CAACG,GAAGC,MAAOD,EAAE,KAAK,QAAQC,EAAE,KAAK,QAAQ,IAAI,EAAG;AAC5E;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as l, jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import { c as f } from "../../chunks/
|
|
2
|
+
import { c as f } from "../../chunks/clsx.js";
|
|
3
3
|
import { useRef as b, useEffect as g, useCallback as n } from "react";
|
|
4
4
|
import { useKeyboardControls as v } from "../../hooks/useKeyboardControls.js";
|
|
5
5
|
import { registerComponent as A } from "../../registries/components.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sources":["../../../src/molecules/tabs/Tab.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Tab.js","sources":["../../../src/molecules/tabs/Tab.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { PropsWithChildren, useCallback, useEffect, useRef } from \"react\";\n\nimport { useKeyboardControls } from \"../../hooks/useKeyboardControls.js\";\nimport { registerComponent } from \"../../registries/components.js\";\nimport { iconClass } from \"../../utils/iconClass.js\";\nimport { useActiveTab, useRegisterTabControl, useTabsUid } from \"./hooks/tabControl.js\";\n\nexport interface TabProps {\n icon?: string;\n isActive?: boolean;\n className?: string;\n after?: React.ReactNode;\n value: number;\n /**\n * on tab select handler\n */\n onClick?: (value: number) => void;\n}\n\nexport function Tab({ onClick, icon, value, children, className, after }: PropsWithChildren<TabProps>) {\n const uid = useTabsUid();\n const ref = useRef<HTMLButtonElement>(null);\n const activeTab = useActiveTab();\n const dispatch = useRegisterTabControl({ value, ref });\n const previousActiveTab = useRef(activeTab);\n\n const isActive = useRef(activeTab === value);\n isActive.current = activeTab === value;\n\n useEffect(() => {\n if (previousActiveTab.current !== activeTab && value === activeTab) {\n ref.current?.focus();\n onClick?.(value);\n }\n if (previousActiveTab.current !== activeTab) {\n previousActiveTab.current = activeTab;\n }\n }, [value, onClick, activeTab]);\n\n const start = useCallback(() => {\n dispatch({ type: \"start\" });\n }, [dispatch]);\n\n const end = useCallback(() => {\n dispatch({ type: \"end\" });\n }, [dispatch]);\n\n const up = useCallback(() => {\n dispatch({ type: \"previous\" });\n }, [dispatch]);\n\n const down = useCallback(() => {\n dispatch({ type: \"next\" });\n }, [dispatch]);\n\n const left = useCallback(() => {\n const isRTL = document.documentElement.dir === \"rtl\";\n\n dispatch({ type: isRTL ? \"next\" : \"previous\" });\n }, [dispatch]);\n\n const right = useCallback(() => {\n const isRTL = document.documentElement.dir === \"rtl\";\n\n dispatch({ type: isRTL ? \"previous\" : \"next\" });\n }, [dispatch]);\n\n const handleKeyDown = useKeyboardControls({\n start,\n end,\n up,\n down,\n left,\n right\n });\n\n const handleClick = useCallback(() => {\n dispatch({ type: \"update\", payload: value });\n }, [dispatch, value]);\n\n return (\n <div title={\"button-wrapper\"} className={clsx(\"tw-tabs__button-wrapper\", className, { \"-active\": isActive.current }, className)}>\n <button\n ref={ref}\n id={`Tab_${value}_${uid}`}\n data-name='Tab'\n title='button-tab'\n role='tab'\n aria-selected={isActive.current}\n aria-controls={`TabPanel_${value}_${uid}`}\n tabIndex={isActive.current ? 0 : -1}\n className={\"tw-tabs__button\"}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {icon && <i className={clsx(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className='tw-tabs__button-border' />\n </div>\n );\n}\n\nregisterComponent(\"Tab\", Tab);\n"],"names":["Tab","onClick","icon","value","children","className","after","uid","useTabsUid","ref","useRef","activeTab","useActiveTab","dispatch","useRegisterTabControl","previousActiveTab","isActive","useEffect","start","useCallback","end","up","down","left","isRTL","right","handleKeyDown","useKeyboardControls","handleClick","jsxs","clsx","jsx","iconClass","registerComponent"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { c as
|
|
3
|
-
import { registerComponent as
|
|
2
|
+
import { c as s } from "../../chunks/clsx.js";
|
|
3
|
+
import { registerComponent as b } from "../../registries/components.js";
|
|
4
4
|
import { useActiveTab as c, useTabsUid as m } from "./hooks/tabControl.js";
|
|
5
5
|
function d({ value: a, className: i, children: n }) {
|
|
6
6
|
const o = c(), t = m(), e = o === a;
|
|
@@ -13,14 +13,14 @@ function d({ value: a, className: i, children: n }) {
|
|
|
13
13
|
"aria-hidden": !e,
|
|
14
14
|
"aria-labelledby": `Tab_${a}_${t}`,
|
|
15
15
|
tabIndex: e ? 0 : -1,
|
|
16
|
-
className:
|
|
16
|
+
className: s("tw-tabs__panel", i, {
|
|
17
17
|
"-active": e
|
|
18
18
|
}),
|
|
19
19
|
children: n
|
|
20
20
|
}
|
|
21
21
|
);
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
b("TabPanel", d);
|
|
24
24
|
export {
|
|
25
25
|
d as TabPanel
|
|
26
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanel.js","sources":["../../../src/molecules/tabs/TabPanel.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"TabPanel.js","sources":["../../../src/molecules/tabs/TabPanel.tsx"],"sourcesContent":["import clsx from \"clsx\";\n\nimport { registerComponent } from \"../../registries/components.js\";\nimport { useActiveTab, useTabsUid } from \"./hooks/tabControl.js\";\n\nexport interface TabPanelProps {\n className?: string;\n /**\n * Tab panel index<br/>\n * _Can be **0** or **1** indexed_\n */\n value: number;\n}\n\nexport function TabPanel({ value, className, children }: React.PropsWithChildren<TabPanelProps>) {\n const tabSelected = useActiveTab();\n const uid = useTabsUid();\n const isActive = tabSelected === value;\n\n return (\n <div\n id={`TabPanel_${value}_${uid}`}\n data-name={`TabPanel_${value}`}\n role='tabpanel'\n aria-hidden={!isActive}\n aria-labelledby={`Tab_${value}_${uid}`}\n tabIndex={isActive ? 0 : -1}\n className={clsx(\"tw-tabs__panel\", className, {\n \"-active\": isActive\n })}\n >\n {children}\n </div>\n );\n}\n\nregisterComponent(\"TabPanel\", TabPanel);\n"],"names":["TabPanel","value","className","children","tabSelected","useActiveTab","uid","useTabsUid","isActive","jsx","clsx","registerComponent"],"mappings":";;;;AAcO,SAASA,EAAS,EAAE,OAAAC,GAAO,WAAAC,GAAW,UAAAC,KAAoD;AAC/F,QAAMC,IAAcC,EAAA,GACdC,IAAMC,EAAA,GACNC,IAAWJ,MAAgBH;AAEjC,SACE,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,YAAYR,CAAK,IAAIK,CAAG;AAAA,MAC5B,aAAW,YAAYL,CAAK;AAAA,MAC5B,MAAK;AAAA,MACL,eAAa,CAACO;AAAA,MACd,mBAAiB,OAAOP,CAAK,IAAIK,CAAG;AAAA,MACpC,UAAUE,IAAW,IAAI;AAAA,MACzB,WAAWE,EAAK,kBAAkBR,GAAW;AAAA,QAC3C,WAAWM;AAAA,MAAA,CACZ;AAAA,MAEA,UAAAL;AAAA,IAAA;AAAA,EAAA;AAGP;AAEAQ,EAAkB,YAAYX,CAAQ;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { c as i } from "../../chunks/
|
|
2
|
+
import { c as i } from "../../chunks/clsx.js";
|
|
3
3
|
import { registerComponent as m } from "../../registries/components.js";
|
|
4
4
|
import { TabsProvider as e } from "./context/TabControl.js";
|
|
5
5
|
function n({ style: t, selected: o, children: s, className: a }) {
|