@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.
- package/dist/components/core/icons/FlagFrIcon.d.ts +17 -0
- package/dist/components/core/icons/FlagFrIcon.d.ts.map +1 -0
- package/dist/components/core/icons/FlagGbIcon.d.ts +19 -0
- package/dist/components/core/icons/FlagGbIcon.d.ts.map +1 -0
- package/dist/components/core/icons/index.d.ts +3 -0
- package/dist/components/core/icons/index.d.ts.map +1 -0
- package/dist/components/core/icons/index.js +2 -0
- package/dist/components/core/index.d.ts +1 -0
- package/dist/components/core/index.d.ts.map +1 -1
- package/dist/components/core/index.js +11 -10
- package/dist/components/core/table/DataTable.d.ts.map +1 -1
- package/dist/components/core/table/TableBody.d.ts +2 -1
- package/dist/components/core/table/TableBody.d.ts.map +1 -1
- package/dist/components/core/table/index.js +125 -122
- package/dist/components/index.js +11 -10
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/ui/index.js +2 -2
- package/dist/hooks/ui/useDataTable.d.ts +1 -1
- package/dist/hooks/ui/useDataTable.d.ts.map +1 -1
- package/dist/icons-n0m_1w7z.js +77 -0
- package/dist/types/DataTableConfig.d.ts +6 -0
- package/dist/types/DataTableConfig.d.ts.map +1 -1
- package/dist/types/UseDataTableProps.d.ts +1 -0
- package/dist/types/UseDataTableProps.d.ts.map +1 -1
- package/dist/{ui-BAFhAfBh.js → ui-C-yeu2ep.js} +1 -1
- package/dist/useFixedColumns-B2yti0Rk.js +176 -0
- package/package.json +1 -1
- package/dist/useFixedColumns-DPVEdA6b.js +0 -175
|
@@ -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 @@
|
|
|
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"}
|
|
@@ -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 {
|
|
16
|
-
import { t as
|
|
17
|
-
import { t as
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
|
|
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,
|
|
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,
|
|
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-
|
|
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
|
|
12
|
-
import { useNavigate as
|
|
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
|
|
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(
|
|
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
|
|
65
|
-
let { t:
|
|
66
|
-
let n =
|
|
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(
|
|
81
|
+
children: [/* @__PURE__ */ N(re, { className: "h-6 w-6 animate-spin text-primary" }), /* @__PURE__ */ N("span", {
|
|
82
82
|
className: "text-sm",
|
|
83
|
-
children:
|
|
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:
|
|
107
|
+
children: A
|
|
108
108
|
}) })
|
|
109
109
|
});
|
|
110
|
-
let
|
|
111
|
-
if (
|
|
112
|
-
|
|
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") :
|
|
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 ${
|
|
125
|
+
className: `group hover:bg-muted/50 transition-colors ${z ? "cursor-pointer" : ""}`,
|
|
126
126
|
onClick: (t) => {
|
|
127
|
-
|
|
127
|
+
B(e, t);
|
|
128
128
|
},
|
|
129
129
|
children: [
|
|
130
130
|
m ? /* @__PURE__ */ N("td", {
|
|
131
|
-
className: `p-1 text-center align-middle ${
|
|
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
|
-
...
|
|
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:
|
|
144
|
+
checked: _.has(t),
|
|
145
|
+
disabled: !a,
|
|
145
146
|
onCheckedChange: () => {
|
|
146
|
-
|
|
147
|
+
v(e);
|
|
147
148
|
}
|
|
148
149
|
})
|
|
149
150
|
})
|
|
150
151
|
}) : null,
|
|
151
|
-
|
|
152
|
-
let o = a ===
|
|
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 && !
|
|
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
|
-
...
|
|
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:
|
|
162
|
+
children: M(e, t.key)
|
|
162
163
|
})
|
|
163
164
|
}, t.key);
|
|
164
165
|
}),
|
|
165
|
-
|
|
166
|
-
className: `py-1 pl-1 pr-4 text-right align-middle whitespace-nowrap ${
|
|
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
|
-
...
|
|
170
|
+
...I.style
|
|
170
171
|
},
|
|
171
172
|
onClick: (e) => {
|
|
172
173
|
e.stopPropagation();
|
|
173
174
|
},
|
|
174
|
-
children:
|
|
175
|
+
children: S !== void 0 && S.length > 0 ? /* @__PURE__ */ N("div", {
|
|
175
176
|
className: "flex items-center justify-end",
|
|
176
|
-
children: /* @__PURE__ */ N(
|
|
177
|
-
actions:
|
|
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
|
|
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
|
|
232
|
+
var K = {
|
|
232
233
|
left: "justify-start",
|
|
233
234
|
center: "justify-center",
|
|
234
235
|
right: "justify-end"
|
|
235
236
|
};
|
|
236
|
-
function
|
|
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" ?
|
|
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 ${
|
|
271
|
+
className: `flex items-center gap-1 ${K[d]} ${f ? "pr-2" : ""}`,
|
|
271
272
|
children: [
|
|
272
|
-
s ? /* @__PURE__ */ N(
|
|
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
|
|
328
|
-
function
|
|
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
|
|
332
|
-
if (n * 2 + 5 >= t) return
|
|
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
|
-
...
|
|
336
|
-
|
|
336
|
+
...Y(1, n + 2),
|
|
337
|
+
J,
|
|
337
338
|
t
|
|
338
339
|
] : a && !o ? [
|
|
339
340
|
1,
|
|
340
|
-
|
|
341
|
-
...
|
|
341
|
+
J,
|
|
342
|
+
...Y(t - (n + 2) + 1, t)
|
|
342
343
|
] : [
|
|
343
344
|
1,
|
|
344
|
-
|
|
345
|
-
...
|
|
346
|
-
|
|
345
|
+
J,
|
|
346
|
+
...Y(r, i),
|
|
347
|
+
J,
|
|
347
348
|
t
|
|
348
349
|
];
|
|
349
350
|
}
|
|
350
|
-
function
|
|
351
|
-
let { t: u } = a(), d =
|
|
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(
|
|
375
|
+
children: /* @__PURE__ */ N(ee, { className: "size-4" })
|
|
375
376
|
}),
|
|
376
|
-
d.map((e, t) => e ===
|
|
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:
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
448
|
-
let { columns: a, rowKey: o,
|
|
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
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
453
|
+
rowSelectable: s,
|
|
454
|
+
pageSizeDefault: f,
|
|
455
|
+
actions: u,
|
|
456
|
+
bulkActions: d,
|
|
457
|
+
columnVisibility: v,
|
|
456
458
|
server: i
|
|
457
|
-
}),
|
|
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: [
|
|
461
|
-
selectedRows:
|
|
462
|
-
setSelectedRows:
|
|
463
|
-
bulkActions:
|
|
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:
|
|
471
|
+
ref: L,
|
|
470
472
|
className: "w-full",
|
|
471
|
-
children: [/* @__PURE__ */ N(
|
|
472
|
-
hasBulkActions:
|
|
473
|
-
allSelected:
|
|
474
|
-
someSelected:
|
|
475
|
-
toggleSelectAll:
|
|
476
|
-
visibleColumnsArray:
|
|
477
|
-
draggableColumns:
|
|
478
|
-
resizableColumns:
|
|
479
|
-
columnWidths:
|
|
480
|
-
sortColumn:
|
|
481
|
-
sortDirection:
|
|
482
|
-
handleSort:
|
|
483
|
-
handleDragStart:
|
|
484
|
-
handleDragOver:
|
|
485
|
-
handleDrop:
|
|
486
|
-
handleMouseDown:
|
|
487
|
-
hasActions:
|
|
488
|
-
bordered:
|
|
489
|
-
dense:
|
|
490
|
-
fixedColumns:
|
|
491
|
-
fixedSelection:
|
|
492
|
-
fixedActions:
|
|
493
|
-
settingsNode:
|
|
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:
|
|
496
|
-
toggleColumnVisibility:
|
|
497
|
+
visibleColumns: w,
|
|
498
|
+
toggleColumnVisibility: H
|
|
497
499
|
}) : void 0
|
|
498
|
-
}), /* @__PURE__ */ N(
|
|
499
|
-
bordered:
|
|
500
|
-
dense:
|
|
500
|
+
}), /* @__PURE__ */ N(W, {
|
|
501
|
+
bordered: h,
|
|
502
|
+
dense: m,
|
|
501
503
|
isLoading: t,
|
|
502
504
|
error: n,
|
|
503
|
-
colSpanCount:
|
|
505
|
+
colSpanCount: V,
|
|
504
506
|
messages: r.messages,
|
|
505
|
-
paginatedData:
|
|
507
|
+
paginatedData: ee,
|
|
506
508
|
rowKey: o,
|
|
507
|
-
onRowClick:
|
|
508
|
-
onRowNavigate:
|
|
509
|
-
hasBulkActions:
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
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:
|
|
518
|
-
fixedColumns:
|
|
520
|
+
resizableColumns: _,
|
|
521
|
+
fixedColumns: Z
|
|
519
522
|
})]
|
|
520
523
|
})
|
|
521
|
-
}), /* @__PURE__ */ N(
|
|
524
|
+
}), /* @__PURE__ */ N(X, {
|
|
522
525
|
totalItems: i?.totalRows ?? e.length,
|
|
523
|
-
startIndex:
|
|
524
|
-
endIndex:
|
|
525
|
-
pageSize:
|
|
526
|
-
setPageSize:
|
|
527
|
-
currentPage:
|
|
528
|
-
setCurrentPage:
|
|
529
|
-
pageSizeOptions:
|
|
530
|
-
totalPages:
|
|
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
|
|
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 {
|
|
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 };
|
package/dist/components/index.js
CHANGED
|
@@ -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 {
|
|
20
|
-
import { t as
|
|
21
|
-
import { t as
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
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,
|
|
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 };
|
package/dist/hooks/index.js
CHANGED
|
@@ -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-
|
|
9
|
-
import { t as S } from "../ui-
|
|
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 };
|
package/dist/hooks/ui/index.js
CHANGED
|
@@ -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-
|
|
8
|
-
import { t as l } from "../../ui-
|
|
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,
|
|
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"}
|
|
@@ -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-
|
|
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,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 };
|