@activecollab/components 1.0.138 → 1.0.141

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 (81) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +60 -27
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/Autocomplete/Styles.js +9 -11
  4. package/dist/cjs/components/Autocomplete/Styles.js.map +1 -1
  5. package/dist/cjs/components/Icons/collection/ArrowDownLong.js +31 -0
  6. package/dist/cjs/components/Icons/collection/ArrowDownLong.js.map +1 -0
  7. package/dist/cjs/components/Icons/collection/ArrowUpLong.js +31 -0
  8. package/dist/cjs/components/Icons/collection/ArrowUpLong.js.map +1 -0
  9. package/dist/cjs/components/Icons/collection/index.js +16 -0
  10. package/dist/cjs/components/Icons/collection/index.js.map +1 -1
  11. package/dist/cjs/components/Select/Option/Option.js +7 -2
  12. package/dist/cjs/components/Select/Option/Option.js.map +1 -1
  13. package/dist/cjs/components/Select/Option/Styles.js +1 -1
  14. package/dist/cjs/components/Select/Option/Styles.js.map +1 -1
  15. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +34 -9
  16. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  17. package/dist/cjs/components/Select/OptionGroup/Styles.js +2 -2
  18. package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
  19. package/dist/cjs/components/Select/Select.js +12 -36
  20. package/dist/cjs/components/Select/Select.js.map +1 -1
  21. package/dist/cjs/components/SelectTrigger/SelectTrigger.js +3 -2
  22. package/dist/cjs/components/SelectTrigger/SelectTrigger.js.map +1 -1
  23. package/dist/cjs/components/Tooltip/Styles.js +3 -1
  24. package/dist/cjs/components/Tooltip/Styles.js.map +1 -1
  25. package/dist/cjs/components/Tooltip/Tooltip.js +5 -2
  26. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  27. package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  28. package/dist/esm/components/Autocomplete/Autocomplete.js +60 -27
  29. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  30. package/dist/esm/components/Autocomplete/Styles.d.ts +6 -4
  31. package/dist/esm/components/Autocomplete/Styles.d.ts.map +1 -1
  32. package/dist/esm/components/Autocomplete/Styles.js +7 -6
  33. package/dist/esm/components/Autocomplete/Styles.js.map +1 -1
  34. package/dist/esm/components/Icons/collection/ArrowDownLong.d.ts +4 -0
  35. package/dist/esm/components/Icons/collection/ArrowDownLong.d.ts.map +1 -0
  36. package/dist/esm/components/Icons/collection/ArrowDownLong.js +18 -0
  37. package/dist/esm/components/Icons/collection/ArrowDownLong.js.map +1 -0
  38. package/dist/esm/components/Icons/collection/ArrowUpLong.d.ts +4 -0
  39. package/dist/esm/components/Icons/collection/ArrowUpLong.d.ts.map +1 -0
  40. package/dist/esm/components/Icons/collection/ArrowUpLong.js +18 -0
  41. package/dist/esm/components/Icons/collection/ArrowUpLong.js.map +1 -0
  42. package/dist/esm/components/Icons/collection/index.d.ts +2 -0
  43. package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
  44. package/dist/esm/components/Icons/collection/index.js +2 -0
  45. package/dist/esm/components/Icons/collection/index.js.map +1 -1
  46. package/dist/esm/components/Select/Option/Option.d.ts +3 -2
  47. package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
  48. package/dist/esm/components/Select/Option/Option.js +7 -2
  49. package/dist/esm/components/Select/Option/Option.js.map +1 -1
  50. package/dist/esm/components/Select/Option/Styles.d.ts +1 -1
  51. package/dist/esm/components/Select/Option/Styles.js +1 -1
  52. package/dist/esm/components/Select/Option/Styles.js.map +1 -1
  53. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts +2 -4
  54. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
  55. package/dist/esm/components/Select/OptionGroup/OptionGroup.js +21 -9
  56. package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  57. package/dist/esm/components/Select/OptionGroup/Styles.d.ts +1 -1
  58. package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
  59. package/dist/esm/components/Select/OptionGroup/Styles.js +2 -2
  60. package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
  61. package/dist/esm/components/Select/Select.d.ts +2 -5
  62. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  63. package/dist/esm/components/Select/Select.js +12 -36
  64. package/dist/esm/components/Select/Select.js.map +1 -1
  65. package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts +1 -0
  66. package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts.map +1 -1
  67. package/dist/esm/components/SelectTrigger/SelectTrigger.js +3 -2
  68. package/dist/esm/components/SelectTrigger/SelectTrigger.js.map +1 -1
  69. package/dist/esm/components/Tooltip/Styles.d.ts +1 -0
  70. package/dist/esm/components/Tooltip/Styles.d.ts.map +1 -1
  71. package/dist/esm/components/Tooltip/Styles.js +3 -1
  72. package/dist/esm/components/Tooltip/Styles.js.map +1 -1
  73. package/dist/esm/components/Tooltip/Tooltip.d.ts +1 -0
  74. package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
  75. package/dist/esm/components/Tooltip/Tooltip.js +5 -2
  76. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  77. package/dist/index.js +152 -87
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.min.js +1 -1
  80. package/dist/index.min.js.map +1 -1
  81. package/package.json +1 -1
