@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.
- package/dist/cjs/components/Autocomplete/Autocomplete.js +60 -27
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/Autocomplete/Styles.js +9 -11
- package/dist/cjs/components/Autocomplete/Styles.js.map +1 -1
- package/dist/cjs/components/Icons/collection/ArrowDownLong.js +31 -0
- package/dist/cjs/components/Icons/collection/ArrowDownLong.js.map +1 -0
- package/dist/cjs/components/Icons/collection/ArrowUpLong.js +31 -0
- package/dist/cjs/components/Icons/collection/ArrowUpLong.js.map +1 -0
- package/dist/cjs/components/Icons/collection/index.js +16 -0
- package/dist/cjs/components/Icons/collection/index.js.map +1 -1
- package/dist/cjs/components/Select/Option/Option.js +7 -2
- package/dist/cjs/components/Select/Option/Option.js.map +1 -1
- package/dist/cjs/components/Select/Option/Styles.js +1 -1
- package/dist/cjs/components/Select/Option/Styles.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +34 -9
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/Styles.js +2 -2
- package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +12 -36
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectTrigger/SelectTrigger.js +3 -2
- package/dist/cjs/components/SelectTrigger/SelectTrigger.js.map +1 -1
- package/dist/cjs/components/Tooltip/Styles.js +3 -1
- package/dist/cjs/components/Tooltip/Styles.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +5 -2
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +60 -27
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/Autocomplete/Styles.d.ts +6 -4
- package/dist/esm/components/Autocomplete/Styles.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Styles.js +7 -6
- package/dist/esm/components/Autocomplete/Styles.js.map +1 -1
- package/dist/esm/components/Icons/collection/ArrowDownLong.d.ts +4 -0
- package/dist/esm/components/Icons/collection/ArrowDownLong.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/ArrowDownLong.js +18 -0
- package/dist/esm/components/Icons/collection/ArrowDownLong.js.map +1 -0
- package/dist/esm/components/Icons/collection/ArrowUpLong.d.ts +4 -0
- package/dist/esm/components/Icons/collection/ArrowUpLong.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/ArrowUpLong.js +18 -0
- package/dist/esm/components/Icons/collection/ArrowUpLong.js.map +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts +2 -0
- package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/index.js +2 -0
- package/dist/esm/components/Icons/collection/index.js.map +1 -1
- package/dist/esm/components/Select/Option/Option.d.ts +3 -2
- package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
- package/dist/esm/components/Select/Option/Option.js +7 -2
- package/dist/esm/components/Select/Option/Option.js.map +1 -1
- package/dist/esm/components/Select/Option/Styles.d.ts +1 -1
- package/dist/esm/components/Select/Option/Styles.js +1 -1
- package/dist/esm/components/Select/Option/Styles.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts +2 -4
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js +21 -9
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.js +2 -2
- package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +2 -5
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +12 -36
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts +1 -0
- package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts.map +1 -1
- package/dist/esm/components/SelectTrigger/SelectTrigger.js +3 -2
- package/dist/esm/components/SelectTrigger/SelectTrigger.js.map +1 -1
- package/dist/esm/components/Tooltip/Styles.d.ts +1 -0
- package/dist/esm/components/Tooltip/Styles.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Styles.js +3 -1
- package/dist/esm/components/Tooltip/Styles.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts +1 -0
- package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +5 -2
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/index.js +152 -87
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- 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
|
-
|
|
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(
|
|
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,
|
|
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
|
|
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":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA
|
|
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.
|
|
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","
|
|
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 (
|
|
142
|
-
|
|
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
|
-
|
|
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;;;;;;;;;;;;;;
|
|
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;
|
|
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,
|
|
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":";;;;;;;;;AAAA;;AASA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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,
|
|
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
|
-
|
|
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
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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:
|
|
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 (
|
|
294
|
-
|
|
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,
|
|
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
|
};
|