@toptal/picasso 12.3.1 → 12.4.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.
Files changed (82) hide show
  1. package/MenuItem/MenuItem.js +2 -1
  2. package/MenuItem/MenuItem.js.map +1 -1
  3. package/MenuItem/styles.d.ts +1 -1
  4. package/MenuItem/styles.js +7 -1
  5. package/MenuItem/styles.js.map +1 -1
  6. package/NativeSelect/NativeSelect.js +3 -2
  7. package/NativeSelect/NativeSelect.js.map +1 -1
  8. package/NativeSelectOptions/NativeSelectOptions.d.ts +3 -3
  9. package/NativeSelectOptions/NativeSelectOptions.js +8 -7
  10. package/NativeSelectOptions/NativeSelectOptions.js.map +1 -1
  11. package/NonNativeSelect/NonNativeSelect.js +9 -5
  12. package/NonNativeSelect/NonNativeSelect.js.map +1 -1
  13. package/NonNativeSelectLimitFooter/NonNativeSelectLimitFooter.d.ts +7 -0
  14. package/NonNativeSelectLimitFooter/NonNativeSelectLimitFooter.js +16 -0
  15. package/NonNativeSelectLimitFooter/NonNativeSelectLimitFooter.js.map +1 -0
  16. package/NonNativeSelectLimitFooter/index.d.ts +1 -0
  17. package/NonNativeSelectLimitFooter/index.js +2 -0
  18. package/NonNativeSelectLimitFooter/index.js.map +1 -0
  19. package/NonNativeSelectLimitFooter/styles.d.ts +3 -0
  20. package/NonNativeSelectLimitFooter/styles.js +10 -0
  21. package/NonNativeSelectLimitFooter/styles.js.map +1 -0
  22. package/NonNativeSelectLoader/NonNativeSelectLoader.d.ts +4 -1
  23. package/NonNativeSelectLoader/NonNativeSelectLoader.js +2 -2
  24. package/NonNativeSelectLoader/NonNativeSelectLoader.js.map +1 -1
  25. package/NonNativeSelectOption/NonNativeSelectOption.js +1 -1
  26. package/NonNativeSelectOption/NonNativeSelectOption.js.map +1 -1
  27. package/NonNativeSelectOptions/NonNativeSelectOptions.d.ts +8 -3
  28. package/NonNativeSelectOptions/NonNativeSelectOptions.js +9 -21
  29. package/NonNativeSelectOptions/NonNativeSelectOptions.js.map +1 -1
  30. package/NonNativeSelectOptions/styles.d.ts +1 -2
  31. package/NonNativeSelectOptions/styles.js +1 -7
  32. package/NonNativeSelectOptions/styles.js.map +1 -1
  33. package/Select/hooks/use-highlighted-index/use-highlighted-index.d.ts +4 -2
  34. package/Select/hooks/use-highlighted-index/use-highlighted-index.js +12 -8
  35. package/Select/hooks/use-highlighted-index/use-highlighted-index.js.map +1 -1
  36. package/Select/hooks/use-select-props/mocks.js +1 -3
  37. package/Select/hooks/use-select-props/mocks.js.map +1 -1
  38. package/Select/hooks/use-select-props/use-arrows-keydown-handler/use-arrows-keydown-handler.js +12 -1
  39. package/Select/hooks/use-select-props/use-arrows-keydown-handler/use-arrows-keydown-handler.js.map +1 -1
  40. package/Select/hooks/use-select-props/use-select-handler/use-select-handler.d.ts +1 -1
  41. package/Select/hooks/use-select-props/use-select-handler/use-select-handler.js +4 -5
  42. package/Select/hooks/use-select-props/use-select-handler/use-select-handler.js.map +1 -1
  43. package/Select/hooks/use-select-state/use-select-state.js +28 -20
  44. package/Select/hooks/use-select-state/use-select-state.js.map +1 -1
  45. package/Select/types.d.ts +8 -4
  46. package/Select/utils/count-options/count-options.d.ts +3 -0
  47. package/Select/utils/count-options/count-options.js +9 -0
  48. package/Select/utils/count-options/count-options.js.map +1 -0
  49. package/Select/utils/count-options/index.d.ts +1 -0
  50. package/Select/utils/count-options/index.js +2 -0
  51. package/Select/utils/count-options/index.js.map +1 -0
  52. package/Select/utils/get-multiple-selection/get-multiple-selection.d.ts +2 -2
  53. package/Select/utils/get-multiple-selection/get-multiple-selection.js +4 -9
  54. package/Select/utils/get-multiple-selection/get-multiple-selection.js.map +1 -1
  55. package/Select/utils/get-selected-options/get-selected-options.d.ts +2 -2
  56. package/Select/utils/get-selected-options/get-selected-options.js +4 -4
  57. package/Select/utils/get-selected-options/get-selected-options.js.map +1 -1
  58. package/Select/utils/get-single-selection/get-single-selection.d.ts +2 -2
  59. package/Select/utils/get-single-selection/get-single-selection.js +4 -6
  60. package/Select/utils/get-single-selection/get-single-selection.js.map +1 -1
  61. package/Select/utils/index.d.ts +2 -2
  62. package/Select/utils/index.js +2 -2
  63. package/Select/utils/index.js.map +1 -1
  64. package/Select/utils/limit-options/index.d.ts +1 -0
  65. package/Select/utils/limit-options/index.js +2 -0
  66. package/Select/utils/limit-options/index.js.map +1 -0
  67. package/Select/utils/limit-options/limit-options.d.ts +7 -0
  68. package/Select/utils/limit-options/limit-options.js +16 -0
  69. package/Select/utils/limit-options/limit-options.js.map +1 -0
  70. package/package.json +2 -2
  71. package/Select/utils/get-selection/get-selection.d.ts +0 -3
  72. package/Select/utils/get-selection/get-selection.js +0 -7
  73. package/Select/utils/get-selection/get-selection.js.map +0 -1
  74. package/Select/utils/get-selection/index.d.ts +0 -1
  75. package/Select/utils/get-selection/index.js +0 -2
  76. package/Select/utils/get-selection/index.js.map +0 -1
  77. package/Select/utils/remove-duplicated-options/index.d.ts +0 -1
  78. package/Select/utils/remove-duplicated-options/index.js +0 -2
  79. package/Select/utils/remove-duplicated-options/index.js.map +0 -1
  80. package/Select/utils/remove-duplicated-options/remove-duplicated-options.d.ts +0 -3
  81. package/Select/utils/remove-duplicated-options/remove-duplicated-options.js +0 -6
  82. package/Select/utils/remove-duplicated-options/remove-duplicated-options.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../../src/Select/hooks/use-select-props/mocks.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAmB,EAAE;IACxD,OAAO;QACL,cAAc,EAAE;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACV;SACT;QACD,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACV;SACT;QACD,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACV;SACT;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;YACzB,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;YACvB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;SACnB;QACD,WAAW,EAAE;YACX,eAAe,EAAE,EAAE;YACnB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;YAChB,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,IAAI;YAClB,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC9B,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;YAChC,UAAU,EAAE,KAAK;YACjB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1B,SAAS,EAAE;gBACT,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;gBACrB,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;gBAC3B,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;aACnB;YACD,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,eAAe,EAAE,EAAE;YACnB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;SAC9B;KACF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../../src/Select/hooks/use-select-props/mocks.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAmB,EAAE;IACxD,OAAO;QACL,cAAc,EAAE;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACV;SACT;QACD,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACV;SACT;QACD,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACV;SACT;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;YACzB,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;YACvB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;SACnB;QACD,WAAW,EAAE;YACX,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;YAChB,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,IAAI;YAClB,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC9B,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;YAChC,UAAU,EAAE,KAAK;YACjB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE;gBACT,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;gBACrB,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;gBAC3B,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;aACnB;YACD,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;YACpB,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;SACpB;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -3,7 +3,18 @@ import { flattenOptions, getNextWrappingIndex } from '../../../utils';
