@sustaina/shared-ui 1.41.0 → 1.43.0
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/index.d.mts +26 -10
- package/dist/index.d.ts +26 -10
- package/dist/index.js +833 -567
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +673 -409
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React27 from 'react';
|
|
2
|
+
import React27__default, { forwardRef, useRef, useMemo, useCallback, useState, isValidElement, useEffect, useLayoutEffect, createElement } from 'react';
|
|
3
3
|
import { useRouter } from '@tanstack/react-router';
|
|
4
4
|
import { create } from 'zustand';
|
|
5
5
|
import clsx2, { clsx } from 'clsx';
|
|
@@ -18,6 +18,7 @@ import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
|
18
18
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
19
19
|
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
20
20
|
import { reSplitAlphaNumeric, useReactTable, getCoreRowModel, getGroupedRowModel, getExpandedRowModel, getSortedRowModel, getFilteredRowModel, flexRender } from '@tanstack/react-table';
|
|
21
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
21
22
|
import * as SheetPrimitive from '@radix-ui/react-dialog';
|
|
22
23
|
import { initReactI18next, useTranslation, I18nextProvider } from 'react-i18next';
|
|
23
24
|
import i18n from 'i18next';
|
|
@@ -60,7 +61,6 @@ import { z } from 'zod';
|
|
|
60
61
|
import Cropper from 'react-easy-crop';
|
|
61
62
|
import { NumericFormat } from 'react-number-format';
|
|
62
63
|
import { Command as Command$1 } from 'cmdk';
|
|
63
|
-
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
64
64
|
|
|
65
65
|
var __defProp = Object.defineProperty;
|
|
66
66
|
var __export = (target, all) => {
|
|
@@ -1947,6 +1947,68 @@ var UserFriendIcon = ({ size = "1em", className, ...props }) => /* @__PURE__ */
|
|
|
1947
1947
|
}
|
|
1948
1948
|
);
|
|
1949
1949
|
var user_friend_default = UserFriendIcon;
|
|
1950
|
+
var UserGroupIcon = ({
|
|
1951
|
+
size = "1em",
|
|
1952
|
+
stroke = "currentColor",
|
|
1953
|
+
className,
|
|
1954
|
+
...props
|
|
1955
|
+
}) => /* @__PURE__ */ jsxs(
|
|
1956
|
+
"svg",
|
|
1957
|
+
{
|
|
1958
|
+
viewBox: "0 0 18 18",
|
|
1959
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1960
|
+
fill: "none",
|
|
1961
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
1962
|
+
width: size,
|
|
1963
|
+
height: size,
|
|
1964
|
+
className,
|
|
1965
|
+
"aria-hidden": true,
|
|
1966
|
+
...props,
|
|
1967
|
+
children: [
|
|
1968
|
+
/* @__PURE__ */ jsx(
|
|
1969
|
+
"path",
|
|
1970
|
+
{
|
|
1971
|
+
d: "M12 15.75V14.25C12 13.4544 11.6839 12.6913 11.1213 12.1287C10.5587 11.5661 9.79565 11.25 9 11.25H4.5C3.70435 11.25 2.94129 11.5661 2.37868 12.1287C1.81607 12.6913 1.5 13.4544 1.5 14.25V15.75",
|
|
1972
|
+
stroke,
|
|
1973
|
+
strokeWidth: "1.5",
|
|
1974
|
+
strokeLinecap: "round",
|
|
1975
|
+
strokeLinejoin: "round"
|
|
1976
|
+
}
|
|
1977
|
+
),
|
|
1978
|
+
/* @__PURE__ */ jsx(
|
|
1979
|
+
"path",
|
|
1980
|
+
{
|
|
1981
|
+
d: "M12 2.34595C12.6433 2.51272 13.213 2.8884 13.6198 3.41399C14.0265 3.93959 14.2471 4.58536 14.2471 5.24995C14.2471 5.91453 14.0265 6.5603 13.6198 7.0859C13.213 7.6115 12.6433 7.98717 12 8.15395",
|
|
1982
|
+
stroke,
|
|
1983
|
+
strokeWidth: "1.5",
|
|
1984
|
+
strokeLinecap: "round",
|
|
1985
|
+
strokeLinejoin: "round"
|
|
1986
|
+
}
|
|
1987
|
+
),
|
|
1988
|
+
/* @__PURE__ */ jsx(
|
|
1989
|
+
"path",
|
|
1990
|
+
{
|
|
1991
|
+
d: "M16.5 15.7499V14.2499C16.4995 13.5852 16.2783 12.9395 15.871 12.4141C15.4638 11.8888 14.8936 11.5136 14.25 11.3474",
|
|
1992
|
+
stroke,
|
|
1993
|
+
strokeWidth: "1.5",
|
|
1994
|
+
strokeLinecap: "round",
|
|
1995
|
+
strokeLinejoin: "round"
|
|
1996
|
+
}
|
|
1997
|
+
),
|
|
1998
|
+
/* @__PURE__ */ jsx(
|
|
1999
|
+
"path",
|
|
2000
|
+
{
|
|
2001
|
+
d: "M6.75 8.25C8.40685 8.25 9.75 6.90685 9.75 5.25C9.75 3.59315 8.40685 2.25 6.75 2.25C5.09315 2.25 3.75 3.59315 3.75 5.25C3.75 6.90685 5.09315 8.25 6.75 8.25Z",
|
|
2002
|
+
stroke,
|
|
2003
|
+
strokeWidth: "1.5",
|
|
2004
|
+
strokeLinecap: "round",
|
|
2005
|
+
strokeLinejoin: "round"
|
|
2006
|
+
}
|
|
2007
|
+
)
|
|
2008
|
+
]
|
|
2009
|
+
}
|
|
2010
|
+
);
|
|
2011
|
+
var user_group_default = UserGroupIcon;
|
|
1950
2012
|
var UserIcon = ({ size = "1em", className, ...props }) => /* @__PURE__ */ jsxs(
|
|
1951
2013
|
"svg",
|
|
1952
2014
|
{
|
|
@@ -2542,7 +2604,7 @@ var OPERATOR_LABEL = {
|
|
|
2542
2604
|
containsAll: "Contains all of"
|
|
2543
2605
|
};
|
|
2544
2606
|
var OperatorSelect = ({ row, operators, onChangeOperator, error }) => {
|
|
2545
|
-
|
|
2607
|
+
React27__default.useEffect(() => {
|
|
2546
2608
|
if (!operators.length) return;
|
|
2547
2609
|
if (!operators.includes(row.operator)) {
|
|
2548
2610
|
onChangeOperator(operators[0]);
|
|
@@ -2578,15 +2640,15 @@ function Label2({ className, ...props }) {
|
|
|
2578
2640
|
);
|
|
2579
2641
|
}
|
|
2580
2642
|
var Form = FormProvider;
|
|
2581
|
-
var FormFieldContext =
|
|
2643
|
+
var FormFieldContext = React27.createContext({});
|
|
2582
2644
|
var FormField = ({
|
|
2583
2645
|
...props
|
|
2584
2646
|
}) => {
|
|
2585
2647
|
return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
|
|
2586
2648
|
};
|
|
2587
2649
|
var useFormField = () => {
|
|
2588
|
-
const fieldContext =
|
|
2589
|
-
const itemContext =
|
|
2650
|
+
const fieldContext = React27.useContext(FormFieldContext);
|
|
2651
|
+
const itemContext = React27.useContext(FormItemContext);
|
|
2590
2652
|
const { getFieldState } = useFormContext();
|
|
2591
2653
|
const formState = useFormState({ name: fieldContext.name });
|
|
2592
2654
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -2603,9 +2665,9 @@ var useFormField = () => {
|
|
|
2603
2665
|
...fieldState
|
|
2604
2666
|
};
|
|
2605
2667
|
};
|
|
2606
|
-
var FormItemContext =
|
|
2668
|
+
var FormItemContext = React27.createContext({});
|
|
2607
2669
|
function FormItem({ className, ...props }) {
|
|
2608
|
-
const id =
|
|
2670
|
+
const id = React27.useId();
|
|
2609
2671
|
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { "data-slot": "form-item", className: cn("grid gap-2", className), ...props }) });
|
|
2610
2672
|
}
|
|
2611
2673
|
function FormLabel({ className, ...props }) {
|
|
@@ -2709,7 +2771,7 @@ var Spinner = ({ className, variant, size = "default", ...props }) => /* @__PURE
|
|
|
2709
2771
|
]
|
|
2710
2772
|
}
|
|
2711
2773
|
);
|
|
2712
|
-
var InputPrimitive =
|
|
2774
|
+
var InputPrimitive = React27.forwardRef(
|
|
2713
2775
|
({ className, type = "text", ...props }, ref) => {
|
|
2714
2776
|
return /* @__PURE__ */ jsx(
|
|
2715
2777
|
"input",
|
|
@@ -2748,7 +2810,7 @@ var inputVariants = cva("", {
|
|
|
2748
2810
|
appearance: "filled"
|
|
2749
2811
|
}
|
|
2750
2812
|
});
|
|
2751
|
-
var Input =
|
|
2813
|
+
var Input = React27.forwardRef(
|
|
2752
2814
|
({
|
|
2753
2815
|
className,
|
|
2754
2816
|
wrapperClassName,
|
|
@@ -2781,8 +2843,8 @@ var Input = React26.forwardRef(
|
|
|
2781
2843
|
onChange: onChangeProp
|
|
2782
2844
|
} = rest;
|
|
2783
2845
|
const ariaInvalid = invalid ?? ariaInvalidProp;
|
|
2784
|
-
const messageId =
|
|
2785
|
-
const handleChange =
|
|
2846
|
+
const messageId = React27.useId();
|
|
2847
|
+
const handleChange = React27.useCallback(
|
|
2786
2848
|
(event) => {
|
|
2787
2849
|
onChangeProp?.(event);
|
|
2788
2850
|
onValueChange?.(event.target.value);
|
|
@@ -3170,20 +3232,20 @@ function DatePicker({
|
|
|
3170
3232
|
className,
|
|
3171
3233
|
...props
|
|
3172
3234
|
}) {
|
|
3173
|
-
const today =
|
|
3174
|
-
const [displayed, setDisplayed] =
|
|
3235
|
+
const today = React27.useMemo(() => startOfDay(/* @__PURE__ */ new Date()), []);
|
|
3236
|
+
const [displayed, setDisplayed] = React27.useState(
|
|
3175
3237
|
selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date()
|
|
3176
3238
|
);
|
|
3177
3239
|
minDate = clampToDay(minDate);
|
|
3178
3240
|
maxDate = clampToDay(maxDate);
|
|
3179
|
-
const disabledSet =
|
|
3241
|
+
const disabledSet = React27.useMemo(() => {
|
|
3180
3242
|
const s = /* @__PURE__ */ new Set();
|
|
3181
3243
|
disabledDates?.forEach((d) => s.add(startOfDay(d).toISOString()));
|
|
3182
3244
|
return s;
|
|
3183
3245
|
}, [disabledDates]);
|
|
3184
3246
|
const displayYear = displayed.getFullYear();
|
|
3185
3247
|
const displayMonth = displayed.getMonth();
|
|
3186
|
-
const weekdays =
|
|
3248
|
+
const weekdays = React27.useMemo(() => {
|
|
3187
3249
|
const labels = [];
|
|
3188
3250
|
for (let i = 0; i < 7; i++) {
|
|
3189
3251
|
const idx = i;
|
|
@@ -3192,7 +3254,7 @@ function DatePicker({
|
|
|
3192
3254
|
}
|
|
3193
3255
|
return labels;
|
|
3194
3256
|
}, [callbacks]);
|
|
3195
|
-
const grid =
|
|
3257
|
+
const grid = React27.useMemo(() => buildCalendarGrid(displayed, true), [displayed]);
|
|
3196
3258
|
const isDateDisabled = (date) => {
|
|
3197
3259
|
const d = startOfDay(date);
|
|
3198
3260
|
if (minDate && d < minDate) return true;
|
|
@@ -3202,7 +3264,7 @@ function DatePicker({
|
|
|
3202
3264
|
};
|
|
3203
3265
|
const minYear = minDate?.getFullYear();
|
|
3204
3266
|
const maxYear = maxDate?.getFullYear();
|
|
3205
|
-
const getMonthLabel =
|
|
3267
|
+
const getMonthLabel = React27.useCallback(
|
|
3206
3268
|
(year, monthIndex) => {
|
|
3207
3269
|
const label = callbacks?.monthLabel?.(year, monthIndex);
|
|
3208
3270
|
if (label === null || label === void 0) {
|
|
@@ -3212,7 +3274,7 @@ function DatePicker({
|
|
|
3212
3274
|
},
|
|
3213
3275
|
[callbacks]
|
|
3214
3276
|
);
|
|
3215
|
-
const getYearLabel =
|
|
3277
|
+
const getYearLabel = React27.useCallback(
|
|
3216
3278
|
(year) => {
|
|
3217
3279
|
const label = callbacks?.yearLabel?.(year);
|
|
3218
3280
|
if (label === null || label === void 0) return String(year);
|
|
@@ -3220,7 +3282,7 @@ function DatePicker({
|
|
|
3220
3282
|
},
|
|
3221
3283
|
[callbacks]
|
|
3222
3284
|
);
|
|
3223
|
-
const clampMonthToBounds =
|
|
3285
|
+
const clampMonthToBounds = React27.useCallback(
|
|
3224
3286
|
(year, monthIndex) => {
|
|
3225
3287
|
let output = monthIndex;
|
|
3226
3288
|
if (typeof minYear === "number" && year === minYear && minDate) {
|
|
@@ -3235,7 +3297,7 @@ function DatePicker({
|
|
|
3235
3297
|
},
|
|
3236
3298
|
[maxDate, minDate, maxYear, minYear]
|
|
3237
3299
|
);
|
|
3238
|
-
const yearOptions =
|
|
3300
|
+
const yearOptions = React27.useMemo(() => {
|
|
3239
3301
|
const fallbackWindow = 50;
|
|
3240
3302
|
const start = typeof minYear === "number" ? minYear : displayYear - fallbackWindow;
|
|
3241
3303
|
const end = typeof maxYear === "number" ? maxYear : displayYear + fallbackWindow;
|
|
@@ -3256,7 +3318,7 @@ function DatePicker({
|
|
|
3256
3318
|
}
|
|
3257
3319
|
return years;
|
|
3258
3320
|
}, [displayYear, maxYear, minYear, selectedDate]);
|
|
3259
|
-
const monthOptions =
|
|
3321
|
+
const monthOptions = React27.useMemo(() => {
|
|
3260
3322
|
const months = Array.from({ length: 12 }, (_, monthIndex) => {
|
|
3261
3323
|
const disabled = typeof minYear === "number" && displayYear === minYear && minDate && monthIndex < minDate.getMonth() || typeof maxYear === "number" && displayYear === maxYear && maxDate && monthIndex > maxDate.getMonth();
|
|
3262
3324
|
return {
|
|
@@ -3275,7 +3337,7 @@ function DatePicker({
|
|
|
3275
3337
|
}
|
|
3276
3338
|
return months.sort((a, b) => a.value - b.value).filter((option, index, arr) => index === 0 || option.value !== arr[index - 1].value);
|
|
3277
3339
|
}, [displayMonth, displayYear, getMonthLabel, maxDate, maxYear, minDate, minYear]);
|
|
3278
|
-
const handleMonthSelect =
|
|
3340
|
+
const handleMonthSelect = React27.useCallback((nextValue) => {
|
|
3279
3341
|
const nextMonth = Number.parseInt(nextValue, 10);
|
|
3280
3342
|
if (Number.isNaN(nextMonth)) return;
|
|
3281
3343
|
setDisplayed((prev) => {
|
|
@@ -3285,7 +3347,7 @@ function DatePicker({
|
|
|
3285
3347
|
return next;
|
|
3286
3348
|
});
|
|
3287
3349
|
}, []);
|
|
3288
|
-
const handleYearSelect =
|
|
3350
|
+
const handleYearSelect = React27.useCallback(
|
|
3289
3351
|
(nextValue) => {
|
|
3290
3352
|
const nextYear = Number.parseInt(nextValue, 10);
|
|
3291
3353
|
if (Number.isNaN(nextYear)) return;
|
|
@@ -3433,14 +3495,14 @@ var DatePicker2 = ({
|
|
|
3433
3495
|
ariaLabel,
|
|
3434
3496
|
...calendarProps
|
|
3435
3497
|
}) => {
|
|
3436
|
-
const [open, setOpen] =
|
|
3437
|
-
const parser =
|
|
3438
|
-
const outputFormatter =
|
|
3439
|
-
const labelFormatter =
|
|
3498
|
+
const [open, setOpen] = React27__default.useState(false);
|
|
3499
|
+
const parser = React27__default.useMemo(() => valueParser ?? defaultValueParser, [valueParser]);
|
|
3500
|
+
const outputFormatter = React27__default.useMemo(() => valueFormatter ?? defaultValueFormatter, [valueFormatter]);
|
|
3501
|
+
const labelFormatter = React27__default.useMemo(
|
|
3440
3502
|
() => displayFormatter ?? defaultDisplayFormatter,
|
|
3441
3503
|
[displayFormatter]
|
|
3442
3504
|
);
|
|
3443
|
-
const parsedValue =
|
|
3505
|
+
const parsedValue = React27__default.useMemo(() => {
|
|
3444
3506
|
if (value === null || value === void 0) return void 0;
|
|
3445
3507
|
if (value instanceof Date) return value;
|
|
3446
3508
|
const parsed = parser(value);
|
|
@@ -3449,26 +3511,26 @@ var DatePicker2 = ({
|
|
|
3449
3511
|
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
3450
3512
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change date, current selection ${labelFormatter(parsedValue)}` : "Open date picker");
|
|
3451
3513
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
3452
|
-
const handleClose =
|
|
3453
|
-
const emitChange =
|
|
3514
|
+
const handleClose = React27__default.useCallback(() => setOpen(false), []);
|
|
3515
|
+
const emitChange = React27__default.useCallback(
|
|
3454
3516
|
(next) => {
|
|
3455
3517
|
onChange?.(next);
|
|
3456
3518
|
onValueChange?.(next ? outputFormatter(next) : void 0);
|
|
3457
3519
|
},
|
|
3458
3520
|
[onChange, onValueChange, outputFormatter]
|
|
3459
3521
|
);
|
|
3460
|
-
const handleSelect =
|
|
3522
|
+
const handleSelect = React27__default.useCallback(
|
|
3461
3523
|
(next) => {
|
|
3462
3524
|
emitChange(next);
|
|
3463
3525
|
if (closeOnSelect && next) handleClose();
|
|
3464
3526
|
},
|
|
3465
3527
|
[closeOnSelect, emitChange, handleClose]
|
|
3466
3528
|
);
|
|
3467
|
-
const handleClear =
|
|
3529
|
+
const handleClear = React27__default.useCallback(() => {
|
|
3468
3530
|
emitChange(void 0);
|
|
3469
3531
|
handleClose();
|
|
3470
3532
|
}, [emitChange, handleClose]);
|
|
3471
|
-
const handleOpenChange =
|
|
3533
|
+
const handleOpenChange = React27__default.useCallback(
|
|
3472
3534
|
(nextOpen) => {
|
|
3473
3535
|
if (disabled && nextOpen) return;
|
|
3474
3536
|
setOpen(nextOpen);
|
|
@@ -3658,15 +3720,15 @@ function MonthCal({
|
|
|
3658
3720
|
onYearBackward,
|
|
3659
3721
|
onYearForward
|
|
3660
3722
|
}) {
|
|
3661
|
-
const today =
|
|
3723
|
+
const today = React27.useMemo(() => {
|
|
3662
3724
|
const now = /* @__PURE__ */ new Date();
|
|
3663
3725
|
now.setDate(1);
|
|
3664
3726
|
now.setHours(0, 0, 0, 0);
|
|
3665
3727
|
return now;
|
|
3666
3728
|
}, []);
|
|
3667
|
-
const selectedMonthDate =
|
|
3668
|
-
const min =
|
|
3669
|
-
const max =
|
|
3729
|
+
const selectedMonthDate = React27.useMemo(() => normalizeMonth(selectedDate), [selectedDate]);
|
|
3730
|
+
const min = React27.useMemo(() => normalizeMonth(minDate), [minDate]);
|
|
3731
|
+
const max = React27.useMemo(() => normalizeMonth(maxDate), [maxDate]);
|
|
3670
3732
|
let effectiveMin = min;
|
|
3671
3733
|
if (min && max && min > max) {
|
|
3672
3734
|
effectiveMin = max;
|
|
@@ -3675,10 +3737,10 @@ function MonthCal({
|
|
|
3675
3737
|
const minMonth = effectiveMin?.getMonth();
|
|
3676
3738
|
const maxYear = max?.getFullYear();
|
|
3677
3739
|
const maxMonth = max?.getMonth();
|
|
3678
|
-
const [menuYear, setMenuYear] =
|
|
3740
|
+
const [menuYear, setMenuYear] = React27.useState(
|
|
3679
3741
|
() => selectedMonthDate?.getFullYear() ?? today.getFullYear()
|
|
3680
3742
|
);
|
|
3681
|
-
|
|
3743
|
+
React27.useEffect(() => {
|
|
3682
3744
|
if (selectedMonthDate) {
|
|
3683
3745
|
const year = selectedMonthDate.getFullYear();
|
|
3684
3746
|
if (year !== menuYear) {
|
|
@@ -3686,7 +3748,7 @@ function MonthCal({
|
|
|
3686
3748
|
}
|
|
3687
3749
|
}
|
|
3688
3750
|
}, [selectedMonthDate, menuYear]);
|
|
3689
|
-
|
|
3751
|
+
React27.useEffect(() => {
|
|
3690
3752
|
if (typeof minYear === "number" && menuYear < minYear) {
|
|
3691
3753
|
setMenuYear(minYear);
|
|
3692
3754
|
return;
|
|
@@ -3697,7 +3759,7 @@ function MonthCal({
|
|
|
3697
3759
|
}, [minYear, maxYear, menuYear]);
|
|
3698
3760
|
const disablePrevYear = typeof minYear === "number" ? menuYear <= minYear : false;
|
|
3699
3761
|
const disableNextYear = typeof maxYear === "number" ? menuYear >= maxYear : false;
|
|
3700
|
-
const yearOptions =
|
|
3762
|
+
const yearOptions = React27.useMemo(() => {
|
|
3701
3763
|
const fallbackWindow = 50;
|
|
3702
3764
|
const start = typeof minYear === "number" ? minYear : menuYear - fallbackWindow;
|
|
3703
3765
|
const end = typeof maxYear === "number" ? maxYear : menuYear + fallbackWindow;
|
|
@@ -3711,7 +3773,7 @@ function MonthCal({
|
|
|
3711
3773
|
}
|
|
3712
3774
|
return years;
|
|
3713
3775
|
}, [maxYear, menuYear, minYear]);
|
|
3714
|
-
const formatYearLabel =
|
|
3776
|
+
const formatYearLabel = React27.useCallback(
|
|
3715
3777
|
(year) => {
|
|
3716
3778
|
const raw = callbacks?.yearLabel?.(year);
|
|
3717
3779
|
if (raw === null || raw === void 0) return String(year);
|
|
@@ -3719,7 +3781,7 @@ function MonthCal({
|
|
|
3719
3781
|
},
|
|
3720
3782
|
[callbacks]
|
|
3721
3783
|
);
|
|
3722
|
-
const handleYearSelect =
|
|
3784
|
+
const handleYearSelect = React27.useCallback(
|
|
3723
3785
|
(nextValue) => {
|
|
3724
3786
|
const nextYear = Number.parseInt(nextValue, 10);
|
|
3725
3787
|
if (Number.isNaN(nextYear)) return;
|
|
@@ -3729,7 +3791,7 @@ function MonthCal({
|
|
|
3729
3791
|
},
|
|
3730
3792
|
[maxYear, minYear]
|
|
3731
3793
|
);
|
|
3732
|
-
const disabledPairs =
|
|
3794
|
+
const disabledPairs = React27.useMemo(() => {
|
|
3733
3795
|
if (!disabledDates?.length) return [];
|
|
3734
3796
|
const pairs = [];
|
|
3735
3797
|
disabledDates.forEach((date) => {
|
|
@@ -3874,14 +3936,14 @@ var MonthPicker2 = ({
|
|
|
3874
3936
|
ariaLabel,
|
|
3875
3937
|
...calendarProps
|
|
3876
3938
|
}) => {
|
|
3877
|
-
const [open, setOpen] =
|
|
3878
|
-
const parser =
|
|
3879
|
-
const outputFormatter =
|
|
3880
|
-
const labelFormatter =
|
|
3939
|
+
const [open, setOpen] = React27__default.useState(false);
|
|
3940
|
+
const parser = React27__default.useMemo(() => valueParser ?? defaultValueParser2, [valueParser]);
|
|
3941
|
+
const outputFormatter = React27__default.useMemo(() => valueFormatter ?? defaultValueFormatter2, [valueFormatter]);
|
|
3942
|
+
const labelFormatter = React27__default.useMemo(
|
|
3881
3943
|
() => displayFormatter ?? defaultDisplayFormatter2,
|
|
3882
3944
|
[displayFormatter]
|
|
3883
3945
|
);
|
|
3884
|
-
const parsedValue =
|
|
3946
|
+
const parsedValue = React27__default.useMemo(() => {
|
|
3885
3947
|
if (value === null || value === void 0) return void 0;
|
|
3886
3948
|
if (value instanceof Date) return normalizeMonth2(value);
|
|
3887
3949
|
if (typeof value === "string") {
|
|
@@ -3893,8 +3955,8 @@ var MonthPicker2 = ({
|
|
|
3893
3955
|
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
3894
3956
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change month, current selection ${labelFormatter(parsedValue)}` : "Open month picker");
|
|
3895
3957
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
3896
|
-
const handleClose =
|
|
3897
|
-
const emitChange =
|
|
3958
|
+
const handleClose = React27__default.useCallback(() => setOpen(false), []);
|
|
3959
|
+
const emitChange = React27__default.useCallback(
|
|
3898
3960
|
(next) => {
|
|
3899
3961
|
const normalized = next ? normalizeMonth2(next) : void 0;
|
|
3900
3962
|
onChange?.(normalized);
|
|
@@ -3902,18 +3964,18 @@ var MonthPicker2 = ({
|
|
|
3902
3964
|
},
|
|
3903
3965
|
[onChange, onValueChange, outputFormatter]
|
|
3904
3966
|
);
|
|
3905
|
-
const handleSelect =
|
|
3967
|
+
const handleSelect = React27__default.useCallback(
|
|
3906
3968
|
(next) => {
|
|
3907
3969
|
emitChange(next);
|
|
3908
3970
|
if (closeOnSelect && next) handleClose();
|
|
3909
3971
|
},
|
|
3910
3972
|
[closeOnSelect, emitChange, handleClose]
|
|
3911
3973
|
);
|
|
3912
|
-
const handleClear =
|
|
3974
|
+
const handleClear = React27__default.useCallback(() => {
|
|
3913
3975
|
emitChange(void 0);
|
|
3914
3976
|
handleClose();
|
|
3915
3977
|
}, [emitChange, handleClose]);
|
|
3916
|
-
const handleOpenChange =
|
|
3978
|
+
const handleOpenChange = React27__default.useCallback(
|
|
3917
3979
|
(nextOpen) => {
|
|
3918
3980
|
if (disabled && nextOpen) return;
|
|
3919
3981
|
setOpen(nextOpen);
|
|
@@ -5189,7 +5251,7 @@ var AdvanceSearch = ({
|
|
|
5189
5251
|
defaultValues: {}
|
|
5190
5252
|
});
|
|
5191
5253
|
const { handleSubmit, unregister, resetField, getValues, clearErrors, setError } = form;
|
|
5192
|
-
const [operatorErrors, setOperatorErrors] =
|
|
5254
|
+
const [operatorErrors, setOperatorErrors] = React27__default.useState({});
|
|
5193
5255
|
const clearOperatorError = useCallback(
|
|
5194
5256
|
(rowId) => {
|
|
5195
5257
|
setOperatorErrors((prev) => {
|
|
@@ -5610,14 +5672,14 @@ var useControllableState = ({
|
|
|
5610
5672
|
value
|
|
5611
5673
|
}) => {
|
|
5612
5674
|
const isControlled = typeof value !== "undefined";
|
|
5613
|
-
const [internalValue, setInternalValue] =
|
|
5675
|
+
const [internalValue, setInternalValue] = React27.useState(() => {
|
|
5614
5676
|
return isControlled ? value : defaultValue;
|
|
5615
5677
|
});
|
|
5616
|
-
|
|
5678
|
+
React27.useEffect(() => {
|
|
5617
5679
|
if (!isControlled) return;
|
|
5618
5680
|
setInternalValue(value);
|
|
5619
5681
|
}, [isControlled, value]);
|
|
5620
|
-
const setValue =
|
|
5682
|
+
const setValue = React27.useCallback(
|
|
5621
5683
|
(nextValue) => {
|
|
5622
5684
|
if (isControlled) return;
|
|
5623
5685
|
setInternalValue(nextValue);
|
|
@@ -5632,6 +5694,16 @@ var useControllableState = ({
|
|
|
5632
5694
|
};
|
|
5633
5695
|
var useControllableState_default = useControllableState;
|
|
5634
5696
|
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
5697
|
+
var useBindRef = ({ ref, value }) => {
|
|
5698
|
+
React27.useEffect(() => {
|
|
5699
|
+
if (!ref) return;
|
|
5700
|
+
ref.current = value;
|
|
5701
|
+
return () => {
|
|
5702
|
+
ref.current = null;
|
|
5703
|
+
};
|
|
5704
|
+
}, [ref, value]);
|
|
5705
|
+
};
|
|
5706
|
+
var useBindRef_default = useBindRef;
|
|
5635
5707
|
var HeaderCell = ({
|
|
5636
5708
|
rootClassName,
|
|
5637
5709
|
labelClassName,
|
|
@@ -5798,38 +5870,6 @@ function TableCaption({ className, ...props }) {
|
|
|
5798
5870
|
}
|
|
5799
5871
|
);
|
|
5800
5872
|
}
|
|
5801
|
-
var ColumnResizer = ({ header, className, style }) => {
|
|
5802
|
-
if (!header.column.getCanResize()) {
|
|
5803
|
-
return null;
|
|
5804
|
-
}
|
|
5805
|
-
const resizeHandler = header.getResizeHandler();
|
|
5806
|
-
return /* @__PURE__ */ jsx(
|
|
5807
|
-
"div",
|
|
5808
|
-
{
|
|
5809
|
-
className: cn(
|
|
5810
|
-
"z-[2] absolute top-0 right-0 h-full w-1 select-none touch-none cursor-col-resize hover:bg-[#41875c]/45 active:bg-[#41875c]",
|
|
5811
|
-
className
|
|
5812
|
-
),
|
|
5813
|
-
onDoubleClick: () => header.column.resetSize(),
|
|
5814
|
-
onTouchStart: resizeHandler,
|
|
5815
|
-
onMouseDown: resizeHandler,
|
|
5816
|
-
style
|
|
5817
|
-
}
|
|
5818
|
-
);
|
|
5819
|
-
};
|
|
5820
|
-
var ColumnResizer_default = ColumnResizer;
|
|
5821
|
-
var ColumnSeparator = ({ show, className, ...props }) => {
|
|
5822
|
-
if (!show) return null;
|
|
5823
|
-
return /* @__PURE__ */ jsx(
|
|
5824
|
-
"span",
|
|
5825
|
-
{
|
|
5826
|
-
"data-slot": "table-head-separator",
|
|
5827
|
-
className: cn("absolute right-0 top-1/2 h-4 w-px -translate-y-1/2 bg-gray-300", className),
|
|
5828
|
-
...props
|
|
5829
|
-
}
|
|
5830
|
-
);
|
|
5831
|
-
};
|
|
5832
|
-
var ColumnSeparator_default = React26__default.memo(ColumnSeparator);
|
|
5833
5873
|
var StatusContentSlot = ({
|
|
5834
5874
|
content,
|
|
5835
5875
|
icon,
|
|
@@ -5848,7 +5888,7 @@ var StatusContentSlot = ({
|
|
|
5848
5888
|
content
|
|
5849
5889
|
] });
|
|
5850
5890
|
};
|
|
5851
|
-
var StatusContentSlot_default =
|
|
5891
|
+
var StatusContentSlot_default = React27__default.memo(StatusContentSlot);
|
|
5852
5892
|
var stateOptions = [
|
|
5853
5893
|
"columnFilters",
|
|
5854
5894
|
"globalFilter",
|
|
@@ -6014,45 +6054,8 @@ var DataTableDevTool = ({ table }) => {
|
|
|
6014
6054
|
] });
|
|
6015
6055
|
};
|
|
6016
6056
|
var DataTableDevTool_default = DataTableDevTool;
|
|
6017
|
-
|
|
6018
|
-
// src/components/data-table/helpers.ts
|
|
6019
|
-
function getColumnPinningInfo(column) {
|
|
6020
|
-
const isPinned = column.getIsPinned();
|
|
6021
|
-
const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
|
|
6022
|
-
const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
|
|
6023
|
-
return { isPinned, isLastLeftPinnedColumn, isFirstRightPinnedColumn };
|
|
6024
|
-
}
|
|
6025
|
-
function getColumnPinningStyles(column) {
|
|
6026
|
-
const { isPinned, isFirstRightPinnedColumn, isLastLeftPinnedColumn } = getColumnPinningInfo(column);
|
|
6027
|
-
const classes = cn(
|
|
6028
|
-
isPinned ? "sticky" : "relative",
|
|
6029
|
-
isPinned ? "z-[1]" : "z-0",
|
|
6030
|
-
isLastLeftPinnedColumn && "shadow-[inset_-1px_0_0_0_black]",
|
|
6031
|
-
isFirstRightPinnedColumn && "shadow-[inset_1px_0_0_0_black]"
|
|
6032
|
-
);
|
|
6033
|
-
const style = {
|
|
6034
|
-
left: isPinned === "left" ? column.getStart("left") : void 0,
|
|
6035
|
-
right: isPinned === "right" ? column.getAfter("right") : void 0
|
|
6036
|
-
};
|
|
6037
|
-
return { classes, style };
|
|
6038
|
-
}
|
|
6039
|
-
function getRowClickHandlers(handler, { rowData, row, table }) {
|
|
6040
|
-
const handleClick = (event) => {
|
|
6041
|
-
if (event.detail === 1) {
|
|
6042
|
-
handler(rowData, { event, row, table, clickType: "single" });
|
|
6043
|
-
}
|
|
6044
|
-
if (event.detail >= 2) {
|
|
6045
|
-
handler(rowData, { event, row, table, clickType: "double" });
|
|
6046
|
-
}
|
|
6047
|
-
};
|
|
6048
|
-
return {
|
|
6049
|
-
onClick: handleClick
|
|
6050
|
-
};
|
|
6051
|
-
}
|
|
6052
6057
|
var fallbackData = [];
|
|
6053
|
-
var
|
|
6054
|
-
tableRef,
|
|
6055
|
-
isInitialLoading,
|
|
6058
|
+
var useTableController = ({
|
|
6056
6059
|
columns,
|
|
6057
6060
|
data,
|
|
6058
6061
|
filters,
|
|
@@ -6064,14 +6067,8 @@ var DataTable = ({
|
|
|
6064
6067
|
columnResizing,
|
|
6065
6068
|
rowSelection,
|
|
6066
6069
|
rowExpansion,
|
|
6067
|
-
scrollFetch,
|
|
6068
|
-
activeStatusContent,
|
|
6069
|
-
statusContent,
|
|
6070
6070
|
rowIdKey,
|
|
6071
|
-
childrenKey
|
|
6072
|
-
onRowClick,
|
|
6073
|
-
debug,
|
|
6074
|
-
components
|
|
6071
|
+
childrenKey
|
|
6075
6072
|
}) => {
|
|
6076
6073
|
const table = useReactTable({
|
|
6077
6074
|
// required properties
|
|
@@ -6124,7 +6121,6 @@ var DataTable = ({
|
|
|
6124
6121
|
getSortedRowModel: !sorting?.manual && sorting?.enabled ? getSortedRowModel() : void 0,
|
|
6125
6122
|
manualSorting: sorting?.enabled && (sorting?.manual ?? false),
|
|
6126
6123
|
enableSorting: sorting?.enabled ?? false,
|
|
6127
|
-
// default behavior: column with type number is sort by desc and string sort by asc first, we fix force always asc
|
|
6128
6124
|
sortDescFirst: sorting?.enabled ? sorting?.sortDescFirst ?? false : false,
|
|
6129
6125
|
onSortingChange: sorting?.enabled ? sorting?.onSortingChange : void 0,
|
|
6130
6126
|
// ordering
|
|
@@ -6139,10 +6135,7 @@ var DataTable = ({
|
|
|
6139
6135
|
enableMultiRowSelection: rowSelection?.enabled ? rowSelection?.multiSelect ?? true : true,
|
|
6140
6136
|
onRowSelectionChange: rowSelection?.enabled ? rowSelection?.onSelectionChange : void 0,
|
|
6141
6137
|
// row expanded
|
|
6142
|
-
getExpandedRowModel: (
|
|
6143
|
-
// when grouping is use then we should open this
|
|
6144
|
-
!rowExpansion?.manual && rowExpansion?.enabled ? getExpandedRowModel() : void 0
|
|
6145
|
-
),
|
|
6138
|
+
getExpandedRowModel: !rowExpansion?.manual && rowExpansion?.enabled ? getExpandedRowModel() : void 0,
|
|
6146
6139
|
manualExpanding: rowExpansion?.enabled && (rowExpansion?.manual ?? false),
|
|
6147
6140
|
enableExpanding: rowExpansion?.enabled ?? false,
|
|
6148
6141
|
getIsRowExpanded: rowExpansion?.enabled ? rowExpansion?.isRowExpanded : void 0,
|
|
@@ -6160,13 +6153,93 @@ var DataTable = ({
|
|
|
6160
6153
|
columnResizeMode: columnResizing?.enabled ? columnResizing?.resizeMode ?? "onChange" : "onChange"
|
|
6161
6154
|
})
|
|
6162
6155
|
});
|
|
6163
|
-
|
|
6156
|
+
return table;
|
|
6157
|
+
};
|
|
6158
|
+
var useScrollFetch = ({ scrollFetch, containerRef }) => {
|
|
6159
|
+
const fetchMoreOnScrollReached = useCallback(
|
|
6160
|
+
(containerRefElement) => {
|
|
6161
|
+
if (!scrollFetch?.enabled || !containerRefElement || scrollFetch?.isFetchingMore || !scrollFetch?.hasMore || !scrollFetch?.fetchMore) {
|
|
6162
|
+
return;
|
|
6163
|
+
}
|
|
6164
|
+
const { scrollHeight, scrollTop, clientHeight } = containerRefElement;
|
|
6165
|
+
const scrollableHeight = scrollHeight - clientHeight;
|
|
6166
|
+
const distanceToBottom = scrollableHeight - scrollTop;
|
|
6167
|
+
const ratioToBottom = scrollableHeight > 0 ? scrollTop / scrollableHeight : 1;
|
|
6168
|
+
const info = {
|
|
6169
|
+
scrollTop,
|
|
6170
|
+
scrollHeight,
|
|
6171
|
+
clientHeight,
|
|
6172
|
+
scrollableHeight,
|
|
6173
|
+
distanceToBottom,
|
|
6174
|
+
ratioToBottom,
|
|
6175
|
+
isTopReached: scrollTop === 0,
|
|
6176
|
+
isBottomReached: distanceToBottom <= 0
|
|
6177
|
+
};
|
|
6178
|
+
let shouldTrigger = false;
|
|
6179
|
+
if (typeof scrollFetch.scrollThreshold === "number") {
|
|
6180
|
+
shouldTrigger = info.ratioToBottom >= scrollFetch.scrollThreshold;
|
|
6181
|
+
} else if (typeof scrollFetch.scrollThreshold === "function") {
|
|
6182
|
+
shouldTrigger = scrollFetch.scrollThreshold(info);
|
|
6183
|
+
} else {
|
|
6184
|
+
shouldTrigger = info.ratioToBottom >= 0.7;
|
|
6185
|
+
}
|
|
6186
|
+
if (shouldTrigger) {
|
|
6187
|
+
scrollFetch.fetchMore();
|
|
6188
|
+
}
|
|
6189
|
+
},
|
|
6190
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6191
|
+
[scrollFetch?.enabled, scrollFetch?.isFetchingMore, scrollFetch?.hasMore, scrollFetch?.fetchMore]
|
|
6192
|
+
);
|
|
6193
|
+
useEffect(() => {
|
|
6194
|
+
fetchMoreOnScrollReached(containerRef.current);
|
|
6195
|
+
}, [fetchMoreOnScrollReached, containerRef]);
|
|
6196
|
+
return fetchMoreOnScrollReached;
|
|
6197
|
+
};
|
|
6198
|
+
var DEFAULT_ROW_HEIGHT = 40;
|
|
6199
|
+
var DEFAULT_OVER_SCAN = 10;
|
|
6200
|
+
var useTableVirtualizer = ({
|
|
6201
|
+
enabled,
|
|
6202
|
+
table,
|
|
6203
|
+
containerRef,
|
|
6204
|
+
virtual
|
|
6205
|
+
}) => {
|
|
6206
|
+
const rowModel = table.getRowModel().rows;
|
|
6207
|
+
const virtualizer = useVirtualizer({
|
|
6208
|
+
count: enabled ? rowModel.length : 0,
|
|
6209
|
+
useFlushSync: false,
|
|
6210
|
+
getScrollElement: () => containerRef.current,
|
|
6211
|
+
estimateSize: () => DEFAULT_ROW_HEIGHT,
|
|
6212
|
+
measureElement: typeof window !== "undefined" && navigator.userAgent.indexOf("Firefox") === -1 ? (element) => element?.getBoundingClientRect().height : void 0,
|
|
6213
|
+
overscan: virtual?.overscan ?? DEFAULT_OVER_SCAN
|
|
6214
|
+
});
|
|
6215
|
+
const virtualItems = enabled ? virtualizer.getVirtualItems() : [];
|
|
6216
|
+
const paddingTop = enabled && virtualItems.length > 0 ? virtualItems[0].start : 0;
|
|
6217
|
+
const paddingBottom = enabled && virtualItems.length > 0 ? virtualizer.getTotalSize() - virtualItems[virtualItems.length - 1].end : 0;
|
|
6218
|
+
return {
|
|
6219
|
+
virtualizer,
|
|
6220
|
+
virtualItems,
|
|
6221
|
+
paddingTop,
|
|
6222
|
+
paddingBottom,
|
|
6223
|
+
rowModel
|
|
6224
|
+
};
|
|
6225
|
+
};
|
|
6226
|
+
function useComputedTableState({
|
|
6227
|
+
table,
|
|
6228
|
+
rowModel,
|
|
6229
|
+
isInitialLoading,
|
|
6230
|
+
scrollFetch,
|
|
6231
|
+
activeStatusContent
|
|
6232
|
+
}) {
|
|
6164
6233
|
const isTableEmpty = table.getCoreRowModel().rows.length === 0;
|
|
6165
|
-
const isTableEmptyAfterFiltering =
|
|
6234
|
+
const isTableEmptyAfterFiltering = rowModel.length === 0;
|
|
6166
6235
|
const isFiltering = table.getState().columnFilters.length > 0 || !!table.getState().globalFilter;
|
|
6167
6236
|
const leftVisibleLeftColumns = table.getLeftVisibleLeafColumns();
|
|
6168
6237
|
const centerVisibleLeafColumns = table.getCenterVisibleLeafColumns();
|
|
6169
6238
|
const rightVisibleLeafColumns = table.getRightVisibleLeafColumns();
|
|
6239
|
+
const visibleColumnCount = Math.max(
|
|
6240
|
+
leftVisibleLeftColumns.length + centerVisibleLeafColumns.length + rightVisibleLeafColumns.length,
|
|
6241
|
+
1
|
|
6242
|
+
);
|
|
6170
6243
|
const { isSomeColumnsFilterable, filterableColumns } = useMemo(() => {
|
|
6171
6244
|
const mergedColumns = [
|
|
6172
6245
|
...leftVisibleLeftColumns,
|
|
@@ -6203,50 +6276,329 @@ var DataTable = ({
|
|
|
6203
6276
|
}
|
|
6204
6277
|
return activeStatusContent;
|
|
6205
6278
|
}, [activeStatusContent, autoStatusKey]);
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6279
|
+
return {
|
|
6280
|
+
isTableEmpty,
|
|
6281
|
+
isTableEmptyAfterFiltering,
|
|
6282
|
+
isFiltering,
|
|
6283
|
+
leftVisibleLeftColumns,
|
|
6284
|
+
centerVisibleLeafColumns,
|
|
6285
|
+
rightVisibleLeafColumns,
|
|
6286
|
+
visibleColumnCount,
|
|
6287
|
+
isSomeColumnsFilterable,
|
|
6288
|
+
filterableColumns,
|
|
6289
|
+
activeStatusContentComputed
|
|
6290
|
+
};
|
|
6291
|
+
}
|
|
6292
|
+
var ColumnResizer = ({ header, className, style }) => {
|
|
6293
|
+
if (!header.column.getCanResize()) {
|
|
6294
|
+
return null;
|
|
6295
|
+
}
|
|
6296
|
+
const resizeHandler = header.getResizeHandler();
|
|
6297
|
+
return /* @__PURE__ */ jsx(
|
|
6298
|
+
"div",
|
|
6299
|
+
{
|
|
6300
|
+
className: cn(
|
|
6301
|
+
"z-[2] absolute top-0 right-0 h-full w-1 select-none touch-none cursor-col-resize hover:bg-[#41875c]/45 active:bg-[#41875c]",
|
|
6302
|
+
className
|
|
6303
|
+
),
|
|
6304
|
+
onDoubleClick: () => header.column.resetSize(),
|
|
6305
|
+
onTouchStart: resizeHandler,
|
|
6306
|
+
onMouseDown: resizeHandler,
|
|
6307
|
+
style
|
|
6308
|
+
}
|
|
6309
|
+
);
|
|
6310
|
+
};
|
|
6311
|
+
var ColumnResizer_default = ColumnResizer;
|
|
6312
|
+
var ColumnSeparator = ({ show, className, ...props }) => {
|
|
6313
|
+
if (!show) return null;
|
|
6314
|
+
return /* @__PURE__ */ jsx(
|
|
6315
|
+
"span",
|
|
6316
|
+
{
|
|
6317
|
+
"data-slot": "table-head-separator",
|
|
6318
|
+
className: cn("absolute right-0 top-1/2 h-4 w-px -translate-y-1/2 bg-gray-300", className),
|
|
6319
|
+
...props
|
|
6320
|
+
}
|
|
6321
|
+
);
|
|
6322
|
+
};
|
|
6323
|
+
var ColumnSeparator_default = React27__default.memo(ColumnSeparator);
|
|
6324
|
+
|
|
6325
|
+
// src/components/data-table/helpers.ts
|
|
6326
|
+
function getColumnPinningInfo(column) {
|
|
6327
|
+
const isPinned = column.getIsPinned();
|
|
6328
|
+
const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
|
|
6329
|
+
const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
|
|
6330
|
+
return { isPinned, isLastLeftPinnedColumn, isFirstRightPinnedColumn };
|
|
6331
|
+
}
|
|
6332
|
+
function getColumnPinningStyles(column) {
|
|
6333
|
+
const { isPinned, isFirstRightPinnedColumn, isLastLeftPinnedColumn } = getColumnPinningInfo(column);
|
|
6334
|
+
const classes = cn(isPinned ? "sticky" : "relative");
|
|
6335
|
+
const style = {
|
|
6336
|
+
left: isPinned === "left" ? column.getStart("left") : void 0,
|
|
6337
|
+
right: isPinned === "right" ? column.getAfter("right") : void 0,
|
|
6338
|
+
zIndex: isPinned ? 1 : 0,
|
|
6339
|
+
boxShadow: isLastLeftPinnedColumn ? "inset -1px 0 0 0 black" : isFirstRightPinnedColumn ? "inset 1px 0 0 0 black" : void 0
|
|
6340
|
+
};
|
|
6341
|
+
return { classes, style };
|
|
6342
|
+
}
|
|
6343
|
+
function getRowClickHandlers(handler, { rowData, row, table }) {
|
|
6344
|
+
const handleClick = (event) => {
|
|
6345
|
+
if (event.detail === 1) {
|
|
6346
|
+
handler(rowData, { event, row, table, clickType: "single" });
|
|
6347
|
+
}
|
|
6348
|
+
if (event.detail >= 2) {
|
|
6349
|
+
handler(rowData, { event, row, table, clickType: "double" });
|
|
6350
|
+
}
|
|
6351
|
+
};
|
|
6352
|
+
return {
|
|
6353
|
+
onClick: handleClick
|
|
6354
|
+
};
|
|
6355
|
+
}
|
|
6356
|
+
var TableHeaderRows = ({
|
|
6357
|
+
table,
|
|
6358
|
+
columnResizing,
|
|
6359
|
+
virtual,
|
|
6360
|
+
components
|
|
6361
|
+
}) => {
|
|
6362
|
+
return /* @__PURE__ */ jsx(Fragment, { children: table.getHeaderGroups().map((headerGroup) => {
|
|
6363
|
+
return /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => {
|
|
6364
|
+
const { classes, style } = getColumnPinningStyles(header.column);
|
|
6365
|
+
const useColumnSizing = header.column.columnDef?.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
6366
|
+
const tableHeadCellProps = typeof components?.tableHeadCellProps === "function" ? components?.tableHeadCellProps({ header, table }) : components?.tableHeadCellProps;
|
|
6367
|
+
const nextHeader = headerGroup.headers?.[header.index + 1] || header;
|
|
6368
|
+
const { isLastLeftPinnedColumn } = getColumnPinningInfo(header.column);
|
|
6369
|
+
const { isFirstRightPinnedColumn } = getColumnPinningInfo(nextHeader.column);
|
|
6370
|
+
const headerGroupLength = header.headerGroup.headers.length;
|
|
6371
|
+
const showSeparator = header.index !== headerGroupLength - 1 && !isLastLeftPinnedColumn && !isFirstRightPinnedColumn;
|
|
6372
|
+
return /* @__PURE__ */ jsxs(
|
|
6373
|
+
TableHead,
|
|
6374
|
+
{
|
|
6375
|
+
"data-testid": `table-head-${header.id}`,
|
|
6376
|
+
colSpan: header.colSpan,
|
|
6377
|
+
...tableHeadCellProps,
|
|
6378
|
+
...header.column.columnDef?.meta?.headerProps,
|
|
6379
|
+
className: cn(
|
|
6380
|
+
classes,
|
|
6381
|
+
tableHeadCellProps?.className,
|
|
6382
|
+
header.column.columnDef?.meta?.headerProps?.className
|
|
6383
|
+
),
|
|
6384
|
+
style: {
|
|
6385
|
+
...style,
|
|
6386
|
+
width: useColumnSizing ? header.column.getSize() : void 0,
|
|
6387
|
+
minWidth: useColumnSizing ? header.column.columnDef.minSize : void 0,
|
|
6388
|
+
maxWidth: useColumnSizing ? header.column.columnDef.maxSize : void 0,
|
|
6389
|
+
...tableHeadCellProps?.style,
|
|
6390
|
+
...header.column.columnDef?.meta?.headerProps?.style
|
|
6391
|
+
},
|
|
6392
|
+
children: [
|
|
6393
|
+
header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()),
|
|
6394
|
+
/* @__PURE__ */ jsx(
|
|
6395
|
+
ColumnSeparator_default,
|
|
6396
|
+
{
|
|
6397
|
+
...components?.columnSeparatorProps?.headerCell,
|
|
6398
|
+
...header.column.columnDef?.meta?.columnSeparatorProps,
|
|
6399
|
+
show: header.column.columnDef?.meta?.columnSeparatorProps?.show ?? components?.columnSeparatorProps?.headerCell?.show ?? showSeparator
|
|
6400
|
+
}
|
|
6401
|
+
),
|
|
6402
|
+
/* @__PURE__ */ jsx(ColumnResizer_default, { header, ...components?.columnResizerProps })
|
|
6403
|
+
]
|
|
6404
|
+
},
|
|
6405
|
+
header.id
|
|
6406
|
+
);
|
|
6407
|
+
}) }, headerGroup.id);
|
|
6408
|
+
}) });
|
|
6409
|
+
};
|
|
6410
|
+
var TableFilterRow = ({
|
|
6411
|
+
table,
|
|
6412
|
+
filterableColumns,
|
|
6413
|
+
isSomeColumnsFilterable,
|
|
6414
|
+
columnResizing,
|
|
6415
|
+
virtual,
|
|
6416
|
+
components
|
|
6417
|
+
}) => {
|
|
6418
|
+
if (!isSomeColumnsFilterable) return null;
|
|
6419
|
+
return /* @__PURE__ */ jsx(TableRow, { "data-testid": "table-filter-row", children: filterableColumns.map((column) => {
|
|
6420
|
+
const { classes, style } = getColumnPinningStyles(column);
|
|
6421
|
+
const useColumnSizing = column.columnDef.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
6422
|
+
const tableFilterCellProps = typeof components?.tableFilterCellProps === "function" ? components?.tableFilterCellProps({ column, table }) : components?.tableFilterCellProps;
|
|
6423
|
+
return /* @__PURE__ */ jsx(
|
|
6424
|
+
TableCell,
|
|
6425
|
+
{
|
|
6426
|
+
"data-testid": `table-filter-cell-${column.id}`,
|
|
6427
|
+
...tableFilterCellProps,
|
|
6428
|
+
...column.columnDef?.meta?.filterCellProps,
|
|
6429
|
+
className: cn(
|
|
6430
|
+
"bg-white border-b",
|
|
6431
|
+
classes,
|
|
6432
|
+
tableFilterCellProps?.className,
|
|
6433
|
+
column.columnDef?.meta?.filterCellProps?.className
|
|
6434
|
+
),
|
|
6435
|
+
style: {
|
|
6436
|
+
...style,
|
|
6437
|
+
width: useColumnSizing ? column.getSize() : void 0,
|
|
6438
|
+
minWidth: useColumnSizing ? column.columnDef.minSize : void 0,
|
|
6439
|
+
maxWidth: useColumnSizing ? column.columnDef.maxSize : void 0,
|
|
6440
|
+
...tableFilterCellProps?.style,
|
|
6441
|
+
...column.columnDef?.meta?.filterCellProps?.style
|
|
6442
|
+
},
|
|
6443
|
+
children: column.getCanFilter() && column.columnDef.meta?.renderColumnFilter?.({
|
|
6444
|
+
column,
|
|
6445
|
+
table
|
|
6446
|
+
})
|
|
6447
|
+
},
|
|
6448
|
+
column.id
|
|
6449
|
+
);
|
|
6450
|
+
}) });
|
|
6451
|
+
};
|
|
6452
|
+
var TableDataRows = ({
|
|
6453
|
+
table,
|
|
6454
|
+
rowModel,
|
|
6455
|
+
virtualEnabled,
|
|
6456
|
+
virtualItems,
|
|
6457
|
+
virtualizer,
|
|
6458
|
+
paddingTop,
|
|
6459
|
+
paddingBottom,
|
|
6460
|
+
visibleColumnCount,
|
|
6461
|
+
columnResizing,
|
|
6462
|
+
virtual,
|
|
6463
|
+
onRowClick,
|
|
6464
|
+
components
|
|
6465
|
+
}) => {
|
|
6466
|
+
const config = virtualEnabled ? { items: virtualItems, isVirtualize: true, rowModel } : { items: rowModel, isVirtualize: false };
|
|
6467
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6468
|
+
virtualEnabled && paddingTop > 0 && /* @__PURE__ */ jsx(TableRow, { "aria-hidden": "true", "data-testid": "table-virtual-padding-top", children: /* @__PURE__ */ jsx(
|
|
6469
|
+
TableCell,
|
|
6470
|
+
{
|
|
6471
|
+
className: "border-b-0 p-0 h-auto",
|
|
6472
|
+
colSpan: visibleColumnCount,
|
|
6473
|
+
style: { height: `${paddingTop}px` }
|
|
6232
6474
|
}
|
|
6233
|
-
|
|
6234
|
-
|
|
6475
|
+
) }),
|
|
6476
|
+
config.items.map((item) => {
|
|
6477
|
+
const row = config.isVirtualize ? config.rowModel[item.index] : item;
|
|
6478
|
+
if (!row) return null;
|
|
6479
|
+
const virtualIndex = config.isVirtualize ? item.index : void 0;
|
|
6480
|
+
const tableDataRowProps = typeof components?.tableDataRowProps === "function" ? components.tableDataRowProps({ row, table }) || {} : components?.tableDataRowProps || {};
|
|
6481
|
+
return /* @__PURE__ */ createElement(
|
|
6482
|
+
TableRow,
|
|
6483
|
+
{
|
|
6484
|
+
"data-testid": `table-data-row-${row.id}`,
|
|
6485
|
+
"data-index": virtualIndex,
|
|
6486
|
+
ref: config.isVirtualize ? (node) => virtualizer.measureElement(node) : void 0,
|
|
6487
|
+
...tableDataRowProps,
|
|
6488
|
+
key: row.id,
|
|
6489
|
+
className: cn("group", tableDataRowProps?.className),
|
|
6490
|
+
"data-state": row.getIsSelected() ? "selected" : "non-selected",
|
|
6491
|
+
...getRowClickHandlers(onRowClick ?? (() => {
|
|
6492
|
+
}), {
|
|
6493
|
+
rowData: row.original,
|
|
6494
|
+
row,
|
|
6495
|
+
table
|
|
6496
|
+
})
|
|
6497
|
+
},
|
|
6498
|
+
row.getVisibleCells().map((cell) => {
|
|
6499
|
+
const { classes, style } = getColumnPinningStyles(cell.column);
|
|
6500
|
+
const useColumnSizing = cell.column.columnDef.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
6501
|
+
const tableDataCellProps = typeof components?.tableDataCellProps === "function" ? components?.tableDataCellProps({ row, cell, table }) : components?.tableDataCellProps;
|
|
6502
|
+
return /* @__PURE__ */ jsx(
|
|
6503
|
+
TableCell,
|
|
6504
|
+
{
|
|
6505
|
+
"data-testid": `table-data-cell-${cell.id}`,
|
|
6506
|
+
"data-row-id": row.id,
|
|
6507
|
+
"data-column-id": cell.column.id,
|
|
6508
|
+
...tableDataCellProps,
|
|
6509
|
+
...cell.column.columnDef?.meta?.cellProps,
|
|
6510
|
+
className: cn(
|
|
6511
|
+
{
|
|
6512
|
+
"bg-[#dfeae3]": row.getIsSelected(),
|
|
6513
|
+
"bg-white group-hover:bg-sus-primary-3-hover": !row.getIsSelected()
|
|
6514
|
+
},
|
|
6515
|
+
classes,
|
|
6516
|
+
tableDataCellProps?.className,
|
|
6517
|
+
cell.column.columnDef?.meta?.cellProps?.className
|
|
6518
|
+
),
|
|
6519
|
+
style: {
|
|
6520
|
+
...style,
|
|
6521
|
+
width: useColumnSizing ? cell.column.getSize() : void 0,
|
|
6522
|
+
minWidth: useColumnSizing ? cell.column.columnDef.minSize : void 0,
|
|
6523
|
+
maxWidth: useColumnSizing ? cell.column.columnDef.maxSize : void 0,
|
|
6524
|
+
...tableDataCellProps?.style,
|
|
6525
|
+
...cell.column.columnDef?.meta?.cellProps?.style
|
|
6526
|
+
},
|
|
6527
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
6528
|
+
},
|
|
6529
|
+
cell.id
|
|
6530
|
+
);
|
|
6531
|
+
})
|
|
6532
|
+
);
|
|
6533
|
+
}),
|
|
6534
|
+
virtualEnabled && paddingBottom > 0 && /* @__PURE__ */ jsx(TableRow, { "aria-hidden": "true", "data-testid": "table-virtual-padding-bottom", children: /* @__PURE__ */ jsx(
|
|
6535
|
+
TableCell,
|
|
6536
|
+
{
|
|
6537
|
+
className: "border-b-0 p-0 h-auto",
|
|
6538
|
+
colSpan: visibleColumnCount,
|
|
6539
|
+
style: { height: `${paddingBottom}px` }
|
|
6235
6540
|
}
|
|
6236
|
-
}
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6541
|
+
) })
|
|
6542
|
+
] });
|
|
6543
|
+
};
|
|
6544
|
+
var DataTable = ({
|
|
6545
|
+
tableRef,
|
|
6546
|
+
virtualizerRef,
|
|
6547
|
+
isInitialLoading,
|
|
6548
|
+
columns,
|
|
6549
|
+
data,
|
|
6550
|
+
filters,
|
|
6551
|
+
sorting,
|
|
6552
|
+
columnOrder,
|
|
6553
|
+
columnVisibility,
|
|
6554
|
+
columnPinning,
|
|
6555
|
+
columnGrouping,
|
|
6556
|
+
columnResizing,
|
|
6557
|
+
rowSelection,
|
|
6558
|
+
rowExpansion,
|
|
6559
|
+
virtual,
|
|
6560
|
+
scrollFetch,
|
|
6561
|
+
activeStatusContent,
|
|
6562
|
+
statusContent,
|
|
6563
|
+
rowIdKey,
|
|
6564
|
+
childrenKey,
|
|
6565
|
+
onRowClick,
|
|
6566
|
+
debug,
|
|
6567
|
+
components
|
|
6568
|
+
}) => {
|
|
6569
|
+
const virtualEnabled = virtual?.enabled ?? false;
|
|
6570
|
+
const tableContainerRef = useRef(null);
|
|
6571
|
+
const table = useTableController({
|
|
6572
|
+
columns,
|
|
6573
|
+
data,
|
|
6574
|
+
filters,
|
|
6575
|
+
sorting,
|
|
6576
|
+
columnOrder,
|
|
6577
|
+
columnVisibility,
|
|
6578
|
+
columnPinning,
|
|
6579
|
+
columnGrouping,
|
|
6580
|
+
columnResizing,
|
|
6581
|
+
rowSelection,
|
|
6582
|
+
rowExpansion,
|
|
6583
|
+
rowIdKey,
|
|
6584
|
+
childrenKey
|
|
6585
|
+
});
|
|
6586
|
+
const { virtualizer, virtualItems, paddingTop, paddingBottom, rowModel } = useTableVirtualizer({
|
|
6587
|
+
enabled: virtualEnabled,
|
|
6588
|
+
table,
|
|
6589
|
+
containerRef: tableContainerRef,
|
|
6590
|
+
virtual
|
|
6591
|
+
});
|
|
6592
|
+
const { visibleColumnCount, isSomeColumnsFilterable, filterableColumns, activeStatusContentComputed } = useComputedTableState({
|
|
6593
|
+
table,
|
|
6594
|
+
rowModel,
|
|
6595
|
+
isInitialLoading,
|
|
6596
|
+
scrollFetch,
|
|
6597
|
+
activeStatusContent
|
|
6598
|
+
});
|
|
6599
|
+
const fetchMoreOnScrollReached = useScrollFetch({ scrollFetch, containerRef: tableContainerRef });
|
|
6600
|
+
useBindRef_default({ ref: tableRef, value: table });
|
|
6601
|
+
useBindRef_default({ ref: virtualizerRef, value: virtualizer });
|
|
6250
6602
|
return /* @__PURE__ */ jsxs(
|
|
6251
6603
|
TableContainer,
|
|
6252
6604
|
{
|
|
@@ -6283,149 +6635,61 @@ var DataTable = ({
|
|
|
6283
6635
|
defaultIcon: /* @__PURE__ */ jsx(empty_data_default, { size: 128 })
|
|
6284
6636
|
}
|
|
6285
6637
|
) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6286
|
-
/* @__PURE__ */ jsxs(
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
const { isFirstRightPinnedColumn } = getColumnPinningInfo(nextHeader.column);
|
|
6301
|
-
const headerGroupLength = header.headerGroup.headers.length;
|
|
6302
|
-
const showSeparator = header.index !== headerGroupLength - 1 && !isLastLeftPinnedColumn && !isFirstRightPinnedColumn;
|
|
6303
|
-
return /* @__PURE__ */ jsxs(
|
|
6304
|
-
TableHead,
|
|
6305
|
-
{
|
|
6306
|
-
"data-testid": `table-head-${header.id}`,
|
|
6307
|
-
colSpan: header.colSpan,
|
|
6308
|
-
...tableHeadCellProps,
|
|
6309
|
-
...header.column.columnDef?.meta?.headerProps,
|
|
6310
|
-
className: cn(
|
|
6311
|
-
classes,
|
|
6312
|
-
tableHeadCellProps?.className,
|
|
6313
|
-
header.column.columnDef?.meta?.headerProps?.className
|
|
6314
|
-
),
|
|
6315
|
-
style: {
|
|
6316
|
-
...style,
|
|
6317
|
-
width: useColumnSizing ? header.column.getSize() : void 0,
|
|
6318
|
-
minWidth: useColumnSizing ? header.column.columnDef.minSize : void 0,
|
|
6319
|
-
maxWidth: useColumnSizing ? header.column.columnDef.maxSize : void 0,
|
|
6320
|
-
...tableHeadCellProps?.style,
|
|
6321
|
-
...header.column.columnDef?.meta?.headerProps?.style
|
|
6322
|
-
},
|
|
6323
|
-
children: [
|
|
6324
|
-
header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()),
|
|
6325
|
-
/* @__PURE__ */ jsx(
|
|
6326
|
-
ColumnSeparator_default,
|
|
6327
|
-
{
|
|
6328
|
-
...components?.columnSeparatorProps?.headerCell,
|
|
6329
|
-
...header.column.columnDef?.meta?.columnSeparatorProps,
|
|
6330
|
-
show: header.column.columnDef?.meta?.columnSeparatorProps?.show ?? components?.columnSeparatorProps?.headerCell?.show ?? showSeparator
|
|
6331
|
-
}
|
|
6332
|
-
),
|
|
6333
|
-
/* @__PURE__ */ jsx(ColumnResizer_default, { header, ...components?.columnResizerProps })
|
|
6334
|
-
]
|
|
6335
|
-
},
|
|
6336
|
-
header.id
|
|
6337
|
-
);
|
|
6338
|
-
}) }, headerGroup.id);
|
|
6339
|
-
}),
|
|
6340
|
-
isSomeColumnsFilterable && /* @__PURE__ */ jsx(TableRow, { "data-testid": "table-filter-row", children: filterableColumns.map((column) => {
|
|
6341
|
-
const { classes, style } = getColumnPinningStyles(column);
|
|
6342
|
-
const useColumnSizing = column.columnDef.meta?.useColumnSizing ?? columnResizing?.enabled ?? false;
|
|
6343
|
-
const tableFilterCellProps = typeof components?.tableFilterCellProps === "function" ? components?.tableFilterCellProps({ column, table }) : components?.tableFilterCellProps;
|
|
6344
|
-
return /* @__PURE__ */ jsx(
|
|
6345
|
-
TableCell,
|
|
6346
|
-
{
|
|
6347
|
-
"data-testid": `table-filter-cell-${column.id}`,
|
|
6348
|
-
...tableFilterCellProps,
|
|
6349
|
-
...column.columnDef?.meta?.filterCellProps,
|
|
6350
|
-
className: cn(
|
|
6351
|
-
"bg-white border-b",
|
|
6352
|
-
classes,
|
|
6353
|
-
tableFilterCellProps?.className,
|
|
6354
|
-
column.columnDef?.meta?.filterCellProps?.className
|
|
6355
|
-
),
|
|
6356
|
-
style: {
|
|
6357
|
-
...style,
|
|
6358
|
-
width: useColumnSizing ? column.getSize() : void 0,
|
|
6359
|
-
minWidth: useColumnSizing ? column.columnDef.minSize : void 0,
|
|
6360
|
-
maxWidth: useColumnSizing ? column.columnDef.maxSize : void 0,
|
|
6361
|
-
...tableFilterCellProps?.style,
|
|
6362
|
-
...column.columnDef?.meta?.filterCellProps?.style
|
|
6363
|
-
},
|
|
6364
|
-
children: column.getCanFilter() && column.columnDef.meta?.renderColumnFilter?.({
|
|
6365
|
-
column,
|
|
6366
|
-
table
|
|
6367
|
-
})
|
|
6368
|
-
},
|
|
6369
|
-
column.id
|
|
6370
|
-
);
|
|
6371
|
-
}) })
|
|
6372
|
-
]
|
|
6373
|
-
}
|
|
6374
|
-
),
|
|
6375
|
-
/* @__PURE__ */ jsx(TableBody, { ...components?.tableBodyProps, children: table.getRowModel().rows.map((row) => {
|
|
6376
|
-
const tableDataRowProps = typeof components?.tableDataRowProps === "function" ? components.tableDataRowProps({ row, table }) || {} : components?.tableDataRowProps || {};
|
|
6377
|
-
return /* @__PURE__ */ createElement(
|
|
6378
|
-
TableRow,
|
|
6379
|
-
{
|
|
6380
|
-
"data-testid": `table-data-row-${row.id}`,
|
|
6381
|
-
...tableDataRowProps,
|
|
6382
|
-
key: row.id,
|
|
6383
|
-
className: cn("group", tableDataRowProps?.className),
|
|
6384
|
-
"data-state": row.getIsSelected() ? "selected" : "non-selected",
|
|
6385
|
-
...getRowClickHandlers(onRowClick ?? (() => {
|
|
6386
|
-
}), {
|
|
6387
|
-
rowData: row.original,
|
|
6388
|
-
row,
|
|
6389
|
-
table
|
|
6390
|
-
})
|
|
6391
|
-
},
|
|
6392
|
-
row.getVisibleCells().map((cell) => {
|
|
6393
|
-
const { classes, style } = getColumnPinningStyles(cell.column);
|
|
6394
|
-
const useColumnSizing = cell.column.columnDef.meta?.useColumnSizing ?? columnResizing?.enabled ?? false;
|
|
6395
|
-
const tableDataCellProps = typeof components?.tableDataCellProps === "function" ? components?.tableDataCellProps({ row, cell, table }) : components?.tableDataCellProps;
|
|
6396
|
-
return /* @__PURE__ */ jsx(
|
|
6397
|
-
TableCell,
|
|
6398
|
-
{
|
|
6399
|
-
"data-testid": `table-data-cell-${cell.id}`,
|
|
6400
|
-
"data-row-id": row.id,
|
|
6401
|
-
"data-column-id": cell.column.id,
|
|
6402
|
-
...tableDataCellProps,
|
|
6403
|
-
...cell.column.columnDef?.meta?.cellProps,
|
|
6404
|
-
className: cn(
|
|
6638
|
+
/* @__PURE__ */ jsxs(
|
|
6639
|
+
Table,
|
|
6640
|
+
{
|
|
6641
|
+
...components?.tableProps,
|
|
6642
|
+
style: { tableLayout: virtualEnabled ? "fixed" : "auto", ...components?.tableProps?.style },
|
|
6643
|
+
children: [
|
|
6644
|
+
/* @__PURE__ */ jsxs(
|
|
6645
|
+
TableHeader,
|
|
6646
|
+
{
|
|
6647
|
+
className: cn("sticky top-0 z-10 bg-white", components?.tableHeaderProps?.className),
|
|
6648
|
+
...components?.tableHeaderProps,
|
|
6649
|
+
children: [
|
|
6650
|
+
/* @__PURE__ */ jsx(
|
|
6651
|
+
TableHeaderRows,
|
|
6405
6652
|
{
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
cell.column.columnDef?.meta?.cellProps?.className
|
|
6653
|
+
table,
|
|
6654
|
+
columnResizing,
|
|
6655
|
+
virtual,
|
|
6656
|
+
components
|
|
6657
|
+
}
|
|
6412
6658
|
),
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6659
|
+
/* @__PURE__ */ jsx(
|
|
6660
|
+
TableFilterRow,
|
|
6661
|
+
{
|
|
6662
|
+
table,
|
|
6663
|
+
filterableColumns,
|
|
6664
|
+
isSomeColumnsFilterable,
|
|
6665
|
+
columnResizing,
|
|
6666
|
+
virtual,
|
|
6667
|
+
components
|
|
6668
|
+
}
|
|
6669
|
+
)
|
|
6670
|
+
]
|
|
6671
|
+
}
|
|
6672
|
+
),
|
|
6673
|
+
/* @__PURE__ */ jsx(TableBody, { ...components?.tableBodyProps, children: /* @__PURE__ */ jsx(
|
|
6674
|
+
TableDataRows,
|
|
6675
|
+
{
|
|
6676
|
+
table,
|
|
6677
|
+
rowModel,
|
|
6678
|
+
virtualEnabled,
|
|
6679
|
+
virtualItems,
|
|
6680
|
+
virtualizer,
|
|
6681
|
+
paddingTop,
|
|
6682
|
+
paddingBottom,
|
|
6683
|
+
visibleColumnCount,
|
|
6684
|
+
columnResizing,
|
|
6685
|
+
virtual,
|
|
6686
|
+
onRowClick,
|
|
6687
|
+
components
|
|
6688
|
+
}
|
|
6689
|
+
) })
|
|
6690
|
+
]
|
|
6691
|
+
}
|
|
6692
|
+
),
|
|
6429
6693
|
activeStatusContentComputed === "emptyFilteredData" && /* @__PURE__ */ jsx(
|
|
6430
6694
|
StatusContentSlot_default,
|
|
6431
6695
|
{
|
|
@@ -7372,8 +7636,8 @@ var DISALLOWED_MARKS = ["bold", "italic", "link"];
|
|
|
7372
7636
|
var SUGGESTION_DEBOUNCE = 200;
|
|
7373
7637
|
var DEFAULT_CHIP_CLASS = "outline-1 outline-muted bg-muted/40 text-foreground";
|
|
7374
7638
|
var TokenView = ({ node, editor, getPos }) => {
|
|
7375
|
-
const [isFocused, setIsFocused] =
|
|
7376
|
-
|
|
7639
|
+
const [isFocused, setIsFocused] = React27__default.useState(false);
|
|
7640
|
+
React27__default.useEffect(() => {
|
|
7377
7641
|
const handler = () => {
|
|
7378
7642
|
const { from, to } = editor.state.selection;
|
|
7379
7643
|
const position = getPos();
|
|
@@ -8565,7 +8829,7 @@ function ToolbarPlugin({
|
|
|
8565
8829
|
isLink: hasLink
|
|
8566
8830
|
}));
|
|
8567
8831
|
}, []);
|
|
8568
|
-
|
|
8832
|
+
React27.useEffect(() => {
|
|
8569
8833
|
return mergeRegister(
|
|
8570
8834
|
editor.registerCommand(
|
|
8571
8835
|
CAN_UNDO_COMMAND,
|
|
@@ -9151,7 +9415,7 @@ function ControlledValuePlugin({
|
|
|
9151
9415
|
trackAppliedValue
|
|
9152
9416
|
}) {
|
|
9153
9417
|
const [editor] = useLexicalComposerContext();
|
|
9154
|
-
|
|
9418
|
+
React27.useEffect(() => {
|
|
9155
9419
|
if (value == null || trackAppliedValue.current === value) {
|
|
9156
9420
|
return;
|
|
9157
9421
|
}
|
|
@@ -9175,14 +9439,14 @@ function ControlledValuePlugin({
|
|
|
9175
9439
|
}
|
|
9176
9440
|
function EditableStatePlugin({ editable }) {
|
|
9177
9441
|
const [editor] = useLexicalComposerContext();
|
|
9178
|
-
|
|
9442
|
+
React27.useEffect(() => {
|
|
9179
9443
|
editor.setEditable(editable);
|
|
9180
9444
|
}, [editor, editable]);
|
|
9181
9445
|
return null;
|
|
9182
9446
|
}
|
|
9183
9447
|
function ImagesPlugin() {
|
|
9184
9448
|
const [editor] = useLexicalComposerContext();
|
|
9185
|
-
|
|
9449
|
+
React27.useEffect(() => {
|
|
9186
9450
|
return editor.registerCommand(
|
|
9187
9451
|
INSERT_IMAGE_COMMAND,
|
|
9188
9452
|
(payload) => {
|
|
@@ -9463,9 +9727,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
9463
9727
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
9464
9728
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
9465
9729
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
9466
|
-
var SidebarContext =
|
|
9730
|
+
var SidebarContext = React27.createContext(null);
|
|
9467
9731
|
function useSidebar() {
|
|
9468
|
-
const context =
|
|
9732
|
+
const context = React27.useContext(SidebarContext);
|
|
9469
9733
|
if (!context) {
|
|
9470
9734
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
9471
9735
|
}
|
|
@@ -9481,10 +9745,10 @@ function SidebarProvider({
|
|
|
9481
9745
|
...props
|
|
9482
9746
|
}) {
|
|
9483
9747
|
const isMobile = useIsMobile();
|
|
9484
|
-
const [openMobile, setOpenMobile] =
|
|
9485
|
-
const [_open, _setOpen] =
|
|
9748
|
+
const [openMobile, setOpenMobile] = React27.useState(false);
|
|
9749
|
+
const [_open, _setOpen] = React27.useState(defaultOpen);
|
|
9486
9750
|
const open = openProp ?? _open;
|
|
9487
|
-
const setOpen =
|
|
9751
|
+
const setOpen = React27.useCallback(
|
|
9488
9752
|
(value) => {
|
|
9489
9753
|
const openState = typeof value === "function" ? value(open) : value;
|
|
9490
9754
|
if (setOpenProp) {
|
|
@@ -9496,10 +9760,10 @@ function SidebarProvider({
|
|
|
9496
9760
|
},
|
|
9497
9761
|
[setOpenProp, open]
|
|
9498
9762
|
);
|
|
9499
|
-
const toggleSidebar =
|
|
9763
|
+
const toggleSidebar = React27.useCallback(() => {
|
|
9500
9764
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
9501
9765
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
9502
|
-
|
|
9766
|
+
React27.useEffect(() => {
|
|
9503
9767
|
const handleKeyDown = (event) => {
|
|
9504
9768
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
9505
9769
|
event.preventDefault();
|
|
@@ -9510,7 +9774,7 @@ function SidebarProvider({
|
|
|
9510
9774
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
9511
9775
|
}, [toggleSidebar]);
|
|
9512
9776
|
const state = open ? "expanded" : "collapsed";
|
|
9513
|
-
const contextValue =
|
|
9777
|
+
const contextValue = React27.useMemo(
|
|
9514
9778
|
() => ({
|
|
9515
9779
|
state,
|
|
9516
9780
|
open,
|
|
@@ -9952,7 +10216,7 @@ function SidebarMenuSkeleton({
|
|
|
9952
10216
|
showIcon = false,
|
|
9953
10217
|
...props
|
|
9954
10218
|
}) {
|
|
9955
|
-
const width =
|
|
10219
|
+
const width = React27.useMemo(() => {
|
|
9956
10220
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
9957
10221
|
}, []);
|
|
9958
10222
|
return /* @__PURE__ */ jsxs(
|
|
@@ -10422,7 +10686,7 @@ function SortableRow({
|
|
|
10422
10686
|
id: value,
|
|
10423
10687
|
disabled: name === "columns.0.id"
|
|
10424
10688
|
});
|
|
10425
|
-
const style =
|
|
10689
|
+
const style = React27.useMemo(
|
|
10426
10690
|
() => ({
|
|
10427
10691
|
transform: CSS.Transform.toString(transform),
|
|
10428
10692
|
transition
|
|
@@ -10824,7 +11088,7 @@ function getCandidateWidths({
|
|
|
10824
11088
|
}
|
|
10825
11089
|
return DEVICE_SIZES;
|
|
10826
11090
|
}
|
|
10827
|
-
var Image2 =
|
|
11091
|
+
var Image2 = React27.forwardRef(function Image3({
|
|
10828
11092
|
src,
|
|
10829
11093
|
alt,
|
|
10830
11094
|
width,
|
|
@@ -10854,34 +11118,34 @@ var Image2 = React26.forwardRef(function Image3({
|
|
|
10854
11118
|
} = imgProps;
|
|
10855
11119
|
const widthNumber = toNumber(width);
|
|
10856
11120
|
const heightNumber = toNumber(height);
|
|
10857
|
-
|
|
11121
|
+
React27.useEffect(() => {
|
|
10858
11122
|
if (!fill && (!widthNumber || !heightNumber)) {
|
|
10859
11123
|
console.warn(
|
|
10860
11124
|
"[Image] When `fill` is false you should provide both `width` and `height` to prevent layout shifts."
|
|
10861
11125
|
);
|
|
10862
11126
|
}
|
|
10863
11127
|
}, [fill, heightNumber, widthNumber]);
|
|
10864
|
-
const candidateWidths =
|
|
11128
|
+
const candidateWidths = React27.useMemo(
|
|
10865
11129
|
() => getCandidateWidths({ width: widthNumber, sizes, fill }),
|
|
10866
11130
|
[fill, sizes, widthNumber]
|
|
10867
11131
|
);
|
|
10868
11132
|
const largestWidth = candidateWidths[candidateWidths.length - 1] ?? widthNumber ?? DEVICE_SIZES[DEVICE_SIZES.length - 1];
|
|
10869
|
-
const computedSrc =
|
|
11133
|
+
const computedSrc = React27.useMemo(() => {
|
|
10870
11134
|
if (unoptimized) {
|
|
10871
11135
|
return src;
|
|
10872
11136
|
}
|
|
10873
11137
|
return loader({ src, width: largestWidth, quality });
|
|
10874
11138
|
}, [largestWidth, loader, quality, src, unoptimized]);
|
|
10875
|
-
const computedSrcSet =
|
|
11139
|
+
const computedSrcSet = React27.useMemo(() => {
|
|
10876
11140
|
if (unoptimized) {
|
|
10877
11141
|
return void 0;
|
|
10878
11142
|
}
|
|
10879
11143
|
return candidateWidths.map((currentWidth) => `${loader({ src, width: currentWidth, quality })} ${currentWidth}w`).join(", ");
|
|
10880
11144
|
}, [candidateWidths, loader, quality, src, unoptimized]);
|
|
10881
11145
|
const sizesValue = sizes ?? (fill ? "100vw" : widthNumber ? `${widthNumber}px` : void 0);
|
|
10882
|
-
const [isLoaded, setIsLoaded] =
|
|
10883
|
-
const internalRef =
|
|
10884
|
-
const setRefs =
|
|
11146
|
+
const [isLoaded, setIsLoaded] = React27.useState(false);
|
|
11147
|
+
const internalRef = React27.useRef(null);
|
|
11148
|
+
const setRefs = React27.useCallback(
|
|
10885
11149
|
(node) => {
|
|
10886
11150
|
internalRef.current = node;
|
|
10887
11151
|
if (!ref) {
|
|
@@ -10895,7 +11159,7 @@ var Image2 = React26.forwardRef(function Image3({
|
|
|
10895
11159
|
},
|
|
10896
11160
|
[ref]
|
|
10897
11161
|
);
|
|
10898
|
-
|
|
11162
|
+
React27.useEffect(() => {
|
|
10899
11163
|
const image = internalRef.current;
|
|
10900
11164
|
if (!image) {
|
|
10901
11165
|
return;
|
|
@@ -10907,7 +11171,7 @@ var Image2 = React26.forwardRef(function Image3({
|
|
|
10907
11171
|
setIsLoaded(false);
|
|
10908
11172
|
}
|
|
10909
11173
|
}, [onLoadingComplete, src]);
|
|
10910
|
-
const handleLoad =
|
|
11174
|
+
const handleLoad = React27.useCallback(
|
|
10911
11175
|
(event) => {
|
|
10912
11176
|
setIsLoaded(true);
|
|
10913
11177
|
onLoadProp?.(event);
|
|
@@ -10919,7 +11183,7 @@ var Image2 = React26.forwardRef(function Image3({
|
|
|
10919
11183
|
const fetchPriority = priority ? "high" : fetchPriorityProp;
|
|
10920
11184
|
const decoding = decodingProp ?? "async";
|
|
10921
11185
|
const resolvedObjectFit = objectFit ?? (fill ? "cover" : void 0);
|
|
10922
|
-
const wrapperStyle =
|
|
11186
|
+
const wrapperStyle = React27.useMemo(
|
|
10923
11187
|
() => ({
|
|
10924
11188
|
position: "relative",
|
|
10925
11189
|
display: fill ? "block" : "inline-block",
|
|
@@ -10929,7 +11193,7 @@ var Image2 = React26.forwardRef(function Image3({
|
|
|
10929
11193
|
}),
|
|
10930
11194
|
[fill, height, width]
|
|
10931
11195
|
);
|
|
10932
|
-
const imageStyle =
|
|
11196
|
+
const imageStyle = React27.useMemo(
|
|
10933
11197
|
() => ({
|
|
10934
11198
|
width: fill ? "100%" : formatDimension(width) ?? void 0,
|
|
10935
11199
|
height: fill ? "100%" : formatDimension(height) ?? void 0,
|
|
@@ -11078,7 +11342,7 @@ var InfoIcon = ({ size = "1em", className, ...props }) => {
|
|
|
11078
11342
|
}
|
|
11079
11343
|
);
|
|
11080
11344
|
};
|
|
11081
|
-
var InfoIcon_default =
|
|
11345
|
+
var InfoIcon_default = React27__default.memo(InfoIcon);
|
|
11082
11346
|
var Navbar = ({
|
|
11083
11347
|
className,
|
|
11084
11348
|
title,
|
|
@@ -11210,7 +11474,7 @@ var Navbar = ({
|
|
|
11210
11474
|
}
|
|
11211
11475
|
);
|
|
11212
11476
|
};
|
|
11213
|
-
var navbar_default =
|
|
11477
|
+
var navbar_default = React27__default.memo(Navbar);
|
|
11214
11478
|
var usePreventPageLeaveStore = create((set) => ({
|
|
11215
11479
|
isPreventing: false,
|
|
11216
11480
|
setPreventing: (value) => set({ isPreventing: value })
|
|
@@ -11250,7 +11514,7 @@ var DefaultHeader = ({
|
|
|
11250
11514
|
classNames,
|
|
11251
11515
|
rightActions
|
|
11252
11516
|
}) => {
|
|
11253
|
-
const titleRef =
|
|
11517
|
+
const titleRef = React27.useRef(null);
|
|
11254
11518
|
const isTruncated = useTruncated_default({ elementRef: titleRef });
|
|
11255
11519
|
const textElement = title ? /* @__PURE__ */ jsx(
|
|
11256
11520
|
"span",
|
|
@@ -11260,13 +11524,13 @@ var DefaultHeader = ({
|
|
|
11260
11524
|
children: title
|
|
11261
11525
|
}
|
|
11262
11526
|
) : null;
|
|
11263
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start justify-between gap-
|
|
11264
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-
|
|
11527
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start justify-between gap-1", classNames?.header), children: [
|
|
11528
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 min-w-0", children: [
|
|
11265
11529
|
icon ? /* @__PURE__ */ jsx(
|
|
11266
11530
|
"div",
|
|
11267
11531
|
{
|
|
11268
11532
|
className: cn(
|
|
11269
|
-
"w-10 h-10 rounded-full bg-sus-green-50 flex items-
|
|
11533
|
+
"w-10 h-10 rounded-full bg-sus-green-50 flex items-start justify-center",
|
|
11270
11534
|
classNames?.iconWrapper
|
|
11271
11535
|
),
|
|
11272
11536
|
children: icon
|
|
@@ -11589,7 +11853,7 @@ function isFragment(object) {
|
|
|
11589
11853
|
var isValidText = (val) => ["string", "number"].includes(typeof val);
|
|
11590
11854
|
function toArray(children, option = {}) {
|
|
11591
11855
|
let ret = [];
|
|
11592
|
-
|
|
11856
|
+
React27.Children.forEach(children, (child) => {
|
|
11593
11857
|
if ((child === void 0 || child === null) && !option.keepEmpty) {
|
|
11594
11858
|
return;
|
|
11595
11859
|
}
|
|
@@ -11603,9 +11867,9 @@ function toArray(children, option = {}) {
|
|
|
11603
11867
|
});
|
|
11604
11868
|
return ret;
|
|
11605
11869
|
}
|
|
11606
|
-
var MeasureText =
|
|
11607
|
-
const spanRef =
|
|
11608
|
-
|
|
11870
|
+
var MeasureText = React27.forwardRef(({ style, children }, ref) => {
|
|
11871
|
+
const spanRef = React27.useRef(null);
|
|
11872
|
+
React27.useImperativeHandle(ref, () => ({
|
|
11609
11873
|
isExceed: () => {
|
|
11610
11874
|
const span = spanRef.current;
|
|
11611
11875
|
return span.scrollHeight > span.clientHeight;
|
|
@@ -11663,19 +11927,19 @@ var lineClipStyle = {
|
|
|
11663
11927
|
};
|
|
11664
11928
|
function EllipsisMeasure(props) {
|
|
11665
11929
|
const { enableMeasure, width, text, children, rows, expanded, miscDeps, onEllipsis } = props;
|
|
11666
|
-
const nodeList =
|
|
11667
|
-
const nodeLen =
|
|
11668
|
-
const fullContent =
|
|
11669
|
-
const [ellipsisCutIndex, setEllipsisCutIndex] =
|
|
11670
|
-
const cutMidRef =
|
|
11671
|
-
const measureWhiteSpaceRef =
|
|
11672
|
-
const needEllipsisRef =
|
|
11673
|
-
const descRowsEllipsisRef =
|
|
11674
|
-
const symbolRowEllipsisRef =
|
|
11675
|
-
const [canEllipsis, setCanEllipsis] =
|
|
11676
|
-
const [needEllipsis, setNeedEllipsis] =
|
|
11677
|
-
const [ellipsisHeight, setEllipsisHeight] =
|
|
11678
|
-
const [parentWhiteSpace, setParentWhiteSpace] =
|
|
11930
|
+
const nodeList = React27.useMemo(() => toArray(text), [text]);
|
|
11931
|
+
const nodeLen = React27.useMemo(() => getNodesLen(nodeList), [text]);
|
|
11932
|
+
const fullContent = React27.useMemo(() => children(nodeList, false), [text]);
|
|
11933
|
+
const [ellipsisCutIndex, setEllipsisCutIndex] = React27.useState(null);
|
|
11934
|
+
const cutMidRef = React27.useRef(null);
|
|
11935
|
+
const measureWhiteSpaceRef = React27.useRef(null);
|
|
11936
|
+
const needEllipsisRef = React27.useRef(null);
|
|
11937
|
+
const descRowsEllipsisRef = React27.useRef(null);
|
|
11938
|
+
const symbolRowEllipsisRef = React27.useRef(null);
|
|
11939
|
+
const [canEllipsis, setCanEllipsis] = React27.useState(false);
|
|
11940
|
+
const [needEllipsis, setNeedEllipsis] = React27.useState(STATUS_MEASURE_NONE);
|
|
11941
|
+
const [ellipsisHeight, setEllipsisHeight] = React27.useState(0);
|
|
11942
|
+
const [parentWhiteSpace, setParentWhiteSpace] = React27.useState(null);
|
|
11679
11943
|
useIsomorphicLayoutEffect(() => {
|
|
11680
11944
|
if (enableMeasure && width && nodeLen) {
|
|
11681
11945
|
setNeedEllipsis(STATUS_MEASURE_PREPARE);
|
|
@@ -11718,7 +11982,7 @@ function EllipsisMeasure(props) {
|
|
|
11718
11982
|
setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);
|
|
11719
11983
|
}
|
|
11720
11984
|
}, [ellipsisCutIndex, cutMidIndex]);
|
|
11721
|
-
const finalContent =
|
|
11985
|
+
const finalContent = React27.useMemo(() => {
|
|
11722
11986
|
if (!enableMeasure) {
|
|
11723
11987
|
return children(nodeList, false);
|
|
11724
11988
|
}
|
|
@@ -11809,10 +12073,10 @@ var Truncated = ({
|
|
|
11809
12073
|
tooltipProps,
|
|
11810
12074
|
tooltipContentProps
|
|
11811
12075
|
}) => {
|
|
11812
|
-
const elementRef =
|
|
11813
|
-
const [open, setOpen] =
|
|
11814
|
-
const [isTruncated, setIsTruncated] =
|
|
11815
|
-
const [measureWidth, setMeasureWidth] =
|
|
12076
|
+
const elementRef = React27.useRef(null);
|
|
12077
|
+
const [open, setOpen] = React27.useState(false);
|
|
12078
|
+
const [isTruncated, setIsTruncated] = React27.useState(false);
|
|
12079
|
+
const [measureWidth, setMeasureWidth] = React27.useState(0);
|
|
11816
12080
|
const Comp = as;
|
|
11817
12081
|
const normalizedChildren = typeof children === "string" ? children.replace(/>/g, ">\u200B") : children;
|
|
11818
12082
|
const lineClampLines = typeof ellipsis === "number" ? ellipsis : typeof ellipsis === "object" ? ellipsis?.lineClamp ?? 3 : null;
|
|
@@ -11837,13 +12101,13 @@ var Truncated = ({
|
|
|
11837
12101
|
setIsTruncated(false);
|
|
11838
12102
|
}
|
|
11839
12103
|
}, [enableMeasure]);
|
|
11840
|
-
const truncationClass =
|
|
12104
|
+
const truncationClass = React27.useMemo(() => {
|
|
11841
12105
|
if (!ellipsis) return "";
|
|
11842
12106
|
if (typeof ellipsis === "number") return `line-clamp-${ellipsis}`;
|
|
11843
12107
|
if (typeof ellipsis === "object") return `line-clamp-${lineClampLines ?? 3}`;
|
|
11844
12108
|
return "truncate";
|
|
11845
12109
|
}, [ellipsis, lineClampLines]);
|
|
11846
|
-
const clampedStyle =
|
|
12110
|
+
const clampedStyle = React27.useMemo(() => {
|
|
11847
12111
|
if (!lineClampLines) return style;
|
|
11848
12112
|
return {
|
|
11849
12113
|
...style,
|
|
@@ -11905,7 +12169,7 @@ var Truncated = ({
|
|
|
11905
12169
|
);
|
|
11906
12170
|
};
|
|
11907
12171
|
var truncated_default = Truncated;
|
|
11908
|
-
var InputPrimitive2 =
|
|
12172
|
+
var InputPrimitive2 = React27.forwardRef(
|
|
11909
12173
|
({ className, type = "text", ...props }, ref) => {
|
|
11910
12174
|
return /* @__PURE__ */ jsx(
|
|
11911
12175
|
"input",
|
|
@@ -11944,7 +12208,7 @@ var inputVariants2 = cva("", {
|
|
|
11944
12208
|
appearance: "filled"
|
|
11945
12209
|
}
|
|
11946
12210
|
});
|
|
11947
|
-
var Input2 =
|
|
12211
|
+
var Input2 = React27.forwardRef(
|
|
11948
12212
|
({
|
|
11949
12213
|
className,
|
|
11950
12214
|
wrapperClassName,
|
|
@@ -11977,8 +12241,8 @@ var Input2 = React26.forwardRef(
|
|
|
11977
12241
|
onChange: onChangeProp
|
|
11978
12242
|
} = rest;
|
|
11979
12243
|
const ariaInvalid = invalid ?? ariaInvalidProp;
|
|
11980
|
-
const messageId =
|
|
11981
|
-
const handleChange =
|
|
12244
|
+
const messageId = React27.useId();
|
|
12245
|
+
const handleChange = React27.useCallback(
|
|
11982
12246
|
(event) => {
|
|
11983
12247
|
onChangeProp?.(event);
|
|
11984
12248
|
onValueChange?.(event.target.value);
|
|
@@ -12372,13 +12636,13 @@ var useFieldNames = ({
|
|
|
12372
12636
|
fieldNames
|
|
12373
12637
|
}) => {
|
|
12374
12638
|
const { label: labelFieldKey = "label", value: valueFieldKey = "value" } = fieldNames || {};
|
|
12375
|
-
const getLabelField =
|
|
12639
|
+
const getLabelField = React27__default.useCallback(
|
|
12376
12640
|
(option) => {
|
|
12377
12641
|
return option?.[labelFieldKey];
|
|
12378
12642
|
},
|
|
12379
12643
|
[labelFieldKey]
|
|
12380
12644
|
);
|
|
12381
|
-
const getValueField =
|
|
12645
|
+
const getValueField = React27__default.useCallback(
|
|
12382
12646
|
(option) => {
|
|
12383
12647
|
return option?.[valueFieldKey];
|
|
12384
12648
|
},
|
|
@@ -12410,11 +12674,11 @@ var VirtualizedCommand = ({
|
|
|
12410
12674
|
onFocus
|
|
12411
12675
|
}) => {
|
|
12412
12676
|
const { getLabelField, getValueField } = useFieldNames_default({ fieldNames });
|
|
12413
|
-
const internalOptions =
|
|
12414
|
-
const [filteredOptions, setFilteredOptions] =
|
|
12415
|
-
const [focusedIndex, setFocusedIndex] =
|
|
12416
|
-
const [isKeyboardNavActive, setIsKeyboardNavActive] =
|
|
12417
|
-
const parentRef =
|
|
12677
|
+
const internalOptions = React27.useMemo(() => options ?? [], [options]);
|
|
12678
|
+
const [filteredOptions, setFilteredOptions] = React27.useState(internalOptions);
|
|
12679
|
+
const [focusedIndex, setFocusedIndex] = React27.useState(0);
|
|
12680
|
+
const [isKeyboardNavActive, setIsKeyboardNavActive] = React27.useState(false);
|
|
12681
|
+
const parentRef = React27.useRef(null);
|
|
12418
12682
|
const virtualizer = useVirtualizer({
|
|
12419
12683
|
count: filteredOptions.length,
|
|
12420
12684
|
getScrollElement: () => parentRef.current,
|
|
@@ -12422,14 +12686,14 @@ var VirtualizedCommand = ({
|
|
|
12422
12686
|
overscan: 2
|
|
12423
12687
|
});
|
|
12424
12688
|
const virtualOptions = virtualizer.getVirtualItems();
|
|
12425
|
-
const dynamicHeight =
|
|
12689
|
+
const dynamicHeight = React27.useMemo(() => {
|
|
12426
12690
|
const contentHeight = filteredOptions.length * ROW_HEIGHT;
|
|
12427
12691
|
if (contentHeight <= 0) {
|
|
12428
12692
|
return MIN_HEIGHT_EMPTY;
|
|
12429
12693
|
}
|
|
12430
12694
|
return Math.max(ROW_HEIGHT, Math.min(height, contentHeight));
|
|
12431
12695
|
}, [filteredOptions.length, height]);
|
|
12432
|
-
const scrollToIndex =
|
|
12696
|
+
const scrollToIndex = React27.useCallback(
|
|
12433
12697
|
(index) => {
|
|
12434
12698
|
virtualizer.scrollToIndex(index, {
|
|
12435
12699
|
align: "center"
|
|
@@ -12437,7 +12701,7 @@ var VirtualizedCommand = ({
|
|
|
12437
12701
|
},
|
|
12438
12702
|
[virtualizer]
|
|
12439
12703
|
);
|
|
12440
|
-
const handleSearch =
|
|
12704
|
+
const handleSearch = React27.useCallback(
|
|
12441
12705
|
(search) => {
|
|
12442
12706
|
setIsKeyboardNavActive(false);
|
|
12443
12707
|
setFilteredOptions(
|
|
@@ -12452,7 +12716,7 @@ var VirtualizedCommand = ({
|
|
|
12452
12716
|
},
|
|
12453
12717
|
[filterOption, getLabelField, internalOptions]
|
|
12454
12718
|
);
|
|
12455
|
-
const handleKeyDown =
|
|
12719
|
+
const handleKeyDown = React27.useCallback(
|
|
12456
12720
|
(event) => {
|
|
12457
12721
|
switch (event.key) {
|
|
12458
12722
|
case "ArrowDown": {
|
|
@@ -12487,7 +12751,7 @@ var VirtualizedCommand = ({
|
|
|
12487
12751
|
},
|
|
12488
12752
|
[filteredOptions, focusedIndex, getValueField, onSelect, scrollToIndex]
|
|
12489
12753
|
);
|
|
12490
|
-
|
|
12754
|
+
React27.useEffect(() => {
|
|
12491
12755
|
if (value) {
|
|
12492
12756
|
const option = filteredOptions.find((option2) => {
|
|
12493
12757
|
const optionValue = getValueField(option2);
|
|
@@ -12614,13 +12878,13 @@ var ComboboxInner = ({
|
|
|
12614
12878
|
defaultValue,
|
|
12615
12879
|
value
|
|
12616
12880
|
});
|
|
12617
|
-
const currentSelectedOption =
|
|
12881
|
+
const currentSelectedOption = React27.useMemo(() => {
|
|
12618
12882
|
return options?.find((option) => {
|
|
12619
12883
|
const optionValue = getValueField(option);
|
|
12620
12884
|
return optionValue === selectedValue;
|
|
12621
12885
|
});
|
|
12622
12886
|
}, [getValueField, options, selectedValue]);
|
|
12623
|
-
const renderValue =
|
|
12887
|
+
const renderValue = React27.useMemo(() => {
|
|
12624
12888
|
if (!selectedValue) return placeholder2;
|
|
12625
12889
|
if (currentSelectedOption) {
|
|
12626
12890
|
return getLabelField(currentSelectedOption);
|
|
@@ -12630,7 +12894,7 @@ var ComboboxInner = ({
|
|
|
12630
12894
|
}
|
|
12631
12895
|
return null;
|
|
12632
12896
|
}, [currentSelectedOption, getLabelField, placeholder2, selectedValue, showValueWhenNoMatch]);
|
|
12633
|
-
const handleSelect =
|
|
12897
|
+
const handleSelect = React27.useCallback(
|
|
12634
12898
|
(selected, option) => {
|
|
12635
12899
|
setSelectedValue(selected);
|
|
12636
12900
|
setOpenPopover(false);
|
|
@@ -12643,7 +12907,7 @@ var ComboboxInner = ({
|
|
|
12643
12907
|
},
|
|
12644
12908
|
[onOpenChange, onSelect, setOpenPopover, setSelectedValue]
|
|
12645
12909
|
);
|
|
12646
|
-
const handleOpenPopover =
|
|
12910
|
+
const handleOpenPopover = React27.useCallback(
|
|
12647
12911
|
(isOpen) => {
|
|
12648
12912
|
if (disabled) return;
|
|
12649
12913
|
setOpenPopover(isOpen);
|
|
@@ -12653,7 +12917,7 @@ var ComboboxInner = ({
|
|
|
12653
12917
|
},
|
|
12654
12918
|
[disabled, onOpenChange, setOpenPopover]
|
|
12655
12919
|
);
|
|
12656
|
-
const handleClear =
|
|
12920
|
+
const handleClear = React27.useCallback(
|
|
12657
12921
|
(event) => {
|
|
12658
12922
|
event.stopPropagation();
|
|
12659
12923
|
setSelectedValue(void 0);
|
|
@@ -12742,7 +13006,7 @@ var ComboboxInner = ({
|
|
|
12742
13006
|
)
|
|
12743
13007
|
] });
|
|
12744
13008
|
};
|
|
12745
|
-
var Combobox =
|
|
13009
|
+
var Combobox = React27.forwardRef(ComboboxInner);
|
|
12746
13010
|
var Combobox_default = Combobox;
|
|
12747
13011
|
var TruncatedMouseEnterDiv = ({
|
|
12748
13012
|
value,
|
|
@@ -12867,6 +13131,6 @@ var TabSelect = ({
|
|
|
12867
13131
|
);
|
|
12868
13132
|
};
|
|
12869
13133
|
|
|
12870
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionMenu, AdministrationIcon, AdvanceSearch_default as AdvanceSearch, AnalyticsIcon, application_log_default as ApplicationLogIcon, arrow_default as ArrowIcon, AuditFooter, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Combobox_default as Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CropperModal, CropperModalError, custom_action_status_default as CustomActionStatusIcon, custom_field_default as CustomFieldIcon, DIALOG_ALERT_I18N_SUBNAMESPACE, DIALOG_ALERT_TEMPLATES, DashboardIcon, DataEntryIcon, DataTable_default as DataTable, DatePicker2 as DatePicker, decrease_default as DecreaseIcon, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, filters_default as FiltersIcon, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HamburgerMenuIcon, HandymanIcon, HeaderCell_default as HeaderCell, Image2 as Image, information_default as InformationIcon, Input, InputNumber_default as InputNumber, Label2 as Label, LookupSelect, MailIcon, MainListContainer_default as MainListContainer, ManIcon, ManagementIcon, MenuIcon, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, plus_default as PlusIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PowerIcon, PreventPageLeave_default as PreventPageLeave, QuestionIcon, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, RightPanelContainer_default as RightPanelContainer, role_default as RoleIcon, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, SetupIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, calendar2_default as SuiCalendarIcon2, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, TabSelect, Textarea, ToolBoxIcon, Tooltip2 as Tooltip, TooltipArrow, TooltipContent2 as TooltipContent, TooltipProvider2 as TooltipProvider, TooltipTrigger2 as TooltipTrigger, trash_default as TrashIcon, truncated_default as Truncated, truncatedMouseEnterDiv_default as TruncatedMouseEnterDiv, ui_exports as UI, user_alone_default as UserAloneIcon, user_friend_default as UserFriendIcon, user_default as UserIcon, VirtualizedCommand_default as VirtualizedCommand, booleanToSelectValue, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, resetVisibleTableState, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, useControllableState_default as useControllableState, useDraftGuardStore, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useIsomorphicLayoutEffect, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useSafeBlocker, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated, validateTokenPrefixes };
|
|
13134
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionMenu, AdministrationIcon, AdvanceSearch_default as AdvanceSearch, AnalyticsIcon, application_log_default as ApplicationLogIcon, arrow_default as ArrowIcon, AuditFooter, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Combobox_default as Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CropperModal, CropperModalError, custom_action_status_default as CustomActionStatusIcon, custom_field_default as CustomFieldIcon, DIALOG_ALERT_I18N_SUBNAMESPACE, DIALOG_ALERT_TEMPLATES, DashboardIcon, DataEntryIcon, DataTable_default as DataTable, DatePicker2 as DatePicker, decrease_default as DecreaseIcon, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, filters_default as FiltersIcon, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HamburgerMenuIcon, HandymanIcon, HeaderCell_default as HeaderCell, Image2 as Image, information_default as InformationIcon, Input, InputNumber_default as InputNumber, Label2 as Label, LookupSelect, MailIcon, MainListContainer_default as MainListContainer, ManIcon, ManagementIcon, MenuIcon, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, plus_default as PlusIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PowerIcon, PreventPageLeave_default as PreventPageLeave, QuestionIcon, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, RightPanelContainer_default as RightPanelContainer, role_default as RoleIcon, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, SetupIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, calendar2_default as SuiCalendarIcon2, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, TabSelect, Textarea, ToolBoxIcon, Tooltip2 as Tooltip, TooltipArrow, TooltipContent2 as TooltipContent, TooltipProvider2 as TooltipProvider, TooltipTrigger2 as TooltipTrigger, trash_default as TrashIcon, truncated_default as Truncated, truncatedMouseEnterDiv_default as TruncatedMouseEnterDiv, ui_exports as UI, user_alone_default as UserAloneIcon, user_friend_default as UserFriendIcon, user_group_default as UserGroupIcon, user_default as UserIcon, VirtualizedCommand_default as VirtualizedCommand, booleanToSelectValue, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, resetVisibleTableState, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, useBindRef_default as useBindRef, useControllableState_default as useControllableState, useDraftGuardStore, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useIsomorphicLayoutEffect, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useSafeBlocker, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated, validateTokenPrefixes };
|
|
12871
13135
|
//# sourceMappingURL=index.mjs.map
|
|
12872
13136
|
//# sourceMappingURL=index.mjs.map
|