@@ -15,12 +15,26 @@ var _Checkbox = require("../../Checkbox/Checkbox");
15
15
 
16
16
  var _Styles = require("./Styles");
17
17
 
18
+ var _List = require("../../List");
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
23
 
22
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
25
 
26
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
27
+
28
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
29
+
30
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
31
+
32
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
33
+
34
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
35
+
36
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
37
+
24
38
  var OptionGroup = function OptionGroup(_ref) {
25
39
  var id = _ref.id,
26
40
  name = _ref.name,
@@ -64,24 +78,35 @@ var OptionGroup = function OptionGroup(_ref) {
64
78
  e.stopPropagation();
65
79
 
66
80
  if (onChange) {
67
- onChange(allOptionValues);
81
+ if (isAllOptionsChecked) {
82
+ onChange(checked.filter(function (i) {
83
+ return allOptionValues.includes(i) === false;
84
+ }));
85
+ } else {
86
+ var values = [].concat(_toConsumableArray(checked), _toConsumableArray(allOptionValues));
87
+ var unique = values.filter(function (item, pos) {
88
+ return values.indexOf(item) === pos;
89
+ });
90
+ onChange(unique);
91
+ }
68
92
  }
69
- }, [allOptionValues, onChange]);
70
- return /*#__PURE__*/_react.default.createElement(_Styles.StyledOptionGroup, {
93
+ }, [allOptionValues, checked, isAllOptionsChecked, onChange]);
94
+ return /*#__PURE__*/_react.default.createElement("li", {
71
95
  key: id,
72
- className: (0, _classnames.default)("c-option-group", optionGroupClassName)
96
+ className: (0, _classnames.default)("c-option-group tw-flex-col", optionGroupClassName)
97
+ }, /*#__PURE__*/_react.default.createElement(_Styles.StyledOptionGroup, {
98
+ key: id
73
99
  }, /*#__PURE__*/_react.default.createElement(_Styles.StyledOptionGroupOption, {
74
- title: name,
75
100
  onMouseEnter: handleHover,
76
101
  hover: hover === id && type === "multiple"
77
- }, /*#__PURE__*/_react.default.createElement(_Styles.StyledOptionGroupHeader, null, /*#__PURE__*/_react.default.createElement("div", null, name), type === "multiple" && /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
102
+ }, /*#__PURE__*/_react.default.createElement(_Styles.StyledOptionGroupHeader, null, name, type === "multiple" && /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
78
103
  id: "".concat(id),
79
104
  checked: isAllOptionsChecked,
80
105
  onChange: handleClick,
81
106
  type: "checkbox"
82
- }))), list.map(function (item) {
83
- return renderOptions && renderOptions(item);
84
- }));
107
+ }))), /*#__PURE__*/_react.default.createElement(_List.List, null, list.map(function (item, index) {
108
+ return typeof renderOptions === "function" ? renderOptions(item, index) : item.name;
109
+ }))));
85
110
  };
86
111
 
87
112
  exports.OptionGroup = OptionGroup;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":["OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","item","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n} from \"./Styles\";\n\nexport interface IOptionGroupProps {\n /** Group value */\n id?: string | number;\n /** Group label */\n name: string;\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps) => void;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\n\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\n onChange(allOptionValues);\n }\n },\n [allOptionValues, onChange]\n );\n\n return (\n <StyledOptionGroup\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n >\n <StyledOptionGroupOption\n title={name}\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <div>{name}</div>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n {list.map(\n (item: IOptionItemProps) => renderOptions && renderOptions(item)\n )}\n </StyledOptionGroup>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"file":"OptionGroup.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":["OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","i","values","unique","item","pos","indexOf","index","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n} from \"./Styles\";\nimport { List } from \"../../List\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => void;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\n\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange]\n );\n\n return (\n <li\n key={id}\n className={classNames(\"c-option-group tw-flex-col\", optionGroupClassName)}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n {name}\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n <List>\n {list.map((item: IOptionItemProps, index) => {\n return typeof renderOptions === \"function\"\n ? renderOptions(item, index)\n : item.name;\n })}\n </List>\n </StyledOptionGroup>\n </li>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"file":"OptionGroup.js"}
@@ -30,12 +30,12 @@ StyledOptionGroup.displayName = "StyledOptionGroup";
30
30
  var StyledOptionGroupHeader = _styledComponents.default.h3.withConfig({
31
31
  displayName: "Styles__StyledOptionGroupHeader",
32
32
  componentId: "sc-16v5afu-1"
33
- })(["height:28px;display:flex;justify-content:space-between;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
33
+ })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
34
34
 
35
35
  exports.StyledOptionGroupHeader = StyledOptionGroupHeader;
36
36
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
37
37
 