3
3
  const useArrowsKeyDownHandler = ({ selectState: { isOpen, highlightedIndex, filteredOptions, setHighlightedIndex, open } }) => useCallback((key, event) => {
4
4
  event.preventDefault();
5
5
  if (isOpen) {
6
- setHighlightedIndex(getNextWrappingIndex(key === 'ArrowDown' ? 1 : -1, highlightedIndex, flattenOptions(filteredOptions).length));
6
+ // Use only non-disabled options
7
+ const nonDisabledOptions = flattenOptions(filteredOptions)
8
+ .map((option, actualIndex) => (Object.assign(Object.assign({}, option), { actualIndex })))
9
+ .filter(option => !option.disabled);
10
+ // Find the non-disabled index for highlightedIndex
11
+ const initialIndex = nonDisabledOptions.findIndex(option => option.actualIndex === highlightedIndex);
12
+ const moveAmount = key === 'ArrowDown' ? 1 : -1;
13
+ // Find the next wrapping non-disabled index
14
+ const nextNonDisabledIndex = getNextWrappingIndex(moveAmount, initialIndex, nonDisabledOptions.length);
15
+ // Convert non-disabled index to the actual one
16
+ const actualIndex = nonDisabledOptions[nextNonDisabledIndex].actualIndex;
17
+ setHighlightedIndex(actualIndex);
7
18
  }
8
19
  else {
9
20
  open();
@@ -1 +1 @@
1
- {"version":3,"file":"use-arrows-keydown-handler.js","sourceRoot":"","sources":["../../../../../src/Select/hooks/use-select-props/use-arrows-keydown-handler/use-arrows-keydown-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGrE,MAAM,uBAAuB,GAAG,CAG9B,EACA,WAAW,EAAE,EACX,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,IAAI,EACL,EACoB,EAAE,EAAE,CACzB,WAAW,CACT,CAAC,GAAW,EAAE,KAAsC,EAAE,EAAE;IACtD,KAAK,CAAC,cAAc,EAAE,CAAA;IAEtB,IAAI,MAAM,EAAE;QACV,mBAAmB,CACjB,oBAAoB,CAClB,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5B,gBAAgB,EAChB,cAAc,CAAC,eAAe,CAAC,CAAC,MAAM,CACvC,CACF,CAAA;KACF;SAAM;QACL,IAAI,EAAE,CAAA;KACP;AACH,CAAC,EACD,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAAC,CACvE,CAAA;AAEH,eAAe,uBAAuB,CAAA"}
1
+ {"version":3,"file":"use-arrows-keydown-handler.js","sourceRoot":"","sources":["../../../../../src/Select/hooks/use-select-props/use-arrows-keydown-handler/use-arrows-keydown-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGrE,MAAM,uBAAuB,GAAG,CAG9B,EACA,WAAW,EAAE,EACX,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,IAAI,EACL,EACoB,EAAE,EAAE,CACzB,WAAW,CACT,CAAC,GAAW,EAAE,KAAsC,EAAE,EAAE;IACtD,KAAK,CAAC,cAAc,EAAE,CAAA;IAEtB,IAAI,MAAM,EAAE;QACV,gCAAgC;QAChC,MAAM,kBAAkB,GAAG,cAAc,CAAC,eAAe,CAAC;aACvD,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,iCAAM,MAAM,KAAE,WAAW,IAAG,CAAC;aAC1D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAErC,mDAAmD;QACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAC/C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,gBAAgB,CAClD,CAAA;QACD,MAAM,UAAU,GAAG,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,4CAA4C;QAC5C,MAAM,oBAAoB,GAAG,oBAAoB,CAC/C,UAAU,EACV,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAC1B,CAAA;QACD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAA;QAExE,mBAAmB,CAAC,WAAW,CAAC,CAAA;KACjC;SAAM;QACL,IAAI,EAAE,CAAA;KACP;AACH,CAAC,EACD,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAAC,CACvE,CAAA;AAEH,eAAe,uBAAuB,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { Option, ValueType, UseSelectProps } from '../../../types';
2
- declare const useSelectHandler: <T extends ValueType, M extends boolean = false>({ selectState: { emptySelectValue, setSelectedOptions, setFilterOptionsValue }, selectProps: { multiple, value, options, name, onChange }, selectRef }: UseSelectProps<T, M, M extends true ? T[] : T>) => (event: React.SyntheticEvent, option: Option | null) => void;
2
+ declare const useSelectHandler: <T extends ValueType, M extends boolean = false>({ selectState: { emptySelectValue, setValue, setFilterOptionsValue }, selectProps: { multiple, value, name, onChange }, selectRef }: UseSelectProps<T, M, M extends true ? T[] : T>) => (event: React.SyntheticEvent, option: Option | null) => void;
3
3
  export default useSelectHandler;
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable max-lines */
2
2
  import { useCallback } from 'react';
3
- import { EMPTY_INPUT_VALUE, toggleMultipleSelectValue, focusRef, fireOnChangeEvent, getSelectedOptions } from '../../../utils';
4
- const useSelectHandler = ({ selectState: { emptySelectValue, setSelectedOptions, setFilterOptionsValue }, selectProps: { multiple, value, options, name, onChange }, selectRef }) => useCallback((event, option) => {
3
+ import { EMPTY_INPUT_VALUE, toggleMultipleSelectValue, focusRef, fireOnChangeEvent } from '../../../utils';
4
+ const useSelectHandler = ({ selectState: { emptySelectValue, setValue, setFilterOptionsValue }, selectProps: { multiple, value, name, onChange }, selectRef }) => useCallback((event, option) => {
5
5
  let newValue;
6
6
  if (option === null) {
7
7
  newValue = emptySelectValue;
@@ -12,20 +12,19 @@ const useSelectHandler = ({ selectState: { emptySelectValue, setSelectedOptions,
12
12
  else {
13
13
  newValue = option.value;
14
14
  }
15
- setSelectedOptions(getSelectedOptions(options, newValue));
15
+ setValue(newValue);
16
16
  fireOnChangeEvent({ event, value: newValue, name, onChange });
17
17
  setFilterOptionsValue(EMPTY_INPUT_VALUE);
18
18
  focusRef(selectRef);
19
19
  }, [
20
20
  name,
21
21
  onChange,
22
- options,
23
22
  emptySelectValue,
24
23
  setFilterOptionsValue,
25
24
  multiple,
26
25
  value,
27
26
  selectRef,
28
- setSelectedOptions
27
+ setValue
29
28
  ]);
30
29
  export default useSelectHandler;
31
30
  //# sourceMappingURL=use-select-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-select-handler.js","sourceRoot":"","sources":["../../../../../src/Select/hooks/use-select-props/use-select-handler/use-select-handler.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGnC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,gBAAgB,GAAG,CAAiD,EACxE,WAAW,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAC5E,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EACzD,SAAS,EACY,EAAE,EAAE,CACzB,WAAW,CACT,CAAC,KAA2B,EAAE,MAAqB,EAAE,EAAE;IACrD,IAAI,QAAiC,CAAA;IAErC,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,QAAQ,GAAG,gBAAgB,CAAA;KAC5B;SAAM,IAAI,QAAQ,EAAE;QACnB,QAAQ,GAAG,yBAAyB,CAClC,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAgB,EAC5B,MAAM,CACP,CAAA;KACF;SAAM;QACL,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAA;KACxB;IAED,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEzD,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC7D,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAExC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACrB,CAAC,EACD;IACE,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,gBAAgB;IAChB,qBAAqB;IACrB,QAAQ;IACR,KAAK;IACL,SAAS;IACT,kBAAkB;CACnB,CACF,CAAA;AAEH,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"use-select-handler.js","sourceRoot":"","sources":["../../../../../src/Select/hooks/use-select-props/use-select-handler/use-select-handler.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGnC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,QAAQ,EACR,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,gBAAgB,GAAG,CAAiD,EACxE,WAAW,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAClE,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAChD,SAAS,EACY,EAAE,EAAE,CACzB,WAAW,CACT,CAAC,KAA2B,EAAE,MAAqB,EAAE,EAAE;IACrD,IAAI,QAAiC,CAAA;IAErC,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,QAAQ,GAAG,gBAAgB,CAAA;KAC5B;SAAM,IAAI,QAAQ,EAAE;QACnB,QAAQ,GAAG,yBAAyB,CAClC,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAgB,EAC5B,MAAM,CACP,CAAA;KACF;SAAM;QACL,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAA;KACxB;IAED,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAElB,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC7D,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAExC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACrB,CAAC,EACD;IACE,IAAI;IACJ,QAAQ;IACR,gBAAgB;IAChB,qBAAqB;IACrB,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;CACT,CACF,CAAA;AAEH,eAAe,gBAAgB,CAAA"}
@@ -1,18 +1,30 @@
1
+ /* eslint-disable max-statements */
1
2
  import { useState, useCallback, useEffect, useMemo } from 'react';
2
- import { getSelection, removeDuplicatedOptions, getSelectedOptions, DEFAULT_SEARCH_THRESHOLD, DEFAULT_LIMIT, filterOptions, flattenOptions } from '../../utils';
3
+ import { getMultipleSelection, getSingleSelection, getSelectedOptions, DEFAULT_SEARCH_THRESHOLD, DEFAULT_LIMIT, filterOptions, flattenOptions, limitOptions } from '../../utils';
3
4
  import useHighlightedIndex from '../use-highlighted-index';
4
5
  export const EMPTY_INPUT_VALUE = '';
5
6
  const useSelectState = (props) => {
6
- const { getDisplayValue, options = [], disabled = false, multiple, value, searchThreshold = DEFAULT_SEARCH_THRESHOLD, limit = DEFAULT_LIMIT } = props;
7
+ const { getDisplayValue, options = [], disabled = false, multiple, value: valueProp, searchThreshold = DEFAULT_SEARCH_THRESHOLD, limit = DEFAULT_LIMIT } = props;
7
8
  const flatOptions = useMemo(() => flattenOptions(options), [
8
9
  options
9
10
  ]);
10
- const [selectedOptions, setSelectedOptions] = useState(getSelectedOptions(options, value));
11
- const selection = useMemo(() => getSelection(removeDuplicatedOptions([...flatOptions, ...selectedOptions]), value), [flatOptions, selectedOptions, value]);
12
- const [displayValue, setDisplayValue] = useState(selection.display(getDisplayValue));
11
+ const [value, setValue] = useState(valueProp);
12
+ const selectedOptions = useMemo(() => getSelectedOptions(flatOptions, value), [flatOptions, value]);
13
+ const selection = useMemo(() => multiple
14
+ ? getMultipleSelection(selectedOptions)
15
+ : getSingleSelection(selectedOptions[0]), [selectedOptions, multiple]);
16
+ const displayValue = useMemo(() => selection.display(getDisplayValue), [
17
+ selection,
18
+ getDisplayValue
19
+ ]);
13
20
  const [filterOptionsValue, setFilterOptionsValue] = useState(EMPTY_INPUT_VALUE);
14
- const filteredOptions = useMemo(() => filterOptions({ options, filterOptionsValue, getDisplayValue }), [options, filterOptionsValue, getDisplayValue]);
15
- const selectedIndexes = useMemo(() => flatOptions.reduce((selected, option, index) => selection.isOptionSelected(option) ? [...selected, index] : selected, []), [flatOptions, selection]);
21
+ const filteredOptions = useMemo(() => filterOptions({
22
+ options,
23
+ filterOptionsValue,
24
+ getDisplayValue
25
+ }), [options, filterOptionsValue, getDisplayValue]);
26
+ const filteredLimitedOptions = useMemo(() => limitOptions({ options: filteredOptions, limit }), [filteredOptions, limit]);
27
+ const filteredLimitedFlatOptions = useMemo(() => flattenOptions(filteredLimitedOptions), [filteredLimitedOptions]);
16
28
  const emptySelectValue = useMemo(() => (multiple ? [] : ''), [multiple]);
17
29
  // Search should be shown when limit < searchThreshold
18
30
  // otherwise user might not be able to search through long list
@@ -20,15 +32,13 @@ const useSelectState = (props) => {
20
32
  const [isOpen, setOpen] = useState(false);
21
33
  const canOpen = !isOpen && !disabled;
22
34
  const [highlightedIndex, setHighlightedIndex] = useHighlightedIndex({
23
- selectedIndexes,
35
+ flatOptions: filteredLimitedFlatOptions,
36
+ selection,
24
37
  isOpen
25
38
  });
26
39
  useEffect(() => {
27
- const newSelect = getSelection(removeDuplicatedOptions([...flatOptions, ...selectedOptions]), value);
28
- setDisplayValue(newSelect.display(getDisplayValue));
29
- setSelectedOptions(getSelectedOptions(options, value));
30
- // eslint-disable-next-line react-hooks/exhaustive-deps
31
- }, [value, options, flatOptions]);
40
+ setValue(valueProp);
41
+ }, [valueProp]);
32
42
  const close = useCallback(() => {
33
43
  setOpen(false);
34
44
  }, []);
@@ -41,11 +51,10 @@ const useSelectState = (props) => {
41
51
  close();
42
52
  }
43
53
  }, [disabled, isOpen, close]);
44
- return Object.assign(Object.assign({}, props), { setSelectedOptions,
45
- selectedOptions,
46
- filteredOptions,
47
- selectedIndexes,
48
- isOpen,
54
+ return Object.assign(Object.assign({}, props), { setValue,
55
+ selectedOptions,
56
+ // TODO: keep consistent naming
57
+ filteredOptions: filteredLimitedOptions, isOpen,
49
58
  canOpen,
50
59
  open,
51
60
  close,
@@ -55,8 +64,7 @@ const useSelectState = (props) => {
55
64
  displayValue,
56
65
  selection,
57
66
  emptySelectValue,
58
- setFilterOptionsValue,
59
- setDisplayValue });
67
+ setFilterOptionsValue });
60
68
  };
61
69
  export default useSelectState;
62
70
  //# sourceMappingURL=use-select-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-select-state.js","sourceRoot":"","sources":["../../../../src/Select/hooks/use-select-state/use-select-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-select-state.js","sourceRoot":"","sources":["../../../../src/Select/hooks/use-select-state/use-select-state.ts"],"names":[],"mappings":"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"}
package/Select/types.d.ts CHANGED
@@ -72,6 +72,11 @@ export interface SelectProps<T extends ValueType = ValueType, M extends boolean
72
72
  /** Specifies whether the autofill enabled or not, disabled by default */
73
73
  enableAutofill?: boolean;
74
74
  ref?: React.Ref<HTMLInputElement>;
75
+ testIds?: {
76
+ noOptions?: string;
77
+ loader?: string;
78
+ limitFooter?: string;
79
+ };
75
80
  }
76
81
  export declare type ValueType = string | number;
77
82
  export declare type Option<T extends string | number = string | number> = {
@@ -79,7 +84,8 @@ export declare type Option<T extends string | number = string | number> = {
79
84
  text: string;
80
85
  description?: string;
81
86
  value: T;
82
- [prop: string]: string | number | undefined;
87
+ disabled?: boolean;
88
+ [prop: string]: string | number | undefined | boolean;
83
89
  };
84
90
  export declare type OptionGroups<T extends string | number = string | number> = {
85
91
  [group: string]: Option<T>[];
@@ -105,7 +111,6 @@ export interface UseSelectStateProps {
105
111
  limit?: number;
106
112
  }
107
113
  export declare type UseSelectStateOutput = {
108
- selectedIndexes: number[];
109
114
  isOpen: boolean;
110
115
  canOpen: boolean;
111
116
  open: () => void;
@@ -117,12 +122,11 @@ export declare type UseSelectStateOutput = {
117
122
  showSearch: boolean;
118
123
  filterOptionsValue: string;
119
124
  displayValue: string;
120
- setDisplayValue: (value: string) => void;
121
125
  selection: Selection;
122
126
  filteredOptions: Option[] | OptionGroups;
123
127
  emptySelectValue: string | string[];
124
128
  selectedOptions: Option[];
125
- setSelectedOptions: (options: Option[]) => void;
129
+ setValue: (value: ValueType | ValueType[]) => void;
126
130
  };
127
131
  export interface UseSelectProps<T extends ValueType = ValueType, M extends boolean = boolean, V = M extends true ? T[] : T> {
128
132
  searchInputRef?: React.Ref<HTMLInputElement>;
@@ -0,0 +1,3 @@
1
+ import { Option, OptionGroups } from '../../types';
2
+ declare const countOptions: (options: Option[] | OptionGroups) => number;
3
+ export default countOptions;
@@ -0,0 +1,9 @@
1
+ import { isOptionsType } from '..';
2
+ const countOptions = (options) => {
3
+ if (isOptionsType(options)) {
4
+ return options.length;
5
+ }
6
+ return Object.values(options).reduce((result, optionList) => result + optionList.length, 0);
7
+ };
8
+ export default countOptions;
9
+ //# sourceMappingURL=count-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-options.js","sourceRoot":"","sources":["../../../../src/Select/utils/count-options/count-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAElC,MAAM,YAAY,GAAG,CAAC,OAAgC,EAAE,EAAE;IACxD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAA;KACtB;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAClC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAClD,CAAC,CACF,CAAA;AACH,CAAC,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1 @@
1
+ export { default } from './count-options';
@@ -0,0 +1,2 @@
1
+ export { default } from './count-options';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Select/utils/count-options/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1,3 +1,3 @@
1
- import { ValueType, Option, Selection } from '../../types';
2
- declare const getMultipleSelection: (options: Option[], value: ValueType[]) => Selection;
1
+ import { Option, Selection } from '../../types';
2
+ declare const getMultipleSelection: (selectedOptions: Option[]) => Selection;
3
3
  export default getMultipleSelection;
@@ -1,13 +1,8 @@
1
- import isOptionInSelectedValues from '../is-option-in-selected-values';
2
- import isEmpty from '../is-empty';
3
- const getMultipleSelection = (options, value) => {
4
- const getSelectedOptions = () => options.filter(option => isOptionInSelectedValues(option, value));
1
+ const getMultipleSelection = (selectedOptions) => {
5
2
  return {
6
- display: (getDisplayValue) => getSelectedOptions()
7
- .map(getDisplayValue)
8
- .join(', '),
9
- isSelected: () => !isEmpty(value),
10
- isOptionSelected: option => isOptionInSelectedValues(option, value)
3
+ display: (getDisplayValue) => selectedOptions.map(getDisplayValue).join(', '),
4
+ isSelected: () => selectedOptions.length > 0,
5
+ isOptionSelected: option => selectedOptions.some(selectedOption => option.value === String(selectedOption.value))
11
6
  };
12
7
  };
13
8
  export default getMultipleSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"get-multiple-selection.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-multiple-selection/get-multiple-selection.ts"],"names":[],"mappings":"AACA,OAAO,wBAAwB,MAAM,iCAAiC,CAAA;AACtE,OAAO,OAAO,MAAM,aAAa,CAAA;AAEjC,MAAM,oBAAoB,GAAG,CAC3B,OAAiB,EACjB,KAAkB,EACP,EAAE;IACb,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAEnE,OAAO;QACL,OAAO,EAAE,CAAC,eAAkD,EAAE,EAAE,CAC9D,kBAAkB,EAAE;aACjB,GAAG,CAAC,eAAe,CAAC;aACpB,IAAI,CAAC,IAAI,CAAC;QACf,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;KACpE,CAAA;AACH,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"get-multiple-selection.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-multiple-selection/get-multiple-selection.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,CAAC,eAAyB,EAAa,EAAE;IACpE,OAAO;QACL,OAAO,EAAE,CAAC,eAAkD,EAAE,EAAE,CAC9D,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACjD,UAAU,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QAC5C,gBAAgB,EAAE,MAAM,CAAC,EAAE,CACzB,eAAe,CAAC,IAAI,CAClB,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAChE;KACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
@@ -1,3 +1,3 @@
1
- import { Option, OptionGroups, ValueType } from '../../types';
2
- declare const getSelectedOptions: (options: Option[] | OptionGroups, value?: ValueType | ValueType[] | undefined) => Option<string | number>[];
1
+ import { Option, ValueType } from '../../types';
2
+ declare const getSelectedOptions: (flatOptions: Option[], value?: ValueType | ValueType[] | undefined) => Option<string | number>[];
3
3
  export default getSelectedOptions;
@@ -1,6 +1,6 @@
1
- import { flattenOptions } from '../../utils';
2
- const getSelectedOptions = (options, value) => flattenOptions(options).filter(option => Array.isArray(value)
3
- ? value.includes(String(option.value))
4
- : value === String(option.value));
1
+ const getSelectedOptions = (flatOptions, value) => {
2
+ const valuesSet = new Set(Array.isArray(value) ? value : [value]);
3
+ return flatOptions.filter(option => valuesSet.has(String(option.value)));
4
+ };
5
5
  export default getSelectedOptions;
6
6
  //# sourceMappingURL=get-selected-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-selected-options.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-selected-options/get-selected-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,kBAAkB,GAAG,CACzB,OAAgC,EAChC,KAA+B,EAC/B,EAAE,CACF,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACtC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CACnC,CAAA;AAEH,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"get-selected-options.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-selected-options/get-selected-options.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG,CACzB,WAAqB,EACrB,KAA+B,EAC/B,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAEjE,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1,3 +1,3 @@
1
- import { ValueType, Option, Selection } from '../../types';
2
- declare const getSingleSelection: (options: Option[], value?: ValueType | undefined) => Selection;
1
+ import { Option, Selection } from '../../types';
2
+ declare const getSingleSelection: (selectedOption: Option | null) => Selection;
3
3
  export default getSingleSelection;
@@ -1,10 +1,8 @@
1
- import isEmpty from '../is-empty';
2
- const getSingleSelection = (options, value) => {
3
- const getSelectedOption = () => options.find(option => option.value === value) || null;
1
+ const getSingleSelection = (selectedOption) => {
4
2
  return {
5
- display: (getDisplayValue) => getDisplayValue(getSelectedOption()),
6
- isSelected: () => !isEmpty(value),
7
- isOptionSelected: option => option.value === value
3
+ display: (getDisplayValue) => getDisplayValue(selectedOption),
4
+ isSelected: () => !!selectedOption,
5
+ isOptionSelected: option => option.value === (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value)
8
6
  };
9
7
  };
10
8
  export default getSingleSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"get-single-selection.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-single-selection/get-single-selection.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,aAAa,CAAA;AAEjC,MAAM,kBAAkB,GAAG,CACzB,OAAiB,EACjB,KAAiB,EACN,EAAE;IACb,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAA;IAExD,OAAO;QACL,OAAO,EAAE,CAAC,eAAkD,EAAE,EAAE,CAC9D,eAAe,CAAC,iBAAiB,EAAE,CAAC;QACtC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK;KACnD,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"get-single-selection.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-single-selection/get-single-selection.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG,CAAC,cAA6B,EAAa,EAAE;IACtE,OAAO;QACL,OAAO,EAAE,CAAC,eAAkD,EAAE,EAAE,CAC9D,eAAe,CAAC,cAAc,CAAC;QACjC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc;QAClC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,MAAK,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAA;KACnE,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { default as filterOptions } from './filter-options';
2
+ export { default as limitOptions } from './limit-options';
2
3
  export { default as fireOnChangeEvent } from './fire-on-change-event';
3
4
  export { default as flattenOptions } from './flatten-options';
4
5
  export { default as focusRef } from './focus-ref';
@@ -6,14 +7,13 @@ export { default as getMultipleSelection } from './get-multiple-selection';
6
7
  export { default as getNextWrappingIndex } from './get-next-wrapping-index';
7
8
  export { default as getOptionText } from './get-option-text';
8
9
  export { default as getSelectedOptions } from './get-selected-options';
9
- export { default as getSelection } from './get-selection';
10
10
  export { default as getSingleSelection } from './get-single-selection';
11
11
  export { default as isEmpty } from './is-empty';
12
12
  export { default as isOptionInSelectedValues } from './is-option-in-selected-values';
13
13
  export { default as isOptionsType } from './is-options-type';
14
14
  export { default as isRelatedTargetInsidePopper } from './is-related-target-inside-popper';
15
15
  export { default as normalizeArrowKey } from './normalize-arrow-key';
16
- export { default as removeDuplicatedOptions } from './remove-duplicated-options';
17
16
  export { default as renderOption } from './render-option';
18
17
  export { default as toggleMultipleSelectValue } from './toggle-multiple-select-value';
18
+ export { default as countOptions } from './count-options';
19
19
  export * from './constants';
@@ -1,4 +1,5 @@
1
1
  export { default as filterOptions } from './filter-options';
2
+ export { default as limitOptions } from './limit-options';
2
3
  export { default as fireOnChangeEvent } from './fire-on-change-event';
3
4
  export { default as flattenOptions } from './flatten-options';
4
5
  export { default as focusRef } from './focus-ref';
@@ -6,15 +7,14 @@ export { default as getMultipleSelection } from './get-multiple-selection';
6
7
  export { default as getNextWrappingIndex } from './get-next-wrapping-index';
7
8
  export { default as getOptionText } from './get-option-text';
8
9
  export { default as getSelectedOptions } from './get-selected-options';
9
- export { default as getSelection } from './get-selection';
10
10
  export { default as getSingleSelection } from './get-single-selection';
11
11
  export { default as isEmpty } from './is-empty';
12
12
  export { default as isOptionInSelectedValues } from './is-option-in-selected-values';
13
13
  export { default as isOptionsType } from './is-options-type';
14
14
  export { default as isRelatedTargetInsidePopper } from './is-related-target-inside-popper';
15
15
  export { default as normalizeArrowKey } from './normalize-arrow-key';
16
- export { default as removeDuplicatedOptions } from './remove-duplicated-options';
17
16
  export { default as renderOption } from './render-option';
18
17
  export { default as toggleMultipleSelectValue } from './toggle-multiple-select-value';
18
+ export { default as countOptions } from './count-options';
19
19
  export * from './constants';
20
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Select/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,mCAAmC,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AACrF,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Select/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,mCAAmC,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzD,cAAc,aAAa,CAAA"}
@@ -0,0 +1 @@
1
+ export { default } from './limit-options';
@@ -0,0 +1,2 @@
1
+ export { default } from './limit-options';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Select/utils/limit-options/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Option, OptionGroups } from '../../types';
2
+ interface Props {
3
+ options: Option[] | OptionGroups;
4
+ limit: number;
5
+ }
6
+ declare const limitOptions: ({ options, limit }: Props) => Option[] | OptionGroups;
7
+ export default limitOptions;
@@ -0,0 +1,16 @@
1
+ import { isOptionsType } from '..';
2
+ const limitOptions = ({ options, limit }) => {
3
+ if (isOptionsType(options)) {
4
+ return limitFlatOptions({ options, limit });
5
+ }
6
+ return Object.keys(options).reduce((result, group) => {
7
+ result[group] = limitFlatOptions({
8
+ options: options[group],
9
+ limit
10
+ });
11
+ return result;
12
+ }, {});
13
+ };
14
+ const limitFlatOptions = ({ options, limit }) => options.slice(0, limit);
15
+ export default limitOptions;
16
+ //# sourceMappingURL=limit-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit-options.js","sourceRoot":"","sources":["../../../../src/Select/utils/limit-options/limit-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAOlC,MAAM,YAAY,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAS,EAA2B,EAAE;IAC1E,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;KAC5C;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAoB,EAAE,KAAK,EAAE,EAAE;QACjE,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;YAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;YACvB,KAAK;SACN,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,EACxB,OAAO,EACP,KAAK,EACyB,EAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAEtE,eAAe,YAAY,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso",
3
- "version": "12.3.1",
3
+ "version": "12.4.0",
4
4
  "description": "Toptal UI components library",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -69,5 +69,5 @@
69
69
  "**/styles.ts",
70
70
  "**/styles.js"
71
71
  ],
72
- "gitHead": "a1bf5af15989fa3fad18df0b83e7070def26f9ca"
72
+ "gitHead": "7b7c905a2172259f265e6303fe691396ca0582d2"
73
73
  }
@@ -1,3 +0,0 @@
1
- import { ValueType, Option } from '../../types';
2
- declare const getSelection: (options: Option[], value?: ValueType | ValueType[] | undefined) => import("../../types").Selection;
3
- export default getSelection;
@@ -1,7 +0,0 @@
1
- import getMultipleSelection from '../get-multiple-selection';
2
- import getSingleSelection from '../get-single-selection';
3
- const getSelection = (options, value) => Array.isArray(value)
4
- ? getMultipleSelection(options, value)
5
- : getSingleSelection(options, value);
6
- export default getSelection;
7
- //# sourceMappingURL=get-selection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-selection.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-selection/get-selection.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,2BAA2B,CAAA;AAC5D,OAAO,kBAAkB,MAAM,yBAAyB,CAAA;AAExD,MAAM,YAAY,GAAG,CAAC,OAAiB,EAAE,KAA+B,EAAE,EAAE,CAC1E,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAoB,CAAC;IACrD,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAA8B,CAAC,CAAA;AAEjE,eAAe,YAAY,CAAA"}
@@ -1 +0,0 @@
1
- export { default } from './get-selection';
@@ -1,2 +0,0 @@
1
- export { default } from './get-selection';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Select/utils/get-selection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1 +0,0 @@
1
- export { default } from './remove-duplicated-options';
@@ -1,2 +0,0 @@
1
- export { default } from './remove-duplicated-options';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Select/utils/remove-duplicated-options/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,3 +0,0 @@
1
- import { Option } from '../../types';
2
- declare const removeDuplicatedOptions: (options: Option[]) => Option<string | number>[];
3
- export default removeDuplicatedOptions;
@@ -1,6 +0,0 @@
1
- const removeDuplicatedOptions = (options) => options.filter((option, index) => {
2
- const innerIndex = options.findIndex(innerOption => innerOption.value === option.value);
3
- return innerIndex === index;
4
- });
5
- export default removeDuplicatedOptions;
6
- //# sourceMappingURL=remove-duplicated-options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-duplicated-options.js","sourceRoot":"","sources":["../../../../src/Select/utils/remove-duplicated-options/remove-duplicated-options.ts"],"names":[],"mappings":"AAEA,MAAM,uBAAuB,GAAG,CAAC,OAAiB,EAAE,EAAE,CACpD,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAClC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAClD,CAAA;IAED,OAAO,UAAU,KAAK,KAAK,CAAA;AAC7B,CAAC,CAAC,CAAA;AAEJ,eAAe,uBAAuB,CAAA"}