@sustaina/shared-ui 1.40.4 → 1.42.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 -11
- package/dist/index.d.ts +26 -11
- package/dist/index.js +830 -602
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +671 -444
- 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) => {
|
|
@@ -2542,7 +2542,7 @@ var OPERATOR_LABEL = {
|
|
|
2542
2542
|
containsAll: "Contains all of"
|
|
2543
2543
|
};
|
|
2544
2544
|
var OperatorSelect = ({ row, operators, onChangeOperator, error }) => {
|
|
2545
|
-
|
|
2545
|
+
React27__default.useEffect(() => {
|
|
2546
2546
|
if (!operators.length) return;
|
|
2547
2547
|
if (!operators.includes(row.operator)) {
|
|
2548
2548
|
onChangeOperator(operators[0]);
|
|
@@ -2578,15 +2578,15 @@ function Label2({ className, ...props }) {
|
|
|
2578
2578
|
);
|
|
2579
2579
|
}
|
|
2580
2580
|
var Form = FormProvider;
|
|
2581
|
-
var FormFieldContext =
|
|
2581
|
+
var FormFieldContext = React27.createContext({});
|
|
2582
2582
|
var FormField = ({
|
|
2583
2583
|
...props
|
|
2584
2584
|
}) => {
|
|
2585
2585
|
return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
|
|
2586
2586
|
};
|
|
2587
2587
|
var useFormField = () => {
|
|
2588
|
-
const fieldContext =
|
|
2589
|
-
const itemContext =
|
|
2588
|
+
const fieldContext = React27.useContext(FormFieldContext);
|
|
2589
|
+
const itemContext = React27.useContext(FormItemContext);
|
|
2590
2590
|
const { getFieldState } = useFormContext();
|
|
2591
2591
|
const formState = useFormState({ name: fieldContext.name });
|
|
2592
2592
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -2603,9 +2603,9 @@ var useFormField = () => {
|
|
|
2603
2603
|
...fieldState
|
|
2604
2604
|
};
|
|
2605
2605
|
};
|
|
2606
|
-
var FormItemContext =
|
|
2606
|
+
var FormItemContext = React27.createContext({});
|
|
2607
2607
|
function FormItem({ className, ...props }) {
|
|
2608
|
-
const id =
|
|
2608
|
+
const id = React27.useId();
|
|
2609
2609
|
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { "data-slot": "form-item", className: cn("grid gap-2", className), ...props }) });
|
|
2610
2610
|
}
|
|
2611
2611
|
function FormLabel({ className, ...props }) {
|
|
@@ -2709,7 +2709,7 @@ var Spinner = ({ className, variant, size = "default", ...props }) => /* @__PURE
|
|
|
2709
2709
|
]
|
|
2710
2710
|
}
|
|
2711
2711
|
);
|
|
2712
|
-
var InputPrimitive =
|
|
2712
|
+
var InputPrimitive = React27.forwardRef(
|
|
2713
2713
|
({ className, type = "text", ...props }, ref) => {
|
|
2714
2714
|
return /* @__PURE__ */ jsx(
|
|
2715
2715
|
"input",
|
|
@@ -2748,7 +2748,7 @@ var inputVariants = cva("", {
|
|
|
2748
2748
|
appearance: "filled"
|
|
2749
2749
|
}
|
|
2750
2750
|
});
|
|
2751
|
-
var Input =
|
|
2751
|
+
var Input = React27.forwardRef(
|
|
2752
2752
|
({
|
|
2753
2753
|
className,
|
|
2754
2754
|
wrapperClassName,
|
|
@@ -2781,8 +2781,8 @@ var Input = React25.forwardRef(
|
|
|
2781
2781
|
onChange: onChangeProp
|
|
2782
2782
|
} = rest;
|
|
2783
2783
|
const ariaInvalid = invalid ?? ariaInvalidProp;
|
|
2784
|
-
const messageId =
|
|
2785
|
-
const handleChange =
|
|
2784
|
+
const messageId = React27.useId();
|
|
2785
|
+
const handleChange = React27.useCallback(
|
|
2786
2786
|
(event) => {
|
|
2787
2787
|
onChangeProp?.(event);
|
|
2788
2788
|
onValueChange?.(event.target.value);
|
|
@@ -3170,20 +3170,20 @@ function DatePicker({
|
|
|
3170
3170
|
className,
|
|
3171
3171
|
...props
|
|
3172
3172
|
}) {
|
|
3173
|
-
const today =
|
|
3174
|
-
const [displayed, setDisplayed] =
|
|
3173
|
+
const today = React27.useMemo(() => startOfDay(/* @__PURE__ */ new Date()), []);
|
|
3174
|
+
const [displayed, setDisplayed] = React27.useState(
|
|
3175
3175
|
selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date()
|
|
3176
3176
|
);
|
|
3177
3177
|
minDate = clampToDay(minDate);
|
|
3178
3178
|
maxDate = clampToDay(maxDate);
|
|
3179
|
-
const disabledSet =
|
|
3179
|
+
const disabledSet = React27.useMemo(() => {
|
|
3180
3180
|
const s = /* @__PURE__ */ new Set();
|
|
3181
3181
|
disabledDates?.forEach((d) => s.add(startOfDay(d).toISOString()));
|
|
3182
3182
|
return s;
|
|
3183
3183
|
}, [disabledDates]);
|
|
3184
3184
|
const displayYear = displayed.getFullYear();
|
|
3185
3185
|
const displayMonth = displayed.getMonth();
|
|
3186
|
-
const weekdays =
|
|
3186
|
+
const weekdays = React27.useMemo(() => {
|
|
3187
3187
|
const labels = [];
|
|
3188
3188
|
for (let i = 0; i < 7; i++) {
|
|
3189
3189
|
const idx = i;
|
|
@@ -3192,7 +3192,7 @@ function DatePicker({
|
|
|
3192
3192
|
}
|
|
3193
3193
|
return labels;
|
|
3194
3194
|
}, [callbacks]);
|
|
3195
|
-
const grid =
|
|
3195
|
+
const grid = React27.useMemo(() => buildCalendarGrid(displayed, true), [displayed]);
|
|
3196
3196
|
const isDateDisabled = (date) => {
|
|
3197
3197
|
const d = startOfDay(date);
|
|
3198
3198
|
if (minDate && d < minDate) return true;
|
|
@@ -3202,7 +3202,7 @@ function DatePicker({
|
|
|
3202
3202
|
};
|
|
3203
3203
|
const minYear = minDate?.getFullYear();
|
|
3204
3204
|
const maxYear = maxDate?.getFullYear();
|
|
3205
|
-
const getMonthLabel =
|
|
3205
|
+
const getMonthLabel = React27.useCallback(
|
|
3206
3206
|
(year, monthIndex) => {
|
|
3207
3207
|
const label = callbacks?.monthLabel?.(year, monthIndex);
|
|
3208
3208
|
if (label === null || label === void 0) {
|
|
@@ -3212,7 +3212,7 @@ function DatePicker({
|
|
|
3212
3212
|
},
|
|
3213
3213
|
[callbacks]
|
|
3214
3214
|
);
|
|
3215
|
-
const getYearLabel =
|
|
3215
|
+
const getYearLabel = React27.useCallback(
|
|
3216
3216
|
(year) => {
|
|
3217
3217
|
const label = callbacks?.yearLabel?.(year);
|
|
3218
3218
|
if (label === null || label === void 0) return String(year);
|
|
@@ -3220,7 +3220,7 @@ function DatePicker({
|
|
|
3220
3220
|
},
|
|
3221
3221
|
[callbacks]
|
|
3222
3222
|
);
|
|
3223
|
-
const clampMonthToBounds =
|
|
3223
|
+
const clampMonthToBounds = React27.useCallback(
|
|
3224
3224
|
(year, monthIndex) => {
|
|
3225
3225
|
let output = monthIndex;
|
|
3226
3226
|
if (typeof minYear === "number" && year === minYear && minDate) {
|
|
@@ -3235,7 +3235,7 @@ function DatePicker({
|
|
|
3235
3235
|
},
|
|
3236
3236
|
[maxDate, minDate, maxYear, minYear]
|
|
3237
3237
|
);
|
|
3238
|
-
const yearOptions =
|
|
3238
|
+
const yearOptions = React27.useMemo(() => {
|
|
3239
3239
|
const fallbackWindow = 50;
|
|
3240
3240
|
const start = typeof minYear === "number" ? minYear : displayYear - fallbackWindow;
|
|
3241
3241
|
const end = typeof maxYear === "number" ? maxYear : displayYear + fallbackWindow;
|
|
@@ -3256,7 +3256,7 @@ function DatePicker({
|
|
|
3256
3256
|
}
|
|
3257
3257
|
return years;
|
|
3258
3258
|
}, [displayYear, maxYear, minYear, selectedDate]);
|
|
3259
|
-
const monthOptions =
|
|
3259
|
+
const monthOptions = React27.useMemo(() => {
|
|
3260
3260
|
const months = Array.from({ length: 12 }, (_, monthIndex) => {
|
|
3261
3261
|
const disabled = typeof minYear === "number" && displayYear === minYear && minDate && monthIndex < minDate.getMonth() || typeof maxYear === "number" && displayYear === maxYear && maxDate && monthIndex > maxDate.getMonth();
|
|
3262
3262
|
return {
|
|
@@ -3275,7 +3275,7 @@ function DatePicker({
|
|
|
3275
3275
|
}
|
|
3276
3276
|
return months.sort((a, b) => a.value - b.value).filter((option, index, arr) => index === 0 || option.value !== arr[index - 1].value);
|
|
3277
3277
|
}, [displayMonth, displayYear, getMonthLabel, maxDate, maxYear, minDate, minYear]);
|
|
3278
|
-
const handleMonthSelect =
|
|
3278
|
+
const handleMonthSelect = React27.useCallback((nextValue) => {
|
|
3279
3279
|
const nextMonth = Number.parseInt(nextValue, 10);
|
|
3280
3280
|
if (Number.isNaN(nextMonth)) return;
|
|
3281
3281
|
setDisplayed((prev) => {
|
|
@@ -3285,7 +3285,7 @@ function DatePicker({
|
|
|
3285
3285
|
return next;
|
|
3286
3286
|
});
|
|
3287
3287
|
}, []);
|
|
3288
|
-
const handleYearSelect =
|
|
3288
|
+
const handleYearSelect = React27.useCallback(
|
|
3289
3289
|
(nextValue) => {
|
|
3290
3290
|
const nextYear = Number.parseInt(nextValue, 10);
|
|
3291
3291
|
if (Number.isNaN(nextYear)) return;
|
|
@@ -3433,14 +3433,14 @@ var DatePicker2 = ({
|
|
|
3433
3433
|
ariaLabel,
|
|
3434
3434
|
...calendarProps
|
|
3435
3435
|
}) => {
|
|
3436
|
-
const [open, setOpen] =
|
|
3437
|
-
const parser =
|
|
3438
|
-
const outputFormatter =
|
|
3439
|
-
const labelFormatter =
|
|
3436
|
+
const [open, setOpen] = React27__default.useState(false);
|
|
3437
|
+
const parser = React27__default.useMemo(() => valueParser ?? defaultValueParser, [valueParser]);
|
|
3438
|
+
const outputFormatter = React27__default.useMemo(() => valueFormatter ?? defaultValueFormatter, [valueFormatter]);
|
|
3439
|
+
const labelFormatter = React27__default.useMemo(
|
|
3440
3440
|
() => displayFormatter ?? defaultDisplayFormatter,
|
|
3441
3441
|
[displayFormatter]
|
|
3442
3442
|
);
|
|
3443
|
-
const parsedValue =
|
|
3443
|
+
const parsedValue = React27__default.useMemo(() => {
|
|
3444
3444
|
if (value === null || value === void 0) return void 0;
|
|
3445
3445
|
if (value instanceof Date) return value;
|
|
3446
3446
|
const parsed = parser(value);
|
|
@@ -3449,26 +3449,26 @@ var DatePicker2 = ({
|
|
|
3449
3449
|
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
3450
3450
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change date, current selection ${labelFormatter(parsedValue)}` : "Open date picker");
|
|
3451
3451
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
3452
|
-
const handleClose =
|
|
3453
|
-
const emitChange =
|
|
3452
|
+
const handleClose = React27__default.useCallback(() => setOpen(false), []);
|
|
3453
|
+
const emitChange = React27__default.useCallback(
|
|
3454
3454
|
(next) => {
|
|
3455
3455
|
onChange?.(next);
|
|
3456
3456
|
onValueChange?.(next ? outputFormatter(next) : void 0);
|
|
3457
3457
|
},
|
|
3458
3458
|
[onChange, onValueChange, outputFormatter]
|
|
3459
3459
|
);
|
|
3460
|
-
const handleSelect =
|
|
3460
|
+
const handleSelect = React27__default.useCallback(
|
|
3461
3461
|
(next) => {
|
|
3462
3462
|
emitChange(next);
|
|
3463
3463
|
if (closeOnSelect && next) handleClose();
|
|
3464
3464
|
},
|
|
3465
3465
|
[closeOnSelect, emitChange, handleClose]
|
|
3466
3466
|
);
|
|
3467
|
-
const handleClear =
|
|
3467
|
+
const handleClear = React27__default.useCallback(() => {
|
|
3468
3468
|
emitChange(void 0);
|
|
3469
3469
|
handleClose();
|
|
3470
3470
|
}, [emitChange, handleClose]);
|
|
3471
|
-
const handleOpenChange =
|
|
3471
|
+
const handleOpenChange = React27__default.useCallback(
|
|
3472
3472
|
(nextOpen) => {
|
|
3473
3473
|
if (disabled && nextOpen) return;
|
|
3474
3474
|
setOpen(nextOpen);
|
|
@@ -3658,15 +3658,15 @@ function MonthCal({
|
|
|
3658
3658
|
onYearBackward,
|
|
3659
3659
|
onYearForward
|
|
3660
3660
|
}) {
|
|
3661
|
-
const today =
|
|
3661
|
+
const today = React27.useMemo(() => {
|
|
3662
3662
|
const now = /* @__PURE__ */ new Date();
|
|
3663
3663
|
now.setDate(1);
|
|
3664
3664
|
now.setHours(0, 0, 0, 0);
|
|
3665
3665
|
return now;
|
|
3666
3666
|
}, []);
|
|
3667
|
-
const selectedMonthDate =
|
|
3668
|
-
const min =
|
|
3669
|
-
const max =
|
|
3667
|
+
const selectedMonthDate = React27.useMemo(() => normalizeMonth(selectedDate), [selectedDate]);
|
|
3668
|
+
const min = React27.useMemo(() => normalizeMonth(minDate), [minDate]);
|
|
3669
|
+
const max = React27.useMemo(() => normalizeMonth(maxDate), [maxDate]);
|
|
3670
3670
|
let effectiveMin = min;
|
|
3671
3671
|
if (min && max && min > max) {
|
|
3672
3672
|
effectiveMin = max;
|
|
@@ -3675,10 +3675,10 @@ function MonthCal({
|
|
|
3675
3675
|
const minMonth = effectiveMin?.getMonth();
|
|
3676
3676
|
const maxYear = max?.getFullYear();
|
|
3677
3677
|
const maxMonth = max?.getMonth();
|
|
3678
|
-
const [menuYear, setMenuYear] =
|
|
3678
|
+
const [menuYear, setMenuYear] = React27.useState(
|
|
3679
3679
|
() => selectedMonthDate?.getFullYear() ?? today.getFullYear()
|
|
3680
3680
|
);
|
|
3681
|
-
|
|
3681
|
+
React27.useEffect(() => {
|
|
3682
3682
|
if (selectedMonthDate) {
|
|
3683
3683
|
const year = selectedMonthDate.getFullYear();
|
|
3684
3684
|
if (year !== menuYear) {
|
|
@@ -3686,7 +3686,7 @@ function MonthCal({
|
|
|
3686
3686
|
}
|
|
3687
3687
|
}
|
|
3688
3688
|
}, [selectedMonthDate, menuYear]);
|
|
3689
|
-
|
|
3689
|
+
React27.useEffect(() => {
|
|
3690
3690
|
if (typeof minYear === "number" && menuYear < minYear) {
|
|
3691
3691
|
setMenuYear(minYear);
|
|
3692
3692
|
return;
|
|
@@ -3697,7 +3697,7 @@ function MonthCal({
|
|
|
3697
3697
|
}, [minYear, maxYear, menuYear]);
|
|
3698
3698
|
const disablePrevYear = typeof minYear === "number" ? menuYear <= minYear : false;
|
|
3699
3699
|
const disableNextYear = typeof maxYear === "number" ? menuYear >= maxYear : false;
|
|
3700
|
-
const yearOptions =
|
|
3700
|
+
const yearOptions = React27.useMemo(() => {
|
|
3701
3701
|
const fallbackWindow = 50;
|
|
3702
3702
|
const start = typeof minYear === "number" ? minYear : menuYear - fallbackWindow;
|
|
3703
3703
|
const end = typeof maxYear === "number" ? maxYear : menuYear + fallbackWindow;
|
|
@@ -3711,7 +3711,7 @@ function MonthCal({
|
|
|
3711
3711
|
}
|
|
3712
3712
|
return years;
|
|
3713
3713
|
}, [maxYear, menuYear, minYear]);
|
|
3714
|
-
const formatYearLabel =
|
|
3714
|
+
const formatYearLabel = React27.useCallback(
|
|
3715
3715
|
(year) => {
|
|
3716
3716
|
const raw = callbacks?.yearLabel?.(year);
|
|
3717
3717
|
if (raw === null || raw === void 0) return String(year);
|
|
@@ -3719,7 +3719,7 @@ function MonthCal({
|
|
|
3719
3719
|
},
|
|
3720
3720
|
[callbacks]
|
|
3721
3721
|
);
|
|
3722
|
-
const handleYearSelect =
|
|
3722
|
+
const handleYearSelect = React27.useCallback(
|
|
3723
3723
|
(nextValue) => {
|
|
3724
3724
|
const nextYear = Number.parseInt(nextValue, 10);
|
|
3725
3725
|
if (Number.isNaN(nextYear)) return;
|
|
@@ -3729,7 +3729,7 @@ function MonthCal({
|
|
|
3729
3729
|
},
|
|
3730
3730
|
[maxYear, minYear]
|
|
3731
3731
|
);
|
|
3732
|
-
const disabledPairs =
|
|
3732
|
+
const disabledPairs = React27.useMemo(() => {
|
|
3733
3733
|
if (!disabledDates?.length) return [];
|
|
3734
3734
|
const pairs = [];
|
|
3735
3735
|
disabledDates.forEach((date) => {
|
|
@@ -3874,14 +3874,14 @@ var MonthPicker2 = ({
|
|
|
3874
3874
|
ariaLabel,
|
|
3875
3875
|
...calendarProps
|
|
3876
3876
|
}) => {
|
|
3877
|
-
const [open, setOpen] =
|
|
3878
|
-
const parser =
|
|
3879
|
-
const outputFormatter =
|
|
3880
|
-
const labelFormatter =
|
|
3877
|
+
const [open, setOpen] = React27__default.useState(false);
|
|
3878
|
+
const parser = React27__default.useMemo(() => valueParser ?? defaultValueParser2, [valueParser]);
|
|
3879
|
+
const outputFormatter = React27__default.useMemo(() => valueFormatter ?? defaultValueFormatter2, [valueFormatter]);
|
|
3880
|
+
const labelFormatter = React27__default.useMemo(
|
|
3881
3881
|
() => displayFormatter ?? defaultDisplayFormatter2,
|
|
3882
3882
|
[displayFormatter]
|
|
3883
3883
|
);
|
|
3884
|
-
const parsedValue =
|
|
3884
|
+
const parsedValue = React27__default.useMemo(() => {
|
|
3885
3885
|
if (value === null || value === void 0) return void 0;
|
|
3886
3886
|
if (value instanceof Date) return normalizeMonth2(value);
|
|
3887
3887
|
if (typeof value === "string") {
|
|
@@ -3893,8 +3893,8 @@ var MonthPicker2 = ({
|
|
|
3893
3893
|
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
3894
3894
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change month, current selection ${labelFormatter(parsedValue)}` : "Open month picker");
|
|
3895
3895
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
3896
|
-
const handleClose =
|
|
3897
|
-
const emitChange =
|
|
3896
|
+
const handleClose = React27__default.useCallback(() => setOpen(false), []);
|
|
3897
|
+
const emitChange = React27__default.useCallback(
|
|
3898
3898
|
(next) => {
|
|
3899
3899
|
const normalized = next ? normalizeMonth2(next) : void 0;
|
|
3900
3900
|
onChange?.(normalized);
|
|
@@ -3902,18 +3902,18 @@ var MonthPicker2 = ({
|
|
|
3902
3902
|
},
|
|
3903
3903
|
[onChange, onValueChange, outputFormatter]
|
|
3904
3904
|
);
|
|
3905
|
-
const handleSelect =
|
|
3905
|
+
const handleSelect = React27__default.useCallback(
|
|
3906
3906
|
(next) => {
|
|
3907
3907
|
emitChange(next);
|
|
3908
3908
|
if (closeOnSelect && next) handleClose();
|
|
3909
3909
|
},
|
|
3910
3910
|
[closeOnSelect, emitChange, handleClose]
|
|
3911
3911
|
);
|
|
3912
|
-
const handleClear =
|
|
3912
|
+
const handleClear = React27__default.useCallback(() => {
|
|
3913
3913
|
emitChange(void 0);
|
|
3914
3914
|
handleClose();
|
|
3915
3915
|
}, [emitChange, handleClose]);
|
|
3916
|
-
const handleOpenChange =
|
|
3916
|
+
const handleOpenChange = React27__default.useCallback(
|
|
3917
3917
|
(nextOpen) => {
|
|
3918
3918
|
if (disabled && nextOpen) return;
|
|
3919
3919
|
setOpen(nextOpen);
|
|
@@ -5189,7 +5189,7 @@ var AdvanceSearch = ({
|
|
|
5189
5189
|
defaultValues: {}
|
|
5190
5190
|
});
|
|
5191
5191
|
const { handleSubmit, unregister, resetField, getValues, clearErrors, setError } = form;
|
|
5192
|
-
const [operatorErrors, setOperatorErrors] =
|
|
5192
|
+
const [operatorErrors, setOperatorErrors] = React27__default.useState({});
|
|
5193
5193
|
const clearOperatorError = useCallback(
|
|
5194
5194
|
(rowId) => {
|
|
5195
5195
|
setOperatorErrors((prev) => {
|
|
@@ -5610,14 +5610,14 @@ var useControllableState = ({
|
|
|
5610
5610
|
value
|
|
5611
5611
|
}) => {
|
|
5612
5612
|
const isControlled = typeof value !== "undefined";
|
|
5613
|
-
const [internalValue, setInternalValue] =
|
|
5613
|
+
const [internalValue, setInternalValue] = React27.useState(() => {
|
|
5614
5614
|
return isControlled ? value : defaultValue;
|
|
5615
5615
|
});
|
|
5616
|
-
|
|
5616
|
+
React27.useEffect(() => {
|
|
5617
5617
|
if (!isControlled) return;
|
|
5618
5618
|
setInternalValue(value);
|
|
5619
5619
|
}, [isControlled, value]);
|
|
5620
|
-
const setValue =
|
|
5620
|
+
const setValue = React27.useCallback(
|
|
5621
5621
|
(nextValue) => {
|
|
5622
5622
|
if (isControlled) return;
|
|
5623
5623
|
setInternalValue(nextValue);
|
|
@@ -5632,6 +5632,16 @@ var useControllableState = ({
|
|
|
5632
5632
|
};
|
|
5633
5633
|
var useControllableState_default = useControllableState;
|
|
5634
5634
|
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
5635
|
+
var useBindRef = ({ ref, value }) => {
|
|
5636
|
+
React27.useEffect(() => {
|
|
5637
|
+
if (!ref) return;
|
|
5638
|
+
ref.current = value;
|
|
5639
|
+
return () => {
|
|
5640
|
+
ref.current = null;
|
|
5641
|
+
};
|
|
5642
|
+
}, [ref, value]);
|
|
5643
|
+
};
|
|
5644
|
+
var useBindRef_default = useBindRef;
|
|
5635
5645
|
var HeaderCell = ({
|
|
5636
5646
|
rootClassName,
|
|
5637
5647
|
labelClassName,
|
|
@@ -5798,38 +5808,6 @@ function TableCaption({ className, ...props }) {
|
|
|
5798
5808
|
}
|
|
5799
5809
|
);
|
|
5800
5810
|
}
|
|
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 = React25__default.memo(ColumnSeparator);
|
|
5833
5811
|
var StatusContentSlot = ({
|
|
5834
5812
|
content,
|
|
5835
5813
|
icon,
|
|
@@ -5848,7 +5826,7 @@ var StatusContentSlot = ({
|
|
|
5848
5826
|
content
|
|
5849
5827
|
] });
|
|
5850
5828
|
};
|
|
5851
|
-
var StatusContentSlot_default =
|
|
5829
|
+
var StatusContentSlot_default = React27__default.memo(StatusContentSlot);
|
|
5852
5830
|
var stateOptions = [
|
|
5853
5831
|
"columnFilters",
|
|
5854
5832
|
"globalFilter",
|
|
@@ -6014,45 +5992,8 @@ var DataTableDevTool = ({ table }) => {
|
|
|
6014
5992
|
] });
|
|
6015
5993
|
};
|
|
6016
5994
|
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
5995
|
var fallbackData = [];
|
|
6053
|
-
var
|
|
6054
|
-
tableRef,
|
|
6055
|
-
isInitialLoading,
|
|
5996
|
+
var useTableController = ({
|
|
6056
5997
|
columns,
|
|
6057
5998
|
data,
|
|
6058
5999
|
filters,
|
|
@@ -6064,14 +6005,8 @@ var DataTable = ({
|
|
|
6064
6005
|
columnResizing,
|
|
6065
6006
|
rowSelection,
|
|
6066
6007
|
rowExpansion,
|
|
6067
|
-
scrollFetch,
|
|
6068
|
-
activeStatusContent,
|
|
6069
|
-
statusContent,
|
|
6070
6008
|
rowIdKey,
|
|
6071
|
-
childrenKey
|
|
6072
|
-
onRowClick,
|
|
6073
|
-
debug,
|
|
6074
|
-
components
|
|
6009
|
+
childrenKey
|
|
6075
6010
|
}) => {
|
|
6076
6011
|
const table = useReactTable({
|
|
6077
6012
|
// required properties
|
|
@@ -6124,7 +6059,6 @@ var DataTable = ({
|
|
|
6124
6059
|
getSortedRowModel: !sorting?.manual && sorting?.enabled ? getSortedRowModel() : void 0,
|
|
6125
6060
|
manualSorting: sorting?.enabled && (sorting?.manual ?? false),
|
|
6126
6061
|
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
6062
|
sortDescFirst: sorting?.enabled ? sorting?.sortDescFirst ?? false : false,
|
|
6129
6063
|
onSortingChange: sorting?.enabled ? sorting?.onSortingChange : void 0,
|
|
6130
6064
|
// ordering
|
|
@@ -6139,10 +6073,7 @@ var DataTable = ({
|
|
|
6139
6073
|
enableMultiRowSelection: rowSelection?.enabled ? rowSelection?.multiSelect ?? true : true,
|
|
6140
6074
|
onRowSelectionChange: rowSelection?.enabled ? rowSelection?.onSelectionChange : void 0,
|
|
6141
6075
|
// row expanded
|
|
6142
|
-
getExpandedRowModel: (
|
|
6143
|
-
// when grouping is use then we should open this
|
|
6144
|
-
!rowExpansion?.manual && rowExpansion?.enabled ? getExpandedRowModel() : void 0
|
|
6145
|
-
),
|
|
6076
|
+
getExpandedRowModel: !rowExpansion?.manual && rowExpansion?.enabled ? getExpandedRowModel() : void 0,
|
|
6146
6077
|
manualExpanding: rowExpansion?.enabled && (rowExpansion?.manual ?? false),
|
|
6147
6078
|
enableExpanding: rowExpansion?.enabled ?? false,
|
|
6148
6079
|
getIsRowExpanded: rowExpansion?.enabled ? rowExpansion?.isRowExpanded : void 0,
|
|
@@ -6160,13 +6091,93 @@ var DataTable = ({
|
|
|
6160
6091
|
columnResizeMode: columnResizing?.enabled ? columnResizing?.resizeMode ?? "onChange" : "onChange"
|
|
6161
6092
|
})
|
|
6162
6093
|
});
|
|
6163
|
-
|
|
6094
|
+
return table;
|
|
6095
|
+
};
|
|
6096
|
+
var useScrollFetch = ({ scrollFetch, containerRef }) => {
|
|
6097
|
+
const fetchMoreOnScrollReached = useCallback(
|
|
6098
|
+
(containerRefElement) => {
|
|
6099
|
+
if (!scrollFetch?.enabled || !containerRefElement || scrollFetch?.isFetchingMore || !scrollFetch?.hasMore || !scrollFetch?.fetchMore) {
|
|
6100
|
+
return;
|
|
6101
|
+
}
|
|
6102
|
+
const { scrollHeight, scrollTop, clientHeight } = containerRefElement;
|
|
6103
|
+
const scrollableHeight = scrollHeight - clientHeight;
|
|
6104
|
+
const distanceToBottom = scrollableHeight - scrollTop;
|
|
6105
|
+
const ratioToBottom = scrollableHeight > 0 ? scrollTop / scrollableHeight : 1;
|
|
6106
|
+
const info = {
|
|
6107
|
+
scrollTop,
|
|
6108
|
+
scrollHeight,
|
|
6109
|
+
clientHeight,
|
|
6110
|
+
scrollableHeight,
|
|
6111
|
+
distanceToBottom,
|
|
6112
|
+
ratioToBottom,
|
|
6113
|
+
isTopReached: scrollTop === 0,
|
|
6114
|
+
isBottomReached: distanceToBottom <= 0
|
|
6115
|
+
};
|
|
6116
|
+
let shouldTrigger = false;
|
|
6117
|
+
if (typeof scrollFetch.scrollThreshold === "number") {
|
|
6118
|
+
shouldTrigger = info.ratioToBottom >= scrollFetch.scrollThreshold;
|
|
6119
|
+
} else if (typeof scrollFetch.scrollThreshold === "function") {
|
|
6120
|
+
shouldTrigger = scrollFetch.scrollThreshold(info);
|
|
6121
|
+
} else {
|
|
6122
|
+
shouldTrigger = info.ratioToBottom >= 0.7;
|
|
6123
|
+
}
|
|
6124
|
+
if (shouldTrigger) {
|
|
6125
|
+
scrollFetch.fetchMore();
|
|
6126
|
+
}
|
|
6127
|
+
},
|
|
6128
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6129
|
+
[scrollFetch?.enabled, scrollFetch?.isFetchingMore, scrollFetch?.hasMore, scrollFetch?.fetchMore]
|
|
6130
|
+
);
|
|
6131
|
+
useEffect(() => {
|
|
6132
|
+
fetchMoreOnScrollReached(containerRef.current);
|
|
6133
|
+
}, [fetchMoreOnScrollReached, containerRef]);
|
|
6134
|
+
return fetchMoreOnScrollReached;
|
|
6135
|
+
};
|
|
6136
|
+
var DEFAULT_ROW_HEIGHT = 40;
|
|
6137
|
+
var DEFAULT_OVER_SCAN = 10;
|
|
6138
|
+
var useTableVirtualizer = ({
|
|
6139
|
+
enabled,
|
|
6140
|
+
table,
|
|
6141
|
+
containerRef,
|
|
6142
|
+
virtual
|
|
6143
|
+
}) => {
|
|
6144
|
+
const rowModel = table.getRowModel().rows;
|
|
6145
|
+
const virtualizer = useVirtualizer({
|
|
6146
|
+
count: enabled ? rowModel.length : 0,
|
|
6147
|
+
useFlushSync: false,
|
|
6148
|
+
getScrollElement: () => containerRef.current,
|
|
6149
|
+
estimateSize: () => DEFAULT_ROW_HEIGHT,
|
|
6150
|
+
measureElement: typeof window !== "undefined" && navigator.userAgent.indexOf("Firefox") === -1 ? (element) => element?.getBoundingClientRect().height : void 0,
|
|
6151
|
+
overscan: virtual?.overscan ?? DEFAULT_OVER_SCAN
|
|
6152
|
+
});
|
|
6153
|
+
const virtualItems = enabled ? virtualizer.getVirtualItems() : [];
|
|
6154
|
+
const paddingTop = enabled && virtualItems.length > 0 ? virtualItems[0].start : 0;
|
|
6155
|
+
const paddingBottom = enabled && virtualItems.length > 0 ? virtualizer.getTotalSize() - virtualItems[virtualItems.length - 1].end : 0;
|
|
6156
|
+
return {
|
|
6157
|
+
virtualizer,
|
|
6158
|
+
virtualItems,
|
|
6159
|
+
paddingTop,
|
|
6160
|
+
paddingBottom,
|
|
6161
|
+
rowModel
|
|
6162
|
+
};
|
|
6163
|
+
};
|
|
6164
|
+
function useComputedTableState({
|
|
6165
|
+
table,
|
|
6166
|
+
rowModel,
|
|
6167
|
+
isInitialLoading,
|
|
6168
|
+
scrollFetch,
|
|
6169
|
+
activeStatusContent
|
|
6170
|
+
}) {
|
|
6164
6171
|
const isTableEmpty = table.getCoreRowModel().rows.length === 0;
|
|
6165
|
-
const isTableEmptyAfterFiltering =
|
|
6172
|
+
const isTableEmptyAfterFiltering = rowModel.length === 0;
|
|
6166
6173
|
const isFiltering = table.getState().columnFilters.length > 0 || !!table.getState().globalFilter;
|
|
6167
6174
|
const leftVisibleLeftColumns = table.getLeftVisibleLeafColumns();
|
|
6168
6175
|
const centerVisibleLeafColumns = table.getCenterVisibleLeafColumns();
|
|
6169
6176
|
const rightVisibleLeafColumns = table.getRightVisibleLeafColumns();
|
|
6177
|
+
const visibleColumnCount = Math.max(
|
|
6178
|
+
leftVisibleLeftColumns.length + centerVisibleLeafColumns.length + rightVisibleLeafColumns.length,
|
|
6179
|
+
1
|
|
6180
|
+
);
|
|
6170
6181
|
const { isSomeColumnsFilterable, filterableColumns } = useMemo(() => {
|
|
6171
6182
|
const mergedColumns = [
|
|
6172
6183
|
...leftVisibleLeftColumns,
|
|
@@ -6203,50 +6214,329 @@ var DataTable = ({
|
|
|
6203
6214
|
}
|
|
6204
6215
|
return activeStatusContent;
|
|
6205
6216
|
}, [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
|
-
|
|
6217
|
+
return {
|
|
6218
|
+
isTableEmpty,
|
|
6219
|
+
isTableEmptyAfterFiltering,
|
|
6220
|
+
isFiltering,
|
|
6221
|
+
leftVisibleLeftColumns,
|
|
6222
|
+
centerVisibleLeafColumns,
|
|
6223
|
+
rightVisibleLeafColumns,
|
|
6224
|
+
visibleColumnCount,
|
|
6225
|
+
isSomeColumnsFilterable,
|
|
6226
|
+
filterableColumns,
|
|
6227
|
+
activeStatusContentComputed
|
|
6228
|
+
};
|
|
6229
|
+
}
|
|
6230
|
+
var ColumnResizer = ({ header, className, style }) => {
|
|
6231
|
+
if (!header.column.getCanResize()) {
|
|
6232
|
+
return null;
|
|
6233
|
+
}
|
|
6234
|
+
const resizeHandler = header.getResizeHandler();
|
|
6235
|
+
return /* @__PURE__ */ jsx(
|
|
6236
|
+
"div",
|
|
6237
|
+
{
|
|
6238
|
+
className: cn(
|
|
6239
|
+
"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]",
|
|
6240
|
+
className
|
|
6241
|
+
),
|
|
6242
|
+
onDoubleClick: () => header.column.resetSize(),
|
|
6243
|
+
onTouchStart: resizeHandler,
|
|
6244
|
+
onMouseDown: resizeHandler,
|
|
6245
|
+
style
|
|
6246
|
+
}
|
|
6247
|
+
);
|
|
6248
|
+
};
|
|
6249
|
+
var ColumnResizer_default = ColumnResizer;
|
|
6250
|
+
var ColumnSeparator = ({ show, className, ...props }) => {
|
|
6251
|
+
if (!show) return null;
|
|
6252
|
+
return /* @__PURE__ */ jsx(
|
|
6253
|
+
"span",
|
|
6254
|
+
{
|
|
6255
|
+
"data-slot": "table-head-separator",
|
|
6256
|
+
className: cn("absolute right-0 top-1/2 h-4 w-px -translate-y-1/2 bg-gray-300", className),
|
|
6257
|
+
...props
|
|
6258
|
+
}
|
|
6259
|
+
);
|
|
6260
|
+
};
|
|
6261
|
+
var ColumnSeparator_default = React27__default.memo(ColumnSeparator);
|
|
6262
|
+
|
|
6263
|
+
// src/components/data-table/helpers.ts
|
|
6264
|
+
function getColumnPinningInfo(column) {
|
|
6265
|
+
const isPinned = column.getIsPinned();
|
|
6266
|
+
const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
|
|
6267
|
+
const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
|
|
6268
|
+
return { isPinned, isLastLeftPinnedColumn, isFirstRightPinnedColumn };
|
|
6269
|
+
}
|
|
6270
|
+
function getColumnPinningStyles(column) {
|
|
6271
|
+
const { isPinned, isFirstRightPinnedColumn, isLastLeftPinnedColumn } = getColumnPinningInfo(column);
|
|
6272
|
+
const classes = cn(isPinned ? "sticky" : "relative");
|
|
6273
|
+
const style = {
|
|
6274
|
+
left: isPinned === "left" ? column.getStart("left") : void 0,
|
|
6275
|
+
right: isPinned === "right" ? column.getAfter("right") : void 0,
|
|
6276
|
+
zIndex: isPinned ? 1 : 0,
|
|
6277
|
+
boxShadow: isLastLeftPinnedColumn ? "inset -1px 0 0 0 black" : isFirstRightPinnedColumn ? "inset 1px 0 0 0 black" : void 0
|
|
6278
|
+
};
|
|
6279
|
+
return { classes, style };
|
|
6280
|
+
}
|
|
6281
|
+
function getRowClickHandlers(handler, { rowData, row, table }) {
|
|
6282
|
+
const handleClick = (event) => {
|
|
6283
|
+
if (event.detail === 1) {
|
|
6284
|
+
handler(rowData, { event, row, table, clickType: "single" });
|
|
6285
|
+
}
|
|
6286
|
+
if (event.detail >= 2) {
|
|
6287
|
+
handler(rowData, { event, row, table, clickType: "double" });
|
|
6288
|
+
}
|
|
6289
|
+
};
|
|
6290
|
+
return {
|
|
6291
|
+
onClick: handleClick
|
|
6292
|
+
};
|
|
6293
|
+
}
|
|
6294
|
+
var TableHeaderRows = ({
|
|
6295
|
+
table,
|
|
6296
|
+
columnResizing,
|
|
6297
|
+
virtual,
|
|
6298
|
+
components
|
|
6299
|
+
}) => {
|
|
6300
|
+
return /* @__PURE__ */ jsx(Fragment, { children: table.getHeaderGroups().map((headerGroup) => {
|
|
6301
|
+
return /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => {
|
|
6302
|
+
const { classes, style } = getColumnPinningStyles(header.column);
|
|
6303
|
+
const useColumnSizing = header.column.columnDef?.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
6304
|
+
const tableHeadCellProps = typeof components?.tableHeadCellProps === "function" ? components?.tableHeadCellProps({ header, table }) : components?.tableHeadCellProps;
|
|
6305
|
+
const nextHeader = headerGroup.headers?.[header.index + 1] || header;
|
|
6306
|
+
const { isLastLeftPinnedColumn } = getColumnPinningInfo(header.column);
|
|
6307
|
+
const { isFirstRightPinnedColumn } = getColumnPinningInfo(nextHeader.column);
|
|
6308
|
+
const headerGroupLength = header.headerGroup.headers.length;
|
|
6309
|
+
const showSeparator = header.index !== headerGroupLength - 1 && !isLastLeftPinnedColumn && !isFirstRightPinnedColumn;
|
|
6310
|
+
return /* @__PURE__ */ jsxs(
|
|
6311
|
+
TableHead,
|
|
6312
|
+
{
|
|
6313
|
+
"data-testid": `table-head-${header.id}`,
|
|
6314
|
+
colSpan: header.colSpan,
|
|
6315
|
+
...tableHeadCellProps,
|
|
6316
|
+
...header.column.columnDef?.meta?.headerProps,
|
|
6317
|
+
className: cn(
|
|
6318
|
+
classes,
|
|
6319
|
+
tableHeadCellProps?.className,
|
|
6320
|
+
header.column.columnDef?.meta?.headerProps?.className
|
|
6321
|
+
),
|
|
6322
|
+
style: {
|
|
6323
|
+
...style,
|
|
6324
|
+
width: useColumnSizing ? header.column.getSize() : void 0,
|
|
6325
|
+
minWidth: useColumnSizing ? header.column.columnDef.minSize : void 0,
|
|
6326
|
+
maxWidth: useColumnSizing ? header.column.columnDef.maxSize : void 0,
|
|
6327
|
+
...tableHeadCellProps?.style,
|
|
6328
|
+
...header.column.columnDef?.meta?.headerProps?.style
|
|
6329
|
+
},
|
|
6330
|
+
children: [
|
|
6331
|
+
header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()),
|
|
6332
|
+
/* @__PURE__ */ jsx(
|
|
6333
|
+
ColumnSeparator_default,
|
|
6334
|
+
{
|
|
6335
|
+
...components?.columnSeparatorProps?.headerCell,
|
|
6336
|
+
...header.column.columnDef?.meta?.columnSeparatorProps,
|
|
6337
|
+
show: header.column.columnDef?.meta?.columnSeparatorProps?.show ?? components?.columnSeparatorProps?.headerCell?.show ?? showSeparator
|
|
6338
|
+
}
|
|
6339
|
+
),
|
|
6340
|
+
/* @__PURE__ */ jsx(ColumnResizer_default, { header, ...components?.columnResizerProps })
|
|
6341
|
+
]
|
|
6342
|
+
},
|
|
6343
|
+
header.id
|
|
6344
|
+
);
|
|
6345
|
+
}) }, headerGroup.id);
|
|
6346
|
+
}) });
|
|
6347
|
+
};
|
|
6348
|
+
var TableFilterRow = ({
|
|
6349
|
+
table,
|
|
6350
|
+
filterableColumns,
|
|
6351
|
+
isSomeColumnsFilterable,
|
|
6352
|
+
columnResizing,
|
|
6353
|
+
virtual,
|
|
6354
|
+
components
|
|
6355
|
+
}) => {
|
|
6356
|
+
if (!isSomeColumnsFilterable) return null;
|
|
6357
|
+
return /* @__PURE__ */ jsx(TableRow, { "data-testid": "table-filter-row", children: filterableColumns.map((column) => {
|
|
6358
|
+
const { classes, style } = getColumnPinningStyles(column);
|
|
6359
|
+
const useColumnSizing = column.columnDef.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
6360
|
+
const tableFilterCellProps = typeof components?.tableFilterCellProps === "function" ? components?.tableFilterCellProps({ column, table }) : components?.tableFilterCellProps;
|
|
6361
|
+
return /* @__PURE__ */ jsx(
|
|
6362
|
+
TableCell,
|
|
6363
|
+
{
|
|
6364
|
+
"data-testid": `table-filter-cell-${column.id}`,
|
|
6365
|
+
...tableFilterCellProps,
|
|
6366
|
+
...column.columnDef?.meta?.filterCellProps,
|
|
6367
|
+
className: cn(
|
|
6368
|
+
"bg-white border-b",
|
|
6369
|
+
classes,
|
|
6370
|
+
tableFilterCellProps?.className,
|
|
6371
|
+
column.columnDef?.meta?.filterCellProps?.className
|
|
6372
|
+
),
|
|
6373
|
+
style: {
|
|
6374
|
+
...style,
|
|
6375
|
+
width: useColumnSizing ? column.getSize() : void 0,
|
|
6376
|
+
minWidth: useColumnSizing ? column.columnDef.minSize : void 0,
|
|
6377
|
+
maxWidth: useColumnSizing ? column.columnDef.maxSize : void 0,
|
|
6378
|
+
...tableFilterCellProps?.style,
|
|
6379
|
+
...column.columnDef?.meta?.filterCellProps?.style
|
|
6380
|
+
},
|
|
6381
|
+
children: column.getCanFilter() && column.columnDef.meta?.renderColumnFilter?.({
|
|
6382
|
+
column,
|
|
6383
|
+
table
|
|
6384
|
+
})
|
|
6385
|
+
},
|
|
6386
|
+
column.id
|
|
6387
|
+
);
|
|
6388
|
+
}) });
|
|
6389
|
+
};
|
|
6390
|
+
var TableDataRows = ({
|
|
6391
|
+
table,
|
|
6392
|
+
rowModel,
|
|
6393
|
+
virtualEnabled,
|
|
6394
|
+
virtualItems,
|
|
6395
|
+
virtualizer,
|
|
6396
|
+
paddingTop,
|
|
6397
|
+
paddingBottom,
|
|
6398
|
+
visibleColumnCount,
|
|
6399
|
+
columnResizing,
|
|
6400
|
+
virtual,
|
|
6401
|
+
onRowClick,
|
|
6402
|
+
components
|
|
6403
|
+
}) => {
|
|
6404
|
+
const config = virtualEnabled ? { items: virtualItems, isVirtualize: true, rowModel } : { items: rowModel, isVirtualize: false };
|
|
6405
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6406
|
+
virtualEnabled && paddingTop > 0 && /* @__PURE__ */ jsx(TableRow, { "aria-hidden": "true", "data-testid": "table-virtual-padding-top", children: /* @__PURE__ */ jsx(
|
|
6407
|
+
TableCell,
|
|
6408
|
+
{
|
|
6409
|
+
className: "border-b-0 p-0 h-auto",
|
|
6410
|
+
colSpan: visibleColumnCount,
|
|
6411
|
+
style: { height: `${paddingTop}px` }
|
|
6232
6412
|
}
|
|
6233
|
-
|
|
6234
|
-
|
|
6413
|
+
) }),
|
|
6414
|
+
config.items.map((item) => {
|
|
6415
|
+
const row = config.isVirtualize ? config.rowModel[item.index] : item;
|
|
6416
|
+
if (!row) return null;
|
|
6417
|
+
const virtualIndex = config.isVirtualize ? item.index : void 0;
|
|
6418
|
+
const tableDataRowProps = typeof components?.tableDataRowProps === "function" ? components.tableDataRowProps({ row, table }) || {} : components?.tableDataRowProps || {};
|
|
6419
|
+
return /* @__PURE__ */ createElement(
|
|
6420
|
+
TableRow,
|
|
6421
|
+
{
|
|
6422
|
+
"data-testid": `table-data-row-${row.id}`,
|
|
6423
|
+
"data-index": virtualIndex,
|
|
6424
|
+
ref: config.isVirtualize ? (node) => virtualizer.measureElement(node) : void 0,
|
|
6425
|
+
...tableDataRowProps,
|
|
6426
|
+
key: row.id,
|
|
6427
|
+
className: cn("group", tableDataRowProps?.className),
|
|
6428
|
+
"data-state": row.getIsSelected() ? "selected" : "non-selected",
|
|
6429
|
+
...getRowClickHandlers(onRowClick ?? (() => {
|
|
6430
|
+
}), {
|
|
6431
|
+
rowData: row.original,
|
|
6432
|
+
row,
|
|
6433
|
+
table
|
|
6434
|
+
})
|
|
6435
|
+
},
|
|
6436
|
+
row.getVisibleCells().map((cell) => {
|
|
6437
|
+
const { classes, style } = getColumnPinningStyles(cell.column);
|
|
6438
|
+
const useColumnSizing = cell.column.columnDef.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
6439
|
+
const tableDataCellProps = typeof components?.tableDataCellProps === "function" ? components?.tableDataCellProps({ row, cell, table }) : components?.tableDataCellProps;
|
|
6440
|
+
return /* @__PURE__ */ jsx(
|
|
6441
|
+
TableCell,
|
|
6442
|
+
{
|
|
6443
|
+
"data-testid": `table-data-cell-${cell.id}`,
|
|
6444
|
+
"data-row-id": row.id,
|
|
6445
|
+
"data-column-id": cell.column.id,
|
|
6446
|
+
...tableDataCellProps,
|
|
6447
|
+
...cell.column.columnDef?.meta?.cellProps,
|
|
6448
|
+
className: cn(
|
|
6449
|
+
{
|
|
6450
|
+
"bg-[#dfeae3]": row.getIsSelected(),
|
|
6451
|
+
"bg-white group-hover:bg-sus-primary-3-hover": !row.getIsSelected()
|
|
6452
|
+
},
|
|
6453
|
+
classes,
|
|
6454
|
+
tableDataCellProps?.className,
|
|
6455
|
+
cell.column.columnDef?.meta?.cellProps?.className
|
|
6456
|
+
),
|
|
6457
|
+
style: {
|
|
6458
|
+
...style,
|
|
6459
|
+
width: useColumnSizing ? cell.column.getSize() : void 0,
|
|
6460
|
+
minWidth: useColumnSizing ? cell.column.columnDef.minSize : void 0,
|
|
6461
|
+
maxWidth: useColumnSizing ? cell.column.columnDef.maxSize : void 0,
|
|
6462
|
+
...tableDataCellProps?.style,
|
|
6463
|
+
...cell.column.columnDef?.meta?.cellProps?.style
|
|
6464
|
+
},
|
|
6465
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
6466
|
+
},
|
|
6467
|
+
cell.id
|
|
6468
|
+
);
|
|
6469
|
+
})
|
|
6470
|
+
);
|
|
6471
|
+
}),
|
|
6472
|
+
virtualEnabled && paddingBottom > 0 && /* @__PURE__ */ jsx(TableRow, { "aria-hidden": "true", "data-testid": "table-virtual-padding-bottom", children: /* @__PURE__ */ jsx(
|
|
6473
|
+
TableCell,
|
|
6474
|
+
{
|
|
6475
|
+
className: "border-b-0 p-0 h-auto",
|
|
6476
|
+
colSpan: visibleColumnCount,
|
|
6477
|
+
style: { height: `${paddingBottom}px` }
|
|
6235
6478
|
}
|
|
6236
|
-
}
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6479
|
+
) })
|
|
6480
|
+
] });
|
|
6481
|
+
};
|
|
6482
|
+
var DataTable = ({
|
|
6483
|
+
tableRef,
|
|
6484
|
+
virtualizerRef,
|
|
6485
|
+
isInitialLoading,
|
|
6486
|
+
columns,
|
|
6487
|
+
data,
|
|
6488
|
+
filters,
|
|
6489
|
+
sorting,
|
|
6490
|
+
columnOrder,
|
|
6491
|
+
columnVisibility,
|
|
6492
|
+
columnPinning,
|
|
6493
|
+
columnGrouping,
|
|
6494
|
+
columnResizing,
|
|
6495
|
+
rowSelection,
|
|
6496
|
+
rowExpansion,
|
|
6497
|
+
virtual,
|
|
6498
|
+
scrollFetch,
|
|
6499
|
+
activeStatusContent,
|
|
6500
|
+
statusContent,
|
|
6501
|
+
rowIdKey,
|
|
6502
|
+
childrenKey,
|
|
6503
|
+
onRowClick,
|
|
6504
|
+
debug,
|
|
6505
|
+
components
|
|
6506
|
+
}) => {
|
|
6507
|
+
const virtualEnabled = virtual?.enabled ?? false;
|
|
6508
|
+
const tableContainerRef = useRef(null);
|
|
6509
|
+
const table = useTableController({
|
|
6510
|
+
columns,
|
|
6511
|
+
data,
|
|
6512
|
+
filters,
|
|
6513
|
+
sorting,
|
|
6514
|
+
columnOrder,
|
|
6515
|
+
columnVisibility,
|
|
6516
|
+
columnPinning,
|
|
6517
|
+
columnGrouping,
|
|
6518
|
+
columnResizing,
|
|
6519
|
+
rowSelection,
|
|
6520
|
+
rowExpansion,
|
|
6521
|
+
rowIdKey,
|
|
6522
|
+
childrenKey
|
|
6523
|
+
});
|
|
6524
|
+
const { virtualizer, virtualItems, paddingTop, paddingBottom, rowModel } = useTableVirtualizer({
|
|
6525
|
+
enabled: virtualEnabled,
|
|
6526
|
+
table,
|
|
6527
|
+
containerRef: tableContainerRef,
|
|
6528
|
+
virtual
|
|
6529
|
+
});
|
|
6530
|
+
const { visibleColumnCount, isSomeColumnsFilterable, filterableColumns, activeStatusContentComputed } = useComputedTableState({
|
|
6531
|
+
table,
|
|
6532
|
+
rowModel,
|
|
6533
|
+
isInitialLoading,
|
|
6534
|
+
scrollFetch,
|
|
6535
|
+
activeStatusContent
|
|
6536
|
+
});
|
|
6537
|
+
const fetchMoreOnScrollReached = useScrollFetch({ scrollFetch, containerRef: tableContainerRef });
|
|
6538
|
+
useBindRef_default({ ref: tableRef, value: table });
|
|
6539
|
+
useBindRef_default({ ref: virtualizerRef, value: virtualizer });
|
|
6250
6540
|
return /* @__PURE__ */ jsxs(
|
|
6251
6541
|
TableContainer,
|
|
6252
6542
|
{
|
|
@@ -6283,149 +6573,61 @@ var DataTable = ({
|
|
|
6283
6573
|
defaultIcon: /* @__PURE__ */ jsx(empty_data_default, { size: 128 })
|
|
6284
6574
|
}
|
|
6285
6575
|
) : /* @__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(
|
|
6576
|
+
/* @__PURE__ */ jsxs(
|
|
6577
|
+
Table,
|
|
6578
|
+
{
|
|
6579
|
+
...components?.tableProps,
|
|
6580
|
+
style: { tableLayout: virtualEnabled ? "fixed" : "auto", ...components?.tableProps?.style },
|
|
6581
|
+
children: [
|
|
6582
|
+
/* @__PURE__ */ jsxs(
|
|
6583
|
+
TableHeader,
|
|
6584
|
+
{
|
|
6585
|
+
className: cn("sticky top-0 z-10 bg-white", components?.tableHeaderProps?.className),
|
|
6586
|
+
...components?.tableHeaderProps,
|
|
6587
|
+
children: [
|
|
6588
|
+
/* @__PURE__ */ jsx(
|
|
6589
|
+
TableHeaderRows,
|
|
6405
6590
|
{
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
cell.column.columnDef?.meta?.cellProps?.className
|
|
6591
|
+
table,
|
|
6592
|
+
columnResizing,
|
|
6593
|
+
virtual,
|
|
6594
|
+
components
|
|
6595
|
+
}
|
|
6412
6596
|
),
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6597
|
+
/* @__PURE__ */ jsx(
|
|
6598
|
+
TableFilterRow,
|
|
6599
|
+
{
|
|
6600
|
+
table,
|
|
6601
|
+
filterableColumns,
|
|
6602
|
+
isSomeColumnsFilterable,
|
|
6603
|
+
columnResizing,
|
|
6604
|
+
virtual,
|
|
6605
|
+
components
|
|
6606
|
+
}
|
|
6607
|
+
)
|
|
6608
|
+
]
|
|
6609
|
+
}
|
|
6610
|
+
),
|
|
6611
|
+
/* @__PURE__ */ jsx(TableBody, { ...components?.tableBodyProps, children: /* @__PURE__ */ jsx(
|
|
6612
|
+
TableDataRows,
|
|
6613
|
+
{
|
|
6614
|
+
table,
|
|
6615
|
+
rowModel,
|
|
6616
|
+
virtualEnabled,
|
|
6617
|
+
virtualItems,
|
|
6618
|
+
virtualizer,
|
|
6619
|
+
paddingTop,
|
|
6620
|
+
paddingBottom,
|
|
6621
|
+
visibleColumnCount,
|
|
6622
|
+
columnResizing,
|
|
6623
|
+
virtual,
|
|
6624
|
+
onRowClick,
|
|
6625
|
+
components
|
|
6626
|
+
}
|
|
6627
|
+
) })
|
|
6628
|
+
]
|
|
6629
|
+
}
|
|
6630
|
+
),
|
|
6429
6631
|
activeStatusContentComputed === "emptyFilteredData" && /* @__PURE__ */ jsx(
|
|
6430
6632
|
StatusContentSlot_default,
|
|
6431
6633
|
{
|
|
@@ -7372,8 +7574,8 @@ var DISALLOWED_MARKS = ["bold", "italic", "link"];
|
|
|
7372
7574
|
var SUGGESTION_DEBOUNCE = 200;
|
|
7373
7575
|
var DEFAULT_CHIP_CLASS = "outline-1 outline-muted bg-muted/40 text-foreground";
|
|
7374
7576
|
var TokenView = ({ node, editor, getPos }) => {
|
|
7375
|
-
const [isFocused, setIsFocused] =
|
|
7376
|
-
|
|
7577
|
+
const [isFocused, setIsFocused] = React27__default.useState(false);
|
|
7578
|
+
React27__default.useEffect(() => {
|
|
7377
7579
|
const handler = () => {
|
|
7378
7580
|
const { from, to } = editor.state.selection;
|
|
7379
7581
|
const position = getPos();
|
|
@@ -8565,7 +8767,7 @@ function ToolbarPlugin({
|
|
|
8565
8767
|
isLink: hasLink
|
|
8566
8768
|
}));
|
|
8567
8769
|
}, []);
|
|
8568
|
-
|
|
8770
|
+
React27.useEffect(() => {
|
|
8569
8771
|
return mergeRegister(
|
|
8570
8772
|
editor.registerCommand(
|
|
8571
8773
|
CAN_UNDO_COMMAND,
|
|
@@ -9151,7 +9353,7 @@ function ControlledValuePlugin({
|
|
|
9151
9353
|
trackAppliedValue
|
|
9152
9354
|
}) {
|
|
9153
9355
|
const [editor] = useLexicalComposerContext();
|
|
9154
|
-
|
|
9356
|
+
React27.useEffect(() => {
|
|
9155
9357
|
if (value == null || trackAppliedValue.current === value) {
|
|
9156
9358
|
return;
|
|
9157
9359
|
}
|
|
@@ -9175,14 +9377,14 @@ function ControlledValuePlugin({
|
|
|
9175
9377
|
}
|
|
9176
9378
|
function EditableStatePlugin({ editable }) {
|
|
9177
9379
|
const [editor] = useLexicalComposerContext();
|
|
9178
|
-
|
|
9380
|
+
React27.useEffect(() => {
|
|
9179
9381
|
editor.setEditable(editable);
|
|
9180
9382
|
}, [editor, editable]);
|
|
9181
9383
|
return null;
|
|
9182
9384
|
}
|
|
9183
9385
|
function ImagesPlugin() {
|
|
9184
9386
|
const [editor] = useLexicalComposerContext();
|
|
9185
|
-
|
|
9387
|
+
React27.useEffect(() => {
|
|
9186
9388
|
return editor.registerCommand(
|
|
9187
9389
|
INSERT_IMAGE_COMMAND,
|
|
9188
9390
|
(payload) => {
|
|
@@ -9463,9 +9665,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
9463
9665
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
9464
9666
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
9465
9667
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
9466
|
-
var SidebarContext =
|
|
9668
|
+
var SidebarContext = React27.createContext(null);
|
|
9467
9669
|
function useSidebar() {
|
|
9468
|
-
const context =
|
|
9670
|
+
const context = React27.useContext(SidebarContext);
|
|
9469
9671
|
if (!context) {
|
|
9470
9672
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
9471
9673
|
}
|
|
@@ -9481,10 +9683,10 @@ function SidebarProvider({
|
|
|
9481
9683
|
...props
|
|
9482
9684
|
}) {
|
|
9483
9685
|
const isMobile = useIsMobile();
|
|
9484
|
-
const [openMobile, setOpenMobile] =
|
|
9485
|
-
const [_open, _setOpen] =
|
|
9686
|
+
const [openMobile, setOpenMobile] = React27.useState(false);
|
|
9687
|
+
const [_open, _setOpen] = React27.useState(defaultOpen);
|
|
9486
9688
|
const open = openProp ?? _open;
|
|
9487
|
-
const setOpen =
|
|
9689
|
+
const setOpen = React27.useCallback(
|
|
9488
9690
|
(value) => {
|
|
9489
9691
|
const openState = typeof value === "function" ? value(open) : value;
|
|
9490
9692
|
if (setOpenProp) {
|
|
@@ -9496,10 +9698,10 @@ function SidebarProvider({
|
|
|
9496
9698
|
},
|
|
9497
9699
|
[setOpenProp, open]
|
|
9498
9700
|
);
|
|
9499
|
-
const toggleSidebar =
|
|
9701
|
+
const toggleSidebar = React27.useCallback(() => {
|
|
9500
9702
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
9501
9703
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
9502
|
-
|
|
9704
|
+
React27.useEffect(() => {
|
|
9503
9705
|
const handleKeyDown = (event) => {
|
|
9504
9706
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
9505
9707
|
event.preventDefault();
|
|
@@ -9510,7 +9712,7 @@ function SidebarProvider({
|
|
|
9510
9712
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
9511
9713
|
}, [toggleSidebar]);
|
|
9512
9714
|
const state = open ? "expanded" : "collapsed";
|
|
9513
|
-
const contextValue =
|
|
9715
|
+
const contextValue = React27.useMemo(
|
|
9514
9716
|
() => ({
|
|
9515
9717
|
state,
|
|
9516
9718
|
open,
|
|
@@ -9952,7 +10154,7 @@ function SidebarMenuSkeleton({
|
|
|
9952
10154
|
showIcon = false,
|
|
9953
10155
|
...props
|
|
9954
10156
|
}) {
|
|
9955
|
-
const width =
|
|
10157
|
+
const width = React27.useMemo(() => {
|
|
9956
10158
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
9957
10159
|
}, []);
|
|
9958
10160
|
return /* @__PURE__ */ jsxs(
|
|
@@ -10095,8 +10297,8 @@ function TooltipProvider({
|
|
|
10095
10297
|
}) {
|
|
10096
10298
|
return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration, ...props });
|
|
10097
10299
|
}
|
|
10098
|
-
function Tooltip({ ...props }) {
|
|
10099
|
-
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
10300
|
+
function Tooltip({ children, ...props }) {
|
|
10301
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props, children }) });
|
|
10100
10302
|
}
|
|
10101
10303
|
function TooltipTrigger({ ...props }) {
|
|
10102
10304
|
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
@@ -10422,7 +10624,7 @@ function SortableRow({
|
|
|
10422
10624
|
id: value,
|
|
10423
10625
|
disabled: name === "columns.0.id"
|
|
10424
10626
|
});
|
|
10425
|
-
const style =
|
|
10627
|
+
const style = React27.useMemo(
|
|
10426
10628
|
() => ({
|
|
10427
10629
|
transform: CSS.Transform.toString(transform),
|
|
10428
10630
|
transition
|
|
@@ -10824,7 +11026,7 @@ function getCandidateWidths({
|
|
|
10824
11026
|
}
|
|
10825
11027
|
return DEVICE_SIZES;
|
|
10826
11028
|
}
|
|
10827
|
-
var Image2 =
|
|
11029
|
+
var Image2 = React27.forwardRef(function Image3({
|
|
10828
11030
|
src,
|
|
10829
11031
|
alt,
|
|
10830
11032
|
width,
|
|
@@ -10854,34 +11056,34 @@ var Image2 = React25.forwardRef(function Image3({
|
|
|
10854
11056
|
} = imgProps;
|
|
10855
11057
|
const widthNumber = toNumber(width);
|
|
10856
11058
|
const heightNumber = toNumber(height);
|
|
10857
|
-
|
|
11059
|
+
React27.useEffect(() => {
|
|
10858
11060
|
if (!fill && (!widthNumber || !heightNumber)) {
|
|
10859
11061
|
console.warn(
|
|
10860
11062
|
"[Image] When `fill` is false you should provide both `width` and `height` to prevent layout shifts."
|
|
10861
11063
|
);
|
|
10862
11064
|
}
|
|
10863
11065
|
}, [fill, heightNumber, widthNumber]);
|
|
10864
|
-
const candidateWidths =
|
|
11066
|
+
const candidateWidths = React27.useMemo(
|
|
10865
11067
|
() => getCandidateWidths({ width: widthNumber, sizes, fill }),
|
|
10866
11068
|
[fill, sizes, widthNumber]
|
|
10867
11069
|
);
|
|
10868
11070
|
const largestWidth = candidateWidths[candidateWidths.length - 1] ?? widthNumber ?? DEVICE_SIZES[DEVICE_SIZES.length - 1];
|
|
10869
|
-
const computedSrc =
|
|
11071
|
+
const computedSrc = React27.useMemo(() => {
|
|
10870
11072
|
if (unoptimized) {
|
|
10871
11073
|
return src;
|
|
10872
11074
|
}
|
|
10873
11075
|
return loader({ src, width: largestWidth, quality });
|
|
10874
11076
|
}, [largestWidth, loader, quality, src, unoptimized]);
|
|
10875
|
-
const computedSrcSet =
|
|
11077
|
+
const computedSrcSet = React27.useMemo(() => {
|
|
10876
11078
|
if (unoptimized) {
|
|
10877
11079
|
return void 0;
|
|
10878
11080
|
}
|
|
10879
11081
|
return candidateWidths.map((currentWidth) => `${loader({ src, width: currentWidth, quality })} ${currentWidth}w`).join(", ");
|
|
10880
11082
|
}, [candidateWidths, loader, quality, src, unoptimized]);
|
|
10881
11083
|
const sizesValue = sizes ?? (fill ? "100vw" : widthNumber ? `${widthNumber}px` : void 0);
|
|
10882
|
-
const [isLoaded, setIsLoaded] =
|
|
10883
|
-
const internalRef =
|
|
10884
|
-
const setRefs =
|
|
11084
|
+
const [isLoaded, setIsLoaded] = React27.useState(false);
|
|
11085
|
+
const internalRef = React27.useRef(null);
|
|
11086
|
+
const setRefs = React27.useCallback(
|
|
10885
11087
|
(node) => {
|
|
10886
11088
|
internalRef.current = node;
|
|
10887
11089
|
if (!ref) {
|
|
@@ -10895,7 +11097,7 @@ var Image2 = React25.forwardRef(function Image3({
|
|
|
10895
11097
|
},
|
|
10896
11098
|
[ref]
|
|
10897
11099
|
);
|
|
10898
|
-
|
|
11100
|
+
React27.useEffect(() => {
|
|
10899
11101
|
const image = internalRef.current;
|
|
10900
11102
|
if (!image) {
|
|
10901
11103
|
return;
|
|
@@ -10907,7 +11109,7 @@ var Image2 = React25.forwardRef(function Image3({
|
|
|
10907
11109
|
setIsLoaded(false);
|
|
10908
11110
|
}
|
|
10909
11111
|
}, [onLoadingComplete, src]);
|
|
10910
|
-
const handleLoad =
|
|
11112
|
+
const handleLoad = React27.useCallback(
|
|
10911
11113
|
(event) => {
|
|
10912
11114
|
setIsLoaded(true);
|
|
10913
11115
|
onLoadProp?.(event);
|
|
@@ -10919,7 +11121,7 @@ var Image2 = React25.forwardRef(function Image3({
|
|
|
10919
11121
|
const fetchPriority = priority ? "high" : fetchPriorityProp;
|
|
10920
11122
|
const decoding = decodingProp ?? "async";
|
|
10921
11123
|
const resolvedObjectFit = objectFit ?? (fill ? "cover" : void 0);
|
|
10922
|
-
const wrapperStyle =
|
|
11124
|
+
const wrapperStyle = React27.useMemo(
|
|
10923
11125
|
() => ({
|
|
10924
11126
|
position: "relative",
|
|
10925
11127
|
display: fill ? "block" : "inline-block",
|
|
@@ -10929,7 +11131,7 @@ var Image2 = React25.forwardRef(function Image3({
|
|
|
10929
11131
|
}),
|
|
10930
11132
|
[fill, height, width]
|
|
10931
11133
|
);
|
|
10932
|
-
const imageStyle =
|
|
11134
|
+
const imageStyle = React27.useMemo(
|
|
10933
11135
|
() => ({
|
|
10934
11136
|
width: fill ? "100%" : formatDimension(width) ?? void 0,
|
|
10935
11137
|
height: fill ? "100%" : formatDimension(height) ?? void 0,
|
|
@@ -11078,7 +11280,7 @@ var InfoIcon = ({ size = "1em", className, ...props }) => {
|
|
|
11078
11280
|
}
|
|
11079
11281
|
);
|
|
11080
11282
|
};
|
|
11081
|
-
var InfoIcon_default =
|
|
11283
|
+
var InfoIcon_default = React27__default.memo(InfoIcon);
|
|
11082
11284
|
var Navbar = ({
|
|
11083
11285
|
className,
|
|
11084
11286
|
title,
|
|
@@ -11210,7 +11412,7 @@ var Navbar = ({
|
|
|
11210
11412
|
}
|
|
11211
11413
|
);
|
|
11212
11414
|
};
|
|
11213
|
-
var navbar_default =
|
|
11415
|
+
var navbar_default = React27__default.memo(Navbar);
|
|
11214
11416
|
var usePreventPageLeaveStore = create((set) => ({
|
|
11215
11417
|
isPreventing: false,
|
|
11216
11418
|
setPreventing: (value) => set({ isPreventing: value })
|
|
@@ -11249,25 +11451,40 @@ var DefaultHeader = ({
|
|
|
11249
11451
|
icon,
|
|
11250
11452
|
classNames,
|
|
11251
11453
|
rightActions
|
|
11252
|
-
}) =>
|
|
11253
|
-
|
|
11254
|
-
|
|
11255
|
-
|
|
11256
|
-
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11264
|
-
/* @__PURE__ */ jsxs("div", { className: "flex
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11454
|
+
}) => {
|
|
11455
|
+
const titleRef = React27.useRef(null);
|
|
11456
|
+
const isTruncated = useTruncated_default({ elementRef: titleRef });
|
|
11457
|
+
const textElement = title ? /* @__PURE__ */ jsx(
|
|
11458
|
+
"span",
|
|
11459
|
+
{
|
|
11460
|
+
ref: titleRef,
|
|
11461
|
+
className: cn("text-lg font-semibold text-sus-green-1 truncate", classNames?.title),
|
|
11462
|
+
children: title
|
|
11463
|
+
}
|
|
11464
|
+
) : null;
|
|
11465
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start justify-between gap-3", classNames?.header), children: [
|
|
11466
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
11467
|
+
icon ? /* @__PURE__ */ jsx(
|
|
11468
|
+
"div",
|
|
11469
|
+
{
|
|
11470
|
+
className: cn(
|
|
11471
|
+
"w-10 h-10 rounded-full bg-sus-green-50 flex items-center justify-center",
|
|
11472
|
+
classNames?.iconWrapper
|
|
11473
|
+
),
|
|
11474
|
+
children: icon
|
|
11475
|
+
}
|
|
11476
|
+
) : null,
|
|
11477
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col min-w-0", children: [
|
|
11478
|
+
subtitle ? /* @__PURE__ */ jsx("span", { className: cn("text-xs text-gray-500", classNames?.subtitle), children: subtitle }) : null,
|
|
11479
|
+
textElement ? isTruncated ? /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
11480
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: textElement }),
|
|
11481
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: title })
|
|
11482
|
+
] }) : textElement : null
|
|
11483
|
+
] })
|
|
11484
|
+
] }),
|
|
11485
|
+
rightActions ? /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: rightActions }) : null
|
|
11486
|
+
] });
|
|
11487
|
+
};
|
|
11271
11488
|
var RightPanelContainer = ({
|
|
11272
11489
|
title,
|
|
11273
11490
|
subtitle,
|
|
@@ -11291,19 +11508,28 @@ var RightPanelContainer = ({
|
|
|
11291
11508
|
className,
|
|
11292
11509
|
classNames?.root
|
|
11293
11510
|
),
|
|
11294
|
-
children: /* @__PURE__ */ jsx("div", { className: cn("flex-1 flex min-h-0 px-4 py-6 justify-center", classNames?.body), children: /* @__PURE__ */ jsxs(
|
|
11295
|
-
|
|
11296
|
-
|
|
11297
|
-
|
|
11298
|
-
|
|
11299
|
-
|
|
11300
|
-
|
|
11301
|
-
|
|
11302
|
-
classNames
|
|
11303
|
-
|
|
11304
|
-
|
|
11305
|
-
|
|
11306
|
-
|
|
11511
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("flex-1 flex min-h-0 min-w-0 px-4 py-6 justify-center", classNames?.body), children: /* @__PURE__ */ jsxs(
|
|
11512
|
+
"div",
|
|
11513
|
+
{
|
|
11514
|
+
className: cn(
|
|
11515
|
+
"w-full max-w-3xl min-w-0 overflow-x-hidden overflow-y-auto",
|
|
11516
|
+
classNames?.content
|
|
11517
|
+
),
|
|
11518
|
+
children: [
|
|
11519
|
+
renderHeader ? renderHeader({ title, subtitle, icon, rightActions, classNames }) : Header2 ? /* @__PURE__ */ jsx(
|
|
11520
|
+
Header2,
|
|
11521
|
+
{
|
|
11522
|
+
title,
|
|
11523
|
+
subtitle,
|
|
11524
|
+
icon,
|
|
11525
|
+
rightActions,
|
|
11526
|
+
classNames
|
|
11527
|
+
}
|
|
11528
|
+
) : null,
|
|
11529
|
+
children
|
|
11530
|
+
]
|
|
11531
|
+
}
|
|
11532
|
+
) })
|
|
11307
11533
|
}
|
|
11308
11534
|
);
|
|
11309
11535
|
};
|
|
@@ -11565,7 +11791,7 @@ function isFragment(object) {
|
|
|
11565
11791
|
var isValidText = (val) => ["string", "number"].includes(typeof val);
|
|
11566
11792
|
function toArray(children, option = {}) {
|
|
11567
11793
|
let ret = [];
|
|
11568
|
-
|
|
11794
|
+
React27.Children.forEach(children, (child) => {
|
|
11569
11795
|
if ((child === void 0 || child === null) && !option.keepEmpty) {
|
|
11570
11796
|
return;
|
|
11571
11797
|
}
|
|
@@ -11579,9 +11805,9 @@ function toArray(children, option = {}) {
|
|
|
11579
11805
|
});
|
|
11580
11806
|
return ret;
|
|
11581
11807
|
}
|
|
11582
|
-
var MeasureText =
|
|
11583
|
-
const spanRef =
|
|
11584
|
-
|
|
11808
|
+
var MeasureText = React27.forwardRef(({ style, children }, ref) => {
|
|
11809
|
+
const spanRef = React27.useRef(null);
|
|
11810
|
+
React27.useImperativeHandle(ref, () => ({
|
|
11585
11811
|
isExceed: () => {
|
|
11586
11812
|
const span = spanRef.current;
|
|
11587
11813
|
return span.scrollHeight > span.clientHeight;
|
|
@@ -11639,19 +11865,19 @@ var lineClipStyle = {
|
|
|
11639
11865
|
};
|
|
11640
11866
|
function EllipsisMeasure(props) {
|
|
11641
11867
|
const { enableMeasure, width, text, children, rows, expanded, miscDeps, onEllipsis } = props;
|
|
11642
|
-
const nodeList =
|
|
11643
|
-
const nodeLen =
|
|
11644
|
-
const fullContent =
|
|
11645
|
-
const [ellipsisCutIndex, setEllipsisCutIndex] =
|
|
11646
|
-
const cutMidRef =
|
|
11647
|
-
const measureWhiteSpaceRef =
|
|
11648
|
-
const needEllipsisRef =
|
|
11649
|
-
const descRowsEllipsisRef =
|
|
11650
|
-
const symbolRowEllipsisRef =
|
|
11651
|
-
const [canEllipsis, setCanEllipsis] =
|
|
11652
|
-
const [needEllipsis, setNeedEllipsis] =
|
|
11653
|
-
const [ellipsisHeight, setEllipsisHeight] =
|
|
11654
|
-
const [parentWhiteSpace, setParentWhiteSpace] =
|
|
11868
|
+
const nodeList = React27.useMemo(() => toArray(text), [text]);
|
|
11869
|
+
const nodeLen = React27.useMemo(() => getNodesLen(nodeList), [text]);
|
|
11870
|
+
const fullContent = React27.useMemo(() => children(nodeList, false), [text]);
|
|
11871
|
+
const [ellipsisCutIndex, setEllipsisCutIndex] = React27.useState(null);
|
|
11872
|
+
const cutMidRef = React27.useRef(null);
|
|
11873
|
+
const measureWhiteSpaceRef = React27.useRef(null);
|
|
11874
|
+
const needEllipsisRef = React27.useRef(null);
|
|
11875
|
+
const descRowsEllipsisRef = React27.useRef(null);
|
|
11876
|
+
const symbolRowEllipsisRef = React27.useRef(null);
|
|
11877
|
+
const [canEllipsis, setCanEllipsis] = React27.useState(false);
|
|
11878
|
+
const [needEllipsis, setNeedEllipsis] = React27.useState(STATUS_MEASURE_NONE);
|
|
11879
|
+
const [ellipsisHeight, setEllipsisHeight] = React27.useState(0);
|
|
11880
|
+
const [parentWhiteSpace, setParentWhiteSpace] = React27.useState(null);
|
|
11655
11881
|
useIsomorphicLayoutEffect(() => {
|
|
11656
11882
|
if (enableMeasure && width && nodeLen) {
|
|
11657
11883
|
setNeedEllipsis(STATUS_MEASURE_PREPARE);
|
|
@@ -11694,7 +11920,7 @@ function EllipsisMeasure(props) {
|
|
|
11694
11920
|
setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);
|
|
11695
11921
|
}
|
|
11696
11922
|
}, [ellipsisCutIndex, cutMidIndex]);
|
|
11697
|
-
const finalContent =
|
|
11923
|
+
const finalContent = React27.useMemo(() => {
|
|
11698
11924
|
if (!enableMeasure) {
|
|
11699
11925
|
return children(nodeList, false);
|
|
11700
11926
|
}
|
|
@@ -11785,10 +12011,10 @@ var Truncated = ({
|
|
|
11785
12011
|
tooltipProps,
|
|
11786
12012
|
tooltipContentProps
|
|
11787
12013
|
}) => {
|
|
11788
|
-
const elementRef =
|
|
11789
|
-
const [open, setOpen] =
|
|
11790
|
-
const [isTruncated, setIsTruncated] =
|
|
11791
|
-
const [measureWidth, setMeasureWidth] =
|
|
12014
|
+
const elementRef = React27.useRef(null);
|
|
12015
|
+
const [open, setOpen] = React27.useState(false);
|
|
12016
|
+
const [isTruncated, setIsTruncated] = React27.useState(false);
|
|
12017
|
+
const [measureWidth, setMeasureWidth] = React27.useState(0);
|
|
11792
12018
|
const Comp = as;
|
|
11793
12019
|
const normalizedChildren = typeof children === "string" ? children.replace(/>/g, ">\u200B") : children;
|
|
11794
12020
|
const lineClampLines = typeof ellipsis === "number" ? ellipsis : typeof ellipsis === "object" ? ellipsis?.lineClamp ?? 3 : null;
|
|
@@ -11813,13 +12039,13 @@ var Truncated = ({
|
|
|
11813
12039
|
setIsTruncated(false);
|
|
11814
12040
|
}
|
|
11815
12041
|
}, [enableMeasure]);
|
|
11816
|
-
const truncationClass =
|
|
12042
|
+
const truncationClass = React27.useMemo(() => {
|
|
11817
12043
|
if (!ellipsis) return "";
|
|
11818
12044
|
if (typeof ellipsis === "number") return `line-clamp-${ellipsis}`;
|
|
11819
12045
|
if (typeof ellipsis === "object") return `line-clamp-${lineClampLines ?? 3}`;
|
|
11820
12046
|
return "truncate";
|
|
11821
12047
|
}, [ellipsis, lineClampLines]);
|
|
11822
|
-
const clampedStyle =
|
|
12048
|
+
const clampedStyle = React27.useMemo(() => {
|
|
11823
12049
|
if (!lineClampLines) return style;
|
|
11824
12050
|
return {
|
|
11825
12051
|
...style,
|
|
@@ -11881,7 +12107,7 @@ var Truncated = ({
|
|
|
11881
12107
|
);
|
|
11882
12108
|
};
|
|
11883
12109
|
var truncated_default = Truncated;
|
|
11884
|
-
var InputPrimitive2 =
|
|
12110
|
+
var InputPrimitive2 = React27.forwardRef(
|
|
11885
12111
|
({ className, type = "text", ...props }, ref) => {
|
|
11886
12112
|
return /* @__PURE__ */ jsx(
|
|
11887
12113
|
"input",
|
|
@@ -11920,7 +12146,7 @@ var inputVariants2 = cva("", {
|
|
|
11920
12146
|
appearance: "filled"
|
|
11921
12147
|
}
|
|
11922
12148
|
});
|
|
11923
|
-
var Input2 =
|
|
12149
|
+
var Input2 = React27.forwardRef(
|
|
11924
12150
|
({
|
|
11925
12151
|
className,
|
|
11926
12152
|
wrapperClassName,
|
|
@@ -11953,8 +12179,8 @@ var Input2 = React25.forwardRef(
|
|
|
11953
12179
|
onChange: onChangeProp
|
|
11954
12180
|
} = rest;
|
|
11955
12181
|
const ariaInvalid = invalid ?? ariaInvalidProp;
|
|
11956
|
-
const messageId =
|
|
11957
|
-
const handleChange =
|
|
12182
|
+
const messageId = React27.useId();
|
|
12183
|
+
const handleChange = React27.useCallback(
|
|
11958
12184
|
(event) => {
|
|
11959
12185
|
onChangeProp?.(event);
|
|
11960
12186
|
onValueChange?.(event.target.value);
|
|
@@ -12048,16 +12274,16 @@ var InputNumber = ({ customInputProps, ...props }) => {
|
|
|
12048
12274
|
return /* @__PURE__ */ jsx(NumericFormat, { customInput: Input2, ...props, ...customInputProps });
|
|
12049
12275
|
};
|
|
12050
12276
|
var InputNumber_default = InputNumber;
|
|
12051
|
-
var ActionButton = ({ label, onPress, className }) => {
|
|
12052
|
-
const
|
|
12277
|
+
var ActionButton = ({ label, onPress, disabled, className }) => {
|
|
12278
|
+
const isDisabled = disabled || onPress === void 0;
|
|
12053
12279
|
return /* @__PURE__ */ jsx(
|
|
12054
12280
|
"button",
|
|
12055
12281
|
{
|
|
12056
12282
|
type: "button",
|
|
12057
|
-
disabled,
|
|
12283
|
+
disabled: isDisabled,
|
|
12058
12284
|
onClick: (e) => {
|
|
12059
12285
|
e.stopPropagation();
|
|
12060
|
-
if (
|
|
12286
|
+
if (isDisabled || !onPress) {
|
|
12061
12287
|
return;
|
|
12062
12288
|
}
|
|
12063
12289
|
onPress();
|
|
@@ -12065,7 +12291,7 @@ var ActionButton = ({ label, onPress, className }) => {
|
|
|
12065
12291
|
className: cn(
|
|
12066
12292
|
"action-menu-btn flex w-full items-center justify-start px-4 py-3 text-left",
|
|
12067
12293
|
"hover:bg-sus-secondary-green-3 hover:not-disabled:text-sus-primary-green-9 text-gray-800",
|
|
12068
|
-
|
|
12294
|
+
isDisabled && "cursor-not-allowed opacity-50 hover:bg-transparent text-gray-400",
|
|
12069
12295
|
className
|
|
12070
12296
|
),
|
|
12071
12297
|
children: label
|
|
@@ -12128,6 +12354,7 @@ var ActionMenu = ({
|
|
|
12128
12354
|
{
|
|
12129
12355
|
className: actionButtonClassName,
|
|
12130
12356
|
label: btn.label,
|
|
12357
|
+
disabled: btn.disabled,
|
|
12131
12358
|
onPress: btn.onPress ? () => {
|
|
12132
12359
|
btn.onPress?.(id);
|
|
12133
12360
|
setOpen(false);
|
|
@@ -12347,13 +12574,13 @@ var useFieldNames = ({
|
|
|
12347
12574
|
fieldNames
|
|
12348
12575
|
}) => {
|
|
12349
12576
|
const { label: labelFieldKey = "label", value: valueFieldKey = "value" } = fieldNames || {};
|
|
12350
|
-
const getLabelField =
|
|
12577
|
+
const getLabelField = React27__default.useCallback(
|
|
12351
12578
|
(option) => {
|
|
12352
12579
|
return option?.[labelFieldKey];
|
|
12353
12580
|
},
|
|
12354
12581
|
[labelFieldKey]
|
|
12355
12582
|
);
|
|
12356
|
-
const getValueField =
|
|
12583
|
+
const getValueField = React27__default.useCallback(
|
|
12357
12584
|
(option) => {
|
|
12358
12585
|
return option?.[valueFieldKey];
|
|
12359
12586
|
},
|
|
@@ -12385,11 +12612,11 @@ var VirtualizedCommand = ({
|
|
|
12385
12612
|
onFocus
|
|
12386
12613
|
}) => {
|
|
12387
12614
|
const { getLabelField, getValueField } = useFieldNames_default({ fieldNames });
|
|
12388
|
-
const internalOptions =
|
|
12389
|
-
const [filteredOptions, setFilteredOptions] =
|
|
12390
|
-
const [focusedIndex, setFocusedIndex] =
|
|
12391
|
-
const [isKeyboardNavActive, setIsKeyboardNavActive] =
|
|
12392
|
-
const parentRef =
|
|
12615
|
+
const internalOptions = React27.useMemo(() => options ?? [], [options]);
|
|
12616
|
+
const [filteredOptions, setFilteredOptions] = React27.useState(internalOptions);
|
|
12617
|
+
const [focusedIndex, setFocusedIndex] = React27.useState(0);
|
|
12618
|
+
const [isKeyboardNavActive, setIsKeyboardNavActive] = React27.useState(false);
|
|
12619
|
+
const parentRef = React27.useRef(null);
|
|
12393
12620
|
const virtualizer = useVirtualizer({
|
|
12394
12621
|
count: filteredOptions.length,
|
|
12395
12622
|
getScrollElement: () => parentRef.current,
|
|
@@ -12397,14 +12624,14 @@ var VirtualizedCommand = ({
|
|
|
12397
12624
|
overscan: 2
|
|
12398
12625
|
});
|
|
12399
12626
|
const virtualOptions = virtualizer.getVirtualItems();
|
|
12400
|
-
const dynamicHeight =
|
|
12627
|
+
const dynamicHeight = React27.useMemo(() => {
|
|
12401
12628
|
const contentHeight = filteredOptions.length * ROW_HEIGHT;
|
|
12402
12629
|
if (contentHeight <= 0) {
|
|
12403
12630
|
return MIN_HEIGHT_EMPTY;
|
|
12404
12631
|
}
|
|
12405
12632
|
return Math.max(ROW_HEIGHT, Math.min(height, contentHeight));
|
|
12406
12633
|
}, [filteredOptions.length, height]);
|
|
12407
|
-
const scrollToIndex =
|
|
12634
|
+
const scrollToIndex = React27.useCallback(
|
|
12408
12635
|
(index) => {
|
|
12409
12636
|
virtualizer.scrollToIndex(index, {
|
|
12410
12637
|
align: "center"
|
|
@@ -12412,7 +12639,7 @@ var VirtualizedCommand = ({
|
|
|
12412
12639
|
},
|
|
12413
12640
|
[virtualizer]
|
|
12414
12641
|
);
|
|
12415
|
-
const handleSearch =
|
|
12642
|
+
const handleSearch = React27.useCallback(
|
|
12416
12643
|
(search) => {
|
|
12417
12644
|
setIsKeyboardNavActive(false);
|
|
12418
12645
|
setFilteredOptions(
|
|
@@ -12427,7 +12654,7 @@ var VirtualizedCommand = ({
|
|
|
12427
12654
|
},
|
|
12428
12655
|
[filterOption, getLabelField, internalOptions]
|
|
12429
12656
|
);
|
|
12430
|
-
const handleKeyDown =
|
|
12657
|
+
const handleKeyDown = React27.useCallback(
|
|
12431
12658
|
(event) => {
|
|
12432
12659
|
switch (event.key) {
|
|
12433
12660
|
case "ArrowDown": {
|
|
@@ -12462,7 +12689,7 @@ var VirtualizedCommand = ({
|
|
|
12462
12689
|
},
|
|
12463
12690
|
[filteredOptions, focusedIndex, getValueField, onSelect, scrollToIndex]
|
|
12464
12691
|
);
|
|
12465
|
-
|
|
12692
|
+
React27.useEffect(() => {
|
|
12466
12693
|
if (value) {
|
|
12467
12694
|
const option = filteredOptions.find((option2) => {
|
|
12468
12695
|
const optionValue = getValueField(option2);
|
|
@@ -12589,13 +12816,13 @@ var ComboboxInner = ({
|
|
|
12589
12816
|
defaultValue,
|
|
12590
12817
|
value
|
|
12591
12818
|
});
|
|
12592
|
-
const currentSelectedOption =
|
|
12819
|
+
const currentSelectedOption = React27.useMemo(() => {
|
|
12593
12820
|
return options?.find((option) => {
|
|
12594
12821
|
const optionValue = getValueField(option);
|
|
12595
12822
|
return optionValue === selectedValue;
|
|
12596
12823
|
});
|
|
12597
12824
|
}, [getValueField, options, selectedValue]);
|
|
12598
|
-
const renderValue =
|
|
12825
|
+
const renderValue = React27.useMemo(() => {
|
|
12599
12826
|
if (!selectedValue) return placeholder2;
|
|
12600
12827
|
if (currentSelectedOption) {
|
|
12601
12828
|
return getLabelField(currentSelectedOption);
|
|
@@ -12605,7 +12832,7 @@ var ComboboxInner = ({
|
|
|
12605
12832
|
}
|
|
12606
12833
|
return null;
|
|
12607
12834
|
}, [currentSelectedOption, getLabelField, placeholder2, selectedValue, showValueWhenNoMatch]);
|
|
12608
|
-
const handleSelect =
|
|
12835
|
+
const handleSelect = React27.useCallback(
|
|
12609
12836
|
(selected, option) => {
|
|
12610
12837
|
setSelectedValue(selected);
|
|
12611
12838
|
setOpenPopover(false);
|
|
@@ -12618,7 +12845,7 @@ var ComboboxInner = ({
|
|
|
12618
12845
|
},
|
|
12619
12846
|
[onOpenChange, onSelect, setOpenPopover, setSelectedValue]
|
|
12620
12847
|
);
|
|
12621
|
-
const handleOpenPopover =
|
|
12848
|
+
const handleOpenPopover = React27.useCallback(
|
|
12622
12849
|
(isOpen) => {
|
|
12623
12850
|
if (disabled) return;
|
|
12624
12851
|
setOpenPopover(isOpen);
|
|
@@ -12628,7 +12855,7 @@ var ComboboxInner = ({
|
|
|
12628
12855
|
},
|
|
12629
12856
|
[disabled, onOpenChange, setOpenPopover]
|
|
12630
12857
|
);
|
|
12631
|
-
const handleClear =
|
|
12858
|
+
const handleClear = React27.useCallback(
|
|
12632
12859
|
(event) => {
|
|
12633
12860
|
event.stopPropagation();
|
|
12634
12861
|
setSelectedValue(void 0);
|
|
@@ -12717,7 +12944,7 @@ var ComboboxInner = ({
|
|
|
12717
12944
|
)
|
|
12718
12945
|
] });
|
|
12719
12946
|
};
|
|
12720
|
-
var Combobox =
|
|
12947
|
+
var Combobox = React27.forwardRef(ComboboxInner);
|
|
12721
12948
|
var Combobox_default = Combobox;
|
|
12722
12949
|
var TruncatedMouseEnterDiv = ({
|
|
12723
12950
|
value,
|
|
@@ -12842,6 +13069,6 @@ var TabSelect = ({
|
|
|
12842
13069
|
);
|
|
12843
13070
|
};
|
|
12844
13071
|
|
|
12845
|
-
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 };
|
|
13072
|
+
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, 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 };
|
|
12846
13073
|
//# sourceMappingURL=index.mjs.map
|
|
12847
13074
|
//# sourceMappingURL=index.mjs.map
|