@adaptabletools/adaptable 23.0.0-canary.1 → 23.0.0-canary.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/index.css +130 -137
- package/package.json +1 -1
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -3
- package/src/AdaptableState/Common/AdaptableFormat.d.ts +1 -1
- package/src/AdaptableState/LayoutState.d.ts +5 -4
- package/src/AdaptableState/StyledColumnState.d.ts +7 -16
- package/src/AdaptableState/StyledColumnState.js +9 -1
- package/src/Api/EventApi.d.ts +1 -1
- package/src/Api/Events/ReportScheduleRan.d.ts +4 -0
- package/src/Api/Internal/EventInternalApi.js +2 -1
- package/src/View/AdaptablePopover/index.js +1 -1
- package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -1
- package/src/View/Components/Buttons/ButtonInfo.js +4 -3
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +1 -1
- package/src/View/Components/ColumnFilter/ColumnFilter.js +15 -5
- package/src/View/Components/ColumnFilter/FloatingFilter.js +58 -60
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
- package/src/View/Components/Forms/AdaptableFormControlTextClear.js +2 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
- package/src/View/Components/ValueSelector/index.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +3 -8
- package/src/View/GridFilter/GridFilterViewPanel.js +1 -1
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +4 -4
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +1 -1
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +6 -2
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +1 -1
- package/src/View/Layout/Wizard/sections/SettingsSection.js +1 -1
- package/src/View/License/LicenseWatermark.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +1 -1
- package/src/View/Wizard/OnePageWizards.js +1 -1
- package/src/View/renderWithAdaptableContext.js +1 -1
- package/src/agGrid/AdaptableAgGrid.js +2 -2
- package/src/components/Card/index.js +1 -1
- package/src/components/Combobox/index.js +11 -5
- package/src/components/Datepicker/index.js +6 -6
- package/src/components/Dialog/index.js +1 -1
- package/src/components/DragAndDropContext/TabList.js +1 -1
- package/src/components/Dropdown/Arrows.js +0 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
- package/src/components/ExpressionEditor/index.js +1 -1
- package/src/components/Input/index.js +1 -1
- package/src/components/NewDropdownButton/index.d.ts +1 -0
- package/src/components/NewDropdownButton/index.js +3 -3
- package/src/components/NewSelect/index.d.ts +2 -0
- package/src/components/NewSelect/index.js +12 -9
- package/src/components/NewTooltip/index.js +1 -1
- package/src/components/Panel/index.js +1 -1
- package/src/components/SimpleButton/index.js +1 -1
- package/src/components/Tabs/index.js +1 -1
- package/src/components/Tree/TreeDropdown/index.js +4 -8
- package/src/components/ui/button.d.ts +5 -2
- package/src/components/ui/button.js +6 -5
- package/src/components/ui/calendar.d.ts +1 -1
- package/src/components/ui/calendar.js +2 -2
- package/src/components/ui/combobox.d.ts +16 -16
- package/src/components/ui/combobox.js +39 -39
- package/src/components/ui/dropdown-menu.js +1 -1
- package/src/components/ui/input-group.d.ts +10 -9
- package/src/components/ui/input-group.js +17 -16
- package/src/components/ui/input.d.ts +2 -2
- package/src/components/ui/input.js +6 -5
- package/src/components/ui/popover.d.ts +5 -5
- package/src/components/ui/popover.js +8 -8
- package/src/components/ui/select.d.ts +7 -6
- package/src/components/ui/select.js +14 -13
- package/src/components/ui/textarea.d.ts +2 -2
- package/src/components/ui/textarea.js +5 -4
- package/src/components/ui/tooltip.d.ts +6 -5
- package/src/components/ui/tooltip.js +9 -8
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +2 -2
- package/src/layout-manager/src/index.js +5 -4
- package/src/layout-manager/src/normalizeLayoutModel.js +5 -1
- package/src/layout-manager/src/rowGroupDisplayType.d.ts +6 -0
- package/src/layout-manager/src/rowGroupDisplayType.js +24 -0
- package/src/lib/utils.d.ts +20 -0
- package/src/lib/utils.js +45 -0
- package/src/metamodel/adaptable.metamodel.d.ts +7 -26
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/VersionUpgrade23.d.ts +2 -3
- package/src/migration/VersionUpgrade23.js +4 -16
- package/themes/dark.css +7 -17
- package/tsconfig.esm.tsbuildinfo +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Combobox as ComboboxPrimitive } from '@base-ui/react';
|
|
4
|
-
import { cn, POPUP_Z_INDEX } from
|
|
5
|
-
import { Button } from
|
|
6
|
-
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput
|
|
4
|
+
import { cn, POPUP_Z_INDEX } from '../../lib/utils';
|
|
5
|
+
import { Button } from './button';
|
|
6
|
+
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from './input-group';
|
|
7
7
|
import { CheckIcon, ChevronDownIcon, XIcon, Loader2Icon } from 'lucide-react';
|
|
8
8
|
import { CheckBox } from '../CheckBox';
|
|
9
9
|
const useFilteredItems = ComboboxPrimitive.useFilteredItems;
|
|
@@ -15,16 +15,16 @@ const RESIZABLE_VIRTUALIZED_SCROLL_CLASS = 'twa:group-data-resizable/combobox-co
|
|
|
15
15
|
function ComboboxValue({ ...props }) {
|
|
16
16
|
return _jsx(ComboboxPrimitive.Value, { "data-slot": "combobox-value", ...props });
|
|
17
17
|
}
|
|
18
|
-
function ComboboxTrigger({ className, children, ...props }) {
|
|
19
|
-
return (_jsxs(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", className: cn('twa:[&_svg:not([class*=size-])]:size-4', className), ...props, children: [children, _jsx(ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" })] }));
|
|
20
|
-
}
|
|
21
|
-
export function ComboboxClear({ className, ...props }) {
|
|
22
|
-
return (_jsx(ComboboxPrimitive.Clear, { "data-slot": "combobox-clear", render: _jsx(InputGroupButton, { variant: "ghost", size: "icon-xs", className: "twa:min-h-auto!" }), className:
|
|
23
|
-
}
|
|
24
|
-
function ComboboxInput({ className, children, disabled = false, isLoading = false, showTrigger = true, showClear = false, groupRef, ...props }) {
|
|
18
|
+
const ComboboxTrigger = React.forwardRef(function ComboboxTrigger({ className, children, ...props }, ref) {
|
|
19
|
+
return (_jsxs(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", className: cn('twa:[&_svg:not([class*=size-])]:size-4', className), ref: ref, ...props, children: [children, _jsx(ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" })] }));
|
|
20
|
+
});
|
|
21
|
+
export const ComboboxClear = React.forwardRef(function ComboboxClear({ className, ...props }, ref) {
|
|
22
|
+
return (_jsx(ComboboxPrimitive.Clear, { "data-slot": "combobox-clear", render: _jsx(InputGroupButton, { variant: "ghost", size: "icon-xs", className: "twa:min-h-auto!" }), className: className, ref: ref, ...props, children: _jsx(XIcon, { className: "twa:pointer-events-none", strokeWidth: 1 }) }));
|
|
23
|
+
});
|
|
24
|
+
const ComboboxInput = React.forwardRef(function ComboboxInput({ className, children, disabled = false, isLoading = false, showTrigger = true, showClear = false, groupRef, ...props }, ref) {
|
|
25
25
|
const { 'aria-label': ariaLabel, ...rest } = props;
|
|
26
|
-
return (_jsxs(InputGroup, { ref: groupRef, className: cn('twa:w-auto', className), "aria-label": ariaLabel, children: [_jsx(ComboboxPrimitive.Input, { render: _jsx(InputGroupInput, { disabled: disabled }), ...rest }), _jsxs(InputGroupAddon, { align: "inline-end", children: [isLoading && (_jsx(Loader2Icon, { className: "twa:size-4 twa:text-muted-foreground twa:animate-spin" })), showTrigger && (_jsx(InputGroupButton, { size: "icon-xs", variant: "ghost", render: _jsx(ComboboxTrigger, {}), "data-slot": "
|
|
27
|
-
}
|
|
26
|
+
return (_jsxs(InputGroup, { ref: groupRef, className: cn('twa:w-auto', className), "aria-label": ariaLabel, children: [_jsx(ComboboxPrimitive.Input, { ref: ref, render: _jsx(InputGroupInput, { disabled: disabled }), ...rest }), _jsxs(InputGroupAddon, { align: "inline-end", children: [isLoading && (_jsx(Loader2Icon, { className: "twa:size-4 twa:text-muted-foreground twa:animate-spin" })), showTrigger && (_jsx(InputGroupButton, { size: "icon-xs", variant: "ghost", render: _jsx(ComboboxTrigger, {}), "data-slot": "combobox-toggle", className: "twa:group-has-data-[slot=combobox-clear]/input-group:hidden twa:data-pressed:bg-transparent twa:min-h-auto!", disabled: disabled })), showClear && _jsx(ComboboxClear, { disabled: disabled })] }), children] }));
|
|
27
|
+
});
|
|
28
28
|
function ComboboxContent({ className, side = 'bottom', sideOffset = 6, align = 'start', alignOffset = 0, anchor, resizable = false, contentRef, style, ...props }) {
|
|
29
29
|
const sizeRef = React.useRef(null);
|
|
30
30
|
const popupElRef = React.useRef(null);
|
|
@@ -49,36 +49,36 @@ function ComboboxContent({ className, side = 'bottom', sideOffset = 6, align = '
|
|
|
49
49
|
: undefined;
|
|
50
50
|
return (_jsx(ComboboxPrimitive.Portal, { children: _jsx(ComboboxPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, anchor: anchor, className: `twa:isolate ${POPUP_Z_INDEX}`, children: _jsx(ComboboxPrimitive.Popup, { ref: popupRef, "data-slot": "combobox-content", "data-chips": !!anchor, "data-resizable": resizable || undefined, style: { ...resizableStyle, ...style }, className: cn('twa:group/combobox-content twa:relative twa:origin-(--transform-origin) twa:overflow-hidden twa:rounded-input twa:bg-popover twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:duration-100 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:*:data-[slot=input-group]:m-1 twa:*:data-[slot=input-group]:mb-0 twa:*:data-[slot=input-group]:h-8 twa:*:data-[slot=input-group]:border-input/30 twa:*:data-[slot=input-group]:bg-input/30 twa:*:data-[slot=input-group]:shadow-none twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', 'twa:max-h-[min(var(--available-height),80vh)]', 'twa:max-w-[min(var(--available-width),80vw)]', 'twa:min-w-[min(calc(var(--anchor-width)+--spacing(7)),var(--available-width),80vw)]', resizable ? 'twa:flex twa:flex-col twa:min-h-24' : 'twa:w-(--anchor-width)', className), ...props }) }) }));
|
|
51
51
|
}
|
|
52
|
-
function ComboboxList({ className, ...props }) {
|
|
53
|
-
return (_jsx(ComboboxPrimitive.List, { "data-slot": "combobox-list", className: cn('twa:no-scrollbar twa:max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] twa:scroll-py-1 twa:overflow-y-auto twa:overscroll-contain twa:p-1 twa:data-empty:p-0', RESIZABLE_LIST_CLASS, className), ...props }));
|
|
54
|
-
}
|
|
52
|
+
const ComboboxList = React.forwardRef(function ComboboxList({ className, ...props }, ref) {
|
|
53
|
+
return (_jsx(ComboboxPrimitive.List, { "data-slot": "combobox-list", className: cn('twa:no-scrollbar twa:max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] twa:scroll-py-1 twa:overflow-y-auto twa:overscroll-contain twa:p-1 twa:data-empty:p-0', RESIZABLE_LIST_CLASS, className), ref: ref, ...props }));
|
|
54
|
+
});
|
|
55
55
|
const checkboxIndicatorRender = (props, state) => {
|
|
56
56
|
const clsForSquare = state.selected ? 'twa:ring-1 twa:ring-accent-foreground' : '';
|
|
57
57
|
return (_jsx(CheckBox, { checked: state.selected, tabIndex: -1, checkSquareClassName: clsForSquare, className: "twa:p-0 twa:m-0 twa:cursor-pointer" }));
|
|
58
58
|
};
|
|
59
|
-
function ComboboxItem({ className, children, renderCheckboxIndicator, ...props }) {
|
|
60
|
-
return (_jsxs(ComboboxPrimitive.Item, { className: cn('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:data-highlighted:bg-accent twa:data-highlighted:text-accent-foreground twa:not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', 'twa:cursor-pointer', renderCheckboxIndicator ? 'twa:pr-2' : 'twa:pr-8', className), ...props, "data-slot": "combobox-item", children: [renderCheckboxIndicator ? (_jsx(ComboboxPrimitive.ItemIndicator, { keepMounted: true, render: renderCheckboxIndicator === true ? checkboxIndicatorRender : renderCheckboxIndicator })) : null, children, !renderCheckboxIndicator && (_jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: _jsx(CheckIcon, { className: "twa:pointer-events-none" }) }))] }));
|
|
61
|
-
}
|
|
62
|
-
function ComboboxGroup({ className, ...props }) {
|
|
63
|
-
return (_jsx(ComboboxPrimitive.Group, { "data-slot": "combobox-group", className: cn(className), ...props }));
|
|
64
|
-
}
|
|
65
|
-
function ComboboxLabel({ className, ...props }) {
|
|
66
|
-
return (_jsx(ComboboxPrimitive.GroupLabel, { "data-slot": "combobox-label", className: cn('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ...props }));
|
|
67
|
-
}
|
|
59
|
+
const ComboboxItem = React.forwardRef(function ComboboxItem({ className, children, renderCheckboxIndicator, ...props }, ref) {
|
|
60
|
+
return (_jsxs(ComboboxPrimitive.Item, { ref: ref, className: cn('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:data-highlighted:bg-accent twa:data-highlighted:text-accent-foreground twa:not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', 'twa:cursor-pointer', renderCheckboxIndicator ? 'twa:pr-2' : 'twa:pr-8', className), ...props, "data-slot": "combobox-item", children: [renderCheckboxIndicator ? (_jsx(ComboboxPrimitive.ItemIndicator, { keepMounted: true, render: renderCheckboxIndicator === true ? checkboxIndicatorRender : renderCheckboxIndicator })) : null, children, !renderCheckboxIndicator && (_jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: _jsx(CheckIcon, { className: "twa:pointer-events-none" }) }))] }));
|
|
61
|
+
});
|
|
62
|
+
const ComboboxGroup = React.forwardRef(function ComboboxGroup({ className, ...props }, ref) {
|
|
63
|
+
return (_jsx(ComboboxPrimitive.Group, { "data-slot": "combobox-group", className: cn(className), ref: ref, ...props }));
|
|
64
|
+
});
|
|
65
|
+
const ComboboxLabel = React.forwardRef(function ComboboxLabel({ className, ...props }, ref) {
|
|
66
|
+
return (_jsx(ComboboxPrimitive.GroupLabel, { "data-slot": "combobox-label", className: cn('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ref: ref, ...props }));
|
|
67
|
+
});
|
|
68
68
|
function ComboboxCollection({ ...props }) {
|
|
69
69
|
return _jsx(ComboboxPrimitive.Collection, { "data-slot": "combobox-collection", ...props });
|
|
70
70
|
}
|
|
71
|
-
function ComboboxEmpty({ className, ...props }) {
|
|
72
|
-
return (_jsx(ComboboxPrimitive.Empty, { "data-slot": "combobox-empty", className: cn('twa:hidden twa:w-full twa:justify-center twa:py-2 twa:text-center twa:text-sm twa:text-muted-foreground twa:group-data-empty/combobox-content:flex', className), ...props }));
|
|
73
|
-
}
|
|
74
|
-
function ComboboxSeparator({ className, ...props }) {
|
|
75
|
-
return (_jsx(ComboboxPrimitive.Separator, { "data-slot": "combobox-separator", className: cn('twa:-mx-1 twa:my-1 twa:h-px twa:bg-border', className), ...props }));
|
|
76
|
-
}
|
|
77
|
-
function ComboboxChips({ className, ...props }) {
|
|
78
|
-
return (_jsx(ComboboxPrimitive.Chips, { "data-slot": "combobox-chips", className: cn('twa:focus-within:outline-none', 'twa:flex twa:flex-wrap twa:items-center twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:bg-input-background twa:bg-clip-padding twa:text-sm twa:shadow-xs twa:transition-[color,box-shadow] twa:focus-within:border-ring twa:focus-within:ring-3 twa:focus-within:ring-ring/50 twa:has-aria-invalid:border-destructive twa:has-aria-invalid:ring-3 twa:has-aria-invalid:ring-destructive/20 twa:has-data-[slot=combobox-chip]:px-1.5 twa:dark:
|
|
79
|
-
}
|
|
80
|
-
function ComboboxChip({ className, children, showRemove = true, onRemove, ...props }) {
|
|
81
|
-
return (_jsxs(ComboboxPrimitive.Chip, { "data-slot": "combobox-chip", className: cn('twa:flex twa:h-[calc(--spacing(5.5))] twa:w-fit twa:items-center twa:justify-center twa:gap-1 twa:rounded-input twa:bg-muted twa:px-1.5 twa:text-xs twa:font-medium twa:whitespace-nowrap twa:text-input-foreground twa:has-disabled:pointer-events-none twa:has-disabled:cursor-not-allowed twa:has-disabled:opacity-50 twa:has-data-[slot=combobox-chip-remove]:pr-0', className), ...props, children: [children, showRemove &&
|
|
71
|
+
const ComboboxEmpty = React.forwardRef(function ComboboxEmpty({ className, ...props }, ref) {
|
|
72
|
+
return (_jsx(ComboboxPrimitive.Empty, { "data-slot": "combobox-empty", className: cn('twa:hidden twa:w-full twa:justify-center twa:py-2 twa:text-center twa:text-sm twa:text-muted-foreground twa:group-data-empty/combobox-content:flex', className), ref: ref, ...props }));
|
|
73
|
+
});
|
|
74
|
+
const ComboboxSeparator = React.forwardRef(function ComboboxSeparator({ className, ...props }, ref) {
|
|
75
|
+
return (_jsx(ComboboxPrimitive.Separator, { "data-slot": "combobox-separator", className: cn('twa:-mx-1 twa:my-1 twa:h-px twa:bg-border', className), ref: ref, ...props }));
|
|
76
|
+
});
|
|
77
|
+
const ComboboxChips = React.forwardRef(function ComboboxChips({ className, ...props }, ref) {
|
|
78
|
+
return (_jsx(ComboboxPrimitive.Chips, { "data-slot": "combobox-chips", className: cn('twa:focus-within:outline-none', 'twa:flex twa:flex-wrap twa:items-center twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:bg-input-background twa:bg-clip-padding twa:text-sm twa:shadow-xs twa:transition-[color,box-shadow] twa:focus-within:border-ring twa:focus-within:ring-3 twa:focus-within:ring-ring/50 twa:has-aria-invalid:border-destructive twa:has-aria-invalid:ring-3 twa:has-aria-invalid:ring-destructive/20 twa:has-data-[slot=combobox-chip]:px-1.5 twa:dark:has-aria-invalid:border-destructive/50 twa:dark:has-aria-invalid:ring-destructive/40', 'twa:py-1', 'twa:px-2.5', 'twa:min-h-input', 'twa:[&>input]:max-h-[calc(var(--ab-input-height)-1.5*var(--ab-base-space))]!', className), ref: ref, ...props }));
|
|
79
|
+
});
|
|
80
|
+
const ComboboxChip = React.forwardRef(function ComboboxChip({ className, children, showRemove = true, onRemove, ...props }, ref) {
|
|
81
|
+
return (_jsxs(ComboboxPrimitive.Chip, { ref: ref, "data-slot": "combobox-chip", className: cn('twa:flex twa:h-[calc(--spacing(5.5))] twa:w-fit twa:items-center twa:justify-center twa:gap-1 twa:rounded-input twa:bg-muted twa:px-1.5 twa:text-xs twa:font-medium twa:whitespace-nowrap twa:text-input-foreground twa:has-disabled:pointer-events-none twa:has-disabled:cursor-not-allowed twa:has-disabled:opacity-50 twa:has-data-[slot=combobox-chip-remove]:pr-0', className), ...props, children: [children, showRemove &&
|
|
82
82
|
(onRemove ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-xs", tabIndex: -1, "data-slot": "combobox-chip-remove", className: "twa:-ml-1 twa:opacity-50 twa:hover:opacity-100", onMouseDown: (e) => {
|
|
83
83
|
// Don't let base-ui's Chip onMouseDown steal focus back to the
|
|
84
84
|
// input before the click fires.
|
|
@@ -90,10 +90,10 @@ function ComboboxChip({ className, children, showRemove = true, onRemove, ...pro
|
|
|
90
90
|
e.stopPropagation();
|
|
91
91
|
onRemove(e);
|
|
92
92
|
}, children: _jsx(XIcon, { className: "twa:pointer-events-none" }) })) : (_jsx(ComboboxPrimitive.ChipRemove, { render: _jsx(Button, { variant: "ghost", size: "icon-xs" }), className: "twa:-ml-1 twa:opacity-50 twa:hover:opacity-100", "data-slot": "combobox-chip-remove", children: _jsx(XIcon, { className: "twa:pointer-events-none" }) })))] }));
|
|
93
|
-
}
|
|
94
|
-
function ComboboxChipsInput({ className, ...props }) {
|
|
95
|
-
return (_jsx(ComboboxPrimitive.Input, { "data-slot": "combobox-chip-input", className: cn('twa:placeholder:text-muted-foreground twa:min-w-16 twa:flex-1 twa:px-2.5 twa:outline-none twa:border-none twa:bg-transparent twa:min-h-auto!', className), ...props }));
|
|
96
|
-
}
|
|
93
|
+
});
|
|
94
|
+
const ComboboxChipsInput = React.forwardRef(function ComboboxChipsInput({ className, ...props }, ref) {
|
|
95
|
+
return (_jsx(ComboboxPrimitive.Input, { "data-slot": "combobox-chip-input", className: cn('twa:placeholder:text-muted-foreground twa:min-w-16 twa:flex-1 twa:px-2.5 twa:outline-none twa:border-none twa:bg-transparent twa:min-h-auto!', className), ref: ref, ...props }));
|
|
96
|
+
});
|
|
97
97
|
function useComboboxAnchor() {
|
|
98
98
|
return React.useRef(null);
|
|
99
99
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Menu as MenuPrimitive } from '@base-ui/react/menu';
|
|
3
|
-
import { cn, POPUP_Z_INDEX } from
|
|
3
|
+
import { cn, POPUP_Z_INDEX } from '../../lib/utils';
|
|
4
4
|
import { ChevronRightIcon, CheckIcon } from 'lucide-react';
|
|
5
5
|
function DropdownMenu({ ...props }) {
|
|
6
6
|
return _jsx(MenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
-
|
|
4
|
-
declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
3
|
+
declare const InputGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
4
|
declare const inputGroupAddonVariants: (props?: {
|
|
6
5
|
align?: "inline-end" | "inline-start" | "block-end" | "block-start";
|
|
7
6
|
} & import("class-variance-authority/dist/types").ClassProp) => string;
|
|
8
7
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
|
|
9
|
-
declare const
|
|
8
|
+
declare const InputGroupButton: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").ButtonProps & VariantProps<(props?: {
|
|
9
|
+
variant?: "link" | "secondary" | "default" | "ghost" | "outline" | "destructive";
|
|
10
|
+
size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg";
|
|
11
|
+
} & import("class-variance-authority/dist/types").ClassProp) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>, "type" | "size"> & VariantProps<(props?: {
|
|
10
12
|
size?: "xs" | "sm" | "icon-xs" | "icon-sm";
|
|
11
|
-
} & import("class-variance-authority/dist/types").ClassProp) => string
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}): React.JSX.Element;
|
|
13
|
+
} & import("class-variance-authority/dist/types").ClassProp) => string> & {
|
|
14
|
+
type?: "button" | "submit" | "reset";
|
|
15
|
+
}, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
15
16
|
declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
16
|
-
declare
|
|
17
|
-
declare
|
|
17
|
+
declare const InputGroupInput: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
18
|
+
declare const InputGroupTextarea: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
18
19
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
3
4
|
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { cn } from
|
|
5
|
-
import { Button } from
|
|
6
|
-
import { Input } from
|
|
7
|
-
import { Textarea } from
|
|
8
|
-
function InputGroup({ className, ...props }) {
|
|
9
|
-
return (_jsx("div", { "data-slot": "input-group", role: "group", className: cn('twa:group/input-group twa:relative twa:flex twa:h-input twa:w-full twa:min-w-0 twa:items-center twa:rounded-input twa:border twa:border-input twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:in-data-[slot=combobox-content]:focus-within:border-inherit twa:in-data-[slot=combobox-content]:focus-within:ring-0 twa:has-[[data-slot=input-group-control]:focus-visible]:border-ring twa:has-[[data-slot=input-group-control]:focus-visible]:ring-3 twa:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 twa:has-[[data-slot][aria-invalid=true]]:border-destructive twa:has-[[data-slot][aria-invalid=true]]:ring-3 twa:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 twa:has-[>[data-align=block-end]]:h-auto twa:has-[>[data-align=block-end]]:flex-col twa:has-[>[data-align=block-start]]:h-auto twa:has-[>[data-align=block-start]]:flex-col twa:has-[>textarea]:h-auto twa:dark:
|
|
10
|
-
}
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
|
+
import { Button } from './button';
|
|
7
|
+
import { Input } from './input';
|
|
8
|
+
import { Textarea } from './textarea';
|
|
9
|
+
const InputGroup = React.forwardRef(function InputGroup({ className, ...props }, ref) {
|
|
10
|
+
return (_jsx("div", { ref: ref, "data-slot": "input-group", role: "group", className: cn('twa:group/input-group twa:relative twa:flex twa:h-input twa:w-full twa:min-w-0 twa:items-center twa:rounded-input twa:border twa:border-input twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:in-data-[slot=combobox-content]:focus-within:border-inherit twa:in-data-[slot=combobox-content]:focus-within:ring-0 twa:has-[[data-slot=input-group-control]:focus-visible]:border-ring twa:has-[[data-slot=input-group-control]:focus-visible]:ring-3 twa:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 twa:has-[[data-slot][aria-invalid=true]]:border-destructive twa:has-[[data-slot][aria-invalid=true]]:ring-3 twa:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 twa:has-[>[data-align=block-end]]:h-auto twa:has-[>[data-align=block-end]]:flex-col twa:has-[>[data-align=block-start]]:h-auto twa:has-[>[data-align=block-start]]:flex-col twa:has-[>textarea]:h-auto twa:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 twa:has-[>[data-align=block-end]]:[&>input]:pt-3 twa:has-[>[data-align=block-start]]:[&>input]:pb-3 twa:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 twa:has-[>[data-align=inline-start]]:[&>input]:pl-1.5', className), ...props }));
|
|
11
|
+
});
|
|
11
12
|
const inputGroupAddonVariants = cva('twa:flex twa:h-auto twa:cursor-text twa:items-center twa:justify-center twa:gap-2 twa:py-1.5 twa:text-sm twa:font-medium twa:text-muted-foreground twa:select-none twa:group-data-[disabled=true]/input-group:opacity-50 twa:[&>kbd]:rounded-[calc(var(--ab-border-radius))] twa:[&>svg:not([class*=size-])]:size-4', {
|
|
12
13
|
variants: {
|
|
13
14
|
align: {
|
|
@@ -42,16 +43,16 @@ const inputGroupButtonVariants = cva('twa:flex twa:items-center twa:gap-2 twa:te
|
|
|
42
43
|
size: 'xs',
|
|
43
44
|
},
|
|
44
45
|
});
|
|
45
|
-
function InputGroupButton({ className, type = 'button', variant = 'ghost', size = 'xs', ...props }) {
|
|
46
|
-
return (_jsx(Button, { type: type, "data-size": size, variant: variant, className: cn(inputGroupButtonVariants({ size }), className), ...props }));
|
|
47
|
-
}
|
|
46
|
+
const InputGroupButton = React.forwardRef(function InputGroupButton({ className, type = 'button', variant = 'ghost', size = 'xs', ...props }, ref) {
|
|
47
|
+
return (_jsx(Button, { type: type, "data-size": size, variant: variant, className: cn(inputGroupButtonVariants({ size }), className), ref: ref, ...props }));
|
|
48
|
+
});
|
|
48
49
|
function InputGroupText({ className, ...props }) {
|
|
49
50
|
return (_jsx("span", { className: cn('twa:flex twa:items-center twa:gap-2 twa:text-sm twa:text-muted-foreground twa:[&_svg]:pointer-events-none twa:[&_svg:not([class*=size-])]:size-4', className), ...props }));
|
|
50
51
|
}
|
|
51
|
-
function InputGroupInput({ className, ...props }) {
|
|
52
|
-
return (_jsx(Input, { "data-slot": "input-group-control", className: cn('twa:flex-1 twa:rounded-none twa:border-0 twa:bg-transparent twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ...props }));
|
|
53
|
-
}
|
|
54
|
-
function InputGroupTextarea({ className, ...props }) {
|
|
55
|
-
return (_jsx(Textarea, { "data-slot": "input-group-control", className: cn('twa:flex-1 twa:resize-none twa:rounded-none twa:border-0 twa:bg-transparent twa:py-2 twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ...props }));
|
|
56
|
-
}
|
|
52
|
+
const InputGroupInput = React.forwardRef(function InputGroupInput({ className, ...props }, ref) {
|
|
53
|
+
return (_jsx(Input, { "data-slot": "input-group-control", className: cn('twa:flex-1 twa:rounded-none twa:border-0 twa:bg-transparent twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ref: ref, ...props }));
|
|
54
|
+
});
|
|
55
|
+
const InputGroupTextarea = React.forwardRef(function InputGroupTextarea({ className, ...props }, ref) {
|
|
56
|
+
return (_jsx(Textarea, { "data-slot": "input-group-control", className: cn('twa:flex-1 twa:resize-none twa:rounded-none twa:border-0 twa:bg-transparent twa:py-2 twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ...props, ref: ref }));
|
|
57
|
+
});
|
|
57
58
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
declare
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
3
3
|
export { Input };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Input as InputPrimitive } from '@base-ui/react/input';
|
|
4
|
+
import { cn } from '../../lib/utils';
|
|
5
|
+
const Input = React.forwardRef(function Input({ className, type, ...props }, ref) {
|
|
6
|
+
return (_jsx(InputPrimitive, { ref: ref, type: type, "data-slot": "input", className: cn('twa:h-9 twa:w-full twa:min-w-0 twa:rounded-md twa:border twa:border-input twa:bg-transparent twa:px-2.5 twa:py-1 twa:text-base twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:file:inline-flex twa:file:h-7 twa:file:border-0 twa:file:bg-transparent twa:file:text-sm twa:file:font-medium twa:file:text-foreground twa:placeholder:text-muted-foreground twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:pointer-events-none twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:md:text-sm twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40', className), ...props }));
|
|
7
|
+
});
|
|
7
8
|
export { Input };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { Popover as PopoverPrimitive } from
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
|
|
3
3
|
declare function Popover({ ...props }: PopoverPrimitive.Root.Props): React.JSX.Element;
|
|
4
4
|
declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): React.JSX.Element;
|
|
5
|
-
declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props,
|
|
6
|
-
declare function PopoverHeader({ className, ...props }: React.ComponentProps<
|
|
5
|
+
declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): React.JSX.Element;
|
|
6
|
+
declare function PopoverHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
7
7
|
declare function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): React.JSX.Element;
|
|
8
8
|
declare function PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): React.JSX.Element;
|
|
9
|
-
export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger
|
|
9
|
+
export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Popover as PopoverPrimitive } from
|
|
3
|
-
import { cn, POPUP_Z_INDEX } from
|
|
2
|
+
import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
|
|
3
|
+
import { cn, POPUP_Z_INDEX } from '../../lib/utils';
|
|
4
4
|
function Popover({ ...props }) {
|
|
5
5
|
return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
6
6
|
}
|
|
7
7
|
function PopoverTrigger({ ...props }) {
|
|
8
8
|
return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
9
9
|
}
|
|
10
|
-
function PopoverContent({ className, align =
|
|
11
|
-
return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${POPUP_Z_INDEX}`, children: _jsx(PopoverPrimitive.Popup, { "data-slot": "popover-content", className: cn(
|
|
10
|
+
function PopoverContent({ className, align = 'center', alignOffset = 0, side = 'bottom', sideOffset = 4, ...props }) {
|
|
11
|
+
return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${POPUP_Z_INDEX}`, children: _jsx(PopoverPrimitive.Popup, { "data-slot": "popover-content", className: cn('twa:flex twa:w-72 twa:origin-(--transform-origin) twa:flex-col twa:gap-4 twa:rounded-standard twa:bg-popover twa:p-4 twa:text-sm twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:outline-hidden twa:duration-100 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', className), ...props }) }) }));
|
|
12
12
|
}
|
|
13
13
|
function PopoverHeader({ className, ...props }) {
|
|
14
|
-
return (_jsx("div", { "data-slot": "popover-header", className: cn(
|
|
14
|
+
return (_jsx("div", { "data-slot": "popover-header", className: cn('twa:flex twa:flex-col twa:gap-1 twa:text-sm', className), ...props }));
|
|
15
15
|
}
|
|
16
16
|
function PopoverTitle({ className, ...props }) {
|
|
17
|
-
return (_jsx(PopoverPrimitive.Title, { "data-slot": "popover-title", className: cn(
|
|
17
|
+
return (_jsx(PopoverPrimitive.Title, { "data-slot": "popover-title", className: cn('twa: twa:font-medium', className), ...props }));
|
|
18
18
|
}
|
|
19
19
|
function PopoverDescription({ className, ...props }) {
|
|
20
|
-
return (_jsx(PopoverPrimitive.Description, { "data-slot": "popover-description", className: cn(
|
|
20
|
+
return (_jsx(PopoverPrimitive.Description, { "data-slot": "popover-description", className: cn('twa:text-muted-foreground', className), ...props }));
|
|
21
21
|
}
|
|
22
|
-
export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger
|
|
22
|
+
export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Select as SelectPrimitive } from '@base-ui/react/select';
|
|
3
3
|
declare const Select: typeof SelectPrimitive.Root;
|
|
4
|
-
declare
|
|
4
|
+
declare const SelectGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
5
|
declare function SelectValue({ className, ...props }: SelectPrimitive.Value.Props): React.JSX.Element;
|
|
6
|
-
declare
|
|
7
|
-
size?:
|
|
6
|
+
declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectTriggerProps & {
|
|
7
|
+
size?: "sm" | "default";
|
|
8
8
|
'data-name'?: string;
|
|
9
|
-
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
}, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
10
11
|
declare function SelectContent({ className, children, side, sideOffset, align, alignOffset, alignItemWithTrigger, container, stopMouseDownPropagation, ...props }: SelectPrimitive.Popup.Props & Pick<SelectPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset' | 'alignItemWithTrigger'> & {
|
|
11
12
|
/** Portal mount node (e.g. popover body) so nested floating UI stays “inside” the parent surface. */
|
|
12
13
|
container?: React.ComponentProps<typeof SelectPrimitive.Portal>['container'];
|
|
@@ -18,8 +19,8 @@ declare function SelectContent({ className, children, side, sideOffset, align, a
|
|
|
18
19
|
*/
|
|
19
20
|
stopMouseDownPropagation?: boolean;
|
|
20
21
|
}): React.JSX.Element;
|
|
21
|
-
declare
|
|
22
|
-
declare
|
|
22
|
+
declare const SelectLabel: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const SelectItem: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectItemProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
23
24
|
declare function SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props): React.JSX.Element;
|
|
24
25
|
declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>): React.JSX.Element;
|
|
25
26
|
declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>): React.JSX.Element;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
2
3
|
import { Select as SelectPrimitive } from '@base-ui/react/select';
|
|
3
|
-
import { cn, POPUP_Z_INDEX } from
|
|
4
|
+
import { cn, POPUP_Z_INDEX } from '../../lib/utils';
|
|
4
5
|
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';
|
|
5
6
|
const Select = SelectPrimitive.Root;
|
|
6
|
-
function SelectGroup({ className, ...props }) {
|
|
7
|
-
return (_jsx(SelectPrimitive.Group, { "data-slot": "select-group", className: cn('twa:scroll-my-1 twa:p-1', className), ...props }));
|
|
8
|
-
}
|
|
7
|
+
const SelectGroup = React.forwardRef(function SelectGroup({ className, ...props }, ref) {
|
|
8
|
+
return (_jsx(SelectPrimitive.Group, { "data-slot": "select-group", className: cn('twa:scroll-my-1 twa:p-1', className), ref: ref, ...props }));
|
|
9
|
+
});
|
|
9
10
|
function SelectValue({ className, ...props }) {
|
|
10
11
|
return (_jsx(SelectPrimitive.Value, { "data-slot": "select-value", className: cn('twa:text-input-foreground twa:flex twa:flex-1 twa:text-left', className), ...props }));
|
|
11
12
|
}
|
|
12
|
-
function SelectTrigger({ className, size = 'default', children, ...props }) {
|
|
13
|
-
return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn('twa:flex twa:w-fit twa:items-center twa:justify-between twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:py-1.5 twa:pr-2 twa:pl-2.5 twa:text-sm twa:whitespace-nowrap twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:data-placeholder:text-muted-foreground twa:data-[size=default]:min-h-input twa:data-[size=sm]:h-7 twa:data-[size=sm]:min-h-auto twa:*:data-[slot=select-value]:line-clamp-1 twa:*:data-[slot=select-value]:flex twa:*:data-[slot=select-value]:items-center twa:*:data-[slot=select-value]:gap-1.5 twa:bg-input-background twa:hover:bg-input-background/80 twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', className), ...props, "data-name": props['data-name'], children: [children, _jsx(SelectPrimitive.Icon, { render: _jsx(ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" }) })] }));
|
|
14
|
-
}
|
|
13
|
+
const SelectTrigger = React.forwardRef(function SelectTrigger({ className, size = 'default', children, icon, ...props }, ref) {
|
|
14
|
+
return (_jsxs(SelectPrimitive.Trigger, { ref: ref, "data-slot": "select-trigger", "data-size": size, className: cn('twa:flex twa:w-fit twa:items-center twa:justify-between twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:py-1.5 twa:pr-2 twa:pl-2.5 twa:text-sm twa:whitespace-nowrap twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:data-placeholder:text-muted-foreground twa:data-[size=default]:min-h-input twa:data-[size=sm]:h-7 twa:data-[size=sm]:min-h-auto twa:*:data-[slot=select-value]:line-clamp-1 twa:*:data-[slot=select-value]:flex twa:*:data-[slot=select-value]:items-center twa:*:data-[slot=select-value]:gap-1.5 twa:bg-input-background twa:hover:bg-input-background/80 twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', className), ...props, "data-name": props['data-name'], children: [children, icon !== undefined ? (icon) : (_jsx(SelectPrimitive.Icon, { render: _jsx(ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" }) }))] }));
|
|
15
|
+
});
|
|
15
16
|
function SelectContent({ className, children, side = 'bottom', sideOffset = 4, align = 'center', alignOffset = 0, alignItemWithTrigger = true, container, stopMouseDownPropagation = false, ...props }) {
|
|
16
17
|
const onMouseDown = stopMouseDownPropagation
|
|
17
18
|
? (e) => {
|
|
@@ -20,12 +21,12 @@ function SelectContent({ className, children, side = 'bottom', sideOffset = 4, a
|
|
|
20
21
|
: undefined;
|
|
21
22
|
return (_jsx(SelectPrimitive.Portal, { container: container, children: _jsx(SelectPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, alignItemWithTrigger: alignItemWithTrigger, className: `twa:isolate ${POPUP_Z_INDEX}`, children: _jsxs(SelectPrimitive.Popup, { "data-slot": "select-content", "data-align-trigger": alignItemWithTrigger, onMouseDown: onMouseDown, className: cn('twa:relative twa:isolate twa:z-50 twa:max-h-(--available-height) twa:min-w-36 twa:origin-(--transform-origin) twa:overflow-x-hidden twa:overflow-y-auto twa:rounded-input twa:bg-popover twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:duration-100 twa:data-[align-trigger=true]:animate-none twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', 'twa:w-(--anchor-width)', 'twa:max-w-[min(var(--available-width),80vw)]', className), ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.List, { children: children }), _jsx(SelectScrollDownButton, {})] }) }) }));
|
|
22
23
|
}
|
|
23
|
-
function SelectLabel({ className, ...props }) {
|
|
24
|
-
return (_jsx(SelectPrimitive.GroupLabel, { "data-slot": "select-label", className: cn('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ...props }));
|
|
25
|
-
}
|
|
26
|
-
function SelectItem({ className, children, ...props }) {
|
|
27
|
-
return (_jsxs(SelectPrimitive.Item, { className: cn('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pr-8 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:focus:bg-accent twa:focus:text-accent-foreground twa:not-data-[variant=destructive]:focus:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4 twa:*:[span]:last:flex twa:*:[span]:last:items-center twa:*:[span]:last:gap-2', className), ...props, "data-slot": "select-item", children: [_jsx(SelectPrimitive.ItemText, { className: "twa:block twa:min-w-0 twa:flex-1 twa:truncate", children: children }), _jsx(SelectPrimitive.ItemIndicator, { render: _jsx("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: _jsx(CheckIcon, { className: "twa:pointer-events-none" }) })] }));
|
|
28
|
-
}
|
|
24
|
+
const SelectLabel = React.forwardRef(function SelectLabel({ className, ...props }, ref) {
|
|
25
|
+
return (_jsx(SelectPrimitive.GroupLabel, { "data-slot": "select-label", className: cn('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ref: ref, ...props }));
|
|
26
|
+
});
|
|
27
|
+
const SelectItem = React.forwardRef(function SelectItem({ className, children, ...props }, ref) {
|
|
28
|
+
return (_jsxs(SelectPrimitive.Item, { ref: ref, className: cn('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pr-8 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:focus:bg-accent twa:focus:text-accent-foreground twa:not-data-[variant=destructive]:focus:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4 twa:*:[span]:last:flex twa:*:[span]:last:items-center twa:*:[span]:last:gap-2', className), ...props, "data-slot": "select-item", children: [_jsx(SelectPrimitive.ItemText, { className: "twa:block twa:min-w-0 twa:flex-1 twa:truncate", children: children }), _jsx(SelectPrimitive.ItemIndicator, { render: _jsx("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: _jsx(CheckIcon, { className: "twa:pointer-events-none" }) })] }));
|
|
29
|
+
});
|
|
29
30
|
function SelectSeparator({ className, ...props }) {
|
|
30
31
|
return (_jsx(SelectPrimitive.Separator, { "data-slot": "select-separator", className: cn('twa:pointer-events-none twa:-mx-1 twa:my-1 twa:h-px twa:bg-border', className), ...props }));
|
|
31
32
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
declare
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare const Textarea: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
3
3
|
export { Textarea };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
4
|
+
const Textarea = React.forwardRef(function Textarea({ className, ...props }, ref) {
|
|
5
|
+
return (_jsx("textarea", { "data-slot": "textarea", className: cn('twa:flex twa:field-sizing-content twa:min-h-16 twa:w-full twa:rounded-md twa:border twa:border-input twa:bg-transparent twa:px-2.5 twa:py-2 twa:text-base twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:placeholder:text-muted-foreground twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:md:text-sm twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40', className), ref: ref, ...props }));
|
|
6
|
+
});
|
|
6
7
|
export { Textarea };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
declare function
|
|
4
|
-
declare function
|
|
5
|
-
declare
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
|
|
3
|
+
declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): React.JSX.Element;
|
|
4
|
+
declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): React.JSX.Element;
|
|
5
|
+
declare const TooltipTrigger: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.Trigger.Props<unknown>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
6
|
+
declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): React.JSX.Element;
|
|
6
7
|
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
|
|
4
|
+
import { cn, POPUP_Z_INDEX } from '../../lib/utils';
|
|
4
5
|
function TooltipProvider({ delay = 0, ...props }) {
|
|
5
|
-
return
|
|
6
|
+
return _jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props });
|
|
6
7
|
}
|
|
7
8
|
function Tooltip({ ...props }) {
|
|
8
9
|
return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
9
10
|
}
|
|
10
|
-
function TooltipTrigger({ ...props }) {
|
|
11
|
-
return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
12
|
-
}
|
|
13
|
-
function TooltipContent({ className, side =
|
|
14
|
-
return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${POPUP_Z_INDEX}`, children: _jsxs(TooltipPrimitive.Popup, { "data-slot": "tooltip-content", className: cn(
|
|
11
|
+
const TooltipTrigger = React.forwardRef(function TooltipTrigger({ ...props }, ref) {
|
|
12
|
+
return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ref: ref, ...props });
|
|
13
|
+
});
|
|
14
|
+
function TooltipContent({ className, side = 'top', sideOffset = 4, align = 'center', alignOffset = 0, children, ...props }) {
|
|
15
|
+
return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${POPUP_Z_INDEX}`, children: _jsxs(TooltipPrimitive.Popup, { "data-slot": "tooltip-content", className: cn('twa:z-50 twa:inline-flex twa:w-fit twa:max-w-xs twa:origin-(--transform-origin) twa:items-center twa:gap-1.5 twa:rounded-md twa:bg-foreground twa:px-3 twa:py-1.5 twa:text-xs twa:text-background twa:has-data-[slot=kbd]:pr-1.5 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:**:data-[slot=kbd]:relative twa:**:data-[slot=kbd]:isolate twa:**:data-[slot=kbd]:z-50 twa:**:data-[slot=kbd]:rounded-sm twa:data-[state=delayed-open]:animate-in twa:data-[state=delayed-open]:fade-in-0 twa:data-[state=delayed-open]:zoom-in-95 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "twa:z-50 twa:size-2.5 twa:translate-y-[calc(-50%-2px)] twa:rotate-45 twa:rounded-[2px] twa:bg-foreground twa:fill-foreground twa:data-[side=bottom]:top-1 twa:data-[side=inline-end]:top-1/2! twa:data-[side=inline-end]:-left-1 twa:data-[side=inline-end]:-translate-y-1/2 twa:data-[side=inline-start]:top-1/2! twa:data-[side=inline-start]:-right-1 twa:data-[side=inline-start]:-translate-y-1/2 twa:data-[side=left]:top-1/2! twa:data-[side=left]:-right-1 twa:data-[side=left]:-translate-y-1/2 twa:data-[side=right]:top-1/2! twa:data-[side=right]:-left-1 twa:data-[side=right]:-translate-y-1/2 twa:data-[side=top]:-bottom-2.5" })] }) }) }));
|
|
15
16
|
}
|
|
16
17
|
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
package/src/env.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
|
|
3
|
-
PUBLISH_TIMESTAMP:
|
|
4
|
-
VERSION: "23.0.0-canary.
|
|
3
|
+
PUBLISH_TIMESTAMP: 1780656122892 || Date.now(),
|
|
4
|
+
VERSION: "23.0.0-canary.3" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColumnSizingMap, LayoutRowSelection } from '../../AdaptableState/LayoutState';
|
|
1
|
+
import { ColumnSizingMap, LayoutRowSelection, RowGroupDisplayType } from '../../AdaptableState/LayoutState';
|
|
2
2
|
import { XOR } from '../../Utilities/Extensions/TypeExtensions';
|
|
3
3
|
/**
|
|
4
4
|
* Defines how a Column is sorted
|
|
@@ -17,7 +17,7 @@ export interface BaseLayoutModel {
|
|
|
17
17
|
/**
|
|
18
18
|
* @defaultValue 'single'
|
|
19
19
|
*/
|
|
20
|
-
RowGroupDisplayType?:
|
|
20
|
+
RowGroupDisplayType?: RowGroupDisplayType;
|
|
21
21
|
/**
|
|
22
22
|
* Those are not actually used by the LayoutManager,
|
|
23
23
|
* but we need to keep them here so we can give the layout
|
|
@@ -2,6 +2,7 @@ import { debounce, DeepMap } from '@infinite-table/infinite-react';
|
|
|
2
2
|
import { isPivotLayoutModel } from './isPivotLayoutModel';
|
|
3
3
|
import { LMEmitter } from './LMEmitter';
|
|
4
4
|
import { AUTO_GROUP_COLUMN_ID__MULTI_PREFIX, AUTO_GROUP_COLUMN_ID__SINGLE, normalizeLayoutModel, normalizePivotLayoutModel, normalizeTableLayoutModel, } from './normalizeLayoutModel';
|
|
5
|
+
import { gridOptionToRowGroupDisplayType, rowGroupDisplayTypeToGridOption, } from './rowGroupDisplayType';
|
|
5
6
|
import { getChanges, isLayoutEqual } from './isLayoutEqual';
|
|
6
7
|
import { simplifyLayoutModel, simplifyPivotLayoutModel, simplifyTableLayoutModel, } from './simplifyLayoutModel';
|
|
7
8
|
import { sortColumnIdsByOrder } from './sortColumnIdsByOrder';
|
|
@@ -552,7 +553,7 @@ export class LayoutManager extends LMEmitter {
|
|
|
552
553
|
if (groupDisplayType === 'singleColumn') {
|
|
553
554
|
colsInLayout.add(AUTO_GROUP_COLUMN_ID__SINGLE);
|
|
554
555
|
}
|
|
555
|
-
else {
|
|
556
|
+
else if (groupDisplayType === 'multipleColumns') {
|
|
556
557
|
this.currentLayout.RowGroupedColumns.forEach((colId) => {
|
|
557
558
|
colsInLayout.add(`${AUTO_GROUP_COLUMN_ID__MULTI_PREFIX}${colId}`);
|
|
558
559
|
});
|
|
@@ -760,7 +761,7 @@ export class LayoutManager extends LMEmitter {
|
|
|
760
761
|
ColumnGroupValues,
|
|
761
762
|
GrandTotalRow: this.gridApi.getGridOption('grandTotalRow'),
|
|
762
763
|
SuppressAggFuncInHeader: this.gridApi.getGridOption('suppressAggFuncInHeader'),
|
|
763
|
-
RowGroupDisplayType: this.gridApi.getGridOption('groupDisplayType')
|
|
764
|
+
RowGroupDisplayType: gridOptionToRowGroupDisplayType(this.gridApi.getGridOption('groupDisplayType')),
|
|
764
765
|
RowSelection: this.getRowSelectionFromGrid(),
|
|
765
766
|
});
|
|
766
767
|
return layout;
|
|
@@ -1314,7 +1315,7 @@ export class LayoutManager extends LMEmitter {
|
|
|
1314
1315
|
// this.gridApi.applyColumnState(state);
|
|
1315
1316
|
const hasGroupedColumns = layout.RowGroupedColumns && layout.RowGroupedColumns.length;
|
|
1316
1317
|
if (hasGroupedColumns) {
|
|
1317
|
-
const displayTypeFromLayout = layout.RowGroupDisplayType
|
|
1318
|
+
const displayTypeFromLayout = rowGroupDisplayTypeToGridOption(layout.RowGroupDisplayType);
|
|
1318
1319
|
const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
|
|
1319
1320
|
if (groupDisplayType !== displayTypeFromLayout) {
|
|
1320
1321
|
this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);
|
|
@@ -1677,7 +1678,7 @@ export class LayoutManager extends LMEmitter {
|
|
|
1677
1678
|
this.applyPivotTotals(layout);
|
|
1678
1679
|
const hasGroupedColumns = layout.PivotGroupedColumns && !!layout.PivotGroupedColumns.length;
|
|
1679
1680
|
if (hasGroupedColumns) {
|
|
1680
|
-
const displayTypeFromLayout = layout.RowGroupDisplayType
|
|
1681
|
+
const displayTypeFromLayout = rowGroupDisplayTypeToGridOption(layout.RowGroupDisplayType);
|
|
1681
1682
|
const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
|
|
1682
1683
|
if (groupDisplayType !== displayTypeFromLayout) {
|
|
1683
1684
|
this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isPivotLayoutModel } from './isPivotLayoutModel';
|
|
2
|
+
import { isRowGroupAutoColumnId } from './rowGroupDisplayType';
|
|
2
3
|
export const AUTO_GROUP_COLUMN_ID__SINGLE = 'ag-Grid-AutoColumn';
|
|
3
4
|
export const AUTO_GROUP_COLUMN_ID__MULTI_PREFIX = 'ag-Grid-AutoColumn-';
|
|
4
5
|
export function normalizeTableLayoutModel(layout, options) {
|
|
@@ -60,7 +61,10 @@ export function normalizeTableLayoutModel(layout, options) {
|
|
|
60
61
|
displayType = displayType || 'single';
|
|
61
62
|
layout.RowGroupDisplayType = displayType;
|
|
62
63
|
}
|
|
63
|
-
if (displayType === '
|
|
64
|
+
if (displayType === 'groupRows') {
|
|
65
|
+
layout.TableColumns = layout.TableColumns.filter((colId) => !isRowGroupAutoColumnId(colId));
|
|
66
|
+
}
|
|
67
|
+
else if (displayType === 'single') {
|
|
64
68
|
if (!ColumnOrderSet.has(AUTO_GROUP_COLUMN_ID__SINGLE)) {
|
|
65
69
|
layout.TableColumns = [AUTO_GROUP_COLUMN_ID__SINGLE, ...layout.TableColumns];
|
|
66
70
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GridOptions } from 'ag-grid-enterprise';
|
|
2
|
+
import { RowGroupDisplayType } from '../../AdaptableState/LayoutState';
|
|
3
|
+
export type { RowGroupDisplayType };
|
|
4
|
+
export declare function rowGroupDisplayTypeToGridOption(displayType: RowGroupDisplayType | undefined): GridOptions['groupDisplayType'];
|
|
5
|
+
export declare function gridOptionToRowGroupDisplayType(groupDisplayType: GridOptions['groupDisplayType'] | undefined): RowGroupDisplayType;
|
|
6
|
+
export declare function isRowGroupAutoColumnId(colId: string): boolean;
|