@payloadcms/ui 4.0.0-canary.2 → 4.0.0-internal.011fd46
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/css/colors.css +3 -0
- package/dist/css/design-tokens.css +5 -0
- package/dist/css/elevations.css +4 -0
- package/dist/elements/AppHeader/index.d.ts +3 -2
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +2 -2
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ColumnSelection/Popup.d.ts +12 -0
- package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -0
- package/dist/elements/{ColumnSelector/index.js → ColumnSelection/Popup.js} +23 -12
- package/dist/elements/ColumnSelection/Popup.js.map +1 -0
- package/dist/elements/ColumnSelection/index.d.ts +10 -0
- package/dist/elements/ColumnSelection/index.d.ts.map +1 -0
- package/dist/elements/{ColumnsButton → ColumnSelection}/index.js +23 -17
- package/dist/elements/ColumnSelection/index.js.map +1 -0
- package/dist/elements/DocumentControls/index.css +7 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -2
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +5 -3
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/GroupBy/Popup.d.ts +21 -0
- package/dist/elements/GroupBy/Popup.d.ts.map +1 -0
- package/dist/elements/GroupBy/Popup.js +269 -0
- package/dist/elements/GroupBy/Popup.js.map +1 -0
- package/dist/elements/GroupBy/index.d.ts +12 -0
- package/dist/elements/GroupBy/index.d.ts.map +1 -0
- package/dist/elements/GroupBy/index.js +91 -0
- package/dist/elements/GroupBy/index.js.map +1 -0
- package/dist/elements/ListColumnSelectionButton/index.d.ts +11 -0
- package/dist/elements/ListColumnSelectionButton/index.d.ts.map +1 -0
- package/dist/elements/ListColumnSelectionButton/index.js +37 -0
- package/dist/elements/ListColumnSelectionButton/index.js.map +1 -0
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +7 -7
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListGroupByButton/index.d.ts +12 -0
- package/dist/elements/ListGroupByButton/index.d.ts.map +1 -0
- package/dist/elements/ListGroupByButton/index.js +55 -0
- package/dist/elements/ListGroupByButton/index.js.map +1 -0
- package/dist/elements/ListWhereBuilder/index.d.ts +16 -0
- package/dist/elements/ListWhereBuilder/index.d.ts.map +1 -0
- package/dist/elements/ListWhereBuilder/index.js +62 -0
- package/dist/elements/ListWhereBuilder/index.js.map +1 -0
- package/dist/elements/Popup/PopupButtonList/index.css +5 -0
- package/dist/elements/Popup/PopupGroupLabel/index.css +8 -5
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +42 -11
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts +2 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts +2 -6
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +0 -38
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/{index.scss → index.css} +1 -3
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +77 -48
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +12 -21
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/Heading/index.css +52 -0
- package/dist/elements/QueryPresets/fields/Heading/index.d.ts +7 -0
- package/dist/elements/QueryPresets/fields/Heading/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/fields/Heading/index.js +31 -0
- package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +24 -23
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/fields.css +23 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts +5 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.js +10 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.js.map +1 -0
- package/dist/elements/ReactSelect/getMenuListStyles.d.ts +6 -0
- package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -0
- package/dist/elements/ReactSelect/getMenuListStyles.js +7 -0
- package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -0
- package/dist/elements/ReactSelect/index.css +0 -1
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +168 -148
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +1 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +2 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SortColumn/index.css +1 -1
- package/dist/elements/Table/index.css +24 -2
- package/dist/elements/Toasts/fieldErrors.d.ts +1 -0
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +25 -9
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Toasts/index.css +5 -0
- package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +2 -4
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +0 -38
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts +6 -2
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js +15 -10
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.d.ts +2 -1
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +8 -5
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -0
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +17 -2
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts +4 -3
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +71 -62
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +6 -5
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/exports/client/index.d.ts +2 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +26 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/RadioGroup/index.css +6 -0
- package/dist/icons/Check/index.css +1 -2
- package/dist/icons/Check/index.js +1 -1
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Warning/index.css +1 -7
- package/dist/icons/Warning/index.d.ts +1 -1
- package/dist/icons/Warning/index.d.ts.map +1 -1
- package/dist/icons/Warning/index.js +11 -16
- package/dist/icons/Warning/index.js.map +1 -1
- package/dist/providers/ToastContainer/index.css +208 -0
- package/dist/providers/ToastContainer/index.d.ts +1 -0
- package/dist/providers/ToastContainer/index.d.ts.map +1 -1
- package/dist/providers/ToastContainer/index.js +19 -6
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/scss/app.scss +7 -2
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +51 -9
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.js +1 -1
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +4 -4
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js +4 -4
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +3 -3
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.js +9 -6
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +1 -1
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Versions/index.css +0 -4
- package/package.json +5 -5
- package/dist/elements/ColumnSelector/index.d.ts +0 -9
- package/dist/elements/ColumnSelector/index.d.ts.map +0 -1
- package/dist/elements/ColumnSelector/index.js.map +0 -1
- package/dist/elements/ColumnsButton/index.d.ts +0 -7
- package/dist/elements/ColumnsButton/index.d.ts.map +0 -1
- package/dist/elements/ColumnsButton/index.js.map +0 -1
- package/dist/elements/GroupByBuilder/index.d.ts +0 -12
- package/dist/elements/GroupByBuilder/index.d.ts.map +0 -1
- package/dist/elements/GroupByBuilder/index.js +0 -164
- package/dist/elements/GroupByBuilder/index.js.map +0 -1
- package/dist/elements/GroupByBuilder/index.scss +0 -39
- package/dist/elements/GroupByControl/index.d.ts +0 -9
- package/dist/elements/GroupByControl/index.d.ts.map +0 -1
- package/dist/elements/GroupByControl/index.js +0 -254
- package/dist/elements/GroupByControl/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -17
- package/dist/elements/QueryPresets/fields/GroupByField/index.scss +0 -17
- package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
- package/dist/scss/toasts.scss +0 -146
- /package/dist/elements/{ColumnSelector/index.css → ColumnSelection/Popup.css} +0 -0
- /package/dist/elements/{GroupByControl/index.css → GroupBy/Popup.css} +0 -0
|
@@ -4,7 +4,7 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { arrayMove } from '@dnd-kit/sortable';
|
|
6
6
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
|
-
import React, { useEffect, useId } from 'react';
|
|
7
|
+
import React, { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
8
8
|
import Select, { components as rsComponents } from 'react-select';
|
|
9
9
|
import CreatableSelect from 'react-select/creatable';
|
|
10
10
|
import { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js';
|
|
@@ -15,6 +15,8 @@ import { ShimmerEffect } from '../ShimmerEffect/index.js';
|
|
|
15
15
|
import { ClearIndicator } from './ClearIndicator/index.js';
|
|
16
16
|
import { Control } from './Control/index.js';
|
|
17
17
|
import { DropdownIndicator } from './DropdownIndicator/index.js';
|
|
18
|
+
import { getCaptureMenuScroll } from './getCaptureMenuScroll.js';
|
|
19
|
+
import { getMenuListStyles } from './getMenuListStyles.js';
|
|
18
20
|
import { Input } from './Input/index.js';
|
|
19
21
|
import { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js';
|
|
20
22
|
import { MultiValueLabel } from './MultiValueLabel/index.js';
|
|
@@ -22,10 +24,6 @@ import { MultiValueRemove } from './MultiValueRemove/index.js';
|
|
|
22
24
|
import { SingleValue } from './SingleValue/index.js';
|
|
23
25
|
import { ValueContainer } from './ValueContainer/index.js';
|
|
24
26
|
import './index.css';
|
|
25
|
-
const createOption = label => ({
|
|
26
|
-
label,
|
|
27
|
-
value: label
|
|
28
|
-
});
|
|
29
27
|
// Propagates the nearest scoped theme (via ThemeProvider) into the portal div,
|
|
30
28
|
// falling back to the global theme. Ensures dropdown menus portaled to
|
|
31
29
|
// document.body inherit the correct theme (e.g. dark Popup).
|
|
@@ -52,23 +50,28 @@ function ThemedMenuPortal(props) {
|
|
|
52
50
|
}
|
|
53
51
|
return t1;
|
|
54
52
|
}
|
|
53
|
+
const DEFAULT_MAX_MENU_HEIGHT = 300;
|
|
54
|
+
const MIN_USABLE_MENU_HEIGHT = 140;
|
|
55
|
+
const MENU_VIEWPORT_GAP = 16 // space between the control and the edge of the window
|
|
56
|
+
;
|
|
55
57
|
const SelectAdapter = props => {
|
|
56
58
|
const {
|
|
57
59
|
i18n,
|
|
58
60
|
t
|
|
59
61
|
} = useTranslation();
|
|
60
|
-
const [inputValue, setInputValue] =
|
|
62
|
+
const [inputValue, setInputValue] = useState('') // for creatable select
|
|
61
63
|
;
|
|
62
64
|
const uuid = useId();
|
|
63
|
-
const [hasMounted, setHasMounted] =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
const [hasMounted, setHasMounted] = useState(false);
|
|
66
|
+
const [isMenuOpen, setIsMenuOpen] = useState(false);
|
|
67
|
+
const [maxMenuHeight, setMaxMenuHeight] = useState(DEFAULT_MAX_MENU_HEIGHT);
|
|
68
|
+
const [menuPlacement, setMenuPlacement] = useState('auto');
|
|
69
|
+
const containerRef = useRef(null);
|
|
67
70
|
const {
|
|
71
|
+
captureMenuScroll: captureMenuScrollProp,
|
|
68
72
|
className,
|
|
69
73
|
classNames: externalClassNames,
|
|
70
74
|
components,
|
|
71
|
-
customProps,
|
|
72
75
|
disabled = false,
|
|
73
76
|
filterOption = undefined,
|
|
74
77
|
getOptionValue,
|
|
@@ -91,46 +94,145 @@ const SelectAdapter = props => {
|
|
|
91
94
|
} = props;
|
|
92
95
|
const menuPortalTarget = menuPortalTargetProp === undefined ? typeof document !== 'undefined' ? document.body : null : menuPortalTargetProp;
|
|
93
96
|
const menuPosition = menuPositionProp ?? (menuPortalTarget ? 'fixed' : undefined);
|
|
97
|
+
const captureMenuScroll = getCaptureMenuScroll({
|
|
98
|
+
captureMenuScroll: captureMenuScrollProp,
|
|
99
|
+
menuPortalTarget
|
|
100
|
+
});
|
|
101
|
+
const updateMenuViewportSettings = useCallback(() => {
|
|
102
|
+
if (!isMenuOpen || typeof window === 'undefined') {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const controlEl = containerRef.current?.querySelector('.rs__control');
|
|
106
|
+
if (!controlEl) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const controlRect = controlEl.getBoundingClientRect();
|
|
110
|
+
const availableBelow = Math.max(window.innerHeight - controlRect.bottom - MENU_VIEWPORT_GAP, 0);
|
|
111
|
+
const availableAbove = Math.max(controlRect.top - MENU_VIEWPORT_GAP, 0);
|
|
112
|
+
const shouldOpenTop = availableBelow < MIN_USABLE_MENU_HEIGHT && availableAbove > availableBelow;
|
|
113
|
+
const availableHeight = shouldOpenTop ? availableAbove : availableBelow;
|
|
114
|
+
setMenuPlacement(shouldOpenTop ? 'top' : 'bottom');
|
|
115
|
+
setMaxMenuHeight(Math.max(Math.min(Math.floor(availableHeight), DEFAULT_MAX_MENU_HEIGHT), 1));
|
|
116
|
+
}, [isMenuOpen]);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
setHasMounted(true);
|
|
119
|
+
}, []);
|
|
120
|
+
useLayoutEffect(() => {
|
|
121
|
+
if (!isMenuOpen) {
|
|
122
|
+
setMenuPlacement('auto');
|
|
123
|
+
setMaxMenuHeight(DEFAULT_MAX_MENU_HEIGHT);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
updateMenuViewportSettings();
|
|
127
|
+
window.addEventListener('resize', updateMenuViewportSettings);
|
|
128
|
+
window.addEventListener('scroll', updateMenuViewportSettings, true);
|
|
129
|
+
return () => {
|
|
130
|
+
window.removeEventListener('resize', updateMenuViewportSettings);
|
|
131
|
+
window.removeEventListener('scroll', updateMenuViewportSettings, true);
|
|
132
|
+
};
|
|
133
|
+
}, [isMenuOpen, updateMenuViewportSettings]);
|
|
94
134
|
// Debounce the loading state so that fast option fetches (e.g. relationship
|
|
95
135
|
// fields that resolve almost instantly) don't cause the clear indicator to
|
|
96
136
|
// flash to react-select's loading indicator and back. The loading indicator
|
|
97
137
|
// only appears once a load takes longer than the threshold below.
|
|
98
|
-
const [isLoadingDebounced, setIsLoadingDebounced] =
|
|
138
|
+
const [isLoadingDebounced, setIsLoadingDebounced] = useState(false);
|
|
99
139
|
useDebouncedEffect(() => {
|
|
100
140
|
setIsLoadingDebounced(isLoading);
|
|
101
141
|
}, [isLoading], 250);
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
142
|
+
const handleMenuOpen = () => {
|
|
143
|
+
setIsMenuOpen(true);
|
|
144
|
+
requestAnimationFrame(updateMenuViewportSettings);
|
|
145
|
+
onMenuOpen?.();
|
|
146
|
+
};
|
|
147
|
+
const handleMenuClose = () => {
|
|
148
|
+
setIsMenuOpen(false);
|
|
149
|
+
onMenuClose?.();
|
|
150
|
+
};
|
|
151
|
+
const menuClassName = useCallback(state => {
|
|
152
|
+
const placement = state.placement ? `rs__menu--placement-${state.placement}` : '';
|
|
153
|
+
const external = externalClassNames?.menu?.(state) ?? '';
|
|
154
|
+
return [placement, external].filter(Boolean).join(' ');
|
|
155
|
+
}, [externalClassNames]);
|
|
156
|
+
const selectClassNames = useMemo(() => ({
|
|
157
|
+
...externalClassNames,
|
|
158
|
+
menu: menuClassName,
|
|
159
|
+
menuList: state_0 => {
|
|
160
|
+
const external_0 = externalClassNames?.menuList?.(state_0) ?? '';
|
|
161
|
+
return ['scrollbar-thin', external_0].filter(Boolean).join(' ');
|
|
162
|
+
}
|
|
163
|
+
}), [externalClassNames, menuClassName]);
|
|
164
|
+
const selectComponents = useMemo(() => ({
|
|
165
|
+
ClearIndicator,
|
|
166
|
+
Control,
|
|
167
|
+
DropdownIndicator,
|
|
168
|
+
Input,
|
|
169
|
+
MenuPortal: ThemedMenuPortal,
|
|
170
|
+
MultiValue,
|
|
171
|
+
MultiValueLabel,
|
|
172
|
+
MultiValueRemove,
|
|
173
|
+
SingleValue,
|
|
174
|
+
ValueContainer,
|
|
175
|
+
...components
|
|
176
|
+
}), [components]);
|
|
177
|
+
const sharedSelectProps = {
|
|
178
|
+
captureMenuScroll,
|
|
179
|
+
className: [className, 'react-select', showError && 'react-select--error'].filter(Boolean).join(' '),
|
|
180
|
+
classNamePrefix: 'rs',
|
|
181
|
+
classNames: selectClassNames,
|
|
182
|
+
components: selectComponents,
|
|
183
|
+
filterOption,
|
|
184
|
+
instanceId: uuid,
|
|
185
|
+
isClearable,
|
|
186
|
+
isDisabled: disabled,
|
|
187
|
+
isLoading: isLoadingDebounced,
|
|
188
|
+
isSearchable,
|
|
189
|
+
loadingMessage: () => t('general:loading') + '...',
|
|
190
|
+
maxMenuHeight,
|
|
191
|
+
menuPlacement,
|
|
192
|
+
menuPortalTarget,
|
|
193
|
+
menuPosition,
|
|
194
|
+
menuShouldBlockScroll: false,
|
|
195
|
+
noOptionsMessage,
|
|
196
|
+
onChange,
|
|
197
|
+
onMenuClose: handleMenuClose,
|
|
198
|
+
onMenuOpen: handleMenuOpen,
|
|
199
|
+
options,
|
|
200
|
+
placeholder: getTranslation(placeholder, i18n),
|
|
201
|
+
styles: {
|
|
202
|
+
// Remove the default react-select z-index from the menu so that our custom
|
|
203
|
+
// z-index in the "payload-default" css layer can take effect, in such a way
|
|
204
|
+
// that end users can easily override it as with other styles.
|
|
205
|
+
menu: (rsStyles, state_1) => ({
|
|
206
|
+
...rsStyles,
|
|
207
|
+
zIndex: undefined,
|
|
208
|
+
...externalStyles?.menu?.(rsStyles, state_1)
|
|
209
|
+
}),
|
|
210
|
+
// When portaling to document.body, the portal container needs an explicit
|
|
211
|
+
// z-index so the menu appears above drawers and dialogs. unstyled={true}
|
|
212
|
+
// strips react-select's default zIndex:9999 from the portal container.
|
|
213
|
+
...(menuPortalTarget && {
|
|
214
|
+
menuPortal: (rsStyles_0, state_2) => ({
|
|
215
|
+
...rsStyles_0,
|
|
216
|
+
zIndex: 9999,
|
|
217
|
+
...externalStyles?.menuPortal?.(rsStyles_0, state_2)
|
|
218
|
+
})
|
|
219
|
+
}),
|
|
220
|
+
// Remove the default react-select min-height so our CSS can control it
|
|
221
|
+
control: (rsStyles_1, state_3) => ({
|
|
222
|
+
...rsStyles_1,
|
|
223
|
+
minHeight: undefined,
|
|
224
|
+
...externalStyles?.control?.(rsStyles_1, state_3)
|
|
225
|
+
}),
|
|
226
|
+
// Allow external option styles to override emotion defaults
|
|
227
|
+
option: (rsStyles_2, state_4) => ({
|
|
228
|
+
...rsStyles_2,
|
|
229
|
+
...externalStyles?.option?.(rsStyles_2, state_4)
|
|
230
|
+
}),
|
|
231
|
+
// Keep react-select's computed maxHeight so the menu can fit available
|
|
232
|
+
// viewport space near screen edges (instead of using a fixed class value).
|
|
233
|
+
menuList: getMenuListStyles(externalStyles)
|
|
234
|
+
},
|
|
235
|
+
unstyled: true
|
|
134
236
|
};
|
|
135
237
|
if (!hasMounted) {
|
|
136
238
|
return /*#__PURE__*/_jsx(ShimmerEffect, {
|
|
@@ -138,57 +240,14 @@ const SelectAdapter = props => {
|
|
|
138
240
|
});
|
|
139
241
|
}
|
|
140
242
|
if (!isCreatable) {
|
|
141
|
-
return /*#__PURE__*/_jsx(
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
menu: state_3 => {
|
|
150
|
-
const placement = state_3.placement ? `rs__menu--placement-${state_3.placement}` : '';
|
|
151
|
-
const external = externalClassNames?.menu?.(state_3) ?? '';
|
|
152
|
-
return [placement, external].filter(Boolean).join(' ');
|
|
153
|
-
},
|
|
154
|
-
menuList: state_4 => {
|
|
155
|
-
const external_0 = externalClassNames?.menuList?.(state_4) ?? '';
|
|
156
|
-
return ['scrollbar-thin', external_0].filter(Boolean).join(' ');
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
components: {
|
|
160
|
-
ClearIndicator,
|
|
161
|
-
Control,
|
|
162
|
-
DropdownIndicator,
|
|
163
|
-
Input,
|
|
164
|
-
MenuPortal: ThemedMenuPortal,
|
|
165
|
-
MultiValue,
|
|
166
|
-
MultiValueLabel,
|
|
167
|
-
MultiValueRemove,
|
|
168
|
-
SingleValue,
|
|
169
|
-
ValueContainer,
|
|
170
|
-
...components
|
|
171
|
-
},
|
|
172
|
-
filterOption: filterOption,
|
|
173
|
-
getOptionValue: getOptionValue,
|
|
174
|
-
instanceId: uuid,
|
|
175
|
-
isClearable: isClearable,
|
|
176
|
-
isDisabled: disabled,
|
|
177
|
-
isLoading: isLoadingDebounced,
|
|
178
|
-
isSearchable: isSearchable,
|
|
179
|
-
loadingMessage: loadingMessage,
|
|
180
|
-
menuPlacement: "auto",
|
|
181
|
-
menuPortalTarget: menuPortalTarget,
|
|
182
|
-
menuPosition: menuPosition,
|
|
183
|
-
noOptionsMessage: noOptionsMessage,
|
|
184
|
-
onChange: onChange,
|
|
185
|
-
onMenuClose: onMenuClose,
|
|
186
|
-
onMenuOpen: onMenuOpen,
|
|
187
|
-
options: options,
|
|
188
|
-
placeholder: getTranslation(placeholder, i18n),
|
|
189
|
-
styles: styles,
|
|
190
|
-
unstyled: true,
|
|
191
|
-
value: value
|
|
243
|
+
return /*#__PURE__*/_jsx("div", {
|
|
244
|
+
ref: containerRef,
|
|
245
|
+
children: /*#__PURE__*/_jsx(Select, {
|
|
246
|
+
...props,
|
|
247
|
+
...sharedSelectProps,
|
|
248
|
+
getOptionValue: getOptionValue,
|
|
249
|
+
value: value
|
|
250
|
+
})
|
|
192
251
|
});
|
|
193
252
|
}
|
|
194
253
|
const handleKeyDown = event => {
|
|
@@ -213,7 +272,10 @@ const SelectAdapter = props => {
|
|
|
213
272
|
switch (event.key) {
|
|
214
273
|
case 'Enter':
|
|
215
274
|
case 'Tab':
|
|
216
|
-
onChange([...value,
|
|
275
|
+
onChange([...value, {
|
|
276
|
+
label: inputValue,
|
|
277
|
+
value: inputValue
|
|
278
|
+
}]);
|
|
217
279
|
setInputValue('');
|
|
218
280
|
event.preventDefault();
|
|
219
281
|
break;
|
|
@@ -221,58 +283,16 @@ const SelectAdapter = props => {
|
|
|
221
283
|
break;
|
|
222
284
|
}
|
|
223
285
|
};
|
|
224
|
-
return /*#__PURE__*/_jsx(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
return [placement_0, external_1].filter(Boolean).join(' ');
|
|
235
|
-
},
|
|
236
|
-
menuList: state_6 => {
|
|
237
|
-
const external_2 = externalClassNames?.menuList?.(state_6) ?? '';
|
|
238
|
-
return ['scrollbar-thin', external_2].filter(Boolean).join(' ');
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
components: {
|
|
242
|
-
ClearIndicator,
|
|
243
|
-
Control,
|
|
244
|
-
DropdownIndicator,
|
|
245
|
-
Input,
|
|
246
|
-
MenuPortal: ThemedMenuPortal,
|
|
247
|
-
MultiValue,
|
|
248
|
-
MultiValueLabel,
|
|
249
|
-
MultiValueRemove,
|
|
250
|
-
SingleValue,
|
|
251
|
-
ValueContainer,
|
|
252
|
-
...components
|
|
253
|
-
},
|
|
254
|
-
filterOption: filterOption,
|
|
255
|
-
inputValue: inputValue,
|
|
256
|
-
instanceId: uuid,
|
|
257
|
-
isClearable: isClearable,
|
|
258
|
-
isDisabled: disabled,
|
|
259
|
-
isLoading: isLoadingDebounced,
|
|
260
|
-
isSearchable: isSearchable,
|
|
261
|
-
loadingMessage: loadingMessage,
|
|
262
|
-
menuPlacement: "auto",
|
|
263
|
-
menuPortalTarget: menuPortalTarget,
|
|
264
|
-
menuPosition: menuPosition,
|
|
265
|
-
noOptionsMessage: noOptionsMessage,
|
|
266
|
-
onChange: onChange,
|
|
267
|
-
onInputChange: newValue => setInputValue(newValue),
|
|
268
|
-
onKeyDown: handleKeyDown,
|
|
269
|
-
onMenuClose: onMenuClose,
|
|
270
|
-
onMenuOpen: onMenuOpen,
|
|
271
|
-
options: options,
|
|
272
|
-
placeholder: getTranslation(placeholder, i18n),
|
|
273
|
-
styles: styles,
|
|
274
|
-
unstyled: true,
|
|
275
|
-
value: value
|
|
286
|
+
return /*#__PURE__*/_jsx("div", {
|
|
287
|
+
ref: containerRef,
|
|
288
|
+
children: /*#__PURE__*/_jsx(CreatableSelect, {
|
|
289
|
+
...props,
|
|
290
|
+
...sharedSelectProps,
|
|
291
|
+
inputValue: inputValue,
|
|
292
|
+
onInputChange: newValue => setInputValue(newValue),
|
|
293
|
+
onKeyDown: handleKeyDown,
|
|
294
|
+
value: value
|
|
295
|
+
})
|
|
276
296
|
});
|
|
277
297
|
};
|
|
278
298
|
const SortableSelect = props => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","arrayMove","getTranslation","React","useEffect","useId","Select","components","rsComponents","CreatableSelect","useDebouncedEffect","useTheme","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","ThemedMenuPortal","props","$","theme","menuPortalTheme","selectProps","customProps","t0","t1","_jsx","MenuPortal","innerProps","SelectAdapter","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","classNames","externalClassNames","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","menuPortalTarget","menuPortalTargetProp","menuPosition","menuPositionProp","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","styles","externalStyles","document","body","isLoadingDebounced","setIsLoadingDebounced","loadingMessage","classes","filter","Boolean","join","menu","rsStyles","state","zIndex","menuPortal","control","minHeight","option","height","captureMenuScroll","classNamePrefix","placement","external","menuList","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","nativeEvent","isComposing","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { JSX, KeyboardEventHandler } from 'react'\nimport type { GroupBase, MenuListProps, MenuProps, StylesConfig } from 'react-select'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select, { components as rsComponents } from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.css'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\n// Propagates the nearest scoped theme (via ThemeProvider) into the portal div,\n// falling back to the global theme. Ensures dropdown menus portaled to\n// document.body inherit the correct theme (e.g. dark Popup).\nfunction ThemedMenuPortal<Opt, IsMulti extends boolean, Group extends GroupBase<Opt>>(\n props: React.ComponentProps<typeof rsComponents.MenuPortal<Opt, IsMulti, Group>>,\n) {\n const { theme } = useTheme()\n const menuPortalTheme = (props.selectProps as any)?.customProps?.menuPortalTheme\n return (\n <rsComponents.MenuPortal\n {...props}\n innerProps={{ 'data-theme': menuPortalTheme ?? theme } as JSX.IntrinsicElements['div']}\n />\n )\n}\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n classNames: externalClassNames,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n menuPortalTarget: menuPortalTargetProp,\n menuPosition: menuPositionProp,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n styles: externalStyles,\n value,\n } = props\n\n const menuPortalTarget =\n menuPortalTargetProp === undefined\n ? typeof document !== 'undefined'\n ? document.body\n : null\n : menuPortalTargetProp\n\n const menuPosition = menuPositionProp ?? (menuPortalTarget ? 'fixed' : undefined)\n\n // Debounce the loading state so that fast option fetches (e.g. relationship\n // fields that resolve almost instantly) don't cause the clear indicator to\n // flash to react-select's loading indicator and back. The loading indicator\n // only appears once a load takes longer than the threshold below.\n const [isLoadingDebounced, setIsLoadingDebounced] = React.useState(false)\n\n useDebouncedEffect(\n () => {\n setIsLoadingDebounced(isLoading)\n },\n [isLoading],\n 250,\n )\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n const styles: StylesConfig<Option> = {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles, state) => ({\n ...rsStyles,\n zIndex: undefined,\n ...externalStyles?.menu?.(rsStyles, state),\n }),\n // When portaling to document.body, the portal container needs an explicit\n // z-index so the menu appears above drawers and dialogs. unstyled={true}\n // strips react-select's default zIndex:9999 from the portal container.\n ...(menuPortalTarget && {\n menuPortal: (rsStyles, state) => ({\n ...rsStyles,\n zIndex: 9999,\n ...externalStyles?.menuPortal?.(rsStyles, state),\n }),\n }),\n // Remove the default react-select min-height so our CSS can control it\n control: (rsStyles, state) => ({\n ...rsStyles,\n minHeight: undefined,\n ...externalStyles?.control?.(rsStyles, state),\n }),\n // Allow external option styles to override emotion defaults\n option: (rsStyles, state) => ({\n ...rsStyles,\n ...externalStyles?.option?.(rsStyles, state),\n }),\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"var(--field-min-height)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select<Option, boolean, GroupBase<Option>>\n captureMenuScroll\n customProps={customProps}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n classNames={{\n ...externalClassNames,\n menu: (state: MenuProps<Option, boolean, GroupBase<Option>>) => {\n const placement = state.placement ? `rs__menu--placement-${state.placement}` : ''\n const external = externalClassNames?.menu?.(state) ?? ''\n return [placement, external].filter(Boolean).join(' ')\n },\n menuList: (state: MenuListProps<Option, boolean, GroupBase<Option>>) => {\n const external = externalClassNames?.menuList?.(state) ?? ''\n return ['scrollbar-thin', external].filter(Boolean).join(' ')\n },\n }}\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MenuPortal: ThemedMenuPortal,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isLoading={isLoadingDebounced}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n menuPortalTarget={menuPortalTarget}\n menuPosition={menuPosition}\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n if (event.nativeEvent.isComposing) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect<Option, boolean, GroupBase<Option>>\n captureMenuScroll\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n classNames={{\n ...externalClassNames,\n menu: (state: MenuProps<Option, boolean, GroupBase<Option>>) => {\n const placement = state.placement ? `rs__menu--placement-${state.placement}` : ''\n const external = externalClassNames?.menu?.(state) ?? ''\n return [placement, external].filter(Boolean).join(' ')\n },\n menuList: (state: MenuListProps<Option, boolean, GroupBase<Option>>) => {\n const external = externalClassNames?.menuList?.(state) ?? ''\n return ['scrollbar-thin', external].filter(Boolean).join(' ')\n },\n }}\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MenuPortal: ThemedMenuPortal,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isLoading={isLoadingDebounced}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n menuPortalTarget={menuPortalTarget}\n menuPosition={menuPosition}\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,SAAS,EAAEC,KAAK,QAAQ;AACxC,OAAOC,MAAA,IAAUC,UAAA,IAAcC,YAAY,QAAQ;AACnD,OAAOC,eAAA,MAAqB;AAK5B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,KAAK,QAAQ;AACtB,SAASC,6BAA6B,EAAEC,UAAU,QAAQ;AAC1D,SAASC,eAAe,QAAQ;AAChC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,YAAA,GAAgBC,KAAA,KAAmB;EACvCA,KAAA;EACAC,KAAA,EAAOD;AACT;AAEA;AACA;AACA;AACA,SAAAE,iBAAAC,KAAA;EAAA,MAAAC,CAAA,GAAA9B,EAAA;EAGE;IAAA+B;EAAA,IAAkBpB,QAAA;EAClB,MAAAqB,eAAA,GAAyBH,KAAA,CAAAI,WAAA,EAAAC,WAAA,EAAAF,eAAA;EAIO,MAAAG,EAAA,GAAAH,eAAA,IAAmBD,KAAA;EAAA,IAAAK,EAAA;EAAA,IAAAN,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAK,EAAA;IAFjDC,EAAA,GAAAC,IAAA,CAAA7B,YAAA,CAAA8B,UAAA;MAAA,GACMT,KAAK;MAAAU,UAAA;QAAA,cACmBJ;MAAmB;IAAA,C;;;;;;;SAFjDC,E;;AAOJ,MAAMI,aAAA,GAAoDX,KAAA;EACxD,MAAM;IAAEY,IAAI;IAAEC;EAAC,CAAE,GAAG9B,cAAA;EACpB,MAAM,CAAC+B,UAAA,EAAYC,aAAA,CAAc,GAAGzC,KAAA,CAAM0C,QAAQ,CAAC,IAAI;AAAA;EACvD,MAAMC,IAAA,GAAOzC,KAAA;EACb,MAAM,CAAC0C,UAAA,EAAYC,aAAA,CAAc,GAAG7C,KAAA,CAAM0C,QAAQ,CAAC;EAEnDzC,SAAA,CAAU;IACR4C,aAAA,CAAc;EAChB,GAAG,EAAE;EAEL,MAAM;IACJC,SAAS;IACTC,UAAA,EAAYC,kBAAkB;IAC9B5C,UAAU;IACV2B,WAAW;IACXkB,QAAA,GAAW,KAAK;IAChBC,YAAA,GAAeC,SAAS;IACxBC,cAAc;IACdC,WAAA,GAAc,IAAI;IAClBC,WAAW;IACXC,SAAS;IACTC,YAAA,GAAe,IAAI;IACnBC,gBAAA,EAAkBC,oBAAoB;IACtCC,YAAA,EAAcC,gBAAgB;IAC9BC,gBAAA,GAAmBA,CAAA,KAAMtB,CAAA,CAAE,oBAAoB;IAC/CuB,UAAA,GAAa,KAAK;IAClBC,QAAQ;IACRC,WAAW;IACXC,UAAU;IACVC,OAAO;IACPC,WAAA,GAAc5B,CAAA,CAAE,sBAAsB;IACtC6B,SAAS;IACTC,MAAA,EAAQC,cAAc;IACtB9C;EAAK,CACN,GAAGE,KAAA;EAEJ,MAAM+B,gBAAA,GACJC,oBAAA,KAAyBP,SAAA,GACrB,OAAOoB,QAAA,KAAa,cAClBA,QAAA,CAASC,IAAI,GACb,OACFd,oBAAA;EAEN,MAAMC,YAAA,GAAeC,gBAAA,KAAqBH,gBAAA,GAAmB,UAAUN,SAAQ;EAE/E;EACA;EACA;EACA;EACA,MAAM,CAACsB,kBAAA,EAAoBC,qBAAA,CAAsB,GAAG1E,KAAA,CAAM0C,QAAQ,CAAC;EAEnEnC,kBAAA,CACE;IACEmE,qBAAA,CAAsBnB,SAAA;EACxB,GACA,CAACA,SAAA,CAAU,EACX;EAGF,MAAMoB,cAAA,GAAiBA,CAAA,KAAMpC,CAAA,CAAE,qBAAqB;EAEpD,MAAMqC,OAAA,GAAU,CAAC9B,SAAA,EAAW,gBAAgBsB,SAAA,IAAa,sBAAsB,CAC5ES,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,MAAMV,MAAA,GAA+B;IACnC;IACA;IACA;IACAW,IAAA,EAAMA,CAACC,QAAA,EAAUC,KAAA,MAAW;MAC1B,GAAGD,QAAQ;MACXE,MAAA,EAAQhC,SAAA;MACR,GAAGmB,cAAA,EAAgBU,IAAA,GAAOC,QAAA,EAAUC,KAAA;IACtC;IACA;IACA;IACA;IACA,IAAIzB,gBAAA,IAAoB;MACtB2B,UAAA,EAAYA,CAACH,UAAA,EAAUC,OAAA,MAAW;QAChC,GAAGD,UAAQ;QACXE,MAAA,EAAQ;QACR,GAAGb,cAAA,EAAgBc,UAAA,GAAaH,UAAA,EAAUC,OAAA;MAC5C;IACF,CAAC;IACD;IACAG,OAAA,EAASA,CAACJ,UAAA,EAAUC,OAAA,MAAW;MAC7B,GAAGD,UAAQ;MACXK,SAAA,EAAWnC,SAAA;MACX,GAAGmB,cAAA,EAAgBe,OAAA,GAAUJ,UAAA,EAAUC,OAAA;IACzC;IACA;IACAK,MAAA,EAAQA,CAACN,UAAA,EAAUC,OAAA,MAAW;MAC5B,GAAGD,UAAQ;MACX,GAAGX,cAAA,EAAgBiB,MAAA,GAASN,UAAA,EAAUC,OAAA;IACxC;EACF;EAEA,IAAI,CAACtC,UAAA,EAAY;IACf,oBAAOV,IAAA,CAACvB,aAAA;MAAc6E,MAAA,EAAO;;EAC/B;EAEA,IAAI,CAAClC,WAAA,EAAa;IAChB,oBACEpB,IAAA,CAAC/B,MAAA;MACCsF,iBAAiB;MACjB1D,WAAA,EAAaA,WAAA;MACZ,GAAGL,KAAK;MACToB,SAAA,EAAW8B,OAAA;MACXc,eAAA,EAAgB;MAChB3C,UAAA,EAAY;QACV,GAAGC,kBAAkB;QACrBgC,IAAA,EAAOE,OAAA;UACL,MAAMS,SAAA,GAAYT,OAAA,CAAMS,SAAS,GAAG,uBAAuBT,OAAA,CAAMS,SAAS,EAAE,GAAG;UAC/E,MAAMC,QAAA,GAAW5C,kBAAA,EAAoBgC,IAAA,GAAOE,OAAA,KAAU;UACtD,OAAO,CAACS,SAAA,EAAWC,QAAA,CAAS,CAACf,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;QACpD;QACAc,QAAA,EAAWX,OAAA;UACT,MAAMU,UAAA,GAAW5C,kBAAA,EAAoB6C,QAAA,GAAWX,OAAA,KAAU;UAC1D,OAAO,CAAC,kBAAkBU,UAAA,CAAS,CAACf,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;QAC3D;MACF;MACA3E,UAAA,EAAY;QACVQ,cAAA;QACAC,OAAA;QACAC,iBAAA;QACAC,KAAA;QACAoB,UAAA,EAAYV,gBAAA;QACZR,UAAA;QACAC,eAAA;QACAC,gBAAA;QACAC,WAAA;QACAC,cAAA;QACA,GAAGjB;MACL;MACA8C,YAAA,EAAcA,YAAA;MACdE,cAAA,EAAgBA,cAAA;MAChB0C,UAAA,EAAYnD,IAAA;MACZU,WAAA,EAAaA,WAAA;MACb0C,UAAA,EAAY9C,QAAA;MACZM,SAAA,EAAWkB,kBAAA;MACXjB,YAAA,EAAcA,YAAA;MACdmB,cAAA,EAAgBA,cAAA;MAChBqB,aAAA,EAAc;MACdvC,gBAAA,EAAkBA,gBAAA;MAClBE,YAAA,EAAcA,YAAA;MACdE,gBAAA,EAAkBA,gBAAA;MAClBE,QAAA,EAAUA,QAAA;MACVC,WAAA,EAAaA,WAAA;MACbC,UAAA,EAAYA,UAAA;MACZC,OAAA,EAASA,OAAA;MACTC,WAAA,EAAapE,cAAA,CAAeoE,WAAA,EAAa7B,IAAA;MACzC+B,MAAA,EAAQA,MAAA;MACR4B,QAAA,EAAU;MACVzE,KAAA,EAAOA;;EAGb;EACA,MAAM0E,aAAA,GAAuCC,KAAA;IAC3C,IAAIrC,UAAA,KAAe,MAAM;MACvB,MAAMsC,cAAA,GAAiB,CACrB,OACA,UACA,aACA,SACA,cACA,aACA,WACA,YACD;MACD,MAAMC,QAAA,GAAW,CAAC,KAAKC,IAAI,CAACH,KAAA,CAAMI,GAAG;MACrC,MAAMC,WAAA,GAAcJ,cAAA,CAAeK,QAAQ,CAACN,KAAA,CAAMI,GAAG;MACrD,IAAI,CAACF,QAAA,IAAY,CAACG,WAAA,EAAa;QAC7BL,KAAA,CAAMO,cAAc;QACpB;MACF;IACF;IACA,IAAI,CAAClF,KAAA,IAAS,CAACgB,UAAA,IAAcA,UAAA,CAAWmE,IAAI,OAAO,IAAI;MACrD;IACF;IACA,IAAIzD,YAAA,IAAgB,CAACA,YAAA,CAAa,MAAMV,UAAA,GAAa;MACnD;IACF;IACA,IAAI2D,KAAA,CAAMS,WAAW,CAACC,WAAW,EAAE;MACjC;IACF;IACA,QAAQV,KAAA,CAAMI,GAAG;MACf,KAAK;MACL,KAAK;QACHxC,QAAA,CAAS,C,GAAKvC,KAAA,EAAoBF,YAAA,CAAakB,UAAA,EAAY;QAC3DC,aAAA,CAAc;QACd0D,KAAA,CAAMO,cAAc;QACpB;MACF;QACE;IACJ;EACF;EAEA,oBACExE,IAAA,CAAC5B,eAAA;IACCmF,iBAAiB;IAChB,GAAG/D,KAAK;IACToB,SAAA,EAAW8B,OAAA;IACXc,eAAA,EAAgB;IAChB3C,UAAA,EAAY;MACV,GAAGC,kBAAkB;MACrBgC,IAAA,EAAOE,OAAA;QACL,MAAMS,WAAA,GAAYT,OAAA,CAAMS,SAAS,GAAG,uBAAuBT,OAAA,CAAMS,SAAS,EAAE,GAAG;QAC/E,MAAMC,UAAA,GAAW5C,kBAAA,EAAoBgC,IAAA,GAAOE,OAAA,KAAU;QACtD,OAAO,CAACS,WAAA,EAAWC,UAAA,CAAS,CAACf,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;MACpD;MACAc,QAAA,EAAWX,OAAA;QACT,MAAMU,UAAA,GAAW5C,kBAAA,EAAoB6C,QAAA,GAAWX,OAAA,KAAU;QAC1D,OAAO,CAAC,kBAAkBU,UAAA,CAAS,CAACf,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;MAC3D;IACF;IACA3E,UAAA,EAAY;MACVQ,cAAA;MACAC,OAAA;MACAC,iBAAA;MACAC,KAAA;MACAoB,UAAA,EAAYV,gBAAA;MACZR,UAAA;MACAC,eAAA;MACAC,gBAAA;MACAC,WAAA;MACAC,cAAA;MACA,GAAGjB;IACL;IACA8C,YAAA,EAAcA,YAAA;IACdV,UAAA,EAAYA,UAAA;IACZsD,UAAA,EAAYnD,IAAA;IACZU,WAAA,EAAaA,WAAA;IACb0C,UAAA,EAAY9C,QAAA;IACZM,SAAA,EAAWkB,kBAAA;IACXjB,YAAA,EAAcA,YAAA;IACdmB,cAAA,EAAgBA,cAAA;IAChBqB,aAAA,EAAc;IACdvC,gBAAA,EAAkBA,gBAAA;IAClBE,YAAA,EAAcA,YAAA;IACdE,gBAAA,EAAkBA,gBAAA;IAClBE,QAAA,EAAUA,QAAA;IACV+C,aAAA,EAAgBC,QAAA,IAAatE,aAAA,CAAcsE,QAAA;IAC3CC,SAAA,EAAWd,aAAA;IACXlC,WAAA,EAAaA,WAAA;IACbC,UAAA,EAAYA,UAAA;IACZC,OAAA,EAASA,OAAA;IACTC,WAAA,EAAapE,cAAA,CAAeoE,WAAA,EAAa7B,IAAA;IACzC+B,MAAA,EAAQA,MAAA;IACR4B,QAAA,EAAU;IACVzE,KAAA,EAAOA;;AAGb;AAEA,MAAMyF,cAAA,GAAqDvF,KAAA;EACzD,MAAM;IAAE0B,cAAc;IAAEW,QAAQ;IAAEvC;EAAK,CAAE,GAAGE,KAAA;EAE5C,IAAIwF,YAAA,GAAyB,EAAE;EAC/B,IAAI1F,KAAA,EAAO;IACT0F,YAAA,GAAe,CAACC,KAAA,CAAMC,OAAO,CAAC5F,KAAA,IAASA,KAAA,GAAQ,CAACA,KAAA,CAAM,EAAE6F,GAAG,CAAEC,WAAA;MAC3D,OAAOtG,6BAAA,CAA8BsG,WAAA,EAAalE,cAAA;IACpD;EACF;EAEA,oBACElB,IAAA,CAACxB,iBAAA;IACCoC,SAAA,EAAU;IACVyE,GAAA,EAAKL,YAAA;IACLM,SAAA,EAAWA,CAAC;MAAEC,aAAa;MAAEC;IAAW,CAAE;MACxC,IAAIC,MAAA,GAASnG,KAAA;MACb,IAAIA,KAAA,IAAS2F,KAAA,CAAMC,OAAO,CAAC5F,KAAA,GAAQ;QACjCmG,MAAA,GAAS7H,SAAA,CAAU0B,KAAA,EAAOiG,aAAA,EAAeC,WAAA;MAC3C;MACA3D,QAAA,CAAS4D,MAAA;IACX;cAEA,aAAAzF,IAAA,CAACG,aAAA;MAAe,GAAGX;;;AAGzB;AAEA,OAAO,MAAMkG,WAAA,GAAkDlG,KAAA;EAC7D,MAAM;IAAEmG,OAAO;IAAEC;EAAU,CAAE,GAAGpG,KAAA;EAEhC,IAAImG,OAAA,IAAWC,UAAA,EAAY;IACzB,oBAAO5F,IAAA,CAAC+E,cAAA;MAAgB,GAAGvF;;EAC7B;EAEA,oBAAOQ,IAAA,CAACG,aAAA;IAAe,GAAGX;;AAC5B","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","arrayMove","getTranslation","React","useCallback","useEffect","useId","useLayoutEffect","useMemo","useRef","useState","Select","components","rsComponents","CreatableSelect","useDebouncedEffect","useTheme","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","getCaptureMenuScroll","getMenuListStyles","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","ThemedMenuPortal","props","$","theme","menuPortalTheme","selectProps","customProps","t0","t1","_jsx","MenuPortal","innerProps","DEFAULT_MAX_MENU_HEIGHT","MIN_USABLE_MENU_HEIGHT","MENU_VIEWPORT_GAP","SelectAdapter","i18n","t","inputValue","setInputValue","uuid","hasMounted","setHasMounted","isMenuOpen","setIsMenuOpen","maxMenuHeight","setMaxMenuHeight","menuPlacement","setMenuPlacement","containerRef","captureMenuScroll","captureMenuScrollProp","className","classNames","externalClassNames","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","menuPortalTarget","menuPortalTargetProp","menuPosition","menuPositionProp","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","styles","externalStyles","value","document","body","updateMenuViewportSettings","window","controlEl","current","querySelector","controlRect","getBoundingClientRect","availableBelow","Math","max","innerHeight","bottom","availableAbove","top","shouldOpenTop","availableHeight","min","floor","addEventListener","removeEventListener","isLoadingDebounced","setIsLoadingDebounced","handleMenuOpen","requestAnimationFrame","handleMenuClose","menuClassName","state","placement","external","menu","filter","Boolean","join","selectClassNames","menuList","selectComponents","sharedSelectProps","classNamePrefix","instanceId","isDisabled","loadingMessage","menuShouldBlockScroll","rsStyles","zIndex","menuPortal","control","minHeight","option","unstyled","height","ref","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","nativeEvent","isComposing","label","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { JSX, KeyboardEventHandler } from 'react'\nimport type { GroupBase, MenuListProps, MenuProps, StylesConfig } from 'react-select'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport Select, { components as rsComponents } from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { getCaptureMenuScroll } from './getCaptureMenuScroll.js'\nimport { getMenuListStyles } from './getMenuListStyles.js'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.css'\n\n// Propagates the nearest scoped theme (via ThemeProvider) into the portal div,\n// falling back to the global theme. Ensures dropdown menus portaled to\n// document.body inherit the correct theme (e.g. dark Popup).\nfunction ThemedMenuPortal<Opt, IsMulti extends boolean, Group extends GroupBase<Opt>>(\n props: React.ComponentProps<typeof rsComponents.MenuPortal<Opt, IsMulti, Group>>,\n) {\n const { theme } = useTheme()\n const menuPortalTheme = (props.selectProps as any)?.customProps?.menuPortalTheme\n return (\n <rsComponents.MenuPortal\n {...props}\n innerProps={{ 'data-theme': menuPortalTheme ?? theme } as JSX.IntrinsicElements['div']}\n />\n )\n}\n\nconst DEFAULT_MAX_MENU_HEIGHT = 300\nconst MIN_USABLE_MENU_HEIGHT = 140\nconst MENU_VIEWPORT_GAP = 16 // space between the control and the edge of the window\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = useState(false)\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [maxMenuHeight, setMaxMenuHeight] = useState(DEFAULT_MAX_MENU_HEIGHT)\n const [menuPlacement, setMenuPlacement] = useState<'auto' | 'bottom' | 'top'>('auto')\n const containerRef = useRef<HTMLDivElement>(null)\n\n const {\n captureMenuScroll: captureMenuScrollProp,\n className,\n classNames: externalClassNames,\n components,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n menuPortalTarget: menuPortalTargetProp,\n menuPosition: menuPositionProp,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n styles: externalStyles,\n value,\n } = props\n\n const menuPortalTarget =\n menuPortalTargetProp === undefined\n ? typeof document !== 'undefined'\n ? document.body\n : null\n : menuPortalTargetProp\n\n const menuPosition = menuPositionProp ?? (menuPortalTarget ? 'fixed' : undefined)\n const captureMenuScroll = getCaptureMenuScroll({\n captureMenuScroll: captureMenuScrollProp,\n menuPortalTarget,\n })\n\n const updateMenuViewportSettings = useCallback(() => {\n if (!isMenuOpen || typeof window === 'undefined') {\n return\n }\n\n const controlEl = containerRef.current?.querySelector('.rs__control')\n\n if (!controlEl) {\n return\n }\n\n const controlRect = controlEl.getBoundingClientRect()\n const availableBelow = Math.max(window.innerHeight - controlRect.bottom - MENU_VIEWPORT_GAP, 0)\n const availableAbove = Math.max(controlRect.top - MENU_VIEWPORT_GAP, 0)\n const shouldOpenTop = availableBelow < MIN_USABLE_MENU_HEIGHT && availableAbove > availableBelow\n const availableHeight = shouldOpenTop ? availableAbove : availableBelow\n\n setMenuPlacement(shouldOpenTop ? 'top' : 'bottom')\n setMaxMenuHeight(Math.max(Math.min(Math.floor(availableHeight), DEFAULT_MAX_MENU_HEIGHT), 1))\n }, [isMenuOpen])\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n useLayoutEffect(() => {\n if (!isMenuOpen) {\n setMenuPlacement('auto')\n setMaxMenuHeight(DEFAULT_MAX_MENU_HEIGHT)\n return\n }\n\n updateMenuViewportSettings()\n\n window.addEventListener('resize', updateMenuViewportSettings)\n window.addEventListener('scroll', updateMenuViewportSettings, true)\n\n return () => {\n window.removeEventListener('resize', updateMenuViewportSettings)\n window.removeEventListener('scroll', updateMenuViewportSettings, true)\n }\n }, [isMenuOpen, updateMenuViewportSettings])\n\n // Debounce the loading state so that fast option fetches (e.g. relationship\n // fields that resolve almost instantly) don't cause the clear indicator to\n // flash to react-select's loading indicator and back. The loading indicator\n // only appears once a load takes longer than the threshold below.\n const [isLoadingDebounced, setIsLoadingDebounced] = useState(false)\n\n useDebouncedEffect(\n () => {\n setIsLoadingDebounced(isLoading)\n },\n [isLoading],\n 250,\n )\n\n const handleMenuOpen = () => {\n setIsMenuOpen(true)\n requestAnimationFrame(updateMenuViewportSettings)\n onMenuOpen?.()\n }\n\n const handleMenuClose = () => {\n setIsMenuOpen(false)\n onMenuClose?.()\n }\n\n const menuClassName = useCallback(\n (state: MenuProps<Option, boolean, GroupBase<Option>>) => {\n const placement = state.placement ? `rs__menu--placement-${state.placement}` : ''\n const external = externalClassNames?.menu?.(state) ?? ''\n return [placement, external].filter(Boolean).join(' ')\n },\n [externalClassNames],\n )\n\n const selectClassNames = useMemo(\n () => ({\n ...externalClassNames,\n menu: menuClassName,\n menuList: (state: MenuListProps<Option, boolean, GroupBase<Option>>) => {\n const external = externalClassNames?.menuList?.(state) ?? ''\n return ['scrollbar-thin', external].filter(Boolean).join(' ')\n },\n }),\n [externalClassNames, menuClassName],\n )\n\n const selectComponents = useMemo(\n () => ({\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MenuPortal: ThemedMenuPortal,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }),\n [components],\n )\n\n const sharedSelectProps = {\n captureMenuScroll,\n className: [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' '),\n classNamePrefix: 'rs',\n classNames: selectClassNames,\n components: selectComponents,\n filterOption,\n instanceId: uuid,\n isClearable,\n isDisabled: disabled,\n isLoading: isLoadingDebounced,\n isSearchable,\n loadingMessage: () => t('general:loading') + '...',\n maxMenuHeight,\n menuPlacement,\n menuPortalTarget,\n menuPosition,\n menuShouldBlockScroll: false,\n noOptionsMessage,\n onChange,\n onMenuClose: handleMenuClose,\n onMenuOpen: handleMenuOpen,\n options,\n placeholder: getTranslation(placeholder, i18n),\n styles: {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles, state) => ({\n ...rsStyles,\n zIndex: undefined,\n ...externalStyles?.menu?.(rsStyles, state),\n }),\n // When portaling to document.body, the portal container needs an explicit\n // z-index so the menu appears above drawers and dialogs. unstyled={true}\n // strips react-select's default zIndex:9999 from the portal container.\n ...(menuPortalTarget && {\n menuPortal: (rsStyles, state) => ({\n ...rsStyles,\n zIndex: 9999,\n ...externalStyles?.menuPortal?.(rsStyles, state),\n }),\n }),\n // Remove the default react-select min-height so our CSS can control it\n control: (rsStyles, state) => ({\n ...rsStyles,\n minHeight: undefined,\n ...externalStyles?.control?.(rsStyles, state),\n }),\n // Allow external option styles to override emotion defaults\n option: (rsStyles, state) => ({\n ...rsStyles,\n ...externalStyles?.option?.(rsStyles, state),\n }),\n // Keep react-select's computed maxHeight so the menu can fit available\n // viewport space near screen edges (instead of using a fixed class value).\n menuList: getMenuListStyles(externalStyles),\n },\n unstyled: true,\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"var(--field-min-height)\" />\n }\n\n if (!isCreatable) {\n return (\n <div ref={containerRef}>\n <Select<Option, boolean, GroupBase<Option>>\n {...props}\n {...sharedSelectProps}\n getOptionValue={getOptionValue}\n value={value}\n />\n </div>\n )\n }\n\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n\n if (event.nativeEvent.isComposing) {\n return\n }\n\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([\n ...(value as Option[]),\n {\n label: inputValue,\n value: inputValue,\n },\n ])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <div ref={containerRef}>\n <CreatableSelect<Option, boolean, GroupBase<Option>>\n {...props}\n {...sharedSelectProps}\n inputValue={inputValue}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n value={value}\n />\n </div>\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,6 +45,7 @@ export type OptionGroup = {
|
|
|
45
45
|
export type ReactSelectAdapterProps = {
|
|
46
46
|
backspaceRemovesValue?: boolean;
|
|
47
47
|
blurInputOnSelect?: boolean;
|
|
48
|
+
captureMenuScroll?: boolean;
|
|
48
49
|
className?: string;
|
|
49
50
|
classNames?: ClassNamesConfig<Option, boolean, GroupBase<Option>>;
|
|
50
51
|
components?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\nimport type {\n ClassNamesConfig,\n CommonProps,\n GroupBase,\n Props as ReactSelectStateManagerProps,\n StylesConfig,\n} from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n editableProps?: (\n data: Option<{ label: string; value: string }>,\n className: string,\n selectProps: ReactSelectStateManagerProps,\n ) => any\n /** Force the portaled menu to render with a specific theme, independent of the control's ambient theme. */\n menuPortalTheme?: 'dark' | 'light'\n onDelete?: DocumentDrawerProps['onDelete']\n onDocumentOpen?: (args: {\n collectionSlug: string\n hasReadPermission: boolean\n id: number | string\n openInNewTab?: boolean\n }) => void\n onDuplicate?: DocumentDrawerProps['onSave']\n onSave?: DocumentDrawerProps['onSave']\n valueContainerLabel?: string\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n classNames?: ClassNamesConfig<Option, boolean, GroupBase<Option>>\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n {\n allowEdit,\n data,\n label,\n value,\n }: { allowEdit: boolean; data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n id?: string\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n menuIsOpen?: boolean\n menuPortalTarget?: HTMLElement | null\n menuPosition?: 'absolute' | 'fixed'\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: LabelFunction | string\n showError?: boolean\n styles?: StylesConfig<Option>\n value?: Option | Option[]\n}\n"],"mappings":"AAqEA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\nimport type {\n ClassNamesConfig,\n CommonProps,\n GroupBase,\n Props as ReactSelectStateManagerProps,\n StylesConfig,\n} from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n editableProps?: (\n data: Option<{ label: string; value: string }>,\n className: string,\n selectProps: ReactSelectStateManagerProps,\n ) => any\n /** Force the portaled menu to render with a specific theme, independent of the control's ambient theme. */\n menuPortalTheme?: 'dark' | 'light'\n onDelete?: DocumentDrawerProps['onDelete']\n onDocumentOpen?: (args: {\n collectionSlug: string\n hasReadPermission: boolean\n id: number | string\n openInNewTab?: boolean\n }) => void\n onDuplicate?: DocumentDrawerProps['onSave']\n onSave?: DocumentDrawerProps['onSave']\n valueContainerLabel?: string\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n captureMenuScroll?: boolean\n className?: string\n classNames?: ClassNamesConfig<Option, boolean, GroupBase<Option>>\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n {\n allowEdit,\n data,\n label,\n value,\n }: { allowEdit: boolean; data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n id?: string\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n menuIsOpen?: boolean\n menuPortalTarget?: HTMLElement | null\n menuPosition?: 'absolute' | 'fixed'\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: LabelFunction | string\n showError?: boolean\n styles?: StylesConfig<Option>\n value?: Option | Option[]\n}\n"],"mappings":"AAqEA","ignoreList":[]}
|
|
@@ -11,8 +11,8 @@ import { ListQueryProvider } from '../../providers/ListQuery/index.js';
|
|
|
11
11
|
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
12
12
|
import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
|
|
13
13
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
14
|
-
import { ColumnsButton } from '../ColumnsButton/index.js';
|
|
15
14
|
import { useDocumentDrawer } from '../DocumentDrawer/index.js';
|
|
15
|
+
import { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js';
|
|
16
16
|
import { NoListResults } from '../NoListResults/index.js';
|
|
17
17
|
import { RelationshipProvider } from '../Table/RelationshipProvider/index.js';
|
|
18
18
|
import { AddNewButton } from './AddNewButton.js';
|
|
@@ -209,7 +209,7 @@ export const RelationshipTable = props => {
|
|
|
209
209
|
permissions: permissions,
|
|
210
210
|
relationTo: relationTo
|
|
211
211
|
});
|
|
212
|
-
const columnsButton = /*#__PURE__*/_jsx(
|
|
212
|
+
const columnsButton = /*#__PURE__*/_jsx(ListColumnSelectionButton, {
|
|
213
213
|
collectionSlug: collectionConfig?.slug
|
|
214
214
|
});
|
|
215
215
|
return /*#__PURE__*/_jsxs("div", {
|