@servicetitan/anvil2 1.27.2 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/dist/AnvilProvider-C7Li86-d.js +16 -0
- package/dist/AnvilProvider-C7Li86-d.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Combobox-DnTI2I3L.js → Combobox-JAm3x-tw.js} +1986 -116
- package/dist/Combobox-JAm3x-tw.js.map +1 -0
- package/dist/Combobox.css +343 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-DocC46Mw.js → DateField-5mNXaJ7q.js} +548 -11
- package/dist/DateField-5mNXaJ7q.js.map +1 -0
- package/dist/DateField.js +1 -1
- package/dist/{Dialog-DQ9QXB5D.js → Dialog-B4M0DXxG.js} +2 -2
- package/dist/{Dialog-DQ9QXB5D.js.map → Dialog-B4M0DXxG.js.map} +1 -1
- package/dist/{Dialog-Kh2tcVWz-DqcNnouf.js → Dialog-CUK5YvVY-Dv5edacC.js} +5 -5
- package/dist/Dialog-CUK5YvVY-Dv5edacC.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/Drawer-BqqZB3Sn.js +66 -0
- package/dist/Drawer-BqqZB3Sn.js.map +1 -0
- package/dist/{Drawer-C6fpnRDX.js → Drawer-CrXiK2w0-BMzKuNFt.js} +15 -75
- package/dist/Drawer-CrXiK2w0-BMzKuNFt.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/{AnvilProvider-DNJk1Ait.js → HammerProvider-DuxhW0gv-C2voN5ro.js} +26 -15
- package/dist/HammerProvider-DuxhW0gv-C2voN5ro.js.map +1 -0
- package/dist/{InputMask-Ceh574pv.js → InputMask-BmXj5mob.js} +2 -2
- package/dist/{InputMask-Ceh574pv.js.map → InputMask-BmXj5mob.js.map} +1 -1
- package/dist/{InputMask-DQXw5qvG-BH4P-Woc.js → InputMask-CQzrMoEy-CLNvXsm7.js} +3 -3
- package/dist/{InputMask-DQXw5qvG-BH4P-Woc.js.map → InputMask-CQzrMoEy-CLNvXsm7.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Label-DWF2pXeG-1BhzVgZG.js → Label-CbYy5kwu-BCTOKxOk.js} +3 -3
- package/dist/{Label-DWF2pXeG-1BhzVgZG.js.map → Label-CbYy5kwu-BCTOKxOk.js.map} +1 -1
- package/dist/Menu-IEBrkdoN.js +1090 -0
- package/dist/Menu-IEBrkdoN.js.map +1 -0
- package/dist/Menu.css +116 -1
- package/dist/Menu.js +1 -1
- package/dist/{Page-BGkLs3bR.js → Page-qlpHVAMH.js} +70 -54
- package/dist/Page-qlpHVAMH.js.map +1 -0
- package/dist/Page.css +103 -70
- package/dist/Page.js +1 -1
- package/dist/{Popover-DzEc_Muv.js → Popover-B7K3o_l4.js} +2 -2
- package/dist/{Popover-DzEc_Muv.js.map → Popover-B7K3o_l4.js.map} +1 -1
- package/dist/{Popover-QKZtjN4_-CETYlWwq.js → Popover-C1B3UJXp-B5obSIvA.js} +351 -12
- package/dist/Popover-C1B3UJXp-B5obSIvA.js.map +1 -0
- package/dist/{Popover-QKZtjN4_.css → Popover-C1B3UJXp.css} +53 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-cKtBso7j-3CDyBaAN.js → ProgressBar-BLg29adn-CMz5eu5f.js} +3 -3
- package/dist/{ProgressBar-cKtBso7j-3CDyBaAN.js.map → ProgressBar-BLg29adn-CMz5eu5f.js.map} +1 -1
- package/dist/{ProgressBar-IItIByYc.js → ProgressBar-_DyYSgfx.js} +2 -2
- package/dist/{ProgressBar-IItIByYc.js.map → ProgressBar-_DyYSgfx.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{SearchField-CWb0kaV8.js → SearchField-C-4icPUa.js} +2 -2
- package/dist/{SearchField-CWb0kaV8.js.map → SearchField-C-4icPUa.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{TextField-D53XNiCi-C6_A5VRq.js → TextField-Lwe9XAou-tH8gcQTq.js} +2 -2
- package/dist/{TextField-D53XNiCi-C6_A5VRq.js.map → TextField-Lwe9XAou-tH8gcQTq.js.map} +1 -1
- package/dist/{TextField-s92xHzb3.js → TextField-tF-ERwA8.js} +2 -2
- package/dist/{TextField-s92xHzb3.js.map → TextField-tF-ERwA8.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-B61wNIFr.js → Textarea-BrzxOEx3.js} +2 -2
- package/dist/Textarea-BrzxOEx3.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/Toast.js +1 -1
- package/dist/{Toolbar-Cge6Nznj.js → Toolbar-D9fMSiGU.js} +2 -2
- package/dist/{Toolbar-Cge6Nznj.js.map → Toolbar-D9fMSiGU.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-DgM8NSPm-CRIQbuTm.js → Tooltip-36nMbVT3-DMkvo60s.js} +222 -22
- package/dist/Tooltip-36nMbVT3-DMkvo60s.js.map +1 -0
- package/dist/{Tooltip-DgM8NSPm.css → Tooltip-36nMbVT3.css} +43 -1
- package/dist/{Tooltip-89FIvMG0.js → Tooltip-BEo0IRDf.js} +2 -2
- package/dist/{Tooltip-89FIvMG0.js.map → Tooltip-BEo0IRDf.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/components/Page/Page.d.ts +4 -1
- package/dist/floating-ui.react-4AwURJA3.js +5989 -0
- package/dist/floating-ui.react-4AwURJA3.js.map +1 -0
- package/dist/{useKeyboardFocusables-CwVMAe5C-CIHqixNA.js → index.esm-CunAFnrh.js} +11 -59
- package/dist/index.esm-CunAFnrh.js.map +1 -0
- package/dist/index.js +16 -16
- package/dist/supportsPopover-8aJR37cf-8aJR37cf.js +6 -0
- package/dist/supportsPopover-8aJR37cf-8aJR37cf.js.map +1 -0
- package/dist/{toast-CHld8RKY.js → toast-DkO9HWpH.js} +2 -2
- package/dist/{toast-CHld8RKY.js.map → toast-DkO9HWpH.js.map} +1 -1
- package/dist/useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js +61 -0
- package/dist/useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js.map +1 -0
- package/package.json +2 -2
- package/dist/AnvilProvider-DNJk1Ait.js.map +0 -1
- package/dist/Combobox-DnTI2I3L.js.map +0 -1
- package/dist/DateField-DocC46Mw.js.map +0 -1
- package/dist/Dialog-Kh2tcVWz-DqcNnouf.js.map +0 -1
- package/dist/Drawer-C6fpnRDX.js.map +0 -1
- package/dist/Menu-D8SDm9s9.js +0 -706
- package/dist/Menu-D8SDm9s9.js.map +0 -1
- package/dist/Page-BGkLs3bR.js.map +0 -1
- package/dist/Popover-QKZtjN4_-CETYlWwq.js.map +0 -1
- package/dist/Textarea-B61wNIFr.js.map +0 -1
- package/dist/Tooltip-DgM8NSPm-CRIQbuTm.js.map +0 -1
- package/dist/floating-ui.react-P5949bpO.js +0 -28
- package/dist/floating-ui.react-P5949bpO.js.map +0 -1
- package/dist/floating-ui.react-dom-D912oS4K.js +0 -1841
- package/dist/floating-ui.react-dom-D912oS4K.js.map +0 -1
- package/dist/useKeyboardFocusables-CwVMAe5C-CIHqixNA.js.map +0 -1
- /package/dist/{Dialog-Kh2tcVWz.css → Dialog-CUK5YvVY.css} +0 -0
- /package/dist/{Drawer.css → Drawer-CrXiK2w0.css} +0 -0
- /package/dist/{Label-DWF2pXeG.css → Label-CbYy5kwu.css} +0 -0
- /package/dist/{ProgressBar-cKtBso7j.css → ProgressBar-BLg29adn.css} +0 -0
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useTrackingId } from './useTrackingId.js';
|
|
3
|
-
import React__default, { useRef, useCallback, useEffect, useMemo, cloneElement, useLayoutEffect, useReducer, Component, createContext, useState,
|
|
3
|
+
import React__default, { useRef, useCallback, useEffect, useMemo, cloneElement, useLayoutEffect, useReducer, Component, createContext, useState, useId, useContext, useDeferredValue } from 'react';
|
|
4
4
|
import { g as getDefaultExportFromCjs, c as cx } from './index-tZvMCc77.js';
|
|
5
5
|
import { a as _extends, _ as _objectWithoutPropertiesLoose } from './extends-Bg2s_OKl.js';
|
|
6
|
-
import { u as
|
|
6
|
+
import { e as PopoverLegacy, u as usePopoverLegacyContext, d as Popover, f as usePopoverContext } from './Popover-C1B3UJXp-B5obSIvA.js';
|
|
7
|
+
import { s as supportsPopover } from './supportsPopover-8aJR37cf-8aJR37cf.js';
|
|
7
8
|
import { F as Flex } from './Flex-pdHNcZrF-CdQdYhOU.js';
|
|
8
|
-
import {
|
|
9
|
-
import { S as Spinner } from './Spinner-DdirfhPp-c7cDfIit.js';
|
|
10
|
-
import { s as styles$2 } from './Listbox.module-CJuWm7RR-CJuWm7RR.js';
|
|
11
|
-
import { s as styles$1 } from './ListView.module-BqvHsIQ9-BqvHsIQ9.js';
|
|
12
|
-
import { I as Icon$1 } from './Icon-DbHA5GV1-DwO2aGkj.js';
|
|
13
|
-
import { c as checkboxStyles, a as SvgIndeterminateCheckBox, S as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './Checkbox.module-DMrZNVpb-DL8zOKBQ.js';
|
|
14
|
-
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
15
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C6qizVc6-BkgAan7h.js';
|
|
16
|
-
import { L as Label } from './Label-DWF2pXeG-1BhzVgZG.js';
|
|
9
|
+
import { L as Label } from './Label-CbYy5kwu-BCTOKxOk.js';
|
|
17
10
|
import { B as Button } from './Button-Ce--YZ9L-Csh0Zzuf.js';
|
|
18
11
|
import { C as Chip } from './Chip-CAxTyjIZ-DfkCTnYy.js';
|
|
19
12
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
20
13
|
import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
|
|
21
14
|
import { H as Helper } from './Helper-Ba5DBS51-DBtASfJG.js';
|
|
15
|
+
import { T as Text } from './Text-C2n3GDdC-rz_AelM0.js';
|
|
16
|
+
import { S as Spinner } from './Spinner-DdirfhPp-c7cDfIit.js';
|
|
17
|
+
import { s as styles$3 } from './Listbox.module-CJuWm7RR-CJuWm7RR.js';
|
|
18
|
+
import { s as styles$2 } from './ListView.module-BqvHsIQ9-BqvHsIQ9.js';
|
|
19
|
+
import { I as Icon$2 } from './Icon-DbHA5GV1-DwO2aGkj.js';
|
|
20
|
+
import { c as checkboxStyles, a as SvgIndeterminateCheckBox, S as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './Checkbox.module-DMrZNVpb-DL8zOKBQ.js';
|
|
21
|
+
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
22
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C6qizVc6-BkgAan7h.js';
|
|
22
23
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
23
24
|
|
|
24
25
|
import './Combobox.css';function _setPrototypeOf(t, e) {
|
|
@@ -6281,108 +6282,1907 @@ function getKeyAttributes(key) {
|
|
|
6281
6282
|
};
|
|
6282
6283
|
}
|
|
6283
6284
|
|
|
6284
|
-
const
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
const
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
const
|
|
6291
|
-
const
|
|
6292
|
-
const
|
|
6293
|
-
const
|
|
6294
|
-
const
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
"search-field": "_search-field_1ued6_4",
|
|
6302
|
-
item: item,
|
|
6303
|
-
input: input,
|
|
6304
|
-
"input-wrapper": "_input-wrapper_1ued6_19",
|
|
6305
|
-
"toggle-button-wrapper": "_toggle-button-wrapper_1ued6_32",
|
|
6306
|
-
"close-button-wrapper": "_close-button-wrapper_1ued6_33",
|
|
6307
|
-
prefix: prefix,
|
|
6308
|
-
suffix: suffix,
|
|
6309
|
-
combobox: combobox,
|
|
6310
|
-
select: select,
|
|
6311
|
-
"popover-content": "_popover-content_1ued6_74",
|
|
6312
|
-
"no-clear-button": "_no-clear-button_1ued6_93",
|
|
6313
|
-
"input-flex": "_input-flex_1ued6_96",
|
|
6314
|
-
"fake-placeholder": "_fake-placeholder_1ued6_124",
|
|
6315
|
-
"close-button": "_close-button_1ued6_33",
|
|
6316
|
-
"toggle-button": "_toggle-button_1ued6_32",
|
|
6317
|
-
"rows-wrapper": "_rows-wrapper_1ued6_157",
|
|
6318
|
-
"chip-wrapper": "_chip-wrapper_1ued6_167",
|
|
6319
|
-
chip: chip,
|
|
6320
|
-
listview: listview,
|
|
6321
|
-
"loading-spinner": "_loading-spinner_1ued6_212",
|
|
6322
|
-
empty: empty,
|
|
6323
|
-
children: children,
|
|
6324
|
-
Icon: Icon,
|
|
6325
|
-
small: small,
|
|
6326
|
-
large: large,
|
|
6327
|
-
error: error,
|
|
6328
|
-
"loading-infinite": "_loading-infinite_1ued6_286",
|
|
6329
|
-
"loading-progress": "_loading-progress_1ued6_286",
|
|
6330
|
-
disabled: disabled,
|
|
6331
|
-
"listview-option": "_listview-option_1ued6_304"
|
|
6285
|
+
const defaultItemToString$1 = function(item) {
|
|
6286
|
+
return item != null ? String(item) : "";
|
|
6287
|
+
};
|
|
6288
|
+
const defaultItemToKey$1 = function(item) {
|
|
6289
|
+
return item;
|
|
6290
|
+
};
|
|
6291
|
+
const useDownshiftEnvironment$1 = () => {
|
|
6292
|
+
const wrapperDivRef = useRef(null);
|
|
6293
|
+
const shadowRoot = wrapperDivRef.current ? wrapperDivRef.current.getRootNode() : null;
|
|
6294
|
+
const shadowDocument = wrapperDivRef.current && shadowRoot ? shadowRoot.ownerDocument : null;
|
|
6295
|
+
const environment = shadowDocument ? {
|
|
6296
|
+
document: shadowDocument,
|
|
6297
|
+
addEventListener: shadowDocument.addEventListener.bind(shadowRoot),
|
|
6298
|
+
removeEventListener: shadowDocument.removeEventListener.bind(shadowRoot),
|
|
6299
|
+
Node
|
|
6300
|
+
} : undefined;
|
|
6301
|
+
return { ref: wrapperDivRef, environment };
|
|
6332
6302
|
};
|
|
6333
6303
|
|
|
6334
|
-
const
|
|
6335
|
-
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6304
|
+
const item$1 = "_item_tpkx3_6";
|
|
6305
|
+
const input$1 = "_input_tpkx3_19";
|
|
6306
|
+
const prefix$1 = "_prefix_tpkx3_47";
|
|
6307
|
+
const suffix$1 = "_suffix_tpkx3_48";
|
|
6308
|
+
const combobox$1 = "_combobox_tpkx3_63";
|
|
6309
|
+
const select$1 = "_select_tpkx3_72";
|
|
6310
|
+
const chip$1 = "_chip_tpkx3_168";
|
|
6311
|
+
const listview$1 = "_listview_tpkx3_209";
|
|
6312
|
+
const empty$1 = "_empty_tpkx3_217";
|
|
6313
|
+
const children$1 = "_children_tpkx3_245";
|
|
6314
|
+
const Icon$1 = "_Icon_tpkx3_248";
|
|
6315
|
+
const small$1 = "_small_tpkx3_253";
|
|
6316
|
+
const large$1 = "_large_tpkx3_256";
|
|
6317
|
+
const error$1 = "_error_tpkx3_274";
|
|
6318
|
+
const disabled$1 = "_disabled_tpkx3_287";
|
|
6319
|
+
const styles$1 = {
|
|
6320
|
+
"buttons-wrapper": "_buttons-wrapper_tpkx3_4",
|
|
6321
|
+
"search-field": "_search-field_tpkx3_5",
|
|
6322
|
+
item: item$1,
|
|
6323
|
+
input: input$1,
|
|
6324
|
+
"input-wrapper": "_input-wrapper_tpkx3_20",
|
|
6325
|
+
"toggle-button-wrapper": "_toggle-button-wrapper_tpkx3_33",
|
|
6326
|
+
"close-button-wrapper": "_close-button-wrapper_tpkx3_34",
|
|
6327
|
+
prefix: prefix$1,
|
|
6328
|
+
suffix: suffix$1,
|
|
6329
|
+
combobox: combobox$1,
|
|
6330
|
+
select: select$1,
|
|
6331
|
+
"popover-content": "_popover-content_tpkx3_75",
|
|
6332
|
+
"no-clear-button": "_no-clear-button_tpkx3_94",
|
|
6333
|
+
"input-flex": "_input-flex_tpkx3_97",
|
|
6334
|
+
"fake-placeholder": "_fake-placeholder_tpkx3_125",
|
|
6335
|
+
"close-button": "_close-button_tpkx3_34",
|
|
6336
|
+
"toggle-button": "_toggle-button_tpkx3_33",
|
|
6337
|
+
"rows-wrapper": "_rows-wrapper_tpkx3_158",
|
|
6338
|
+
"chip-wrapper": "_chip-wrapper_tpkx3_168",
|
|
6339
|
+
chip: chip$1,
|
|
6340
|
+
listview: listview$1,
|
|
6341
|
+
"loading-spinner": "_loading-spinner_tpkx3_213",
|
|
6342
|
+
empty: empty$1,
|
|
6343
|
+
children: children$1,
|
|
6344
|
+
Icon: Icon$1,
|
|
6345
|
+
small: small$1,
|
|
6346
|
+
large: large$1,
|
|
6347
|
+
error: error$1,
|
|
6348
|
+
"loading-infinite": "_loading-infinite_tpkx3_287",
|
|
6349
|
+
"loading-progress": "_loading-progress_tpkx3_287",
|
|
6350
|
+
disabled: disabled$1,
|
|
6351
|
+
"listview-option": "_listview-option_tpkx3_305"
|
|
6352
|
+
};
|
|
6353
|
+
|
|
6354
|
+
const ADD_NEW$1 = Symbol.for("add-new");
|
|
6355
|
+
const ComboboxLegacyContext = createContext(null);
|
|
6356
|
+
const useComboboxLegacy = function() {
|
|
6357
|
+
const context = useContext(
|
|
6358
|
+
ComboboxLegacyContext
|
|
6359
|
+
);
|
|
6360
|
+
if (context == null) {
|
|
6361
|
+
throw new Error("useComboboxLegacy must be wrapped in <ComboboxLegacy />");
|
|
6362
|
+
}
|
|
6363
|
+
return context;
|
|
6364
|
+
};
|
|
6365
|
+
const ComboboxLegacySingle = function(props) {
|
|
6366
|
+
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
6367
|
+
const {
|
|
6368
|
+
className,
|
|
6369
|
+
style,
|
|
6370
|
+
children,
|
|
6371
|
+
open,
|
|
6372
|
+
disabled,
|
|
6373
|
+
readOnly,
|
|
6374
|
+
items: itemsProp,
|
|
6375
|
+
itemToString: itemToStringProp,
|
|
6376
|
+
itemToKey: itemToKeyProp,
|
|
6377
|
+
onChange,
|
|
6378
|
+
disableCloseOnClickOutside = false,
|
|
6379
|
+
disableMatchReferenceWidth = false,
|
|
6380
|
+
disableCloseOnSelectItem = false,
|
|
6381
|
+
filterOptions,
|
|
6382
|
+
loading = false,
|
|
6383
|
+
root,
|
|
6384
|
+
onInputValueChange,
|
|
6385
|
+
environment: environmentProp,
|
|
6386
|
+
...rest
|
|
6387
|
+
} = componentProps;
|
|
6388
|
+
const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
|
|
6389
|
+
const [items, setItems] = useState(itemsProp);
|
|
6390
|
+
const [hasAddNew, setHasAddNew] = useState(false);
|
|
6391
|
+
const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(undefined);
|
|
6392
|
+
const [hasExactMatch, setHasExactMatch] = useState(false);
|
|
6393
|
+
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
6394
|
+
const [hasEmpty, setHasEmpty] = useState(false);
|
|
6395
|
+
const [disabledItems, setDisabledItems] = useState([]);
|
|
6396
|
+
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
6397
|
+
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
6398
|
+
const referenceRef = useRef(null);
|
|
6399
|
+
const contentRef = useRef(null);
|
|
6400
|
+
const handleOutsidePress = (e) => {
|
|
6401
|
+
const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
|
|
6402
|
+
if (!clickedInsideReference) {
|
|
6403
|
+
closeMenu();
|
|
6404
|
+
return true;
|
|
6405
|
+
} else {
|
|
6406
|
+
return false;
|
|
6407
|
+
}
|
|
6408
|
+
};
|
|
6409
|
+
const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
|
|
6410
|
+
const showAddNew = hasAddNew && !hasExactMatch;
|
|
6411
|
+
const combinedItems = useMemo(
|
|
6412
|
+
() => showAddNew ? [...items, ADD_NEW$1] : items,
|
|
6413
|
+
[items, showAddNew]
|
|
6414
|
+
);
|
|
6415
|
+
const itemToString = itemToStringProp ?? defaultItemToString$1;
|
|
6416
|
+
const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
|
|
6353
6417
|
const {
|
|
6354
|
-
select,
|
|
6355
|
-
disableClearSelection,
|
|
6356
6418
|
isOpen,
|
|
6357
|
-
itemToString,
|
|
6358
6419
|
getLabelProps,
|
|
6359
6420
|
getInputProps,
|
|
6360
6421
|
getToggleButtonProps,
|
|
6361
6422
|
getMenuProps,
|
|
6423
|
+
getItemProps,
|
|
6424
|
+
highlightedIndex,
|
|
6362
6425
|
selectedItem,
|
|
6363
|
-
selectedItems,
|
|
6364
|
-
getSelectedItemProps,
|
|
6365
|
-
getDropdownProps,
|
|
6366
|
-
reset,
|
|
6367
|
-
removeSelectedItem,
|
|
6368
6426
|
selectItem,
|
|
6427
|
+
setInputValue,
|
|
6369
6428
|
inputValue,
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6429
|
+
closeMenu
|
|
6430
|
+
} = useCombobox$1({
|
|
6431
|
+
...rest,
|
|
6432
|
+
items: combinedItems,
|
|
6433
|
+
itemToString,
|
|
6434
|
+
itemToKey,
|
|
6435
|
+
isOpen: open,
|
|
6436
|
+
initialIsOpen: open,
|
|
6437
|
+
environment: environmentProp ?? environment,
|
|
6438
|
+
// NOTE: Reducer needs to be pure, side-effects should be in event handlers
|
|
6439
|
+
stateReducer(state, { type, changes }) {
|
|
6440
|
+
switch (type) {
|
|
6441
|
+
// keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
|
|
6442
|
+
case useCombobox$1.stateChangeTypes.InputBlur:
|
|
6443
|
+
return {
|
|
6444
|
+
...changes,
|
|
6445
|
+
isOpen: open != null ? open : true,
|
|
6446
|
+
highlightedIndex: state.highlightedIndex
|
|
6447
|
+
};
|
|
6448
|
+
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
6449
|
+
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
6450
|
+
if (changes.selectedItem === ADD_NEW$1) {
|
|
6451
|
+
const stateInputValue = state.inputValue;
|
|
6452
|
+
setTimeout(() => {
|
|
6453
|
+
onSelectItemAddNew?.(stateInputValue);
|
|
6454
|
+
}, 0);
|
|
6455
|
+
return {
|
|
6456
|
+
...changes,
|
|
6457
|
+
selectedItem: state.selectedItem,
|
|
6458
|
+
inputValue: ""
|
|
6459
|
+
};
|
|
6460
|
+
} else {
|
|
6461
|
+
return {
|
|
6462
|
+
...changes,
|
|
6463
|
+
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
6464
|
+
highlightedIndex: disableCloseOnSelectItem ? 0 : changes.highlightedIndex
|
|
6465
|
+
};
|
|
6466
|
+
}
|
|
6467
|
+
// prevent this from closing the popover by default
|
|
6468
|
+
case useCombobox$1.stateChangeTypes.InputClick:
|
|
6469
|
+
return { ...changes, isOpen: open != null ? open : true };
|
|
6470
|
+
default:
|
|
6471
|
+
return changes;
|
|
6472
|
+
}
|
|
6473
|
+
},
|
|
6474
|
+
onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, type, selectedItem: selectedItem2 }) => {
|
|
6475
|
+
const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
|
|
6476
|
+
const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
|
|
6477
|
+
if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
|
|
6478
|
+
setItems(itemsProp);
|
|
6479
|
+
setHasExactMatch(true);
|
|
6480
|
+
} else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
|
|
6481
|
+
setItems(matchSorter(itemsProp, inputValue2, filterOptions));
|
|
6482
|
+
setHasExactMatch(
|
|
6483
|
+
matchSorter(itemsProp, inputValue2, {
|
|
6484
|
+
...filterOptions,
|
|
6485
|
+
threshold: matchSorter.rankings.EQUAL
|
|
6486
|
+
}).length > 0
|
|
6487
|
+
);
|
|
6488
|
+
} else {
|
|
6489
|
+
setItems(itemsProp);
|
|
6490
|
+
setHasExactMatch(true);
|
|
6491
|
+
}
|
|
6492
|
+
}),
|
|
6493
|
+
onSelectedItemChange(changes) {
|
|
6494
|
+
const { selectedItem: selectedItem2 } = changes;
|
|
6495
|
+
if (onChange != null)
|
|
6496
|
+
onChange(selectedItem2 != null ? selectedItem2 : null);
|
|
6497
|
+
},
|
|
6498
|
+
onIsOpenChange({ isOpen: isOpen2, inputValue: inputValue2, selectedItem: selectedItem2 }) {
|
|
6499
|
+
if (isOpen2 === false) {
|
|
6500
|
+
setItems(itemsProp);
|
|
6501
|
+
if (inputValue2 === "") {
|
|
6502
|
+
selectItem(null);
|
|
6503
|
+
} else {
|
|
6504
|
+
setInputValue(selectedItem2 != null ? itemToString(selectedItem2) : "");
|
|
6505
|
+
}
|
|
6506
|
+
}
|
|
6507
|
+
},
|
|
6508
|
+
isItemDisabled(item) {
|
|
6509
|
+
if (isDisabled || isReadOnly) {
|
|
6510
|
+
return !!isDisabled || !!isReadOnly;
|
|
6511
|
+
}
|
|
6512
|
+
if (item && item instanceof Object && "disabled" in item && item.disabled) {
|
|
6513
|
+
return true;
|
|
6514
|
+
}
|
|
6515
|
+
if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
|
|
6516
|
+
return true;
|
|
6517
|
+
}
|
|
6518
|
+
if (disabledItems.includes(item)) {
|
|
6519
|
+
return true;
|
|
6520
|
+
}
|
|
6521
|
+
return false;
|
|
6522
|
+
}
|
|
6382
6523
|
});
|
|
6383
|
-
const
|
|
6384
|
-
|
|
6385
|
-
|
|
6524
|
+
const firstRenderRef = useRef(true);
|
|
6525
|
+
useEffect(() => {
|
|
6526
|
+
if (firstRenderRef.current === true) {
|
|
6527
|
+
firstRenderRef.current = false;
|
|
6528
|
+
}
|
|
6529
|
+
}, []);
|
|
6530
|
+
useEffect(() => {
|
|
6531
|
+
setIsDisabled(disabled);
|
|
6532
|
+
}, [disabled]);
|
|
6533
|
+
useEffect(() => {
|
|
6534
|
+
setIsReadOnly(readOnly);
|
|
6535
|
+
}, [readOnly]);
|
|
6536
|
+
useEffect(() => {
|
|
6537
|
+
if (firstRenderRef.current) return;
|
|
6538
|
+
const inputValueMatchesSelectedItem = selectedItem != null && inputValue === itemToString(selectedItem);
|
|
6539
|
+
const inputValueIsEmpty = inputValue == null || inputValue === "";
|
|
6540
|
+
if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
|
|
6541
|
+
setItems(matchSorter(itemsProp, inputValue, filterOptions));
|
|
6542
|
+
setHasExactMatch(
|
|
6543
|
+
matchSorter(itemsProp, inputValue, {
|
|
6544
|
+
...filterOptions,
|
|
6545
|
+
threshold: matchSorter.rankings.EQUAL
|
|
6546
|
+
}).length > 0
|
|
6547
|
+
);
|
|
6548
|
+
} else {
|
|
6549
|
+
setItems(itemsProp);
|
|
6550
|
+
setHasExactMatch(true);
|
|
6551
|
+
}
|
|
6552
|
+
}, [itemsProp]);
|
|
6553
|
+
return /* @__PURE__ */ jsx(
|
|
6554
|
+
ComboboxLegacyContext.Provider,
|
|
6555
|
+
{
|
|
6556
|
+
value: {
|
|
6557
|
+
multiple: false,
|
|
6558
|
+
select: false,
|
|
6559
|
+
items,
|
|
6560
|
+
itemToString,
|
|
6561
|
+
itemToKey,
|
|
6562
|
+
isOpen,
|
|
6563
|
+
getLabelProps,
|
|
6564
|
+
getInputProps,
|
|
6565
|
+
getToggleButtonProps,
|
|
6566
|
+
getMenuProps,
|
|
6567
|
+
getItemProps,
|
|
6568
|
+
highlightedIndex,
|
|
6569
|
+
selectedItem,
|
|
6570
|
+
selectedItems: [],
|
|
6571
|
+
disabledItems,
|
|
6572
|
+
setDisabledItems,
|
|
6573
|
+
getSelectedItemProps: undefined,
|
|
6574
|
+
getDropdownProps: undefined,
|
|
6575
|
+
selectItem,
|
|
6576
|
+
inputValue,
|
|
6577
|
+
isDisabled,
|
|
6578
|
+
isReadOnly,
|
|
6579
|
+
setIsReadOnly,
|
|
6580
|
+
setIsDisabled,
|
|
6581
|
+
hasDisabledPopover,
|
|
6582
|
+
setHasDisabledPopover,
|
|
6583
|
+
hasEmpty,
|
|
6584
|
+
setHasEmpty,
|
|
6585
|
+
hasAddNew,
|
|
6586
|
+
setHasAddNew,
|
|
6587
|
+
onSelectItemAddNew,
|
|
6588
|
+
setOnSelectItemAddNew,
|
|
6589
|
+
hasExactMatch,
|
|
6590
|
+
setHasExactMatch,
|
|
6591
|
+
loading,
|
|
6592
|
+
referenceRef,
|
|
6593
|
+
contentRef,
|
|
6594
|
+
closeMenu
|
|
6595
|
+
},
|
|
6596
|
+
children: /* @__PURE__ */ jsx(
|
|
6597
|
+
"div",
|
|
6598
|
+
{
|
|
6599
|
+
className: ComboboxLegacyClassNames,
|
|
6600
|
+
"data-anv": "combobox",
|
|
6601
|
+
style: { ...style, ...layoutStyles },
|
|
6602
|
+
ref: wrapperDivRef,
|
|
6603
|
+
children: /* @__PURE__ */ jsx(
|
|
6604
|
+
PopoverLegacy,
|
|
6605
|
+
{
|
|
6606
|
+
root,
|
|
6607
|
+
open: isOpen,
|
|
6608
|
+
noPadding: true,
|
|
6609
|
+
disableCaret: true,
|
|
6610
|
+
fitScreen: true,
|
|
6611
|
+
disableFlipFallback: true,
|
|
6612
|
+
placement: "bottom-start",
|
|
6613
|
+
matchReferenceWidth: !disableMatchReferenceWidth,
|
|
6614
|
+
disableCloseOnClickOutside,
|
|
6615
|
+
onOutsidePress: handleOutsidePress,
|
|
6616
|
+
children
|
|
6617
|
+
}
|
|
6618
|
+
)
|
|
6619
|
+
}
|
|
6620
|
+
)
|
|
6621
|
+
}
|
|
6622
|
+
);
|
|
6623
|
+
};
|
|
6624
|
+
const ComboboxLegacyMultiple = function(props) {
|
|
6625
|
+
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
6626
|
+
const {
|
|
6627
|
+
className,
|
|
6628
|
+
style,
|
|
6629
|
+
children,
|
|
6630
|
+
open,
|
|
6631
|
+
items: itemsProp,
|
|
6632
|
+
itemToString: itemToStringProp,
|
|
6633
|
+
itemToKey: itemToKeyProp,
|
|
6634
|
+
onChange,
|
|
6635
|
+
onSelectedItemsChange,
|
|
6636
|
+
disableCloseOnClickOutside = false,
|
|
6637
|
+
disableMatchReferenceWidth = false,
|
|
6638
|
+
disableCloseOnSelectItem = false,
|
|
6639
|
+
disableClearInputValueOnSelectItem = false,
|
|
6640
|
+
filterOptions,
|
|
6641
|
+
loading = false,
|
|
6642
|
+
root,
|
|
6643
|
+
disabled,
|
|
6644
|
+
readOnly,
|
|
6645
|
+
stateReducer: _,
|
|
6646
|
+
onInputValueChange,
|
|
6647
|
+
initialSelectedItems,
|
|
6648
|
+
initialActiveIndex,
|
|
6649
|
+
defaultSelectedItems,
|
|
6650
|
+
defaultActiveIndex,
|
|
6651
|
+
activeIndex: activeIndexProp,
|
|
6652
|
+
selectedItems: selectedItemsProp,
|
|
6653
|
+
environment: environmentProp,
|
|
6654
|
+
...rest
|
|
6655
|
+
} = componentProps;
|
|
6656
|
+
const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
|
|
6657
|
+
const [items, setItems] = useState(itemsProp);
|
|
6658
|
+
const [hasAddNew, setHasAddNew] = useState(false);
|
|
6659
|
+
const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(undefined);
|
|
6660
|
+
const [hasExactMatch, setHasExactMatch] = useState(false);
|
|
6661
|
+
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
6662
|
+
const [hasEmpty, setHasEmpty] = useState(false);
|
|
6663
|
+
const [disabledItems, setDisabledItems] = useState([]);
|
|
6664
|
+
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
6665
|
+
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
6666
|
+
let storedSetInputValue = undefined;
|
|
6667
|
+
const referenceRef = useRef(null);
|
|
6668
|
+
const contentRef = useRef(null);
|
|
6669
|
+
const handleOutsidePress = (e) => {
|
|
6670
|
+
const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
|
|
6671
|
+
if (!clickedInsideReference) {
|
|
6672
|
+
closeMenu();
|
|
6673
|
+
return true;
|
|
6674
|
+
} else {
|
|
6675
|
+
return false;
|
|
6676
|
+
}
|
|
6677
|
+
};
|
|
6678
|
+
const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
|
|
6679
|
+
const showAddNew = hasAddNew && !hasExactMatch;
|
|
6680
|
+
const combinedItems = useMemo(
|
|
6681
|
+
() => showAddNew ? [...items, ADD_NEW$1] : items,
|
|
6682
|
+
[items, showAddNew]
|
|
6683
|
+
);
|
|
6684
|
+
const itemToString = itemToStringProp ?? defaultItemToString$1;
|
|
6685
|
+
const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
|
|
6686
|
+
const {
|
|
6687
|
+
getSelectedItemProps,
|
|
6688
|
+
getDropdownProps,
|
|
6689
|
+
reset,
|
|
6690
|
+
selectedItems,
|
|
6691
|
+
addSelectedItem,
|
|
6692
|
+
removeSelectedItem,
|
|
6693
|
+
setSelectedItems
|
|
6694
|
+
} = useMultipleSelection({
|
|
6695
|
+
itemToKey,
|
|
6696
|
+
initialSelectedItems,
|
|
6697
|
+
initialActiveIndex,
|
|
6698
|
+
defaultSelectedItems,
|
|
6699
|
+
defaultActiveIndex,
|
|
6700
|
+
activeIndex: activeIndexProp,
|
|
6701
|
+
selectedItems: selectedItemsProp,
|
|
6702
|
+
environment: environmentProp ?? environment,
|
|
6703
|
+
stateReducer(state, { type, changes }) {
|
|
6704
|
+
switch (type) {
|
|
6705
|
+
// the Chip itself will handle "Backspace" and "Delete"
|
|
6706
|
+
// just return previous state
|
|
6707
|
+
case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
|
|
6708
|
+
case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
|
|
6709
|
+
return state;
|
|
6710
|
+
case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
|
|
6711
|
+
return { ...changes, activeIndex: -1 };
|
|
6712
|
+
case useMultipleSelection.stateChangeTypes.FunctionReset:
|
|
6713
|
+
return { ...changes, selectedItems: [] };
|
|
6714
|
+
default:
|
|
6715
|
+
return changes;
|
|
6716
|
+
}
|
|
6717
|
+
},
|
|
6718
|
+
onStateChange({ type }) {
|
|
6719
|
+
switch (type) {
|
|
6720
|
+
case useMultipleSelection.stateChangeTypes.FunctionReset:
|
|
6721
|
+
storedSetInputValue?.("");
|
|
6722
|
+
break;
|
|
6723
|
+
}
|
|
6724
|
+
},
|
|
6725
|
+
onSelectedItemsChange(changes) {
|
|
6726
|
+
const { selectedItems: selectedItems2 } = changes;
|
|
6727
|
+
if (onChange != null) onChange(selectedItems2);
|
|
6728
|
+
if (onSelectedItemsChange != null) onSelectedItemsChange(changes);
|
|
6729
|
+
}
|
|
6730
|
+
});
|
|
6731
|
+
const {
|
|
6732
|
+
isOpen,
|
|
6733
|
+
getLabelProps,
|
|
6734
|
+
getInputProps,
|
|
6735
|
+
getToggleButtonProps,
|
|
6736
|
+
getMenuProps,
|
|
6737
|
+
getItemProps,
|
|
6738
|
+
highlightedIndex,
|
|
6739
|
+
selectedItem,
|
|
6740
|
+
selectItem,
|
|
6741
|
+
setInputValue,
|
|
6742
|
+
inputValue,
|
|
6743
|
+
closeMenu
|
|
6744
|
+
} = useCombobox$1({
|
|
6745
|
+
...rest,
|
|
6746
|
+
items: combinedItems,
|
|
6747
|
+
itemToString,
|
|
6748
|
+
itemToKey,
|
|
6749
|
+
selectedItem: null,
|
|
6750
|
+
isOpen: open,
|
|
6751
|
+
initialIsOpen: open,
|
|
6752
|
+
environment: environmentProp ?? environment,
|
|
6753
|
+
// NOTE: Reducer needs to be pure, side-effects should be in event handlers
|
|
6754
|
+
stateReducer(state, { type, changes }) {
|
|
6755
|
+
switch (type) {
|
|
6756
|
+
// keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
|
|
6757
|
+
case useCombobox$1.stateChangeTypes.InputBlur:
|
|
6758
|
+
return {
|
|
6759
|
+
...changes,
|
|
6760
|
+
inputValue: state.inputValue,
|
|
6761
|
+
selectedItem: null,
|
|
6762
|
+
isOpen: open != null ? open : true,
|
|
6763
|
+
highlightedIndex: state.highlightedIndex
|
|
6764
|
+
};
|
|
6765
|
+
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
6766
|
+
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
6767
|
+
if (changes.selectedItem === ADD_NEW$1) {
|
|
6768
|
+
const stateInputValue = state.inputValue;
|
|
6769
|
+
setTimeout(() => {
|
|
6770
|
+
onSelectItemAddNew?.(stateInputValue);
|
|
6771
|
+
}, 0);
|
|
6772
|
+
return {
|
|
6773
|
+
...changes,
|
|
6774
|
+
selectedItem: state.selectedItem,
|
|
6775
|
+
inputValue: ""
|
|
6776
|
+
};
|
|
6777
|
+
} else {
|
|
6778
|
+
return {
|
|
6779
|
+
...changes,
|
|
6780
|
+
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
6781
|
+
highlightedIndex: disableCloseOnSelectItem ? disableClearInputValueOnSelectItem || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex,
|
|
6782
|
+
inputValue: disableClearInputValueOnSelectItem ? state.inputValue : ""
|
|
6783
|
+
};
|
|
6784
|
+
}
|
|
6785
|
+
// prevent this from closing the popover by default
|
|
6786
|
+
case useCombobox$1.stateChangeTypes.InputClick:
|
|
6787
|
+
return { ...changes, isOpen: open != null ? open : true };
|
|
6788
|
+
// prevent this from clearing the input value by default
|
|
6789
|
+
case useCombobox$1.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
6790
|
+
return { ...changes, inputValue: state.inputValue };
|
|
6791
|
+
default:
|
|
6792
|
+
return changes;
|
|
6793
|
+
}
|
|
6794
|
+
},
|
|
6795
|
+
onStateChange({ type, selectedItem: newSelectedItem }) {
|
|
6796
|
+
switch (type) {
|
|
6797
|
+
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
6798
|
+
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
6799
|
+
case useCombobox$1.stateChangeTypes.InputBlur:
|
|
6800
|
+
if (newSelectedItem != null) {
|
|
6801
|
+
const itemAlreadySelected = selectedItems.some(
|
|
6802
|
+
(item) => itemToKey(item) === itemToKey(newSelectedItem)
|
|
6803
|
+
);
|
|
6804
|
+
if (itemAlreadySelected) {
|
|
6805
|
+
removeSelectedItem(newSelectedItem);
|
|
6806
|
+
} else {
|
|
6807
|
+
addSelectedItem(newSelectedItem);
|
|
6808
|
+
}
|
|
6809
|
+
}
|
|
6810
|
+
break;
|
|
6811
|
+
}
|
|
6812
|
+
},
|
|
6813
|
+
onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, ...changes }) => {
|
|
6814
|
+
const { type, selectedItem: selectedItem2 } = changes;
|
|
6815
|
+
const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
|
|
6816
|
+
const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
|
|
6817
|
+
if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
|
|
6818
|
+
setItems(itemsProp);
|
|
6819
|
+
setHasExactMatch(true);
|
|
6820
|
+
} else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
|
|
6821
|
+
setItems(matchSorter(itemsProp, inputValue2, filterOptions));
|
|
6822
|
+
setHasExactMatch(
|
|
6823
|
+
matchSorter(itemsProp, inputValue2, {
|
|
6824
|
+
...filterOptions,
|
|
6825
|
+
threshold: matchSorter.rankings.EQUAL
|
|
6826
|
+
}).length > 0
|
|
6827
|
+
);
|
|
6828
|
+
} else {
|
|
6829
|
+
setItems(itemsProp);
|
|
6830
|
+
setHasExactMatch(true);
|
|
6831
|
+
}
|
|
6832
|
+
}),
|
|
6833
|
+
onIsOpenChange({ isOpen: isOpen2 }) {
|
|
6834
|
+
if (isOpen2 === false) {
|
|
6835
|
+
setInputValue("");
|
|
6836
|
+
setItems(itemsProp);
|
|
6837
|
+
}
|
|
6838
|
+
},
|
|
6839
|
+
isItemDisabled(item) {
|
|
6840
|
+
if (isDisabled || isReadOnly) {
|
|
6841
|
+
return !!isDisabled || !!isReadOnly;
|
|
6842
|
+
}
|
|
6843
|
+
if (item && item instanceof Object && "disabled" in item && item.disabled) {
|
|
6844
|
+
return true;
|
|
6845
|
+
}
|
|
6846
|
+
if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
|
|
6847
|
+
return true;
|
|
6848
|
+
}
|
|
6849
|
+
if (disabledItems.includes(item)) {
|
|
6850
|
+
return true;
|
|
6851
|
+
}
|
|
6852
|
+
return false;
|
|
6853
|
+
}
|
|
6854
|
+
});
|
|
6855
|
+
storedSetInputValue = setInputValue;
|
|
6856
|
+
const firstRenderRef = useRef(true);
|
|
6857
|
+
useEffect(() => {
|
|
6858
|
+
if (firstRenderRef.current === true) {
|
|
6859
|
+
firstRenderRef.current = false;
|
|
6860
|
+
}
|
|
6861
|
+
}, []);
|
|
6862
|
+
useEffect(() => {
|
|
6863
|
+
setIsDisabled(disabled);
|
|
6864
|
+
}, [disabled]);
|
|
6865
|
+
useEffect(() => {
|
|
6866
|
+
setIsReadOnly(readOnly);
|
|
6867
|
+
}, [readOnly]);
|
|
6868
|
+
useEffect(() => {
|
|
6869
|
+
if (firstRenderRef.current) return;
|
|
6870
|
+
const inputValueIsEmpty = inputValue == null || inputValue === "";
|
|
6871
|
+
if (!inputValueIsEmpty) {
|
|
6872
|
+
setItems(matchSorter(itemsProp, inputValue, filterOptions));
|
|
6873
|
+
setHasExactMatch(
|
|
6874
|
+
matchSorter(itemsProp, inputValue, {
|
|
6875
|
+
...filterOptions,
|
|
6876
|
+
threshold: matchSorter.rankings.EQUAL
|
|
6877
|
+
}).length > 0
|
|
6878
|
+
);
|
|
6879
|
+
} else {
|
|
6880
|
+
setItems(itemsProp);
|
|
6881
|
+
setHasExactMatch(true);
|
|
6882
|
+
}
|
|
6883
|
+
}, [itemsProp]);
|
|
6884
|
+
return /* @__PURE__ */ jsx(
|
|
6885
|
+
ComboboxLegacyContext.Provider,
|
|
6886
|
+
{
|
|
6887
|
+
value: {
|
|
6888
|
+
multiple: true,
|
|
6889
|
+
select: false,
|
|
6890
|
+
items,
|
|
6891
|
+
itemToString,
|
|
6892
|
+
itemToKey,
|
|
6893
|
+
isOpen,
|
|
6894
|
+
getLabelProps,
|
|
6895
|
+
getInputProps,
|
|
6896
|
+
getToggleButtonProps,
|
|
6897
|
+
getMenuProps,
|
|
6898
|
+
getItemProps,
|
|
6899
|
+
highlightedIndex,
|
|
6900
|
+
selectedItem,
|
|
6901
|
+
selectedItems,
|
|
6902
|
+
disabledItems,
|
|
6903
|
+
setDisabledItems,
|
|
6904
|
+
getSelectedItemProps,
|
|
6905
|
+
getDropdownProps,
|
|
6906
|
+
reset,
|
|
6907
|
+
addSelectedItem,
|
|
6908
|
+
removeSelectedItem,
|
|
6909
|
+
setSelectedItems,
|
|
6910
|
+
selectItem,
|
|
6911
|
+
inputValue,
|
|
6912
|
+
isDisabled,
|
|
6913
|
+
isReadOnly,
|
|
6914
|
+
setIsReadOnly,
|
|
6915
|
+
setIsDisabled,
|
|
6916
|
+
hasDisabledPopover,
|
|
6917
|
+
setHasDisabledPopover,
|
|
6918
|
+
hasEmpty,
|
|
6919
|
+
setHasEmpty,
|
|
6920
|
+
hasAddNew,
|
|
6921
|
+
setHasAddNew,
|
|
6922
|
+
onSelectItemAddNew,
|
|
6923
|
+
setOnSelectItemAddNew,
|
|
6924
|
+
hasExactMatch,
|
|
6925
|
+
setHasExactMatch,
|
|
6926
|
+
loading,
|
|
6927
|
+
referenceRef,
|
|
6928
|
+
contentRef,
|
|
6929
|
+
closeMenu
|
|
6930
|
+
},
|
|
6931
|
+
children: /* @__PURE__ */ jsx(
|
|
6932
|
+
"div",
|
|
6933
|
+
{
|
|
6934
|
+
className: ComboboxLegacyClassNames,
|
|
6935
|
+
"data-anv": "combobox",
|
|
6936
|
+
style: { ...style, ...layoutStyles },
|
|
6937
|
+
ref: wrapperDivRef,
|
|
6938
|
+
children: /* @__PURE__ */ jsx(
|
|
6939
|
+
PopoverLegacy,
|
|
6940
|
+
{
|
|
6941
|
+
root,
|
|
6942
|
+
open: !isDisabled && isOpen,
|
|
6943
|
+
noPadding: true,
|
|
6944
|
+
disableCaret: true,
|
|
6945
|
+
fitScreen: true,
|
|
6946
|
+
disableFlipFallback: true,
|
|
6947
|
+
placement: "bottom-start",
|
|
6948
|
+
matchReferenceWidth: !disableMatchReferenceWidth,
|
|
6949
|
+
disableCloseOnClickOutside,
|
|
6950
|
+
onOutsidePress: handleOutsidePress,
|
|
6951
|
+
children
|
|
6952
|
+
}
|
|
6953
|
+
)
|
|
6954
|
+
}
|
|
6955
|
+
)
|
|
6956
|
+
}
|
|
6957
|
+
);
|
|
6958
|
+
};
|
|
6959
|
+
const SelectLegacySingle = function(props) {
|
|
6960
|
+
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
6961
|
+
const {
|
|
6962
|
+
className,
|
|
6963
|
+
style,
|
|
6964
|
+
children,
|
|
6965
|
+
open,
|
|
6966
|
+
disabled,
|
|
6967
|
+
readOnly,
|
|
6968
|
+
items,
|
|
6969
|
+
itemToString: itemToStringProp,
|
|
6970
|
+
itemToKey: itemToKeyProp,
|
|
6971
|
+
onChange,
|
|
6972
|
+
disableClearSelection = false,
|
|
6973
|
+
disableCloseOnClickOutside = false,
|
|
6974
|
+
disableMatchReferenceWidth = false,
|
|
6975
|
+
disableCloseOnSelectItem = false,
|
|
6976
|
+
loading = false,
|
|
6977
|
+
root,
|
|
6978
|
+
environment: environmentProp,
|
|
6979
|
+
...rest
|
|
6980
|
+
} = componentProps;
|
|
6981
|
+
const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
|
|
6982
|
+
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
6983
|
+
const [hasEmpty, setHasEmpty] = useState(false);
|
|
6984
|
+
const [disabledItems, setDisabledItems] = useState([]);
|
|
6985
|
+
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
6986
|
+
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
6987
|
+
const referenceRef = useRef(null);
|
|
6988
|
+
const contentRef = useRef(null);
|
|
6989
|
+
const handleOutsidePress = (e) => {
|
|
6990
|
+
const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
|
|
6991
|
+
if (!clickedInsideReference) {
|
|
6992
|
+
closeMenu();
|
|
6993
|
+
return true;
|
|
6994
|
+
} else {
|
|
6995
|
+
return false;
|
|
6996
|
+
}
|
|
6997
|
+
};
|
|
6998
|
+
const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
|
|
6999
|
+
const itemToString = itemToStringProp ?? defaultItemToString$1;
|
|
7000
|
+
const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
|
|
7001
|
+
const {
|
|
7002
|
+
isOpen,
|
|
7003
|
+
getLabelProps,
|
|
7004
|
+
getToggleButtonProps,
|
|
7005
|
+
getMenuProps,
|
|
7006
|
+
getItemProps,
|
|
7007
|
+
highlightedIndex,
|
|
7008
|
+
selectedItem,
|
|
7009
|
+
selectItem,
|
|
7010
|
+
inputValue,
|
|
7011
|
+
closeMenu
|
|
7012
|
+
} = useSelect({
|
|
7013
|
+
...rest,
|
|
7014
|
+
items,
|
|
7015
|
+
itemToString,
|
|
7016
|
+
itemToKey,
|
|
7017
|
+
isOpen: open,
|
|
7018
|
+
initialIsOpen: open,
|
|
7019
|
+
environment: environmentProp ?? environment,
|
|
7020
|
+
// NOTE: Reducer needs to be pure, side-effects should be in event handlers
|
|
7021
|
+
stateReducer(state, { type, changes }) {
|
|
7022
|
+
switch (type) {
|
|
7023
|
+
// keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
|
|
7024
|
+
case useSelect.stateChangeTypes.ToggleButtonBlur:
|
|
7025
|
+
return {
|
|
7026
|
+
...changes,
|
|
7027
|
+
isOpen: open != null ? open : true,
|
|
7028
|
+
highlightedIndex: state.highlightedIndex
|
|
7029
|
+
};
|
|
7030
|
+
case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
|
|
7031
|
+
case useSelect.stateChangeTypes.ItemClick:
|
|
7032
|
+
return {
|
|
7033
|
+
...changes,
|
|
7034
|
+
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
7035
|
+
highlightedIndex: disableCloseOnSelectItem ? 0 : changes.highlightedIndex
|
|
7036
|
+
};
|
|
7037
|
+
// prevent this from closing the popover by default
|
|
7038
|
+
case useSelect.stateChangeTypes.ToggleButtonClick:
|
|
7039
|
+
return { ...changes, isOpen: open != null ? open : true };
|
|
7040
|
+
default:
|
|
7041
|
+
return changes;
|
|
7042
|
+
}
|
|
7043
|
+
},
|
|
7044
|
+
onSelectedItemChange(changes) {
|
|
7045
|
+
const { selectedItem: selectedItem2 } = changes;
|
|
7046
|
+
if (onChange != null)
|
|
7047
|
+
onChange(selectedItem2 != null ? selectedItem2 : null);
|
|
7048
|
+
},
|
|
7049
|
+
isItemDisabled(item) {
|
|
7050
|
+
if (isDisabled || isReadOnly) {
|
|
7051
|
+
return !!isDisabled || !!isReadOnly;
|
|
7052
|
+
}
|
|
7053
|
+
if (item && item instanceof Object && "disabled" in item && item.disabled) {
|
|
7054
|
+
return true;
|
|
7055
|
+
}
|
|
7056
|
+
if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
|
|
7057
|
+
return true;
|
|
7058
|
+
}
|
|
7059
|
+
if (disabledItems.includes(item)) {
|
|
7060
|
+
return true;
|
|
7061
|
+
}
|
|
7062
|
+
return false;
|
|
7063
|
+
}
|
|
7064
|
+
});
|
|
7065
|
+
useEffect(() => {
|
|
7066
|
+
setIsDisabled(disabled);
|
|
7067
|
+
}, [disabled]);
|
|
7068
|
+
useEffect(() => {
|
|
7069
|
+
setIsReadOnly(readOnly);
|
|
7070
|
+
}, [readOnly]);
|
|
7071
|
+
return /* @__PURE__ */ jsx(
|
|
7072
|
+
ComboboxLegacyContext.Provider,
|
|
7073
|
+
{
|
|
7074
|
+
value: {
|
|
7075
|
+
multiple: false,
|
|
7076
|
+
select: true,
|
|
7077
|
+
disableClearSelection,
|
|
7078
|
+
items,
|
|
7079
|
+
itemToString,
|
|
7080
|
+
itemToKey,
|
|
7081
|
+
isOpen,
|
|
7082
|
+
getLabelProps,
|
|
7083
|
+
getToggleButtonProps,
|
|
7084
|
+
getMenuProps,
|
|
7085
|
+
getItemProps,
|
|
7086
|
+
highlightedIndex,
|
|
7087
|
+
selectedItem,
|
|
7088
|
+
selectedItems: [],
|
|
7089
|
+
disabledItems,
|
|
7090
|
+
setDisabledItems,
|
|
7091
|
+
selectItem,
|
|
7092
|
+
inputValue,
|
|
7093
|
+
isDisabled,
|
|
7094
|
+
isReadOnly,
|
|
7095
|
+
setIsReadOnly,
|
|
7096
|
+
setIsDisabled,
|
|
7097
|
+
hasDisabledPopover,
|
|
7098
|
+
setHasDisabledPopover,
|
|
7099
|
+
hasEmpty,
|
|
7100
|
+
setHasEmpty,
|
|
7101
|
+
loading,
|
|
7102
|
+
referenceRef,
|
|
7103
|
+
contentRef,
|
|
7104
|
+
closeMenu
|
|
7105
|
+
},
|
|
7106
|
+
children: /* @__PURE__ */ jsx(
|
|
7107
|
+
"div",
|
|
7108
|
+
{
|
|
7109
|
+
className: ComboboxLegacyClassNames,
|
|
7110
|
+
"data-anv": "combobox",
|
|
7111
|
+
style: { ...style, ...layoutStyles },
|
|
7112
|
+
ref: wrapperDivRef,
|
|
7113
|
+
children: /* @__PURE__ */ jsx(
|
|
7114
|
+
PopoverLegacy,
|
|
7115
|
+
{
|
|
7116
|
+
root,
|
|
7117
|
+
open: isOpen,
|
|
7118
|
+
noPadding: true,
|
|
7119
|
+
disableCaret: true,
|
|
7120
|
+
fitScreen: true,
|
|
7121
|
+
disableFlipFallback: true,
|
|
7122
|
+
placement: "bottom-start",
|
|
7123
|
+
matchReferenceWidth: !disableMatchReferenceWidth,
|
|
7124
|
+
disableCloseOnClickOutside,
|
|
7125
|
+
onOutsidePress: handleOutsidePress,
|
|
7126
|
+
children
|
|
7127
|
+
}
|
|
7128
|
+
)
|
|
7129
|
+
}
|
|
7130
|
+
)
|
|
7131
|
+
}
|
|
7132
|
+
);
|
|
7133
|
+
};
|
|
7134
|
+
const SelectLegacyMultiple = function(props) {
|
|
7135
|
+
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
7136
|
+
const {
|
|
7137
|
+
className,
|
|
7138
|
+
style,
|
|
7139
|
+
children,
|
|
7140
|
+
open,
|
|
7141
|
+
items,
|
|
7142
|
+
itemToString: itemToStringProp,
|
|
7143
|
+
itemToKey: itemToKeyProp,
|
|
7144
|
+
onChange,
|
|
7145
|
+
onSelectedItemsChange,
|
|
7146
|
+
disableCloseOnClickOutside = false,
|
|
7147
|
+
disableMatchReferenceWidth = false,
|
|
7148
|
+
disableCloseOnSelectItem = false,
|
|
7149
|
+
loading = false,
|
|
7150
|
+
root,
|
|
7151
|
+
disabled,
|
|
7152
|
+
readOnly,
|
|
7153
|
+
stateReducer: _,
|
|
7154
|
+
initialSelectedItems,
|
|
7155
|
+
initialActiveIndex,
|
|
7156
|
+
defaultSelectedItems,
|
|
7157
|
+
defaultActiveIndex,
|
|
7158
|
+
activeIndex: activeIndexProp,
|
|
7159
|
+
selectedItems: selectedItemsProp,
|
|
7160
|
+
environment: environmentProp,
|
|
7161
|
+
...rest
|
|
7162
|
+
} = componentProps;
|
|
7163
|
+
const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
|
|
7164
|
+
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
7165
|
+
const [hasEmpty, setHasEmpty] = useState(false);
|
|
7166
|
+
const [disabledItems, setDisabledItems] = useState([]);
|
|
7167
|
+
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
7168
|
+
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
7169
|
+
const referenceRef = useRef(null);
|
|
7170
|
+
const contentRef = useRef(null);
|
|
7171
|
+
const handleOutsidePress = (e) => {
|
|
7172
|
+
const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
|
|
7173
|
+
if (!clickedInsideReference) {
|
|
7174
|
+
closeMenu();
|
|
7175
|
+
return true;
|
|
7176
|
+
} else {
|
|
7177
|
+
return false;
|
|
7178
|
+
}
|
|
7179
|
+
};
|
|
7180
|
+
const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
|
|
7181
|
+
const itemToString = itemToStringProp ?? defaultItemToString$1;
|
|
7182
|
+
const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
|
|
7183
|
+
const {
|
|
7184
|
+
getSelectedItemProps,
|
|
7185
|
+
getDropdownProps,
|
|
7186
|
+
reset,
|
|
7187
|
+
selectedItems,
|
|
7188
|
+
addSelectedItem,
|
|
7189
|
+
removeSelectedItem,
|
|
7190
|
+
setSelectedItems
|
|
7191
|
+
} = useMultipleSelection({
|
|
7192
|
+
itemToKey,
|
|
7193
|
+
initialSelectedItems,
|
|
7194
|
+
initialActiveIndex,
|
|
7195
|
+
defaultSelectedItems,
|
|
7196
|
+
defaultActiveIndex,
|
|
7197
|
+
activeIndex: activeIndexProp,
|
|
7198
|
+
selectedItems: selectedItemsProp,
|
|
7199
|
+
environment: environmentProp ?? environment,
|
|
7200
|
+
stateReducer(state, { type, changes }) {
|
|
7201
|
+
switch (type) {
|
|
7202
|
+
// the Chip itself will handle "Backspace" and "Delete"
|
|
7203
|
+
// just return previous state
|
|
7204
|
+
case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
|
|
7205
|
+
case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
|
|
7206
|
+
return state;
|
|
7207
|
+
case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
|
|
7208
|
+
return { ...changes, activeIndex: -1 };
|
|
7209
|
+
case useMultipleSelection.stateChangeTypes.FunctionReset:
|
|
7210
|
+
return { ...changes, selectedItems: [] };
|
|
7211
|
+
default:
|
|
7212
|
+
return changes;
|
|
7213
|
+
}
|
|
7214
|
+
},
|
|
7215
|
+
onSelectedItemsChange(changes) {
|
|
7216
|
+
const { selectedItems: selectedItems2 } = changes;
|
|
7217
|
+
if (onChange != null) onChange(selectedItems2);
|
|
7218
|
+
if (onSelectedItemsChange != null) onSelectedItemsChange(changes);
|
|
7219
|
+
}
|
|
7220
|
+
});
|
|
7221
|
+
const {
|
|
7222
|
+
isOpen,
|
|
7223
|
+
getLabelProps,
|
|
7224
|
+
getToggleButtonProps,
|
|
7225
|
+
getMenuProps,
|
|
7226
|
+
getItemProps,
|
|
7227
|
+
highlightedIndex,
|
|
7228
|
+
selectedItem,
|
|
7229
|
+
selectItem,
|
|
7230
|
+
inputValue,
|
|
7231
|
+
closeMenu
|
|
7232
|
+
} = useSelect({
|
|
7233
|
+
...rest,
|
|
7234
|
+
items,
|
|
7235
|
+
itemToString,
|
|
7236
|
+
itemToKey,
|
|
7237
|
+
selectedItem: null,
|
|
7238
|
+
isOpen: open,
|
|
7239
|
+
initialIsOpen: open,
|
|
7240
|
+
environment: environmentProp ?? environment,
|
|
7241
|
+
// NOTE: Reducer needs to be pure, side-effects should be in event handlers
|
|
7242
|
+
stateReducer(state, { type, changes }) {
|
|
7243
|
+
switch (type) {
|
|
7244
|
+
// keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
|
|
7245
|
+
case useSelect.stateChangeTypes.ToggleButtonBlur:
|
|
7246
|
+
return {
|
|
7247
|
+
...changes,
|
|
7248
|
+
selectedItem: null,
|
|
7249
|
+
isOpen: open != null ? open : true,
|
|
7250
|
+
highlightedIndex: state.highlightedIndex
|
|
7251
|
+
};
|
|
7252
|
+
case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
|
|
7253
|
+
case useSelect.stateChangeTypes.ItemClick:
|
|
7254
|
+
return {
|
|
7255
|
+
...changes,
|
|
7256
|
+
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
7257
|
+
highlightedIndex: disableCloseOnSelectItem ? 0 : changes.highlightedIndex
|
|
7258
|
+
};
|
|
7259
|
+
// prevent this from closing the popover by default
|
|
7260
|
+
case useSelect.stateChangeTypes.ToggleButtonClick:
|
|
7261
|
+
return { ...changes, isOpen: open != null ? open : true };
|
|
7262
|
+
default:
|
|
7263
|
+
return changes;
|
|
7264
|
+
}
|
|
7265
|
+
},
|
|
7266
|
+
onStateChange({ type, selectedItem: newSelectedItem }) {
|
|
7267
|
+
switch (type) {
|
|
7268
|
+
case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
|
|
7269
|
+
case useSelect.stateChangeTypes.ItemClick:
|
|
7270
|
+
case useSelect.stateChangeTypes.ToggleButtonBlur:
|
|
7271
|
+
if (newSelectedItem != null) {
|
|
7272
|
+
const itemAlreadySelected = selectedItems.some(
|
|
7273
|
+
(item) => itemToKey(item) === itemToKey(newSelectedItem)
|
|
7274
|
+
);
|
|
7275
|
+
if (itemAlreadySelected) {
|
|
7276
|
+
removeSelectedItem(newSelectedItem);
|
|
7277
|
+
} else {
|
|
7278
|
+
addSelectedItem(newSelectedItem);
|
|
7279
|
+
}
|
|
7280
|
+
}
|
|
7281
|
+
break;
|
|
7282
|
+
}
|
|
7283
|
+
},
|
|
7284
|
+
isItemDisabled(item) {
|
|
7285
|
+
if (isDisabled || isReadOnly) {
|
|
7286
|
+
return !!isDisabled || !!isReadOnly;
|
|
7287
|
+
}
|
|
7288
|
+
if (item && item instanceof Object && "disabled" in item && item.disabled) {
|
|
7289
|
+
return true;
|
|
7290
|
+
}
|
|
7291
|
+
if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
|
|
7292
|
+
return true;
|
|
7293
|
+
}
|
|
7294
|
+
if (disabledItems.includes(item)) {
|
|
7295
|
+
return true;
|
|
7296
|
+
}
|
|
7297
|
+
return false;
|
|
7298
|
+
}
|
|
7299
|
+
});
|
|
7300
|
+
useEffect(() => {
|
|
7301
|
+
setIsDisabled(disabled);
|
|
7302
|
+
}, [disabled]);
|
|
7303
|
+
useEffect(() => {
|
|
7304
|
+
setIsReadOnly(readOnly);
|
|
7305
|
+
}, [readOnly]);
|
|
7306
|
+
return /* @__PURE__ */ jsx(
|
|
7307
|
+
ComboboxLegacyContext.Provider,
|
|
7308
|
+
{
|
|
7309
|
+
value: {
|
|
7310
|
+
multiple: true,
|
|
7311
|
+
select: true,
|
|
7312
|
+
items,
|
|
7313
|
+
itemToString,
|
|
7314
|
+
itemToKey,
|
|
7315
|
+
isOpen,
|
|
7316
|
+
getLabelProps,
|
|
7317
|
+
getToggleButtonProps,
|
|
7318
|
+
getMenuProps,
|
|
7319
|
+
getItemProps,
|
|
7320
|
+
highlightedIndex,
|
|
7321
|
+
selectedItem,
|
|
7322
|
+
selectedItems,
|
|
7323
|
+
disabledItems,
|
|
7324
|
+
setDisabledItems,
|
|
7325
|
+
getSelectedItemProps,
|
|
7326
|
+
getDropdownProps,
|
|
7327
|
+
reset,
|
|
7328
|
+
addSelectedItem,
|
|
7329
|
+
removeSelectedItem,
|
|
7330
|
+
setSelectedItems,
|
|
7331
|
+
selectItem,
|
|
7332
|
+
inputValue,
|
|
7333
|
+
isDisabled,
|
|
7334
|
+
isReadOnly,
|
|
7335
|
+
setIsReadOnly,
|
|
7336
|
+
setIsDisabled,
|
|
7337
|
+
hasDisabledPopover,
|
|
7338
|
+
setHasDisabledPopover,
|
|
7339
|
+
hasEmpty,
|
|
7340
|
+
setHasEmpty,
|
|
7341
|
+
loading,
|
|
7342
|
+
referenceRef,
|
|
7343
|
+
contentRef,
|
|
7344
|
+
closeMenu
|
|
7345
|
+
},
|
|
7346
|
+
children: /* @__PURE__ */ jsx(
|
|
7347
|
+
"div",
|
|
7348
|
+
{
|
|
7349
|
+
className: ComboboxLegacyClassNames,
|
|
7350
|
+
"data-anv": "combobox",
|
|
7351
|
+
style: { ...style, ...layoutStyles },
|
|
7352
|
+
ref: wrapperDivRef,
|
|
7353
|
+
children: /* @__PURE__ */ jsx(
|
|
7354
|
+
PopoverLegacy,
|
|
7355
|
+
{
|
|
7356
|
+
root,
|
|
7357
|
+
open: !isDisabled && isOpen,
|
|
7358
|
+
noPadding: true,
|
|
7359
|
+
disableCaret: true,
|
|
7360
|
+
fitScreen: true,
|
|
7361
|
+
disableFlipFallback: true,
|
|
7362
|
+
placement: "bottom-start",
|
|
7363
|
+
matchReferenceWidth: !disableMatchReferenceWidth,
|
|
7364
|
+
disableCloseOnClickOutside,
|
|
7365
|
+
onOutsidePress: handleOutsidePress,
|
|
7366
|
+
children
|
|
7367
|
+
}
|
|
7368
|
+
)
|
|
7369
|
+
}
|
|
7370
|
+
)
|
|
7371
|
+
}
|
|
7372
|
+
);
|
|
7373
|
+
};
|
|
7374
|
+
|
|
7375
|
+
const ComboboxLegacyTrigger = ({
|
|
7376
|
+
variant: variantProp = "combobox",
|
|
7377
|
+
className,
|
|
7378
|
+
label,
|
|
7379
|
+
size,
|
|
7380
|
+
error,
|
|
7381
|
+
hint,
|
|
7382
|
+
description,
|
|
7383
|
+
required,
|
|
7384
|
+
moreInfo,
|
|
7385
|
+
openMoreInfo,
|
|
7386
|
+
prefix,
|
|
7387
|
+
suffix,
|
|
7388
|
+
maxRows,
|
|
7389
|
+
id,
|
|
7390
|
+
disabled,
|
|
7391
|
+
readOnly,
|
|
7392
|
+
...rest
|
|
7393
|
+
}) => {
|
|
7394
|
+
const {
|
|
7395
|
+
select,
|
|
7396
|
+
disableClearSelection,
|
|
7397
|
+
isOpen,
|
|
7398
|
+
itemToString,
|
|
7399
|
+
getLabelProps,
|
|
7400
|
+
getInputProps,
|
|
7401
|
+
getToggleButtonProps,
|
|
7402
|
+
selectedItem,
|
|
7403
|
+
selectedItems,
|
|
7404
|
+
getSelectedItemProps,
|
|
7405
|
+
getDropdownProps,
|
|
7406
|
+
reset,
|
|
7407
|
+
removeSelectedItem,
|
|
7408
|
+
selectItem,
|
|
7409
|
+
inputValue,
|
|
7410
|
+
isDisabled,
|
|
7411
|
+
isReadOnly,
|
|
7412
|
+
referenceRef,
|
|
7413
|
+
contentRef,
|
|
7414
|
+
closeMenu,
|
|
7415
|
+
setIsDisabled,
|
|
7416
|
+
setIsReadOnly
|
|
7417
|
+
} = useComboboxLegacy();
|
|
7418
|
+
const variant = select ? "select" : "combobox";
|
|
7419
|
+
const context = usePopoverLegacyContext();
|
|
7420
|
+
const inputRef = useRef(null);
|
|
7421
|
+
const ComboboxLegacyTriggerClassNames = cx(styles$1["search-field"], {
|
|
7422
|
+
[styles$1["select"]]: variant === "select"
|
|
7423
|
+
});
|
|
7424
|
+
const noClearButton = isDisabled || isReadOnly || disableClearSelection;
|
|
7425
|
+
const ComboboxLegacyInputWrapperClassNames = cx(
|
|
7426
|
+
styles$1["input-wrapper"],
|
|
7427
|
+
className ? {
|
|
7428
|
+
[className]: variant === "select"
|
|
7429
|
+
} : {},
|
|
7430
|
+
{
|
|
7431
|
+
[styles$1["small"]]: size === "small",
|
|
7432
|
+
[styles$1["large"]]: size === "large",
|
|
7433
|
+
[styles$1["no-clear-button"]]: noClearButton
|
|
7434
|
+
}
|
|
7435
|
+
);
|
|
7436
|
+
const ComboboxLegacyInputClassNames = cx(
|
|
7437
|
+
styles$1["input"],
|
|
7438
|
+
className ? {
|
|
7439
|
+
[className]: variant === "combobox"
|
|
7440
|
+
} : {},
|
|
7441
|
+
{
|
|
7442
|
+
[styles$1["error"]]: error
|
|
7443
|
+
}
|
|
7444
|
+
);
|
|
7445
|
+
useLayoutEffect(() => {
|
|
7446
|
+
if (typeof disabled === "undefined") return;
|
|
7447
|
+
setIsDisabled(disabled);
|
|
7448
|
+
}, [disabled, setIsDisabled]);
|
|
7449
|
+
useLayoutEffect(() => {
|
|
7450
|
+
if (typeof readOnly === "undefined") return;
|
|
7451
|
+
setIsReadOnly(readOnly);
|
|
7452
|
+
}, [readOnly, setIsReadOnly]);
|
|
7453
|
+
const labelUid = "label" + useId();
|
|
7454
|
+
const helperUid = "helper" + useId();
|
|
7455
|
+
const placeholderUid = "placeholder" + useId();
|
|
7456
|
+
const ariaDescribedBy = `${helperUid} ${placeholderUid}`;
|
|
7457
|
+
const errorMessage = typeof error !== "boolean" ? error : undefined;
|
|
7458
|
+
const handleBlur = (e) => {
|
|
7459
|
+
const target = e.relatedTarget ?? e.target;
|
|
7460
|
+
const focusedOnReference = referenceRef.current && referenceRef.current.contains(target);
|
|
7461
|
+
const focusedOnContent = contentRef.current && contentRef.current.contains(target);
|
|
7462
|
+
if (!focusedOnReference && !focusedOnContent) {
|
|
7463
|
+
closeMenu();
|
|
7464
|
+
}
|
|
7465
|
+
};
|
|
7466
|
+
const rowsRef = useRef(null);
|
|
7467
|
+
const [stillCalculating, setStillCalculating] = useState(false);
|
|
7468
|
+
const [collapsedChips, setCollapsedChips] = useState(false);
|
|
7469
|
+
const [visibleChipsCount, setVisibleChipsCount] = useState(
|
|
7470
|
+
null
|
|
7471
|
+
);
|
|
7472
|
+
const [forceRenderCount, setForceRenderCount] = useState(0);
|
|
7473
|
+
useLayoutEffect(() => {
|
|
7474
|
+
if (maxRows === undefined) return;
|
|
7475
|
+
if (stillCalculating === false) {
|
|
7476
|
+
setStillCalculating(true);
|
|
7477
|
+
setCollapsedChips(false);
|
|
7478
|
+
setVisibleChipsCount(null);
|
|
7479
|
+
setForceRenderCount((x) => x + 1);
|
|
7480
|
+
} else if (rowsRef?.current?.children) {
|
|
7481
|
+
const children = rowsRef?.current?.children;
|
|
7482
|
+
const rowData = Array.from(children).reduce(
|
|
7483
|
+
(acc, child) => {
|
|
7484
|
+
const top = child.getBoundingClientRect().top;
|
|
7485
|
+
if (!acc.length) {
|
|
7486
|
+
return [{ count: 1, top }];
|
|
7487
|
+
} else if (acc[acc.length - 1].top === top) {
|
|
7488
|
+
return [
|
|
7489
|
+
...acc.slice(0, -1),
|
|
7490
|
+
{ count: acc[acc.length - 1].count + 1, top }
|
|
7491
|
+
];
|
|
7492
|
+
} else if (acc[acc.length - 1].top !== top) {
|
|
7493
|
+
return [...acc, { count: 1, top }];
|
|
7494
|
+
} else {
|
|
7495
|
+
return acc;
|
|
7496
|
+
}
|
|
7497
|
+
},
|
|
7498
|
+
[]
|
|
7499
|
+
);
|
|
7500
|
+
if (!rowData[maxRows] || visibleChipsCount === 0) {
|
|
7501
|
+
setStillCalculating(false);
|
|
7502
|
+
} else {
|
|
7503
|
+
setCollapsedChips(true);
|
|
7504
|
+
if (visibleChipsCount == null) {
|
|
7505
|
+
const firstGuess = Math.max(
|
|
7506
|
+
rowData.reduce((sum, row) => sum + row.count, -2),
|
|
7507
|
+
0
|
|
7508
|
+
);
|
|
7509
|
+
setVisibleChipsCount(firstGuess);
|
|
7510
|
+
} else {
|
|
7511
|
+
setVisibleChipsCount(visibleChipsCount - 1);
|
|
7512
|
+
}
|
|
7513
|
+
setForceRenderCount((x) => x + 1);
|
|
7514
|
+
}
|
|
7515
|
+
}
|
|
7516
|
+
}, [selectedItems.length, maxRows, forceRenderCount]);
|
|
7517
|
+
const selectedItemsDisplayCount = collapsedChips && maxRows != null && visibleChipsCount !== null ? visibleChipsCount : selectedItems.length;
|
|
7518
|
+
return /* @__PURE__ */ jsxs(
|
|
7519
|
+
"div",
|
|
7520
|
+
{
|
|
7521
|
+
className: ComboboxLegacyTriggerClassNames,
|
|
7522
|
+
"data-anv": "combobox-searchfield",
|
|
7523
|
+
ref: referenceRef,
|
|
7524
|
+
onBlur: handleBlur,
|
|
7525
|
+
children: [
|
|
7526
|
+
label ? /* @__PURE__ */ jsx(
|
|
7527
|
+
Label,
|
|
7528
|
+
{
|
|
7529
|
+
...getLabelProps({
|
|
7530
|
+
className: styles$1["label"],
|
|
7531
|
+
required,
|
|
7532
|
+
moreInfo,
|
|
7533
|
+
openMoreInfo,
|
|
7534
|
+
id: labelUid
|
|
7535
|
+
}),
|
|
7536
|
+
children: label
|
|
7537
|
+
}
|
|
7538
|
+
) : null,
|
|
7539
|
+
/* @__PURE__ */ jsxs(
|
|
7540
|
+
"div",
|
|
7541
|
+
{
|
|
7542
|
+
className: ComboboxLegacyInputWrapperClassNames,
|
|
7543
|
+
role: "presentation",
|
|
7544
|
+
...variant === "select" ? {
|
|
7545
|
+
...getToggleButtonProps({
|
|
7546
|
+
disabled: isDisabled,
|
|
7547
|
+
readOnly: isReadOnly,
|
|
7548
|
+
ref: context.refs.setReference,
|
|
7549
|
+
id,
|
|
7550
|
+
"aria-describedby": ariaDescribedBy,
|
|
7551
|
+
"aria-labelledby": labelUid
|
|
7552
|
+
})
|
|
7553
|
+
} : {
|
|
7554
|
+
ref: context.refs.setReference,
|
|
7555
|
+
onClick: () => inputRef.current?.focus()
|
|
7556
|
+
},
|
|
7557
|
+
children: [
|
|
7558
|
+
/* @__PURE__ */ jsxs("div", { className: styles$1["buttons-wrapper"], children: [
|
|
7559
|
+
(inputValue || selectedItem || selectedItems.length) && !noClearButton ? /* @__PURE__ */ jsx("div", { className: styles$1["close-button-wrapper"], children: /* @__PURE__ */ jsx(
|
|
7560
|
+
Button,
|
|
7561
|
+
{
|
|
7562
|
+
"aria-label": "clear selection",
|
|
7563
|
+
appearance: "ghost",
|
|
7564
|
+
size: "small",
|
|
7565
|
+
icon: SvgClose,
|
|
7566
|
+
className: styles$1["close-button"],
|
|
7567
|
+
onClick: (e) => {
|
|
7568
|
+
e.stopPropagation();
|
|
7569
|
+
if (reset != null) {
|
|
7570
|
+
reset();
|
|
7571
|
+
} else {
|
|
7572
|
+
selectItem(null);
|
|
7573
|
+
}
|
|
7574
|
+
},
|
|
7575
|
+
tabIndex: -1
|
|
7576
|
+
}
|
|
7577
|
+
) }) : null,
|
|
7578
|
+
/* @__PURE__ */ jsx("div", { className: styles$1["toggle-button-wrapper"], children: /* @__PURE__ */ jsx(
|
|
7579
|
+
Button,
|
|
7580
|
+
{
|
|
7581
|
+
...variant === "select" ? { tabIndex: -1 } : getToggleButtonProps(),
|
|
7582
|
+
className: styles$1["toggle-button"],
|
|
7583
|
+
"aria-label": "toggle menu",
|
|
7584
|
+
icon: SvgChevronRight,
|
|
7585
|
+
appearance: "ghost",
|
|
7586
|
+
size: "small",
|
|
7587
|
+
disabled: isDisabled
|
|
7588
|
+
}
|
|
7589
|
+
) })
|
|
7590
|
+
] }),
|
|
7591
|
+
/* @__PURE__ */ jsxs("div", { className: styles$1["rows-wrapper"], ref: rowsRef, children: [
|
|
7592
|
+
selectedItems.length && removeSelectedItem != null && getSelectedItemProps != null ? selectedItems.slice(0, selectedItemsDisplayCount).map((item, index) => {
|
|
7593
|
+
const { onClick, ...selectedItemProps } = getSelectedItemProps({
|
|
7594
|
+
selectedItem: item,
|
|
7595
|
+
index
|
|
7596
|
+
});
|
|
7597
|
+
return /* @__PURE__ */ jsx(
|
|
7598
|
+
"div",
|
|
7599
|
+
{
|
|
7600
|
+
className: styles$1["chip-wrapper"],
|
|
7601
|
+
children: /* @__PURE__ */ jsx(
|
|
7602
|
+
Chip,
|
|
7603
|
+
{
|
|
7604
|
+
...selectedItemProps,
|
|
7605
|
+
label: itemToString(item),
|
|
7606
|
+
onClose: isDisabled || isReadOnly ? undefined : (e) => {
|
|
7607
|
+
removeSelectedItem(item);
|
|
7608
|
+
},
|
|
7609
|
+
className: styles$1["chip"],
|
|
7610
|
+
title: itemToString(item)
|
|
7611
|
+
}
|
|
7612
|
+
)
|
|
7613
|
+
},
|
|
7614
|
+
`selected-item-${index}`
|
|
7615
|
+
);
|
|
7616
|
+
}) : null,
|
|
7617
|
+
collapsedChips && maxRows != null ? /* @__PURE__ */ jsx("div", { className: styles$1["chip-wrapper"], children: /* @__PURE__ */ jsx(
|
|
7618
|
+
Chip,
|
|
7619
|
+
{
|
|
7620
|
+
label: `+${selectedItems.length - selectedItemsDisplayCount}`,
|
|
7621
|
+
className: styles$1["chip"],
|
|
7622
|
+
title: selectedItems.slice(selectedItemsDisplayCount).map((item) => itemToString(item)).join(", ")
|
|
7623
|
+
}
|
|
7624
|
+
) }) : null,
|
|
7625
|
+
/* @__PURE__ */ jsxs(Flex, { className: styles$1["input-flex"], alignItems: "center", children: [
|
|
7626
|
+
prefix ? /* @__PURE__ */ jsx("div", { className: styles$1["prefix"], children: prefix }) : null,
|
|
7627
|
+
variant === "select" ? /* @__PURE__ */ jsx(
|
|
7628
|
+
"div",
|
|
7629
|
+
{
|
|
7630
|
+
...getDropdownProps != null ? getDropdownProps({
|
|
7631
|
+
className: ComboboxLegacyInputClassNames,
|
|
7632
|
+
required,
|
|
7633
|
+
preventKeyAction: isOpen
|
|
7634
|
+
}) : {
|
|
7635
|
+
className: ComboboxLegacyInputClassNames,
|
|
7636
|
+
required
|
|
7637
|
+
},
|
|
7638
|
+
children: selectedItems.length ? null : selectedItem ? itemToString(selectedItem) : /* @__PURE__ */ jsx(
|
|
7639
|
+
"span",
|
|
7640
|
+
{
|
|
7641
|
+
className: styles$1["fake-placeholder"],
|
|
7642
|
+
id: placeholderUid,
|
|
7643
|
+
children: rest.placeholder
|
|
7644
|
+
}
|
|
7645
|
+
)
|
|
7646
|
+
}
|
|
7647
|
+
) : /* @__PURE__ */ jsx(
|
|
7648
|
+
"input",
|
|
7649
|
+
{
|
|
7650
|
+
...getDropdownProps != null && getInputProps != null ? getInputProps(
|
|
7651
|
+
getDropdownProps({
|
|
7652
|
+
...rest,
|
|
7653
|
+
className: ComboboxLegacyInputClassNames,
|
|
7654
|
+
disabled: isDisabled,
|
|
7655
|
+
readOnly: isReadOnly,
|
|
7656
|
+
required,
|
|
7657
|
+
autoComplete: "off",
|
|
7658
|
+
id,
|
|
7659
|
+
"aria-describedby": ariaDescribedBy,
|
|
7660
|
+
"aria-labelledby": labelUid,
|
|
7661
|
+
preventKeyAction: isOpen,
|
|
7662
|
+
ref: inputRef
|
|
7663
|
+
})
|
|
7664
|
+
) : getInputProps != null ? getInputProps({
|
|
7665
|
+
...rest,
|
|
7666
|
+
className: ComboboxLegacyInputClassNames,
|
|
7667
|
+
disabled: isDisabled,
|
|
7668
|
+
readOnly: isReadOnly,
|
|
7669
|
+
required,
|
|
7670
|
+
autoComplete: "off",
|
|
7671
|
+
id,
|
|
7672
|
+
"aria-describedby": ariaDescribedBy,
|
|
7673
|
+
"aria-labelledby": labelUid,
|
|
7674
|
+
ref: inputRef
|
|
7675
|
+
}) : {}
|
|
7676
|
+
}
|
|
7677
|
+
),
|
|
7678
|
+
suffix ? /* @__PURE__ */ jsx("div", { className: styles$1["suffix"], children: suffix }) : null
|
|
7679
|
+
] })
|
|
7680
|
+
] })
|
|
7681
|
+
]
|
|
7682
|
+
}
|
|
7683
|
+
),
|
|
7684
|
+
hint || errorMessage || description ? /* @__PURE__ */ jsx(
|
|
7685
|
+
Helper,
|
|
7686
|
+
{
|
|
7687
|
+
id: helperUid,
|
|
7688
|
+
errorMessage,
|
|
7689
|
+
hint,
|
|
7690
|
+
description
|
|
7691
|
+
}
|
|
7692
|
+
) : null
|
|
7693
|
+
]
|
|
7694
|
+
}
|
|
7695
|
+
);
|
|
7696
|
+
};
|
|
7697
|
+
|
|
7698
|
+
const ComboboxLegacyContent = function({
|
|
7699
|
+
children,
|
|
7700
|
+
className,
|
|
7701
|
+
disablePopover = false,
|
|
7702
|
+
...rest
|
|
7703
|
+
}) {
|
|
7704
|
+
const {
|
|
7705
|
+
items,
|
|
7706
|
+
itemToKey,
|
|
7707
|
+
inputValue,
|
|
7708
|
+
selectedItem,
|
|
7709
|
+
selectedItems,
|
|
7710
|
+
setHasDisabledPopover,
|
|
7711
|
+
getMenuProps,
|
|
7712
|
+
getItemProps,
|
|
7713
|
+
isDisabled,
|
|
7714
|
+
isReadOnly,
|
|
7715
|
+
referenceRef,
|
|
7716
|
+
contentRef,
|
|
7717
|
+
closeMenu
|
|
7718
|
+
} = useComboboxLegacy();
|
|
7719
|
+
const ComboboxLegacyPopoverContentClassNames = cx(
|
|
7720
|
+
styles$1["popover-content"],
|
|
7721
|
+
className
|
|
7722
|
+
);
|
|
7723
|
+
useEffect(() => {
|
|
7724
|
+
setHasDisabledPopover(disablePopover);
|
|
7725
|
+
return () => {
|
|
7726
|
+
setHasDisabledPopover(false);
|
|
7727
|
+
};
|
|
7728
|
+
}, [disablePopover, setHasDisabledPopover]);
|
|
7729
|
+
const handleBlur = (e) => {
|
|
7730
|
+
const target = e.relatedTarget ?? e.target;
|
|
7731
|
+
const focusedOnReference = referenceRef.current && referenceRef.current.contains(target);
|
|
7732
|
+
const focusedOnContent = contentRef.current && contentRef.current.contains(target);
|
|
7733
|
+
if (!focusedOnReference && !focusedOnContent) {
|
|
7734
|
+
closeMenu();
|
|
7735
|
+
}
|
|
7736
|
+
};
|
|
7737
|
+
return disablePopover ? /* @__PURE__ */ jsx(
|
|
7738
|
+
"div",
|
|
7739
|
+
{
|
|
7740
|
+
...rest,
|
|
7741
|
+
className: ComboboxLegacyPopoverContentClassNames,
|
|
7742
|
+
ref: contentRef,
|
|
7743
|
+
onBlur: handleBlur,
|
|
7744
|
+
children: children ? children({
|
|
7745
|
+
items,
|
|
7746
|
+
inputValue,
|
|
7747
|
+
selectedItem,
|
|
7748
|
+
getMenuProps,
|
|
7749
|
+
getItemProps,
|
|
7750
|
+
listProps: {
|
|
7751
|
+
...getMenuProps({}, { suppressRefError: true }),
|
|
7752
|
+
style: {
|
|
7753
|
+
display: items.length ? "" : "none",
|
|
7754
|
+
overflow: "auto"
|
|
7755
|
+
}
|
|
7756
|
+
},
|
|
7757
|
+
options: items.map((item, index) => ({
|
|
7758
|
+
optionProps: {
|
|
7759
|
+
...getItemProps({
|
|
7760
|
+
item,
|
|
7761
|
+
index
|
|
7762
|
+
}),
|
|
7763
|
+
selected: itemToKey(selectedItem) === itemToKey(item) || selectedItems.some(
|
|
7764
|
+
(selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
|
|
7765
|
+
),
|
|
7766
|
+
disabled: !!isDisabled || !!isReadOnly
|
|
7767
|
+
// also see "isItemDisabled" function
|
|
7768
|
+
},
|
|
7769
|
+
item,
|
|
7770
|
+
index
|
|
7771
|
+
}))
|
|
7772
|
+
}) : null
|
|
7773
|
+
}
|
|
7774
|
+
) : /* @__PURE__ */ jsx(
|
|
7775
|
+
Popover.Content,
|
|
7776
|
+
{
|
|
7777
|
+
"data-anv": "combobox-content",
|
|
7778
|
+
...rest,
|
|
7779
|
+
className: ComboboxLegacyPopoverContentClassNames,
|
|
7780
|
+
ref: getMenuProps({ ref: contentRef }, { suppressRefError: true }).ref,
|
|
7781
|
+
onBlur: handleBlur,
|
|
7782
|
+
children: children ? children({
|
|
7783
|
+
items,
|
|
7784
|
+
inputValue,
|
|
7785
|
+
selectedItem,
|
|
7786
|
+
getMenuProps,
|
|
7787
|
+
getItemProps,
|
|
7788
|
+
listProps: {
|
|
7789
|
+
...getMenuProps({}, { suppressRefError: true }),
|
|
7790
|
+
style: {
|
|
7791
|
+
display: items.length ? undefined : "none",
|
|
7792
|
+
overflow: "auto"
|
|
7793
|
+
}
|
|
7794
|
+
},
|
|
7795
|
+
options: items.map((item, index) => ({
|
|
7796
|
+
optionProps: {
|
|
7797
|
+
...getItemProps({
|
|
7798
|
+
item,
|
|
7799
|
+
index
|
|
7800
|
+
}),
|
|
7801
|
+
selected: itemToKey(selectedItem) === itemToKey(item) || selectedItems.some(
|
|
7802
|
+
(selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
|
|
7803
|
+
),
|
|
7804
|
+
disabled: !!isDisabled || !!isReadOnly
|
|
7805
|
+
// also see "isItemDisabled" function
|
|
7806
|
+
},
|
|
7807
|
+
item,
|
|
7808
|
+
index
|
|
7809
|
+
}))
|
|
7810
|
+
}) : null
|
|
7811
|
+
}
|
|
7812
|
+
);
|
|
7813
|
+
};
|
|
7814
|
+
|
|
7815
|
+
const ComboboxLegacyList = function({
|
|
7816
|
+
children,
|
|
7817
|
+
...rest
|
|
7818
|
+
}) {
|
|
7819
|
+
const {
|
|
7820
|
+
getMenuProps,
|
|
7821
|
+
multiple,
|
|
7822
|
+
items,
|
|
7823
|
+
hasAddNew = false,
|
|
7824
|
+
hasEmpty,
|
|
7825
|
+
loading
|
|
7826
|
+
} = useComboboxLegacy();
|
|
7827
|
+
if (multiple) {
|
|
7828
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7829
|
+
/* @__PURE__ */ jsxs(
|
|
7830
|
+
"div",
|
|
7831
|
+
{
|
|
7832
|
+
...getMenuProps(rest),
|
|
7833
|
+
"data-anv": "combobox-list",
|
|
7834
|
+
className: cx(styles$1["listview"], styles$2["listview"]),
|
|
7835
|
+
style: {
|
|
7836
|
+
display: items.length || hasAddNew ? undefined : "none",
|
|
7837
|
+
overflow: "auto"
|
|
7838
|
+
},
|
|
7839
|
+
children: [
|
|
7840
|
+
children,
|
|
7841
|
+
loading ? /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles$1["loading-spinner"] }) }) : null
|
|
7842
|
+
]
|
|
7843
|
+
}
|
|
7844
|
+
),
|
|
7845
|
+
!items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles$1["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
|
|
7846
|
+
] });
|
|
7847
|
+
} else {
|
|
7848
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7849
|
+
/* @__PURE__ */ jsxs(
|
|
7850
|
+
"ul",
|
|
7851
|
+
{
|
|
7852
|
+
...getMenuProps(rest),
|
|
7853
|
+
"data-anv": "combobox-list",
|
|
7854
|
+
className: styles$3["listbox"],
|
|
7855
|
+
style: {
|
|
7856
|
+
display: items.length || hasAddNew ? undefined : "none",
|
|
7857
|
+
overflow: "auto"
|
|
7858
|
+
},
|
|
7859
|
+
children: [
|
|
7860
|
+
children,
|
|
7861
|
+
loading ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles$1["loading-spinner"] }) }) }) : null
|
|
7862
|
+
]
|
|
7863
|
+
}
|
|
7864
|
+
),
|
|
7865
|
+
!items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles$1["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
|
|
7866
|
+
] });
|
|
7867
|
+
}
|
|
7868
|
+
};
|
|
7869
|
+
|
|
7870
|
+
const ComboboxLegacyItem = function({
|
|
7871
|
+
children,
|
|
7872
|
+
disabled: disabledProp,
|
|
7873
|
+
item,
|
|
7874
|
+
index,
|
|
7875
|
+
alignItems,
|
|
7876
|
+
justifyItems,
|
|
7877
|
+
alignContent,
|
|
7878
|
+
justifyContent,
|
|
7879
|
+
placeItems,
|
|
7880
|
+
placeContent,
|
|
7881
|
+
gap,
|
|
7882
|
+
rowGap,
|
|
7883
|
+
columnGap,
|
|
7884
|
+
...rest
|
|
7885
|
+
}) {
|
|
7886
|
+
const {
|
|
7887
|
+
itemToKey,
|
|
7888
|
+
getItemProps,
|
|
7889
|
+
multiple,
|
|
7890
|
+
selectedItem,
|
|
7891
|
+
selectedItems,
|
|
7892
|
+
disabledItems,
|
|
7893
|
+
setDisabledItems,
|
|
7894
|
+
highlightedIndex
|
|
7895
|
+
} = useComboboxLegacy();
|
|
7896
|
+
const disabled = disabledProp || item && item instanceof Object && "disabled" in item && item.disabled;
|
|
7897
|
+
useEffect(() => {
|
|
7898
|
+
if (disabledProp && !disabledItems.includes(item)) {
|
|
7899
|
+
setDisabledItems([...disabledItems, item]);
|
|
7900
|
+
} else if (disabledItems.includes(item)) {
|
|
7901
|
+
setDisabledItems(disabledItems.filter((prevItem) => prevItem === item));
|
|
7902
|
+
}
|
|
7903
|
+
return () => {
|
|
7904
|
+
if (disabledItems.includes(item)) {
|
|
7905
|
+
setDisabledItems(disabledItems.filter((prevItem) => prevItem === item));
|
|
7906
|
+
}
|
|
7907
|
+
};
|
|
7908
|
+
}, [item, disabledProp, setDisabledItems]);
|
|
7909
|
+
if (multiple) {
|
|
7910
|
+
const checked = selectedItems.some(
|
|
7911
|
+
(selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
|
|
7912
|
+
);
|
|
7913
|
+
return /* @__PURE__ */ jsxs(
|
|
7914
|
+
"div",
|
|
7915
|
+
{
|
|
7916
|
+
"data-anv": "combobox-item",
|
|
7917
|
+
...getItemProps({
|
|
7918
|
+
item,
|
|
7919
|
+
index,
|
|
7920
|
+
"aria-selected": highlightedIndex === index,
|
|
7921
|
+
...rest
|
|
7922
|
+
}),
|
|
7923
|
+
className: cx(
|
|
7924
|
+
styles$1["listview-option"],
|
|
7925
|
+
styles$2["listview-option"]
|
|
7926
|
+
),
|
|
7927
|
+
children: [
|
|
7928
|
+
/* @__PURE__ */ jsx("div", { className: cx(styles$1["cell"], styles$2["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
|
|
7929
|
+
/* @__PURE__ */ jsx(
|
|
7930
|
+
"input",
|
|
7931
|
+
{
|
|
7932
|
+
type: "checkbox",
|
|
7933
|
+
checked,
|
|
7934
|
+
"aria-checked": checked,
|
|
7935
|
+
"aria-label": "Select",
|
|
7936
|
+
readOnly: true,
|
|
7937
|
+
...disabled ? { disabled: true } : {}
|
|
7938
|
+
}
|
|
7939
|
+
),
|
|
7940
|
+
/* @__PURE__ */ jsxs("span", { className: checkboxStyles["icon-wrapper"], "aria-hidden": true, children: [
|
|
7941
|
+
/* @__PURE__ */ jsx(
|
|
7942
|
+
Icon$2,
|
|
7943
|
+
{
|
|
7944
|
+
size: "large",
|
|
7945
|
+
svg: SvgIndeterminateCheckBox,
|
|
7946
|
+
className: checkboxStyles["icon-indeterminate"]
|
|
7947
|
+
}
|
|
7948
|
+
),
|
|
7949
|
+
/* @__PURE__ */ jsx(
|
|
7950
|
+
Icon$2,
|
|
7951
|
+
{
|
|
7952
|
+
size: "large",
|
|
7953
|
+
svg: SvgCheckBox,
|
|
7954
|
+
className: checkboxStyles["icon-checked"]
|
|
7955
|
+
}
|
|
7956
|
+
),
|
|
7957
|
+
/* @__PURE__ */ jsx(
|
|
7958
|
+
Icon$2,
|
|
7959
|
+
{
|
|
7960
|
+
size: "large",
|
|
7961
|
+
svg: SvgCheckBoxOutlineBlank,
|
|
7962
|
+
className: checkboxStyles["icon-unchecked"]
|
|
7963
|
+
}
|
|
7964
|
+
)
|
|
7965
|
+
] }),
|
|
7966
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true })
|
|
7967
|
+
] }) }) }),
|
|
7968
|
+
/* @__PURE__ */ jsx(
|
|
7969
|
+
Flex,
|
|
7970
|
+
{
|
|
7971
|
+
grow: 1,
|
|
7972
|
+
shrink: 1,
|
|
7973
|
+
alignItems,
|
|
7974
|
+
justifyItems,
|
|
7975
|
+
alignContent,
|
|
7976
|
+
justifyContent,
|
|
7977
|
+
placeItems,
|
|
7978
|
+
placeContent,
|
|
7979
|
+
gap,
|
|
7980
|
+
rowGap,
|
|
7981
|
+
columnGap,
|
|
7982
|
+
children
|
|
7983
|
+
}
|
|
7984
|
+
)
|
|
7985
|
+
]
|
|
7986
|
+
}
|
|
7987
|
+
);
|
|
7988
|
+
} else {
|
|
7989
|
+
return /* @__PURE__ */ jsxs(
|
|
7990
|
+
"li",
|
|
7991
|
+
{
|
|
7992
|
+
...getItemProps({
|
|
7993
|
+
item,
|
|
7994
|
+
index,
|
|
7995
|
+
"aria-selected": highlightedIndex === index,
|
|
7996
|
+
...rest
|
|
7997
|
+
}),
|
|
7998
|
+
"data-anv": "combobox-item",
|
|
7999
|
+
"data-checked": itemToKey(selectedItem) === itemToKey(item),
|
|
8000
|
+
className: styles$1["item"],
|
|
8001
|
+
...disabled ? { "aria-disabled": true } : {},
|
|
8002
|
+
children: [
|
|
8003
|
+
/* @__PURE__ */ jsx(
|
|
8004
|
+
Flex,
|
|
8005
|
+
{
|
|
8006
|
+
className: styles$3["children"],
|
|
8007
|
+
grow: 1,
|
|
8008
|
+
shrink: 1,
|
|
8009
|
+
alignItems,
|
|
8010
|
+
justifyItems,
|
|
8011
|
+
alignContent,
|
|
8012
|
+
justifyContent,
|
|
8013
|
+
placeItems,
|
|
8014
|
+
placeContent,
|
|
8015
|
+
gap,
|
|
8016
|
+
rowGap,
|
|
8017
|
+
columnGap,
|
|
8018
|
+
children
|
|
8019
|
+
}
|
|
8020
|
+
),
|
|
8021
|
+
/* @__PURE__ */ jsx(
|
|
8022
|
+
Icon$2,
|
|
8023
|
+
{
|
|
8024
|
+
"aria-hidden": true,
|
|
8025
|
+
svg: SvgCheck,
|
|
8026
|
+
inherit: true,
|
|
8027
|
+
className: styles$1["Icon"],
|
|
8028
|
+
style: {
|
|
8029
|
+
opacity: itemToKey(selectedItem) === itemToKey(item) ? 1 : 0
|
|
8030
|
+
}
|
|
8031
|
+
}
|
|
8032
|
+
)
|
|
8033
|
+
]
|
|
8034
|
+
}
|
|
8035
|
+
);
|
|
8036
|
+
}
|
|
8037
|
+
};
|
|
8038
|
+
const ComboboxLegacyItemAddNew = function({
|
|
8039
|
+
onSelection,
|
|
8040
|
+
...props
|
|
8041
|
+
}) {
|
|
8042
|
+
const { items, setHasAddNew, hasExactMatch, setOnSelectItemAddNew } = useComboboxLegacy();
|
|
8043
|
+
useEffect(() => {
|
|
8044
|
+
setHasAddNew?.(true);
|
|
8045
|
+
return () => {
|
|
8046
|
+
setHasAddNew?.(false);
|
|
8047
|
+
};
|
|
8048
|
+
}, []);
|
|
8049
|
+
useEffect(() => {
|
|
8050
|
+
setOnSelectItemAddNew?.(() => onSelection);
|
|
8051
|
+
return () => {
|
|
8052
|
+
setOnSelectItemAddNew?.(undefined);
|
|
8053
|
+
};
|
|
8054
|
+
}, [setOnSelectItemAddNew, onSelection]);
|
|
8055
|
+
const firstRenderRef = useRef(true);
|
|
8056
|
+
useEffect(() => {
|
|
8057
|
+
if (firstRenderRef.current === true) {
|
|
8058
|
+
firstRenderRef.current = false;
|
|
8059
|
+
}
|
|
8060
|
+
}, []);
|
|
8061
|
+
return !hasExactMatch && !firstRenderRef.current ? /* @__PURE__ */ jsx(
|
|
8062
|
+
ComboboxLegacyItem,
|
|
8063
|
+
{
|
|
8064
|
+
...props,
|
|
8065
|
+
item: ADD_NEW$1,
|
|
8066
|
+
index: items.length
|
|
8067
|
+
}
|
|
8068
|
+
) : null;
|
|
8069
|
+
};
|
|
8070
|
+
|
|
8071
|
+
const ComboboxLegacyEmpty = function({
|
|
8072
|
+
children
|
|
8073
|
+
}) {
|
|
8074
|
+
const { items, setHasEmpty } = useComboboxLegacy();
|
|
8075
|
+
useEffect(() => {
|
|
8076
|
+
setHasEmpty?.(true);
|
|
8077
|
+
return () => {
|
|
8078
|
+
setHasEmpty?.(false);
|
|
8079
|
+
};
|
|
8080
|
+
});
|
|
8081
|
+
return !items.length ? children : null;
|
|
8082
|
+
};
|
|
8083
|
+
|
|
8084
|
+
const item = "_item_1ued6_5";
|
|
8085
|
+
const input = "_input_1ued6_18";
|
|
8086
|
+
const prefix = "_prefix_1ued6_46";
|
|
8087
|
+
const suffix = "_suffix_1ued6_47";
|
|
8088
|
+
const combobox = "_combobox_1ued6_62";
|
|
8089
|
+
const select = "_select_1ued6_71";
|
|
8090
|
+
const chip = "_chip_1ued6_167";
|
|
8091
|
+
const listview = "_listview_1ued6_208";
|
|
8092
|
+
const empty = "_empty_1ued6_216";
|
|
8093
|
+
const children = "_children_1ued6_244";
|
|
8094
|
+
const Icon = "_Icon_1ued6_247";
|
|
8095
|
+
const small = "_small_1ued6_252";
|
|
8096
|
+
const large = "_large_1ued6_255";
|
|
8097
|
+
const error = "_error_1ued6_273";
|
|
8098
|
+
const disabled = "_disabled_1ued6_286";
|
|
8099
|
+
const styles = {
|
|
8100
|
+
"buttons-wrapper": "_buttons-wrapper_1ued6_3",
|
|
8101
|
+
"search-field": "_search-field_1ued6_4",
|
|
8102
|
+
item: item,
|
|
8103
|
+
input: input,
|
|
8104
|
+
"input-wrapper": "_input-wrapper_1ued6_19",
|
|
8105
|
+
"toggle-button-wrapper": "_toggle-button-wrapper_1ued6_32",
|
|
8106
|
+
"close-button-wrapper": "_close-button-wrapper_1ued6_33",
|
|
8107
|
+
prefix: prefix,
|
|
8108
|
+
suffix: suffix,
|
|
8109
|
+
combobox: combobox,
|
|
8110
|
+
select: select,
|
|
8111
|
+
"popover-content": "_popover-content_1ued6_74",
|
|
8112
|
+
"no-clear-button": "_no-clear-button_1ued6_93",
|
|
8113
|
+
"input-flex": "_input-flex_1ued6_96",
|
|
8114
|
+
"fake-placeholder": "_fake-placeholder_1ued6_124",
|
|
8115
|
+
"close-button": "_close-button_1ued6_33",
|
|
8116
|
+
"toggle-button": "_toggle-button_1ued6_32",
|
|
8117
|
+
"rows-wrapper": "_rows-wrapper_1ued6_157",
|
|
8118
|
+
"chip-wrapper": "_chip-wrapper_1ued6_167",
|
|
8119
|
+
chip: chip,
|
|
8120
|
+
listview: listview,
|
|
8121
|
+
"loading-spinner": "_loading-spinner_1ued6_212",
|
|
8122
|
+
empty: empty,
|
|
8123
|
+
children: children,
|
|
8124
|
+
Icon: Icon,
|
|
8125
|
+
small: small,
|
|
8126
|
+
large: large,
|
|
8127
|
+
error: error,
|
|
8128
|
+
"loading-infinite": "_loading-infinite_1ued6_286",
|
|
8129
|
+
"loading-progress": "_loading-progress_1ued6_286",
|
|
8130
|
+
disabled: disabled,
|
|
8131
|
+
"listview-option": "_listview-option_1ued6_304"
|
|
8132
|
+
};
|
|
8133
|
+
|
|
8134
|
+
const ComboboxTrigger = ({
|
|
8135
|
+
variant: variantProp = "combobox",
|
|
8136
|
+
className,
|
|
8137
|
+
label,
|
|
8138
|
+
size,
|
|
8139
|
+
error,
|
|
8140
|
+
hint,
|
|
8141
|
+
description,
|
|
8142
|
+
required,
|
|
8143
|
+
moreInfo,
|
|
8144
|
+
openMoreInfo,
|
|
8145
|
+
prefix,
|
|
8146
|
+
suffix,
|
|
8147
|
+
maxRows,
|
|
8148
|
+
id,
|
|
8149
|
+
disabled,
|
|
8150
|
+
readOnly,
|
|
8151
|
+
...rest
|
|
8152
|
+
}) => {
|
|
8153
|
+
const {
|
|
8154
|
+
select,
|
|
8155
|
+
disableClearSelection,
|
|
8156
|
+
isOpen,
|
|
8157
|
+
itemToString,
|
|
8158
|
+
getLabelProps,
|
|
8159
|
+
getInputProps,
|
|
8160
|
+
getToggleButtonProps,
|
|
8161
|
+
getMenuProps,
|
|
8162
|
+
selectedItem,
|
|
8163
|
+
selectedItems,
|
|
8164
|
+
getSelectedItemProps,
|
|
8165
|
+
getDropdownProps,
|
|
8166
|
+
reset,
|
|
8167
|
+
removeSelectedItem,
|
|
8168
|
+
selectItem,
|
|
8169
|
+
inputValue,
|
|
8170
|
+
isDisabled,
|
|
8171
|
+
isReadOnly,
|
|
8172
|
+
referenceRef,
|
|
8173
|
+
closeMenu,
|
|
8174
|
+
setIsDisabled,
|
|
8175
|
+
setIsReadOnly
|
|
8176
|
+
} = useCombobox();
|
|
8177
|
+
const variant = select ? "select" : "combobox";
|
|
8178
|
+
const context = usePopoverContext();
|
|
8179
|
+
const inputRef = useRef(null);
|
|
8180
|
+
const ComboboxTriggerClassNames = cx(styles["search-field"], {
|
|
8181
|
+
[styles["select"]]: variant === "select"
|
|
8182
|
+
});
|
|
8183
|
+
const noClearButton = isDisabled || isReadOnly || disableClearSelection;
|
|
8184
|
+
const ComboboxInputWrapperClassNames = cx(
|
|
8185
|
+
styles["input-wrapper"],
|
|
6386
8186
|
className ? {
|
|
6387
8187
|
[className]: variant === "select"
|
|
6388
8188
|
} : {},
|
|
@@ -6655,13 +8455,16 @@ const ComboboxTrigger = ({
|
|
|
6655
8455
|
);
|
|
6656
8456
|
};
|
|
6657
8457
|
const ComboboxSearchField$1 = (props) => {
|
|
8458
|
+
if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props });
|
|
6658
8459
|
return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "combobox" });
|
|
6659
8460
|
};
|
|
6660
8461
|
const ComboboxSelectTrigger$1 = (props) => {
|
|
8462
|
+
if (!supportsPopover())
|
|
8463
|
+
return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props, variant: "select" });
|
|
6661
8464
|
return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "select" });
|
|
6662
8465
|
};
|
|
6663
8466
|
|
|
6664
|
-
const
|
|
8467
|
+
const ComboboxContentElement = function({
|
|
6665
8468
|
children,
|
|
6666
8469
|
className,
|
|
6667
8470
|
disablePopover = false,
|
|
@@ -6775,8 +8578,34 @@ const ComboboxContent$1 = function({
|
|
|
6775
8578
|
}
|
|
6776
8579
|
);
|
|
6777
8580
|
};
|
|
8581
|
+
const ComboboxContent$1 = function({
|
|
8582
|
+
children,
|
|
8583
|
+
className,
|
|
8584
|
+
disablePopover = false,
|
|
8585
|
+
...rest
|
|
8586
|
+
}) {
|
|
8587
|
+
if (!supportsPopover())
|
|
8588
|
+
return /* @__PURE__ */ jsx(
|
|
8589
|
+
ComboboxLegacyContent,
|
|
8590
|
+
{
|
|
8591
|
+
disablePopover,
|
|
8592
|
+
className,
|
|
8593
|
+
...rest,
|
|
8594
|
+
children
|
|
8595
|
+
}
|
|
8596
|
+
);
|
|
8597
|
+
return /* @__PURE__ */ jsx(
|
|
8598
|
+
ComboboxContentElement,
|
|
8599
|
+
{
|
|
8600
|
+
disablePopover,
|
|
8601
|
+
className,
|
|
8602
|
+
...rest,
|
|
8603
|
+
children
|
|
8604
|
+
}
|
|
8605
|
+
);
|
|
8606
|
+
};
|
|
6778
8607
|
|
|
6779
|
-
const
|
|
8608
|
+
const ComboboxListElement = function({
|
|
6780
8609
|
children,
|
|
6781
8610
|
...rest
|
|
6782
8611
|
}) {
|
|
@@ -6788,6 +8617,8 @@ const ComboboxList$1 = function({
|
|
|
6788
8617
|
hasEmpty,
|
|
6789
8618
|
loading
|
|
6790
8619
|
} = useCombobox();
|
|
8620
|
+
if (!supportsPopover())
|
|
8621
|
+
return /* @__PURE__ */ jsx(ComboboxLegacyList, { ...rest, children });
|
|
6791
8622
|
if (multiple) {
|
|
6792
8623
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6793
8624
|
/* @__PURE__ */ jsx(
|
|
@@ -6795,7 +8626,7 @@ const ComboboxList$1 = function({
|
|
|
6795
8626
|
{
|
|
6796
8627
|
...getMenuProps(rest),
|
|
6797
8628
|
"data-anv": "combobox-list",
|
|
6798
|
-
className: cx(styles["listview"], styles$
|
|
8629
|
+
className: cx(styles["listview"], styles$2["listview"]),
|
|
6799
8630
|
style: {
|
|
6800
8631
|
display: items.length || hasAddNew ? undefined : "none",
|
|
6801
8632
|
overflow: "auto"
|
|
@@ -6812,7 +8643,7 @@ const ComboboxList$1 = function({
|
|
|
6812
8643
|
{
|
|
6813
8644
|
...getMenuProps(rest),
|
|
6814
8645
|
"data-anv": "combobox-list",
|
|
6815
|
-
className: styles$
|
|
8646
|
+
className: styles$3["listbox"],
|
|
6816
8647
|
style: {
|
|
6817
8648
|
display: items.length || hasAddNew ? undefined : "none",
|
|
6818
8649
|
overflow: "auto"
|
|
@@ -6824,8 +8655,17 @@ const ComboboxList$1 = function({
|
|
|
6824
8655
|
] });
|
|
6825
8656
|
}
|
|
6826
8657
|
};
|
|
8658
|
+
const ComboboxList$1 = function({
|
|
8659
|
+
children,
|
|
8660
|
+
className,
|
|
8661
|
+
...rest
|
|
8662
|
+
}) {
|
|
8663
|
+
if (!supportsPopover())
|
|
8664
|
+
return /* @__PURE__ */ jsx(ComboboxLegacyList, { className, ...rest, children });
|
|
8665
|
+
return /* @__PURE__ */ jsx(ComboboxListElement, { className, ...rest, children });
|
|
8666
|
+
};
|
|
6827
8667
|
|
|
6828
|
-
const
|
|
8668
|
+
const ComboboxItemElement = function({
|
|
6829
8669
|
children,
|
|
6830
8670
|
disabled: disabledProp,
|
|
6831
8671
|
item,
|
|
@@ -6880,10 +8720,10 @@ const ComboboxItem$1 = function({
|
|
|
6880
8720
|
}),
|
|
6881
8721
|
className: cx(
|
|
6882
8722
|
styles["listview-option"],
|
|
6883
|
-
styles$
|
|
8723
|
+
styles$2["listview-option"]
|
|
6884
8724
|
),
|
|
6885
8725
|
children: [
|
|
6886
|
-
item !== ADD_NEW ? /* @__PURE__ */ jsx("div", { className: cx(styles["cell"], styles$
|
|
8726
|
+
item !== ADD_NEW ? /* @__PURE__ */ jsx("div", { className: cx(styles["cell"], styles$2["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
|
|
6887
8727
|
/* @__PURE__ */ jsx(
|
|
6888
8728
|
"input",
|
|
6889
8729
|
{
|
|
@@ -6898,7 +8738,7 @@ const ComboboxItem$1 = function({
|
|
|
6898
8738
|
),
|
|
6899
8739
|
/* @__PURE__ */ jsxs("span", { className: checkboxStyles["icon-wrapper"], "aria-hidden": true, children: [
|
|
6900
8740
|
/* @__PURE__ */ jsx(
|
|
6901
|
-
Icon$
|
|
8741
|
+
Icon$2,
|
|
6902
8742
|
{
|
|
6903
8743
|
size: "large",
|
|
6904
8744
|
svg: SvgIndeterminateCheckBox,
|
|
@@ -6906,7 +8746,7 @@ const ComboboxItem$1 = function({
|
|
|
6906
8746
|
}
|
|
6907
8747
|
),
|
|
6908
8748
|
/* @__PURE__ */ jsx(
|
|
6909
|
-
Icon$
|
|
8749
|
+
Icon$2,
|
|
6910
8750
|
{
|
|
6911
8751
|
size: "large",
|
|
6912
8752
|
svg: SvgCheckBox,
|
|
@@ -6914,7 +8754,7 @@ const ComboboxItem$1 = function({
|
|
|
6914
8754
|
}
|
|
6915
8755
|
),
|
|
6916
8756
|
/* @__PURE__ */ jsx(
|
|
6917
|
-
Icon$
|
|
8757
|
+
Icon$2,
|
|
6918
8758
|
{
|
|
6919
8759
|
size: "large",
|
|
6920
8760
|
svg: SvgCheckBoxOutlineBlank,
|
|
@@ -6962,7 +8802,7 @@ const ComboboxItem$1 = function({
|
|
|
6962
8802
|
/* @__PURE__ */ jsx(
|
|
6963
8803
|
Flex,
|
|
6964
8804
|
{
|
|
6965
|
-
className: styles$
|
|
8805
|
+
className: styles$3["children"],
|
|
6966
8806
|
grow: 1,
|
|
6967
8807
|
shrink: 1,
|
|
6968
8808
|
alignItems,
|
|
@@ -6978,7 +8818,7 @@ const ComboboxItem$1 = function({
|
|
|
6978
8818
|
}
|
|
6979
8819
|
),
|
|
6980
8820
|
/* @__PURE__ */ jsx(
|
|
6981
|
-
Icon$
|
|
8821
|
+
Icon$2,
|
|
6982
8822
|
{
|
|
6983
8823
|
"aria-hidden": true,
|
|
6984
8824
|
svg: SvgCheck,
|
|
@@ -6994,7 +8834,11 @@ const ComboboxItem$1 = function({
|
|
|
6994
8834
|
);
|
|
6995
8835
|
}
|
|
6996
8836
|
};
|
|
6997
|
-
const
|
|
8837
|
+
const ComboboxItem$1 = function(props) {
|
|
8838
|
+
if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItem, { ...props });
|
|
8839
|
+
return /* @__PURE__ */ jsx(ComboboxItemElement, { ...props });
|
|
8840
|
+
};
|
|
8841
|
+
const ComboboxItemAddNewElement = function({
|
|
6998
8842
|
onSelection,
|
|
6999
8843
|
...props
|
|
7000
8844
|
}) {
|
|
@@ -7026,8 +8870,12 @@ const ComboboxItemAddNew$1 = function({
|
|
|
7026
8870
|
}
|
|
7027
8871
|
) : null;
|
|
7028
8872
|
};
|
|
8873
|
+
const ComboboxItemAddNew$1 = function(props) {
|
|
8874
|
+
if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItemAddNew, { ...props });
|
|
8875
|
+
return /* @__PURE__ */ jsx(ComboboxItemAddNewElement, { ...props });
|
|
8876
|
+
};
|
|
7029
8877
|
|
|
7030
|
-
const
|
|
8878
|
+
const ComboboxEmptyElement = function({
|
|
7031
8879
|
children
|
|
7032
8880
|
}) {
|
|
7033
8881
|
const { items, setHasEmpty } = useCombobox();
|
|
@@ -7037,8 +8885,16 @@ const ComboboxEmpty$1 = function({
|
|
|
7037
8885
|
setHasEmpty?.(false);
|
|
7038
8886
|
};
|
|
7039
8887
|
});
|
|
8888
|
+
if (!supportsPopover()) return;
|
|
7040
8889
|
return !items.length ? children : null;
|
|
7041
8890
|
};
|
|
8891
|
+
const ComboboxEmpty$1 = function({
|
|
8892
|
+
children
|
|
8893
|
+
}) {
|
|
8894
|
+
if (!supportsPopover())
|
|
8895
|
+
return /* @__PURE__ */ jsx(ComboboxLegacyEmpty, { children });
|
|
8896
|
+
return /* @__PURE__ */ jsx(ComboboxEmptyElement, { children });
|
|
8897
|
+
};
|
|
7042
8898
|
|
|
7043
8899
|
const defaultItemToString = function(item) {
|
|
7044
8900
|
return item != null ? String(item) : "";
|
|
@@ -8063,6 +9919,13 @@ const SelectMultiple = function(props) {
|
|
|
8063
9919
|
);
|
|
8064
9920
|
};
|
|
8065
9921
|
const ComboboxElement$1 = function(props) {
|
|
9922
|
+
if (!supportsPopover()) {
|
|
9923
|
+
if (isMultiple(props)) {
|
|
9924
|
+
return /* @__PURE__ */ jsx(ComboboxLegacyMultiple, { ...props });
|
|
9925
|
+
} else {
|
|
9926
|
+
return /* @__PURE__ */ jsx(ComboboxLegacySingle, { ...props });
|
|
9927
|
+
}
|
|
9928
|
+
}
|
|
8066
9929
|
if (isMultiple(props)) {
|
|
8067
9930
|
return /* @__PURE__ */ jsx(ComboboxMultiple, { ...props });
|
|
8068
9931
|
} else {
|
|
@@ -8070,6 +9933,13 @@ const ComboboxElement$1 = function(props) {
|
|
|
8070
9933
|
}
|
|
8071
9934
|
};
|
|
8072
9935
|
const ComboboxSelect$1 = function(props) {
|
|
9936
|
+
if (!supportsPopover()) {
|
|
9937
|
+
if (isMultiple(props)) {
|
|
9938
|
+
return /* @__PURE__ */ jsx(SelectLegacyMultiple, { ...props });
|
|
9939
|
+
} else {
|
|
9940
|
+
return /* @__PURE__ */ jsx(SelectLegacySingle, { ...props });
|
|
9941
|
+
}
|
|
9942
|
+
}
|
|
8073
9943
|
if (isMultiple(props)) {
|
|
8074
9944
|
return /* @__PURE__ */ jsx(SelectMultiple, { ...props });
|
|
8075
9945
|
} else {
|
|
@@ -8347,4 +10217,4 @@ const Combobox = Object.assign(ComboboxElement, {
|
|
|
8347
10217
|
});
|
|
8348
10218
|
|
|
8349
10219
|
export { Combobox as C, ComboboxElement as a, ComboboxSelect as b, ComboboxSearchField as c, ComboboxSelectTrigger as d, ComboboxContent as e, ComboboxList as f, ComboboxItem as g, ComboboxItemAddNew as h, ComboboxEmpty as i, useInfiniteCombobox as u };
|
|
8350
|
-
//# sourceMappingURL=Combobox-
|
|
10220
|
+
//# sourceMappingURL=Combobox-JAm3x-tw.js.map
|