@wireapp/react-ui-kit 8.8.3 → 8.10.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/CHANGELOG.md +31 -0
- package/package.json +5 -2
- package/src/Form/Checkbox.js +9 -7
- package/src/Form/Checkbox.js.map +1 -1
- package/src/Form/Checkbox.md +4 -2
- package/src/Form/DropFileInput.d.js +2 -0
- package/src/Form/DropFileInput.d.js.map +1 -0
- package/src/Form/DropFileInput.d.ts +19 -0
- package/src/Form/DropFileInput.js +237 -0
- package/src/Form/DropFileInput.js.map +1 -0
- package/src/Form/DropFileInput.md +18 -0
- package/src/Form/RangeInput.d.js +2 -0
- package/src/Form/RangeInput.d.js.map +1 -0
- package/src/Form/RangeInput.d.ts +11 -0
- package/src/Form/RangeInput.js +75 -0
- package/src/Form/RangeInput.js.map +1 -0
- package/src/Form/RangeInput.md +27 -0
- package/src/Form/RangeInput.styles.d.js +2 -0
- package/src/Form/RangeInput.styles.d.js.map +1 -0
- package/src/Form/RangeInput.styles.d.ts +9 -0
- package/src/Form/RangeInput.styles.js +76 -0
- package/src/Form/RangeInput.styles.js.map +1 -0
- package/src/Form/Select.d.js +4 -0
- package/src/Form/Select.d.ts +14 -15
- package/src/Form/Select.js +42 -319
- package/src/Form/Select.js.map +1 -1
- package/src/Form/Select.md +25 -26
- package/src/Form/SelectComponents.d.js +2 -0
- package/src/Form/SelectComponents.d.js.map +1 -0
- package/src/Form/SelectComponents.d.ts +12 -0
- package/src/Form/SelectComponents.js +176 -0
- package/src/Form/SelectComponents.js.map +1 -0
- package/src/Form/SelectStyles.d.js +2 -0
- package/src/Form/SelectStyles.d.js.map +1 -0
- package/src/Form/SelectStyles.d.ts +925 -0
- package/src/Form/SelectStyles.js +133 -0
- package/src/Form/SelectStyles.js.map +1 -0
- package/src/Form/ShakeBox.d.ts +1 -1
- package/src/Form/index.d.js +26 -0
- package/src/Form/index.d.js.map +1 -1
- package/src/Form/index.d.ts +3 -0
- package/src/Form/index.js +26 -0
- package/src/Form/index.js.map +1 -1
- package/src/Icon/ArrowDown.d.js +2 -0
- package/src/Icon/ArrowDown.d.js.map +1 -0
- package/src/Icon/ArrowDown.d.ts +2 -0
- package/src/Icon/ArrowDown.js +45 -0
- package/src/Icon/ArrowDown.js.map +1 -0
- package/src/Icon/SVGIcon.md +2 -0
- package/src/Icon/UploadIcon.d.js +2 -0
- package/src/Icon/UploadIcon.d.js.map +1 -0
- package/src/Icon/UploadIcon.d.ts +4 -0
- package/src/Icon/UploadIcon.js +46 -0
- package/src/Icon/UploadIcon.js.map +1 -0
- package/src/Icon/index.d.js +13 -0
- package/src/Icon/index.d.js.map +1 -1
- package/src/Icon/index.d.ts +1 -0
- package/src/Icon/index.js +13 -0
- package/src/Icon/index.js.map +1 -1
- package/src/Layout/Container.d.ts +5 -5
- package/src/Layout/Theme.d.ts +1 -0
- package/src/Layout/Theme.js +4 -2
- package/src/Layout/Theme.js.map +1 -1
- package/src/Text/Text.d.ts +6 -6
- package/src/util.d.ts +2 -0
- package/src/util.js +10 -1
- package/src/util.js.map +1 -1
package/src/Form/Select.js
CHANGED
|
@@ -2,289 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
exports.Select =
|
|
8
|
+
exports.Select = void 0;
|
|
11
9
|
|
|
12
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
11
|
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
|
|
16
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
13
|
|
|
18
14
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
15
|
|
|
20
16
|
var _react = require("@emotion/react");
|
|
21
17
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _Input = require("./Input");
|
|
25
|
-
|
|
26
|
-
var _react2 = _interopRequireWildcard(require("react"));
|
|
18
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
27
19
|
|
|
28
|
-
var
|
|
20
|
+
var _reactSelect = _interopRequireDefault(require("react-select"));
|
|
29
21
|
|
|
30
|
-
var
|
|
31
|
-
_excluded2 = ["id", "label", "error", "helperText", "options", "value", "onChange", "required", "markInvalid", "dataUieName", "wrapperCSS"];
|
|
22
|
+
var _SelectStyles = require("./SelectStyles");
|
|
32
23
|
|
|
33
|
-
|
|
24
|
+
var _SelectComponents = require("./SelectComponents");
|
|
34
25
|
|
|
35
|
-
|
|
26
|
+
var _InputLabel = _interopRequireDefault(require("./InputLabel"));
|
|
36
27
|
|
|
37
|
-
|
|
28
|
+
var _excluded = ["id", "label", "error", "helperText", "dataUieName", "options", "wrapperCSS", "markInvalid", "required", "isMulti"];
|
|
38
29
|
|
|
39
30
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
40
31
|
|
|
41
32
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
42
33
|
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
34
|
+
var Select = function Select(_ref) {
|
|
35
|
+
var id = _ref.id,
|
|
36
|
+
label = _ref.label,
|
|
37
|
+
error = _ref.error,
|
|
38
|
+
helperText = _ref.helperText,
|
|
39
|
+
dataUieName = _ref.dataUieName,
|
|
40
|
+
options = _ref.options,
|
|
41
|
+
_ref$wrapperCSS = _ref.wrapperCSS,
|
|
42
|
+
wrapperCSS = _ref$wrapperCSS === void 0 ? {} : _ref$wrapperCSS,
|
|
43
|
+
_ref$markInvalid = _ref.markInvalid,
|
|
44
|
+
markInvalid = _ref$markInvalid === void 0 ? false : _ref$markInvalid,
|
|
45
|
+
_ref$required = _ref.required,
|
|
46
|
+
required = _ref$required === void 0 ? false : _ref$required,
|
|
47
|
+
_ref$isMulti = _ref.isMulti,
|
|
48
|
+
isMulti = _ref$isMulti === void 0 ? false : _ref$isMulti,
|
|
56
49
|
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
57
|
-
var
|
|
58
|
-
return _objectSpread(_objectSpread(_objectSpread({}, (0, _Input.inputStyle)(theme, props)), {}, {
|
|
59
|
-
'&:-moz-focusring': {
|
|
60
|
-
color: 'transparent',
|
|
61
|
-
textShadow: '0 0 0 #000'
|
|
62
|
-
},
|
|
63
|
-
'&:disabled': {
|
|
64
|
-
color: theme.Select.disabledColor
|
|
65
|
-
},
|
|
66
|
-
appearance: 'none',
|
|
67
|
-
boxShadow: markInvalid ? "0 0 0 1px ".concat(theme.general.dangerColor) : "0 0 0 1px ".concat(theme.Select.borderColor),
|
|
68
|
-
cursor: disabled ? 'normal' : 'pointer',
|
|
69
|
-
fontSize: '16px',
|
|
70
|
-
fontWeight: 300,
|
|
71
|
-
paddingRight: '30px',
|
|
72
|
-
textAlign: 'left',
|
|
73
|
-
textOverflow: 'ellipsis',
|
|
74
|
-
overflow: 'hidden',
|
|
75
|
-
whiteSpace: 'nowrap',
|
|
76
|
-
marginBottom: error && '8px',
|
|
77
|
-
'&:invalid, option:first-of-type': {
|
|
78
|
-
color: theme.general.dangerColor
|
|
79
|
-
}
|
|
80
|
-
}, !disabled && {
|
|
81
|
-
'&:hover': {
|
|
82
|
-
boxShadow: "0 0 0 1px ".concat(theme.Select.borderColor)
|
|
83
|
-
},
|
|
84
|
-
'&:focus, &:active': {
|
|
85
|
-
boxShadow: "0 0 0 1px ".concat(theme.general.primaryColor)
|
|
86
|
-
}
|
|
87
|
-
}), {}, {
|
|
88
|
-
'& > svg': {
|
|
89
|
-
fill: disabled ? theme.Input.placeholderColor : theme.general.color,
|
|
90
|
-
position: 'absolute',
|
|
91
|
-
top: '1rem',
|
|
92
|
-
right: '1rem'
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
exports.selectStyle = selectStyle;
|
|
98
|
-
|
|
99
|
-
var dropdownStyles = function dropdownStyles(theme, isDropdownOpen) {
|
|
100
|
-
return {
|
|
101
|
-
height: isDropdownOpen ? 'auto' : 0,
|
|
102
|
-
visibility: isDropdownOpen ? 'visible' : 'hidden',
|
|
103
|
-
margin: '3px 0 0',
|
|
104
|
-
padding: 0,
|
|
105
|
-
borderRadius: '10px',
|
|
106
|
-
border: "1px solid ".concat(theme.general.primaryColor),
|
|
107
|
-
position: 'absolute',
|
|
108
|
-
top: '100%',
|
|
109
|
-
left: 0,
|
|
110
|
-
width: '100%',
|
|
111
|
-
maxHeight: '240px',
|
|
112
|
-
overflowY: 'auto',
|
|
113
|
-
zIndex: 9
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
var dropdownOptionStyles = function dropdownOptionStyles(theme, isSelected) {
|
|
118
|
-
return {
|
|
119
|
-
background: isSelected ? theme.general.primaryColor : theme.general.backgroundColor,
|
|
120
|
-
listStyle: 'none',
|
|
121
|
-
padding: '10px 20px 14px',
|
|
122
|
-
cursor: 'pointer',
|
|
123
|
-
fontSize: '16px',
|
|
124
|
-
fontWeight: 300,
|
|
125
|
-
lineHeight: '24px',
|
|
126
|
-
letterSpacing: '0.05px',
|
|
127
|
-
color: isSelected ? theme.Select.contrastTextColor : theme.general.color,
|
|
128
|
-
'&:first-of-type': {
|
|
129
|
-
borderRadius: '10px 10px 0 0'
|
|
130
|
-
},
|
|
131
|
-
'&:last-of-type': {
|
|
132
|
-
borderRadius: '0 0 10px 10px'
|
|
133
|
-
},
|
|
134
|
-
'&:not(:last-of-type)': {
|
|
135
|
-
borderBottom: "1px solid ".concat(theme.Select.borderColor)
|
|
136
|
-
},
|
|
137
|
-
'&:not(:first-of-type)': {
|
|
138
|
-
borderTop: "1px solid ".concat(theme.Select.borderColor)
|
|
139
|
-
},
|
|
140
|
-
'&:hover, &:active, &:focus': {
|
|
141
|
-
background: theme.general.primaryColor,
|
|
142
|
-
borderColor: theme.general.primaryColor,
|
|
143
|
-
color: theme.Select.contrastTextColor
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
var filterSelectProps = function filterSelectProps(props) {
|
|
149
|
-
return (0, _util.filterProps)(props, ['markInvalid']);
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
var placeholderText = '- Please select -';
|
|
153
|
-
|
|
154
|
-
var _ref3 = process.env.NODE_ENV === "production" ? {
|
|
155
|
-
name: "bjn8wh",
|
|
156
|
-
styles: "position:relative"
|
|
157
|
-
} : {
|
|
158
|
-
name: "tvi1yf-Select",
|
|
159
|
-
styles: "position:relative;label:Select;",
|
|
160
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNlbGVjdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa1JXIiwiZmlsZSI6IlNlbGVjdC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogV2lyZVxuICogQ29weXJpZ2h0IChDKSAyMDE4IFdpcmUgU3dpc3MgR21iSFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuLyoqIEBqc3gganN4ICovXG5pbXBvcnQge0NTU09iamVjdCwganN4fSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtUaGVtZX0gZnJvbSAnLi4vTGF5b3V0JztcbmltcG9ydCB7ZmlsdGVyUHJvcHN9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHtpbnB1dFN0eWxlfSBmcm9tICcuL0lucHV0JztcbmltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW5wdXRMYWJlbCBmcm9tICcuL0lucHV0TGFiZWwnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RQcm9wczxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uID0gU2VsZWN0T3B0aW9uPiB7XG4gIGlkOiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAoc2VsZWN0ZWRPcHRpb246IFRbJ3ZhbHVlJ10pID0+IHZvaWQ7XG4gIGRhdGFVaWVOYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM6IFRbXTtcbiAgdmFsdWU/OiBUIHwgbnVsbDtcbiAgaGVscGVyVGV4dD86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBtYXJrSW52YWxpZD86IGJvb2xlYW47XG4gIGVycm9yPzogUmVhY3RFbGVtZW50O1xuICB3cmFwcGVyQ1NTPzogQ1NTT2JqZWN0O1xufVxuXG5jb25zdCBBcnJvd0Rvd24gPSAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cbiAgICA8cGF0aCBkPVwiTTcuOTk5NjMgMTIuNTcxMUwxNS42NTY1IDQuOTE0MjFMMTQuMjQyMyAzLjVMNy45OTk2MyA5Ljc0MjY0TDEuNzU2OTkgMy41TDAuMzQyNzczIDQuOTE0MjFMNy45OTk2MyAxMi41NzExWlwiIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFN0eWxlOiA8VD4odGhlbWU6IFRoZW1lLCBwcm9wcywgZXJyb3I/OiBib29sZWFuKSA9PiBDU1NPYmplY3QgPSAoXG4gIHRoZW1lLFxuICB7ZGlzYWJsZWQgPSBmYWxzZSwgbWFya0ludmFsaWQsIC4uLnByb3BzfSxcbiAgZXJyb3IgPSBmYWxzZSxcbikgPT4gKHtcbiAgLi4uaW5wdXRTdHlsZSh0aGVtZSwgcHJvcHMpLFxuICAnJjotbW96LWZvY3VzcmluZyc6IHtcbiAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICB0ZXh0U2hhZG93OiAnMCAwIDAgIzAwMCcsXG4gIH0sXG4gICcmOmRpc2FibGVkJzoge1xuICAgIGNvbG9yOiB0aGVtZS5TZWxlY3QuZGlzYWJsZWRDb2xvcixcbiAgfSxcbiAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICBib3hTaGFkb3c6IG1hcmtJbnZhbGlkID8gYDAgMCAwIDFweCAke3RoZW1lLmdlbmVyYWwuZGFuZ2VyQ29sb3J9YCA6IGAwIDAgMCAxcHggJHt0aGVtZS5TZWxlY3QuYm9yZGVyQ29sb3J9YCxcbiAgY3Vyc29yOiBkaXNhYmxlZCA/ICdub3JtYWwnIDogJ3BvaW50ZXInLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250V2VpZ2h0OiAzMDAsXG4gIHBhZGRpbmdSaWdodDogJzMwcHgnLFxuICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICBtYXJnaW5Cb3R0b206IGVycm9yICYmICc4cHgnLFxuICAnJjppbnZhbGlkLCBvcHRpb246Zmlyc3Qtb2YtdHlwZSc6IHtcbiAgICBjb2xvcjogdGhlbWUuZ2VuZXJhbC5kYW5nZXJDb2xvcixcbiAgfSxcbiAgLi4uKCFkaXNhYmxlZCAmJiB7XG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBib3hTaGFkb3c6IGAwIDAgMCAxcHggJHt0aGVtZS5TZWxlY3QuYm9yZGVyQ29sb3J9YCxcbiAgICB9LFxuICAgICcmOmZvY3VzLCAmOmFjdGl2ZSc6IHtcbiAgICAgIGJveFNoYWRvdzogYDAgMCAwIDFweCAke3RoZW1lLmdlbmVyYWwucHJpbWFyeUNvbG9yfWAsXG4gICAgfSxcbiAgfSksXG4gICcmID4gc3ZnJzoge1xuICAgIGZpbGw6IGRpc2FibGVkID8gdGhlbWUuSW5wdXQucGxhY2Vob2xkZXJDb2xvciA6IHRoZW1lLmdlbmVyYWwuY29sb3IsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnMXJlbScsXG4gICAgcmlnaHQ6ICcxcmVtJyxcbiAgfSxcbn0pO1xuXG5jb25zdCBkcm9wZG93blN0eWxlcyA9ICh0aGVtZTogVGhlbWUsIGlzRHJvcGRvd25PcGVuOiBib29sZWFuKTogQ1NTT2JqZWN0ID0+ICh7XG4gIGhlaWdodDogaXNEcm9wZG93bk9wZW4gPyAnYXV0bycgOiAwLFxuICB2aXNpYmlsaXR5OiBpc0Ryb3Bkb3duT3BlbiA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nLFxuICBtYXJnaW46ICczcHggMCAwJyxcbiAgcGFkZGluZzogMCxcbiAgYm9yZGVyUmFkaXVzOiAnMTBweCcsXG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLmdlbmVyYWwucHJpbWFyeUNvbG9yfWAsXG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB0b3A6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWF4SGVpZ2h0OiAnMjQwcHgnLFxuICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgekluZGV4OiA5LFxufSk7XG5cbmNvbnN0IGRyb3Bkb3duT3B0aW9uU3R5bGVzID0gKHRoZW1lOiBUaGVtZSwgaXNTZWxlY3RlZDogYm9vbGVhbik6IENTU09iamVjdCA9PiAoe1xuICBiYWNrZ3JvdW5kOiBpc1NlbGVjdGVkID8gdGhlbWUuZ2VuZXJhbC5wcmltYXJ5Q29sb3IgOiB0aGVtZS5nZW5lcmFsLmJhY2tncm91bmRDb2xvcixcbiAgbGlzdFN0eWxlOiAnbm9uZScsXG4gIHBhZGRpbmc6ICcxMHB4IDIwcHggMTRweCcsXG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250V2VpZ2h0OiAzMDAsXG4gIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgbGV0dGVyU3BhY2luZzogJzAuMDVweCcsXG4gIGNvbG9yOiBpc1NlbGVjdGVkID8gdGhlbWUuU2VsZWN0LmNvbnRyYXN0VGV4dENvbG9yIDogdGhlbWUuZ2VuZXJhbC5jb2xvcixcbiAgJyY6Zmlyc3Qtb2YtdHlwZSc6IHtcbiAgICBib3JkZXJSYWRpdXM6ICcxMHB4IDEwcHggMCAwJyxcbiAgfSxcbiAgJyY6bGFzdC1vZi10eXBlJzoge1xuICAgIGJvcmRlclJhZGl1czogJzAgMCAxMHB4IDEwcHgnLFxuICB9LFxuICAnJjpub3QoOmxhc3Qtb2YtdHlwZSknOiB7XG4gICAgYm9yZGVyQm90dG9tOiBgMXB4IHNvbGlkICR7dGhlbWUuU2VsZWN0LmJvcmRlckNvbG9yfWAsXG4gIH0sXG4gICcmOm5vdCg6Zmlyc3Qtb2YtdHlwZSknOiB7XG4gICAgYm9yZGVyVG9wOiBgMXB4IHNvbGlkICR7dGhlbWUuU2VsZWN0LmJvcmRlckNvbG9yfWAsXG4gIH0sXG4gICcmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyc6IHtcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS5nZW5lcmFsLnByaW1hcnlDb2xvcixcbiAgICBib3JkZXJDb2xvcjogdGhlbWUuZ2VuZXJhbC5wcmltYXJ5Q29sb3IsXG4gICAgY29sb3I6IHRoZW1lLlNlbGVjdC5jb250cmFzdFRleHRDb2xvcixcbiAgfSxcbn0pO1xuXG5jb25zdCBmaWx0ZXJTZWxlY3RQcm9wcyA9IHByb3BzID0+IGZpbHRlclByb3BzKHByb3BzLCBbJ21hcmtJbnZhbGlkJ10pO1xuXG5jb25zdCBwbGFjZWhvbGRlclRleHQgPSAnLSBQbGVhc2Ugc2VsZWN0IC0nO1xuXG5leHBvcnQgY29uc3QgU2VsZWN0ID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb24gPSBTZWxlY3RPcHRpb24+KHtcbiAgaWQsXG4gIGxhYmVsLFxuICBlcnJvcixcbiAgaGVscGVyVGV4dCxcbiAgb3B0aW9ucyA9IFtdLFxuICB2YWx1ZSA9IG51bGwsXG4gIG9uQ2hhbmdlLFxuICByZXF1aXJlZCxcbiAgbWFya0ludmFsaWQsXG4gIGRhdGFVaWVOYW1lLFxuICB3cmFwcGVyQ1NTID0ge30sXG4gIC4uLnByb3BzXG59OiBTZWxlY3RQcm9wczxUPikgPT4ge1xuICBjb25zdCBjdXJyZW50T3B0aW9uSWR4ID0gb3B0aW9ucy5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWU/LnZhbHVlKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBjdXJyZW50T3B0aW9uSWR4ID09PSAtMSA/IG51bGwgOiBjdXJyZW50T3B0aW9uSWR4O1xuXG4gIGNvbnN0IHNlbGVjdENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWY8SFRNTFVMaXN0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtpc0Ryb3Bkb3duT3Blbiwgc2V0SXNEcm9wZG93bk9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGhhc1NlbGVjdGVkT3B0aW9uID0gc2VsZWN0ZWRPcHRpb24gIT09IG51bGw7XG4gIGNvbnN0IGhhc0Vycm9yID0gISFlcnJvcjtcblxuICBjb25zdCBzY3JvbGxUb0N1cnJlbnRPcHRpb24gPSAoaWR4OiBudW1iZXIpID0+IHtcbiAgICBpZiAobGlzdFJlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCBsaXN0U2VsZWN0ZWRPcHRpb24gPSBsaXN0UmVmLmN1cnJlbnQuY2hpbGRyZW5baWR4XSBhcyBIVE1MTElFbGVtZW50O1xuICAgICAgY29uc3QgZ2V0WVBvc2l0aW9uID0gbGlzdFNlbGVjdGVkT3B0aW9uICYmIGxpc3RTZWxlY3RlZE9wdGlvbi5vZmZzZXRUb3A7XG5cbiAgICAgIGxpc3RSZWYuY3VycmVudC5zY3JvbGwoe1xuICAgICAgICB0b3A6IGdldFlQb3NpdGlvbiA/PyAwLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25Ub2dnbGVEcm9wZG93biA9ICgpID0+IHNldElzRHJvcGRvd25PcGVuKHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlKTtcblxuICBjb25zdCBvbk9wdGlvblNlbGVjdCA9IChpZHg6IG51bWJlcikgPT4ge1xuICAgIG9uQ2hhbmdlKG9wdGlvbnNbaWR4XS52YWx1ZSk7XG4gICAgc2Nyb2xsVG9DdXJyZW50T3B0aW9uKGlkeCk7XG4gIH07XG5cbiAgY29uc3Qgb25PcHRpb25DaGFuZ2UgPSAoaWR4OiBudW1iZXIpID0+IHtcbiAgICBvbk9wdGlvblNlbGVjdChpZHgpO1xuICAgIHNldElzRHJvcGRvd25PcGVuKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVMaXN0S2V5RG93biA9IGUgPT4ge1xuICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0SXNEcm9wZG93bk9wZW4oZmFsc2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgaWYgKCFpc0Ryb3Bkb3duT3Blbikge1xuICAgICAgICAgIHNldElzRHJvcGRvd25PcGVuKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbk9wdGlvblNlbGVjdChzZWxlY3RlZE9wdGlvbiAtIDEgPj0gMCA/IHNlbGVjdGVkT3B0aW9uIC0gMSA6IG9wdGlvbnMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBpZiAoIWlzRHJvcGRvd25PcGVuKSB7XG4gICAgICAgICAgc2V0SXNEcm9wZG93bk9wZW4odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgIG9uT3B0aW9uU2VsZWN0KDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uT3B0aW9uU2VsZWN0KHNlbGVjdGVkT3B0aW9uID09PSBvcHRpb25zLmxlbmd0aCAtIDEgPyAwIDogc2VsZWN0ZWRPcHRpb24gKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gaW5kZXggPT4gZSA9PiB7XG4gICAgc3dpdGNoIChlLmtleSkge1xuICAgICAgY2FzZSAnICc6XG4gICAgICBjYXNlICdTcGFjZUJhcic6XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25PcHRpb25DaGFuZ2UoaW5kZXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoc2VsZWN0Q29udGFpbmVyUmVmLmN1cnJlbnQgJiYgIXNlbGVjdENvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgc2V0SXNEcm9wZG93bk9wZW4oZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZU91dHNpZGVDbGljayk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9eyh0aGVtZTogVGhlbWUpID0+ICh7XG4gICAgICAgIG1hcmdpbkJvdHRvbTogbWFya0ludmFsaWQgPyAnMnB4JyA6ICcyMHB4JyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgJyY6Zm9jdXMtd2l0aGluIGxhYmVsJzoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5nZW5lcmFsLnByaW1hcnlDb2xvcixcbiAgICAgICAgfSxcbiAgICAgICAgLi4ud3JhcHBlckNTUyxcbiAgICAgIH0pfVxuICAgICAgZGF0YS11aWUtbmFtZT17ZGF0YVVpZU5hbWV9XG4gICAgICByZWY9e3NlbGVjdENvbnRhaW5lclJlZn1cbiAgICA+XG4gICAgICB7bGFiZWwgJiYgKFxuICAgICAgICA8SW5wdXRMYWJlbCBodG1sRm9yPXtpZH0gaXNSZXF1aXJlZD17cmVxdWlyZWR9IG1hcmtJbnZhbGlkPXttYXJrSW52YWxpZH0+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0lucHV0TGFiZWw+XG4gICAgICApfVxuXG4gICAgICA8ZGl2IGNzcz17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9e2hhc1NlbGVjdGVkT3B0aW9uID8gdmFsdWUubGFiZWwgOiAnJ31cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc0Ryb3Bkb3duT3Blbn1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtpZH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVEcm9wZG93bn1cbiAgICAgICAgICBvbktleURvd249e2hhbmRsZUxpc3RLZXlEb3dufVxuICAgICAgICAgIGNzcz17KHRoZW1lOiBUaGVtZSkgPT4gc2VsZWN0U3R5bGUodGhlbWUsIHByb3BzLCBoYXNFcnJvcil9XG4gICAgICAgICAgey4uLmZpbHRlclNlbGVjdFByb3BzKHByb3BzKX1cbiAgICAgICAgICBkYXRhLXVpZS1uYW1lPXtkYXRhVWllTmFtZX1cbiAgICAgICAgICB7Li4uKGhhc1NlbGVjdGVkT3B0aW9uICYmIHtcbiAgICAgICAgICAgICdkYXRhLXZhbHVlJzogdmFsdWUudmFsdWUsXG4gICAgICAgICAgfSl9XG4gICAgICAgID5cbiAgICAgICAgICB7aGFzU2VsZWN0ZWRPcHRpb24gPyB2YWx1ZS5sYWJlbCA6IHBsYWNlaG9sZGVyVGV4dH1cbiAgICAgICAgICB7QXJyb3dEb3dufVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8dWxcbiAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17aWR9XG4gICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlTGlzdEtleURvd259XG4gICAgICAgICAgY3NzPXsodGhlbWU6IFRoZW1lKSA9PiBkcm9wZG93blN0eWxlcyh0aGVtZSwgaXNEcm9wZG93bk9wZW4pfVxuICAgICAgICAgIHsuLi4oZGF0YVVpZU5hbWUgJiYge1xuICAgICAgICAgICAgJ2RhdGEtdWllLW5hbWUnOiBgZHJvcGRvd24tJHtkYXRhVWllTmFtZX1gLFxuICAgICAgICAgIH0pfVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbnMubWFwKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gY3VycmVudE9wdGlvbklkeCA9PSBpbmRleDtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgICAgICAgICAgaWQ9e29wdGlvbi52YWx1ZS50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3duKGluZGV4KX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbk9wdGlvbkNoYW5nZShpbmRleCl9XG4gICAgICAgICAgICAgICAgY3NzPXsodGhlbWU6IFRoZW1lKSA9PiBkcm9wZG93bk9wdGlvblN0eWxlcyh0aGVtZSwgaXNTZWxlY3RlZCl9XG4gICAgICAgICAgICAgICAgey4uLihkYXRhVWllTmFtZSAmJiB7XG4gICAgICAgICAgICAgICAgICAnZGF0YS11aWUtbmFtZSc6IGBvcHRpb24tJHtkYXRhVWllTmFtZX1gLFxuICAgICAgICAgICAgICAgICAgJ2RhdGEtdWllLXZhbHVlJzogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cblxuICAgICAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgY3NzPXsodGhlbWU6IFRoZW1lKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpc1NlbGVjdGVkID8gdGhlbWUuZ2VuZXJhbC5jb2xvciA6IHRoZW1lLklucHV0LmxhYmVsQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHshaGFzRXJyb3IgJiYgaGVscGVyVGV4dCAmJiAoXG4gICAgICAgIDxwIGNzcz17KHRoZW1lOiBUaGVtZSkgPT4gKHtmb250U2l6ZTogJzEycHgnLCBmb250V2VpZ2h0OiA0MDAsIGNvbG9yOiB0aGVtZS5JbnB1dC5sYWJlbENvbG9yLCBtYXJnaW5Ub3A6IDh9KX0+XG4gICAgICAgICAge2hlbHBlclRleHR9XG4gICAgICAgIDwvcD5cbiAgICAgICl9XG5cbiAgICAgIHtlcnJvcn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0= */",
|
|
161
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
var Select = function Select(_ref2) {
|
|
165
|
-
var id = _ref2.id,
|
|
166
|
-
label = _ref2.label,
|
|
167
|
-
error = _ref2.error,
|
|
168
|
-
helperText = _ref2.helperText,
|
|
169
|
-
_ref2$options = _ref2.options,
|
|
170
|
-
options = _ref2$options === void 0 ? [] : _ref2$options,
|
|
171
|
-
_ref2$value = _ref2.value,
|
|
172
|
-
value = _ref2$value === void 0 ? null : _ref2$value,
|
|
173
|
-
onChange = _ref2.onChange,
|
|
174
|
-
required = _ref2.required,
|
|
175
|
-
markInvalid = _ref2.markInvalid,
|
|
176
|
-
dataUieName = _ref2.dataUieName,
|
|
177
|
-
_ref2$wrapperCSS = _ref2.wrapperCSS,
|
|
178
|
-
wrapperCSS = _ref2$wrapperCSS === void 0 ? {} : _ref2$wrapperCSS,
|
|
179
|
-
props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
|
|
180
|
-
var currentOptionIdx = options.findIndex(function (option) {
|
|
181
|
-
return option.value === (value === null || value === void 0 ? void 0 : value.value);
|
|
182
|
-
});
|
|
183
|
-
var selectedOption = currentOptionIdx === -1 ? null : currentOptionIdx;
|
|
184
|
-
var selectContainerRef = (0, _react2.useRef)(null);
|
|
185
|
-
var listRef = (0, _react2.useRef)(null);
|
|
186
|
-
|
|
187
|
-
var _useState = (0, _react2.useState)(false),
|
|
188
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
189
|
-
isDropdownOpen = _useState2[0],
|
|
190
|
-
setIsDropdownOpen = _useState2[1];
|
|
191
|
-
|
|
192
|
-
var hasSelectedOption = selectedOption !== null;
|
|
50
|
+
var theme = (0, _react.useTheme)();
|
|
193
51
|
var hasError = !!error;
|
|
194
|
-
|
|
195
|
-
var scrollToCurrentOption = function scrollToCurrentOption(idx) {
|
|
196
|
-
if (listRef.current) {
|
|
197
|
-
var listSelectedOption = listRef.current.children[idx];
|
|
198
|
-
var getYPosition = listSelectedOption && listSelectedOption.offsetTop;
|
|
199
|
-
listRef.current.scroll({
|
|
200
|
-
top: getYPosition !== null && getYPosition !== void 0 ? getYPosition : 0,
|
|
201
|
-
behavior: 'smooth'
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
var onToggleDropdown = function onToggleDropdown() {
|
|
207
|
-
return setIsDropdownOpen(function (prevState) {
|
|
208
|
-
return !prevState;
|
|
209
|
-
});
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
var onOptionSelect = function onOptionSelect(idx) {
|
|
213
|
-
onChange(options[idx].value);
|
|
214
|
-
scrollToCurrentOption(idx);
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
var onOptionChange = function onOptionChange(idx) {
|
|
218
|
-
onOptionSelect(idx);
|
|
219
|
-
setIsDropdownOpen(false);
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
var handleListKeyDown = function handleListKeyDown(e) {
|
|
223
|
-
switch (e.key) {
|
|
224
|
-
case 'Escape':
|
|
225
|
-
e.preventDefault();
|
|
226
|
-
setIsDropdownOpen(false);
|
|
227
|
-
break;
|
|
228
|
-
|
|
229
|
-
case 'ArrowUp':
|
|
230
|
-
case 'ArrowLeft':
|
|
231
|
-
if (!isDropdownOpen) {
|
|
232
|
-
setIsDropdownOpen(true);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
e.preventDefault();
|
|
236
|
-
onOptionSelect(selectedOption - 1 >= 0 ? selectedOption - 1 : options.length - 1);
|
|
237
|
-
break;
|
|
238
|
-
|
|
239
|
-
case 'ArrowDown':
|
|
240
|
-
case 'ArrowRight':
|
|
241
|
-
if (!isDropdownOpen) {
|
|
242
|
-
setIsDropdownOpen(true);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
e.preventDefault();
|
|
246
|
-
|
|
247
|
-
if (selectedOption === null) {
|
|
248
|
-
onOptionSelect(0);
|
|
249
|
-
} else {
|
|
250
|
-
onOptionSelect(selectedOption === options.length - 1 ? 0 : selectedOption + 1);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
break;
|
|
254
|
-
|
|
255
|
-
default:
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
var handleKeyDown = function handleKeyDown(index) {
|
|
261
|
-
return function (e) {
|
|
262
|
-
switch (e.key) {
|
|
263
|
-
case ' ':
|
|
264
|
-
case 'SpaceBar':
|
|
265
|
-
case 'Enter':
|
|
266
|
-
e.preventDefault();
|
|
267
|
-
onOptionChange(index);
|
|
268
|
-
break;
|
|
269
|
-
|
|
270
|
-
default:
|
|
271
|
-
break;
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
};
|
|
275
|
-
|
|
276
|
-
var handleOutsideClick = function handleOutsideClick(event) {
|
|
277
|
-
if (selectContainerRef.current && !selectContainerRef.current.contains(event.target)) {
|
|
278
|
-
setIsDropdownOpen(false);
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
|
|
282
|
-
(0, _react2.useEffect)(function () {
|
|
283
|
-
window.addEventListener('click', handleOutsideClick);
|
|
284
|
-
return function () {
|
|
285
|
-
window.removeEventListener('click', handleOutsideClick);
|
|
286
|
-
};
|
|
287
|
-
}, []);
|
|
288
52
|
return (0, _react.jsx)("div", {
|
|
289
53
|
css: function css(theme) {
|
|
290
54
|
return _objectSpread({
|
|
@@ -295,69 +59,28 @@ var Select = function Select(_ref2) {
|
|
|
295
59
|
}
|
|
296
60
|
}, wrapperCSS);
|
|
297
61
|
},
|
|
298
|
-
"data-uie-name": dataUieName
|
|
299
|
-
ref: selectContainerRef
|
|
62
|
+
"data-uie-name": dataUieName
|
|
300
63
|
}, label && (0, _react.jsx)(_InputLabel["default"], {
|
|
301
64
|
htmlFor: id,
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
}, label), (0, _react.jsx)("
|
|
305
|
-
css: _ref3
|
|
306
|
-
}, (0, _react.jsx)("button", (0, _extends2["default"])({
|
|
307
|
-
type: "button",
|
|
308
|
-
"aria-activedescendant": hasSelectedOption ? value.label : '',
|
|
309
|
-
"aria-expanded": isDropdownOpen,
|
|
310
|
-
"aria-haspopup": "listbox",
|
|
311
|
-
"aria-labelledby": id,
|
|
65
|
+
markInvalid: markInvalid,
|
|
66
|
+
isRequired: required
|
|
67
|
+
}, label), (0, _react.jsx)(_reactSelect["default"], (0, _extends2["default"])({
|
|
312
68
|
id: id,
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
css: function css(theme) {
|
|
329
|
-
return dropdownStyles(theme, isDropdownOpen);
|
|
330
|
-
}
|
|
331
|
-
}, dataUieName && {
|
|
332
|
-
'data-uie-name': "dropdown-".concat(dataUieName)
|
|
333
|
-
}), options.map(function (option, index) {
|
|
334
|
-
var isSelected = currentOptionIdx == index;
|
|
335
|
-
return (0, _react.jsx)("li", (0, _extends2["default"])({
|
|
336
|
-
key: option.value,
|
|
337
|
-
id: option.value.toString(),
|
|
338
|
-
role: "option",
|
|
339
|
-
"aria-selected": isSelected,
|
|
340
|
-
tabIndex: 0,
|
|
341
|
-
onKeyDown: handleKeyDown(index),
|
|
342
|
-
onClick: function onClick() {
|
|
343
|
-
return onOptionChange(index);
|
|
344
|
-
},
|
|
345
|
-
css: function css(theme) {
|
|
346
|
-
return dropdownOptionStyles(theme, isSelected);
|
|
347
|
-
}
|
|
348
|
-
}, dataUieName && {
|
|
349
|
-
'data-uie-name': "option-".concat(dataUieName),
|
|
350
|
-
'data-uie-value': option.value
|
|
351
|
-
}), option.label, option.description && (0, _react.jsx)("p", {
|
|
352
|
-
css: function css(theme) {
|
|
353
|
-
return {
|
|
354
|
-
marginBottom: 0,
|
|
355
|
-
fontSize: '14px',
|
|
356
|
-
color: isSelected ? theme.general.color : theme.Input.labelColor
|
|
357
|
-
};
|
|
358
|
-
}
|
|
359
|
-
}, option.description));
|
|
360
|
-
}))), !hasError && helperText && (0, _react.jsx)("p", {
|
|
69
|
+
styles: (0, _SelectStyles.customStyles)(theme, markInvalid),
|
|
70
|
+
components: {
|
|
71
|
+
DropdownIndicator: _SelectComponents.DropdownIndicator,
|
|
72
|
+
Option: (0, _SelectComponents.CustomOption)(dataUieName),
|
|
73
|
+
Menu: (0, _SelectComponents.Menu)(dataUieName),
|
|
74
|
+
ValueContainer: _SelectComponents.ValueContainer,
|
|
75
|
+
IndicatorsContainer: _SelectComponents.IndicatorsContainer
|
|
76
|
+
},
|
|
77
|
+
hideSelectedOptions: false,
|
|
78
|
+
isSearchable: false,
|
|
79
|
+
isClearable: false,
|
|
80
|
+
closeMenuOnSelect: !isMulti,
|
|
81
|
+
isMulti: isMulti,
|
|
82
|
+
options: options
|
|
83
|
+
}, props)), !hasError && helperText && (0, _react.jsx)("p", {
|
|
361
84
|
css: function css(theme) {
|
|
362
85
|
return {
|
|
363
86
|
fontSize: '12px',
|
package/src/Form/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Select.tsx"],"names":["ArrowDown","selectStyle","theme","disabled","markInvalid","props","error","color","textShadow","Select","disabledColor","appearance","boxShadow","general","dangerColor","borderColor","cursor","fontSize","fontWeight","paddingRight","textAlign","textOverflow","overflow","whiteSpace","marginBottom","primaryColor","fill","Input","placeholderColor","position","top","right","dropdownStyles","isDropdownOpen","height","visibility","margin","padding","borderRadius","border","left","width","maxHeight","overflowY","zIndex","dropdownOptionStyles","isSelected","background","backgroundColor","listStyle","lineHeight","letterSpacing","contrastTextColor","borderBottom","borderTop","filterSelectProps","placeholderText","id","label","helperText","options","value","onChange","required","dataUieName","wrapperCSS","currentOptionIdx","findIndex","option","selectedOption","selectContainerRef","listRef","setIsDropdownOpen","hasSelectedOption","hasError","scrollToCurrentOption","idx","current","listSelectedOption","children","getYPosition","offsetTop","scroll","behavior","onToggleDropdown","prevState","onOptionSelect","onOptionChange","handleListKeyDown","e","key","preventDefault","length","handleKeyDown","index","handleOutsideClick","event","contains","target","window","addEventListener","removeEventListener","map","toString","description","labelColor","marginTop"],"mappings":"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","sourcesContent":["/*\n * Wire\n * Copyright (C) 2018 Wire Swiss GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see http://www.gnu.org/licenses/.\n *\n */\n\n/** @jsx jsx */\nimport {CSSObject, jsx} from '@emotion/react';\n\nimport type {Theme} from '../Layout';\nimport {filterProps} from '../util';\nimport {inputStyle} from './Input';\nimport React, {ReactElement, useEffect, useRef, useState} from 'react';\nimport InputLabel from './InputLabel';\n\nexport type SelectOption = {\n value: string | number;\n label: string;\n description?: string;\n};\n\nexport interface SelectProps<T extends SelectOption = SelectOption> {\n id: string;\n onChange: (selectedOption: T['value']) => void;\n dataUieName: string;\n options: T[];\n value?: T | null;\n helperText?: string;\n label?: string;\n disabled?: boolean;\n required?: boolean;\n markInvalid?: boolean;\n error?: ReactElement;\n wrapperCSS?: CSSObject;\n}\n\nconst ArrowDown = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M7.99963 12.5711L15.6565 4.91421L14.2423 3.5L7.99963 9.74264L1.75699 3.5L0.342773 4.91421L7.99963 12.5711Z\" />\n </svg>\n);\n\nexport const selectStyle: <T>(theme: Theme, props, error?: boolean) => CSSObject = (\n theme,\n {disabled = false, markInvalid, ...props},\n error = false,\n) => ({\n ...inputStyle(theme, props),\n '&:-moz-focusring': {\n color: 'transparent',\n textShadow: '0 0 0 #000',\n },\n '&:disabled': {\n color: theme.Select.disabledColor,\n },\n appearance: 'none',\n boxShadow: markInvalid ? `0 0 0 1px ${theme.general.dangerColor}` : `0 0 0 1px ${theme.Select.borderColor}`,\n cursor: disabled ? 'normal' : 'pointer',\n fontSize: '16px',\n fontWeight: 300,\n paddingRight: '30px',\n textAlign: 'left',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n marginBottom: error && '8px',\n '&:invalid, option:first-of-type': {\n color: theme.general.dangerColor,\n },\n ...(!disabled && {\n '&:hover': {\n boxShadow: `0 0 0 1px ${theme.Select.borderColor}`,\n },\n '&:focus, &:active': {\n boxShadow: `0 0 0 1px ${theme.general.primaryColor}`,\n },\n }),\n '& > svg': {\n fill: disabled ? theme.Input.placeholderColor : theme.general.color,\n position: 'absolute',\n top: '1rem',\n right: '1rem',\n },\n});\n\nconst dropdownStyles = (theme: Theme, isDropdownOpen: boolean): CSSObject => ({\n height: isDropdownOpen ? 'auto' : 0,\n visibility: isDropdownOpen ? 'visible' : 'hidden',\n margin: '3px 0 0',\n padding: 0,\n borderRadius: '10px',\n border: `1px solid ${theme.general.primaryColor}`,\n position: 'absolute',\n top: '100%',\n left: 0,\n width: '100%',\n maxHeight: '240px',\n overflowY: 'auto',\n zIndex: 9,\n});\n\nconst dropdownOptionStyles = (theme: Theme, isSelected: boolean): CSSObject => ({\n background: isSelected ? theme.general.primaryColor : theme.general.backgroundColor,\n listStyle: 'none',\n padding: '10px 20px 14px',\n cursor: 'pointer',\n fontSize: '16px',\n fontWeight: 300,\n lineHeight: '24px',\n letterSpacing: '0.05px',\n color: isSelected ? theme.Select.contrastTextColor : theme.general.color,\n '&:first-of-type': {\n borderRadius: '10px 10px 0 0',\n },\n '&:last-of-type': {\n borderRadius: '0 0 10px 10px',\n },\n '&:not(:last-of-type)': {\n borderBottom: `1px solid ${theme.Select.borderColor}`,\n },\n '&:not(:first-of-type)': {\n borderTop: `1px solid ${theme.Select.borderColor}`,\n },\n '&:hover, &:active, &:focus': {\n background: theme.general.primaryColor,\n borderColor: theme.general.primaryColor,\n color: theme.Select.contrastTextColor,\n },\n});\n\nconst filterSelectProps = props => filterProps(props, ['markInvalid']);\n\nconst placeholderText = '- Please select -';\n\nexport const Select = <T extends SelectOption = SelectOption>({\n id,\n label,\n error,\n helperText,\n options = [],\n value = null,\n onChange,\n required,\n markInvalid,\n dataUieName,\n wrapperCSS = {},\n ...props\n}: SelectProps<T>) => {\n const currentOptionIdx = options.findIndex(option => option.value === value?.value);\n const selectedOption = currentOptionIdx === -1 ? null : currentOptionIdx;\n\n const selectContainerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n const hasSelectedOption = selectedOption !== null;\n const hasError = !!error;\n\n const scrollToCurrentOption = (idx: number) => {\n if (listRef.current) {\n const listSelectedOption = listRef.current.children[idx] as HTMLLIElement;\n const getYPosition = listSelectedOption && listSelectedOption.offsetTop;\n\n listRef.current.scroll({\n top: getYPosition ?? 0,\n behavior: 'smooth',\n });\n }\n };\n\n const onToggleDropdown = () => setIsDropdownOpen(prevState => !prevState);\n\n const onOptionSelect = (idx: number) => {\n onChange(options[idx].value);\n scrollToCurrentOption(idx);\n };\n\n const onOptionChange = (idx: number) => {\n onOptionSelect(idx);\n setIsDropdownOpen(false);\n };\n\n const handleListKeyDown = e => {\n switch (e.key) {\n case 'Escape':\n e.preventDefault();\n setIsDropdownOpen(false);\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n if (!isDropdownOpen) {\n setIsDropdownOpen(true);\n }\n\n e.preventDefault();\n onOptionSelect(selectedOption - 1 >= 0 ? selectedOption - 1 : options.length - 1);\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n if (!isDropdownOpen) {\n setIsDropdownOpen(true);\n }\n\n e.preventDefault();\n if (selectedOption === null) {\n onOptionSelect(0);\n } else {\n onOptionSelect(selectedOption === options.length - 1 ? 0 : selectedOption + 1);\n }\n break;\n default:\n break;\n }\n };\n\n const handleKeyDown = index => e => {\n switch (e.key) {\n case ' ':\n case 'SpaceBar':\n case 'Enter':\n e.preventDefault();\n onOptionChange(index);\n break;\n default:\n break;\n }\n };\n\n const handleOutsideClick = (event: MouseEvent) => {\n if (selectContainerRef.current && !selectContainerRef.current.contains(event.target as Node)) {\n setIsDropdownOpen(false);\n }\n };\n\n useEffect(() => {\n window.addEventListener('click', handleOutsideClick);\n\n return () => {\n window.removeEventListener('click', handleOutsideClick);\n };\n }, []);\n\n return (\n <div\n css={(theme: Theme) => ({\n marginBottom: markInvalid ? '2px' : '20px',\n width: '100%',\n '&:focus-within label': {\n color: theme.general.primaryColor,\n },\n ...wrapperCSS,\n })}\n data-uie-name={dataUieName}\n ref={selectContainerRef}\n >\n {label && (\n <InputLabel htmlFor={id} isRequired={required} markInvalid={markInvalid}>\n {label}\n </InputLabel>\n )}\n\n <div css={{position: 'relative'}}>\n <button\n type=\"button\"\n aria-activedescendant={hasSelectedOption ? value.label : ''}\n aria-expanded={isDropdownOpen}\n aria-haspopup=\"listbox\"\n aria-labelledby={id}\n id={id}\n onClick={onToggleDropdown}\n onKeyDown={handleListKeyDown}\n css={(theme: Theme) => selectStyle(theme, props, hasError)}\n {...filterSelectProps(props)}\n data-uie-name={dataUieName}\n {...(hasSelectedOption && {\n 'data-value': value.value,\n })}\n >\n {hasSelectedOption ? value.label : placeholderText}\n {ArrowDown}\n </button>\n\n <ul\n ref={listRef}\n role=\"listbox\"\n aria-labelledby={id}\n tabIndex={-1}\n onKeyDown={handleListKeyDown}\n css={(theme: Theme) => dropdownStyles(theme, isDropdownOpen)}\n {...(dataUieName && {\n 'data-uie-name': `dropdown-${dataUieName}`,\n })}\n >\n {options.map((option, index) => {\n const isSelected = currentOptionIdx == index;\n\n return (\n <li\n key={option.value}\n id={option.value.toString()}\n role=\"option\"\n aria-selected={isSelected}\n tabIndex={0}\n onKeyDown={handleKeyDown(index)}\n onClick={() => onOptionChange(index)}\n css={(theme: Theme) => dropdownOptionStyles(theme, isSelected)}\n {...(dataUieName && {\n 'data-uie-name': `option-${dataUieName}`,\n 'data-uie-value': option.value,\n })}\n >\n {option.label}\n\n {option.description && (\n <p\n css={(theme: Theme) => ({\n marginBottom: 0,\n fontSize: '14px',\n color: isSelected ? theme.general.color : theme.Input.labelColor,\n })}\n >\n {option.description}\n </p>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n\n {!hasError && helperText && (\n <p css={(theme: Theme) => ({fontSize: '12px', fontWeight: 400, color: theme.Input.labelColor, marginTop: 8})}>\n {helperText}\n </p>\n )}\n\n {error}\n </div>\n );\n};\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["Select.tsx"],"names":["Select","id","label","error","helperText","dataUieName","options","wrapperCSS","markInvalid","required","isMulti","props","theme","hasError","marginBottom","width","color","general","primaryColor","DropdownIndicator","Option","Menu","ValueContainer","IndicatorsContainer","fontSize","fontWeight","Input","labelColor","marginTop"],"mappings":";;;;;;;;;;;;;;;AAoBA;;AAEA;;AACA;;AAIA;;AACA;;AAEA;;;;;;;;AAsBO,IAAMA,MAAuB,GAAG,SAA1BA,MAA0B,OAYjC;AAAA,MAXJC,EAWI,QAXJA,EAWI;AAAA,MAVJC,KAUI,QAVJA,KAUI;AAAA,MATJC,KASI,QATJA,KASI;AAAA,MARJC,UAQI,QARJA,UAQI;AAAA,MAPJC,WAOI,QAPJA,WAOI;AAAA,MANJC,OAMI,QANJA,OAMI;AAAA,6BALJC,UAKI;AAAA,MALJA,UAKI,gCALS,EAKT;AAAA,8BAJJC,WAII;AAAA,MAJJA,WAII,iCAJU,KAIV;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,KAGP;AAAA,0BAFJC,OAEI;AAAA,MAFJA,OAEI,6BAFM,KAEN;AAAA,MADDC,KACC;AACJ,MAAMC,KAAK,GAAG,sBAAd;AACA,MAAMC,QAAQ,GAAG,CAAC,CAACV,KAAnB;AAEA,SACE;AACE,IAAA,GAAG,EAAE,aAACS,KAAD;AAAA;AACHE,QAAAA,YAAY,EAAEN,WAAW,GAAG,KAAH,GAAW,MADjC;AAEHO,QAAAA,KAAK,EAAE,MAFJ;AAGH,gCAAwB;AACtBC,UAAAA,KAAK,EAAEJ,KAAK,CAACK,OAAN,CAAcC;AADC;AAHrB,SAMAX,UANA;AAAA,KADP;AASE,qBAAeF;AATjB,KAWGH,KAAK,IACJ,gBAAC,sBAAD;AAAY,IAAA,OAAO,EAAED,EAArB;AAAyB,IAAA,WAAW,EAAEO,WAAtC;AAAmD,IAAA,UAAU,EAAEC;AAA/D,KACGP,KADH,CAZJ,EAiBE,gBAAC,uBAAD;AACE,IAAA,EAAE,EAAED,EADN;AAEE,IAAA,MAAM,EAAE,gCAAaW,KAAb,EAA6BJ,WAA7B,CAFV;AAGE,IAAA,UAAU,EAAE;AACVW,MAAAA,iBAAiB,EAAjBA,mCADU;AAEVC,MAAAA,MAAM,EAAE,oCAAaf,WAAb,CAFE;AAGVgB,MAAAA,IAAI,EAAE,4BAAKhB,WAAL,CAHI;AAIViB,MAAAA,cAAc,EAAdA,gCAJU;AAKVC,MAAAA,mBAAmB,EAAnBA;AALU,KAHd;AAUE,IAAA,mBAAmB,EAAE,KAVvB;AAWE,IAAA,YAAY,EAAE,KAXhB;AAYE,IAAA,WAAW,EAAE,KAZf;AAaE,IAAA,iBAAiB,EAAE,CAACb,OAbtB;AAcE,IAAA,OAAO,EAAEA,OAdX;AAeE,IAAA,OAAO,EAAEJ;AAfX,KAgBMK,KAhBN,EAjBF,EAoCG,CAACE,QAAD,IAAaT,UAAb,IACC;AAAG,IAAA,GAAG,EAAE,aAACQ,KAAD;AAAA,aAAmB;AAACY,QAAAA,QAAQ,EAAE,MAAX;AAAmBC,QAAAA,UAAU,EAAE,GAA/B;AAAoCT,QAAAA,KAAK,EAAEJ,KAAK,CAACc,KAAN,CAAYC,UAAvD;AAAmEC,QAAAA,SAAS,EAAE;AAA9E,OAAnB;AAAA;AAAR,KACGxB,UADH,CArCJ,EA0CGD,KA1CH,CADF;AA8CD,CA9DM","sourcesContent":["/*\n * Wire\n * Copyright (C) 2018 Wire Swiss GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see http://www.gnu.org/licenses/.\n *\n */\n\n/** @jsx jsx */\nimport {CSSObject, jsx} from '@emotion/react';\nimport {useTheme} from '@emotion/react';\nimport React, {FC, ReactElement} from 'react';\nimport ReactSelect from 'react-select';\nimport {StylesConfig} from 'react-select/dist/declarations/src/styles';\nimport {StateManagerProps} from 'react-select/dist/declarations/src/useStateManager';\n\nimport {customStyles} from './SelectStyles';\nimport {CustomOption, DropdownIndicator, IndicatorsContainer, Menu, ValueContainer} from './SelectComponents';\nimport type {Theme} from '../Layout';\nimport InputLabel from './InputLabel';\n\nexport type Option = {\n value: string | number;\n label: string;\n description?: string;\n isDisabled?: boolean;\n};\n\ninterface SelectProps extends StateManagerProps<Option> {\n id: string;\n dataUieName: string;\n options: Option[];\n wrapperCSS?: CSSObject;\n label?: string;\n helperText?: string;\n error?: ReactElement;\n markInvalid?: boolean;\n required?: boolean;\n isMulti?: boolean;\n}\n\nexport const Select: FC<SelectProps> = ({\n id,\n label,\n error,\n helperText,\n dataUieName,\n options,\n wrapperCSS = {},\n markInvalid = false,\n required = false,\n isMulti = false,\n ...props\n}) => {\n const theme = useTheme();\n const hasError = !!error;\n\n return (\n <div\n css={(theme: Theme) => ({\n marginBottom: markInvalid ? '2px' : '20px',\n width: '100%',\n '&:focus-within label': {\n color: theme.general.primaryColor,\n },\n ...wrapperCSS,\n })}\n data-uie-name={dataUieName}\n >\n {label && (\n <InputLabel htmlFor={id} markInvalid={markInvalid} isRequired={required}>\n {label}\n </InputLabel>\n )}\n\n <ReactSelect\n id={id}\n styles={customStyles(theme as Theme, markInvalid) as StylesConfig}\n components={{\n DropdownIndicator,\n Option: CustomOption(dataUieName),\n Menu: Menu(dataUieName),\n ValueContainer,\n IndicatorsContainer,\n }}\n hideSelectedOptions={false}\n isSearchable={false}\n isClearable={false}\n closeMenuOnSelect={!isMulti}\n isMulti={isMulti}\n options={options}\n {...props}\n />\n\n {!hasError && helperText && (\n <p css={(theme: Theme) => ({fontSize: '12px', fontWeight: 400, color: theme.Input.labelColor, marginTop: 8})}>\n {helperText}\n </p>\n )}\n\n {error}\n </div>\n );\n};\n"],"file":"Select.js"}
|
package/src/Form/Select.md
CHANGED
|
@@ -1,34 +1,37 @@
|
|
|
1
1
|
Demo:
|
|
2
2
|
|
|
3
3
|
```js
|
|
4
|
-
import {
|
|
5
|
-
import {Columns, Column, ErrorMessage, Select} from '@wireapp/react-ui-kit';
|
|
4
|
+
import {Container, Columns, Column, ErrorMessage, Select} from '@wireapp/react-ui-kit';
|
|
6
5
|
|
|
7
|
-
const
|
|
8
|
-
{value: '1', label: 'Option 1'},
|
|
9
|
-
{value: '2', label: 'Option 2'},
|
|
10
|
-
{value: '3', label: 'Option 3'},
|
|
11
|
-
{value: '4', label: 'Option 4'},
|
|
6
|
+
const selectOptions = [
|
|
7
|
+
{value: '1', label: 'Option 1 long long long long name long name to trunckate this test - should work'},
|
|
8
|
+
{value: '2', label: 'Option 2 longest name'},
|
|
9
|
+
{value: '3', label: 'Option 3', description: 'Custom description for select option'},
|
|
10
|
+
{value: '4', label: 'Option 4', isDisabled: true},
|
|
12
11
|
{value: '5', label: 'Option 5'},
|
|
13
12
|
{value: '6', label: 'Option 6'},
|
|
14
13
|
];
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
const [secondSelectOption, setSecondSelectOption] = useState(null);
|
|
18
|
-
const [thirdSelectOption, setThirdSelectOption] = useState(null);
|
|
19
|
-
|
|
20
|
-
<Fragment>
|
|
15
|
+
<Container>
|
|
21
16
|
<Columns>
|
|
22
17
|
<Column>Select</Column>
|
|
23
18
|
|
|
19
|
+
<Column>
|
|
20
|
+
<Select label="Select" id="firstSelect" options={selectOptions} dataUieName="select" />
|
|
21
|
+
</Column>
|
|
22
|
+
</Columns>
|
|
23
|
+
|
|
24
|
+
<Columns>
|
|
25
|
+
<Column>MultiSelect</Column>
|
|
26
|
+
|
|
24
27
|
<Column>
|
|
25
28
|
<Select
|
|
26
29
|
label="Select"
|
|
27
|
-
id="
|
|
28
|
-
options={
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
id="firstMultiSelect"
|
|
31
|
+
options={selectOptions}
|
|
32
|
+
defaultValue={[selectOptions[0], selectOptions[1]]}
|
|
33
|
+
dataUieName="firstMultipleSelect"
|
|
34
|
+
isMulti
|
|
32
35
|
/>
|
|
33
36
|
</Column>
|
|
34
37
|
</Columns>
|
|
@@ -38,10 +41,10 @@ const [thirdSelectOption, setThirdSelectOption] = useState(null);
|
|
|
38
41
|
|
|
39
42
|
<Column>
|
|
40
43
|
<Select
|
|
41
|
-
|
|
44
|
+
isDisabled
|
|
42
45
|
label="Disabled select"
|
|
43
46
|
id="disabledSelect"
|
|
44
|
-
options={
|
|
47
|
+
options={selectOptions}
|
|
45
48
|
onChange={selectedOption => console.log('Selected option', selectedOption)}
|
|
46
49
|
dataUieName="disabled-select"
|
|
47
50
|
/>
|
|
@@ -56,9 +59,7 @@ const [thirdSelectOption, setThirdSelectOption] = useState(null);
|
|
|
56
59
|
label="Required select"
|
|
57
60
|
required
|
|
58
61
|
id="requiredSelect"
|
|
59
|
-
options={
|
|
60
|
-
value={secondSelectOption ? options.find(option => option.value === secondSelectOption) : null}
|
|
61
|
-
onChange={setSecondSelectOption}
|
|
62
|
+
options={selectOptions}
|
|
62
63
|
dataUieName="required-select"
|
|
63
64
|
/>
|
|
64
65
|
</Column>
|
|
@@ -74,12 +75,10 @@ const [thirdSelectOption, setThirdSelectOption] = useState(null);
|
|
|
74
75
|
id="invalidSelect"
|
|
75
76
|
required
|
|
76
77
|
error={<ErrorMessage>Error message</ErrorMessage>}
|
|
77
|
-
options={
|
|
78
|
-
value={thirdSelectOption ? options.find(option => option.value === thirdSelectOption) : null}
|
|
79
|
-
onChange={setThirdSelectOption}
|
|
78
|
+
options={selectOptions}
|
|
80
79
|
dataUieName="invalid-select"
|
|
81
80
|
/>
|
|
82
81
|
</Column>
|
|
83
82
|
</Columns>
|
|
84
|
-
</
|
|
83
|
+
</Container>;
|
|
85
84
|
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"SelectComponents.d.js"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import { OptionProps, ValueContainerProps } from 'react-select';
|
|
4
|
+
import { MenuProps } from 'react-select/dist/declarations/src/components/Menu';
|
|
5
|
+
import { IndicatorsContainerProps } from 'react-select/dist/declarations/src/components/containers';
|
|
6
|
+
import { Option } from './Select';
|
|
7
|
+
export declare const DropdownIndicator: (props: any) => jsx.JSX.Element;
|
|
8
|
+
export declare const CustomOption: (dataUieName: string) => (props: OptionProps<Option>) => jsx.JSX.Element;
|
|
9
|
+
export declare const Menu: (dataUieName: string) => (props: MenuProps) => jsx.JSX.Element;
|
|
10
|
+
export declare const renderValue: (value: any) => any;
|
|
11
|
+
export declare const ValueContainer: ({ children, ...restProps }: ValueContainerProps<Option>) => jsx.JSX.Element;
|
|
12
|
+
export declare const IndicatorsContainer: ({ children, ...restProps }: IndicatorsContainerProps<Option>) => jsx.JSX.Element;
|