@krosoft/react 0.0.300 → 0.0.302

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.
@@ -0,0 +1,17 @@
1
+ import type { JSX } from "react";
2
+ interface FlagIconProps {
3
+ /** Taille/forme de l'icône, typiquement `size-4` depuis la surface qui l'accueille. */
4
+ className?: string;
5
+ }
6
+ /**
7
+ * Drapeau français, dessiné en SVG.
8
+ *
9
+ * Les emoji drapeaux (🇫🇷) ne conviennent pas : sous Windows ils retombent sur les
10
+ * deux lettres du code pays (« FR ») faute de glyphe drapeau. Un SVG s'affiche partout.
11
+ *
12
+ * `slice` remplit une case carrée (`size-4`) en rognant symétriquement les bords,
13
+ * plutôt que de laisser le drapeau flotter au centre d'un cadre trop haut.
14
+ */
15
+ export declare const FlagFrIcon: ({ className }: FlagIconProps) => JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=FlagFrIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagFrIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/core/icons/FlagFrIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,UAAU,aAAa;IACrB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,eAAe,aAAa,KAAG,GAAG,CAAC,OAM7D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type JSX } from "react";
2
+ interface FlagIconProps {
3
+ /** Taille/forme de l'icône, typiquement `size-4` depuis la surface qui l'accueille. */
4
+ className?: string;
5
+ }
6
+ /**
7
+ * Drapeau du Royaume-Uni (Union Jack), dessiné en SVG.
8
+ *
9
+ * Le tracé est le motif compact standard : croix de Saint-Georges (rouge) et de
10
+ * Saint-André / Saint-Patrick (blanc et rouge décalés). Comme {@link FlagFrIcon}, un
11
+ * SVG évite le repli en lettres des emoji drapeaux sous Windows.
12
+ *
13
+ * Les `clipPath` reçoivent un identifiant unique par instance (`useId`) : un id fixe se
14
+ * dupliquerait si plusieurs drapeaux étaient rendus sur la même page, et le premier
15
+ * gagnerait pour tous.
16
+ */
17
+ export declare const FlagGbIcon: ({ className }: FlagIconProps) => JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=FlagGbIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagGbIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/core/icons/FlagGbIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAExC,UAAU,aAAa;IACrB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,eAAe,aAAa,KAAG,GAAG,CAAC,OAsB7D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { FlagFrIcon } from "./FlagFrIcon";
2
+ export { FlagGbIcon } from "./FlagGbIcon";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/core/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "../../../icons-n0m_1w7z.js";
2
+ export { e as FlagFrIcon, t as FlagGbIcon };
@@ -3,6 +3,7 @@ export * from "./charts";
3
3
  export * from "./dialogs";
4
4
  export * from "./filters";
5
5
  export * from "./forms";
6
+ export * from "./icons";
6
7
  export * from "./inputs";
7
8
  export * from "./language";
8
9
  export * from "./layouts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -12,13 +12,14 @@ import { t as N } from "../../GenericForm-fiF_fEUb.js";
12
12
  import { i as P, n as F, r as I, t as L } from "../../SearchInput-pJFU2KVz.js";
13
13
  import { ActiveFilters as R, AdvancedFilters as z, FilterField as B, FilterPills as V, FilterPillsGroup as H, TableFilter as U } from "./filters/index.js";
14
14
  import "./forms/index.js";
