@hyphen/hyphen-components 2.15.6 → 2.16.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/dist/components/SelectInput/SelectInput.d.ts +32 -6
- package/dist/components/SelectInput/SelectInput.stories.d.ts +2 -0
- package/dist/hyphen-components.cjs.development.js +54 -47
- package/dist/hyphen-components.cjs.development.js.map +1 -1
- package/dist/hyphen-components.cjs.production.min.js +1 -1
- package/dist/hyphen-components.cjs.production.min.js.map +1 -1
- package/dist/hyphen-components.esm.js +54 -47
- package/dist/hyphen-components.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/SelectInput/SelectInput.mdx +12 -0
- package/src/components/SelectInput/SelectInput.stories.tsx +86 -0
- package/src/components/SelectInput/SelectInput.test.tsx +32 -1
- package/src/components/SelectInput/SelectInput.tsx +74 -33
|
@@ -14,6 +14,8 @@ import FocusLock from 'react-focus-lock';
|
|
|
14
14
|
import { RemoveScroll } from 'react-remove-scroll';
|
|
15
15
|
import { getIn } from 'formik';
|
|
16
16
|
import Select, { components } from 'react-select';
|
|
17
|
+
import AsyncCreatableSelect from 'react-select/async-creatable';
|
|
18
|
+
import AsyncSelect from 'react-select/async';
|
|
17
19
|
import CreatableSelect from 'react-select/creatable';
|
|
18
20
|
import { v4 } from 'uuid';
|
|
19
21
|
|
|
@@ -2219,48 +2221,50 @@ var FormikRadioGroup = function FormikRadioGroup(_ref) {
|
|
|
2219
2221
|
|
|
2220
2222
|
var styles$e = {"react-select-icon":"SelectInput-module_react-select-icon__PvocB","size-sm":"SelectInput-module_size-sm__PKB-J","size-md":"SelectInput-module_size-md__n9Fj8","size-lg":"SelectInput-module_size-lg__LQ-uG","error":"SelectInput-module_error__Avf98","size-sm-tablet":"SelectInput-module_size-sm-tablet__2Dg01","size-md-tablet":"SelectInput-module_size-md-tablet__-iOSg","size-lg-tablet":"SelectInput-module_size-lg-tablet__9xmuJ","size-sm-desktop":"SelectInput-module_size-sm-desktop__tOWI4","size-md-desktop":"SelectInput-module_size-md-desktop__vo-UC","size-lg-desktop":"SelectInput-module_size-lg-desktop__nxQdj","size-sm-hd":"SelectInput-module_size-sm-hd__qamTH","size-md-hd":"SelectInput-module_size-md-hd__Cf8hk","size-lg-hd":"SelectInput-module_size-lg-hd__E4-mZ","disabled":"SelectInput-module_disabled__4ezAy","select-input-label":"SelectInput-module_select-input-label__eqEYa"};
|
|
2221
2223
|
|
|
2222
|
-
var _excluded$k = ["id", "label", "onChange", "options", "value", "autoFocus", "className", "error", "helpText", "hideLabel", "isClearable", "isCreatable", "isDisabled", "isMulti", "isRequired", "menuPortalTarget", "name", "onFocus", "onBlur", "placeholder", "requiredIndicator", "size"];
|
|
2223
|
-
|
|
2224
|
-
var
|
|
2225
|
-
var id =
|
|
2226
|
-
label =
|
|
2227
|
-
onChange =
|
|
2228
|
-
options =
|
|
2229
|
-
value =
|
|
2230
|
-
|
|
2231
|
-
autoFocus =
|
|
2232
|
-
|
|
2233
|
-
className =
|
|
2234
|
-
|
|
2235
|
-
error =
|
|
2236
|
-
helpText =
|
|
2237
|
-
|
|
2238
|
-
hideLabel =
|
|
2239
|
-
|
|
2240
|
-
isClearable =
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2224
|
+
var _excluded$k = ["id", "label", "onChange", "options", "value", "autoFocus", "className", "error", "helpText", "hideLabel", "isClearable", "isAsync", "isCreatable", "isDisabled", "isMulti", "isRequired", "menuPortalTarget", "name", "onFocus", "onBlur", "placeholder", "requiredIndicator", "size"];
|
|
2225
|
+
function SelectInput(props) {
|
|
2226
|
+
var _ref, _classNames;
|
|
2227
|
+
var id = props.id,
|
|
2228
|
+
label = props.label,
|
|
2229
|
+
onChange = props.onChange,
|
|
2230
|
+
options = props.options,
|
|
2231
|
+
value = props.value,
|
|
2232
|
+
_props$autoFocus = props.autoFocus,
|
|
2233
|
+
autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
|
|
2234
|
+
_props$className = props.className,
|
|
2235
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
2236
|
+
_props$error = props.error,
|
|
2237
|
+
error = _props$error === void 0 ? false : _props$error,
|
|
2238
|
+
helpText = props.helpText,
|
|
2239
|
+
_props$hideLabel = props.hideLabel,
|
|
2240
|
+
hideLabel = _props$hideLabel === void 0 ? false : _props$hideLabel,
|
|
2241
|
+
_props$isClearable = props.isClearable,
|
|
2242
|
+
isClearable = _props$isClearable === void 0 ? false : _props$isClearable,
|
|
2243
|
+
_props$isAsync = props.isAsync,
|
|
2244
|
+
isAsync = _props$isAsync === void 0 ? false : _props$isAsync,
|
|
2245
|
+
_props$isCreatable = props.isCreatable,
|
|
2246
|
+
isCreatable = _props$isCreatable === void 0 ? false : _props$isCreatable,
|
|
2247
|
+
_props$isDisabled = props.isDisabled,
|
|
2248
|
+
isDisabled = _props$isDisabled === void 0 ? false : _props$isDisabled,
|
|
2249
|
+
_props$isMulti = props.isMulti,
|
|
2250
|
+
isMulti = _props$isMulti === void 0 ? false : _props$isMulti,
|
|
2251
|
+
_props$isRequired = props.isRequired,
|
|
2252
|
+
isRequired = _props$isRequired === void 0 ? false : _props$isRequired,
|
|
2253
|
+
_props$menuPortalTarg = props.menuPortalTarget,
|
|
2254
|
+
menuPortalTarget = _props$menuPortalTarg === void 0 ? null : _props$menuPortalTarg,
|
|
2255
|
+
_props$name = props.name,
|
|
2256
|
+
name = _props$name === void 0 ? '' : _props$name,
|
|
2257
|
+
_props$onFocus = props.onFocus,
|
|
2258
|
+
onFocus = _props$onFocus === void 0 ? null : _props$onFocus,
|
|
2259
|
+
_props$onBlur = props.onBlur,
|
|
2260
|
+
onBlur = _props$onBlur === void 0 ? null : _props$onBlur,
|
|
2261
|
+
_props$placeholder = props.placeholder,
|
|
2262
|
+
placeholder = _props$placeholder === void 0 ? undefined : _props$placeholder,
|
|
2263
|
+
_props$requiredIndica = props.requiredIndicator,
|
|
2264
|
+
requiredIndicator = _props$requiredIndica === void 0 ? ' *' : _props$requiredIndica,
|
|
2265
|
+
_props$size = props.size,
|
|
2266
|
+
size = _props$size === void 0 ? 'md' : _props$size,
|
|
2267
|
+
restProps = _objectWithoutPropertiesLoose(props, _excluded$k);
|
|
2264
2268
|
var handleChange = function handleChange(values) {
|
|
2265
2269
|
var simulatedEventPayloadType = {
|
|
2266
2270
|
target: {
|
|
@@ -2279,7 +2283,7 @@ var SelectInput = function SelectInput(_ref) {
|
|
|
2279
2283
|
var responsiveClasses = generateResponsiveClasses('size', size);
|
|
2280
2284
|
var wrapperClasses = classNames.apply(void 0, ['hyphen-components__variables__form-control', 'select-input-wrapper', className].concat(responsiveClasses.map(function (c) {
|
|
2281
2285
|
return styles$e[c];
|
|
2282
|
-
}), [(
|
|
2286
|
+
}), [(_ref = {}, _ref[styles$e.disabled] = isDisabled, _ref)]));
|
|
2283
2287
|
var inputClasses = classNames('react-select', (_classNames = {}, _classNames[styles$e.error] = error, _classNames));
|
|
2284
2288
|
var labelProps = {
|
|
2285
2289
|
inputId: id,
|
|
@@ -2294,11 +2298,15 @@ var SelectInput = function SelectInput(_ref) {
|
|
|
2294
2298
|
name: "remove"
|
|
2295
2299
|
}));
|
|
2296
2300
|
};
|
|
2297
|
-
var Component = isCreatable ? CreatableSelect : Select;
|
|
2301
|
+
var Component = isCreatable && isAsync ? AsyncCreatableSelect : isCreatable ? CreatableSelect : isAsync ? AsyncSelect : Select;
|
|
2298
2302
|
return React.createElement(Box, {
|
|
2299
2303
|
width: "100%",
|
|
2300
2304
|
className: wrapperClasses
|
|
2301
|
-
}, label && !hideLabel && React.createElement(FormLabel, _extends({}, labelProps), label), React.createElement(Component, _extends({}, restProps, {
|
|
2305
|
+
}, label && !hideLabel && React.createElement(FormLabel, _extends({}, labelProps), label), React.createElement(Component, _extends({}, restProps, isAsync ? {
|
|
2306
|
+
loadOptions: options
|
|
2307
|
+
} : {
|
|
2308
|
+
options: options
|
|
2309
|
+
}, {
|
|
2302
2310
|
inputId: id,
|
|
2303
2311
|
"aria-label": label,
|
|
2304
2312
|
components: {
|
|
@@ -2314,7 +2322,6 @@ var SelectInput = function SelectInput(_ref) {
|
|
|
2314
2322
|
menuPortalTarget: menuPortalTarget,
|
|
2315
2323
|
name: name,
|
|
2316
2324
|
autoFocus: autoFocus,
|
|
2317
|
-
options: options,
|
|
2318
2325
|
onChange: handleChange,
|
|
2319
2326
|
onFocus: handleFocus,
|
|
2320
2327
|
onBlur: handleBlur,
|
|
@@ -2327,7 +2334,7 @@ var SelectInput = function SelectInput(_ref) {
|
|
|
2327
2334
|
},
|
|
2328
2335
|
value: value
|
|
2329
2336
|
})), error && typeof error !== 'boolean' && React.createElement(InputValidationMessage, null, error));
|
|
2330
|
-
}
|
|
2337
|
+
}
|
|
2331
2338
|
|
|
2332
2339
|
var _excluded$j = ["field", "form", "onChange", "id", "label", "options", "error"];
|
|
2333
2340
|
var FormikSelectInput = function FormikSelectInput(_ref) {
|