@servicetitan/anvil2 1.44.1 → 1.44.2
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 +15 -0
- package/dist/{Combobox-Ct30JT3y.js → Combobox-BOpe_NUu.js} +151 -57
- package/dist/Combobox-BOpe_NUu.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{Divider-CN36wX4s.js → Divider-B0xGfyWE-f5-ThMiS.js} +4 -11
- package/dist/Divider-B0xGfyWE-f5-ThMiS.js.map +1 -0
- package/dist/Divider-azRKjITG.js +13 -0
- package/dist/Divider-azRKjITG.js.map +1 -0
- package/dist/Divider.js +1 -1
- package/dist/{SelectTrigger-Cg-rlFKY.js → SelectTrigger-C2w-flvK.js} +2 -2
- package/dist/{SelectTrigger-Cg-rlFKY.js.map → SelectTrigger-C2w-flvK.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-C0fhFfuj-DfR6h1Lq.js → SelectTriggerBase-Dj154EN4-BtTvR-Nh.js} +4 -3
- package/dist/SelectTriggerBase-Dj154EN4-BtTvR-Nh.js.map +1 -0
- package/dist/index.js +3 -3
- package/package.json +3 -3
- package/dist/Combobox-Ct30JT3y.js.map +0 -1
- package/dist/Divider-CN36wX4s.js.map +0 -1
- package/dist/SelectTriggerBase-C0fhFfuj-DfR6h1Lq.js.map +0 -1
- /package/dist/{Divider.css → Divider-B0xGfyWE.css} +0 -0
- /package/dist/{SelectTriggerBase-C0fhFfuj.css → SelectTriggerBase-Dj154EN4.css} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @servicetitan/anvil2
|
|
2
2
|
|
|
3
|
+
## 1.44.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#1514](https://github.com/servicetitan/hammer/pull/1514) [`4e84d2b`](https://github.com/servicetitan/hammer/commit/4e84d2b47fa26eaaf62ad58b6cfea7bc61723c1c) Thanks [@rgdelato](https://github.com/rgdelato)! - [Combobox] Fix `Combobox` controlled `items` change firing before `onIsOpenChange` (adds 200ms delay to `items` update)
|
|
8
|
+
|
|
9
|
+
- [#1514](https://github.com/servicetitan/hammer/pull/1514) [`b43e5f4`](https://github.com/servicetitan/hammer/commit/b43e5f49690d5d72b8eb4ab2241a07e37fe374d3) Thanks [@rgdelato](https://github.com/rgdelato)! - [Combobox] Allow `groupToString` to return `null` to render empty group labels
|
|
10
|
+
|
|
11
|
+
- [#1514](https://github.com/servicetitan/hammer/pull/1514) [`eeac4b5`](https://github.com/servicetitan/hammer/commit/eeac4b54d5df83dfb07b3acc9d4cefa1baa58599) Thanks [@rgdelato](https://github.com/rgdelato)! - [Combobox] Add `hideCheckbox` prop to `Combobox.Item`
|
|
12
|
+
|
|
13
|
+
- [#1514](https://github.com/servicetitan/hammer/pull/1514) [`c4ced28`](https://github.com/servicetitan/hammer/commit/c4ced28bfaf44403758ca527026a16139de7d649) Thanks [@rgdelato](https://github.com/rgdelato)! - [Combobox] Add `forceCloseOnSelect` and `forceClearInputValueOnSelect` props to `Combobox.Item`
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [[`4e84d2b`](https://github.com/servicetitan/hammer/commit/4e84d2b47fa26eaaf62ad58b6cfea7bc61723c1c), [`b43e5f4`](https://github.com/servicetitan/hammer/commit/b43e5f49690d5d72b8eb4ab2241a07e37fe374d3), [`eeac4b5`](https://github.com/servicetitan/hammer/commit/eeac4b54d5df83dfb07b3acc9d4cefa1baa58599), [`c4ced28`](https://github.com/servicetitan/hammer/commit/c4ced28bfaf44403758ca527026a16139de7d649)]:
|
|
16
|
+
- @servicetitan/hammer-react@1.42.1
|
|
17
|
+
|
|
3
18
|
## 1.44.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -4,6 +4,7 @@ import React__default, { useRef, useEffect, useMemo, useCallback, useLayoutEffec
|
|
|
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
6
|
import { e as PopoverLegacy, P as Popover, u as usePopoverLegacyContext, f as usePopoverContext } from './Popover-CU2cGVD8-Casl3vM1.js';
|
|
7
|
+
import { D as Divider } from './Divider-B0xGfyWE-f5-ThMiS.js';
|
|
7
8
|
import { s as styles$3 } from './Listbox.module-DcBE8Zmo-DcBE8Zmo.js';
|
|
8
9
|
import { L as Label, s as supportsPopover } from './ProgressBar-BRvB-bD4-DppwBrFg.js';
|
|
9
10
|
import { F as Flex } from './Flex-CiK7uNUu-BfxHG4L0.js';
|
|
@@ -19,7 +20,7 @@ import { I as Icon$2 } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
|
19
20
|
import { c as checkboxStyles, S as SvgIndeterminateCheckBox, a as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './Checkbox.module-DZ58p15b-BUsQC1lW.js';
|
|
20
21
|
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
21
22
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
22
|
-
import { u as useDownshiftEnvironment$1, a as defaultItemToKey$1, d as defaultItemToString$1, S as SelectTriggerBase } from './SelectTriggerBase-
|
|
23
|
+
import { u as useDownshiftEnvironment$1, a as defaultItemToKey$1, d as defaultItemToString$1, A as ADD_NEW$1, S as SelectTriggerBase } from './SelectTriggerBase-Dj154EN4-BtTvR-Nh.js';
|
|
23
24
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
24
25
|
import { a as Avatar } from './Avatar-C7cbRTCt-DCvzmr2C.js';
|
|
25
26
|
|
|
@@ -6343,7 +6344,7 @@ const styles$1 = {
|
|
|
6343
6344
|
"listview-option": "_listview-option_rxmcz_304"
|
|
6344
6345
|
};
|
|
6345
6346
|
|
|
6346
|
-
const ADD_NEW
|
|
6347
|
+
const ADD_NEW = Symbol.for("add-new");
|
|
6347
6348
|
const ComboboxLegacyContext = createContext(null);
|
|
6348
6349
|
const useComboboxLegacy = function() {
|
|
6349
6350
|
const context = useContext(
|
|
@@ -6401,7 +6402,7 @@ const ComboboxLegacySingle = function(props) {
|
|
|
6401
6402
|
const { ref: wrapperDivRef, environment } = useDownshiftEnvironment();
|
|
6402
6403
|
const showAddNew = hasAddNew && !hasExactMatch;
|
|
6403
6404
|
const combinedItems = useMemo(
|
|
6404
|
-
() => showAddNew ? [...items, ADD_NEW
|
|
6405
|
+
() => showAddNew ? [...items, ADD_NEW] : items,
|
|
6405
6406
|
[items, showAddNew]
|
|
6406
6407
|
);
|
|
6407
6408
|
const itemToString = itemToStringProp ?? defaultItemToString;
|
|
@@ -6439,7 +6440,7 @@ const ComboboxLegacySingle = function(props) {
|
|
|
6439
6440
|
};
|
|
6440
6441
|
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
6441
6442
|
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
6442
|
-
if (changes.selectedItem === ADD_NEW
|
|
6443
|
+
if (changes.selectedItem === ADD_NEW) {
|
|
6443
6444
|
const stateInputValue = state.inputValue;
|
|
6444
6445
|
setTimeout(() => {
|
|
6445
6446
|
onSelectItemAddNew?.(stateInputValue);
|
|
@@ -6670,7 +6671,7 @@ const ComboboxLegacyMultiple = function(props) {
|
|
|
6670
6671
|
const { ref: wrapperDivRef, environment } = useDownshiftEnvironment();
|
|
6671
6672
|
const showAddNew = hasAddNew && !hasExactMatch;
|
|
6672
6673
|
const combinedItems = useMemo(
|
|
6673
|
-
() => showAddNew ? [...items, ADD_NEW
|
|
6674
|
+
() => showAddNew ? [...items, ADD_NEW] : items,
|
|
6674
6675
|
[items, showAddNew]
|
|
6675
6676
|
);
|
|
6676
6677
|
const itemToString = itemToStringProp ?? defaultItemToString;
|
|
@@ -6756,7 +6757,7 @@ const ComboboxLegacyMultiple = function(props) {
|
|
|
6756
6757
|
};
|
|
6757
6758
|
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
6758
6759
|
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
6759
|
-
if (changes.selectedItem === ADD_NEW
|
|
6760
|
+
if (changes.selectedItem === ADD_NEW) {
|
|
6760
6761
|
const stateInputValue = state.inputValue;
|
|
6761
6762
|
setTimeout(() => {
|
|
6762
6763
|
onSelectItemAddNew?.(stateInputValue);
|
|
@@ -8053,7 +8054,7 @@ const ComboboxLegacyItemAddNew = function({
|
|
|
8053
8054
|
ComboboxLegacyItem,
|
|
8054
8055
|
{
|
|
8055
8056
|
...props,
|
|
8056
|
-
item: ADD_NEW
|
|
8057
|
+
item: ADD_NEW,
|
|
8057
8058
|
index: items.length
|
|
8058
8059
|
}
|
|
8059
8060
|
) : null;
|
|
@@ -8354,7 +8355,7 @@ const ComboboxContentElement = function({
|
|
|
8354
8355
|
className: ComboboxPopoverContentClassNames,
|
|
8355
8356
|
ref: contentRef,
|
|
8356
8357
|
onBlur: handleBlur,
|
|
8357
|
-
children: groups?.length ? groups.map((group) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
|
|
8358
|
+
children: groups?.length ? groups.map((group, i) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
|
|
8358
8359
|
"ul",
|
|
8359
8360
|
{
|
|
8360
8361
|
"aria-labelledby": `${id}-group-${group.key}`,
|
|
@@ -8362,7 +8363,7 @@ const ComboboxContentElement = function({
|
|
|
8362
8363
|
"data-anv": "combobox-group",
|
|
8363
8364
|
role: "group",
|
|
8364
8365
|
children: /* @__PURE__ */ jsxs("li", { children: [
|
|
8365
|
-
/* @__PURE__ */ jsx(
|
|
8366
|
+
group.label != null ? /* @__PURE__ */ jsx(
|
|
8366
8367
|
Text,
|
|
8367
8368
|
{
|
|
8368
8369
|
className: styles["group-title"],
|
|
@@ -8370,7 +8371,7 @@ const ComboboxContentElement = function({
|
|
|
8370
8371
|
variant: "eyebrow",
|
|
8371
8372
|
children: group.label
|
|
8372
8373
|
}
|
|
8373
|
-
),
|
|
8374
|
+
) : i !== 0 ? /* @__PURE__ */ jsx(Divider, {}) : null,
|
|
8374
8375
|
resolveChildren(group.items)
|
|
8375
8376
|
] })
|
|
8376
8377
|
}
|
|
@@ -8385,7 +8386,7 @@ const ComboboxContentElement = function({
|
|
|
8385
8386
|
ref: getMenuProps({ ref: contentRef }, { suppressRefError: true }).ref,
|
|
8386
8387
|
tabIndex: -1,
|
|
8387
8388
|
onBlur: handleBlur,
|
|
8388
|
-
children: groups?.length ? groups.map((group) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
|
|
8389
|
+
children: groups?.length ? groups.map((group, i) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
|
|
8389
8390
|
"ul",
|
|
8390
8391
|
{
|
|
8391
8392
|
"aria-labelledby": `${id}-group-${group.key}`,
|
|
@@ -8393,7 +8394,7 @@ const ComboboxContentElement = function({
|
|
|
8393
8394
|
"data-anv": "combobox-group",
|
|
8394
8395
|
role: "group",
|
|
8395
8396
|
children: /* @__PURE__ */ jsxs("li", { children: [
|
|
8396
|
-
/* @__PURE__ */ jsx(
|
|
8397
|
+
group.label != null ? /* @__PURE__ */ jsx(
|
|
8397
8398
|
Text,
|
|
8398
8399
|
{
|
|
8399
8400
|
className: styles["group-title"],
|
|
@@ -8401,7 +8402,7 @@ const ComboboxContentElement = function({
|
|
|
8401
8402
|
variant: "eyebrow",
|
|
8402
8403
|
children: group.label
|
|
8403
8404
|
}
|
|
8404
|
-
),
|
|
8405
|
+
) : i !== 0 ? /* @__PURE__ */ jsx(Divider, {}) : null,
|
|
8405
8406
|
resolveChildren(group.items)
|
|
8406
8407
|
] })
|
|
8407
8408
|
}
|
|
@@ -8501,6 +8502,9 @@ const ComboboxItemElement = function({
|
|
|
8501
8502
|
disabled: disabledProp,
|
|
8502
8503
|
item,
|
|
8503
8504
|
index: indexProp,
|
|
8505
|
+
hideCheckbox,
|
|
8506
|
+
forceCloseOnSelect,
|
|
8507
|
+
forceClearInputValueOnSelect,
|
|
8504
8508
|
alignItems,
|
|
8505
8509
|
justifyItems,
|
|
8506
8510
|
alignContent,
|
|
@@ -8520,6 +8524,8 @@ const ComboboxItemElement = function({
|
|
|
8520
8524
|
selectedItems,
|
|
8521
8525
|
disabledItems,
|
|
8522
8526
|
setDisabledItems,
|
|
8527
|
+
setForceCloseOnSelectItems,
|
|
8528
|
+
setForceClearInputValueOnSelectItems,
|
|
8523
8529
|
highlightedIndex,
|
|
8524
8530
|
items,
|
|
8525
8531
|
groupBy
|
|
@@ -8530,14 +8536,66 @@ const ComboboxItemElement = function({
|
|
|
8530
8536
|
if (disabledProp && !disabledItems.includes(item)) {
|
|
8531
8537
|
setDisabledItems([...disabledItems, item]);
|
|
8532
8538
|
} else if (disabledItems.includes(item)) {
|
|
8533
|
-
setDisabledItems(disabledItems.filter((prevItem) => prevItem
|
|
8539
|
+
setDisabledItems(disabledItems.filter((prevItem) => prevItem !== item));
|
|
8534
8540
|
}
|
|
8535
8541
|
return () => {
|
|
8536
8542
|
if (disabledItems.includes(item)) {
|
|
8537
|
-
setDisabledItems(disabledItems.filter((prevItem) => prevItem
|
|
8543
|
+
setDisabledItems(disabledItems.filter((prevItem) => prevItem !== item));
|
|
8538
8544
|
}
|
|
8539
8545
|
};
|
|
8540
8546
|
}, [item, disabledProp, setDisabledItems]);
|
|
8547
|
+
useEffect(() => {
|
|
8548
|
+
if (forceCloseOnSelect) {
|
|
8549
|
+
setForceCloseOnSelectItems((forceCloseOnSelectItems) => {
|
|
8550
|
+
if (forceCloseOnSelectItems.includes(item)) {
|
|
8551
|
+
return forceCloseOnSelectItems;
|
|
8552
|
+
} else {
|
|
8553
|
+
return [...forceCloseOnSelectItems, item];
|
|
8554
|
+
}
|
|
8555
|
+
});
|
|
8556
|
+
}
|
|
8557
|
+
return () => {
|
|
8558
|
+
setForceCloseOnSelectItems((forceCloseOnSelectItems) => {
|
|
8559
|
+
if (forceCloseOnSelectItems.includes(item)) {
|
|
8560
|
+
return forceCloseOnSelectItems.filter(
|
|
8561
|
+
(prevItem) => prevItem !== item
|
|
8562
|
+
);
|
|
8563
|
+
} else {
|
|
8564
|
+
return forceCloseOnSelectItems;
|
|
8565
|
+
}
|
|
8566
|
+
});
|
|
8567
|
+
};
|
|
8568
|
+
}, [item, forceCloseOnSelect, setForceCloseOnSelectItems]);
|
|
8569
|
+
useEffect(() => {
|
|
8570
|
+
if (forceClearInputValueOnSelect) {
|
|
8571
|
+
setForceClearInputValueOnSelectItems(
|
|
8572
|
+
(forceClearInputValueOnSelectItems) => {
|
|
8573
|
+
if (forceClearInputValueOnSelectItems.includes(item)) {
|
|
8574
|
+
return forceClearInputValueOnSelectItems;
|
|
8575
|
+
} else {
|
|
8576
|
+
return [...forceClearInputValueOnSelectItems, item];
|
|
8577
|
+
}
|
|
8578
|
+
}
|
|
8579
|
+
);
|
|
8580
|
+
}
|
|
8581
|
+
return () => {
|
|
8582
|
+
setForceClearInputValueOnSelectItems(
|
|
8583
|
+
(forceClearInputValueOnSelectItems) => {
|
|
8584
|
+
if (forceClearInputValueOnSelectItems.includes(item)) {
|
|
8585
|
+
return forceClearInputValueOnSelectItems.filter(
|
|
8586
|
+
(prevItem) => prevItem !== item
|
|
8587
|
+
);
|
|
8588
|
+
} else {
|
|
8589
|
+
return forceClearInputValueOnSelectItems;
|
|
8590
|
+
}
|
|
8591
|
+
}
|
|
8592
|
+
);
|
|
8593
|
+
};
|
|
8594
|
+
}, [
|
|
8595
|
+
item,
|
|
8596
|
+
forceClearInputValueOnSelect,
|
|
8597
|
+
setForceClearInputValueOnSelectItems
|
|
8598
|
+
]);
|
|
8541
8599
|
if (multiple) {
|
|
8542
8600
|
const checked = selectedItems.some(
|
|
8543
8601
|
(selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
|
|
@@ -8557,7 +8615,7 @@ const ComboboxItemElement = function({
|
|
|
8557
8615
|
styles$2["listview-option"]
|
|
8558
8616
|
),
|
|
8559
8617
|
children: [
|
|
8560
|
-
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: [
|
|
8618
|
+
item !== ADD_NEW$1 && !hideCheckbox ? /* @__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: [
|
|
8561
8619
|
/* @__PURE__ */ jsx(
|
|
8562
8620
|
"input",
|
|
8563
8621
|
{
|
|
@@ -8699,7 +8757,7 @@ const ComboboxItemAddNewElement = function({
|
|
|
8699
8757
|
ComboboxItem$1,
|
|
8700
8758
|
{
|
|
8701
8759
|
...props,
|
|
8702
|
-
item: ADD_NEW,
|
|
8760
|
+
item: ADD_NEW$1,
|
|
8703
8761
|
index: items.length
|
|
8704
8762
|
}
|
|
8705
8763
|
) : null;
|
|
@@ -8748,7 +8806,10 @@ function useGroups({
|
|
|
8748
8806
|
groupedItems[groupKey].push(item);
|
|
8749
8807
|
});
|
|
8750
8808
|
Object.keys(groupedItems).forEach((key) => {
|
|
8751
|
-
groupsSansItems.push({
|
|
8809
|
+
groupsSansItems.push({
|
|
8810
|
+
key,
|
|
8811
|
+
label: groupToString ? groupToString?.(key) : key
|
|
8812
|
+
});
|
|
8752
8813
|
});
|
|
8753
8814
|
groupsSansItems.sort((a, b) => groupSorter(a.key, b.key));
|
|
8754
8815
|
const orderedItems2 = [];
|
|
@@ -8764,7 +8825,6 @@ function useGroups({
|
|
|
8764
8825
|
return { groups, orderedItems };
|
|
8765
8826
|
}
|
|
8766
8827
|
|
|
8767
|
-
const ADD_NEW = Symbol.for("add-new");
|
|
8768
8828
|
const ComboboxContext = createContext(null);
|
|
8769
8829
|
const useCombobox = function() {
|
|
8770
8830
|
const context = useContext(
|
|
@@ -8814,6 +8874,8 @@ const ComboboxSingle = function(props) {
|
|
|
8814
8874
|
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
8815
8875
|
const [hasEmpty, setHasEmpty] = useState(false);
|
|
8816
8876
|
const [disabledItems, setDisabledItems] = useState([]);
|
|
8877
|
+
const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
|
|
8878
|
+
const [, setForceClearInputValueOnSelectItems] = useState([]);
|
|
8817
8879
|
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
8818
8880
|
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
8819
8881
|
const referenceRef = useRef(null);
|
|
@@ -8837,7 +8899,7 @@ const ComboboxSingle = function(props) {
|
|
|
8837
8899
|
});
|
|
8838
8900
|
const showAddNew = hasAddNew && !hasExactMatch;
|
|
8839
8901
|
const combinedItems = useMemo(
|
|
8840
|
-
() => showAddNew ? [...searchedItemsOrderedByGroup, ADD_NEW] : searchedItemsOrderedByGroup,
|
|
8902
|
+
() => showAddNew ? [...searchedItemsOrderedByGroup, ADD_NEW$1] : searchedItemsOrderedByGroup,
|
|
8841
8903
|
[searchedItemsOrderedByGroup, showAddNew]
|
|
8842
8904
|
);
|
|
8843
8905
|
const itemToString = itemToStringProp ?? defaultItemToString$1;
|
|
@@ -8875,7 +8937,7 @@ const ComboboxSingle = function(props) {
|
|
|
8875
8937
|
};
|
|
8876
8938
|
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
8877
8939
|
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
8878
|
-
if (changes.selectedItem === ADD_NEW) {
|
|
8940
|
+
if (changes.selectedItem === ADD_NEW$1) {
|
|
8879
8941
|
const stateInputValue = state.inputValue;
|
|
8880
8942
|
setTimeout(() => {
|
|
8881
8943
|
onSelectItemAddNew?.(stateInputValue);
|
|
@@ -8886,9 +8948,12 @@ const ComboboxSingle = function(props) {
|
|
|
8886
8948
|
inputValue: ""
|
|
8887
8949
|
};
|
|
8888
8950
|
} else {
|
|
8951
|
+
const forceClose = forceCloseOnSelectItems.includes(
|
|
8952
|
+
changes.selectedItem
|
|
8953
|
+
);
|
|
8889
8954
|
return {
|
|
8890
8955
|
...changes,
|
|
8891
|
-
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
8956
|
+
isOpen: open != null ? open : forceClose ? false : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
8892
8957
|
highlightedIndex: disableCloseOnSelectItem ? itemToString(state.selectedItem) === state.inputValue || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex
|
|
8893
8958
|
};
|
|
8894
8959
|
}
|
|
@@ -8969,20 +9034,24 @@ const ComboboxSingle = function(props) {
|
|
|
8969
9034
|
}, [readOnly]);
|
|
8970
9035
|
useEffect(() => {
|
|
8971
9036
|
if (firstRenderRef.current) return;
|
|
8972
|
-
|
|
8973
|
-
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
9037
|
+
setTimeout(() => {
|
|
9038
|
+
const inputValueMatchesSelectedItem = selectedItem != null && inputValue === itemToString(selectedItem);
|
|
9039
|
+
const inputValueIsEmpty = inputValue == null || inputValue === "";
|
|
9040
|
+
if (!inputValueMatchesSelectedItem && !inputValueIsEmpty && !disableFilter) {
|
|
9041
|
+
setItems(
|
|
9042
|
+
matchSorter(allItemsOrderedByGroup, inputValue, filterOptions)
|
|
9043
|
+
);
|
|
9044
|
+
setHasExactMatch(
|
|
9045
|
+
matchSorter(allItemsOrderedByGroup, inputValue, {
|
|
9046
|
+
...filterOptions,
|
|
9047
|
+
threshold: matchSorter.rankings.EQUAL
|
|
9048
|
+
}).length > 0
|
|
9049
|
+
);
|
|
9050
|
+
} else {
|
|
9051
|
+
setItems(allItemsOrderedByGroup);
|
|
9052
|
+
setHasExactMatch(true);
|
|
9053
|
+
}
|
|
9054
|
+
}, 200);
|
|
8986
9055
|
}, [allItemsOrderedByGroup]);
|
|
8987
9056
|
return /* @__PURE__ */ jsx(
|
|
8988
9057
|
ComboboxContext.Provider,
|
|
@@ -9004,6 +9073,8 @@ const ComboboxSingle = function(props) {
|
|
|
9004
9073
|
selectedItems: [],
|
|
9005
9074
|
disabledItems,
|
|
9006
9075
|
setDisabledItems,
|
|
9076
|
+
setForceCloseOnSelectItems,
|
|
9077
|
+
setForceClearInputValueOnSelectItems,
|
|
9007
9078
|
getSelectedItemProps: void 0,
|
|
9008
9079
|
getDropdownProps: void 0,
|
|
9009
9080
|
selectItem,
|
|
@@ -9103,6 +9174,11 @@ const ComboboxMultiple = function(props) {
|
|
|
9103
9174
|
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
9104
9175
|
const [hasEmpty, setHasEmpty] = useState(false);
|
|
9105
9176
|
const [disabledItems, setDisabledItems] = useState([]);
|
|
9177
|
+
const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
|
|
9178
|
+
const [
|
|
9179
|
+
forceClearInputValueOnSelectItems,
|
|
9180
|
+
setForceClearInputValueOnSelectItems
|
|
9181
|
+
] = useState([]);
|
|
9106
9182
|
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
9107
9183
|
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
9108
9184
|
let storedSetInputValue = void 0;
|
|
@@ -9125,7 +9201,7 @@ const ComboboxMultiple = function(props) {
|
|
|
9125
9201
|
});
|
|
9126
9202
|
const showAddNew = hasAddNew && !hasExactMatch;
|
|
9127
9203
|
const combinedItems = useMemo(
|
|
9128
|
-
() => showAddNew ? [...items, ADD_NEW] : searchedItemsOrderedByGroup,
|
|
9204
|
+
() => showAddNew ? [...items, ADD_NEW$1] : searchedItemsOrderedByGroup,
|
|
9129
9205
|
[items, searchedItemsOrderedByGroup, showAddNew]
|
|
9130
9206
|
);
|
|
9131
9207
|
const itemToString = itemToStringProp ?? defaultItemToString$1;
|
|
@@ -9213,7 +9289,7 @@ const ComboboxMultiple = function(props) {
|
|
|
9213
9289
|
};
|
|
9214
9290
|
case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
|
|
9215
9291
|
case useCombobox$1.stateChangeTypes.ItemClick:
|
|
9216
|
-
if (changes.selectedItem === ADD_NEW) {
|
|
9292
|
+
if (changes.selectedItem === ADD_NEW$1) {
|
|
9217
9293
|
const stateInputValue = state.inputValue;
|
|
9218
9294
|
setTimeout(() => {
|
|
9219
9295
|
onSelectItemAddNew?.(stateInputValue);
|
|
@@ -9224,11 +9300,17 @@ const ComboboxMultiple = function(props) {
|
|
|
9224
9300
|
inputValue: ""
|
|
9225
9301
|
};
|
|
9226
9302
|
} else {
|
|
9303
|
+
const forceClose = forceCloseOnSelectItems.includes(
|
|
9304
|
+
changes.selectedItem
|
|
9305
|
+
);
|
|
9306
|
+
const forceClearInputValue = forceClearInputValueOnSelectItems.includes(
|
|
9307
|
+
changes.selectedItem
|
|
9308
|
+
);
|
|
9227
9309
|
return {
|
|
9228
9310
|
...changes,
|
|
9229
|
-
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
9230
|
-
highlightedIndex: disableCloseOnSelectItem ? disableClearInputValueOnSelectItem || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex,
|
|
9231
|
-
inputValue: disableClearInputValueOnSelectItem ? state.inputValue : ""
|
|
9311
|
+
isOpen: open != null ? open : forceClose ? false : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
9312
|
+
highlightedIndex: forceClearInputValue ? 0 : disableCloseOnSelectItem ? disableClearInputValueOnSelectItem || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex,
|
|
9313
|
+
inputValue: forceClearInputValue ? "" : disableClearInputValueOnSelectItem ? state.inputValue : ""
|
|
9232
9314
|
};
|
|
9233
9315
|
}
|
|
9234
9316
|
// prevent this from closing the popover by default
|
|
@@ -9322,19 +9404,21 @@ const ComboboxMultiple = function(props) {
|
|
|
9322
9404
|
}, [readOnly]);
|
|
9323
9405
|
useEffect(() => {
|
|
9324
9406
|
if (firstRenderRef.current) return;
|
|
9325
|
-
|
|
9326
|
-
|
|
9327
|
-
|
|
9328
|
-
|
|
9329
|
-
|
|
9330
|
-
|
|
9331
|
-
|
|
9332
|
-
|
|
9333
|
-
|
|
9334
|
-
|
|
9335
|
-
|
|
9336
|
-
|
|
9337
|
-
|
|
9407
|
+
setTimeout(() => {
|
|
9408
|
+
const inputValueIsEmpty = inputValue == null || inputValue === "";
|
|
9409
|
+
if (!inputValueIsEmpty && !disableFilter) {
|
|
9410
|
+
setItems(matchSorter(itemsProp, inputValue, filterOptions));
|
|
9411
|
+
setHasExactMatch(
|
|
9412
|
+
matchSorter(itemsProp, inputValue, {
|
|
9413
|
+
...filterOptions,
|
|
9414
|
+
threshold: matchSorter.rankings.EQUAL
|
|
9415
|
+
}).length > 0
|
|
9416
|
+
);
|
|
9417
|
+
} else {
|
|
9418
|
+
setItems(itemsProp);
|
|
9419
|
+
setHasExactMatch(true);
|
|
9420
|
+
}
|
|
9421
|
+
}, 200);
|
|
9338
9422
|
}, [itemsProp]);
|
|
9339
9423
|
return /* @__PURE__ */ jsx(
|
|
9340
9424
|
ComboboxContext.Provider,
|
|
@@ -9356,6 +9440,8 @@ const ComboboxMultiple = function(props) {
|
|
|
9356
9440
|
selectedItems,
|
|
9357
9441
|
disabledItems,
|
|
9358
9442
|
setDisabledItems,
|
|
9443
|
+
setForceCloseOnSelectItems,
|
|
9444
|
+
setForceClearInputValueOnSelectItems,
|
|
9359
9445
|
getSelectedItemProps,
|
|
9360
9446
|
getDropdownProps,
|
|
9361
9447
|
reset,
|
|
@@ -9443,6 +9529,8 @@ const SelectSingle = function(props) {
|
|
|
9443
9529
|
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
9444
9530
|
const [hasEmpty, setHasEmpty] = useState(false);
|
|
9445
9531
|
const [disabledItems, setDisabledItems] = useState([]);
|
|
9532
|
+
const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
|
|
9533
|
+
const [, setForceClearInputValueOnSelectItems] = useState([]);
|
|
9446
9534
|
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
9447
9535
|
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
9448
9536
|
const referenceRef = useRef(null);
|
|
@@ -9485,7 +9573,7 @@ const SelectSingle = function(props) {
|
|
|
9485
9573
|
case useSelect.stateChangeTypes.ItemClick:
|
|
9486
9574
|
return {
|
|
9487
9575
|
...changes,
|
|
9488
|
-
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
9576
|
+
isOpen: open != null ? open : forceCloseOnSelectItems.includes(changes.selectedItem) ? false : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
9489
9577
|
highlightedIndex: disableCloseOnSelectItem ? state.highlightedIndex : changes.highlightedIndex
|
|
9490
9578
|
};
|
|
9491
9579
|
default:
|
|
@@ -9539,6 +9627,8 @@ const SelectSingle = function(props) {
|
|
|
9539
9627
|
selectedItems: [],
|
|
9540
9628
|
disabledItems,
|
|
9541
9629
|
setDisabledItems,
|
|
9630
|
+
setForceCloseOnSelectItems,
|
|
9631
|
+
setForceClearInputValueOnSelectItems,
|
|
9542
9632
|
selectItem,
|
|
9543
9633
|
inputValue,
|
|
9544
9634
|
isDisabled,
|
|
@@ -9622,6 +9712,8 @@ const SelectMultiple = function(props) {
|
|
|
9622
9712
|
const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
|
|
9623
9713
|
const [hasEmpty, setHasEmpty] = useState(false);
|
|
9624
9714
|
const [disabledItems, setDisabledItems] = useState([]);
|
|
9715
|
+
const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
|
|
9716
|
+
const [, setForceClearInputValueOnSelectItems] = useState([]);
|
|
9625
9717
|
const [isReadOnly, setIsReadOnly] = useState(readOnly);
|
|
9626
9718
|
const [isDisabled, setIsDisabled] = useState(disabled);
|
|
9627
9719
|
const referenceRef = useRef(null);
|
|
@@ -9700,7 +9792,7 @@ const SelectMultiple = function(props) {
|
|
|
9700
9792
|
case useSelect.stateChangeTypes.ItemClick:
|
|
9701
9793
|
return {
|
|
9702
9794
|
...changes,
|
|
9703
|
-
isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
9795
|
+
isOpen: open != null ? open : forceCloseOnSelectItems.includes(changes.selectedItem) ? false : disableCloseOnSelectItem ? true : changes.isOpen,
|
|
9704
9796
|
highlightedIndex: disableCloseOnSelectItem ? state.highlightedIndex : changes.highlightedIndex
|
|
9705
9797
|
};
|
|
9706
9798
|
default:
|
|
@@ -9768,6 +9860,8 @@ const SelectMultiple = function(props) {
|
|
|
9768
9860
|
selectedItems,
|
|
9769
9861
|
disabledItems,
|
|
9770
9862
|
setDisabledItems,
|
|
9863
|
+
setForceCloseOnSelectItems,
|
|
9864
|
+
setForceClearInputValueOnSelectItems,
|
|
9771
9865
|
getSelectedItemProps,
|
|
9772
9866
|
getDropdownProps,
|
|
9773
9867
|
reset,
|
|
@@ -10315,4 +10409,4 @@ const Combobox = Object.assign(ComboboxElement, {
|
|
|
10315
10409
|
});
|
|
10316
10410
|
|
|
10317
10411
|
export { Combobox as C, ComboboxElement as a, ComboboxSelect as b, ComboboxContent as c, ComboboxSearchField as d, ComboboxSelectTrigger as e, ComboboxList as f, ComboboxItem as g, ComboboxItemAddNew as h, ComboboxEmpty as i, useInfiniteCombobox as u };
|
|
10318
|
-
//# sourceMappingURL=Combobox-
|
|
10412
|
+
//# sourceMappingURL=Combobox-BOpe_NUu.js.map
|