@atlaskit/react-select 0.0.2
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 +9 -0
- package/LICENSE.md +11 -0
- package/README.md +10 -0
- package/async/package.json +15 -0
- package/base/package.json +15 -0
- package/creatable/package.json +15 -0
- package/dist/cjs/accessibility/helpers.js +34 -0
- package/dist/cjs/accessibility/index.js +74 -0
- package/dist/cjs/async-creatable.js +27 -0
- package/dist/cjs/async.js +30 -0
- package/dist/cjs/builtins.js +18 -0
- package/dist/cjs/components/containers.js +100 -0
- package/dist/cjs/components/control.js +67 -0
- package/dist/cjs/components/group.js +79 -0
- package/dist/cjs/components/index.js +53 -0
- package/dist/cjs/components/indicators.js +214 -0
- package/dist/cjs/components/input.js +93 -0
- package/dist/cjs/components/internal/a11y-text.js +34 -0
- package/dist/cjs/components/internal/dummy-input.js +43 -0
- package/dist/cjs/components/internal/index.js +34 -0
- package/dist/cjs/components/internal/required-input.js +43 -0
- package/dist/cjs/components/internal/scroll-manager.js +57 -0
- package/dist/cjs/components/internal/use-scroll-capture.js +132 -0
- package/dist/cjs/components/internal/use-scroll-lock.js +149 -0
- package/dist/cjs/components/live-region.js +153 -0
- package/dist/cjs/components/menu.js +464 -0
- package/dist/cjs/components/multi-value.js +129 -0
- package/dist/cjs/components/option.js +62 -0
- package/dist/cjs/components/placeholder.js +39 -0
- package/dist/cjs/components/single-value.js +46 -0
- package/dist/cjs/creatable.js +30 -0
- package/dist/cjs/diacritics.js +274 -0
- package/dist/cjs/filters.js +50 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/nonce-provider.js +30 -0
- package/dist/cjs/select.js +1803 -0
- package/dist/cjs/state-manager.js +31 -0
- package/dist/cjs/styles.js +66 -0
- package/dist/cjs/theme.js +42 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/use-async.js +156 -0
- package/dist/cjs/use-creatable.js +114 -0
- package/dist/cjs/use-state-manager.js +83 -0
- package/dist/cjs/utils.js +357 -0
- package/dist/es2019/accessibility/helpers.js +24 -0
- package/dist/es2019/accessibility/index.js +72 -0
- package/dist/es2019/async-creatable.js +17 -0
- package/dist/es2019/async.js +16 -0
- package/dist/es2019/builtins.js +4 -0
- package/dist/es2019/components/containers.js +100 -0
- package/dist/es2019/components/control.js +62 -0
- package/dist/es2019/components/group.js +74 -0
- package/dist/es2019/components/index.js +41 -0
- package/dist/es2019/components/indicators.js +211 -0
- package/dist/es2019/components/input.js +88 -0
- package/dist/es2019/components/internal/a11y-text.js +25 -0
- package/dist/es2019/components/internal/dummy-input.js +36 -0
- package/dist/es2019/components/internal/index.js +4 -0
- package/dist/es2019/components/internal/required-input.js +35 -0
- package/dist/es2019/components/internal/scroll-manager.js +49 -0
- package/dist/es2019/components/internal/use-scroll-capture.js +128 -0
- package/dist/es2019/components/internal/use-scroll-lock.js +143 -0
- package/dist/es2019/components/live-region.js +151 -0
- package/dist/es2019/components/menu.js +466 -0
- package/dist/es2019/components/multi-value.js +134 -0
- package/dist/es2019/components/option.js +57 -0
- package/dist/es2019/components/placeholder.js +34 -0
- package/dist/es2019/components/single-value.js +41 -0
- package/dist/es2019/creatable.js +15 -0
- package/dist/es2019/diacritics.js +264 -0
- package/dist/es2019/filters.js +36 -0
- package/dist/es2019/index.js +8 -0
- package/dist/es2019/nonce-provider.js +19 -0
- package/dist/es2019/select.js +1766 -0
- package/dist/es2019/state-manager.js +22 -0
- package/dist/es2019/styles.js +56 -0
- package/dist/es2019/theme.js +36 -0
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/use-async.js +117 -0
- package/dist/es2019/use-creatable.js +81 -0
- package/dist/es2019/use-state-manager.js +60 -0
- package/dist/es2019/utils.js +309 -0
- package/dist/esm/accessibility/helpers.js +24 -0
- package/dist/esm/accessibility/index.js +68 -0
- package/dist/esm/async-creatable.js +17 -0
- package/dist/esm/async.js +16 -0
- package/dist/esm/builtins.js +12 -0
- package/dist/esm/components/containers.js +96 -0
- package/dist/esm/components/control.js +62 -0
- package/dist/esm/components/group.js +74 -0
- package/dist/esm/components/index.js +43 -0
- package/dist/esm/components/indicators.js +209 -0
- package/dist/esm/components/input.js +88 -0
- package/dist/esm/components/internal/a11y-text.js +27 -0
- package/dist/esm/components/internal/dummy-input.js +37 -0
- package/dist/esm/components/internal/index.js +4 -0
- package/dist/esm/components/internal/required-input.js +36 -0
- package/dist/esm/components/internal/scroll-manager.js +49 -0
- package/dist/esm/components/internal/use-scroll-capture.js +126 -0
- package/dist/esm/components/internal/use-scroll-lock.js +143 -0
- package/dist/esm/components/live-region.js +148 -0
- package/dist/esm/components/menu.js +460 -0
- package/dist/esm/components/multi-value.js +122 -0
- package/dist/esm/components/option.js +57 -0
- package/dist/esm/components/placeholder.js +34 -0
- package/dist/esm/components/single-value.js +41 -0
- package/dist/esm/creatable.js +15 -0
- package/dist/esm/diacritics.js +268 -0
- package/dist/esm/filters.js +43 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/nonce-provider.js +20 -0
- package/dist/esm/select.js +1794 -0
- package/dist/esm/state-manager.js +22 -0
- package/dist/esm/styles.js +58 -0
- package/dist/esm/theme.js +36 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/use-async.js +149 -0
- package/dist/esm/use-creatable.js +107 -0
- package/dist/esm/use-state-manager.js +76 -0
- package/dist/esm/utils.js +328 -0
- package/dist/types/accessibility/helpers.d.ts +5 -0
- package/dist/types/accessibility/index.d.ts +125 -0
- package/dist/types/async-creatable.d.ts +10 -0
- package/dist/types/async.d.ts +9 -0
- package/dist/types/builtins.d.ts +5 -0
- package/dist/types/components/containers.d.ts +50 -0
- package/dist/types/components/control.d.ts +33 -0
- package/dist/types/components/group.d.ts +53 -0
- package/dist/types/components/index.d.ts +73 -0
- package/dist/types/components/indicators.d.ts +72 -0
- package/dist/types/components/input.d.ts +33 -0
- package/dist/types/components/internal/a11y-text.d.ts +8 -0
- package/dist/types/components/internal/dummy-input.d.ts +9 -0
- package/dist/types/components/internal/index.d.ts +4 -0
- package/dist/types/components/internal/required-input.d.ts +10 -0
- package/dist/types/components/internal/scroll-manager.d.ts +17 -0
- package/dist/types/components/internal/use-scroll-capture.d.ts +12 -0
- package/dist/types/components/internal/use-scroll-lock.d.ts +9 -0
- package/dist/types/components/live-region.d.ts +24 -0
- package/dist/types/components/menu.d.ts +130 -0
- package/dist/types/components/multi-value.d.ts +47 -0
- package/dist/types/components/option.d.ts +49 -0
- package/dist/types/components/placeholder.d.ts +22 -0
- package/dist/types/components/single-value.d.ts +28 -0
- package/dist/types/creatable.d.ts +10 -0
- package/dist/types/diacritics.d.ts +1 -0
- package/dist/types/filters.d.ts +15 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/nonce-provider.d.ts +8 -0
- package/dist/types/select.d.ts +616 -0
- package/dist/types/state-manager.d.ts +17 -0
- package/dist/types/styles.d.ts +68 -0
- package/dist/types/theme.d.ts +27 -0
- package/dist/types/types.d.ts +134 -0
- package/dist/types/use-async.d.ts +31 -0
- package/dist/types/use-creatable.d.ts +46 -0
- package/dist/types/use-state-manager.d.ts +15 -0
- package/dist/types/utils.d.ts +44 -0
- package/dist/types-ts4.5/accessibility/helpers.d.ts +5 -0
- package/dist/types-ts4.5/accessibility/index.d.ts +125 -0
- package/dist/types-ts4.5/async-creatable.d.ts +10 -0
- package/dist/types-ts4.5/async.d.ts +9 -0
- package/dist/types-ts4.5/builtins.d.ts +5 -0
- package/dist/types-ts4.5/components/containers.d.ts +50 -0
- package/dist/types-ts4.5/components/control.d.ts +33 -0
- package/dist/types-ts4.5/components/group.d.ts +53 -0
- package/dist/types-ts4.5/components/index.d.ts +73 -0
- package/dist/types-ts4.5/components/indicators.d.ts +72 -0
- package/dist/types-ts4.5/components/input.d.ts +33 -0
- package/dist/types-ts4.5/components/internal/a11y-text.d.ts +8 -0
- package/dist/types-ts4.5/components/internal/dummy-input.d.ts +9 -0
- package/dist/types-ts4.5/components/internal/index.d.ts +4 -0
- package/dist/types-ts4.5/components/internal/required-input.d.ts +10 -0
- package/dist/types-ts4.5/components/internal/scroll-manager.d.ts +17 -0
- package/dist/types-ts4.5/components/internal/use-scroll-capture.d.ts +12 -0
- package/dist/types-ts4.5/components/internal/use-scroll-lock.d.ts +9 -0
- package/dist/types-ts4.5/components/live-region.d.ts +24 -0
- package/dist/types-ts4.5/components/menu.d.ts +130 -0
- package/dist/types-ts4.5/components/multi-value.d.ts +47 -0
- package/dist/types-ts4.5/components/option.d.ts +49 -0
- package/dist/types-ts4.5/components/placeholder.d.ts +22 -0
- package/dist/types-ts4.5/components/single-value.d.ts +28 -0
- package/dist/types-ts4.5/creatable.d.ts +10 -0
- package/dist/types-ts4.5/diacritics.d.ts +1 -0
- package/dist/types-ts4.5/filters.d.ts +15 -0
- package/dist/types-ts4.5/index.d.ts +28 -0
- package/dist/types-ts4.5/nonce-provider.d.ts +8 -0
- package/dist/types-ts4.5/select.d.ts +616 -0
- package/dist/types-ts4.5/state-manager.d.ts +17 -0
- package/dist/types-ts4.5/styles.d.ts +68 -0
- package/dist/types-ts4.5/theme.d.ts +27 -0
- package/dist/types-ts4.5/types.d.ts +134 -0
- package/dist/types-ts4.5/use-async.d.ts +31 -0
- package/dist/types-ts4.5/use-creatable.d.ts +46 -0
- package/dist/types-ts4.5/use-state-manager.d.ts +15 -0
- package/dist/types-ts4.5/utils.d.ts +44 -0
- package/package.json +83 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _select = _interopRequireDefault(require("./select"));
|
|
12
|
+
var _useStateManager = _interopRequireDefault(require("./use-state-manager"));
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
/**
|
|
16
|
+
* __StateManagedSelect__
|
|
17
|
+
*
|
|
18
|
+
* A state managed select {description}.
|
|
19
|
+
*
|
|
20
|
+
* - [Examples](https://atlassian.design/components/{packageName}/examples)
|
|
21
|
+
* - [Code](https://atlassian.design/components/{packageName}/code)
|
|
22
|
+
* - [Usage](https://atlassian.design/components/{packageName}/usage)
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
var StateManagedSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
26
|
+
var baseSelectProps = (0, _useStateManager.default)(props);
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_select.default, (0, _extends2.default)({
|
|
28
|
+
ref: ref
|
|
29
|
+
}, baseSelectProps));
|
|
30
|
+
});
|
|
31
|
+
var _default = exports.default = StateManagedSelect;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.defaultStyles = void 0;
|
|
8
|
+
exports.mergeStyles = mergeStyles;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _containers = require("./components/containers");
|
|
11
|
+
var _control = require("./components/control");
|
|
12
|
+
var _group = require("./components/group");
|
|
13
|
+
var _indicators = require("./components/indicators");
|
|
14
|
+
var _input = require("./components/input");
|
|
15
|
+
var _menu = require("./components/menu");
|
|
16
|
+
var _multiValue = require("./components/multi-value");
|
|
17
|
+
var _option = require("./components/option");
|
|
18
|
+
var _placeholder = require("./components/placeholder");
|
|
19
|
+
var _singleValue = require("./components/single-value");
|
|
20
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
21
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22
|
+
var defaultStyles = exports.defaultStyles = {
|
|
23
|
+
clearIndicator: _indicators.clearIndicatorCSS,
|
|
24
|
+
container: _containers.containerCSS,
|
|
25
|
+
control: _control.css,
|
|
26
|
+
dropdownIndicator: _indicators.dropdownIndicatorCSS,
|
|
27
|
+
group: _group.groupCSS,
|
|
28
|
+
groupHeading: _group.groupHeadingCSS,
|
|
29
|
+
indicatorsContainer: _containers.indicatorsContainerCSS,
|
|
30
|
+
indicatorSeparator: _indicators.indicatorSeparatorCSS,
|
|
31
|
+
input: _input.inputCSS,
|
|
32
|
+
loadingIndicator: _indicators.loadingIndicatorCSS,
|
|
33
|
+
loadingMessage: _menu.loadingMessageCSS,
|
|
34
|
+
menu: _menu.menuCSS,
|
|
35
|
+
menuList: _menu.menuListCSS,
|
|
36
|
+
menuPortal: _menu.menuPortalCSS,
|
|
37
|
+
multiValue: _multiValue.multiValueCSS,
|
|
38
|
+
multiValueLabel: _multiValue.multiValueLabelCSS,
|
|
39
|
+
multiValueRemove: _multiValue.multiValueRemoveCSS,
|
|
40
|
+
noOptionsMessage: _menu.noOptionsMessageCSS,
|
|
41
|
+
option: _option.optionCSS,
|
|
42
|
+
placeholder: _placeholder.placeholderCSS,
|
|
43
|
+
singleValue: _singleValue.css,
|
|
44
|
+
valueContainer: _containers.valueContainerCSS
|
|
45
|
+
};
|
|
46
|
+
// Merge Utility
|
|
47
|
+
// Allows consumers to extend a base Select with additional styles
|
|
48
|
+
|
|
49
|
+
function mergeStyles(source) {
|
|
50
|
+
var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
51
|
+
// initialize with source styles
|
|
52
|
+
var styles = _objectSpread({}, source);
|
|
53
|
+
|
|
54
|
+
// massage in target styles
|
|
55
|
+
Object.keys(target).forEach(function (keyAsString) {
|
|
56
|
+
var key = keyAsString;
|
|
57
|
+
if (source[key]) {
|
|
58
|
+
styles[key] = function (rsCss, props) {
|
|
59
|
+
return target[key](source[key](rsCss, props), props);
|
|
60
|
+
};
|
|
61
|
+
} else {
|
|
62
|
+
styles[key] = target[key];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return styles;
|
|
66
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.spacing = exports.defaultTheme = exports.colors = void 0;
|
|
7
|
+
var colors = exports.colors = {
|
|
8
|
+
primary: '#2684FF',
|
|
9
|
+
primary75: '#4C9AFF',
|
|
10
|
+
primary50: '#B2D4FF',
|
|
11
|
+
primary25: '#DEEBFF',
|
|
12
|
+
danger: '#DE350B',
|
|
13
|
+
dangerLight: '#FFBDAD',
|
|
14
|
+
neutral0: 'hsl(0, 0%, 100%)',
|
|
15
|
+
neutral5: 'hsl(0, 0%, 95%)',
|
|
16
|
+
neutral10: 'hsl(0, 0%, 90%)',
|
|
17
|
+
neutral20: 'hsl(0, 0%, 80%)',
|
|
18
|
+
neutral30: 'hsl(0, 0%, 70%)',
|
|
19
|
+
neutral40: 'hsl(0, 0%, 60%)',
|
|
20
|
+
neutral50: 'hsl(0, 0%, 50%)',
|
|
21
|
+
neutral60: 'hsl(0, 0%, 40%)',
|
|
22
|
+
neutral70: 'hsl(0, 0%, 30%)',
|
|
23
|
+
neutral80: 'hsl(0, 0%, 20%)',
|
|
24
|
+
neutral90: 'hsl(0, 0%, 10%)'
|
|
25
|
+
};
|
|
26
|
+
var borderRadius = 4;
|
|
27
|
+
// Used to calculate consistent margin/padding on elements
|
|
28
|
+
var baseUnit = 4;
|
|
29
|
+
// The minimum height of the control
|
|
30
|
+
var controlHeight = 38;
|
|
31
|
+
// The amount of space between the control and menu */
|
|
32
|
+
var menuGutter = baseUnit * 2;
|
|
33
|
+
var spacing = exports.spacing = {
|
|
34
|
+
baseUnit: baseUnit,
|
|
35
|
+
controlHeight: controlHeight,
|
|
36
|
+
menuGutter: menuGutter
|
|
37
|
+
};
|
|
38
|
+
var defaultTheme = exports.defaultTheme = {
|
|
39
|
+
borderRadius: borderRadius,
|
|
40
|
+
colors: colors,
|
|
41
|
+
spacing: spacing
|
|
42
|
+
};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = useAsync;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _utils = require("./utils");
|
|
13
|
+
var _excluded = ["defaultOptions", "cacheOptions", "loadOptions", "options", "isLoading", "onInputChange", "filterOption"];
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
// TODO: Fill in the hook {description}.
|
|
17
|
+
/**
|
|
18
|
+
* {description}.
|
|
19
|
+
*/
|
|
20
|
+
function useAsync(_ref) {
|
|
21
|
+
var _ref$defaultOptions = _ref.defaultOptions,
|
|
22
|
+
propsDefaultOptions = _ref$defaultOptions === void 0 ? false : _ref$defaultOptions,
|
|
23
|
+
_ref$cacheOptions = _ref.cacheOptions,
|
|
24
|
+
cacheOptions = _ref$cacheOptions === void 0 ? false : _ref$cacheOptions,
|
|
25
|
+
propsLoadOptions = _ref.loadOptions,
|
|
26
|
+
propsOptions = _ref.options,
|
|
27
|
+
_ref$isLoading = _ref.isLoading,
|
|
28
|
+
propsIsLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
29
|
+
propsOnInputChange = _ref.onInputChange,
|
|
30
|
+
_ref$filterOption = _ref.filterOption,
|
|
31
|
+
filterOption = _ref$filterOption === void 0 ? null : _ref$filterOption,
|
|
32
|
+
restSelectProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
33
|
+
var propsInputValue = restSelectProps.inputValue;
|
|
34
|
+
var lastRequest = (0, _react.useRef)(undefined);
|
|
35
|
+
var mounted = (0, _react.useRef)(false);
|
|
36
|
+
var _useState = (0, _react.useState)(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined),
|
|
37
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
38
|
+
defaultOptions = _useState2[0],
|
|
39
|
+
setDefaultOptions = _useState2[1];
|
|
40
|
+
var _useState3 = (0, _react.useState)(typeof propsInputValue !== 'undefined' ? propsInputValue : ''),
|
|
41
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
42
|
+
stateInputValue = _useState4[0],
|
|
43
|
+
setStateInputValue = _useState4[1];
|
|
44
|
+
var _useState5 = (0, _react.useState)(propsDefaultOptions === true),
|
|
45
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
46
|
+
isLoading = _useState6[0],
|
|
47
|
+
setIsLoading = _useState6[1];
|
|
48
|
+
var _useState7 = (0, _react.useState)(undefined),
|
|
49
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
50
|
+
loadedInputValue = _useState8[0],
|
|
51
|
+
setLoadedInputValue = _useState8[1];
|
|
52
|
+
var _useState9 = (0, _react.useState)([]),
|
|
53
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
54
|
+
loadedOptions = _useState10[0],
|
|
55
|
+
setLoadedOptions = _useState10[1];
|
|
56
|
+
var _useState11 = (0, _react.useState)(false),
|
|
57
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
58
|
+
passEmptyOptions = _useState12[0],
|
|
59
|
+
setPassEmptyOptions = _useState12[1];
|
|
60
|
+
var _useState13 = (0, _react.useState)({}),
|
|
61
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
62
|
+
optionsCache = _useState14[0],
|
|
63
|
+
setOptionsCache = _useState14[1];
|
|
64
|
+
var _useState15 = (0, _react.useState)(undefined),
|
|
65
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
66
|
+
prevDefaultOptions = _useState16[0],
|
|
67
|
+
setPrevDefaultOptions = _useState16[1];
|
|
68
|
+
var _useState17 = (0, _react.useState)(undefined),
|
|
69
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
70
|
+
prevCacheOptions = _useState18[0],
|
|
71
|
+
setPrevCacheOptions = _useState18[1];
|
|
72
|
+
if (cacheOptions !== prevCacheOptions) {
|
|
73
|
+
setOptionsCache({});
|
|
74
|
+
setPrevCacheOptions(cacheOptions);
|
|
75
|
+
}
|
|
76
|
+
if (propsDefaultOptions !== prevDefaultOptions) {
|
|
77
|
+
setDefaultOptions(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined);
|
|
78
|
+
setPrevDefaultOptions(propsDefaultOptions);
|
|
79
|
+
}
|
|
80
|
+
(0, _react.useEffect)(function () {
|
|
81
|
+
mounted.current = true;
|
|
82
|
+
return function () {
|
|
83
|
+
mounted.current = false;
|
|
84
|
+
};
|
|
85
|
+
}, []);
|
|
86
|
+
var loadOptions = (0, _react.useCallback)(function (inputValue, callback) {
|
|
87
|
+
if (!propsLoadOptions) {
|
|
88
|
+
return callback();
|
|
89
|
+
}
|
|
90
|
+
var loader = propsLoadOptions(inputValue, callback);
|
|
91
|
+
if (loader && typeof loader.then === 'function') {
|
|
92
|
+
loader.then(callback, function () {
|
|
93
|
+
return callback();
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}, [propsLoadOptions]);
|
|
97
|
+
(0, _react.useEffect)(function () {
|
|
98
|
+
if (propsDefaultOptions === true) {
|
|
99
|
+
loadOptions(stateInputValue, function (options) {
|
|
100
|
+
if (!mounted.current) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
setDefaultOptions(options || []);
|
|
104
|
+
setIsLoading(!!lastRequest.current);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// NOTE: this effect is designed to only run when the component mounts,
|
|
108
|
+
// so we don't want to include any hook dependencies
|
|
109
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
110
|
+
}, []);
|
|
111
|
+
var onInputChange = (0, _react.useCallback)(function (newValue, actionMeta) {
|
|
112
|
+
var inputValue = (0, _utils.handleInputChange)(newValue, actionMeta, propsOnInputChange);
|
|
113
|
+
if (!inputValue) {
|
|
114
|
+
lastRequest.current = undefined;
|
|
115
|
+
setStateInputValue('');
|
|
116
|
+
setLoadedInputValue('');
|
|
117
|
+
setLoadedOptions([]);
|
|
118
|
+
setIsLoading(false);
|
|
119
|
+
setPassEmptyOptions(false);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (cacheOptions && optionsCache[inputValue]) {
|
|
123
|
+
setStateInputValue(inputValue);
|
|
124
|
+
setLoadedInputValue(inputValue);
|
|
125
|
+
setLoadedOptions(optionsCache[inputValue]);
|
|
126
|
+
setIsLoading(false);
|
|
127
|
+
setPassEmptyOptions(false);
|
|
128
|
+
} else {
|
|
129
|
+
var request = lastRequest.current = {};
|
|
130
|
+
setStateInputValue(inputValue);
|
|
131
|
+
setIsLoading(true);
|
|
132
|
+
setPassEmptyOptions(!loadedInputValue);
|
|
133
|
+
loadOptions(inputValue, function (options) {
|
|
134
|
+
if (!mounted) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (request !== lastRequest.current) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
lastRequest.current = undefined;
|
|
141
|
+
setIsLoading(false);
|
|
142
|
+
setLoadedInputValue(inputValue);
|
|
143
|
+
setLoadedOptions(options || []);
|
|
144
|
+
setPassEmptyOptions(false);
|
|
145
|
+
setOptionsCache(options ? _objectSpread(_objectSpread({}, optionsCache), {}, (0, _defineProperty2.default)({}, inputValue, options)) : optionsCache);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}, [cacheOptions, loadOptions, loadedInputValue, optionsCache, propsOnInputChange]);
|
|
149
|
+
var options = passEmptyOptions ? [] : stateInputValue && loadedInputValue ? loadedOptions : defaultOptions || [];
|
|
150
|
+
return _objectSpread(_objectSpread({}, restSelectProps), {}, {
|
|
151
|
+
options: options,
|
|
152
|
+
isLoading: isLoading || propsIsLoading,
|
|
153
|
+
onInputChange: onInputChange,
|
|
154
|
+
filterOption: filterOption
|
|
155
|
+
});
|
|
156
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = useCreatable;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _builtins = require("./builtins");
|
|
13
|
+
var _utils = require("./utils");
|
|
14
|
+
var _excluded = ["allowCreateWhileLoading", "createOptionPosition", "formatCreateLabel", "isValidNewOption", "getNewOptionData", "onCreateOption", "options", "onChange"];
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
var compareOption = function compareOption() {
|
|
18
|
+
var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
19
|
+
var option = arguments.length > 1 ? arguments[1] : undefined;
|
|
20
|
+
var accessors = arguments.length > 2 ? arguments[2] : undefined;
|
|
21
|
+
var candidate = String(inputValue).toLowerCase();
|
|
22
|
+
var optionValue = String(accessors.getOptionValue(option)).toLowerCase();
|
|
23
|
+
var optionLabel = String(accessors.getOptionLabel(option)).toLowerCase();
|
|
24
|
+
return optionValue === candidate || optionLabel === candidate;
|
|
25
|
+
};
|
|
26
|
+
var builtins = {
|
|
27
|
+
formatCreateLabel: function formatCreateLabel(inputValue) {
|
|
28
|
+
return "Create \"".concat(inputValue, "\"");
|
|
29
|
+
},
|
|
30
|
+
isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions, accessors) {
|
|
31
|
+
return !(!inputValue || selectValue.some(function (option) {
|
|
32
|
+
return compareOption(inputValue, option, accessors);
|
|
33
|
+
}) || selectOptions.some(function (option) {
|
|
34
|
+
return compareOption(inputValue, option, accessors);
|
|
35
|
+
}));
|
|
36
|
+
},
|
|
37
|
+
getNewOptionData: function getNewOptionData(inputValue, optionLabel) {
|
|
38
|
+
return {
|
|
39
|
+
label: optionLabel,
|
|
40
|
+
value: inputValue,
|
|
41
|
+
__isNew__: true
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// TODO: Fill in the hook {description}.
|
|
47
|
+
/**
|
|
48
|
+
* {description}.
|
|
49
|
+
*/
|
|
50
|
+
function useCreatable(_ref) {
|
|
51
|
+
var _ref$allowCreateWhile = _ref.allowCreateWhileLoading,
|
|
52
|
+
allowCreateWhileLoading = _ref$allowCreateWhile === void 0 ? false : _ref$allowCreateWhile,
|
|
53
|
+
_ref$createOptionPosi = _ref.createOptionPosition,
|
|
54
|
+
createOptionPosition = _ref$createOptionPosi === void 0 ? 'last' : _ref$createOptionPosi,
|
|
55
|
+
_ref$formatCreateLabe = _ref.formatCreateLabel,
|
|
56
|
+
formatCreateLabel = _ref$formatCreateLabe === void 0 ? builtins.formatCreateLabel : _ref$formatCreateLabe,
|
|
57
|
+
_ref$isValidNewOption = _ref.isValidNewOption,
|
|
58
|
+
isValidNewOption = _ref$isValidNewOption === void 0 ? builtins.isValidNewOption : _ref$isValidNewOption,
|
|
59
|
+
_ref$getNewOptionData = _ref.getNewOptionData,
|
|
60
|
+
getNewOptionData = _ref$getNewOptionData === void 0 ? builtins.getNewOptionData : _ref$getNewOptionData,
|
|
61
|
+
onCreateOption = _ref.onCreateOption,
|
|
62
|
+
_ref$options = _ref.options,
|
|
63
|
+
propsOptions = _ref$options === void 0 ? [] : _ref$options,
|
|
64
|
+
propsOnChange = _ref.onChange,
|
|
65
|
+
restSelectProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
66
|
+
var _restSelectProps$getO = restSelectProps.getOptionValue,
|
|
67
|
+
getOptionValue = _restSelectProps$getO === void 0 ? _builtins.getOptionValue : _restSelectProps$getO,
|
|
68
|
+
_restSelectProps$getO2 = restSelectProps.getOptionLabel,
|
|
69
|
+
getOptionLabel = _restSelectProps$getO2 === void 0 ? _builtins.getOptionLabel : _restSelectProps$getO2,
|
|
70
|
+
inputValue = restSelectProps.inputValue,
|
|
71
|
+
isLoading = restSelectProps.isLoading,
|
|
72
|
+
isMulti = restSelectProps.isMulti,
|
|
73
|
+
value = restSelectProps.value,
|
|
74
|
+
name = restSelectProps.name;
|
|
75
|
+
var newOption = (0, _react.useMemo)(function () {
|
|
76
|
+
return (
|
|
77
|
+
//@ts-ignore
|
|
78
|
+
isValidNewOption(inputValue, (0, _utils.cleanValue)(value), propsOptions, {
|
|
79
|
+
getOptionValue: getOptionValue,
|
|
80
|
+
getOptionLabel: getOptionLabel
|
|
81
|
+
}) ? getNewOptionData(inputValue, formatCreateLabel(inputValue)) : undefined
|
|
82
|
+
);
|
|
83
|
+
}, [formatCreateLabel, getNewOptionData, getOptionLabel, getOptionValue, inputValue, isValidNewOption, propsOptions, value]);
|
|
84
|
+
var options = (0, _react.useMemo)(function () {
|
|
85
|
+
return (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat((0, _toConsumableArray2.default)(propsOptions)) : [].concat((0, _toConsumableArray2.default)(propsOptions), [newOption]) : propsOptions;
|
|
86
|
+
}, [allowCreateWhileLoading, createOptionPosition, isLoading, newOption, propsOptions]);
|
|
87
|
+
var onChange = (0, _react.useCallback)(function (newValue, actionMeta) {
|
|
88
|
+
if (actionMeta.action !== 'select-option') {
|
|
89
|
+
return propsOnChange(newValue, actionMeta);
|
|
90
|
+
}
|
|
91
|
+
var valueArray = Array.isArray(newValue) ? newValue : [newValue];
|
|
92
|
+
if (valueArray[valueArray.length - 1] === newOption) {
|
|
93
|
+
if (onCreateOption) {
|
|
94
|
+
onCreateOption(inputValue);
|
|
95
|
+
} else {
|
|
96
|
+
var newOptionData = getNewOptionData(inputValue, inputValue);
|
|
97
|
+
var newActionMeta = {
|
|
98
|
+
action: 'create-option',
|
|
99
|
+
name: name,
|
|
100
|
+
option: newOptionData
|
|
101
|
+
};
|
|
102
|
+
propsOnChange(
|
|
103
|
+
//@ts-ignore
|
|
104
|
+
(0, _utils.valueTernary)(isMulti, [].concat((0, _toConsumableArray2.default)((0, _utils.cleanValue)(value)), [newOptionData]), newOptionData), newActionMeta);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
propsOnChange(newValue, actionMeta);
|
|
109
|
+
}, [getNewOptionData, inputValue, isMulti, name, newOption, onCreateOption, propsOnChange, value]);
|
|
110
|
+
return _objectSpread(_objectSpread({}, restSelectProps), {}, {
|
|
111
|
+
options: options,
|
|
112
|
+
onChange: onChange
|
|
113
|
+
});
|
|
114
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = useStateManager;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _excluded = ["defaultInputValue", "defaultMenuIsOpen", "defaultValue", "inputValue", "menuIsOpen", "onChange", "onInputChange", "onMenuClose", "onMenuOpen", "value"];
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
// TODO: Fill in the hook {description}.
|
|
16
|
+
/**
|
|
17
|
+
* {description}.
|
|
18
|
+
*/
|
|
19
|
+
function useStateManager(_ref) {
|
|
20
|
+
var _ref$defaultInputValu = _ref.defaultInputValue,
|
|
21
|
+
defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,
|
|
22
|
+
_ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,
|
|
23
|
+
defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,
|
|
24
|
+
_ref$defaultValue = _ref.defaultValue,
|
|
25
|
+
defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,
|
|
26
|
+
propsInputValue = _ref.inputValue,
|
|
27
|
+
propsMenuIsOpen = _ref.menuIsOpen,
|
|
28
|
+
propsOnChange = _ref.onChange,
|
|
29
|
+
propsOnInputChange = _ref.onInputChange,
|
|
30
|
+
propsOnMenuClose = _ref.onMenuClose,
|
|
31
|
+
propsOnMenuOpen = _ref.onMenuOpen,
|
|
32
|
+
propsValue = _ref.value,
|
|
33
|
+
restSelectProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
34
|
+
var _useState = (0, _react.useState)(propsInputValue !== undefined ? propsInputValue : defaultInputValue),
|
|
35
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
36
|
+
stateInputValue = _useState2[0],
|
|
37
|
+
setStateInputValue = _useState2[1];
|
|
38
|
+
var _useState3 = (0, _react.useState)(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),
|
|
39
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
40
|
+
stateMenuIsOpen = _useState4[0],
|
|
41
|
+
setStateMenuIsOpen = _useState4[1];
|
|
42
|
+
var _useState5 = (0, _react.useState)(propsValue !== undefined ? propsValue : defaultValue),
|
|
43
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
44
|
+
stateValue = _useState6[0],
|
|
45
|
+
setStateValue = _useState6[1];
|
|
46
|
+
var onChange = (0, _react.useCallback)(function (value, actionMeta) {
|
|
47
|
+
if (typeof propsOnChange === 'function') {
|
|
48
|
+
propsOnChange(value, actionMeta);
|
|
49
|
+
}
|
|
50
|
+
setStateValue(value);
|
|
51
|
+
}, [propsOnChange]);
|
|
52
|
+
var onInputChange = (0, _react.useCallback)(function (value, actionMeta) {
|
|
53
|
+
var newValue;
|
|
54
|
+
if (typeof propsOnInputChange === 'function') {
|
|
55
|
+
newValue = propsOnInputChange(value, actionMeta);
|
|
56
|
+
}
|
|
57
|
+
setStateInputValue(newValue !== undefined ? newValue : value);
|
|
58
|
+
}, [propsOnInputChange]);
|
|
59
|
+
var onMenuOpen = (0, _react.useCallback)(function () {
|
|
60
|
+
if (typeof propsOnMenuOpen === 'function') {
|
|
61
|
+
propsOnMenuOpen();
|
|
62
|
+
}
|
|
63
|
+
setStateMenuIsOpen(true);
|
|
64
|
+
}, [propsOnMenuOpen]);
|
|
65
|
+
var onMenuClose = (0, _react.useCallback)(function () {
|
|
66
|
+
if (typeof propsOnMenuClose === 'function') {
|
|
67
|
+
propsOnMenuClose();
|
|
68
|
+
}
|
|
69
|
+
setStateMenuIsOpen(false);
|
|
70
|
+
}, [propsOnMenuClose]);
|
|
71
|
+
var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;
|
|
72
|
+
var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;
|
|
73
|
+
var value = propsValue !== undefined ? propsValue : stateValue;
|
|
74
|
+
return _objectSpread(_objectSpread({}, restSelectProps), {}, {
|
|
75
|
+
inputValue: inputValue,
|
|
76
|
+
menuIsOpen: menuIsOpen,
|
|
77
|
+
onChange: onChange,
|
|
78
|
+
onInputChange: onInputChange,
|
|
79
|
+
onMenuClose: onMenuClose,
|
|
80
|
+
onMenuOpen: onMenuOpen,
|
|
81
|
+
value: value
|
|
82
|
+
});
|
|
83
|
+
}
|