@redsift/design-system-legacy 6.0.0 → 6.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +382 -0
- package/index.js +5708 -0
- package/index.js.map +1 -0
- package/package.json +7 -23
- package/esm/_internal/Alert.js +0 -10
- package/esm/_internal/Alert.js.map +0 -1
- package/esm/_internal/Alert2.js +0 -59
- package/esm/_internal/Alert2.js.map +0 -1
- package/esm/_internal/Button.js +0 -5
- package/esm/_internal/Button.js.map +0 -1
- package/esm/_internal/Button2.js +0 -56
- package/esm/_internal/Button2.js.map +0 -1
- package/esm/_internal/Card.js +0 -6
- package/esm/_internal/Card.js.map +0 -1
- package/esm/_internal/Card2.js +0 -33
- package/esm/_internal/Card2.js.map +0 -1
- package/esm/_internal/CardHeader.js +0 -7
- package/esm/_internal/CardHeader.js.map +0 -1
- package/esm/_internal/CardHeader2.js +0 -35
- package/esm/_internal/CardHeader2.js.map +0 -1
- package/esm/_internal/Checkbox.js +0 -7
- package/esm/_internal/Checkbox.js.map +0 -1
- package/esm/_internal/Checkbox2.js +0 -53
- package/esm/_internal/Checkbox2.js.map +0 -1
- package/esm/_internal/CheckboxTree.js +0 -8
- package/esm/_internal/CheckboxTree.js.map +0 -1
- package/esm/_internal/CheckboxTree2.js +0 -185
- package/esm/_internal/CheckboxTree2.js.map +0 -1
- package/esm/_internal/IconContainer.js +0 -6
- package/esm/_internal/IconContainer.js.map +0 -1
- package/esm/_internal/IconContainer2.js +0 -37
- package/esm/_internal/IconContainer2.js.map +0 -1
- package/esm/_internal/Input.js +0 -7
- package/esm/_internal/Input.js.map +0 -1
- package/esm/_internal/Input2.js +0 -185
- package/esm/_internal/Input2.js.map +0 -1
- package/esm/_internal/Pagination.js +0 -10
- package/esm/_internal/Pagination.js.map +0 -1
- package/esm/_internal/Pagination2.js +0 -82
- package/esm/_internal/Pagination2.js.map +0 -1
- package/esm/_internal/Radio.js +0 -7
- package/esm/_internal/Radio.js.map +0 -1
- package/esm/_internal/Radio2.js +0 -51
- package/esm/_internal/Radio2.js.map +0 -1
- package/esm/_internal/Select.js +0 -9
- package/esm/_internal/Select.js.map +0 -1
- package/esm/_internal/Select2.js +0 -458
- package/esm/_internal/Select2.js.map +0 -1
- package/esm/_internal/Switch.js +0 -7
- package/esm/_internal/Switch.js.map +0 -1
- package/esm/_internal/Switch2.js +0 -55
- package/esm/_internal/Switch2.js.map +0 -1
- package/esm/_internal/Table.js +0 -27
- package/esm/_internal/Table.js.map +0 -1
- package/esm/_internal/Table2.js +0 -1252
- package/esm/_internal/Table2.js.map +0 -1
- package/esm/_internal/Tabs.js +0 -7
- package/esm/_internal/Tabs.js.map +0 -1
- package/esm/_internal/Tabs2.js +0 -121
- package/esm/_internal/Tabs2.js.map +0 -1
- package/esm/_internal/Typography.js +0 -6
- package/esm/_internal/Typography.js.map +0 -1
- package/esm/_internal/Typography2.js +0 -75
- package/esm/_internal/Typography2.js.map +0 -1
- package/esm/_internal/_rollupPluginBabelHelpers.js +0 -108
- package/esm/_internal/_rollupPluginBabelHelpers.js.map +0 -1
- package/esm/_internal/icons/ActionsIcon.js +0 -20
- package/esm/_internal/icons/ActionsIcon.js.map +0 -1
- package/esm/_internal/icons/AddIcon.js +0 -16
- package/esm/_internal/icons/AddIcon.js.map +0 -1
- package/esm/_internal/icons/Arrow.js +0 -36
- package/esm/_internal/icons/Arrow.js.map +0 -1
- package/esm/_internal/icons/ArrowDown.js +0 -17
- package/esm/_internal/icons/ArrowDown.js.map +0 -1
- package/esm/_internal/icons/ArrowIcon.js +0 -29
- package/esm/_internal/icons/ArrowIcon.js.map +0 -1
- package/esm/_internal/icons/ArrowUp.js +0 -16
- package/esm/_internal/icons/ArrowUp.js.map +0 -1
- package/esm/_internal/icons/BarchartHorizontal.js +0 -26
- package/esm/_internal/icons/BarchartHorizontal.js.map +0 -1
- package/esm/_internal/icons/BellIcon.js +0 -27
- package/esm/_internal/icons/BellIcon.js.map +0 -1
- package/esm/_internal/icons/BimiSetupIcon.js +0 -21
- package/esm/_internal/icons/BimiSetupIcon.js.map +0 -1
- package/esm/_internal/icons/Chevron.js +0 -40
- package/esm/_internal/icons/Chevron.js.map +0 -1
- package/esm/_internal/icons/ChevronLeft.js +0 -16
- package/esm/_internal/icons/ChevronLeft.js.map +0 -1
- package/esm/_internal/icons/ChevronRight.js +0 -16
- package/esm/_internal/icons/ChevronRight.js.map +0 -1
- package/esm/_internal/icons/ClearIcon.js +0 -16
- package/esm/_internal/icons/ClearIcon.js.map +0 -1
- package/esm/_internal/icons/Cloud.js +0 -28
- package/esm/_internal/icons/Cloud.js.map +0 -1
- package/esm/_internal/icons/Cross.js +0 -26
- package/esm/_internal/icons/Cross.js.map +0 -1
- package/esm/_internal/icons/DeleteIcon.js +0 -24
- package/esm/_internal/icons/DeleteIcon.js.map +0 -1
- package/esm/_internal/icons/DynamicDmarcIcon.js +0 -36
- package/esm/_internal/icons/DynamicDmarcIcon.js.map +0 -1
- package/esm/_internal/icons/EditOutline.js +0 -16
- package/esm/_internal/icons/EditOutline.js.map +0 -1
- package/esm/_internal/icons/Email.js +0 -55
- package/esm/_internal/icons/Email.js.map +0 -1
- package/esm/_internal/icons/EmailSourcesIcon.js +0 -29
- package/esm/_internal/icons/EmailSourcesIcon.js.map +0 -1
- package/esm/_internal/icons/ExpandLayoutIcon.js +0 -35
- package/esm/_internal/icons/ExpandLayoutIcon.js.map +0 -1
- package/esm/_internal/icons/ExportIcon.js +0 -12
- package/esm/_internal/icons/ExportIcon.js.map +0 -1
- package/esm/_internal/icons/Eye.js +0 -35
- package/esm/_internal/icons/Eye.js.map +0 -1
- package/esm/_internal/icons/Facebook.js +0 -32
- package/esm/_internal/icons/Facebook.js.map +0 -1
- package/esm/_internal/icons/FilterList.js +0 -16
- package/esm/_internal/icons/FilterList.js.map +0 -1
- package/esm/_internal/icons/FindOutHowIcon.js +0 -41
- package/esm/_internal/icons/FindOutHowIcon.js.map +0 -1
- package/esm/_internal/icons/FlatArrow.js +0 -34
- package/esm/_internal/icons/FlatArrow.js.map +0 -1
- package/esm/_internal/icons/ForwardArrowIcon.js +0 -53
- package/esm/_internal/icons/ForwardArrowIcon.js.map +0 -1
- package/esm/_internal/icons/Github.js +0 -33
- package/esm/_internal/icons/Github.js.map +0 -1
- package/esm/_internal/icons/Globe.js +0 -61
- package/esm/_internal/icons/Globe.js.map +0 -1
- package/esm/_internal/icons/Hand.js +0 -25
- package/esm/_internal/icons/Hand.js.map +0 -1
- package/esm/_internal/icons/InfinityLoop.js +0 -22
- package/esm/_internal/icons/InfinityLoop.js.map +0 -1
- package/esm/_internal/icons/InfinityLoopBreak.js +0 -31
- package/esm/_internal/icons/InfinityLoopBreak.js.map +0 -1
- package/esm/_internal/icons/IngrainIcon.js +0 -39
- package/esm/_internal/icons/IngrainIcon.js.map +0 -1
- package/esm/_internal/icons/LanguageIcon.js +0 -37
- package/esm/_internal/icons/LanguageIcon.js.map +0 -1
- package/esm/_internal/icons/Linkedin.js +0 -29
- package/esm/_internal/icons/Linkedin.js.map +0 -1
- package/esm/_internal/icons/LocationPin.js +0 -31
- package/esm/_internal/icons/LocationPin.js.map +0 -1
- package/esm/_internal/icons/MicrosoftShield.js +0 -40
- package/esm/_internal/icons/MicrosoftShield.js.map +0 -1
- package/esm/_internal/icons/News.js +0 -44
- package/esm/_internal/icons/News.js.map +0 -1
- package/esm/_internal/icons/Nodes.js +0 -27
- package/esm/_internal/icons/Nodes.js.map +0 -1
- package/esm/_internal/icons/OnDmarcIcon.js +0 -34
- package/esm/_internal/icons/OnDmarcIcon.js.map +0 -1
- package/esm/_internal/icons/OnDmarcLogo.js +0 -52
- package/esm/_internal/icons/OnDmarcLogo.js.map +0 -1
- package/esm/_internal/icons/OnDomainIcon.js +0 -32
- package/esm/_internal/icons/OnDomainIcon.js.map +0 -1
- package/esm/_internal/icons/OnInboxIcon.js +0 -48
- package/esm/_internal/icons/OnInboxIcon.js.map +0 -1
- package/esm/_internal/icons/OnInboxLogo.js +0 -68
- package/esm/_internal/icons/OnInboxLogo.js.map +0 -1
- package/esm/_internal/icons/OnInboxManagerIcon.js +0 -49
- package/esm/_internal/icons/OnInboxManagerIcon.js.map +0 -1
- package/esm/_internal/icons/OpenInNewTabIcon.js +0 -23
- package/esm/_internal/icons/OpenInNewTabIcon.js.map +0 -1
- package/esm/_internal/icons/Padlock.js +0 -33
- package/esm/_internal/icons/Padlock.js.map +0 -1
- package/esm/_internal/icons/PlusIcon.js +0 -18
- package/esm/_internal/icons/PlusIcon.js.map +0 -1
- package/esm/_internal/icons/Question.js +0 -24
- package/esm/_internal/icons/Question.js.map +0 -1
- package/esm/_internal/icons/Recruiting.js +0 -23
- package/esm/_internal/icons/Recruiting.js.map +0 -1
- package/esm/_internal/icons/ReportsIcon.js +0 -21
- package/esm/_internal/icons/ReportsIcon.js.map +0 -1
- package/esm/_internal/icons/SearchIcon.js +0 -16
- package/esm/_internal/icons/SearchIcon.js.map +0 -1
- package/esm/_internal/icons/Shield.js +0 -22
- package/esm/_internal/icons/Shield.js.map +0 -1
- package/esm/_internal/icons/ShieldPassIcon.js +0 -19
- package/esm/_internal/icons/ShieldPassIcon.js.map +0 -1
- package/esm/_internal/icons/ShieldSolid.js +0 -31
- package/esm/_internal/icons/ShieldSolid.js.map +0 -1
- package/esm/_internal/icons/ShieldWarningIcon.js +0 -34
- package/esm/_internal/icons/ShieldWarningIcon.js.map +0 -1
- package/esm/_internal/icons/ShieldWarningInvertedIcon.js +0 -29
- package/esm/_internal/icons/ShieldWarningInvertedIcon.js.map +0 -1
- package/esm/_internal/icons/Spinner.js +0 -75
- package/esm/_internal/icons/Spinner.js.map +0 -1
- package/esm/_internal/icons/Team.js +0 -81
- package/esm/_internal/icons/Team.js.map +0 -1
- package/esm/_internal/icons/ThreeDotsIcon.js +0 -19
- package/esm/_internal/icons/ThreeDotsIcon.js.map +0 -1
- package/esm/_internal/icons/Thumb.js +0 -22
- package/esm/_internal/icons/Thumb.js.map +0 -1
- package/esm/_internal/icons/Traffic.js +0 -28
- package/esm/_internal/icons/Traffic.js.map +0 -1
- package/esm/_internal/icons/Twitter.js +0 -37
- package/esm/_internal/icons/Twitter.js.map +0 -1
- package/esm/_internal/icons/Upload.js +0 -25
- package/esm/_internal/icons/Upload.js.map +0 -1
- package/esm/_internal/icons/VerticalDots.js +0 -40
- package/esm/_internal/icons/VerticalDots.js.map +0 -1
- package/esm/_internal/icons/Warning.js +0 -36
- package/esm/_internal/icons/Warning.js.map +0 -1
- package/esm/_internal/icons/WarningTriangle.js +0 -39
- package/esm/_internal/icons/WarningTriangle.js.map +0 -1
- package/esm/_internal/icons/Youtube.js +0 -29
- package/esm/_internal/icons/Youtube.js.map +0 -1
- package/esm/index.js +0 -132
- package/esm/index.js.map +0 -1
package/esm/_internal/Radio2.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { _ as _taggedTemplateLiteral, c as _objectWithoutProperties, a as _extends } from './_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import styled, { keyframes } from 'styled-components';
|
|
4
|
-
import { T as Typography } from './Typography2.js';
|
|
5
|
-
|
|
6
|
-
const _excluded = ["color", "inputProps", "labelProps", "checked", "disabled", "onChange", "label", "checkProps", "borderColor", "name", "defaultChecked"];
|
|
7
|
-
|
|
8
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
9
|
-
const ripple = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.0);\n }\n 50% { \n box-shadow: 0px 0px 0px 15px rgba(0, 0, 0, 0.1);\n }\n 100% {\n box-shadow: 0px 0px 0px 15px rgba(0, 0, 0, 0);\n }\n"])));
|
|
10
|
-
const Wrapper = styled.label(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n align-items: center;\n cursor: ", ";\n"])), props => props.disabled ? "default" : "pointer");
|
|
11
|
-
const Input = styled.input(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: none;\n :checked + span:before {\n border-color: ", ";\n animation: ", " 0.2s linear forwards;\n }\n :checked + span:after {\n transform: scale(1);\n }\n /* Create the background for disabled status */\n :disabled + span:before {\n cursor: initial;\n border-color: #ccc;\n }\n :checked:disabled + span:after {\n cursor: initial;\n background-color: #ccc;\n border-color: #ccc;\n }\n"])), props => props.checkedColor || "#000", ripple);
|
|
12
|
-
const CheckIndicator = styled.span(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: relative;\n display: inline-block;\n height: 20px;\n padding: 0 (20px + 10px);\n margin-bottom: 0;\n cursor: pointer;\n vertical-align: bottom;\n :before,\n :after {\n box-sizing: border-box;\n position: absolute;\n content: \"\";\n border-radius: 50%;\n transition: all 0.3s ease;\n transition-property: transform, border-color;\n }\n /* The box */\n :before {\n width: 22px;\n height: 22px;\n border: 2px solid ", ";\n }\n /* The check indicator */\n :after {\n content: \"\";\n top: 6px;\n left: 6px;\n width: 10px;\n height: 10px;\n transform: scale(0);\n background: ", ";\n }\n"])), props => props.borderColor || "rgba(0, 0, 0, 0.54)", props => props.checkedColor || "#000");
|
|
13
|
-
const Text = styled(Typography)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-left: 30px;\n margin-bottom: 1px;\n"])));
|
|
14
|
-
const Radio = _ref => {
|
|
15
|
-
let {
|
|
16
|
-
color,
|
|
17
|
-
inputProps,
|
|
18
|
-
labelProps,
|
|
19
|
-
checked,
|
|
20
|
-
disabled,
|
|
21
|
-
onChange,
|
|
22
|
-
label,
|
|
23
|
-
checkProps,
|
|
24
|
-
borderColor,
|
|
25
|
-
name,
|
|
26
|
-
defaultChecked
|
|
27
|
-
} = _ref,
|
|
28
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
29
|
-
|
|
30
|
-
return /*#__PURE__*/React.createElement(Wrapper, _extends({}, rest, {
|
|
31
|
-
disabled: disabled
|
|
32
|
-
}), /*#__PURE__*/React.createElement(Input, _extends({
|
|
33
|
-
checkedColor: color,
|
|
34
|
-
checked: checked,
|
|
35
|
-
defaultChecked: defaultChecked,
|
|
36
|
-
disabled: disabled,
|
|
37
|
-
onChange: onChange,
|
|
38
|
-
name: name
|
|
39
|
-
}, inputProps, {
|
|
40
|
-
type: "radio"
|
|
41
|
-
})), /*#__PURE__*/React.createElement(CheckIndicator, _extends({
|
|
42
|
-
borderColor: borderColor,
|
|
43
|
-
checkedColor: color
|
|
44
|
-
}, checkProps)), /*#__PURE__*/React.createElement(Text, _extends({
|
|
45
|
-
component: "span",
|
|
46
|
-
color: disabled ? "#ccc" : "#333"
|
|
47
|
-
}, labelProps), label));
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export { Radio as R };
|
|
51
|
-
//# sourceMappingURL=Radio2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Radio2.js","sources":["../../../src/components/Radio/Radio.jsx"],"sourcesContent":["import React from 'react';\nimport styled, { keyframes } from 'styled-components';\nimport { Typography } from '../Typography';\n\nconst ripple = keyframes`\n 0% {\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.0);\n }\n 50% { \n box-shadow: 0px 0px 0px 15px rgba(0, 0, 0, 0.1);\n }\n 100% {\n box-shadow: 0px 0px 0px 15px rgba(0, 0, 0, 0);\n }\n`;\n\nconst Wrapper = styled.label`\n position: relative;\n display: flex;\n align-items: center;\n cursor: ${props => (props.disabled ? \"default\" : \"pointer\")};\n`;\n\nconst Input = styled.input`\n display: none;\n :checked + span:before {\n border-color: ${props => props.checkedColor || \"#000\"};\n animation: ${ripple} 0.2s linear forwards;\n }\n :checked + span:after {\n transform: scale(1);\n }\n /* Create the background for disabled status */\n :disabled + span:before {\n cursor: initial;\n border-color: #ccc;\n }\n :checked:disabled + span:after {\n cursor: initial;\n background-color: #ccc;\n border-color: #ccc;\n }\n`;\n\nconst CheckIndicator = styled.span`\n position: relative;\n display: inline-block;\n height: 20px;\n padding: 0 (20px + 10px);\n margin-bottom: 0;\n cursor: pointer;\n vertical-align: bottom;\n :before,\n :after {\n box-sizing: border-box;\n position: absolute;\n content: \"\";\n border-radius: 50%;\n transition: all 0.3s ease;\n transition-property: transform, border-color;\n }\n /* The box */\n :before {\n width: 22px;\n height: 22px;\n border: 2px solid ${props => props.borderColor || \"rgba(0, 0, 0, 0.54)\"};\n }\n /* The check indicator */\n :after {\n content: \"\";\n top: 6px;\n left: 6px;\n width: 10px;\n height: 10px;\n transform: scale(0);\n background: ${props => props.checkedColor || \"#000\"};\n }\n`;\n\nconst Text = styled(Typography)`\n margin-left: 30px;\n margin-bottom: 1px;\n`;\n\nexport const Radio = ({\n color,\n inputProps,\n labelProps,\n checked,\n disabled,\n onChange,\n label,\n checkProps,\n borderColor,\n name,\n defaultChecked,\n ...rest\n}) => {\n return (\n <Wrapper {...rest} disabled={disabled}>\n <Input\n checkedColor={color}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n onChange={onChange}\n name={name}\n {...inputProps}\n type=\"radio\"\n />\n <CheckIndicator\n borderColor={borderColor}\n checkedColor={color}\n {...checkProps}\n />\n <Text component=\"span\" color={disabled ? \"#ccc\" : \"#333\"} {...labelProps}>\n {label}\n </Text>\n </Wrapper>\n );\n};\n"],"names":["ripple","keyframes","Wrapper","styled","label","props","disabled","Input","input","checkedColor","CheckIndicator","span","borderColor","Text","Typography","Radio","color","inputProps","labelProps","checked","onChange","checkProps","name","defaultChecked","rest"],"mappings":";;;;;;;;AAIA,MAAMA,MAAM,GAAGC,SAAH,CAAZ,eAAA,KAAA,eAAA,GAAA,sBAAA,CAAA,CAAA,8MAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAYA,MAAMC,OAAO,GAAGC,MAAM,CAACC,KAAV,CAIDC,gBAAAA,KAAAA,gBAAAA,GAAAA,sBAAAA,CAAAA,CAAAA,+EAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,IAAKA,KAAK,CAACC,QAAN,GAAiB,SAAjB,GAA6B,SAJtC,CAAb,CAAA;AAOA,MAAMC,KAAK,GAAGJ,MAAM,CAACK,KAAV,CAGSH,gBAAAA,KAAAA,gBAAAA,GAAAA,sBAAAA,CAAAA,CAAAA,oEAAAA,EAAAA,oBAAAA,EAAAA,kVAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAACI,YAAN,IAAsB,MAHxC,EAIMT,MAJN,CAAX,CAAA;AAqBA,MAAMU,cAAc,GAAGP,MAAM,CAACQ,IAAV,CAqBIN,gBAAAA,KAAAA,gBAAAA,GAAAA,sBAAAA,CAAAA,CAAAA,mdAAAA,EAAAA,qLAAAA,EAAAA,UAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAACO,WAAN,IAAqB,qBArBlC,EA+BFP,KAAK,IAAIA,KAAK,CAACI,YAAN,IAAsB,MA/B7B,CAApB,CAAA;AAmCA,MAAMI,IAAI,GAAGV,MAAM,CAACW,UAAD,CAAT,CAAV,gBAAA,KAAA,gBAAA,GAAA,sBAAA,CAAA,CAAA,iDAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAKO,MAAMC,KAAK,GAAG,IAaf,IAAA;EAAA,IAbgB;IACpBC,KADoB;IAEpBC,UAFoB;IAGpBC,UAHoB;IAIpBC,OAJoB;IAKpBb,QALoB;IAMpBc,QANoB;IAOpBhB,KAPoB;IAQpBiB,UARoB;IASpBT,WAToB;IAUpBU,IAVoB;AAWpBC,IAAAA,cAAAA;GAEI,GAAA,IAAA;AAAA,MADDC,IACC,GAAA,wBAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;;EACJ,oBACE,KAAA,CAAA,aAAA,CAAC,OAAD,EAAA,QAAA,CAAA,EAAA,EAAaA,IAAb,EAAA;AAAmB,IAAA,QAAQ,EAAElB,QAAAA;AAA7B,GAAA,CAAA,eACE,oBAAC,KAAD,EAAA,QAAA,CAAA;AACE,IAAA,YAAY,EAAEU,KADhB;AAEE,IAAA,OAAO,EAAEG,OAFX;AAGE,IAAA,cAAc,EAAEI,cAHlB;AAIE,IAAA,QAAQ,EAAEjB,QAJZ;AAKE,IAAA,QAAQ,EAAEc,QALZ;AAME,IAAA,IAAI,EAAEE,IAAAA;AANR,GAAA,EAOML,UAPN,EAAA;AAQE,IAAA,IAAI,EAAC,OAAA;GATT,CAAA,CAAA,eAWE,oBAAC,cAAD,EAAA,QAAA,CAAA;AACE,IAAA,WAAW,EAAEL,WADf;AAEE,IAAA,YAAY,EAAEI,KAAAA;AAFhB,GAAA,EAGMK,UAHN,CAAA,CAXF,eAgBE,KAAA,CAAA,aAAA,CAAC,IAAD,EAAA,QAAA,CAAA;AAAM,IAAA,SAAS,EAAC,MAAhB;AAAuB,IAAA,KAAK,EAAEf,QAAQ,GAAG,MAAH,GAAY,MAAA;AAAlD,GAAA,EAA8DY,UAA9D,CAAA,EACGd,KADH,CAhBF,CADF,CAAA;AAsBD;;;;"}
|
package/esm/_internal/Select.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { S as Select } from './Select2.js';
|
|
2
|
-
import './_rollupPluginBabelHelpers.js';
|
|
3
|
-
import 'react';
|
|
4
|
-
import 'styled-components';
|
|
5
|
-
import 'react-window';
|
|
6
|
-
import './Typography2.js';
|
|
7
|
-
import 'prop-types';
|
|
8
|
-
import './icons/FlatArrow.js';
|
|
9
|
-
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
package/esm/_internal/Select2.js
DELETED
|
@@ -1,458 +0,0 @@
|
|
|
1
|
-
import { _ as _taggedTemplateLiteral, a as _extends, b as _objectSpread2, c as _objectWithoutProperties } from './_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React, { useRef, useEffect, useState, createRef } from 'react';
|
|
3
|
-
import styled, { css } from 'styled-components';
|
|
4
|
-
import { FixedSizeList } from 'react-window';
|
|
5
|
-
import { T as Typography, f as fontSizes } from './Typography2.js';
|
|
6
|
-
import { FlatArrow } from './icons/FlatArrow.js';
|
|
7
|
-
|
|
8
|
-
const useOnClickOutside = callback => {
|
|
9
|
-
const ref = useRef(null);
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
const onClickOutside = evt => {
|
|
12
|
-
if (ref.current && !ref.current.contains(evt.target)) callback();
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
document.addEventListener("click", onClickOutside);
|
|
16
|
-
return () => document.removeEventListener("click", onClickOutside);
|
|
17
|
-
}, [callback]);
|
|
18
|
-
return ref;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
|
|
22
|
-
/*--------------------------*/
|
|
23
|
-
// Styled components
|
|
24
|
-
|
|
25
|
-
/*--------------------------*/
|
|
26
|
-
|
|
27
|
-
const colors = {
|
|
28
|
-
lightViolet: "#ebedf4",
|
|
29
|
-
lightGrey: "#f9f8f8",
|
|
30
|
-
lightMidGrey: "#d8d8d8",
|
|
31
|
-
midGrey: "#d5d5d5",
|
|
32
|
-
darkMidGrey: "#bfbfbf",
|
|
33
|
-
darkGrey: "#76767a"
|
|
34
|
-
};
|
|
35
|
-
const Row = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
|
|
36
|
-
const IconAndTextContainer = styled(Row)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: 0 1.15rem 0 0;\n ::selection,\n *::selection {\n background-color: transparent;\n }\n"])));
|
|
37
|
-
const IconAndSelectedValueRenderContainer = styled(Row)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex: 1;\n"])));
|
|
38
|
-
const SelectOuterContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n position: relative;\n flex: 1;\n margin: 0 0.5rem;\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n"])));
|
|
39
|
-
const SelectLegendText = styled(Typography)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin: 0;\n width: auto;\n font-size: 0.8125rem;\n color: ", ";\n transition: color 0.1s;\n font-weight: 600;\n margin: 0 0.25rem;\n"])), props => props.color);
|
|
40
|
-
|
|
41
|
-
const handleSelectContainer = _ref => {
|
|
42
|
-
let {
|
|
43
|
-
variant,
|
|
44
|
-
color
|
|
45
|
-
} = _ref;
|
|
46
|
-
|
|
47
|
-
switch (variant) {
|
|
48
|
-
case "minimal":
|
|
49
|
-
return "\n padding: 0 .5rem; \n border: 1px solid transparent;\n transition: border-color 125ms;\n &:hover {\n border: 1px solid ".concat(color, ";\n }\n ").concat(IconAndTextContainer, " {\n padding: 0;\n }\n ");
|
|
50
|
-
|
|
51
|
-
case "basic":
|
|
52
|
-
return "\n padding: 0.22rem;\n transition: border-color 250ms;\n border-radius: 0;\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-bottom: 2px solid ".concat(color, ";\n legend {\n height: 0.6rem;\n }\n ").concat(SelectLegendText, " {\n font-size: 0.75rem;\n font-weight: 300;\n margin-left: 0;\n color: ").concat(color, ";\n }\n ").concat(SelectedValueText, " {\n margin-left: 0.2rem;\n }\n ");
|
|
53
|
-
|
|
54
|
-
case "outlined":
|
|
55
|
-
return "\n padding: 0.5rem;\n transition: border-color 250ms;\n border: 2px solid ".concat(color, ";\n ");
|
|
56
|
-
|
|
57
|
-
default:
|
|
58
|
-
return "";
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const SelectContainer = styled.fieldset(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n border-radius: 5px;\n ", "\n cursor: ", ";\n box-sizing: border-box;\n g {\n transition: transform 0.25s ease;\n }\n path {\n transition: fill 0.25s;\n }\n ", ";\n"])), props => handleSelectContainer(props), props => props.disabled ? "default" : "pointer", props => props.disabled && "background-color: ".concat(colors.lightGrey));
|
|
63
|
-
const SelectValueContainer = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n flex-direction: row;\n flex: 1;\n height: 1.75rem;\n padding: 0 0.5rem 0 0;\n pointer-events: none;\n"])));
|
|
64
|
-
const SelectedValueText = styled(Typography)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n text-align: left;\n flex: 1;\n font-weight: 500;\n margin-left: ", ";\n ", ";\n"])), props => props.withIcon ? "0.65rem" : "1rem", props => props.disabled && "color: ".concat(colors.darkMidGrey));
|
|
65
|
-
const OptionsContainer = styled.ul(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: ", ";\n background-color: white;\n border-radius: 5px;\n border: 1px solid ", ";\n box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);\n list-style: none;\n margin-top: 0.83rem;\n overflow: hidden;\n padding: 0;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 1;\n"])), props => props["aria-expanded"] === "true" ? "block" : "none", colors.lightMidGrey);
|
|
66
|
-
const OptionBase = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n background-color: ", ";\n border: none;\n font-family: Raleway, sans-serif;\n font-size: 0.8125rem;\n font-weight: 500;\n color: ", ";\n cursor: ", ";\n :hover,\n :focus {\n outline: none;\n &:not([disabled]) {\n background-color: ", ";\n }\n }\n ::selection {\n background-color: transparent;\n }\n"])), p => p.selected && !p.disabled ? colors.lightViolet : "transparent", props => props.disabled ? "#aaa" : "#222", props => props.disabled ? "default" : "pointer", colors.lightGrey);
|
|
67
|
-
const Option = styled.li(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n ", ";\n display: ", ";\n line-height: 1.3rem;\n padding: 10px 23px;\n"])), OptionBase, p => p.display === "true" ? "auto" : "none");
|
|
68
|
-
const OptionWindowed = styled.li(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n ", ";\n display: flex;\n align-items: center;\n padding: 0 23px;\n"])), OptionBase);
|
|
69
|
-
const SelectSearchTextInput = styled.input(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n flex: 1;\n font-weight: 500;\n margin-left: ", ";\n height: 100%;\n font-family: Raleway;\n font-size: ", ";\n border: 0;\n &:focus {\n outline: none;\n }\n"])), props => props.withIcon ? "0.65rem" : "1rem", fontSizes.body);
|
|
70
|
-
/*--------------------------*/
|
|
71
|
-
// Auxiliar components
|
|
72
|
-
|
|
73
|
-
/*--------------------------*/
|
|
74
|
-
|
|
75
|
-
const optValue = (label, value) => {
|
|
76
|
-
if (label && typeof label === "string") {
|
|
77
|
-
return label;
|
|
78
|
-
} else if (label) {
|
|
79
|
-
return label(value);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return value;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const OptionComponent = props => {
|
|
86
|
-
const {
|
|
87
|
-
value,
|
|
88
|
-
windowed,
|
|
89
|
-
label,
|
|
90
|
-
optionRef
|
|
91
|
-
} = props;
|
|
92
|
-
const OptionComp = windowed ? OptionWindowed : Option;
|
|
93
|
-
return /*#__PURE__*/React.createElement(OptionComp, _extends({}, props, {
|
|
94
|
-
ref: optionRef,
|
|
95
|
-
"aria-labelledby": "dropdown_".concat(value, " dropdown_").concat(value, "_option"),
|
|
96
|
-
tabIndex: "0",
|
|
97
|
-
role: "button"
|
|
98
|
-
}), optValue(label, value));
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
const OptionsContainerWindowedComponent = _ref2 => {
|
|
102
|
-
let {
|
|
103
|
-
selectWindowedRef,
|
|
104
|
-
selectWindowedHeight,
|
|
105
|
-
visibleItems,
|
|
106
|
-
displayOptions,
|
|
107
|
-
disabled,
|
|
108
|
-
itemSize,
|
|
109
|
-
selectedIndex,
|
|
110
|
-
selectOptionIndex,
|
|
111
|
-
optionRefs,
|
|
112
|
-
options
|
|
113
|
-
} = _ref2;
|
|
114
|
-
const InnerElementType = React.useMemo(() => /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement("div", _extends({}, props, {
|
|
115
|
-
ref: ref
|
|
116
|
-
}))), []);
|
|
117
|
-
const OuterElementType = React.useMemo(() => /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
118
|
-
return /*#__PURE__*/React.createElement(OptionsContainer, _extends({
|
|
119
|
-
"aria-expanded": displayOptions ? "true" : "false"
|
|
120
|
-
}, props, {
|
|
121
|
-
ref: ref,
|
|
122
|
-
style: _objectSpread2(_objectSpread2({}, props.style), {}, {
|
|
123
|
-
position: "absolute"
|
|
124
|
-
})
|
|
125
|
-
}));
|
|
126
|
-
}), [displayOptions]);
|
|
127
|
-
useEffect(() => {
|
|
128
|
-
if (!displayOptions) {
|
|
129
|
-
selectWindowedRef.current && selectWindowedRef.current.scrollToItem(0);
|
|
130
|
-
}
|
|
131
|
-
}, [displayOptions]);
|
|
132
|
-
return /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
133
|
-
ref: selectWindowedRef,
|
|
134
|
-
height: selectWindowedHeight,
|
|
135
|
-
itemCount: visibleItems.length,
|
|
136
|
-
itemSize: itemSize,
|
|
137
|
-
itemData: visibleItems,
|
|
138
|
-
outerElementType: OuterElementType,
|
|
139
|
-
innerElementType: InnerElementType
|
|
140
|
-
}, _ref3 => {
|
|
141
|
-
let {
|
|
142
|
-
data,
|
|
143
|
-
index,
|
|
144
|
-
style
|
|
145
|
-
} = _ref3;
|
|
146
|
-
const {
|
|
147
|
-
value,
|
|
148
|
-
label,
|
|
149
|
-
disabled: optDisabled
|
|
150
|
-
} = data[index];
|
|
151
|
-
return /*#__PURE__*/React.createElement(OptionComponent, {
|
|
152
|
-
style: style,
|
|
153
|
-
value: value,
|
|
154
|
-
label: label,
|
|
155
|
-
disabled: disabled || optDisabled,
|
|
156
|
-
selected: selectedIndex === index,
|
|
157
|
-
onClick: () => {
|
|
158
|
-
const index = options.findIndex(opt => opt.value === value);
|
|
159
|
-
return selectOptionIndex(index);
|
|
160
|
-
},
|
|
161
|
-
optionRef: optionRefs.current[index],
|
|
162
|
-
windowed: true
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
const OptionsContainerComponent = _ref4 => {
|
|
168
|
-
let {
|
|
169
|
-
displayOptions,
|
|
170
|
-
disabled,
|
|
171
|
-
selectedIndex,
|
|
172
|
-
selectOptionIndex,
|
|
173
|
-
optionRefs,
|
|
174
|
-
options,
|
|
175
|
-
isOptionVisibleForIndex
|
|
176
|
-
} = _ref4;
|
|
177
|
-
return /*#__PURE__*/React.createElement(OptionsContainer, {
|
|
178
|
-
"aria-expanded": displayOptions ? "true" : "false"
|
|
179
|
-
}, options.map((props, index) => {
|
|
180
|
-
const {
|
|
181
|
-
value,
|
|
182
|
-
disabled: optDisabled
|
|
183
|
-
} = props;
|
|
184
|
-
return /*#__PURE__*/React.createElement(OptionComponent, _extends({}, props, {
|
|
185
|
-
disabled: disabled || optDisabled,
|
|
186
|
-
selected: selectedIndex === index,
|
|
187
|
-
key: value,
|
|
188
|
-
onClick: () => selectOptionIndex(index),
|
|
189
|
-
optionRef: optionRefs.current[index],
|
|
190
|
-
display: isOptionVisibleForIndex[index] ? "true" : "false"
|
|
191
|
-
}));
|
|
192
|
-
}));
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
const _excluded = ["disabled", "icon", "id", "isSearchable", "label", "onChange", "options", "tintColor", "useWindowed", "value", "variant"];
|
|
196
|
-
const WINDOWED_ITEM_SIZE = 40;
|
|
197
|
-
const WINDOWED_MAX_HEIGHT = 400;
|
|
198
|
-
const USE_WINDOWED_SELECT_THRESHOLD = 500;
|
|
199
|
-
|
|
200
|
-
const selectedText = (options, selected, defaultValue) => {
|
|
201
|
-
if (selected) {
|
|
202
|
-
const {
|
|
203
|
-
label,
|
|
204
|
-
value
|
|
205
|
-
} = selected;
|
|
206
|
-
return !label ? value : typeof label === "string" ? label : label(value);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
if (!selected && defaultValue) {
|
|
210
|
-
const item = options.find(i => i.value === defaultValue);
|
|
211
|
-
return item && item.label ? item.label : defaultValue;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
return null;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
const Select = _ref => {
|
|
218
|
-
let {
|
|
219
|
-
disabled,
|
|
220
|
-
icon,
|
|
221
|
-
id,
|
|
222
|
-
isSearchable,
|
|
223
|
-
label,
|
|
224
|
-
onChange = () => {},
|
|
225
|
-
options = [],
|
|
226
|
-
tintColor = "#000",
|
|
227
|
-
useWindowed = false,
|
|
228
|
-
value,
|
|
229
|
-
variant = "outlined"
|
|
230
|
-
} = _ref,
|
|
231
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
232
|
-
|
|
233
|
-
const isMinimal = variant === "minimal";
|
|
234
|
-
const isBasic = variant === "basic";
|
|
235
|
-
const [selectedIndex, setSelectedIndex] = useState(-1);
|
|
236
|
-
|
|
237
|
-
const selectOptionIndex = index => {
|
|
238
|
-
if (disabled || !options[index] || options[index].disabled) return;
|
|
239
|
-
setSelectedIndex(index);
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
const [isOptionVisibleForIndex, setIsOptionVisibleForIndex] = useState(options.map(() => true));
|
|
243
|
-
const [displayOptions, setDisplayOptions] = useState(false);
|
|
244
|
-
const outsideClickRef = useOnClickOutside(() => setDisplayOptions(false));
|
|
245
|
-
const optionRefs = useRef([]);
|
|
246
|
-
const selectedOption = options[selectedIndex];
|
|
247
|
-
const [searchInputRef, setSearchInput] = useState(null);
|
|
248
|
-
const [search, setSearch] = useState("");
|
|
249
|
-
const [focusInputRef, setFocusInput] = useState(null);
|
|
250
|
-
const selectWindowedRef = /*#__PURE__*/React.createRef();
|
|
251
|
-
useEffect(() => {
|
|
252
|
-
if (displayOptions) {
|
|
253
|
-
setIsOptionVisibleForIndex(options.map(() => true));
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
if (selectedIndex > -1 && (!options[selectedIndex] || options[selectedIndex].disabled)) {
|
|
257
|
-
setSelectedIndex(-1);
|
|
258
|
-
}
|
|
259
|
-
}, [displayOptions, options]);
|
|
260
|
-
useEffect(() => {
|
|
261
|
-
if (!isSearchable || !searchInputRef) {
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
const setSearchResults = () => {
|
|
266
|
-
const searchResults = options.map(option => {
|
|
267
|
-
const {
|
|
268
|
-
value,
|
|
269
|
-
label
|
|
270
|
-
} = option;
|
|
271
|
-
const text = typeof label === "string" ? label : value;
|
|
272
|
-
return !search || text.toLowerCase().startsWith(search.toLowerCase());
|
|
273
|
-
});
|
|
274
|
-
setIsOptionVisibleForIndex(searchResults);
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
const handleKeyUp = () => {
|
|
278
|
-
setSearchResults();
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
const handleKeyDown = e => {
|
|
282
|
-
if (e.keyCode === 13 || // enter
|
|
283
|
-
e.keyCode === 40 || // down arrow
|
|
284
|
-
e.keyCode === 9 && !e.shiftKey // tab without shift
|
|
285
|
-
) {
|
|
286
|
-
e.preventDefault();
|
|
287
|
-
const firstEnabledOptionIndex = isOptionVisibleForIndex.findIndex(i => i);
|
|
288
|
-
|
|
289
|
-
if (e.keyCode === 13) {
|
|
290
|
-
searchInputRef.blur();
|
|
291
|
-
selectOptionIndex(firstEnabledOptionIndex);
|
|
292
|
-
return;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
optionRefs.current[firstEnabledOptionIndex].current.focus();
|
|
296
|
-
}
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
searchInputRef.addEventListener("keyup", handleKeyUp);
|
|
300
|
-
searchInputRef.addEventListener("keydown", handleKeyDown);
|
|
301
|
-
return () => {
|
|
302
|
-
searchInputRef.removeEventListener("keyup", handleKeyUp);
|
|
303
|
-
searchInputRef.removeEventListener("keydown", handleKeyDown);
|
|
304
|
-
};
|
|
305
|
-
}, [searchInputRef, isOptionVisibleForIndex, options, isSearchable, search]); // keyboard focus only
|
|
306
|
-
|
|
307
|
-
useEffect(() => {
|
|
308
|
-
if (focusInputRef === null) {
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
const handleKeyPress = e => {
|
|
313
|
-
//TODO: accessibility: when up/down is pressed, the 'focused' item should be the top/bottom item in the options list, and not always the top item
|
|
314
|
-
// up
|
|
315
|
-
if (e.keyCode === 38) {
|
|
316
|
-
e.preventDefault();
|
|
317
|
-
setDisplayOptions(true);
|
|
318
|
-
} // down
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
if (e.keyCode === 40) {
|
|
322
|
-
e.preventDefault();
|
|
323
|
-
setDisplayOptions(true);
|
|
324
|
-
}
|
|
325
|
-
};
|
|
326
|
-
|
|
327
|
-
focusInputRef.addEventListener("keydown", handleKeyPress);
|
|
328
|
-
return () => {
|
|
329
|
-
focusInputRef.removeEventListener("keydown", handleKeyPress);
|
|
330
|
-
};
|
|
331
|
-
}, [focusInputRef, options, selectedOption]);
|
|
332
|
-
useEffect(() => {
|
|
333
|
-
// pass the selected value to parent component
|
|
334
|
-
if (selectedIndex >= 0 && onChange) {
|
|
335
|
-
onChange(options[selectedIndex].value);
|
|
336
|
-
}
|
|
337
|
-
}, [selectedIndex]);
|
|
338
|
-
useEffect(() => {
|
|
339
|
-
// if value is defined (null is still a valid value)
|
|
340
|
-
// and we still don't have a selected index or the value is different
|
|
341
|
-
// let's update internal state's selectedIndex
|
|
342
|
-
if (value !== undefined && (selectedIndex === -1 || value !== (options[selectedIndex] && options[selectedIndex].value))) {
|
|
343
|
-
selectOptionIndex(options.findIndex(opt => opt.value === value));
|
|
344
|
-
}
|
|
345
|
-
}, [value]);
|
|
346
|
-
useEffect(() => {
|
|
347
|
-
if (options.length !== optionRefs.current.length) {
|
|
348
|
-
optionRefs.current = options.map((_, idx) => optionRefs.current[idx] || /*#__PURE__*/createRef());
|
|
349
|
-
}
|
|
350
|
-
}, [options]); // option selection and event listeners
|
|
351
|
-
|
|
352
|
-
useEffect(() => {
|
|
353
|
-
if (displayOptions && ( // if we still have no reference, wait until the next cycle
|
|
354
|
-
!isSearchable || searchInputRef !== null)) {
|
|
355
|
-
const evtListenersToUnmount = [];
|
|
356
|
-
|
|
357
|
-
if (isSearchable) {
|
|
358
|
-
searchInputRef.focus();
|
|
359
|
-
} else {
|
|
360
|
-
optionRefs.current[// select first visible
|
|
361
|
-
isOptionVisibleForIndex.findIndex(i => i)].current.focus();
|
|
362
|
-
} // attach keyboard events:
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
optionRefs.current.forEach((ref, idx) => {
|
|
366
|
-
const evtListener = e => {
|
|
367
|
-
e.preventDefault(); // down arrow or tab without shift
|
|
368
|
-
|
|
369
|
-
if (e.keyCode === 40 || e.keyCode === 9 && !e.shiftKey) {
|
|
370
|
-
const nextAvailableIndex = isOptionVisibleForIndex.findIndex((isOptionVisible, itemIdx) => isOptionVisible && !options[itemIdx].disabled && itemIdx > idx);
|
|
371
|
-
optionRefs.current[nextAvailableIndex >= 0 ? nextAvailableIndex : optionRefs.current.length - 1].current.focus({
|
|
372
|
-
preventScroll: true
|
|
373
|
-
}); // up arrow or tab with shift
|
|
374
|
-
} else if (e.keyCode === 38 || e.keyCode === 9 && e.shiftKey) {
|
|
375
|
-
const previousAvailableIndex = isOptionVisibleForIndex.reduce((previousIndex, isOptionEnabled, itemIndex) => {
|
|
376
|
-
return !isOptionEnabled || options[itemIndex].disabled || itemIndex >= idx ? previousIndex : itemIndex;
|
|
377
|
-
}, -1);
|
|
378
|
-
optionRefs.current[previousAvailableIndex >= 0 ? previousAvailableIndex : 0].current.focus({
|
|
379
|
-
preventScroll: true
|
|
380
|
-
}); // space space enter
|
|
381
|
-
} else if ([0, 32, 13].includes(e.keyCode)) {
|
|
382
|
-
optionRefs.current[idx].current.click();
|
|
383
|
-
} else if (e.keyCode === 27) {
|
|
384
|
-
setDisplayOptions(false);
|
|
385
|
-
}
|
|
386
|
-
}; // ref.current is lost if an option unmounts
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
ref.current && ref.current.addEventListener("keydown", evtListener);
|
|
390
|
-
evtListenersToUnmount.push(() => ref.current && ref.current.removeEventListener("keydown", evtListener));
|
|
391
|
-
});
|
|
392
|
-
|
|
393
|
-
if (evtListenersToUnmount.length) {
|
|
394
|
-
return () => evtListenersToUnmount.forEach(unmount => unmount());
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}, [displayOptions, searchInputRef, isOptionVisibleForIndex, isSearchable]);
|
|
398
|
-
const textColor = displayOptions || isMinimal ? tintColor : disabled ? colors.darkMidGrey : colors.darkGrey;
|
|
399
|
-
const visibleItems = options.filter((_, index) => isOptionVisibleForIndex[index]);
|
|
400
|
-
const countVisibleItems = visibleItems.length;
|
|
401
|
-
const useSelectWindowed = useWindowed || options.length > USE_WINDOWED_SELECT_THRESHOLD;
|
|
402
|
-
const selectWindowedHeight = Math.floor(Math.min(countVisibleItems * WINDOWED_ITEM_SIZE, WINDOWED_MAX_HEIGHT));
|
|
403
|
-
const optionsContainerProps = {
|
|
404
|
-
selectWindowedRef,
|
|
405
|
-
selectWindowedHeight,
|
|
406
|
-
visibleItems,
|
|
407
|
-
displayOptions,
|
|
408
|
-
disabled,
|
|
409
|
-
selectedIndex,
|
|
410
|
-
selectOptionIndex,
|
|
411
|
-
optionRefs,
|
|
412
|
-
options,
|
|
413
|
-
isOptionVisibleForIndex,
|
|
414
|
-
itemSize: WINDOWED_ITEM_SIZE
|
|
415
|
-
};
|
|
416
|
-
const OptionsContainer = useSelectWindowed ? OptionsContainerWindowedComponent : OptionsContainerComponent;
|
|
417
|
-
return /*#__PURE__*/React.createElement(SelectOuterContainer, _extends({
|
|
418
|
-
ref: outsideClickRef,
|
|
419
|
-
onClick: () => !disabled && setDisplayOptions(displayOptions => !displayOptions)
|
|
420
|
-
}, rest), /*#__PURE__*/React.createElement(SelectContainer, {
|
|
421
|
-
variant: variant,
|
|
422
|
-
color: isMinimal || isBasic || displayOptions ? tintColor : colors.midGrey,
|
|
423
|
-
disabled: disabled
|
|
424
|
-
}, !isMinimal && /*#__PURE__*/React.createElement("legend", null, /*#__PURE__*/React.createElement(SelectLegendText, {
|
|
425
|
-
id: id,
|
|
426
|
-
color: textColor
|
|
427
|
-
}, label)), /*#__PURE__*/React.createElement(IconAndTextContainer, null, /*#__PURE__*/React.createElement(SelectValueContainer, {
|
|
428
|
-
tabIndex: "0",
|
|
429
|
-
"aria-haspopup": "listbox",
|
|
430
|
-
role: "listbox",
|
|
431
|
-
"aria-labelledby": "dropdown_".concat(id, " dropdown_").concat(id, "_button"),
|
|
432
|
-
onKeyPress: e => {
|
|
433
|
-
if (!disabled && e.charCode === 13) {
|
|
434
|
-
e.preventDefault();
|
|
435
|
-
setDisplayOptions(displayOptions => !displayOptions);
|
|
436
|
-
}
|
|
437
|
-
},
|
|
438
|
-
ref: setFocusInput
|
|
439
|
-
}, !displayOptions || isSearchable || isMinimal ? /*#__PURE__*/React.createElement(IconAndSelectedValueRenderContainer, null, icon, displayOptions && isSearchable ? /*#__PURE__*/React.createElement(SelectSearchTextInput, {
|
|
440
|
-
withIcon: !!icon,
|
|
441
|
-
value: search,
|
|
442
|
-
placeholder: selectedOption ? typeof selectedOption.label === "string" ? selectedOption.label : selectedOption.value : "",
|
|
443
|
-
onChange: evt => !disabled && setSearch(evt.target.value),
|
|
444
|
-
ref: setSearchInput
|
|
445
|
-
}) : /*#__PURE__*/React.createElement(SelectedValueText, {
|
|
446
|
-
withIcon: !!icon,
|
|
447
|
-
disabled: disabled,
|
|
448
|
-
color: isMinimal ? tintColor : undefined
|
|
449
|
-
}, selectedText(options, selectedOption, value))) : null), /*#__PURE__*/React.createElement(FlatArrow, {
|
|
450
|
-
width: 9,
|
|
451
|
-
direction: displayOptions ? "up" : "down",
|
|
452
|
-
fill: textColor,
|
|
453
|
-
title: "Open drop down"
|
|
454
|
-
}))), /*#__PURE__*/React.createElement(OptionsContainer, optionsContainerProps));
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
export { Select as S, useOnClickOutside as u };
|
|
458
|
-
//# sourceMappingURL=Select2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select2.js","sources":["../../../src/hooks/useOnClickOutside.jsx","../../../src/components/Select/SelectComponents.jsx","../../../src/components/Select/Select.jsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport const useOnClickOutside = callback => {\n const ref = useRef(null);\n useEffect(() => {\n const onClickOutside = evt => {\n if (ref.current && !ref.current.contains(evt.target)) callback();\n };\n document.addEventListener(\"click\", onClickOutside);\n return () => document.removeEventListener(\"click\", onClickOutside);\n }, [callback]);\n\n return ref;\n};\n","import React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FixedSizeList as OptionsContainerWindowed } from \"react-window\";\n\nimport { Typography, fontSizes } from '../Typography';\n\n/*--------------------------*/\n// Styled components\n/*--------------------------*/\n\nconst colors = {\n lightViolet: \"#ebedf4\",\n lightGrey: \"#f9f8f8\",\n lightMidGrey: \"#d8d8d8\",\n midGrey: \"#d5d5d5\",\n darkMidGrey: \"#bfbfbf\",\n darkGrey: \"#76767a\",\n};\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\nconst IconAndTextContainer = styled(Row)`\n padding: 0 1.15rem 0 0;\n ::selection,\n *::selection {\n background-color: transparent;\n }\n`;\nconst IconAndSelectedValueRenderContainer = styled(Row)`\n flex: 1;\n`;\nconst SelectOuterContainer = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n flex: 1;\n margin: 0 0.5rem;\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n`;\n\nconst SelectLegendText = styled(Typography)`\n margin: 0;\n width: auto;\n font-size: 0.8125rem;\n color: ${(props) => props.color};\n transition: color 0.1s;\n font-weight: 600;\n margin: 0 0.25rem;\n`;\n\nconst handleSelectContainer = ({ variant, color }) => {\n switch (variant) {\n case \"minimal\":\n return `\n padding: 0 .5rem; \n border: 1px solid transparent;\n transition: border-color 125ms;\n &:hover {\n border: 1px solid ${color};\n }\n ${IconAndTextContainer} {\n padding: 0;\n }\n `;\n case \"basic\":\n return `\n padding: 0.22rem;\n transition: border-color 250ms;\n border-radius: 0;\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-bottom: 2px solid ${color};\n legend {\n height: 0.6rem;\n }\n ${SelectLegendText} {\n font-size: 0.75rem;\n font-weight: 300;\n margin-left: 0;\n color: ${color};\n }\n ${SelectedValueText} {\n margin-left: 0.2rem;\n }\n `;\n case \"outlined\":\n return `\n padding: 0.5rem;\n transition: border-color 250ms;\n border: 2px solid ${color};\n `;\n default:\n return \"\";\n }\n};\nconst SelectContainer = styled.fieldset`\n border-radius: 5px;\n ${(props) => handleSelectContainer(props)}\n cursor: ${(props) => (props.disabled ? \"default\" : \"pointer\")};\n box-sizing: border-box;\n g {\n transition: transform 0.25s ease;\n }\n path {\n transition: fill 0.25s;\n }\n ${(props) => props.disabled && `background-color: ${colors.lightGrey}`};\n`;\n\nconst SelectValueContainer = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n flex: 1;\n height: 1.75rem;\n padding: 0 0.5rem 0 0;\n pointer-events: none;\n`;\nconst SelectedValueText = styled(Typography)`\n text-align: left;\n flex: 1;\n font-weight: 500;\n margin-left: ${(props) => (props.withIcon ? \"0.65rem\" : \"1rem\")};\n ${(props) => props.disabled && `color: ${colors.darkMidGrey}`};\n`;\nconst OptionsContainer = styled.ul`\n display: ${(props) => (props[\"aria-expanded\"] === \"true\" ? \"block\" : \"none\")};\n background-color: white;\n border-radius: 5px;\n border: 1px solid ${colors.lightMidGrey};\n box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.15);\n list-style: none;\n margin-top: 0.83rem;\n overflow: hidden;\n padding: 0;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 1;\n`;\n\nconst OptionBase = css`\n background-color: ${(p) =>\n p.selected && !p.disabled ? colors.lightViolet : \"transparent\"};\n border: none;\n font-family: Raleway, sans-serif;\n font-size: 0.8125rem;\n font-weight: 500;\n color: ${(props) => (props.disabled ? \"#aaa\" : \"#222\")};\n cursor: ${(props) => (props.disabled ? \"default\" : \"pointer\")};\n :hover,\n :focus {\n outline: none;\n &:not([disabled]) {\n background-color: ${colors.lightGrey};\n }\n }\n ::selection {\n background-color: transparent;\n }\n`;\n\nconst Option = styled.li`\n ${OptionBase};\n display: ${(p) => (p.display === \"true\" ? \"auto\" : \"none\")};\n line-height: 1.3rem;\n padding: 10px 23px;\n`;\n\nconst OptionWindowed = styled.li`\n ${OptionBase};\n display: flex;\n align-items: center;\n padding: 0 23px;\n`;\n\nconst SelectSearchTextInput = styled.input`\n flex: 1;\n font-weight: 500;\n margin-left: ${(props) => (props.withIcon ? \"0.65rem\" : \"1rem\")};\n height: 100%;\n font-family: Raleway;\n font-size: ${fontSizes.body};\n border: 0;\n &:focus {\n outline: none;\n }\n`;\n\n/*--------------------------*/\n// Auxiliar components\n/*--------------------------*/\n\nconst optValue = (label, value) => {\n if (label && typeof label === \"string\") {\n return label;\n } else if (label) {\n return label(value);\n }\n return value;\n};\n\nconst OptionComponent = (props) => {\n const { value, windowed, label, optionRef } = props;\n const OptionComp = windowed ? OptionWindowed : Option;\n return (\n <OptionComp\n {...props}\n ref={optionRef}\n aria-labelledby={`dropdown_${value} dropdown_${value}_option`}\n tabIndex=\"0\"\n role=\"button\"\n >\n {optValue(label, value)}\n </OptionComp>\n );\n};\n\nconst OptionsContainerWindowedComponent = ({\n selectWindowedRef,\n selectWindowedHeight,\n visibleItems,\n displayOptions,\n disabled,\n itemSize,\n selectedIndex,\n selectOptionIndex,\n optionRefs,\n options,\n}) => {\n const InnerElementType = React.useMemo(\n () => React.forwardRef((props, ref) => <div {...props} ref={ref} />),\n []\n );\n\n const OuterElementType = React.useMemo(\n () =>\n React.forwardRef((props, ref) => {\n return (\n <OptionsContainer\n aria-expanded={displayOptions ? \"true\" : \"false\"}\n {...props}\n ref={ref}\n style={{ ...props.style, position: \"absolute\" }}\n />\n );\n }),\n [displayOptions]\n );\n\n useEffect(() => {\n if (!displayOptions) {\n selectWindowedRef.current && selectWindowedRef.current.scrollToItem(0);\n }\n }, [displayOptions]);\n\n return (\n <OptionsContainerWindowed\n ref={selectWindowedRef}\n height={selectWindowedHeight}\n itemCount={visibleItems.length}\n itemSize={itemSize}\n itemData={visibleItems}\n outerElementType={OuterElementType}\n innerElementType={InnerElementType}\n >\n {({ data, index, style }) => {\n const { value, label, disabled: optDisabled } = data[index];\n return (\n <OptionComponent\n style={style}\n value={value}\n label={label}\n disabled={disabled || optDisabled}\n selected={selectedIndex === index}\n onClick={() => {\n const index = options.findIndex((opt) => opt.value === value);\n return selectOptionIndex(index);\n }}\n optionRef={optionRefs.current[index]}\n windowed\n />\n );\n }}\n </OptionsContainerWindowed>\n );\n};\n\nconst OptionsContainerComponent = ({\n displayOptions,\n disabled,\n selectedIndex,\n selectOptionIndex,\n optionRefs,\n options,\n isOptionVisibleForIndex,\n}) => {\n return (\n <OptionsContainer aria-expanded={displayOptions ? \"true\" : \"false\"}>\n {options.map((props, index) => {\n const { value, disabled: optDisabled } = props;\n return (\n <OptionComponent\n {...props}\n disabled={disabled || optDisabled}\n selected={selectedIndex === index}\n key={value}\n onClick={() => selectOptionIndex(index)}\n optionRef={optionRefs.current[index]}\n display={isOptionVisibleForIndex[index] ? \"true\" : \"false\"}\n />\n );\n })}\n </OptionsContainer>\n );\n};\n\nexport {\n colors,\n IconAndTextContainer,\n IconAndSelectedValueRenderContainer,\n SelectOuterContainer,\n SelectContainer,\n SelectLegendText,\n SelectValueContainer,\n SelectedValueText,\n OptionsContainer,\n OptionsContainerWindowedComponent,\n OptionsContainerComponent,\n Option,\n OptionWindowed,\n SelectSearchTextInput,\n};\n","import React, { createRef, useState, useEffect, useRef } from 'react';\nimport { useOnClickOutside } from '../../hooks/useOnClickOutside';\nimport { FlatArrow } from '../icons';\nimport {\n colors,\n IconAndTextContainer,\n IconAndSelectedValueRenderContainer,\n SelectOuterContainer,\n SelectContainer,\n SelectLegendText,\n SelectValueContainer,\n SelectedValueText,\n SelectSearchTextInput,\n OptionsContainerWindowedComponent,\n OptionsContainerComponent,\n} from \"./SelectComponents\";\n\nconst WINDOWED_ITEM_SIZE = 40;\nconst WINDOWED_MAX_HEIGHT = 400;\nconst USE_WINDOWED_SELECT_THRESHOLD = 500;\n\nconst selectedText = (options, selected, defaultValue) => {\n if (selected) {\n const { label, value } = selected;\n return !label ? value : typeof label === \"string\" ? label : label(value);\n }\n if (!selected && defaultValue) {\n const item = options.find((i) => i.value === defaultValue);\n return item && item.label ? item.label : defaultValue;\n }\n return null;\n};\n\nexport const Select = ({\n disabled,\n icon,\n id,\n isSearchable,\n label,\n onChange = () => {},\n options = [],\n tintColor = \"#000\",\n useWindowed = false,\n value,\n variant = \"outlined\",\n ...rest\n}) => {\n const isMinimal = variant === \"minimal\";\n const isBasic = variant === \"basic\";\n const [selectedIndex, setSelectedIndex] = useState(-1);\n const selectOptionIndex = (index) => {\n if (disabled || !options[index] || options[index].disabled) return;\n setSelectedIndex(index);\n };\n\n const [isOptionVisibleForIndex, setIsOptionVisibleForIndex] = useState(\n options.map(() => true)\n );\n const [displayOptions, setDisplayOptions] = useState(false);\n const outsideClickRef = useOnClickOutside(() => setDisplayOptions(false));\n\n const optionRefs = useRef([]);\n const selectedOption = options[selectedIndex];\n\n const [searchInputRef, setSearchInput] = useState(null);\n const [search, setSearch] = useState(\"\");\n\n const [focusInputRef, setFocusInput] = useState(null);\n const selectWindowedRef = React.createRef();\n\n useEffect(() => {\n if (displayOptions) {\n setIsOptionVisibleForIndex(options.map(() => true));\n }\n if (\n selectedIndex > -1 &&\n (!options[selectedIndex] || options[selectedIndex].disabled)\n ) {\n setSelectedIndex(-1);\n }\n }, [displayOptions, options]);\n\n useEffect(() => {\n if (!isSearchable || !searchInputRef) {\n return;\n }\n const setSearchResults = () => {\n const searchResults = options.map((option) => {\n const { value, label } = option;\n const text = typeof label === \"string\" ? label : value;\n return !search || text.toLowerCase().startsWith(search.toLowerCase());\n });\n setIsOptionVisibleForIndex(searchResults);\n };\n const handleKeyUp = () => {\n setSearchResults();\n };\n const handleKeyDown = (e) => {\n if (\n e.keyCode === 13 || // enter\n e.keyCode === 40 || // down arrow\n (e.keyCode === 9 && !e.shiftKey) // tab without shift\n ) {\n e.preventDefault();\n const firstEnabledOptionIndex = isOptionVisibleForIndex.findIndex(\n (i) => i\n );\n if (e.keyCode === 13) {\n searchInputRef.blur();\n selectOptionIndex(firstEnabledOptionIndex);\n return;\n }\n optionRefs.current[firstEnabledOptionIndex].current.focus();\n }\n };\n searchInputRef.addEventListener(\"keyup\", handleKeyUp);\n searchInputRef.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n searchInputRef.removeEventListener(\"keyup\", handleKeyUp);\n searchInputRef.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [searchInputRef, isOptionVisibleForIndex, options, isSearchable, search]);\n\n // keyboard focus only\n useEffect(() => {\n if (focusInputRef === null) {\n return;\n }\n const handleKeyPress = (e) => {\n //TODO: accessibility: when up/down is pressed, the 'focused' item should be the top/bottom item in the options list, and not always the top item\n // up\n if (e.keyCode === 38) {\n e.preventDefault();\n setDisplayOptions(true);\n }\n\n // down\n if (e.keyCode === 40) {\n e.preventDefault();\n setDisplayOptions(true);\n }\n };\n focusInputRef.addEventListener(\"keydown\", handleKeyPress);\n return () => {\n focusInputRef.removeEventListener(\"keydown\", handleKeyPress);\n };\n }, [focusInputRef, options, selectedOption]);\n\n useEffect(() => {\n // pass the selected value to parent component\n if (selectedIndex >= 0 && onChange) {\n onChange(options[selectedIndex].value);\n }\n }, [selectedIndex]);\n\n useEffect(() => {\n // if value is defined (null is still a valid value)\n // and we still don't have a selected index or the value is different\n // let's update internal state's selectedIndex\n if (\n value !== undefined &&\n (selectedIndex === -1 ||\n value !== (options[selectedIndex] && options[selectedIndex].value))\n ) {\n selectOptionIndex(options.findIndex((opt) => opt.value === value));\n }\n }, [value]);\n\n useEffect(() => {\n if (options.length !== optionRefs.current.length) {\n optionRefs.current = options.map(\n (_, idx) => optionRefs.current[idx] || createRef()\n );\n }\n }, [options]);\n\n // option selection and event listeners\n useEffect(() => {\n if (\n displayOptions &&\n // if we still have no reference, wait until the next cycle\n (!isSearchable || searchInputRef !== null)\n ) {\n const evtListenersToUnmount = [];\n if (isSearchable) {\n searchInputRef.focus();\n } else {\n optionRefs.current[\n // select first visible\n isOptionVisibleForIndex.findIndex((i) => i)\n ].current.focus();\n }\n\n // attach keyboard events:\n optionRefs.current.forEach((ref, idx) => {\n const evtListener = (e) => {\n e.preventDefault();\n // down arrow or tab without shift\n if (e.keyCode === 40 || (e.keyCode === 9 && !e.shiftKey)) {\n const nextAvailableIndex = isOptionVisibleForIndex.findIndex(\n (isOptionVisible, itemIdx) =>\n isOptionVisible && !options[itemIdx].disabled && itemIdx > idx\n );\n optionRefs.current[\n nextAvailableIndex >= 0\n ? nextAvailableIndex\n : optionRefs.current.length - 1\n ].current.focus({ preventScroll: true });\n // up arrow or tab with shift\n } else if (e.keyCode === 38 || (e.keyCode === 9 && e.shiftKey)) {\n const previousAvailableIndex = isOptionVisibleForIndex.reduce(\n (previousIndex, isOptionEnabled, itemIndex) => {\n return !isOptionEnabled ||\n options[itemIndex].disabled ||\n itemIndex >= idx\n ? previousIndex\n : itemIndex;\n },\n -1\n );\n optionRefs.current[\n previousAvailableIndex >= 0 ? previousAvailableIndex : 0\n ].current.focus({\n preventScroll: true,\n });\n // space space enter\n } else if ([0, 32, 13].includes(e.keyCode)) {\n optionRefs.current[idx].current.click();\n } else if (e.keyCode === 27) {\n setDisplayOptions(false);\n }\n };\n\n // ref.current is lost if an option unmounts\n ref.current && ref.current.addEventListener(\"keydown\", evtListener);\n evtListenersToUnmount.push(\n () =>\n ref.current &&\n ref.current.removeEventListener(\"keydown\", evtListener)\n );\n });\n if (evtListenersToUnmount.length) {\n return () => evtListenersToUnmount.forEach((unmount) => unmount());\n }\n }\n }, [displayOptions, searchInputRef, isOptionVisibleForIndex, isSearchable]);\n\n const textColor =\n displayOptions || isMinimal\n ? tintColor\n : disabled\n ? colors.darkMidGrey\n : colors.darkGrey;\n\n const visibleItems = options.filter(\n (_, index) => isOptionVisibleForIndex[index]\n );\n\n const countVisibleItems = visibleItems.length;\n const useSelectWindowed =\n useWindowed || options.length > USE_WINDOWED_SELECT_THRESHOLD;\n const selectWindowedHeight = Math.floor(\n Math.min(countVisibleItems * WINDOWED_ITEM_SIZE, WINDOWED_MAX_HEIGHT)\n );\n\n const optionsContainerProps = {\n selectWindowedRef,\n selectWindowedHeight,\n visibleItems,\n displayOptions,\n disabled,\n selectedIndex,\n selectOptionIndex,\n optionRefs,\n options,\n isOptionVisibleForIndex,\n itemSize: WINDOWED_ITEM_SIZE,\n };\n\n const OptionsContainer = useSelectWindowed\n ? OptionsContainerWindowedComponent\n : OptionsContainerComponent;\n\n return (\n <SelectOuterContainer\n ref={outsideClickRef}\n onClick={() =>\n !disabled && setDisplayOptions((displayOptions) => !displayOptions)\n }\n {...rest}\n >\n <SelectContainer\n variant={variant}\n color={\n isMinimal || isBasic || displayOptions ? tintColor : colors.midGrey\n }\n disabled={disabled}\n >\n {!isMinimal && (\n <legend>\n <SelectLegendText id={id} color={textColor}>\n {label}\n </SelectLegendText>\n </legend>\n )}\n <IconAndTextContainer>\n <SelectValueContainer\n tabIndex=\"0\"\n aria-haspopup=\"listbox\"\n role=\"listbox\"\n aria-labelledby={`dropdown_${id} dropdown_${id}_button`}\n onKeyPress={(e) => {\n if (!disabled && e.charCode === 13) {\n e.preventDefault();\n setDisplayOptions((displayOptions) => !displayOptions);\n }\n }}\n ref={setFocusInput}\n >\n {!displayOptions || isSearchable || isMinimal ? (\n <IconAndSelectedValueRenderContainer>\n {icon}\n {displayOptions && isSearchable ? (\n <SelectSearchTextInput\n withIcon={!!icon}\n value={search}\n placeholder={\n selectedOption\n ? typeof selectedOption.label === \"string\"\n ? selectedOption.label\n : selectedOption.value\n : \"\"\n }\n onChange={(evt) => !disabled && setSearch(evt.target.value)}\n ref={setSearchInput}\n />\n ) : (\n <SelectedValueText\n withIcon={!!icon}\n disabled={disabled}\n color={isMinimal ? tintColor : undefined}\n >\n {selectedText(options, selectedOption, value)}\n </SelectedValueText>\n )}\n </IconAndSelectedValueRenderContainer>\n ) : null}\n </SelectValueContainer>\n <FlatArrow\n width={9}\n direction={displayOptions ? \"up\" : \"down\"}\n fill={textColor}\n title=\"Open drop down\"\n />\n </IconAndTextContainer>\n </SelectContainer>\n <OptionsContainer {...optionsContainerProps} />\n </SelectOuterContainer>\n );\n};\n"],"names":["useOnClickOutside","callback","ref","useRef","useEffect","onClickOutside","evt","current","contains","target","document","addEventListener","removeEventListener","colors","lightViolet","lightGrey","lightMidGrey","midGrey","darkMidGrey","darkGrey","Row","styled","div","IconAndTextContainer","IconAndSelectedValueRenderContainer","SelectOuterContainer","SelectLegendText","Typography","props","color","handleSelectContainer","variant","SelectedValueText","SelectContainer","fieldset","disabled","SelectValueContainer","withIcon","OptionsContainer","ul","OptionBase","css","p","selected","Option","li","display","OptionWindowed","SelectSearchTextInput","input","fontSizes","body","optValue","label","value","OptionComponent","windowed","optionRef","OptionComp","OptionsContainerWindowedComponent","selectWindowedRef","selectWindowedHeight","visibleItems","displayOptions","itemSize","selectedIndex","selectOptionIndex","optionRefs","options","InnerElementType","React","useMemo","forwardRef","OuterElementType","_objectSpread","style","position","scrollToItem","OptionsContainerWindowed","length","data","index","optDisabled","findIndex","opt","OptionsContainerComponent","isOptionVisibleForIndex","map","WINDOWED_ITEM_SIZE","WINDOWED_MAX_HEIGHT","USE_WINDOWED_SELECT_THRESHOLD","selectedText","defaultValue","item","find","i","Select","icon","id","isSearchable","onChange","tintColor","useWindowed","rest","isMinimal","isBasic","setSelectedIndex","useState","setIsOptionVisibleForIndex","setDisplayOptions","outsideClickRef","selectedOption","searchInputRef","setSearchInput","search","setSearch","focusInputRef","setFocusInput","createRef","setSearchResults","searchResults","option","text","toLowerCase","startsWith","handleKeyUp","handleKeyDown","e","keyCode","shiftKey","preventDefault","firstEnabledOptionIndex","blur","focus","handleKeyPress","undefined","_","idx","evtListenersToUnmount","forEach","evtListener","nextAvailableIndex","isOptionVisible","itemIdx","preventScroll","previousAvailableIndex","reduce","previousIndex","isOptionEnabled","itemIndex","includes","click","push","unmount","textColor","filter","countVisibleItems","useSelectWindowed","Math","floor","min","optionsContainerProps","charCode"],"mappings":"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"}
|
package/esm/_internal/Switch.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|