@atlaskit/select 17.3.4 → 17.4.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 +6 -0
- package/dist/cjs/Select.js +1 -1
- package/dist/cjs/createSelect.js +62 -114
- package/dist/es2019/Select.js +1 -1
- package/dist/es2019/createSelect.js +56 -89
- package/dist/esm/Select.js +1 -1
- package/dist/esm/createSelect.js +63 -115
- package/dist/types/AsyncCreatableSelect.d.ts +3 -44
- package/dist/types/AsyncSelect.d.ts +3 -44
- package/dist/types/CreatableSelect.d.ts +3 -44
- package/dist/types/Select.d.ts +6 -88
- package/dist/types/components/indicators.d.ts +5 -4
- package/dist/types/createSelect.d.ts +6 -47
- package/dist/types/utils/grouped-options-announcement.d.ts +1 -1
- package/dist/types-ts4.5/AsyncCreatableSelect.d.ts +3 -44
- package/dist/types-ts4.5/AsyncSelect.d.ts +3 -44
- package/dist/types-ts4.5/CreatableSelect.d.ts +3 -44
- package/dist/types-ts4.5/Select.d.ts +6 -88
- package/dist/types-ts4.5/components/indicators.d.ts +5 -4
- package/dist/types-ts4.5/createSelect.d.ts +6 -47
- package/dist/types-ts4.5/utils/grouped-options-announcement.d.ts +1 -1
- package/package.json +4 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/select
|
|
2
2
|
|
|
3
|
+
## 17.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#86848](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/86848) [`fa9de32b502e`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/fa9de32b502e) - Convert AtlaskitSelect from react class component to function component
|
|
8
|
+
|
|
3
9
|
## 17.3.4
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/cjs/Select.js
CHANGED
|
@@ -9,7 +9,7 @@ var _reactSelect = _interopRequireDefault(require("react-select"));
|
|
|
9
9
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
10
10
|
var _createSelect = _interopRequireDefault(require("./createSelect"));
|
|
11
11
|
var packageName = "@atlaskit/select";
|
|
12
|
-
var packageVersion = "17.
|
|
12
|
+
var packageVersion = "17.4.0";
|
|
13
13
|
var SelectWithoutAnalytics = exports.SelectWithoutAnalytics = (0, _createSelect.default)(_reactSelect.default);
|
|
14
14
|
var createAndFireEventOnAtlaskit = (0, _analyticsNext.createAndFireEvent)('atlaskit');
|
|
15
15
|
var Select = (0, _analyticsNext.withAnalyticsContext)({
|
package/dist/cjs/createSelect.js
CHANGED
|
@@ -7,132 +7,80 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = createSelect;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
13
|
var _reactSelect = require("react-select");
|
|
20
|
-
var
|
|
21
|
-
var _reactFastCompare = _interopRequireDefault(require("react-fast-compare"));
|
|
14
|
+
var _mergeRefs = _interopRequireDefault(require("@atlaskit/ds-lib/merge-refs"));
|
|
22
15
|
var _inputAriaDescribedby = require("./components/input-aria-describedby");
|
|
23
16
|
var _components = require("./components");
|
|
24
17
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
25
18
|
var _groupedOptionsAnnouncement = require("./utils/grouped-options-announcement");
|
|
26
|
-
var _excluded = ["
|
|
19
|
+
var _excluded = ["appearance", "ariaLiveMessages", "components", "isInvalid", "onClickPreventDefault", "spacing", "styles", "tabSelectsValue", "validationState"];
|
|
27
20
|
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); }
|
|
28
21
|
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; }
|
|
29
22
|
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; }
|
|
30
23
|
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; }
|
|
31
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
32
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
33
24
|
function createSelect(WrappedComponent) {
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
}, {
|
|
74
|
-
key: "blur",
|
|
75
|
-
value: function blur() {
|
|
76
|
-
if (this.select) {
|
|
77
|
-
this.select.blur();
|
|
25
|
+
var AtlaskitSelect = /*#__PURE__*/(0, _react.forwardRef)(function AtlaskitSelect(props, forwardedRef) {
|
|
26
|
+
var appearance = props.appearance,
|
|
27
|
+
ariaLiveMessages = props.ariaLiveMessages,
|
|
28
|
+
componentsProp = props.components,
|
|
29
|
+
isInvalid = props.isInvalid,
|
|
30
|
+
_props$onClickPrevent = props.onClickPreventDefault,
|
|
31
|
+
onClickPreventDefault = _props$onClickPrevent === void 0 ? true : _props$onClickPrevent,
|
|
32
|
+
_props$spacing = props.spacing,
|
|
33
|
+
spacing = _props$spacing === void 0 ? 'default' : _props$spacing,
|
|
34
|
+
_props$styles = props.styles,
|
|
35
|
+
styles = _props$styles === void 0 ? {} : _props$styles,
|
|
36
|
+
_props$tabSelectsValu = props.tabSelectsValue,
|
|
37
|
+
tabSelectsValue = _props$tabSelectsValu === void 0 ? false : _props$tabSelectsValu,
|
|
38
|
+
_props$validationStat = props.validationState,
|
|
39
|
+
validationState = _props$validationStat === void 0 ? 'default' : _props$validationStat,
|
|
40
|
+
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
41
|
+
var internalSelectRef = (0, _react.useRef)(null);
|
|
42
|
+
var components = (0, _react.useMemo)(function () {
|
|
43
|
+
return _objectSpread({
|
|
44
|
+
ClearIndicator: _components.ClearIndicator,
|
|
45
|
+
DropdownIndicator: _components.DropdownIndicator,
|
|
46
|
+
LoadingIndicator: _components.LoadingIndicator,
|
|
47
|
+
MultiValueRemove: _components.MultiValueRemove,
|
|
48
|
+
IndicatorSeparator: _components.IndicatorSeparator,
|
|
49
|
+
Input: _inputAriaDescribedby.Input
|
|
50
|
+
}, componentsProp);
|
|
51
|
+
}, [componentsProp]);
|
|
52
|
+
var descriptionId = props['aria-describedby'];
|
|
53
|
+
var isSearchable = props.isSearchable;
|
|
54
|
+
(0, _react.useEffect)(function () {
|
|
55
|
+
if (!isSearchable && descriptionId) {
|
|
56
|
+
var _internalSelectRef$cu;
|
|
57
|
+
// when isSearchable is false, react-select will create its own dummy input instead of using ours,
|
|
58
|
+
// so we need to manually add the additional aria-describedby using ref.
|
|
59
|
+
var input = (_internalSelectRef$cu = internalSelectRef.current) === null || _internalSelectRef$cu === void 0 ? void 0 : _internalSelectRef$cu.inputRef;
|
|
60
|
+
var ariaDescribedby = input === null || input === void 0 ? void 0 : input.getAttribute('aria-describedby');
|
|
61
|
+
if (!(ariaDescribedby !== null && ariaDescribedby !== void 0 && ariaDescribedby.includes(descriptionId))) {
|
|
62
|
+
input === null || input === void 0 || input.setAttribute('aria-describedby', "".concat(ariaDescribedby, " ").concat(descriptionId));
|
|
78
63
|
}
|
|
79
64
|
}
|
|
80
|
-
},
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
isInvalid = _this$props.isInvalid,
|
|
102
|
-
spacing = _this$props.spacing,
|
|
103
|
-
isMulti = _this$props.isMulti,
|
|
104
|
-
appearance = _this$props.appearance,
|
|
105
|
-
ariaLiveMessages = _this$props.ariaLiveMessages,
|
|
106
|
-
props = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
|
|
107
|
-
var isCompact = spacing === 'compact';
|
|
108
|
-
|
|
109
|
-
// props must be spread first to stop `components` being overridden
|
|
110
|
-
return /*#__PURE__*/_react.default.createElement(WrappedComponent, (0, _extends2.default)({
|
|
111
|
-
ref: this.onSelectRef,
|
|
112
|
-
isMulti: isMulti,
|
|
113
|
-
"aria-live": "assertive",
|
|
114
|
-
ariaLiveMessages: (0, _groupedOptionsAnnouncement.isOptionsGrouped)(this.props.options) ? _objectSpread({
|
|
115
|
-
onFocus: _groupedOptionsAnnouncement.onFocus
|
|
116
|
-
}, ariaLiveMessages) : _objectSpread({}, ariaLiveMessages)
|
|
117
|
-
}, props, {
|
|
118
|
-
components: this.components,
|
|
119
|
-
styles: (0, _reactSelect.mergeStyles)((0, _styles.default)(
|
|
120
|
-
// This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
|
|
121
|
-
typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles)
|
|
122
|
-
}));
|
|
123
|
-
}
|
|
124
|
-
}]);
|
|
125
|
-
return AtlaskitSelect;
|
|
126
|
-
}(_react.Component), (0, _defineProperty2.default)(_class, "defaultProps", {
|
|
127
|
-
validationState: 'default',
|
|
128
|
-
// TODO: uncomment the next line when cleaning up validationState prop so it has a default value
|
|
129
|
-
// isInvalid: false,
|
|
130
|
-
spacing: 'default',
|
|
131
|
-
onClickPreventDefault: true,
|
|
132
|
-
tabSelectsValue: false,
|
|
133
|
-
components: {
|
|
134
|
-
Input: _inputAriaDescribedby.Input
|
|
135
|
-
},
|
|
136
|
-
styles: {}
|
|
137
|
-
}), _class;
|
|
65
|
+
}, [descriptionId, isSearchable]);
|
|
66
|
+
var isCompact = spacing === 'compact';
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement(WrappedComponent
|
|
68
|
+
// @ts-ignore - mergeRefs only supports HTMLElement
|
|
69
|
+
, (0, _extends2.default)({
|
|
70
|
+
ref: (0, _mergeRefs.default)([forwardedRef, internalSelectRef]),
|
|
71
|
+
"aria-live": "assertive",
|
|
72
|
+
ariaLiveMessages: (0, _groupedOptionsAnnouncement.isOptionsGrouped)(props.options) ? _objectSpread({
|
|
73
|
+
onFocus: _groupedOptionsAnnouncement.onFocus
|
|
74
|
+
}, ariaLiveMessages) : _objectSpread({}, ariaLiveMessages),
|
|
75
|
+
tabSelectsValue: tabSelectsValue,
|
|
76
|
+
onClickPreventDefault: onClickPreventDefault
|
|
77
|
+
}, restProps, {
|
|
78
|
+
components: components,
|
|
79
|
+
styles: (0, _reactSelect.mergeStyles)((0, _styles.default)(
|
|
80
|
+
// This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
|
|
81
|
+
typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, appearance || 'default'), styles)
|
|
82
|
+
}));
|
|
83
|
+
});
|
|
84
|
+
AtlaskitSelect.displayName = 'AtlaskitSelect';
|
|
85
|
+
return AtlaskitSelect;
|
|
138
86
|
}
|
package/dist/es2019/Select.js
CHANGED
|
@@ -2,7 +2,7 @@ import ReactSelect from 'react-select';
|
|
|
2
2
|
import { withAnalyticsEvents, withAnalyticsContext, createAndFireEvent } from '@atlaskit/analytics-next';
|
|
3
3
|
import createSelect from './createSelect';
|
|
4
4
|
const packageName = "@atlaskit/select";
|
|
5
|
-
const packageVersion = "17.
|
|
5
|
+
const packageVersion = "17.4.0";
|
|
6
6
|
export const SelectWithoutAnalytics = createSelect(ReactSelect);
|
|
7
7
|
const createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
|
|
8
8
|
const Select = withAnalyticsContext({
|
|
@@ -1,104 +1,71 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import
|
|
3
|
-
import React, { Component } from 'react';
|
|
2
|
+
import React, { useRef, useEffect, useMemo, forwardRef } from 'react';
|
|
4
3
|
import { mergeStyles } from 'react-select';
|
|
5
|
-
import
|
|
6
|
-
import isEqual from 'react-fast-compare';
|
|
4
|
+
import mergeRefs from '@atlaskit/ds-lib/merge-refs';
|
|
7
5
|
import { Input } from './components/input-aria-describedby';
|
|
8
6
|
import { ClearIndicator, DropdownIndicator, LoadingIndicator, MultiValueRemove, IndicatorSeparator } from './components';
|
|
9
7
|
import baseStyles from './styles';
|
|
10
8
|
import { onFocus, isOptionsGrouped } from './utils/grouped-options-announcement';
|
|
11
9
|
export default function createSelect(WrappedComponent) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
blur() {
|
|
44
|
-
if (this.select) {
|
|
45
|
-
this.select.blur();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
componentDidMount() {
|
|
49
|
-
const descriptionId = this.props['aria-describedby'];
|
|
50
|
-
if (!this.props.isSearchable && descriptionId) {
|
|
51
|
-
var _this$select;
|
|
10
|
+
const AtlaskitSelect = /*#__PURE__*/forwardRef(function AtlaskitSelect(props, forwardedRef) {
|
|
11
|
+
const {
|
|
12
|
+
appearance,
|
|
13
|
+
ariaLiveMessages,
|
|
14
|
+
components: componentsProp,
|
|
15
|
+
isInvalid,
|
|
16
|
+
// TODO: set to true when cleaning up validationState prop so it has a default value
|
|
17
|
+
onClickPreventDefault = true,
|
|
18
|
+
spacing = 'default',
|
|
19
|
+
styles = {},
|
|
20
|
+
tabSelectsValue = false,
|
|
21
|
+
validationState = 'default',
|
|
22
|
+
...restProps
|
|
23
|
+
} = props;
|
|
24
|
+
const internalSelectRef = useRef(null);
|
|
25
|
+
const components = useMemo(() => ({
|
|
26
|
+
ClearIndicator,
|
|
27
|
+
DropdownIndicator,
|
|
28
|
+
LoadingIndicator,
|
|
29
|
+
MultiValueRemove,
|
|
30
|
+
IndicatorSeparator,
|
|
31
|
+
Input,
|
|
32
|
+
...componentsProp
|
|
33
|
+
}), [componentsProp]);
|
|
34
|
+
const descriptionId = props['aria-describedby'];
|
|
35
|
+
const isSearchable = props.isSearchable;
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (!isSearchable && descriptionId) {
|
|
38
|
+
var _internalSelectRef$cu;
|
|
52
39
|
// when isSearchable is false, react-select will create its own dummy input instead of using ours,
|
|
53
40
|
// so we need to manually add the additional aria-describedby using ref.
|
|
54
|
-
const input = (
|
|
41
|
+
const input = (_internalSelectRef$cu = internalSelectRef.current) === null || _internalSelectRef$cu === void 0 ? void 0 : _internalSelectRef$cu.inputRef;
|
|
55
42
|
const ariaDescribedby = input === null || input === void 0 ? void 0 : input.getAttribute('aria-describedby');
|
|
56
43
|
if (!(ariaDescribedby !== null && ariaDescribedby !== void 0 && ariaDescribedby.includes(descriptionId))) {
|
|
57
44
|
input === null || input === void 0 ? void 0 : input.setAttribute('aria-describedby', `${ariaDescribedby} ${descriptionId}`);
|
|
58
45
|
}
|
|
59
46
|
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
ariaLiveMessages
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
}, props, {
|
|
86
|
-
components: this.components,
|
|
87
|
-
styles: mergeStyles(baseStyles(
|
|
88
|
-
// This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
|
|
89
|
-
typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles)
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
}, _defineProperty(_class, "defaultProps", {
|
|
93
|
-
validationState: 'default',
|
|
94
|
-
// TODO: uncomment the next line when cleaning up validationState prop so it has a default value
|
|
95
|
-
// isInvalid: false,
|
|
96
|
-
spacing: 'default',
|
|
97
|
-
onClickPreventDefault: true,
|
|
98
|
-
tabSelectsValue: false,
|
|
99
|
-
components: {
|
|
100
|
-
Input
|
|
101
|
-
},
|
|
102
|
-
styles: {}
|
|
103
|
-
}), _class;
|
|
47
|
+
}, [descriptionId, isSearchable]);
|
|
48
|
+
const isCompact = spacing === 'compact';
|
|
49
|
+
return /*#__PURE__*/React.createElement(WrappedComponent
|
|
50
|
+
// @ts-ignore - mergeRefs only supports HTMLElement
|
|
51
|
+
, _extends({
|
|
52
|
+
ref: mergeRefs([forwardedRef, internalSelectRef]),
|
|
53
|
+
"aria-live": "assertive",
|
|
54
|
+
ariaLiveMessages: isOptionsGrouped(props.options) ? {
|
|
55
|
+
onFocus,
|
|
56
|
+
...ariaLiveMessages
|
|
57
|
+
} : {
|
|
58
|
+
...ariaLiveMessages
|
|
59
|
+
},
|
|
60
|
+
tabSelectsValue: tabSelectsValue,
|
|
61
|
+
onClickPreventDefault: onClickPreventDefault
|
|
62
|
+
}, restProps, {
|
|
63
|
+
components: components,
|
|
64
|
+
styles: mergeStyles(baseStyles(
|
|
65
|
+
// This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
|
|
66
|
+
typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, appearance || 'default'), styles)
|
|
67
|
+
}));
|
|
68
|
+
});
|
|
69
|
+
AtlaskitSelect.displayName = 'AtlaskitSelect';
|
|
70
|
+
return AtlaskitSelect;
|
|
104
71
|
}
|
package/dist/esm/Select.js
CHANGED
|
@@ -2,7 +2,7 @@ import ReactSelect from 'react-select';
|
|
|
2
2
|
import { withAnalyticsEvents, withAnalyticsContext, createAndFireEvent } from '@atlaskit/analytics-next';
|
|
3
3
|
import createSelect from './createSelect';
|
|
4
4
|
var packageName = "@atlaskit/select";
|
|
5
|
-
var packageVersion = "17.
|
|
5
|
+
var packageVersion = "17.4.0";
|
|
6
6
|
export var SelectWithoutAnalytics = createSelect(ReactSelect);
|
|
7
7
|
var createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
|
|
8
8
|
var Select = withAnalyticsContext({
|
package/dist/esm/createSelect.js
CHANGED
|
@@ -1,128 +1,76 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
5
|
-
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
6
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
8
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
|
-
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["appearance", "ariaLiveMessages", "components", "isInvalid", "onClickPreventDefault", "spacing", "styles", "tabSelectsValue", "validationState"];
|
|
11
5
|
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; }
|
|
12
6
|
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) { _defineProperty(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; }
|
|
13
|
-
|
|
14
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
15
|
-
import React, { Component } from 'react';
|
|
7
|
+
import React, { useRef, useEffect, useMemo, forwardRef } from 'react';
|
|
16
8
|
import { mergeStyles } from 'react-select';
|
|
17
|
-
import
|
|
18
|
-
import isEqual from 'react-fast-compare';
|
|
9
|
+
import mergeRefs from '@atlaskit/ds-lib/merge-refs';
|
|
19
10
|
import { Input } from './components/input-aria-describedby';
|
|
20
11
|
import { ClearIndicator, DropdownIndicator, LoadingIndicator, MultiValueRemove, IndicatorSeparator } from './components';
|
|
21
12
|
import baseStyles from './styles';
|
|
22
13
|
import { onFocus, isOptionsGrouped } from './utils/grouped-options-announcement';
|
|
23
14
|
export default function createSelect(WrappedComponent) {
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
}, {
|
|
64
|
-
key: "blur",
|
|
65
|
-
value: function blur() {
|
|
66
|
-
if (this.select) {
|
|
67
|
-
this.select.blur();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}, {
|
|
71
|
-
key: "componentDidMount",
|
|
72
|
-
value: function componentDidMount() {
|
|
73
|
-
var descriptionId = this.props['aria-describedby'];
|
|
74
|
-
if (!this.props.isSearchable && descriptionId) {
|
|
75
|
-
var _this$select;
|
|
76
|
-
// when isSearchable is false, react-select will create its own dummy input instead of using ours,
|
|
77
|
-
// so we need to manually add the additional aria-describedby using ref.
|
|
78
|
-
var input = (_this$select = this.select) === null || _this$select === void 0 ? void 0 : _this$select.inputRef;
|
|
79
|
-
var ariaDescribedby = input === null || input === void 0 ? void 0 : input.getAttribute('aria-describedby');
|
|
80
|
-
if (!(ariaDescribedby !== null && ariaDescribedby !== void 0 && ariaDescribedby.includes(descriptionId))) {
|
|
81
|
-
input === null || input === void 0 || input.setAttribute('aria-describedby', "".concat(ariaDescribedby, " ").concat(descriptionId));
|
|
82
|
-
}
|
|
15
|
+
var AtlaskitSelect = /*#__PURE__*/forwardRef(function AtlaskitSelect(props, forwardedRef) {
|
|
16
|
+
var appearance = props.appearance,
|
|
17
|
+
ariaLiveMessages = props.ariaLiveMessages,
|
|
18
|
+
componentsProp = props.components,
|
|
19
|
+
isInvalid = props.isInvalid,
|
|
20
|
+
_props$onClickPrevent = props.onClickPreventDefault,
|
|
21
|
+
onClickPreventDefault = _props$onClickPrevent === void 0 ? true : _props$onClickPrevent,
|
|
22
|
+
_props$spacing = props.spacing,
|
|
23
|
+
spacing = _props$spacing === void 0 ? 'default' : _props$spacing,
|
|
24
|
+
_props$styles = props.styles,
|
|
25
|
+
styles = _props$styles === void 0 ? {} : _props$styles,
|
|
26
|
+
_props$tabSelectsValu = props.tabSelectsValue,
|
|
27
|
+
tabSelectsValue = _props$tabSelectsValu === void 0 ? false : _props$tabSelectsValu,
|
|
28
|
+
_props$validationStat = props.validationState,
|
|
29
|
+
validationState = _props$validationStat === void 0 ? 'default' : _props$validationStat,
|
|
30
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
31
|
+
var internalSelectRef = useRef(null);
|
|
32
|
+
var components = useMemo(function () {
|
|
33
|
+
return _objectSpread({
|
|
34
|
+
ClearIndicator: ClearIndicator,
|
|
35
|
+
DropdownIndicator: DropdownIndicator,
|
|
36
|
+
LoadingIndicator: LoadingIndicator,
|
|
37
|
+
MultiValueRemove: MultiValueRemove,
|
|
38
|
+
IndicatorSeparator: IndicatorSeparator,
|
|
39
|
+
Input: Input
|
|
40
|
+
}, componentsProp);
|
|
41
|
+
}, [componentsProp]);
|
|
42
|
+
var descriptionId = props['aria-describedby'];
|
|
43
|
+
var isSearchable = props.isSearchable;
|
|
44
|
+
useEffect(function () {
|
|
45
|
+
if (!isSearchable && descriptionId) {
|
|
46
|
+
var _internalSelectRef$cu;
|
|
47
|
+
// when isSearchable is false, react-select will create its own dummy input instead of using ours,
|
|
48
|
+
// so we need to manually add the additional aria-describedby using ref.
|
|
49
|
+
var input = (_internalSelectRef$cu = internalSelectRef.current) === null || _internalSelectRef$cu === void 0 ? void 0 : _internalSelectRef$cu.inputRef;
|
|
50
|
+
var ariaDescribedby = input === null || input === void 0 ? void 0 : input.getAttribute('aria-describedby');
|
|
51
|
+
if (!(ariaDescribedby !== null && ariaDescribedby !== void 0 && ariaDescribedby.includes(descriptionId))) {
|
|
52
|
+
input === null || input === void 0 || input.setAttribute('aria-describedby', "".concat(ariaDescribedby, " ").concat(descriptionId));
|
|
83
53
|
}
|
|
84
54
|
}
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}, ariaLiveMessages) : _objectSpread({}, ariaLiveMessages)
|
|
107
|
-
}, props, {
|
|
108
|
-
components: this.components,
|
|
109
|
-
styles: mergeStyles(baseStyles(
|
|
110
|
-
// This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
|
|
111
|
-
typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles)
|
|
112
|
-
}));
|
|
113
|
-
}
|
|
114
|
-
}]);
|
|
115
|
-
return AtlaskitSelect;
|
|
116
|
-
}(Component), _defineProperty(_class, "defaultProps", {
|
|
117
|
-
validationState: 'default',
|
|
118
|
-
// TODO: uncomment the next line when cleaning up validationState prop so it has a default value
|
|
119
|
-
// isInvalid: false,
|
|
120
|
-
spacing: 'default',
|
|
121
|
-
onClickPreventDefault: true,
|
|
122
|
-
tabSelectsValue: false,
|
|
123
|
-
components: {
|
|
124
|
-
Input: Input
|
|
125
|
-
},
|
|
126
|
-
styles: {}
|
|
127
|
-
}), _class;
|
|
55
|
+
}, [descriptionId, isSearchable]);
|
|
56
|
+
var isCompact = spacing === 'compact';
|
|
57
|
+
return /*#__PURE__*/React.createElement(WrappedComponent
|
|
58
|
+
// @ts-ignore - mergeRefs only supports HTMLElement
|
|
59
|
+
, _extends({
|
|
60
|
+
ref: mergeRefs([forwardedRef, internalSelectRef]),
|
|
61
|
+
"aria-live": "assertive",
|
|
62
|
+
ariaLiveMessages: isOptionsGrouped(props.options) ? _objectSpread({
|
|
63
|
+
onFocus: onFocus
|
|
64
|
+
}, ariaLiveMessages) : _objectSpread({}, ariaLiveMessages),
|
|
65
|
+
tabSelectsValue: tabSelectsValue,
|
|
66
|
+
onClickPreventDefault: onClickPreventDefault
|
|
67
|
+
}, restProps, {
|
|
68
|
+
components: components,
|
|
69
|
+
styles: mergeStyles(baseStyles(
|
|
70
|
+
// This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
|
|
71
|
+
typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, appearance || 'default'), styles)
|
|
72
|
+
}));
|
|
73
|
+
});
|
|
74
|
+
AtlaskitSelect.displayName = 'AtlaskitSelect';
|
|
75
|
+
return AtlaskitSelect;
|
|
128
76
|
}
|