38
- var StyledOptionGroupOption = _styledComponents.default.label.withConfig({
38
+ var StyledOptionGroupOption = _styledComponents.default.div.withConfig({
39
39
  displayName: "Styles__StyledOptionGroupOption",
40
40
  componentId: "sc-16v5afu-2"
41
41
  })(["", ""], function (props) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":["StyledOptionGroup","styled","div","FontStyle","BoxSizingStyle","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","label","props","hover","css"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;;;;;AAEO,IAAMA,iBAAiB,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,uBACxB;AAAA;AAAA,CADwB,EAE1BC,oBAF0B,EAG1BC,8BAH0B,CAAvB;;;AAMPJ,iBAAiB,CAACK,WAAlB,GAAgC,mBAAhC;;AAEO,IAAMC,uBAAuB,GAAGL,0BAAOM,EAAV;AAAA;AAAA;AAAA,yIAA7B;;;AAYPD,uBAAuB,CAACD,WAAxB,GAAsC,yBAAtC;;AAEO,IAAMG,uBAAuB,GAAGP,0BAAOQ,KAAV;AAAA;AAAA;AAAA,aAChC,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,+CADA;AAAA,CADgC,CAA7B;;;AAQPJ,uBAAuB,CAACH,WAAxB,GAAsC,yBAAtC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\n\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.h3`\n height: 28px;\n display: flex;\n justify-content: space-between;\n padding: 0 16px;\n color: var(--color-theme-900);\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupOption = styled.label<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":["StyledOptionGroup","styled","div","FontStyle","BoxSizingStyle","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","props","hover","css"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;;;;;AAEO,IAAMA,iBAAiB,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,uBACxB;AAAA;AAAA,CADwB,EAE1BC,oBAF0B,EAG1BC,8BAH0B,CAAvB;;;AAMPJ,iBAAiB,CAACK,WAAlB,GAAgC,mBAAhC;;AAEO,IAAMC,uBAAuB,GAAGL,0BAAOM,EAAV;AAAA;AAAA;AAAA,4JAA7B;;;AAaPD,uBAAuB,CAACD,WAAxB,GAAsC,yBAAtC;;AAEO,IAAMG,uBAAuB,GAAGP,0BAAOC,GAAV;AAAA;AAAA;AAAA,aAChC,UAACO,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,+CADA;AAAA,CADgC,CAA7B;;;AAQPH,uBAAuB,CAACH,WAAxB,GAAsC,yBAAtC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\n\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.h3`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n color: var(--color-theme-900);\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"file":"Styles.js"}
@@ -23,7 +23,7 @@ var _Styles = require("./Styles");
23
23
 
24
24
  var _OptionContent = require("./OptionContent/OptionContent");
25
25
 
26
- var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose"];
26
+ var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption"];
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
@@ -86,6 +86,7 @@ var Select = function Select(_ref) {
86
86
  keepSameOptionsOrder = _ref$keepSameOptionsO === void 0 ? false : _ref$keepSameOptionsO,
87
87
  onSelectOpen = _ref.onSelectOpen,
88
88
  onSelectClose = _ref.onSelectClose,
89
+ renderOption = _ref.renderOption,
89
90
  prop = _objectWithoutProperties(_ref, _excluded);
90
91
 
91
92
  var _useState = (0, _react.useState)(),
@@ -138,41 +139,12 @@ var Select = function Select(_ref) {
138
139
  open && (childNode === null || childNode === void 0 ? void 0 : childNode.focus());
139
140
  }, [childNode, open]);
140
141
  var handleChange = (0, _react.useCallback)(function (selectedValue) {
141
- if (selectedValue !== null) {
142
- if (type === "single") {
143
- if (forceCloseMenu) {
144
- setOpen(false);
145
- }
146
-
147
- return onChange(selectedValue);
148
- } // multiple
149
-
150
-
151
- var value = function value() {
152
- if (selectedValue instanceof Array) {
153
- if (selectedValue.every(function (v) {
154
- return selectedOptions.includes(v);
155
- })) {
156
- return selectedOptions.filter(function (v) {
157
- return !selectedValue.includes(v);
158
- });
159
- }
160
-
161
- return selectedValue.concat(selectedOptions);
162
- }
163
-
164
- if (selectedOptions.includes(selectedValue)) {
165
- return selectedOptions.filter(function (option) {
166
- return option !== selectedValue;
167
- });
168
- }
169
-
170
- return [].concat(_toConsumableArray(selectedOptions), [selectedValue]);
171
- };
172
-
173
- return onChange(value());
142
+ if (forceCloseMenu) {
143
+ setOpen(false);
174
144
  }
175
- }, [onChange, type, forceCloseMenu, selectedOptions]);
145
+
146
+ onChange(selectedValue);
147
+ }, [onChange, forceCloseMenu]);
176
148
  var onClose = (0, _react.useCallback)(function () {
177
149
  setOpen(false);
178
150
 
@@ -231,6 +203,10 @@ var Select = function Select(_ref) {
231
203
  }
232
204
  }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);
233
205
  var handleRenderOption = (0, _react.useCallback)(function (option, props) {
206
+ if (typeof renderOption === "function") {
207
+ return renderOption(option, props);
208
+ }
209
+
234
210
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_OptionContent.OptionContent, {
235
211
  imageUrl: option.image,
236
212
  color: option.color,
@@ -242,7 +218,7 @@ var Select = function Select(_ref) {
242
218
  }, props)) : /*#__PURE__*/_react.default.createElement(_Styles.StyledRadioButton, _extends({
243
219
  checked: selectedOptions.length < 1 || !selectedOptions[0]
244
220
  }, props)) : type === "multiple" ? /*#__PURE__*/_react.default.createElement(_Styles.StyledCheckbox, props) : /*#__PURE__*/_react.default.createElement(_Styles.StyledRadioButton, props));
245
- }, [isAllOptionsChecked, selectedOptions, type]);
221
+ }, [isAllOptionsChecked, renderOption, selectedOptions, type]);
246
222
  return /*#__PURE__*/_react.default.createElement(Tag, props, /*#__PURE__*/_react.default.createElement("div", null, !disableSearch ? /*#__PURE__*/_react.default.createElement(_Styles.StyledSelectForm, {
247
223
  ref: formRef
248
224
  }, /*#__PURE__*/_react.default.createElement(_Styles.StyledSelectInput, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","prop","childNode","setChildNode","elementRef","handleRef","Tag","Menu","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","value","v","filter","concat","onClose","onOpen","props","menuClassName","className","handleEmptyAction","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\ninterface ISelectProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set selected items */\n selected?: (string | number)[] | string | number;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Should the order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps & IAutocompleteProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = (): null => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== null) {\n if (type === \"single\") {\n if (forceCloseMenu) {\n setOpen(false);\n }\n return onChange(selectedValue);\n }\n // multiple\n const value = (): (string | number)[] => {\n if (selectedValue instanceof Array) {\n if (selectedValue.every((v) => selectedOptions.includes(v))) {\n return selectedOptions.filter((v) => !selectedValue.includes(v));\n }\n return selectedValue.concat(selectedOptions);\n }\n if (selectedOptions.includes(selectedValue)) {\n return selectedOptions.filter((option) => option !== selectedValue);\n }\n return [...selectedOptions, selectedValue];\n };\n return onChange(value());\n }\n },\n [onChange, type, forceCloseMenu, selectedOptions]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
1
+ {"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","prop","childNode","setChildNode","elementRef","handleRef","Tag","Menu","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"preselectDefaultValue\" | \"handleDefaultOptionChange\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
@@ -13,7 +13,7 @@ var _Typography = require("../Typography/Typography");
13
13
 
14
14
  var _Styles = require("./Styles");
15
15
 
16
- var _excluded = ["children", "type", "size", "invalid"];
16
+ var _excluded = ["children", "type", "size", "invalid", "endAdornment"];
17
17
 
18
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
19
 
@@ -33,6 +33,7 @@ var SelectTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
33
33
  size = _ref$size === void 0 ? "regular" : _ref$size,
34
34
  _ref$invalid = _ref.invalid,
35
35
  invalid = _ref$invalid === void 0 ? false : _ref$invalid,
36
+ endAdornment = _ref.endAdornment,
36
37
  rest = _objectWithoutProperties(_ref, _excluded);
37
38
 
38
39
  return /*#__PURE__*/_react.default.createElement(_Styles.StyledSelectTrigger, _extends({
@@ -46,7 +47,7 @@ var SelectTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
46
47
  overflow: "truncate",
47
48
  whitespace: "no-wrap",
48
49
  variant: size === "small" || size === "regular" ? "Body 2" : "Body 1"
49
- }, children), /*#__PURE__*/_react.default.createElement(_Styles.StyledCaretIcon, null));
50
+ }, children), endAdornment ? endAdornment : /*#__PURE__*/_react.default.createElement(_Styles.StyledCaretIcon, null));
50
51
  });
51
52
  exports.SelectTrigger = SelectTrigger;
52
53
  SelectTrigger.displayName = "SelectTrigger";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":["SelectTrigger","ref","children","type","size","invalid","rest","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;AASO,IAAMA,aAAa,gBAAG,uBAC3B,gBAEEC,GAFF,EAGK;AAAA,MAFDC,QAEC,QAFDA,QAEC;AAAA,uBAFSC,IAET;AAAA,MAFSA,IAET,0BAFgB,QAEhB;AAAA,uBAF0BC,IAE1B;AAAA,MAF0BA,IAE1B,0BAFiC,SAEjC;AAAA,0BAF4CC,OAE5C;AAAA,MAF4CA,OAE5C,6BAFsD,KAEtD;AAAA,MAFgEC,IAEhE;;AACH,sBACE,6BAAC,2BAAD;AACE,IAAA,GAAG,EAAEL,GADP;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,IAAI,EAAEE,IAHR;AAIE,IAAA,KAAK,EAAEC,IAJT;AAKE,IAAA,QAAQ,EAAEC;AALZ,KAMMC,IANN,gBAQE,6BAAC,sBAAD;AACE,IAAA,EAAE,EAAC,KADL;AAEE,IAAA,QAAQ,EAAC,UAFX;AAGE,IAAA,UAAU,EAAC,SAHb;AAIE,IAAA,OAAO,EAAEF,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,SAA7B,GAAyC,QAAzC,GAAoD;AAJ/D,KAMGF,QANH,CARF,eAiBE,6BAAC,uBAAD,OAjBF,CADF;AAqBD,CA1B0B,CAAtB;;AA6BPF,aAAa,CAACO,WAAd,GAA4B,eAA5B","sourcesContent":["import React, { forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { Typography } from \"../Typography/Typography\";\nimport { StyledCaretIcon, StyledSelectTrigger } from \"./Styles\";\n\nexport type Size = \"regular\" | \"big\" | \"small\";\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<\"button\"> {\n size?: Size;\n invalid?: boolean;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n { children, type = \"button\", size = \"regular\", invalid = false, ...rest },\n ref\n ) => {\n return (\n <StyledSelectTrigger\n ref={ref}\n role=\"button\"\n type={type}\n $size={size}\n $invalid={invalid}\n {...rest}\n >\n <Typography\n as=\"div\"\n overflow=\"truncate\"\n whitespace=\"no-wrap\"\n variant={size === \"small\" || size === \"regular\" ? \"Body 2\" : \"Body 1\"}\n >\n {children}\n </Typography>\n\n <StyledCaretIcon />\n </StyledSelectTrigger>\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"file":"SelectTrigger.js"}
1
+ {"version":3,"sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":["SelectTrigger","ref","children","type","size","invalid","endAdornment","rest","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;AAUO,IAAMA,aAAa,gBAAG,uBAC3B,gBASEC,GATF,EAUK;AAAA,MARDC,QAQC,QARDA,QAQC;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,QAON;AAAA,uBANDC,IAMC;AAAA,MANDA,IAMC,0BANM,SAMN;AAAA,0BALDC,OAKC;AAAA,MALDA,OAKC,6BALS,KAKT;AAAA,MAJDC,YAIC,QAJDA,YAIC;AAAA,MAHEC,IAGF;;AACH,sBACE,6BAAC,2BAAD;AACE,IAAA,GAAG,EAAEN,GADP;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,IAAI,EAAEE,IAHR;AAIE,IAAA,KAAK,EAAEC,IAJT;AAKE,IAAA,QAAQ,EAAEC;AALZ,KAMME,IANN,gBAQE,6BAAC,sBAAD;AACE,IAAA,EAAE,EAAC,KADL;AAEE,IAAA,QAAQ,EAAC,UAFX;AAGE,IAAA,UAAU,EAAC,SAHb;AAIE,IAAA,OAAO,EAAEH,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,SAA7B,GAAyC,QAAzC,GAAoD;AAJ/D,KAMGF,QANH,CARF,EAiBGI,YAAY,GAAGA,YAAH,gBAAkB,6BAAC,uBAAD,OAjBjC,CADF;AAqBD,CAjC0B,CAAtB;;AAoCPN,aAAa,CAACQ,WAAd,GAA4B,eAA5B","sourcesContent":["import React, { forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { Typography } from \"../Typography/Typography\";\nimport { StyledCaretIcon, StyledSelectTrigger } from \"./Styles\";\n\nexport type Size = \"regular\" | \"big\" | \"small\";\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<\"button\"> {\n size?: Size;\n invalid?: boolean;\n endAdornment?: JSX.Element;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n children,\n type = \"button\",\n size = \"regular\",\n invalid = false,\n endAdornment,\n ...rest\n },\n ref\n ) => {\n return (\n <StyledSelectTrigger\n ref={ref}\n role=\"button\"\n type={type}\n $size={size}\n $invalid={invalid}\n {...rest}\n >\n <Typography\n as=\"div\"\n overflow=\"truncate\"\n whitespace=\"no-wrap\"\n variant={size === \"small\" || size === \"regular\" ? \"Body 2\" : \"Body 1\"}\n >\n {children}\n </Typography>\n\n {endAdornment ? endAdornment : <StyledCaretIcon />}\n </StyledSelectTrigger>\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"file":"SelectTrigger.js"}
@@ -20,8 +20,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
20
20
  var StyledTooltip = _styledComponents.default.div.withConfig({
21
21
  displayName: "Styles__StyledTooltip",
22
22
  componentId: "sc-rur9b5-0"
23
- })(["", " ", " border-radius:8px;max-width:200px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", ""], _BoxSizingStyle.BoxSizingStyle, _FontStyle.FontStyle, function (props) {
23
+ })(["", " ", " border-radius:8px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", " ", ""], _BoxSizingStyle.BoxSizingStyle, _FontStyle.FontStyle, function (props) {
24
24
  return props.$isLight && (0, _styledComponents.css)(["background-color:var(--page-paper-main);box-shadow:var(--shadow-secondary);color:var(--color-theme-700);"]);
25
+ }, function (props) {
26
+ return props.$width && (0, _styledComponents.css)(["width:", "px;"], props.$width);
25
27
  });
26
28
 
27
29
  exports.StyledTooltip = StyledTooltip;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["StyledTooltip","styled","div","BoxSizingStyle","FontStyle","props","$isLight","css"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEO,IAAMA,aAAa,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,qMACtBC,8BADsB,EAEtBC,oBAFsB,EAetB,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,QAAN,QACAC,qBADA,+GADA;AAAA,CAfsB,CAAnB","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledTooltip = styled.div<{ $isLight: boolean }>`\n ${BoxSizingStyle}\n ${FontStyle}\n\n border-radius: 8px;\n max-width: 200px;\n padding: 4px 10px;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.9);\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n color: #fff;\n margin: 4px;\n\n ${(props) =>\n props.$isLight &&\n css`\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-secondary);\n color: var(--color-theme-700);\n `}\n`;\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["StyledTooltip","styled","div","BoxSizingStyle","FontStyle","props","$isLight","css","$width"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEO,IAAMA,aAAa,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,0LACtBC,8BADsB,EAEtBC,oBAFsB,EActB,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,QAAN,QACAC,qBADA,+GADA;AAAA,CAdsB,EAsBtB,UAACF,KAAD;AAAA,SACAA,KAAK,CAACG,MAAN,QACAD,qBADA,qBAEWF,KAAK,CAACG,MAFjB,CADA;AAAA,CAtBsB,CAAnB","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledTooltip = styled.div<{ $isLight: boolean; $width: number }>`\n ${BoxSizingStyle}\n ${FontStyle}\n\n border-radius: 8px;\n padding: 4px 10px;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.9);\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n color: #fff;\n margin: 4px;\n\n ${(props) =>\n props.$isLight &&\n css`\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-secondary);\n color: var(--color-theme-700);\n `}\n\n ${(props) =>\n props.$width &&\n css`\n width: ${props.$width}px;\n `}\n`;\n"],"file":"Styles.js"}
@@ -77,7 +77,9 @@ var Tooltip = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
77
77
  TransitionComponent = _ref2$TransitionCompo === void 0 ? TooltipAnimation : _ref2$TransitionCompo,
78
78
  popperTooltipStyle = _ref2.popperTooltipStyle,
79
79
  popperTooltipClassName = _ref2.popperTooltipClassName,
80
- disable = _ref2.disable;
80
+ disable = _ref2.disable,
81
+ _ref2$width = _ref2.width,
82
+ width = _ref2$width === void 0 ? 200 : _ref2$width;
81
83
 
82
84
  var _useLayerContext = (0, _helpers.useLayerContext)(),
83
85
  _useLayerContext$zInd = _useLayerContext.zIndex,
@@ -138,7 +140,8 @@ var Tooltip = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
138
140
  style: style
139
141
  }), /*#__PURE__*/_react.default.createElement(_Styles.StyledTooltip, {
140
142
  className: (0, _classnames.default)("c-tooltip-ds", className),
141
- $isLight: isLight
143
+ $isLight: isLight,
144
+ $width: width
142
145
  }, title));
