@sustaina/shared-ui 1.30.1 → 1.30.3
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 +28 -6
- package/dist/index.d.ts +28 -6
- package/dist/index.js +63 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +63 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -652,7 +652,8 @@ var OPERATOR_MAP = {
|
|
|
652
652
|
dropdown: ["is", "isNot"],
|
|
653
653
|
lookup: ["containsAny", "containsOnly", "containsAll", "notContains"],
|
|
654
654
|
uuid: ["equals", "notEquals", "gt", "gte", "lt", "lte"],
|
|
655
|
-
json: ["equals", "notEquals"
|
|
655
|
+
json: ["equals", "notEquals"]
|
|
656
|
+
// removed containsAny from json
|
|
656
657
|
};
|
|
657
658
|
|
|
658
659
|
// src/components/advanceSearch/hooks/useAdvanceSearch.ts
|
|
@@ -2600,12 +2601,16 @@ var LookupSelect = ({
|
|
|
2600
2601
|
(option) => {
|
|
2601
2602
|
upsertOptionLabels([option]);
|
|
2602
2603
|
addTag(option.value);
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2604
|
+
if (multiple) {
|
|
2605
|
+
inputRef.current?.focus();
|
|
2606
|
+
setTimeout(() => {
|
|
2607
|
+
inputRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
2608
|
+
}, 100);
|
|
2609
|
+
} else {
|
|
2610
|
+
inputRef.current?.blur();
|
|
2611
|
+
}
|
|
2607
2612
|
},
|
|
2608
|
-
[addTag, upsertOptionLabels]
|
|
2613
|
+
[addTag, multiple, upsertOptionLabels]
|
|
2609
2614
|
);
|
|
2610
2615
|
const handleKeyDown = useCallback(
|
|
2611
2616
|
(e) => {
|
|
@@ -2765,7 +2770,7 @@ var LookupSelect = ({
|
|
|
2765
2770
|
}
|
|
2766
2771
|
return /* @__PURE__ */ jsx("div", { ref: assignDropdownContentRef, className: "absolute left-0 right-0 top-full z-10 mt-1", children: dropdownContent });
|
|
2767
2772
|
};
|
|
2768
|
-
return /* @__PURE__ */ jsxs("div", { className: "relative w-full", ref: containerRef, children: [
|
|
2773
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative w-full truncate", ref: containerRef, children: [
|
|
2769
2774
|
/* @__PURE__ */ jsxs(
|
|
2770
2775
|
"div",
|
|
2771
2776
|
{
|
|
@@ -2796,7 +2801,7 @@ var LookupSelect = ({
|
|
|
2796
2801
|
`${tag}-${i}`
|
|
2797
2802
|
);
|
|
2798
2803
|
}),
|
|
2799
|
-
!multiple && selectedLabel && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-gray-700", children: selectedLabel }),
|
|
2804
|
+
!multiple && selectedLabel && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-gray-700 max-w-full", children: selectedLabel }),
|
|
2800
2805
|
/* @__PURE__ */ jsx(
|
|
2801
2806
|
"input",
|
|
2802
2807
|
{
|
|
@@ -2810,6 +2815,7 @@ var LookupSelect = ({
|
|
|
2810
2815
|
setIsDropdownOpen(true);
|
|
2811
2816
|
}
|
|
2812
2817
|
},
|
|
2818
|
+
hidden: !multiple && selectedLabel !== void 0,
|
|
2813
2819
|
placeholder: value.length === 0 && resolvedPlaceholder || "",
|
|
2814
2820
|
className: "min-w-[120px] flex-1 border-none bg-transparent py-1 text-sm text-gray-600 placeholder:text-gray-400 outline-none",
|
|
2815
2821
|
disabled: multiple && limitReached
|
|
@@ -2911,7 +2917,6 @@ var ConditionJSONInput = ({
|
|
|
2911
2917
|
onClear: handleClear,
|
|
2912
2918
|
error: Boolean(fieldState.error),
|
|
2913
2919
|
placeholder: fieldSchema?.placeholder,
|
|
2914
|
-
maxTags: row.operator === "containsAny" ? fieldSchema?.maxTags : 1,
|
|
2915
2920
|
fetchSuggestions: fieldSchema?.fetchSuggestions,
|
|
2916
2921
|
suggestionDebounce: fieldSchema?.suggestionDebounce,
|
|
2917
2922
|
noOptionsMessage: fieldSchema?.noOptionsMessage,
|
|
@@ -3227,12 +3232,12 @@ var JSONBuilder = class {
|
|
|
3227
3232
|
return {
|
|
3228
3233
|
NOT: { [row.fieldName]: { path: row.jsonPath, equals: isArray ? row.value[0] : row.value } }
|
|
3229
3234
|
};
|
|
3230
|
-
case "containsAny":
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3235
|
+
// case "containsAny":
|
|
3236
|
+
// if (!isArray)
|
|
3237
|
+
// return { [row.fieldName]: { path: row.jsonPath, equals: isArray ? row.value[0] : row.value } };
|
|
3238
|
+
// return {
|
|
3239
|
+
// OR: (row.value as any[]).map((v) => ({ [row.fieldName]: { path: row.jsonPath, equals: v } }))
|
|
3240
|
+
// };
|
|
3236
3241
|
default:
|
|
3237
3242
|
return {};
|
|
3238
3243
|
}
|
|
@@ -3505,7 +3510,9 @@ function transformFilterKeys(obj, fieldMap = FILTER_FIELD_MAP) {
|
|
|
3505
3510
|
}
|
|
3506
3511
|
var sanitizeInput = (val) => {
|
|
3507
3512
|
if (!val) return val;
|
|
3508
|
-
if (
|
|
3513
|
+
if (Array.isArray(val)) {
|
|
3514
|
+
return val.map((v) => sanitizeInput(v));
|
|
3515
|
+
}
|
|
3509
3516
|
if (val.includes("\n") || val.includes("\r") || /[\u2028\u2029]/u.test(val))
|
|
3510
3517
|
return "__INVALID_NEWLINE__";
|
|
3511
3518
|
if (/\\\\/.test(val)) return "__INVALID_ESCAPE__";
|
|
@@ -3524,6 +3531,9 @@ var numericTypes = ["number", "integer", "decimal"];
|
|
|
3524
3531
|
var dateTypes = ["date", "datemonth"];
|
|
3525
3532
|
var validateByFieldType = (value, fieldType) => {
|
|
3526
3533
|
if (!value) return { valid: true };
|
|
3534
|
+
if (Array.isArray(value)) {
|
|
3535
|
+
return { valid: true };
|
|
3536
|
+
}
|
|
3527
3537
|
if (numericTypes.includes(fieldType)) {
|
|
3528
3538
|
if (!/^\d+(\.\d+)?$/.test(value)) {
|
|
3529
3539
|
return { valid: false, message: "Please enter a valid number." };
|
|
@@ -3596,6 +3606,7 @@ var AdvanceSearch = ({
|
|
|
3596
3606
|
);
|
|
3597
3607
|
const parseRangeValue = useCallback((raw, fieldType) => {
|
|
3598
3608
|
if (!raw) return void 0;
|
|
3609
|
+
if (Array.isArray(raw)) return void 0;
|
|
3599
3610
|
const normalized = fieldType === "datemonth" ? `${raw}-01` : raw;
|
|
3600
3611
|
const parsed = parseISO(normalized);
|
|
3601
3612
|
return isValid(parsed) ? parsed : void 0;
|
|
@@ -3614,10 +3625,10 @@ var AdvanceSearch = ({
|
|
|
3614
3625
|
const processedRows = rows.map((r) => {
|
|
3615
3626
|
const startField = `value_${r.id}`;
|
|
3616
3627
|
const endField = `value2_${r.id}`;
|
|
3617
|
-
let v1 = currentValues[startField]
|
|
3618
|
-
let v2 = currentValues[endField]
|
|
3628
|
+
let v1 = currentValues[startField];
|
|
3629
|
+
let v2 = currentValues[endField];
|
|
3619
3630
|
const s1 = sanitizeInput(v1);
|
|
3620
|
-
if (s1?.startsWith("__INVALID")) {
|
|
3631
|
+
if (Array.isArray(s1) && s1.some((v) => v?.startsWith("__INVALID")) || typeof s1 === "string" && s1?.startsWith("__INVALID")) {
|
|
3621
3632
|
hasError = true;
|
|
3622
3633
|
setError(startField, { type: "validate", message: "Invalid input." });
|
|
3623
3634
|
return null;
|
|
@@ -3631,7 +3642,7 @@ var AdvanceSearch = ({
|
|
|
3631
3642
|
}
|
|
3632
3643
|
if (r.operator === "between") {
|
|
3633
3644
|
const s2 = sanitizeInput(v2);
|
|
3634
|
-
if (s2?.startsWith("__INVALID")) {
|
|
3645
|
+
if (Array.isArray(s2) && s2.some((v) => v?.startsWith("__INVALID")) || typeof s2 === "string" && s2?.startsWith("__INVALID")) {
|
|
3635
3646
|
hasError = true;
|
|
3636
3647
|
setError(endField, { type: "validate", message: "Invalid input." });
|
|
3637
3648
|
return null;
|
|
@@ -3821,6 +3832,15 @@ function selectValueToBoolean(value) {
|
|
|
3821
3832
|
if (value === "false") return false;
|
|
3822
3833
|
return void 0;
|
|
3823
3834
|
}
|
|
3835
|
+
function resetVisibleTableState(payload) {
|
|
3836
|
+
const { table, visibility } = payload;
|
|
3837
|
+
if (!table) return;
|
|
3838
|
+
table.setColumnVisibility(visibility);
|
|
3839
|
+
const isVisible = (id) => payload.visibility?.[id] === true;
|
|
3840
|
+
const prevState = table.getState();
|
|
3841
|
+
table.setColumnFilters(prevState.columnFilters.filter((f) => isVisible(f.id)));
|
|
3842
|
+
table.setSorting(prevState.sorting.filter((s) => isVisible(s.id)));
|
|
3843
|
+
}
|
|
3824
3844
|
var useHover = () => {
|
|
3825
3845
|
const [hovering, setHovering] = useState(false);
|
|
3826
3846
|
const prevRef = useRef(null);
|
|
@@ -6867,8 +6887,15 @@ var useGridSettingsStore = create(
|
|
|
6867
6887
|
return { availableColumns, currentColumns };
|
|
6868
6888
|
},
|
|
6869
6889
|
syncColumnsState: (table, options) => {
|
|
6890
|
+
const {
|
|
6891
|
+
excludeColumns = [],
|
|
6892
|
+
labelMap = {},
|
|
6893
|
+
visibility = {},
|
|
6894
|
+
ordering = [],
|
|
6895
|
+
pinning
|
|
6896
|
+
} = options || {};
|
|
6870
6897
|
const { availableColumns, currentColumns } = get().extractColumns(table);
|
|
6871
|
-
const
|
|
6898
|
+
const orderMap = new Map(ordering.map((columnId, index) => [columnId, index]));
|
|
6872
6899
|
const filteredExcludeColumnFn = (column) => !excludeColumns.includes(column.id);
|
|
6873
6900
|
const mapLabel = (col) => ({
|
|
6874
6901
|
id: col.id,
|
|
@@ -6883,7 +6910,20 @@ var useGridSettingsStore = create(
|
|
|
6883
6910
|
}
|
|
6884
6911
|
}
|
|
6885
6912
|
return true;
|
|
6886
|
-
}).map(mapLabel)
|
|
6913
|
+
}).map(mapLabel).sort((a, b) => {
|
|
6914
|
+
const columnIdA = a.id;
|
|
6915
|
+
const columnIdB = b.id;
|
|
6916
|
+
const aOrder = orderMap.get(columnIdA) ?? Infinity;
|
|
6917
|
+
const bOrder = orderMap.get(columnIdB) ?? Infinity;
|
|
6918
|
+
return aOrder - bOrder;
|
|
6919
|
+
}),
|
|
6920
|
+
payload: {
|
|
6921
|
+
ordering,
|
|
6922
|
+
pinning: {
|
|
6923
|
+
left: pinning?.left || []
|
|
6924
|
+
},
|
|
6925
|
+
visibility
|
|
6926
|
+
}
|
|
6887
6927
|
});
|
|
6888
6928
|
}
|
|
6889
6929
|
})
|
|
@@ -10072,6 +10112,6 @@ var InputNumber = ({ customInputProps, ...props }) => {
|
|
|
10072
10112
|
};
|
|
10073
10113
|
var InputNumber_default = InputNumber;
|
|
10074
10114
|
|
|
10075
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CropperModal, CropperModalError, DIALOG_ALERT_I18N_SUBNAMESPACE, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, InputNumber_default as InputNumber, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, 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, 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, Textarea, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, truncated_default as Truncated, ui_exports as UI, booleanToSelectValue, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated, validateTokenPrefixes };
|
|
10115
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CropperModal, CropperModalError, DIALOG_ALERT_I18N_SUBNAMESPACE, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, InputNumber_default as InputNumber, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, 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, 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, Textarea, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, truncated_default as Truncated, ui_exports as UI, booleanToSelectValue, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, resetVisibleTableState, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated, validateTokenPrefixes };
|
|
10076
10116
|
//# sourceMappingURL=index.mjs.map
|
|
10077
10117
|
//# sourceMappingURL=index.mjs.map
|