@spscommerce/ds-react 5.2.4 → 5.2.5

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/lib/index.es.js CHANGED
@@ -1277,6 +1277,12 @@ const LETTER_KEYS = [
1277
1277
  function compareOptions(optionA, optionB, comparisonKey) {
1278
1278
  return comparisonKey ? (optionA && optionA[comparisonKey]) === (optionB && optionB[comparisonKey]) : optionA === optionB;
1279
1279
  }
1280
+ function isOptionDisabled(disabledOptions, comparisonKey, option) {
1281
+ return comparisonKey ? !!(disabledOptions == null ? void 0 : disabledOptions.find((opt) => {
1282
+ var _a;
1283
+ return opt[comparisonKey] && opt[comparisonKey] === ((_a = option.value) == null ? void 0 : _a[comparisonKey]);
1284
+ })) : false;
1285
+ }
1280
1286
  const SpsOptionList = React.forwardRef((props2, ref2) => {
1281
1287
  const _a = props2, {
1282
1288
  captionKey,
@@ -1583,7 +1589,7 @@ const SpsOptionList = React.forwardRef((props2, ref2) => {
1583
1589
  role: optionRole,
1584
1590
  "aria-selected": compareOptions(option.value, selectedOption, comparisonKey),
1585
1591
  href: option.href,
1586
- className: clsx("sps-option-list__option", option.caption && "sps-option-list__option--has-caption", option.disabled && "sps-option-list__option--disabled", option.bold && "sps-option-list__option--bold", compareOptions(option.value, selectedOption, comparisonKey) && "sps-option-list__option--selected", highlightedOptionIndex === i2 && "sps-option-list__option--highlighted"),
1592
+ className: clsx("sps-option-list__option", option.caption && "sps-option-list__option--has-caption", option.disabled && "sps-option-list__option--disabled", option.bold && "sps-option-list__option--bold", (compareOptions(option.value, selectedOption, comparisonKey) || isOptionDisabled(disabledOptions, comparisonKey, option)) && "sps-option-list__option--selected", highlightedOptionIndex === i2 && "sps-option-list__option--highlighted"),
1587
1593
  onClick: (event) => handleOptionClick(event, option),
1588
1594
  onMouseOver: () => setHighlightedOptionIndex(i2),
1589
1595
  tabIndex: -1,
@@ -28805,6 +28811,7 @@ const propsDoc$Q = {
28805
28811
  debounce: "number",
28806
28812
  disabled: "boolean",
28807
28813
  disableSelected: "boolean",
28814
+ comparisonKey: "string",
28808
28815
  formMeta: "SpsFormFieldMeta<any[]>",
28809
28816
  hideSelected: "boolean",
28810
28817
  icon: "SpsIcon",
@@ -28823,6 +28830,7 @@ const propTypes$S = __spreadProps(__spreadValues({}, spsGlobalPropTypes), {
28823
28830
  debounce: propTypes$1L.exports.number,
28824
28831
  disabled: propTypes$1L.exports.bool,
28825
28832
  disableSelected: propTypes$1L.exports.bool,
28833
+ comparisonKey: propTypes$1L.exports.string,
28826
28834
  formControl: impl(),
28827
28835
  formMeta: impl(),
28828
28836
  hideSelected: propTypes$1L.exports.bool,
@@ -28848,6 +28856,7 @@ function SpsMultiSelect(_w) {
28848
28856
  debounce: debounce2,
28849
28857
  disabled,
28850
28858
  disableSelected = false,
28859
+ comparisonKey,
28851
28860
  formControl: formControl2,
28852
28861
  formMeta,
28853
28862
  hideSelected,
@@ -28869,6 +28878,7 @@ function SpsMultiSelect(_w) {
28869
28878
  "debounce",
28870
28879
  "disabled",
28871
28880
  "disableSelected",
28881
+ "comparisonKey",
28872
28882
  "formControl",
28873
28883
  "formMeta",
28874
28884
  "hideSelected",
@@ -29063,6 +29073,7 @@ function SpsMultiSelect(_w) {
29063
29073
  captionKey,
29064
29074
  disabledOptions: disableSelected ? value : null,
29065
29075
  isOpen: showPopup,
29076
+ comparisonKey,
29066
29077
  keepOpen: true,
29067
29078
  keyDown: state.keyDown,
29068
29079
  options,
@@ -11,6 +11,7 @@ declare const propTypes: {
11
11
  debounce: PropTypes.Requireable<number>;
12
12
  disabled: PropTypes.Requireable<boolean>;
13
13
  disableSelected: PropTypes.Requireable<boolean>;
14
+ comparisonKey: PropTypes.Requireable<string>;
14
15
  formControl: PropTypes.Requireable<SpsFormControl<any[]>>;
15
16
  formMeta: PropTypes.Requireable<SpsFormFieldMeta<any[]>>;
16
17
  hideSelected: PropTypes.Requireable<boolean>;
@@ -29,5 +30,5 @@ declare const propTypes: {
29
30
  unsafelyReplaceClassName: PropTypes.Requireable<string>;
30
31
  };
31
32
  export declare type SpsMultiSelectProps = PropTypes.InferTS<typeof propTypes, HTMLInputElement>;
32
- export declare function SpsMultiSelect({ action, captionKey, className, debounce, disabled, disableSelected, formControl, formMeta, hideSelected, id, onChange, options, placeholder, tallOptionList, textKey, unsafelyReplaceClassName, value, zeroState, loading, icon, ...rest }: SpsMultiSelectProps): JSX.Element;
33
+ export declare function SpsMultiSelect({ action, captionKey, className, debounce, disabled, disableSelected, comparisonKey, formControl, formMeta, hideSelected, id, onChange, options, placeholder, tallOptionList, textKey, unsafelyReplaceClassName, value, zeroState, loading, icon, ...rest }: SpsMultiSelectProps): JSX.Element;
33
34
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spscommerce/ds-react",
3
3
  "description": "SPS Design System React components",
4
- "version": "5.2.4",
4
+ "version": "5.2.5",
5
5
  "author": "SPS Commerce",
6
6
  "license": "UNLICENSED",
7
7
  "repository": "https://github.com/spscommerce/design-system/tree/main/packages/@spscommerce/ds-react",
@@ -28,10 +28,10 @@
28
28
  },
29
29
  "peerDependencies": {
30
30
  "@react-stately/collections": "^3.3.3",
31
- "@spscommerce/ds-colors": "5.2.4",
32
- "@spscommerce/ds-shared": "5.2.4",
33
- "@spscommerce/positioning": "5.2.4",
34
- "@spscommerce/utils": "5.2.4",
31
+ "@spscommerce/ds-colors": "5.2.5",
32
+ "@spscommerce/ds-shared": "5.2.5",
33
+ "@spscommerce/positioning": "5.2.5",
34
+ "@spscommerce/utils": "5.2.5",
35
35
  "moment": "^2.25.3",
36
36
  "moment-timezone": "^0.5.28",
37
37
  "react": "^16.9.0",
@@ -39,10 +39,10 @@
39
39
  },
40
40
  "devDependencies": {
41
41
  "@react-stately/collections": "^3.3.3",
42
- "@spscommerce/ds-colors": "5.2.4",
43
- "@spscommerce/ds-shared": "5.2.4",
44
- "@spscommerce/positioning": "5.2.4",
45
- "@spscommerce/utils": "5.2.4",
42
+ "@spscommerce/ds-colors": "5.2.5",
43
+ "@spscommerce/ds-shared": "5.2.5",
44
+ "@spscommerce/positioning": "5.2.5",
45
+ "@spscommerce/utils": "5.2.5",
46
46
  "@testing-library/jest-dom": "^4.2.4",
47
47
  "@testing-library/react": "^9.3.2",
48
48
  "@types/prop-types": "^15.7.1",