143
146
  })));
144
147
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","zIndex","layers","skyscraper","open","setOpen","childNode","setChildNode","handleEnter","event","childrenProps","type","onMouseOver","removeAttribute","handleLeave","onMouseLeave","currentTarget","handleOwnRef","handleRef","React","cloneElement","transitionProps","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useState,\n CSSProperties,\n MouseEvent,\n forwardRef,\n Ref,\n FC,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper, Placement } from \"../Popper\";\nimport { FromElement } from \"../Transitions/FromElement\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { TransitionProps } from \"../Transitions\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { StyledTooltip } from \"./Styles\";\nimport { layers } from \"../../utils\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ITooltipProps {\n /** Children element. */\n children: ElementWithRef<HTMLElement>;\n /** Title element. */\n title: ReactElement | string;\n /** Applies passed styles */\n style?: CSSProperties;\n /** Applies passed classes */\n className?: string;\n /** Open */\n open?: boolean;\n /** Placement */\n placement?: Placement;\n /** Transition component */\n TransitionComponent?: React.FC<TransitionProps>;\n /** Light tooltip */\n isLight?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Remove tooltip */\n disable?: boolean;\n}\n\ninterface ITooltipAnimation extends TransitionProps {\n children: ReactElement;\n}\n\nconst TooltipAnimation: FC<ITooltipAnimation> = ({ children, ...props }) => {\n return (\n <FromElement timeout={0} {...props}>\n {children}\n </FromElement>\n );\n};\n\nexport const Tooltip = forwardRef<HTMLElement, ITooltipProps>(\n (\n {\n children,\n title,\n className,\n style,\n isLight = false,\n placement = \"top\",\n TransitionComponent = TooltipAnimation,\n popperTooltipStyle,\n popperTooltipClassName,\n disable,\n },\n ref\n ) => {\n const { zIndex = layers.skyscraper } = useLayerContext();\n const [open, setOpen] = useState(false);\n const [childNode, setChildNode] = useState<HTMLElement | null>();\n\n const handleEnter = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (event.type === \"mouseover\" && childrenProps.onMouseOver) {\n childrenProps.onMouseOver(event);\n }\n\n childNode && childNode.removeAttribute(\"title\");\n\n setOpen(true);\n };\n\n const handleLeave = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (\n event.type === \"mouseleave\" &&\n childrenProps.onMouseLeave &&\n event.currentTarget === childNode\n ) {\n childrenProps.onMouseLeave(event);\n }\n\n setOpen(false);\n };\n\n const handleOwnRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(setChildNode, handleOwnRef);\n\n const childrenProps = {\n onMouseOver: handleEnter,\n onMouseLeave: handleLeave,\n ref: handleRef,\n };\n\n return (\n <>\n {React.cloneElement(children, childrenProps)}\n {!disable && (\n <Portal>\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={placement}\n transition\n className={popperTooltipClassName}\n style={{ zIndex, ...popperTooltipStyle }}\n role=\"tooltip\"\n >\n {({ transitionProps = {} }): ReactElement => (\n <TransitionComponent {...transitionProps} style={style}>\n <StyledTooltip\n className={classnames(\"c-tooltip-ds\", className)}\n $isLight={isLight}\n >\n {title}\n </StyledTooltip>\n </TransitionComponent>\n )}\n </Popper>\n </Portal>\n )}\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","width","zIndex","layers","skyscraper","open","setOpen","childNode","setChildNode","handleEnter","event","childrenProps","type","onMouseOver","removeAttribute","handleLeave","onMouseLeave","currentTarget","handleOwnRef","handleRef","React","cloneElement","transitionProps","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useState,\n CSSProperties,\n MouseEvent,\n forwardRef,\n Ref,\n FC,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper, Placement } from \"../Popper\";\nimport { FromElement } from \"../Transitions/FromElement\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { TransitionProps } from \"../Transitions\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { StyledTooltip } from \"./Styles\";\nimport { layers } from \"../../utils\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ITooltipProps {\n /** Children element. */\n children: ElementWithRef<HTMLElement>;\n /** Title element. */\n title: ReactElement | string;\n /** Applies passed styles */\n style?: CSSProperties;\n /** Applies passed classes */\n className?: string;\n /** Open */\n open?: boolean;\n /** Placement */\n placement?: Placement;\n /** Transition component */\n TransitionComponent?: React.FC<TransitionProps>;\n /** Light tooltip */\n isLight?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Remove tooltip */\n disable?: boolean;\n /** Tooltip width */\n width?: number;\n}\n\ninterface ITooltipAnimation extends TransitionProps {\n children: ReactElement;\n}\n\nconst TooltipAnimation: FC<ITooltipAnimation> = ({ children, ...props }) => {\n return (\n <FromElement timeout={0} {...props}>\n {children}\n </FromElement>\n );\n};\n\nexport const Tooltip = forwardRef<HTMLElement, ITooltipProps>(\n (\n {\n children,\n title,\n className,\n style,\n isLight = false,\n placement = \"top\",\n TransitionComponent = TooltipAnimation,\n popperTooltipStyle,\n popperTooltipClassName,\n disable,\n width = 200,\n },\n ref\n ) => {\n const { zIndex = layers.skyscraper } = useLayerContext();\n const [open, setOpen] = useState(false);\n const [childNode, setChildNode] = useState<HTMLElement | null>();\n\n const handleEnter = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (event.type === \"mouseover\" && childrenProps.onMouseOver) {\n childrenProps.onMouseOver(event);\n }\n\n childNode && childNode.removeAttribute(\"title\");\n\n setOpen(true);\n };\n\n const handleLeave = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (\n event.type === \"mouseleave\" &&\n childrenProps.onMouseLeave &&\n event.currentTarget === childNode\n ) {\n childrenProps.onMouseLeave(event);\n }\n\n setOpen(false);\n };\n\n const handleOwnRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(setChildNode, handleOwnRef);\n\n const childrenProps = {\n onMouseOver: handleEnter,\n onMouseLeave: handleLeave,\n ref: handleRef,\n };\n\n return (\n <>\n {React.cloneElement(children, childrenProps)}\n {!disable && (\n <Portal>\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={placement}\n transition\n className={popperTooltipClassName}\n style={{ zIndex, ...popperTooltipStyle }}\n role=\"tooltip\"\n >\n {({ transitionProps = {} }): ReactElement => (\n <TransitionComponent {...transitionProps} style={style}>\n <StyledTooltip\n className={classnames(\"c-tooltip-ds\", className)}\n $isLight={isLight}\n $width={width}\n >\n {title}\n </StyledTooltip>\n </TransitionComponent>\n )}\n </Popper>\n </Portal>\n )}\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n"],"file":"Tooltip.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAMF,SAAS,EACT,YAAY,EACb,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAEnD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,GAAG,YAAY,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IAEV,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CA4Z/C,CAAC"}
1
+ {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAMF,SAAS,EACT,YAAY,EACb,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAEnD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,GAAG,YAAY,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IAEV,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAmc/C,CAAC"}
@@ -36,7 +36,11 @@ export var Autocomplete = function Autocomplete(_ref) {
36
36
  var itemRef = useRef(null);
37
37
  var listRef = useRef(null);
38
38
  var selectedOptions = useMemo(function () {
39
- return selected instanceof Array ? selected : [selected];
39
+ if (Array.isArray(selected)) {
40
+ return selected;
41
+ }
42
+
43
+ return [selected];
40
44
  }, [selected]);
41
45
  var handleSort = useCallback(function (opts) {
42
46
  if (keepSameOptionsOrder) {
@@ -191,6 +195,44 @@ export var Autocomplete = function Autocomplete(_ref) {
191
195
  setFilter(e.target.value);
192
196
  }
193
197
  }, []);
198
+ var handleHoverCallback = useCallback(function (e) {
199
+ setHover({
200
+ item: e,
201
+ by: "mouse"
202
+ });
203
+ }, []);
204
+ var toggleSelected = useCallback(function (id) {
205
+ var result;
206
+
207
+ if (id !== null) {
208
+ if (type === "multiple") {
209
+ if (selectedOptions.includes(id)) {
210
+ result = selectedOptions.filter(function (_id) {
211
+ return _id !== id;
212
+ });
213
+ } else {
214
+ result = [].concat(selectedOptions, [id]);
215
+ }
216
+ } else {
217
+ if (selectedOptions.includes(id)) {
218
+ result = null;
219
+ } else {
220
+ result = id;
221
+ }
222
+ }
223
+
224
+ setFilter("");
225
+ } else {
226
+ if (typeof handleDefaultOptionChange === "function") {
227
+ handleDefaultOptionChange();
228
+ return;
229
+ }
230
+ }
231
+
232
+ if (typeof handleChange === "function") {
233
+ handleChange(result);
234
+ }
235
+ }, [handleChange, handleDefaultOptionChange, selectedOptions, type]);
194
236
  var handleMouseEnter = useCallback(function (e) {
195
237
  if (e === undefined || e === null) {
196
238
  return setHover({
@@ -204,13 +246,11 @@ export var Autocomplete = function Autocomplete(_ref) {
204
246
  by: "mouse"
205
247
  });
206
248
  }, []);
207
- var handleHoverCallback = useCallback(function (e) {
208
- setHover({
209
- item: e,
210
- by: "mouse"
211
- });
212
- }, []);
213
- var handleRenderOption = useCallback(function (item) {
249
+ var handleClick = useCallback(function (e) {
250
+ e.preventDefault();
251
+ toggleSelected(hover.item);
252
+ }, [toggleSelected, hover]);
253
+ var handleRenderOption = useCallback(function (item, index) {
214
254
  if (isGroup(item)) {
215
255
  return /*#__PURE__*/React.createElement(OptionGroup, {
216
256
  checked: selectedOptions,
@@ -230,8 +270,9 @@ export var Autocomplete = function Autocomplete(_ref) {
230
270
  return /*#__PURE__*/React.createElement(Option, {
231
271
  name: item.name,
232
272
  ref: itemRef,
233
- key: item.id,
273
+ key: index,
234
274
  onMouseEnter: handleMouseEnter,
275
+ onClick: handleClick,
235
276
  id: item.id,
236
277
  hover: item.id === hover.item,
237
278
  className: optionClassName,
@@ -246,7 +287,7 @@ export var Autocomplete = function Autocomplete(_ref) {
246
287
  }
247
288
  })
248
289
  });
249
- }, [handleMouseEnter, hover.item, optionClassName, renderOption, filter, selectedOptions, handleHoverCallback, type, handleChange]);
290
+ }, [handleClick, handleMouseEnter, hover.item, optionClassName, renderOption, filter, selectedOptions, handleHoverCallback, type, handleChange]);
250
291
  var handleOnMouseLeave = useCallback(function () {
251
292
  setHover({
252
293
  item: undefined,
@@ -290,8 +331,8 @@ export var Autocomplete = function Autocomplete(_ref) {
290
331
  return;
291
332
  }
292
333
 
293
- if (handleChange) {
294
- handleChange(hover.item);
334
+ if (hover.item) {
335
+ toggleSelected(hover.item);
295
336
  setFilter("");
296
337
  }
297
338
 
@@ -302,18 +343,7 @@ export var Autocomplete = function Autocomplete(_ref) {
302
343
  item: handleKeyboardMovement(e, hover.item, flatOptions, showAddNew, showDefaultOption),
303
344
  by: "keyboard"
304
345
  });
305
- }, [filter, flatOptions, handleChange, handleDefaultOptionChange, handleEmpty, hover, showAddNew, showDefaultOption]);
306
- var handleClick = useCallback(function () {
307
- if (hover.item === null && handleDefaultOptionChange) {
308
- handleDefaultOptionChange();
309
- }
310
-
311
- if (handleChange) {
312
- handleChange(hover == null ? void 0 : hover.item);
313
- }
314
-
315
- setFilter("");
316
- }, [handleChange, handleDefaultOptionChange, hover]);
346
+ }, [filter, flatOptions, toggleSelected, handleDefaultOptionChange, handleEmpty, hover, showAddNew, showDefaultOption]);
317
347
  useEffect(function () {
318
348
  if (inputEl) {
319
349
  inputEl.onkeydown = handleOnKeyDown;
@@ -340,7 +370,6 @@ export var Autocomplete = function Autocomplete(_ref) {
340
370
  var onScroll = _ref2.onScroll;
341
371
  return /*#__PURE__*/React.createElement(StyledAutocompleteBody, {
342
372
  key: "body",
343
- onChange: handleClick,
344
373
  onMouseLeave: handleOnMouseLeave
345
374
  }, /*#__PURE__*/React.createElement(Scrollbars, {
346
375
  ref: listRef,
@@ -353,6 +382,10 @@ export var Autocomplete = function Autocomplete(_ref) {
353
382
  ref: itemRef,
354
383
  hover: hover.item === null,
355
384
  onMouseEnter: handleMouseEnter,
385
+ onClick: function onClick(e) {
386
+ e.preventDefault();
387
+ toggleSelected(null);
388
+ },
356
389
  renderOption: renderOption({
357
390
  name: defaultValue,
358
391
  id: null
@@ -363,8 +396,8 @@ export var Autocomplete = function Autocomplete(_ref) {
363
396
  return null;
364
397
  }
365
398
  })
366
- }), list.map(function (item) {
367
- return handleRenderOption(item);
399
+ }), list.map(function (item, index) {
400
+ return handleRenderOption(item, index);
368
401
  }), showNoResult && renderNoResult, showAddNew && renderAddNew));
369
402
  });
370
403
  };