15
- import { t as W } from "../../inputs-Cb0xGJ-E.js";
16
- import { t as G } from "../../language-DcRIOaqX.js";
17
- import { t as K } from "../../AppTitle-CBY03gZy.js";
18
- import { n as q, t as J } from "../../states-__YoT7H3.js";
19
- import { AppPageHeader as Y, KpiCardsLayout as X } from "./layouts/index.js";
20
- import { a as Z, i as Q, n as $, o as ee, r as te, t as ne } from "../../navbar-CRdXfxxM.js";
21
- import { DataTable as re, JsonTableOutput as ie, TableActions as ae, TableBody as oe, TableBulkActions as se, TableHeader as ce, TablePagination as le, TableSettings as ue } from "./table/index.js";
22
- import { AppTabContainer as de, AppTabHeader as fe, AppTabs as pe, AppVerticalTabs as me } from "./tabs/index.js";
23
- import { t as he } from "../../theme-CHrjFJTd.js";
24
- export { R as ActiveFilters, z as AdvancedFilters, A as AppActions, D as AppDialog, Y as AppPageHeader, j as AppSubTitle, de as AppTabContainer, fe as AppTabHeader, pe as AppTabs, K as AppTitle, me as AppVerticalTabs, v as BarChartHorizontal, C as BarChartVertical, _ as CHART_COLORS, y as ChartCard, S as CircularGauge, O as ConfirmationDialog, r as DashboardCard, re as DataTable, P as DatePicker, I as DateRangePicker, l as Dialog, c as DialogClose, p as DialogContent, g as DialogDescription, s as DialogFooter, h as DialogHeader, d as DialogOverlay, f as DialogPortal, m as DialogTitle, u as DialogTrigger, T as ErrorAlert, q as ErrorState, B as FilterField, V as FilterPills, H as FilterPillsGroup, E as FormDialog, N as GenericForm, ee as GlobalSearch, k as ImageInput, ie as JsonTableOutput, e as KpiCard, t as KpiCards, X as KpiCardsLayout, G as LanguageSelector, b as LineChart, J as LoadingState, i as MetricCard, M as MultiSelect, Z as NotificationsBell, w as PieChart, o as Progress, W as RatingInput, L as SearchInput, te as Sidebar, $ as SidebarHeader, Q as SidebarNavItem, F as SingleSelect, n as SkeletonCard, a as SkeletonCards, ae as TableActions, oe as TableBody, se as TableBulkActions, U as TableFilter, ce as TableHeader, le as TablePagination, ue as TableSettings, he as ThemeSelector, ne as Topbar, x as getChartColor };
15
+ import { n as W, t as G } from "../../icons-n0m_1w7z.js";
16
+ import { t as K } from "../../inputs-Cb0xGJ-E.js";
17
+ import { t as q } from "../../language-DcRIOaqX.js";
18
+ import { t as J } from "../../AppTitle-CBY03gZy.js";
19
+ import { n as Y, t as X } from "../../states-__YoT7H3.js";
20
+ import { AppPageHeader as Z, KpiCardsLayout as Q } from "./layouts/index.js";
21
+ import { a as $, i as ee, n as te, o as ne, r as re, t as ie } from "../../navbar-CRdXfxxM.js";
22
+ import { DataTable as ae, JsonTableOutput as oe, TableActions as se, TableBody as ce, TableBulkActions as le, TableHeader as ue, TablePagination as de, TableSettings as fe } from "./table/index.js";
23
+ import { AppTabContainer as pe, AppTabHeader as me, AppTabs as he, AppVerticalTabs as ge } from "./tabs/index.js";
24
+ import { t as _e } from "../../theme-CHrjFJTd.js";
25
+ export { R as ActiveFilters, z as AdvancedFilters, A as AppActions, D as AppDialog, Z as AppPageHeader, j as AppSubTitle, pe as AppTabContainer, me as AppTabHeader, he as AppTabs, J as AppTitle, ge as AppVerticalTabs, v as BarChartHorizontal, C as BarChartVertical, _ as CHART_COLORS, y as ChartCard, S as CircularGauge, O as ConfirmationDialog, r as DashboardCard, ae as DataTable, P as DatePicker, I as DateRangePicker, l as Dialog, c as DialogClose, p as DialogContent, g as DialogDescription, s as DialogFooter, h as DialogHeader, d as DialogOverlay, f as DialogPortal, m as DialogTitle, u as DialogTrigger, T as ErrorAlert, Y as ErrorState, B as FilterField, V as FilterPills, H as FilterPillsGroup, W as FlagFrIcon, G as FlagGbIcon, E as FormDialog, N as GenericForm, ne as GlobalSearch, k as ImageInput, oe as JsonTableOutput, e as KpiCard, t as KpiCards, Q as KpiCardsLayout, q as LanguageSelector, b as LineChart, X as LoadingState, i as MetricCard, M as MultiSelect, $ as NotificationsBell, w as PieChart, o as Progress, K as RatingInput, L as SearchInput, re as Sidebar, te as SidebarHeader, ee as SidebarNavItem, F as SingleSelect, n as SkeletonCard, a as SkeletonCards, se as TableActions, ce as TableBody, le as TableBulkActions, U as TableFilter, ue as TableHeader, de as TablePagination, fe as TableSettings, _e as ThemeSelector, ie as Topbar, x as getChartColor };
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/core/table/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAiB,EAAE,KAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiJ5H"}
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/core/table/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAiB,EAAE,KAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqJ5H"}
@@ -11,6 +11,7 @@ export interface TableBodyProps<T> {
11
11
  onRowClick?: (row: T, event: React.MouseEvent<HTMLTableRowElement>) => void;
12
12
  onRowNavigate?: (row: T) => string;
13
13
  hasBulkActions: boolean;
14
+ rowSelectable?: (row: T) => boolean;
14
15
  selectedKeys: Set<string>;
15
16
  toggleRowSelection: (row: T) => void;
16
17
  visibleColumnsArray: DataTableColumn<T>[];
@@ -23,5 +24,5 @@ export interface TableBodyProps<T> {
23
24
  resizableColumns?: boolean;
24
25
  fixedColumns?: Record<string, FixedColumnOffset>;
25
26
  }
26
- export declare function TableBody<T>({ isLoading, error, colSpanCount, messages, paginatedData, rowKey, onRowClick, onRowNavigate, hasBulkActions, selectedKeys, toggleRowSelection, visibleColumnsArray, columnWidths, hasActions, actions, columns, bordered, dense, resizableColumns, fixedColumns, }: TableBodyProps<T>): React.JSX.Element;
27
+ export declare function TableBody<T>({ isLoading, error, colSpanCount, messages, paginatedData, rowKey, onRowClick, onRowNavigate, hasBulkActions, rowSelectable, selectedKeys, toggleRowSelection, visibleColumnsArray, columnWidths, hasActions, actions, columns, bordered, dense, resizableColumns, fixedColumns, }: TableBodyProps<T>): React.JSX.Element;
27
28
  //# sourceMappingURL=TableBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/core/table/TableBody.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,aAAa,EAAE,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC5E,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IACrC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAClD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAC3B,SAAS,EACT,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,MAAM,EACN,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAgB,EAChB,KAAa,EACb,gBAAwB,EACxB,YAAiB,GAClB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwJvC"}
1
+ {"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/core/table/TableBody.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,aAAa,EAAE,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC5E,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IACpC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IACrC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAClD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAC3B,SAAS,EACT,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,MAAM,EACN,UAAU,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAgB,EAChB,KAAa,EACb,gBAAwB,EACxB,YAAiB,GAClB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0JvC"}
@@ -3,15 +3,15 @@ import { t as a } from "../../../i18n-TbpdvUJO.js";
3
3
  import { At as o, C as s, D as c, Ft as l, Gt as u, Mt as d, Nt as f, O as p, S as m, T as h, bn as g, jt as _, k as v, v as y } from "../../../ui-Ce0ULzME.js";
4
4
  import { c as b } from "../../../tooltip-_geGvbS7.js";
5
5
  import { i as x, l as S, n as C, t as w, u as T } from "../../../select-KWMg2_7Z.js";
6
- import { n as E, t as D } from "../../../useFixedColumns-DPVEdA6b.js";
6
+ import { n as E, t as D } from "../../../useFixedColumns-B2yti0Rk.js";
7
7
  import { n as O, r as k } from "../../../datatable-COQcYUrk.js";
8
8
  import { useMemo as A, useState as j } from "react";
9
9
  import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
10
10
  import { formatJsonValue as F, isRecord as I, tryParseJson as L } from "@krosoft/core/helpers";
11
- import { AlertTriangleIcon as R, ArrowDownIcon as z, ArrowUpDownIcon as ee, ArrowUpIcon as te, ChevronLeftIcon as B, ChevronRightIcon as V, GripVerticalIcon as H, Loader2Icon as U, MoreVerticalIcon as W, SettingsIcon as G } from "lucide-react";
12
- import { useNavigate as K } from "react-router-dom";
11
+ import { AlertTriangleIcon as R, ArrowDownIcon as z, ArrowUpDownIcon as B, ArrowUpIcon as V, ChevronLeftIcon as ee, ChevronRightIcon as te, GripVerticalIcon as ne, Loader2Icon as re, MoreVerticalIcon as ie, SettingsIcon as ae } from "lucide-react";
12
+ import { useNavigate as H } from "react-router-dom";
13
13
  //#region src/components/core/table/TableActions.tsx
14
- function q({ actions: e, row: t }) {
14
+ function U({ actions: e, row: t }) {
15
15
  let { t: n } = a(), r = e.filter((e) => e.visible === void 0 || e.visible(t));
16
16
  if (r.length === 0) return null;
17
17
  let i = r.filter((e) => e.overflow !== !0), o = r.filter((e) => e.overflow === !0);
@@ -35,7 +35,7 @@ function q({ actions: e, row: t }) {
35
35
  variant: "ghost",
36
36
  size: "icon",
37
37
  className: "h-7 w-7 text-muted-foreground hover:text-foreground",
38
- children: /* @__PURE__ */ N(W, { className: "size-3.5" })
38
+ children: /* @__PURE__ */ N(ie, { className: "size-3.5" })
39
39
  })
40
40
  }), /* @__PURE__ */ N(f, {
41
41
  align: "end",
@@ -61,9 +61,9 @@ function q({ actions: e, row: t }) {
61
61
  }
62
62
  //#endregion
63
63
  //#region src/components/core/table/TableBody.tsx
64
- function J({ isLoading: o, error: s, colSpanCount: c, messages: l, paginatedData: u, rowKey: d, onRowClick: f, onRowNavigate: p, hasBulkActions: m, selectedKeys: h, toggleRowSelection: _, visibleColumnsArray: v, columnWidths: y, hasActions: b, actions: x, columns: S, bordered: C = !1, dense: w = !1, resizableColumns: T = !1, fixedColumns: E = {} }) {
65
- let { t: D } = a(), O = D(l?.loadingKey ?? "states.loading"), k = D(l?.emptyKey ?? "states.noResult"), A = K(), j = (e, t) => {
66
- let n = S.find((e) => e.key === t);
64
+ function W({ isLoading: o, error: s, colSpanCount: c, messages: l, paginatedData: u, rowKey: d, onRowClick: f, onRowNavigate: p, hasBulkActions: m, rowSelectable: h, selectedKeys: _, toggleRowSelection: v, visibleColumnsArray: y, columnWidths: b, hasActions: x, actions: S, columns: C, bordered: w = !1, dense: T = !1, resizableColumns: E = !1, fixedColumns: D = {} }) {
65
+ let { t: O } = a(), k = O(l?.loadingKey ?? "states.loading"), A = O(l?.emptyKey ?? "states.noResult"), j = H(), M = (e, t) => {
66
+ let n = C.find((e) => e.key === t);
67
67
  if (n?.renderCell !== void 0) return n.renderCell(e);
68
68
  let r = e[t];
69
69
  return /* @__PURE__ */ N("span", {
@@ -78,9 +78,9 @@ function J({ isLoading: o, error: s, colSpanCount: c, messages: l, paginatedData
78
78
  className: "py-8 text-center",
79
79
  children: /* @__PURE__ */ P("div", {
80
80
  className: "flex flex-col items-center justify-center gap-2 text-muted-foreground",
81
- children: [/* @__PURE__ */ N(U, { className: "h-6 w-6 animate-spin text-primary" }), /* @__PURE__ */ N("span", {
81
+ children: [/* @__PURE__ */ N(re, { className: "h-6 w-6 animate-spin text-primary" }), /* @__PURE__ */ N("span", {
82
82
  className: "text-sm",
83
- children: O
83
+ children: k
84
84
  })]
85
85
  })
86
86
  }) })
@@ -104,36 +104,36 @@ function J({ isLoading: o, error: s, colSpanCount: c, messages: l, paginatedData
104
104
  children: /* @__PURE__ */ N("tr", { children: /* @__PURE__ */ N("td", {
105
105
  colSpan: c,
106
106
  className: "py-8 text-center text-sm text-muted-foreground",
107
- children: k
107
+ children: A
108
108
  }) })
109
109
  });
110
- let M = i(E[t], "body"), F = i(E[e], "body"), I = m && h.size > 0, L = I || p !== void 0 || f !== void 0, z = (e, t) => {
111
- if (I) {
112
- _(e);
110
+ let F = i(D[t], "body"), I = i(D[e], "body"), L = m && _.size > 0, z = L || p !== void 0 || f !== void 0, B = (e, t) => {
111
+ if (L) {
112
+ v(e);
113
113
  return;
114
114
  }
115
115
  if (p !== void 0) {
116
116
  let n = p(e);
117
- t.ctrlKey || t.metaKey ? window.open(n, "_blank") : A(n);
117
+ t.ctrlKey || t.metaKey ? window.open(n, "_blank") : j(n);
118
118
  } else f?.(e, t);
119
119
  };
120
120
  return /* @__PURE__ */ N("tbody", {
121
121
  className: "divide-y divide-border",
122
122
  children: u.map((e) => {
123
- let t = d(e);
123
+ let t = d(e), a = h === void 0 || h(e);
124
124
  return /* @__PURE__ */ P("tr", {
125
- className: `group hover:bg-muted/50 transition-colors ${L ? "cursor-pointer" : ""}`,
125
+ className: `group hover:bg-muted/50 transition-colors ${z ? "cursor-pointer" : ""}`,
126
126
  onClick: (t) => {
127
- z(e, t);
127
+ B(e, t);
128
128
  },
129
129
  children: [
130
130
  m ? /* @__PURE__ */ N("td", {
131
- className: `p-1 text-center align-middle ${M.className}`,
131
+ className: `p-1 text-center align-middle ${F.className}`,
132
132
  style: {
133
133
  width: "48px",
134
134
  minWidth: "48px",
135
135
  maxWidth: "48px",
136
- ...M.style
136
+ ...F.style
137
137
  },
138
138
  onClick: (e) => {
139
139
  e.stopPropagation();
@@ -141,40 +141,41 @@ function J({ isLoading: o, error: s, colSpanCount: c, messages: l, paginatedData
141
141
  children: /* @__PURE__ */ N("div", {
142
142
  className: "flex items-center justify-center",
143
143
  children: /* @__PURE__ */ N(g, {
144
- checked: h.has(t),
144
+ checked: _.has(t),
145
+ disabled: !a,
145
146
  onCheckedChange: () => {
146
- _(e);
147
+ v(e);
147
148
  }
148
149
  })
149
150
  })
150
151
  }) : null,
151
- v.map((t, a) => {
152
- let o = a === v.length - 1, s = i(E[t.key], "body");
152
+ y.map((t, a) => {
153
+ let o = a === y.length - 1, s = i(D[t.key], "body");
153
154
  return /* @__PURE__ */ N("td", {
154
- className: `${`${a === 0 && !m ? "pl-4" : "pl-2"} ${o && !b ? "pr-4" : "pr-2"}`} ${w ? "py-2" : "py-4"} text-sm ${n(r(t))} ${s.className} ${C && !o ? "border-r border-border" : ""} ${t.className ?? ""}`,
155
+ className: `${`${a === 0 && !m ? "pl-4" : "pl-2"} ${o && !x ? "pr-4" : "pr-2"}`} ${T ? "py-2" : "py-4"} text-sm ${n(r(t))} ${s.className} ${w && !o ? "border-r border-border" : ""} ${t.className ?? ""}`,
155
156
  style: {
156
- ...T ? { width: y[t.key] } : { minWidth: y[t.key] },
157
+ ...E ? { width: b[t.key] } : { minWidth: b[t.key] },
157
158
  ...s.style
158
159
  },
159
160
  children: /* @__PURE__ */ N("div", {
160
161
  className: "w-full h-full",
161
- children: j(e, t.key)
162
+ children: M(e, t.key)
162
163
  })
163
164
  }, t.key);
164
165
  }),
165
- b ? /* @__PURE__ */ N("td", {
166
- className: `py-1 pl-1 pr-4 text-right align-middle whitespace-nowrap ${F.className}`,
166
+ x ? /* @__PURE__ */ N("td", {
167
+ className: `py-1 pl-1 pr-4 text-right align-middle whitespace-nowrap ${I.className}`,
167
168
  style: {
168
169
  minWidth: "32px",
169
- ...F.style
170
+ ...I.style
170
171
  },
171
172
  onClick: (e) => {
172
173
  e.stopPropagation();
173
174
  },
174
- children: x !== void 0 && x.length > 0 ? /* @__PURE__ */ N("div", {
175
+ children: S !== void 0 && S.length > 0 ? /* @__PURE__ */ N("div", {
175
176
  className: "flex items-center justify-end",
176
- children: /* @__PURE__ */ N(q, {
177
- actions: x,
177
+ children: /* @__PURE__ */ N(U, {
178
+ actions: S,
178
179
  row: e
179
180
  })
180
181
  }) : null
@@ -186,7 +187,7 @@ function J({ isLoading: o, error: s, colSpanCount: c, messages: l, paginatedData
186
187
  }
187
188
  //#endregion
188
189
  //#region src/components/core/table/TableBulkActions.tsx
189
- function Y({ selectedRows: e, setSelectedRows: t, bulkActions: n }) {
190
+ function G({ selectedRows: e, setSelectedRows: t, bulkActions: n }) {
190
191
  let { t: r } = a();
191
192
  return /* @__PURE__ */ P("div", {
192
193
  className: "bg-muted/60 border border-border px-3 py-1.5 flex items-center justify-between rounded-surface",
@@ -228,15 +229,15 @@ function Y({ selectedRows: e, setSelectedRows: t, bulkActions: n }) {
228
229
  }
229
230
  //#endregion
230
231
  //#region src/components/core/table/TableHeader.tsx
231
- var ne = {
232
+ var K = {
232
233
  left: "justify-start",
233
234
  center: "justify-center",
234
235
  right: "justify-end"
235
236
  };
236
- function re({ hasBulkActions: o, allSelected: s, someSelected: c, toggleSelectAll: l, visibleColumnsArray: u, draggableColumns: d, resizableColumns: f, columnWidths: p, sortColumn: m, sortDirection: h, handleSort: _, handleDragStart: v, handleDragOver: y, handleDrop: b, handleMouseDown: x, hasActions: S, settingsNode: C, bordered: w = !1, dense: T = !1, fixedColumns: E = {}, fixedSelection: D = !1, fixedActions: O = !1 }) {
237
+ function q({ hasBulkActions: o, allSelected: s, someSelected: c, toggleSelectAll: l, visibleColumnsArray: u, draggableColumns: d, resizableColumns: f, columnWidths: p, sortColumn: m, sortDirection: h, handleSort: _, handleDragStart: v, handleDragOver: y, handleDrop: b, handleMouseDown: x, hasActions: S, settingsNode: C, bordered: w = !1, dense: T = !1, fixedColumns: E = {}, fixedSelection: D = !1, fixedActions: O = !1 }) {
237
238
  let { t: k } = a(), A = !1;
238
239
  s ? A = !0 : c && (A = "indeterminate");
239
- let j = (e) => e.sortable === !0 ? m === e.key ? N(h === "asc" ? te : z, { className: "size-3.5 text-foreground" }) : /* @__PURE__ */ N(ee, { className: "size-3.5 text-muted-foreground/50 group-hover:text-muted-foreground transition-colors" }) : null, M = (e, t, a) => {
240
+ let j = (e) => e.sortable === !0 ? m === e.key ? N(h === "asc" ? V : z, { className: "size-3.5 text-foreground" }) : /* @__PURE__ */ N(B, { className: "size-3.5 text-muted-foreground/50 group-hover:text-muted-foreground transition-colors" }) : null, M = (e, t, a) => {
240
241
  let s = a !== !1 && e.fixed === void 0, c = e.sortable === !0, l = i(E[e.key], "header"), d = r(e), m = j(e), h = t === 0 && !o, g = t === u.length - 1 && !(S || C !== void 0), D = `${h ? "pl-4" : "pl-2"} ${g ? "pr-4" : "pr-2"}`;
241
242
  return /* @__PURE__ */ P("th", {
242
243
  "data-column-key": e.key,
@@ -267,9 +268,9 @@ function re({ hasBulkActions: o, allSelected: s, someSelected: c, toggleSelectAl
267
268
  b(t, e.key);
268
269
  },
269
270
  children: [/* @__PURE__ */ P("div", {
270
- className: `flex items-center gap-1 ${ne[d]} ${f ? "pr-2" : ""}`,
271
+ className: `flex items-center gap-1 ${K[d]} ${f ? "pr-2" : ""}`,
271
272
  children: [
272
- s ? /* @__PURE__ */ N(H, { className: "size-4 text-muted-foreground cursor-grab shrink-0" }) : null,
273
+ s ? /* @__PURE__ */ N(ne, { className: "size-4 text-muted-foreground cursor-grab shrink-0" }) : null,
273
274
  /* @__PURE__ */ N("span", {
274
275
  className: "truncate",
275
276
  children: k(e.headerKey)
@@ -324,31 +325,31 @@ function re({ hasBulkActions: o, allSelected: s, someSelected: c, toggleSelectAl
324
325
  }
325
326
  //#endregion
326
327
  //#region src/components/core/table/TablePagination.tsx
327
- var X = "…";
328
- function Z(e, t) {
328
+ var J = "…";
329
+ function Y(e, t) {
329
330
  return Array.from({ length: t - e + 1 }, (t, n) => e + n);
330
331
  }
331
- function ie(e, t, n = 1) {
332
- if (n * 2 + 5 >= t) return Z(1, t);
332
+ function oe(e, t, n = 1) {
333
+ if (n * 2 + 5 >= t) return Y(1, t);
333
334
  let r = Math.max(e - n, 1), i = Math.min(e + n, t), a = r > 2, o = i < t - 1;
334
335
  return !a && o ? [
335
- ...Z(1, n + 2),
336
- X,
336
+ ...Y(1, n + 2),
337
+ J,
337
338
  t
338
339
  ] : a && !o ? [
339
340
  1,
340
- X,
341
- ...Z(t - (n + 2) + 1, t)
341
+ J,
342
+ ...Y(t - (n + 2) + 1, t)
342
343
  ] : [
343
344
  1,
344
- X,
345
- ...Z(r, i),
346
- X,
345
+ J,
346
+ ...Y(r, i),
347
+ J,
347
348
  t
348
349
  ];
349
350
  }
350
- function ae({ totalItems: e, startIndex: t, endIndex: n, pageSize: r, setPageSize: i, currentPage: o, setCurrentPage: s, pageSizeOptions: c, totalPages: l }) {
351
- let { t: u } = a(), d = ie(o, l);
351
+ function X({ totalItems: e, startIndex: t, endIndex: n, pageSize: r, setPageSize: i, currentPage: o, setCurrentPage: s, pageSizeOptions: c, totalPages: l }) {
352
+ let { t: u } = a(), d = oe(o, l);
352
353
  return /* @__PURE__ */ P("div", {
353
354
  className: "px-4 py-2 border-t border-border flex flex-col sm:grid sm:grid-cols-3 items-center gap-2 bg-muted/50",
354
355
  children: [
@@ -371,11 +372,11 @@ function ae({ totalItems: e, startIndex: t, endIndex: n, pageSize: r, setPageSiz
371
372
  },
372
373
  disabled: o === 1,
373
374
  "aria-label": u("table.previousPage"),
374
- children: /* @__PURE__ */ N(B, { className: "size-4" })
375
+ children: /* @__PURE__ */ N(ee, { className: "size-4" })
375
376
  }),
376
- d.map((e, t) => e === X ? /* @__PURE__ */ N("span", {
377
+ d.map((e, t) => e === J ? /* @__PURE__ */ N("span", {
377
378
  className: "flex h-8 w-8 items-center justify-center text-sm text-muted-foreground",
378
- children: X
379
+ children: J
379
380
  }, `dots-${String(t)}`) : /* @__PURE__ */ N(b, {
380
381
  variant: e === o ? "default" : "ghost",
381
382
  size: "icon",
@@ -395,7 +396,7 @@ function ae({ totalItems: e, startIndex: t, endIndex: n, pageSize: r, setPageSiz
395
396
  },
396
397
  disabled: o === l,
397
398
  "aria-label": u("table.nextPage"),
398
- children: /* @__PURE__ */ N(V, { className: "size-4" })
399
+ children: /* @__PURE__ */ N(te, { className: "size-4" })
399
400
  })
400
401
  ] })
401
402
  }),
@@ -420,7 +421,7 @@ function ae({ totalItems: e, startIndex: t, endIndex: n, pageSize: r, setPageSiz
420
421
  }
421
422
  //#endregion
422
423
  //#region src/components/core/table/TableSettings.tsx
423
- function oe({ columns: e, visibleColumns: t, toggleColumnVisibility: n }) {
424
+ function se({ columns: e, visibleColumns: t, toggleColumnVisibility: n }) {
424
425
  let { t: r } = a();
425
426
  return /* @__PURE__ */ P(_, { children: [/* @__PURE__ */ N(u, {
426
427
  asChild: !0,
@@ -428,7 +429,7 @@ function oe({ columns: e, visibleColumns: t, toggleColumnVisibility: n }) {
428
429
  variant: "outline",
429
430
  size: "sm",
430
431
  className: "size-7 p-0 bg-background hover:bg-muted shadow-sm border-border",
431
- children: /* @__PURE__ */ N(G, { className: "size-3.5 text-muted-foreground" })
432
+ children: /* @__PURE__ */ N(ae, { className: "size-3.5 text-muted-foreground" })
432
433
  })
433
434
  }), /* @__PURE__ */ N(f, {
434
435
  align: "end",
@@ -444,97 +445,99 @@ function oe({ columns: e, visibleColumns: t, toggleColumnVisibility: n }) {
444
445
  }
445
446
  //#endregion
446
447
  //#region src/components/core/table/DataTable.tsx
447
- function Q({ data: e, isLoading: t = !1, error: n = null, config: r, server: i }) {
448
- let { columns: a, rowKey: o, onRowClick: s, onRowNavigate: c, actions: l, bulkActions: u } = r, d = r.pageSizeDefault ?? O, f = r.pageSizeOptions ?? k, p = r.dense ?? !1, m = r.bordered ?? !1, h = r.draggableColumns ?? !1, g = r.resizableColumns ?? !1, _ = r.columnVisibility ?? !1, v = r.fixedActions ?? !1, { sortColumn: y, sortDirection: b, selectedRows: x, setSelectedRows: S, visibleColumns: C, columnWidths: w, safeCurrentPage: T, totalPages: j, startIndex: M, endIndex: F, tableRef: I, hasActions: L, hasBulkActions: R, visibleColumnsArray: z, colSpanCount: ee, paginatedData: te, handleSort: B, handleMouseDown: V, handleDragStart: H, handleDragOver: U, handleDrop: W, toggleColumnVisibility: G, toggleRowSelection: K, toggleSelectAll: q, pageSize: ne, setPageSize: X, setCurrentPage: Z } = E({
448
+ function ce({ data: e, isLoading: t = !1, error: n = null, config: r, server: i }) {
449
+ let { columns: a, rowKey: o, rowSelectable: s, onRowClick: c, onRowNavigate: l, actions: u, bulkActions: d } = r, f = r.pageSizeDefault ?? O, p = r.pageSizeOptions ?? k, m = r.dense ?? !1, h = r.bordered ?? !1, g = r.draggableColumns ?? !1, _ = r.resizableColumns ?? !1, v = r.columnVisibility ?? !1, y = r.fixedActions ?? !1, { sortColumn: b, sortDirection: x, selectedRows: S, setSelectedRows: C, visibleColumns: w, columnWidths: T, safeCurrentPage: j, totalPages: M, startIndex: F, endIndex: I, tableRef: L, hasActions: R, hasBulkActions: z, visibleColumnsArray: B, colSpanCount: V, paginatedData: ee, handleSort: te, handleMouseDown: ne, handleDragStart: re, handleDragOver: ie, handleDrop: ae, toggleColumnVisibility: H, toggleRowSelection: U, toggleSelectAll: K, pageSize: J, setPageSize: Y, setCurrentPage: oe } = E({
449
450
  data: e,
450
451
  columns: a,
451
452
  rowKey: o,
452
- pageSizeDefault: d,
453
- actions: l,
454
- bulkActions: u,
455
- columnVisibility: _,
453
+ rowSelectable: s,
454
+ pageSizeDefault: f,
455
+ actions: u,
456
+ bulkActions: d,
457
+ columnVisibility: v,
456
458
  server: i
457
- }), ie = R && z.some((e) => e.fixed === "left"), Q = D(I), $ = A(() => new Set(x.map(o)), [x, o]), se = e.length > 0 && e.every((e) => $.has(o(e))), ce = !se && e.some((e) => $.has(o(e)));
459
+ }), ce = z && B.some((e) => e.fixed === "left"), Z = D(L), Q = A(() => new Set(S.map(o)), [S, o]), $ = A(() => s === void 0 ? e : e.filter(s), [e, s]), le = $.length > 0 && $.every((e) => Q.has(o(e))), ue = !le && $.some((e) => Q.has(o(e)));
458
460
  return /* @__PURE__ */ P("div", {
459
461
  className: "space-y-4 [--k-radius-control:var(--k-radius-control-dense,0.5rem)] [--k-radius-surface:var(--k-radius-surface-dense,0.75rem)]",
460
- children: [x.length > 0 && u !== void 0 && u.length > 0 && /* @__PURE__ */ N(Y, {
461
- selectedRows: x,
462
- setSelectedRows: S,
463
- bulkActions: u
462
+ children: [S.length > 0 && d !== void 0 && d.length > 0 && /* @__PURE__ */ N(G, {
463
+ selectedRows: S,
464
+ setSelectedRows: C,
465
+ bulkActions: d
464
466
  }), /* @__PURE__ */ P("div", {
465
467
  className: "w-full bg-card rounded-surface border border-border overflow-hidden",
466
468
  children: [/* @__PURE__ */ N("div", {
467
469
  className: "overflow-x-auto",
468
470
  children: /* @__PURE__ */ P("table", {
469
- ref: I,
471
+ ref: L,
470
472
  className: "w-full",
471
- children: [/* @__PURE__ */ N(re, {
472
- hasBulkActions: R,
473
- allSelected: se,
474
- someSelected: ce,
475
- toggleSelectAll: q,
476
- visibleColumnsArray: z,
477
- draggableColumns: h,
478
- resizableColumns: g,
479
- columnWidths: w,
480
- sortColumn: y,
481
- sortDirection: b,
482
- handleSort: B,
483
- handleDragStart: H,
484
- handleDragOver: U,
485
- handleDrop: W,
486
- handleMouseDown: V,
487
- hasActions: L,
488
- bordered: m,
489
- dense: p,
490
- fixedColumns: Q,
491
- fixedSelection: ie,
492
- fixedActions: v,
493
- settingsNode: _ ? /* @__PURE__ */ N(oe, {
473
+ children: [/* @__PURE__ */ N(q, {
474
+ hasBulkActions: z,
475
+ allSelected: le,
476
+ someSelected: ue,
477
+ toggleSelectAll: K,
478
+ visibleColumnsArray: B,
479
+ draggableColumns: g,
480
+ resizableColumns: _,
481
+ columnWidths: T,
482
+ sortColumn: b,
483
+ sortDirection: x,
484
+ handleSort: te,
485
+ handleDragStart: re,
486
+ handleDragOver: ie,
487
+ handleDrop: ae,
488
+ handleMouseDown: ne,
489
+ hasActions: R,
490
+ bordered: h,
491
+ dense: m,
492
+ fixedColumns: Z,
493
+ fixedSelection: ce,
494
+ fixedActions: y,
495
+ settingsNode: v ? /* @__PURE__ */ N(se, {
494
496
  columns: a,
495
- visibleColumns: C,
496
- toggleColumnVisibility: G
497
+ visibleColumns: w,
498
+ toggleColumnVisibility: H
497
499
  }) : void 0
498
- }), /* @__PURE__ */ N(J, {
499
- bordered: m,
500
- dense: p,
500
+ }), /* @__PURE__ */ N(W, {
501
+ bordered: h,
502
+ dense: m,
501
503
  isLoading: t,
502
504
  error: n,
503
- colSpanCount: ee,
505
+ colSpanCount: V,
504
506
  messages: r.messages,
505
- paginatedData: te,
507
+ paginatedData: ee,
506
508
  rowKey: o,
507
- onRowClick: s,
508
- onRowNavigate: c,
509
- hasBulkActions: R,
510
- selectedKeys: $,
511
- toggleRowSelection: K,
512
- visibleColumnsArray: z,
513
- columnWidths: w,
514
- hasActions: L || _,
515
- actions: l,
509
+ onRowClick: c,
510
+ onRowNavigate: l,
511
+ hasBulkActions: z,
512
+ rowSelectable: s,
513
+ selectedKeys: Q,
514
+ toggleRowSelection: U,
515
+ visibleColumnsArray: B,
516
+ columnWidths: T,
517
+ hasActions: R || v,
518
+ actions: u,
516
519
  columns: a,
517
- resizableColumns: g,
518
- fixedColumns: Q
520
+ resizableColumns: _,
521
+ fixedColumns: Z
519
522
  })]
520
523
  })
521
- }), /* @__PURE__ */ N(ae, {
524
+ }), /* @__PURE__ */ N(X, {
522
525
  totalItems: i?.totalRows ?? e.length,
523
- startIndex: M,
524
- endIndex: F,
525
- pageSize: ne,
526
- setPageSize: X,
527
- currentPage: T,
528
- setCurrentPage: Z,
529
- pageSizeOptions: f,
530
- totalPages: j
526
+ startIndex: F,
527
+ endIndex: I,
528
+ pageSize: J,
529
+ setPageSize: Y,
530
+ currentPage: j,
531
+ setCurrentPage: oe,
532
+ pageSizeOptions: p,
533
+ totalPages: M
531
534
  })]
532
535
  })]
533
536
  });
534
537
  }
535
538
  //#endregion
536
539
  //#region src/components/core/table/JsonTableOutput.tsx
537
- var $ = ({ header: e, output: t }) => {
540
+ var Z = ({ header: e, output: t }) => {
538
541
  let [n, r] = j(!0), i = L(t), a = i !== null, l = () => /* @__PURE__ */ P("div", {
539
542
  className: "flex items-center justify-between mb-2",
540
543
  children: [/* @__PURE__ */ N("span", {
@@ -600,4 +603,4 @@ var $ = ({ header: e, output: t }) => {
600
603
  }) : null;
601
604
  };
602
605
  //#endregion
603
- export { Q as DataTable, $ as JsonTableOutput, q as TableActions, J as TableBody, Y as TableBulkActions, re as TableHeader, ae as TablePagination, oe as TableSettings };
606
+ export { ce as DataTable, Z as JsonTableOutput, U as TableActions, W as TableBody, G as TableBulkActions, q as TableHeader, X as TablePagination, se as TableSettings };
@@ -16,14 +16,15 @@ import { t as Ir } from "../MultiSelect-xNfIdYS9.js";
16
16
  import { t as Lr } from "../GenericForm-fiF_fEUb.js";
17
17
  import { i as Rr, n as zr, r as Br, t as Vr } from "../SearchInput-pJFU2KVz.js";
18
18
  import { ActiveFilters as Hr, AdvancedFilters as Ur, FilterField as Wr, FilterPills as Gr, FilterPillsGroup as Kr, TableFilter as qr } from "./core/filters/index.js";
19
- import { t as Jr } from "../inputs-Cb0xGJ-E.js";
20
- import { t as Yr } from "../language-DcRIOaqX.js";
21
- import { t as Xr } from "../AppTitle-CBY03gZy.js";
22
- import { n as Zr, t as Qr } from "../states-__YoT7H3.js";
23
- import { AppPageHeader as $r, KpiCardsLayout as ei } from "./core/layouts/index.js";
24
- import { a as ti, i as ni, n as ri, o as ii, r as ai, t as oi } from "../navbar-CRdXfxxM.js";
25
- import { DataTable as si, JsonTableOutput as ci, TableActions as li, TableBody as ui, TableBulkActions as di, TableHeader as fi, TablePagination as pi, TableSettings as mi } from "./core/table/index.js";
26
- import { AppTabContainer as hi, AppTabHeader as gi, AppTabs as _i, AppVerticalTabs as vi } from "./core/tabs/index.js";
27
- import { t as yi } from "../theme-CHrjFJTd.js";
19
+ import { n as Jr, t as Yr } from "../icons-n0m_1w7z.js";
20
+ import { t as Xr } from "../inputs-Cb0xGJ-E.js";
21
+ import { t as Zr } from "../language-DcRIOaqX.js";
22
+ import { t as Qr } from "../AppTitle-CBY03gZy.js";
23
+ import { n as $r, t as ei } from "../states-__YoT7H3.js";
24
+ import { AppPageHeader as ti, KpiCardsLayout as ni } from "./core/layouts/index.js";
25
+ import { a as ri, i as ii, n as ai, o as oi, r as si, t as ci } from "../navbar-CRdXfxxM.js";
26
+ import { DataTable as li, JsonTableOutput as ui, TableActions as di, TableBody as fi, TableBulkActions as pi, TableHeader as mi, TablePagination as hi, TableSettings as gi } from "./core/table/index.js";
27
+ import { AppTabContainer as _i, AppTabHeader as vi, AppTabs as yi, AppVerticalTabs as bi } from "./core/tabs/index.js";
28
+ import { t as xi } from "../theme-CHrjFJTd.js";
28
29
  import "./core/index.js";
29
- export { ze as Accordion, Ie as AccordionContent, He as AccordionItem, he as AccordionTrigger, Hr as ActiveFilters, Ur as AdvancedFilters, yn as Alert, _n as AlertDescription, w as AlertDialog, Ae as AlertDialogAction, H as AlertDialogCancel, De as AlertDialogContent, Ne as AlertDialogDescription, z as AlertDialogFooter, Z as AlertDialogHeader, Vt as AlertDialogTitle, J as AlertDialogTrigger, vn as AlertTitle, Pr as AppActions, jr as AppDialog, $r as AppPageHeader, Fr as AppSubTitle, hi as AppTabContainer, gi as AppTabHeader, _i as AppTabs, Xr as AppTitle, vi as AppVerticalTabs, hn as AspectRatio, G as Avatar, ee as AvatarFallback, ve as AvatarImage, fe as Badge, Sr as BarChartHorizontal, Dr as BarChartVertical, A as Breadcrumb, le as BreadcrumbEllipsis, Ct as BreadcrumbItem, x as BreadcrumbLink, bt as BreadcrumbList, re as BreadcrumbPage, oe as BreadcrumbSeparator, xn as Button, xr as CHART_COLORS, N as Calendar, l as Card, t as CardContent, a as CardDescription, d as CardFooter, n as CardHeader, r as CardTitle, ln as Carousel, xe as CarouselContent, D as CarouselItem, on as CarouselNext, we as CarouselPrevious, Cr as ChartCard, u as ChartContainer, o as ChartLegend, c as ChartLegendContent, i as ChartStyle, e as ChartTooltip, s as ChartTooltipContent, Ze as Checkbox, Er as CircularGauge, Ge as Collapsible, nn as CollapsibleContent, fn as CollapsibleTrigger, Bn as Command, or as CommandDialog, lr as CommandEmpty, Hn as CommandGroup, cr as CommandInput, Rn as CommandItem, An as CommandList, sr as CommandSeparator, zn as CommandShortcut, Mr as ConfirmationDialog, Mt as ContextMenu, Wt as ContextMenuCheckboxItem, _t as ContextMenuContent, Je as ContextMenuGroup, Ft as ContextMenuItem, qt as ContextMenuLabel, et as ContextMenuPortal, Et as ContextMenuRadioGroup, $t as ContextMenuRadioItem, rt as ContextMenuSeparator, ct as ContextMenuShortcut, Rt as ContextMenuSub, kt as ContextMenuSubContent, mt as ContextMenuSubTrigger, dt as ContextMenuTrigger, h as DashboardCard, si as DataTable, Rr as DatePicker, Br as DateRangePicker, Mn as Dialog, jn as DialogClose, In as DialogContent, Xn as DialogDescription, kn as DialogFooter, Yn as DialogHeader, Pn as DialogOverlay, Fn as DialogPortal, Ln as DialogTitle, Nn as DialogTrigger, Q as Drawer, Ht as DrawerClose, Y as DrawerContent, Be as DrawerDescription, Le as DrawerFooter, Ue as DrawerHeader, ge as DrawerOverlay, y as DrawerPortal, at as DrawerTitle, Xt as DrawerTrigger, xt as DropdownMenu, ie as DropdownMenuCheckboxItem, se as DropdownMenuContent, pe as DropdownMenuGroup, L as DropdownMenuItem, K as DropdownMenuLabel, te as DropdownMenuPortal, ye as DropdownMenuRadioGroup, gn as DropdownMenuRadioItem, T as DropdownMenuSeparator, je as DropdownMenuShortcut, U as DropdownMenuSub, Oe as DropdownMenuSubContent, Pe as DropdownMenuSubTrigger, B as DropdownMenuTrigger, kr as ErrorAlert, Zr as ErrorState, Wr as FilterField, Gr as FilterPills, Kr as FilterPillsGroup, Se as Form, O as FormControl, sn as FormDescription, Ar as FormDialog, Te as FormField, P as FormItem, j as FormLabel, ue as FormMessage, Lr as GenericForm, ii as GlobalSearch, pn as HoverCard, Qe as HoverCardContent, un as HoverCardTrigger, Nr as ImageInput, Kn as Input, ht as InputOTP, ft as InputOTPGroup, Ke as InputOTPSeparator, rn as InputOTPSlot, ci as JsonTableOutput, f as KpiCard, p as KpiCards, ei as KpiCardsLayout, S as Label, Yr as LanguageSelector, wr as LineChart, Qr as LoadingState, v as Menubar, ot as MenubarCheckboxItem, Zt as MenubarContent, Nt as MenubarGroup, Gt as MenubarItem, vt as MenubarLabel, Ye as MenubarMenu, It as MenubarPortal, Jt as MenubarRadioGroup, tt as MenubarRadioItem, Dt as MenubarSeparator, en as MenubarShortcut, it as MenubarSub, lt as MenubarSubContent, zt as MenubarSubTrigger, At as MenubarTrigger, g as MetricCard, Ir as MultiSelect, Me as NavigationMenu, R as NavigationMenuContent, X as NavigationMenuIndicator, Bt as NavigationMenuItem, q as NavigationMenuLink, Re as NavigationMenuList, Fe as NavigationMenuTrigger, Ve as NavigationMenuViewport, ti as NotificationsBell, $ as Pagination, _e as PaginationContent, mn as PaginationEllipsis, C as PaginationItem, ke as PaginationLink, V as PaginationNext, Ee as PaginationPrevious, Or as PieChart, tr as Popover, Qn as PopoverContent, qn as PopoverTrigger, W as Progress, de as RadioGroup, F as RadioGroupItem, Jr as RatingInput, yt as ResizableHandle, ne as ResizablePanel, ae as ResizablePanelGroup, Wn as ScrollArea, Gn as ScrollBar, Vr as SearchInput, vr as Select, mr as SelectContent, gr as SelectGroup, fr as SelectItem, ur as SelectLabel, hr as SelectScrollDownButton, _r as SelectScrollUpButton, dr as SelectSeparator, pr as SelectTrigger, yr as SelectValue, b as Separator, ir as Sheet, $n as SheetClose, nr as SheetContent, Jn as SheetDescription, Vn as SheetFooter, er as SheetHeader, rr as SheetOverlay, Un as SheetPortal, Zn as SheetTitle, ar as SheetTrigger, ai as Sidebar, ri as SidebarHeader, ni as SidebarNavItem, be as SimpleTable, E as SimpleTableBody, an as SimpleTableCaption, Ce as SimpleTableCell, M as SimpleTableFooter, k as SimpleTableHead, ce as SimpleTableHeader, St as SimpleTableRow, zr as SingleSelect, br as Skeleton, m as SkeletonCard, _ as SkeletonCards, cn as Slider, dn as Sonner, tn as Switch, li as TableActions, ui as TableBody, di as TableBulkActions, qr as TableFilter, fi as TableHeader, pi as TablePagination, mi as TableSettings, Ot as Tabs, pt as TabsContent, ut as TabsList, We as TabsTrigger, Lt as Textarea, yi as ThemeSelector, Pt as Toast, Kt as ToastAction, $e as ToastClose, Tt as ToastDescription, Qt as ToastProvider, nt as ToastTitle, st as ToastViewport, qe as Toaster, Ut as Toggle, Yt as ToggleGroup, jt as ToggleGroupItem, On as Tooltip, wn as TooltipContent, En as TooltipProvider, Sn as TooltipTrigger, oi as Topbar, I as badgeVariants, Cn as buttonVariants, bn as controlBaseClass, Tn as controlFilterWidthClass, Dn as controlTriggerClass, Tr as getChartColor, me as navigationMenuTriggerStyle, Xe as toast, gt as toggleVariants, wt as useFormField };
30
+ export { ze as Accordion, Ie as AccordionContent, He as AccordionItem, he as AccordionTrigger, Hr as ActiveFilters, Ur as AdvancedFilters, yn as Alert, _n as AlertDescription, w as AlertDialog, Ae as AlertDialogAction, H as AlertDialogCancel, De as AlertDialogContent, Ne as AlertDialogDescription, z as AlertDialogFooter, Z as AlertDialogHeader, Vt as AlertDialogTitle, J as AlertDialogTrigger, vn as AlertTitle, Pr as AppActions, jr as AppDialog, ti as AppPageHeader, Fr as AppSubTitle, _i as AppTabContainer, vi as AppTabHeader, yi as AppTabs, Qr as AppTitle, bi as AppVerticalTabs, hn as AspectRatio, G as Avatar, ee as AvatarFallback, ve as AvatarImage, fe as Badge, Sr as BarChartHorizontal, Dr as BarChartVertical, A as Breadcrumb, le as BreadcrumbEllipsis, Ct as BreadcrumbItem, x as BreadcrumbLink, bt as BreadcrumbList, re as BreadcrumbPage, oe as BreadcrumbSeparator, xn as Button, xr as CHART_COLORS, N as Calendar, l as Card, t as CardContent, a as CardDescription, d as CardFooter, n as CardHeader, r as CardTitle, ln as Carousel, xe as CarouselContent, D as CarouselItem, on as CarouselNext, we as CarouselPrevious, Cr as ChartCard, u as ChartContainer, o as ChartLegend, c as ChartLegendContent, i as ChartStyle, e as ChartTooltip, s as ChartTooltipContent, Ze as Checkbox, Er as CircularGauge, Ge as Collapsible, nn as CollapsibleContent, fn as CollapsibleTrigger, Bn as Command, or as CommandDialog, lr as CommandEmpty, Hn as CommandGroup, cr as CommandInput, Rn as CommandItem, An as CommandList, sr as CommandSeparator, zn as CommandShortcut, Mr as ConfirmationDialog, Mt as ContextMenu, Wt as ContextMenuCheckboxItem, _t as ContextMenuContent, Je as ContextMenuGroup, Ft as ContextMenuItem, qt as ContextMenuLabel, et as ContextMenuPortal, Et as ContextMenuRadioGroup, $t as ContextMenuRadioItem, rt as ContextMenuSeparator, ct as ContextMenuShortcut, Rt as ContextMenuSub, kt as ContextMenuSubContent, mt as ContextMenuSubTrigger, dt as ContextMenuTrigger, h as DashboardCard, li as DataTable, Rr as DatePicker, Br as DateRangePicker, Mn as Dialog, jn as DialogClose, In as DialogContent, Xn as DialogDescription, kn as DialogFooter, Yn as DialogHeader, Pn as DialogOverlay, Fn as DialogPortal, Ln as DialogTitle, Nn as DialogTrigger, Q as Drawer, Ht as DrawerClose, Y as DrawerContent, Be as DrawerDescription, Le as DrawerFooter, Ue as DrawerHeader, ge as DrawerOverlay, y as DrawerPortal, at as DrawerTitle, Xt as DrawerTrigger, xt as DropdownMenu, ie as DropdownMenuCheckboxItem, se as DropdownMenuContent, pe as DropdownMenuGroup, L as DropdownMenuItem, K as DropdownMenuLabel, te as DropdownMenuPortal, ye as DropdownMenuRadioGroup, gn as DropdownMenuRadioItem, T as DropdownMenuSeparator, je as DropdownMenuShortcut, U as DropdownMenuSub, Oe as DropdownMenuSubContent, Pe as DropdownMenuSubTrigger, B as DropdownMenuTrigger, kr as ErrorAlert, $r as ErrorState, Wr as FilterField, Gr as FilterPills, Kr as FilterPillsGroup, Jr as FlagFrIcon, Yr as FlagGbIcon, Se as Form, O as FormControl, sn as FormDescription, Ar as FormDialog, Te as FormField, P as FormItem, j as FormLabel, ue as FormMessage, Lr as GenericForm, oi as GlobalSearch, pn as HoverCard, Qe as HoverCardContent, un as HoverCardTrigger, Nr as ImageInput, Kn as Input, ht as InputOTP, ft as InputOTPGroup, Ke as InputOTPSeparator, rn as InputOTPSlot, ui as JsonTableOutput, f as KpiCard, p as KpiCards, ni as KpiCardsLayout, S as Label, Zr as LanguageSelector, wr as LineChart, ei as LoadingState, v as Menubar, ot as MenubarCheckboxItem, Zt as MenubarContent, Nt as MenubarGroup, Gt as MenubarItem, vt as MenubarLabel, Ye as MenubarMenu, It as MenubarPortal, Jt as MenubarRadioGroup, tt as MenubarRadioItem, Dt as MenubarSeparator, en as MenubarShortcut, it as MenubarSub, lt as MenubarSubContent, zt as MenubarSubTrigger, At as MenubarTrigger, g as MetricCard, Ir as MultiSelect, Me as NavigationMenu, R as NavigationMenuContent, X as NavigationMenuIndicator, Bt as NavigationMenuItem, q as NavigationMenuLink, Re as NavigationMenuList, Fe as NavigationMenuTrigger, Ve as NavigationMenuViewport, ri as NotificationsBell, $ as Pagination, _e as PaginationContent, mn as PaginationEllipsis, C as PaginationItem, ke as PaginationLink, V as PaginationNext, Ee as PaginationPrevious, Or as PieChart, tr as Popover, Qn as PopoverContent, qn as PopoverTrigger, W as Progress, de as RadioGroup, F as RadioGroupItem, Xr as RatingInput, yt as ResizableHandle, ne as ResizablePanel, ae as ResizablePanelGroup, Wn as ScrollArea, Gn as ScrollBar, Vr as SearchInput, vr as Select, mr as SelectContent, gr as SelectGroup, fr as SelectItem, ur as SelectLabel, hr as SelectScrollDownButton, _r as SelectScrollUpButton, dr as SelectSeparator, pr as SelectTrigger, yr as SelectValue, b as Separator, ir as Sheet, $n as SheetClose, nr as SheetContent, Jn as SheetDescription, Vn as SheetFooter, er as SheetHeader, rr as SheetOverlay, Un as SheetPortal, Zn as SheetTitle, ar as SheetTrigger, si as Sidebar, ai as SidebarHeader, ii as SidebarNavItem, be as SimpleTable, E as SimpleTableBody, an as SimpleTableCaption, Ce as SimpleTableCell, M as SimpleTableFooter, k as SimpleTableHead, ce as SimpleTableHeader, St as SimpleTableRow, zr as SingleSelect, br as Skeleton, m as SkeletonCard, _ as SkeletonCards, cn as Slider, dn as Sonner, tn as Switch, di as TableActions, fi as TableBody, pi as TableBulkActions, qr as TableFilter, mi as TableHeader, hi as TablePagination, gi as TableSettings, Ot as Tabs, pt as TabsContent, ut as TabsList, We as TabsTrigger, Lt as Textarea, xi as ThemeSelector, Pt as Toast, Kt as ToastAction, $e as ToastClose, Tt as ToastDescription, Qt as ToastProvider, nt as ToastTitle, st as ToastViewport, qe as Toaster, Ut as Toggle, Yt as ToggleGroup, jt as ToggleGroupItem, On as Tooltip, wn as TooltipContent, En as TooltipProvider, Sn as TooltipTrigger, ci as Topbar, I as badgeVariants, Cn as buttonVariants, bn as controlBaseClass, Tn as controlFilterWidthClass, Dn as controlTriggerClass, Tr as getChartColor, me as navigationMenuTriggerStyle, Xe as toast, gt as toggleVariants, wt as useFormField };
@@ -5,7 +5,7 @@ import { t as i } from "../useNotifications-CyhTruIG.js";
5
5
  import { t as a } from "../useLanguage-Bo6n3OCS.js";
6
6
  import { t as o } from "../useDocumentTitle-DN2FTz2t.js";
7
7
  import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y } from "../behavior-B8iZAgve.js";
8
- import { n as b, t as x } from "../useFixedColumns-DPVEdA6b.js";
9
- import { t as S } from "../ui-BAFhAfBh.js";
8
+ import { n as b, t as x } from "../useFixedColumns-B2yti0Rk.js";
9
+ import { t as S } from "../ui-C-yeu2ep.js";
10
10
  import { t as C } from "../useTheme-DU7ABdZ1.js";
11
11
  export { v as URL_DATE_FORMAT, p as parseDateRange, g as serializeDateRange, n as toast, l as useConfirmDeleteDialog, u as useConfirmationDialog, b as useDataTable, y as useDebouncedValue, h as useDialog, o as useDocumentTitle, x as useFixedColumns, a as useLanguage, r as useMobile, i as useNotifications, f as usePage, e as useScrollFade, S as useServerTable, c as useSidebar, C as useTheme, t as useToast, d as useUrlArrayState, s as useUrlDateRangeState, m as useUrlNumberState, _ as useUrlState };
@@ -4,7 +4,7 @@ import { t as r } from "../../useMobile-pTQ8lWvt.js";
4
4
  import { t as i } from "../../useNotifications-CyhTruIG.js";
5
5
  import { t as a } from "../../useLanguage-Bo6n3OCS.js";
6
6
  import { t as o } from "../../useDocumentTitle-DN2FTz2t.js";
7
- import { n as s, t as c } from "../../useFixedColumns-DPVEdA6b.js";
8
- import { t as l } from "../../ui-BAFhAfBh.js";
7
+ import { n as s, t as c } from "../../useFixedColumns-B2yti0Rk.js";
8
+ import { t as l } from "../../ui-C-yeu2ep.js";
9
9
  import { t as u } from "../../useTheme-DU7ABdZ1.js";
10
10
  export { n as toast, s as useDataTable, o as useDocumentTitle, c as useFixedColumns, a as useLanguage, r as useMobile, i as useNotifications, e as useScrollFade, l as useServerTable, u as useTheme, t as useToast };
@@ -1,4 +1,4 @@
1
1
  import { UseDataTableProps } from "../../types/UseDataTableProps";
2
2
  import { UseDataTableResult } from "../../types/UseDataTableResult";
3
- export declare function useDataTable<T>({ data, columns, rowKey, pageSizeDefault, actions, bulkActions, columnVisibility, server, }: UseDataTableProps<T>): UseDataTableResult<T>;
3
+ export declare function useDataTable<T>({ data, columns, rowKey, rowSelectable, pageSizeDefault, actions, bulkActions, columnVisibility, server, }: UseDataTableProps<T>): UseDataTableResult<T>;
4
4
  //# sourceMappingURL=useDataTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDataTable.d.ts","sourceRoot":"","sources":["../../../src/hooks/ui/useDataTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA6BhE,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAuB,EACvB,MAAM,GACP,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CA+R9C"}
1
+ {"version":3,"file":"useDataTable.d.ts","sourceRoot":"","sources":["../../../src/hooks/ui/useDataTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA6BhE,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,MAAM,EACN,aAAa,EACb,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAuB,EACvB,MAAM,GACP,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAmS9C"}
@@ -0,0 +1,77 @@
1
+ import { useId as e } from "react";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/components/core/icons/FlagFrIcon.tsx
4
+ var r = ({ className: e }) => /* @__PURE__ */ n("svg", {
5
+ viewBox: "0 0 640 480",
6
+ preserveAspectRatio: "xMidYMid slice",
7
+ className: `rounded-[2px] ${e ?? ""}`,
8
+ "aria-hidden": "true",
9
+ children: [
10
+ /* @__PURE__ */ t("rect", {
11
+ width: "640",
12
+ height: "480",
13
+ fill: "#fff"
14
+ }),
15
+ /* @__PURE__ */ t("rect", {
16
+ width: "213.34",
17
+ height: "480",
18
+ fill: "#002395"
19
+ }),
20
+ /* @__PURE__ */ t("rect", {
21
+ x: "426.66",
22
+ width: "213.34",
23
+ height: "480",
24
+ fill: "#ED2939"
25
+ })
26
+ ]
27
+ }), i = ({ className: r }) => {
28
+ let i = e().replace(/:/g, ""), a = `flag-gb-field-${i}`, o = `flag-gb-saltire-${i}`;
29
+ return /* @__PURE__ */ n("svg", {
30
+ viewBox: "0 0 60 30",
31
+ preserveAspectRatio: "xMidYMid slice",
32
+ className: `rounded-[2px] ${r ?? ""}`,
33
+ "aria-hidden": "true",
34
+ children: [
35
+ /* @__PURE__ */ t("clipPath", {
36
+ id: a,
37
+ children: /* @__PURE__ */ t("path", { d: "M0 0v30h60V0z" })
38
+ }),
39
+ /* @__PURE__ */ t("clipPath", {
40
+ id: o,
41
+ children: /* @__PURE__ */ t("path", { d: "M30 15h30v15zv15H0zH0v-15zv-15h30z" })
42
+ }),
43
+ /* @__PURE__ */ n("g", {
44
+ clipPath: `url(#${a})`,
45
+ children: [
46
+ /* @__PURE__ */ t("path", {
47
+ d: "M0 0v30h60V0z",
48
+ fill: "#012169"
49
+ }),
50
+ /* @__PURE__ */ t("path", {
51
+ d: "M0 0l60 30m0-30L0 30",
52
+ stroke: "#fff",
53
+ strokeWidth: "6"
54
+ }),
55
+ /* @__PURE__ */ t("path", {
56
+ d: "M0 0l60 30m0-30L0 30",
57
+ clipPath: `url(#${o})`,
58
+ stroke: "#C8102E",
59
+ strokeWidth: "4"
60
+ }),
61
+ /* @__PURE__ */ t("path", {
62
+ d: "M30 0v30M0 15h60",
63
+ stroke: "#fff",
64
+ strokeWidth: "10"
65
+ }),
66
+ /* @__PURE__ */ t("path", {
67
+ d: "M30 0v30M0 15h60",
68
+ stroke: "#C8102E",
69
+ strokeWidth: "6"
70
+ })
71
+ ]
72
+ })
73
+ ]
74
+ });
75
+ };
76
+ //#endregion
77
+ export { r as n, i as t };
@@ -14,6 +14,12 @@ export interface DataTableConfig<T> {
14
14
  columns: DataTableColumn<T>[];
15
15
  /** Retourne la clé unique de la ligne (key React, sélection). */
16
16
  rowKey: (row: T) => string;
17
+ /**
18
+ * Autorise ou non la sélection d'une ligne (cases à cocher + « tout sélectionner »).
19
+ * Une ligne non sélectionnable a sa case désactivée et est ignorée par le « tout sélectionner ».
20
+ * Par défaut toutes les lignes sont sélectionnables.
21
+ */
22
+ rowSelectable?: (row: T) => boolean;
17
23
  onRowClick?: (row: T, event: React.MouseEvent<HTMLTableRowElement>) => void;
18
24
  /** Retourne l'URL de destination de la ligne au clic (prioritaire sur onRowClick). */
19
25
  onRowNavigate?: (row: T) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableConfig.d.ts","sourceRoot":"","sources":["../../src/types/DataTableConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,0CAA0C;IAC1C,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,iEAAiE;IACjE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC5E,sFAAsF;IACtF,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,gFAAgF;IAChF,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,iDAAiD;IACjD,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B"}
1
+ {"version":3,"file":"DataTableConfig.d.ts","sourceRoot":"","sources":["../../src/types/DataTableConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,0CAA0C;IAC1C,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,iEAAiE;IACjE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC5E,sFAAsF;IACtF,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,gFAAgF;IAChF,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,iDAAiD;IACjD,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B"}
@@ -6,6 +6,7 @@ export interface UseDataTableProps<T> {
6
6
  data: T[];
7
7
  columns: DataTableColumn<T>[];
8
8
  rowKey: (row: T) => string;
9
+ rowSelectable?: (row: T) => boolean;
9
10
  pageSizeDefault: number;
10
11
  actions?: DataTableRowAction<T>[];
11
12
  bulkActions?: DataTableBulkAction<T>[];
@@ -1 +1 @@
1
- {"version":3,"file":"UseDataTableProps.d.ts","sourceRoot":"","sources":["../../src/types/UseDataTableProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B"}
1
+ {"version":3,"file":"UseDataTableProps.d.ts","sourceRoot":"","sources":["../../src/types/UseDataTableProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B"}
@@ -4,7 +4,7 @@ import "./useMobile-pTQ8lWvt.js";
4
4
  import "./useNotifications-CyhTruIG.js";
5
5
  import "./useLanguage-Bo6n3OCS.js";
6
6
  import "./useDocumentTitle-DN2FTz2t.js";
7
- import "./useFixedColumns-DPVEdA6b.js";
7
+ import "./useFixedColumns-B2yti0Rk.js";
8
8
  import "./constants/index.js";
9
9
  import "./useTheme-DU7ABdZ1.js";
10
10
  import { useCallback as e, useEffect as t, useState as n } from "react";
@@ -0,0 +1,176 @@
1
+ import { useCallback as e, useLayoutEffect as t, useMemo as n, useRef as r, useState as i } from "react";
2
+ //#region src/hooks/ui/useDataTable.ts
3
+ var a = 100, o = (e) => e.defaultVisible !== !1, ee = (e, t) => {
4
+ let n = new Map(t.map((e) => [e.key, e])), r = e.filter((e) => n.has(e)), i = new Set(r);
5
+ return t.forEach((e, n) => {
6
+ if (i.has(e.key)) return;
7
+ let a = 0;
8
+ for (let e = n - 1; e >= 0; e--) {
9
+ let n = r.indexOf(t[e].key);
10
+ if (n !== -1) {
11
+ a = n + 1;
12
+ break;
13
+ }
14
+ }
15
+ r.splice(a, 0, e.key), i.add(e.key);
16
+ }), r.map((e) => n.get(e)).filter((e) => e !== void 0);
17
+ };
18
+ function s({ data: t, columns: s, rowKey: c, rowSelectable: l, pageSizeDefault: te, actions: u, bulkActions: d, columnVisibility: f = !0, server: p }) {
19
+ let { totalRows: m, currentPage: ne, pageSize: h, onPageChange: g, onPageSizeChange: _, sortColumn: v, sortDirection: re, onSortChange: y } = p ?? {}, [ie, b] = i(s.find((e) => e.sortable === !0)?.key ?? null), x = v === void 0 ? ie : v, [ae, oe] = i("asc"), S = re ?? ae, [se, C] = i([]), [w, ce] = i({}), [T, E] = i({}), [D, le] = i(null), [O, k] = i(1), A = ne ?? O, [j, ue] = i(te), M = h ?? j, de = r(null), N = r(null), P = r(0), F = r(0), I = r(null), L = r(null), R = u !== void 0 && u.length > 0, z = d !== void 0 && d.length > 0, B = n(() => D === null ? s : ee(D, s), [D, s]), V = n(() => {
20
+ let e = /* @__PURE__ */ new Set();
21
+ for (let t of s) (w[t.key] ?? o(t)) && e.add(t.key);
22
+ return e;
23
+ }, [s, w]), H = n(() => B.filter((e) => V.has(e.key)), [B, V]), U = n(() => s.reduce((e, t) => ({
24
+ ...e,
25
+ [t.key]: T[t.key] ?? t.minWidth ?? a
26
+ }), {}), [s, T]), fe = H.length + +!!z + (R || f ? 1 : 0), W = m ?? t.length, G = Math.max(1, Math.ceil(W / M)), K = A > G ? G : A, q = W === 0 ? 0 : (K - 1) * M, J = m === void 0 ? Math.min(q + M, t.length) : Math.min(q + t.length, m), Y = e((e) => {
27
+ g ? g(e) : k(e);
28
+ }, [g]), X = e((e) => {
29
+ _ ? _(e) : (ue(e), k(1));
30
+ }, [_]), pe = e((e) => {
31
+ let t = typeof e == "function" ? e(A) : e;
32
+ Y(t);
33
+ }, [A, Y]), me = e((e) => {
34
+ let t = typeof e == "function" ? e(M) : e;
35
+ X(t);
36
+ }, [M, X]), he = e((e) => {
37
+ if (s.find((t) => t.key === e)?.sortable !== !0) return;
38
+ let t = "asc";
39
+ x === e && (t = S === "asc" ? "desc" : "asc"), y ? y(e, t) : (b(e), oe(t), Y(1));
40
+ }, [
41
+ s,
42
+ x,
43
+ S,
44
+ y,
45
+ Y
46
+ ]), Z = e((e) => {
47
+ let t = N.current;
48
+ if (t === null) return;
49
+ let n = e.clientX - P.current, r = Math.max(80, F.current + n);
50
+ E((e) => ({
51
+ ...e,
52
+ [t]: r
53
+ }));
54
+ }, []), Q = e(function e() {
55
+ N.current = null, document.removeEventListener("mousemove", Z), document.removeEventListener("mouseup", e);
56
+ }, [Z]), ge = e((e, t) => {
57
+ e.preventDefault(), e.stopPropagation(), N.current = t, P.current = e.clientX, F.current = U[t], document.addEventListener("mousemove", Z), document.addEventListener("mouseup", Q);
58
+ }, [
59
+ U,
60
+ Z,
61
+ Q
62
+ ]), _e = (e, t) => {
63
+ I.current = t, e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData("text/html", t);
64
+ }, ve = (e, t) => {
65
+ e.preventDefault(), e.dataTransfer.dropEffect = "move", L.current = t;
66
+ }, ye = (e, t) => {
67
+ if (e.preventDefault(), I.current === null || I.current === t) return;
68
+ let n = B.map((e) => e.key), r = n.indexOf(I.current), i = n.indexOf(t);
69
+ r !== -1 && i !== -1 && (n.splice(r, 1), n.splice(i, 0, I.current), le(n), I.current = null, L.current = null);
70
+ }, $ = n(() => y === void 0 ? [...t].sort((e, t) => {
71
+ if (x === null) return 0;
72
+ let n = s.find((e) => e.key === x), r = n?.getSortValue === void 0 ? e[x] : n.getSortValue(e), i = n?.getSortValue === void 0 ? t[x] : n.getSortValue(t);
73
+ if (typeof r == "string" && typeof i == "string") {
74
+ let e = r.localeCompare(i);
75
+ return S === "asc" ? e : -e;
76
+ }
77
+ return r === i ? 0 : r == null ? 1 : i == null ? -1 : r < i ? S === "asc" ? -1 : 1 : r > i ? S === "asc" ? 1 : -1 : 0;
78
+ }) : t, [
79
+ t,
80
+ x,
81
+ S,
82
+ s,
83
+ y
84
+ ]);
85
+ return {
86
+ sortColumn: x,
87
+ sortDirection: S,
88
+ selectedRows: se,
89
+ setSelectedRows: C,
90
+ visibleColumns: V,
91
+ columnWidths: U,
92
+ currentPage: A,
93
+ setCurrentPage: pe,
94
+ pageSize: M,
95
+ setPageSize: me,
96
+ totalPages: G,
97
+ safeCurrentPage: K,
98
+ startIndex: q,
99
+ endIndex: J,
100
+ tableRef: de,
101
+ hasActions: R,
102
+ hasBulkActions: z,
103
+ orderedColumns: B,
104
+ visibleColumnsArray: H,
105
+ colSpanCount: fe,
106
+ paginatedData: n(() => m === void 0 ? $.slice(q, J) : $, [
107
+ $,
108
+ q,
109
+ J,
110
+ m
111
+ ]),
112
+ handleSort: he,
113
+ handleMouseDown: ge,
114
+ handleDragStart: _e,
115
+ handleDragOver: ve,
116
+ handleDrop: ye,
117
+ toggleColumnVisibility: (e) => {
118
+ let t = s.find((t) => t.key === e);
119
+ if (t === void 0) return;
120
+ let n = w[e] ?? o(t);
121
+ ce((t) => ({
122
+ ...t,
123
+ [e]: !n
124
+ }));
125
+ },
126
+ toggleRowSelection: (e) => {
127
+ if (l !== void 0 && !l(e)) return;
128
+ let t = c(e);
129
+ C((n) => n.some((e) => c(e) === t) ? n.filter((e) => c(e) !== t) : [...n, e]);
130
+ },
131
+ toggleSelectAll: () => {
132
+ C((e) => {
133
+ let n = l === void 0 ? t : t.filter(l), r = new Set(n.map(c)), i = e.filter((e) => !r.has(c(e)));
134
+ return n.length > 0 && n.every((t) => e.some((e) => c(e) === c(t))) ? i : [...i, ...n];
135
+ });
136
+ }
137
+ };
138
+ }
139
+ //#endregion
140
+ //#region src/hooks/ui/useFixedColumns.ts
141
+ var c = (e, t) => {
142
+ let n = Object.keys(e);
143
+ return n.length === Object.keys(t).length && n.every((n) => {
144
+ let r = e[n], i = t[n];
145
+ return r.side === i?.side && r.offset === i.offset && r.isEdge === i.isEdge;
146
+ });
147
+ };
148
+ function l(e) {
149
+ let [n, r] = i({});
150
+ return t(() => {
151
+ let t = e.current;
152
+ if (!t) return;
153
+ let n = [], i = () => {
154
+ n = Array.from(t.querySelectorAll("thead th[data-fixed-side]"));
155
+ let e = {}, i = (t, n) => {
156
+ let r = 0;
157
+ t.forEach((i, a) => {
158
+ let o = i.dataset.columnKey;
159
+ o !== void 0 && (e[o] = {
160
+ side: n,
161
+ offset: r,
162
+ isEdge: a === t.length - 1
163
+ }, r += i.getBoundingClientRect().width);
164
+ });
165
+ };
166
+ i(n.filter((e) => e.dataset.fixedSide === "left"), "left"), i(n.filter((e) => e.dataset.fixedSide === "right").reverse(), "right"), r((t) => c(t, e) ? t : e);
167
+ };
168
+ i();
169
+ let a = typeof ResizeObserver > "u" ? null : new ResizeObserver(i);
170
+ return a?.observe(t), n.forEach((e) => a?.observe(e)), () => {
171
+ a?.disconnect();
172
+ };
173
+ }), n;
174
+ }
175
+ //#endregion
176
+ export { s as n, l as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krosoft/react",
3
- "version": "0.0.300",
3
+ "version": "0.0.302",
4
4
  "description": "Krosoft shared React package",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,175 +0,0 @@
1
- import { useCallback as e, useLayoutEffect as t, useMemo as n, useRef as r, useState as i } from "react";
2
- //#region src/hooks/ui/useDataTable.ts
3
- var a = 100, o = (e) => e.defaultVisible !== !1, s = (e, t) => {
4
- let n = new Map(t.map((e) => [e.key, e])), r = e.filter((e) => n.has(e)), i = new Set(r);
5
- return t.forEach((e, n) => {
6
- if (i.has(e.key)) return;
7
- let a = 0;
8
- for (let e = n - 1; e >= 0; e--) {
9
- let n = r.indexOf(t[e].key);
10
- if (n !== -1) {
11
- a = n + 1;
12
- break;
13
- }
14
- }
15
- r.splice(a, 0, e.key), i.add(e.key);
16
- }), r.map((e) => n.get(e)).filter((e) => e !== void 0);
17
- };
18
- function c({ data: t, columns: c, rowKey: l, pageSizeDefault: u, actions: d, bulkActions: f, columnVisibility: ee = !0, server: p }) {
19
- let { totalRows: m, currentPage: h, pageSize: te, onPageChange: g, onPageSizeChange: _, sortColumn: v, sortDirection: y, onSortChange: b } = p ?? {}, [ne, re] = i(c.find((e) => e.sortable === !0)?.key ?? null), x = v === void 0 ? ne : v, [ie, ae] = i("asc"), S = y ?? ie, [oe, C] = i([]), [w, T] = i({}), [E, D] = i({}), [O, se] = i(null), [ce, k] = i(1), A = h ?? ce, [le, ue] = i(u), j = te ?? le, de = r(null), M = r(null), N = r(0), P = r(0), F = r(null), I = r(null), L = d !== void 0 && d.length > 0, R = f !== void 0 && f.length > 0, z = n(() => O === null ? c : s(O, c), [O, c]), B = n(() => {
20
- let e = /* @__PURE__ */ new Set();
21
- for (let t of c) (w[t.key] ?? o(t)) && e.add(t.key);
22
- return e;
23
- }, [c, w]), V = n(() => z.filter((e) => B.has(e.key)), [z, B]), H = n(() => c.reduce((e, t) => ({
24
- ...e,
25
- [t.key]: E[t.key] ?? t.minWidth ?? a
26
- }), {}), [c, E]), fe = V.length + +!!R + (L || ee ? 1 : 0), U = m ?? t.length, W = Math.max(1, Math.ceil(U / j)), G = A > W ? W : A, K = U === 0 ? 0 : (G - 1) * j, q = m === void 0 ? Math.min(K + j, t.length) : Math.min(K + t.length, m), J = e((e) => {
27
- g ? g(e) : k(e);
28
- }, [g]), Y = e((e) => {
29
- _ ? _(e) : (ue(e), k(1));
30
- }, [_]), pe = e((e) => {
31
- let t = typeof e == "function" ? e(A) : e;
32
- J(t);
33
- }, [A, J]), me = e((e) => {
34
- let t = typeof e == "function" ? e(j) : e;
35
- Y(t);
36
- }, [j, Y]), he = e((e) => {
37
- if (c.find((t) => t.key === e)?.sortable !== !0) return;
38
- let t = "asc";
39
- x === e && (t = S === "asc" ? "desc" : "asc"), b ? b(e, t) : (re(e), ae(t), J(1));
40
- }, [
41
- c,
42
- x,
43
- S,
44
- b,
45
- J
46
- ]), X = e((e) => {
47
- let t = M.current;
48
- if (t === null) return;
49
- let n = e.clientX - N.current, r = Math.max(80, P.current + n);
50
- D((e) => ({
51
- ...e,
52
- [t]: r
53
- }));
54
- }, []), Z = e(function e() {
55
- M.current = null, document.removeEventListener("mousemove", X), document.removeEventListener("mouseup", e);
56
- }, [X]), ge = e((e, t) => {
57
- e.preventDefault(), e.stopPropagation(), M.current = t, N.current = e.clientX, P.current = H[t], document.addEventListener("mousemove", X), document.addEventListener("mouseup", Z);
58
- }, [
59
- H,
60
- X,
61
- Z
62
- ]), _e = (e, t) => {
63
- F.current = t, e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData("text/html", t);
64
- }, Q = (e, t) => {
65
- e.preventDefault(), e.dataTransfer.dropEffect = "move", I.current = t;
66
- }, ve = (e, t) => {
67
- if (e.preventDefault(), F.current === null || F.current === t) return;
68
- let n = z.map((e) => e.key), r = n.indexOf(F.current), i = n.indexOf(t);
69
- r !== -1 && i !== -1 && (n.splice(r, 1), n.splice(i, 0, F.current), se(n), F.current = null, I.current = null);
70
- }, $ = n(() => b === void 0 ? [...t].sort((e, t) => {
71
- if (x === null) return 0;
72
- let n = c.find((e) => e.key === x), r = n?.getSortValue === void 0 ? e[x] : n.getSortValue(e), i = n?.getSortValue === void 0 ? t[x] : n.getSortValue(t);
73
- if (typeof r == "string" && typeof i == "string") {
74
- let e = r.localeCompare(i);
75
- return S === "asc" ? e : -e;
76
- }
77
- return r === i ? 0 : r == null ? 1 : i == null ? -1 : r < i ? S === "asc" ? -1 : 1 : r > i ? S === "asc" ? 1 : -1 : 0;
78
- }) : t, [
79
- t,
80
- x,
81
- S,
82
- c,
83
- b
84
- ]);
85
- return {
86
- sortColumn: x,
87
- sortDirection: S,
88
- selectedRows: oe,
89
- setSelectedRows: C,
90
- visibleColumns: B,
91
- columnWidths: H,
92
- currentPage: A,
93
- setCurrentPage: pe,
94
- pageSize: j,
95
- setPageSize: me,
96
- totalPages: W,
97
- safeCurrentPage: G,
98
- startIndex: K,
99
- endIndex: q,
100
- tableRef: de,
101
- hasActions: L,
102
- hasBulkActions: R,
103
- orderedColumns: z,
104
- visibleColumnsArray: V,
105
- colSpanCount: fe,
106
- paginatedData: n(() => m === void 0 ? $.slice(K, q) : $, [
107
- $,
108
- K,
109
- q,
110
- m
111
- ]),
112
- handleSort: he,
113
- handleMouseDown: ge,
114
- handleDragStart: _e,
115
- handleDragOver: Q,
116
- handleDrop: ve,
117
- toggleColumnVisibility: (e) => {
118
- let t = c.find((t) => t.key === e);
119
- if (t === void 0) return;
120
- let n = w[e] ?? o(t);
121
- T((t) => ({
122
- ...t,
123
- [e]: !n
124
- }));
125
- },
126
- toggleRowSelection: (e) => {
127
- let t = l(e);
128
- C((n) => n.some((e) => l(e) === t) ? n.filter((e) => l(e) !== t) : [...n, e]);
129
- },
130
- toggleSelectAll: () => {
131
- C((e) => {
132
- let n = new Set(t.map(l)), r = e.filter((e) => !n.has(l(e)));
133
- return t.length > 0 && t.every((t) => e.some((e) => l(e) === l(t))) ? r : [...r, ...t];
134
- });
135
- }
136
- };
137
- }
138
- //#endregion
139
- //#region src/hooks/ui/useFixedColumns.ts
140
- var l = (e, t) => {
141
- let n = Object.keys(e);
142
- return n.length === Object.keys(t).length && n.every((n) => {
143
- let r = e[n], i = t[n];
144
- return r.side === i?.side && r.offset === i.offset && r.isEdge === i.isEdge;
145
- });
146
- };
147
- function u(e) {
148
- let [n, r] = i({});
149
- return t(() => {
150
- let t = e.current;
151
- if (!t) return;
152
- let n = [], i = () => {
153
- n = Array.from(t.querySelectorAll("thead th[data-fixed-side]"));
154
- let e = {}, i = (t, n) => {
155
- let r = 0;
156
- t.forEach((i, a) => {
157
- let o = i.dataset.columnKey;
158
- o !== void 0 && (e[o] = {
159
- side: n,
160
- offset: r,
161
- isEdge: a === t.length - 1
162
- }, r += i.getBoundingClientRect().width);
163
- });
164
- };
165
- i(n.filter((e) => e.dataset.fixedSide === "left"), "left"), i(n.filter((e) => e.dataset.fixedSide === "right").reverse(), "right"), r((t) => l(t, e) ? t : e);
166
- };
167
- i();
168
- let a = typeof ResizeObserver > "u" ? null : new ResizeObserver(i);
169
- return a?.observe(t), n.forEach((e) => a?.observe(e)), () => {
170
- a?.disconnect();
171
- };
172
- }), n;
173
- }
174
- //#endregion
175
- export { c as n, u as t };