@dhis2-ui/select 9.11.3 → 9.11.5
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/build/cjs/multi-select/input.js +1 -4
- package/build/cjs/multi-select/menu.js +1 -4
- package/build/cjs/multi-select/multi-select.js +4 -6
- package/build/cjs/multi-select-field/multi-select-field.js +12 -9
- package/build/cjs/multi-select-field/multi-select-field.prod.stories.js +6 -1
- package/build/cjs/multi-select-option/multi-select-option.js +1 -4
- package/build/cjs/select/input-wrapper.js +1 -4
- package/build/cjs/select/menu-wrapper.js +1 -4
- package/build/cjs/select/select.js +2 -2
- package/build/cjs/single-select/input.js +1 -4
- package/build/cjs/single-select/menu.js +1 -4
- package/build/cjs/single-select/single-select.js +2 -6
- package/build/cjs/single-select/single-select.prod.stories.js +2 -1
- package/build/cjs/single-select-field/single-select-field.js +12 -9
- package/build/cjs/single-select-field/single-select-field.prod.stories.js +14 -2
- package/build/cjs/single-select-option/single-select-option.js +1 -4
- package/build/es/multi-select/input.js +1 -4
- package/build/es/multi-select/menu.js +1 -4
- package/build/es/multi-select/multi-select.js +5 -6
- package/build/es/multi-select-field/multi-select-field.js +12 -9
- package/build/es/multi-select-field/multi-select-field.prod.stories.js +6 -1
- package/build/es/multi-select-option/multi-select-option.js +1 -4
- package/build/es/select/input-wrapper.js +1 -4
- package/build/es/select/menu-wrapper.js +1 -4
- package/build/es/select/select.js +2 -2
- package/build/es/single-select/input.js +1 -4
- package/build/es/single-select/menu.js +1 -4
- package/build/es/single-select/single-select.js +2 -6
- package/build/es/single-select/single-select.prod.stories.js +2 -1
- package/build/es/single-select-field/single-select-field.js +12 -9
- package/build/es/single-select-field/single-select-field.prod.stories.js +13 -1
- package/build/es/single-select-option/single-select-option.js +1 -4
- package/package.json +15 -15
|
@@ -25,7 +25,7 @@ const Input = _ref => {
|
|
|
25
25
|
options,
|
|
26
26
|
className,
|
|
27
27
|
disabled,
|
|
28
|
-
inputMaxHeight
|
|
28
|
+
inputMaxHeight = '100px'
|
|
29
29
|
} = _ref;
|
|
30
30
|
const hasSelection = selected.length > 0;
|
|
31
31
|
const onClear = e => {
|
|
@@ -65,9 +65,6 @@ const Input = _ref => {
|
|
|
65
65
|
}, [`.root-input.__jsx-style-dynamic-selector{max-height:${inputMaxHeight};}`]));
|
|
66
66
|
};
|
|
67
67
|
exports.Input = Input;
|
|
68
|
-
Input.defaultProps = {
|
|
69
|
-
inputMaxHeight: '100px'
|
|
70
|
-
};
|
|
71
68
|
Input.propTypes = {
|
|
72
69
|
dataTest: _propTypes2.default.string.isRequired,
|
|
73
70
|
className: _propTypes2.default.string,
|
|
@@ -43,7 +43,7 @@ const Menu = _ref2 => {
|
|
|
43
43
|
options,
|
|
44
44
|
onChange,
|
|
45
45
|
selected,
|
|
46
|
-
empty,
|
|
46
|
+
empty = '',
|
|
47
47
|
dataTest
|
|
48
48
|
} = _ref2;
|
|
49
49
|
const renderedOptions = (0, _index.filterIgnored)(options);
|
|
@@ -92,9 +92,6 @@ const Menu = _ref2 => {
|
|
|
92
92
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
93
93
|
};
|
|
94
94
|
exports.Menu = Menu;
|
|
95
|
-
Menu.defaultProps = {
|
|
96
|
-
empty: ''
|
|
97
|
-
};
|
|
98
95
|
Menu.propTypes = {
|
|
99
96
|
dataTest: _propTypes.default.string.isRequired,
|
|
100
97
|
empty: _propTypes.default.node,
|
|
@@ -15,10 +15,12 @@ var _filterableMenu = require("./filterable-menu.js");
|
|
|
15
15
|
var _input = require("./input.js");
|
|
16
16
|
var _menu = require("./menu.js");
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
// stable object reference
|
|
19
|
+
const staticArr = [];
|
|
18
20
|
const MultiSelect = _ref => {
|
|
19
21
|
let {
|
|
20
22
|
className,
|
|
21
|
-
selected,
|
|
23
|
+
selected = staticArr,
|
|
22
24
|
tabIndex,
|
|
23
25
|
maxHeight,
|
|
24
26
|
inputMaxHeight,
|
|
@@ -43,7 +45,7 @@ const MultiSelect = _ref => {
|
|
|
43
45
|
noMatchText,
|
|
44
46
|
initialFocus,
|
|
45
47
|
dense,
|
|
46
|
-
dataTest
|
|
48
|
+
dataTest = 'dhis2-uicore-multiselect'
|
|
47
49
|
} = _ref;
|
|
48
50
|
// If the select is filterable, use a filterable menu
|
|
49
51
|
const menu = filterable ? /*#__PURE__*/_react.default.createElement(_filterableMenu.FilterableMenu, {
|
|
@@ -97,10 +99,6 @@ const MultiSelect = _ref => {
|
|
|
97
99
|
}, [`.root.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:${_uiConstants.spacers.dp8};}`, ".root-input.__jsx-style-dynamic-selector{-webkit-flex:1;-ms-flex:1;flex:1;}"]));
|
|
98
100
|
};
|
|
99
101
|
exports.MultiSelect = MultiSelect;
|
|
100
|
-
MultiSelect.defaultProps = {
|
|
101
|
-
selected: [],
|
|
102
|
-
dataTest: 'dhis2-uicore-multiselect'
|
|
103
|
-
};
|
|
104
102
|
MultiSelect.propTypes = {
|
|
105
103
|
children: _propTypes2.default.node,
|
|
106
104
|
className: _propTypes2.default.string,
|
|
@@ -12,6 +12,9 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
12
12
|
var _index = _interopRequireDefault(require("../locales/index.js"));
|
|
13
13
|
var _index2 = require("../multi-select/index.js");
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
18
|
// TODO: translate
|
|
16
19
|
const translate = (prop, interpolationObject) => {
|
|
17
20
|
if (typeof prop === 'function') {
|
|
@@ -34,7 +37,7 @@ class MultiSelectField extends _react.default.Component {
|
|
|
34
37
|
disabled,
|
|
35
38
|
warning,
|
|
36
39
|
loading,
|
|
37
|
-
selected,
|
|
40
|
+
selected = MultiSelectField.defaultProps.selected,
|
|
38
41
|
tabIndex,
|
|
39
42
|
helpText,
|
|
40
43
|
validationText,
|
|
@@ -43,17 +46,17 @@ class MultiSelectField extends _react.default.Component {
|
|
|
43
46
|
inputWidth,
|
|
44
47
|
children,
|
|
45
48
|
clearable,
|
|
46
|
-
clearText,
|
|
49
|
+
clearText = MultiSelectField.defaultProps.clearText,
|
|
47
50
|
filterable,
|
|
48
|
-
filterPlaceholder,
|
|
51
|
+
filterPlaceholder = MultiSelectField.defaultProps.filterPlaceholder,
|
|
49
52
|
placeholder,
|
|
50
53
|
prefix,
|
|
51
|
-
empty,
|
|
52
|
-
loadingText,
|
|
53
|
-
noMatchText,
|
|
54
|
+
empty = MultiSelectField.defaultProps.empty,
|
|
55
|
+
loadingText = MultiSelectField.defaultProps.loadingText,
|
|
56
|
+
noMatchText = MultiSelectField.defaultProps.noMatchText,
|
|
54
57
|
initialFocus,
|
|
55
58
|
dense,
|
|
56
|
-
dataTest
|
|
59
|
+
dataTest = MultiSelectField.defaultProps.dataTest
|
|
57
60
|
} = this.props;
|
|
58
61
|
return /*#__PURE__*/_react.default.createElement(_field.Field, {
|
|
59
62
|
className: className,
|
|
@@ -98,7 +101,7 @@ class MultiSelectField extends _react.default.Component {
|
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
103
|
exports.MultiSelectField = MultiSelectField;
|
|
101
|
-
MultiSelectField
|
|
104
|
+
_defineProperty(MultiSelectField, "defaultProps", {
|
|
102
105
|
selected: [],
|
|
103
106
|
dataTest: 'dhis2-uiwidgets-multiselectfield',
|
|
104
107
|
clearText: () => _index.default.t('Clear'),
|
|
@@ -106,7 +109,7 @@ MultiSelectField.defaultProps = {
|
|
|
106
109
|
filterPlaceholder: () => _index.default.t('Type to filter options'),
|
|
107
110
|
loadingText: () => _index.default.t('Loading options'),
|
|
108
111
|
noMatchText: () => _index.default.t('No options found')
|
|
109
|
-
};
|
|
112
|
+
});
|
|
110
113
|
MultiSelectField.propTypes = {
|
|
111
114
|
/** Should be `MultiSelectOption` components */
|
|
112
115
|
children: _propTypes.default.node,
|
|
@@ -78,7 +78,12 @@ var _default = exports.default = {
|
|
|
78
78
|
// default args for stories
|
|
79
79
|
args: {
|
|
80
80
|
// Fix default prop issues - causes 'i18n is not defined' error
|
|
81
|
-
|
|
81
|
+
dataTest: 'dhis2-uiwidgets-multiselectfield',
|
|
82
|
+
clearText: 'Clear',
|
|
83
|
+
empty: 'No data found',
|
|
84
|
+
filterPlaceholder: 'Type to filter options',
|
|
85
|
+
loadingText: 'Loading options',
|
|
86
|
+
noMatchText: 'No options found',
|
|
82
87
|
label: 'Default label',
|
|
83
88
|
selected: ['1'],
|
|
84
89
|
children: options,
|
|
@@ -28,7 +28,7 @@ const MultiSelectOption = _ref => {
|
|
|
28
28
|
disabled,
|
|
29
29
|
onClick,
|
|
30
30
|
className,
|
|
31
|
-
dataTest,
|
|
31
|
+
dataTest = 'dhis2-uicore-multiselectoption',
|
|
32
32
|
value
|
|
33
33
|
} = _ref;
|
|
34
34
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -52,9 +52,6 @@ const MultiSelectOption = _ref => {
|
|
|
52
52
|
}, [`div.__jsx-style-dynamic-selector:hover{background-color:${_uiConstants.colors.grey200};}`, "div.disabled.__jsx-style-dynamic-selector:hover{background-color:initial;}"]));
|
|
53
53
|
};
|
|
54
54
|
exports.MultiSelectOption = MultiSelectOption;
|
|
55
|
-
MultiSelectOption.defaultProps = {
|
|
56
|
-
dataTest: 'dhis2-uicore-multiselectoption'
|
|
57
|
-
};
|
|
58
55
|
MultiSelectOption.propTypes = {
|
|
59
56
|
label: _propTypes.default.string.isRequired,
|
|
60
57
|
value: _propTypes.default.string.isRequired,
|
|
@@ -16,7 +16,7 @@ const InputWrapper = _ref => {
|
|
|
16
16
|
dataTest,
|
|
17
17
|
onToggle,
|
|
18
18
|
children,
|
|
19
|
-
tabIndex,
|
|
19
|
+
tabIndex = '0',
|
|
20
20
|
error,
|
|
21
21
|
warning,
|
|
22
22
|
valid,
|
|
@@ -48,9 +48,6 @@ const InputWrapper = _ref => {
|
|
|
48
48
|
}, [`.root.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:white;border-radius:3px;border:1px solid ${_uiConstants.colors.grey500};box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:40px;padding-block:6px;padding-inline:12px;box-shadow:inset 0 0 1px 0 rgba(48,54,60,0.1);}`, `.root.__jsx-style-dynamic-selector:not(.disabled):focus,.root.__jsx-style-dynamic-selector:not(.disabled):active{outline:none;box-shadow:inset 0 0 0 2px ${_uiConstants.theme.focus};border-color:${_uiConstants.theme.focus};}`, `.root.valid.__jsx-style-dynamic-selector{border-color:${_uiConstants.theme.valid};}`, `.root.warning.__jsx-style-dynamic-selector{border-color:${_uiConstants.theme.warning};}`, `.root.error.__jsx-style-dynamic-selector{border-color:${_uiConstants.theme.error};}`, `.root.disabled.__jsx-style-dynamic-selector{background-color:${_uiConstants.colors.grey100};border-color:${_uiConstants.colors.grey500};color:${_uiConstants.theme.disabled};cursor:not-allowed;}`, ".root.dense.__jsx-style-dynamic-selector{padding-block:2px;padding-inline:8px;min-height:32px;}", ".root-children.__jsx-style-dynamic-selector{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}", ".root-right.__jsx-style-dynamic-selector{margin-block-start:4px;margin-inline-start:8px;}"]));
|
|
49
49
|
};
|
|
50
50
|
exports.InputWrapper = InputWrapper;
|
|
51
|
-
InputWrapper.defaultProps = {
|
|
52
|
-
tabIndex: '0'
|
|
53
|
-
};
|
|
54
51
|
InputWrapper.propTypes = {
|
|
55
52
|
dataTest: _propTypes.default.string.isRequired,
|
|
56
53
|
inputRef: _propTypes.default.object.isRequired,
|
|
@@ -15,7 +15,7 @@ const MenuWrapper = _ref => {
|
|
|
15
15
|
let {
|
|
16
16
|
children,
|
|
17
17
|
dataTest,
|
|
18
|
-
maxHeight,
|
|
18
|
+
maxHeight = '280px',
|
|
19
19
|
menuWidth,
|
|
20
20
|
onClick,
|
|
21
21
|
selectRef
|
|
@@ -37,9 +37,6 @@ const MenuWrapper = _ref => {
|
|
|
37
37
|
}, [`div.__jsx-style-dynamic-selector{width:${menuWidth};height:auto;max-height:${maxHeight};overflow:auto;background:${_uiConstants.colors.white};border:1px solid ${_uiConstants.colors.grey200};border-radius:3px;box-shadow:${_uiConstants.elevations.e300};}`]))));
|
|
38
38
|
};
|
|
39
39
|
exports.MenuWrapper = MenuWrapper;
|
|
40
|
-
MenuWrapper.defaultProps = {
|
|
41
|
-
maxHeight: '280px'
|
|
42
|
-
};
|
|
43
40
|
MenuWrapper.propTypes = {
|
|
44
41
|
dataTest: _propTypes.default.string.isRequired,
|
|
45
42
|
menuWidth: _propTypes.default.string.isRequired,
|
|
@@ -219,9 +219,9 @@ class Select extends _react.Component {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
exports.Select = Select;
|
|
222
|
-
Select
|
|
222
|
+
_defineProperty(Select, "defaultProps", {
|
|
223
223
|
dataTest: 'dhis2-uicore-select'
|
|
224
|
-
};
|
|
224
|
+
});
|
|
225
225
|
Select.propTypes = {
|
|
226
226
|
input: _propTypes.default.element.isRequired,
|
|
227
227
|
menu: _propTypes.default.element.isRequired,
|
|
@@ -25,7 +25,7 @@ const Input = _ref => {
|
|
|
25
25
|
options,
|
|
26
26
|
className,
|
|
27
27
|
disabled,
|
|
28
|
-
inputMaxHeight
|
|
28
|
+
inputMaxHeight = '100px'
|
|
29
29
|
} = _ref;
|
|
30
30
|
const hasSelection = selected && typeof selected === 'string';
|
|
31
31
|
const onClear = e => {
|
|
@@ -63,9 +63,6 @@ const Input = _ref => {
|
|
|
63
63
|
}, [`.root-input.__jsx-style-dynamic-selector{max-height:${inputMaxHeight};}`]));
|
|
64
64
|
};
|
|
65
65
|
exports.Input = Input;
|
|
66
|
-
Input.defaultProps = {
|
|
67
|
-
inputMaxHeight: '100px'
|
|
68
|
-
};
|
|
69
66
|
Input.propTypes = {
|
|
70
67
|
dataTest: _propTypes2.default.string.isRequired,
|
|
71
68
|
className: _propTypes2.default.string,
|
|
@@ -17,7 +17,7 @@ const Menu = _ref => {
|
|
|
17
17
|
options,
|
|
18
18
|
onChange,
|
|
19
19
|
selected,
|
|
20
|
-
empty,
|
|
20
|
+
empty = '',
|
|
21
21
|
handleFocusInput,
|
|
22
22
|
handleClose,
|
|
23
23
|
dataTest
|
|
@@ -70,9 +70,6 @@ const Menu = _ref => {
|
|
|
70
70
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
71
71
|
};
|
|
72
72
|
exports.Menu = Menu;
|
|
73
|
-
Menu.defaultProps = {
|
|
74
|
-
empty: ''
|
|
75
|
-
};
|
|
76
73
|
Menu.propTypes = {
|
|
77
74
|
dataTest: _propTypes.default.string.isRequired,
|
|
78
75
|
empty: _propTypes.default.node,
|
|
@@ -18,7 +18,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
18
18
|
const SingleSelect = _ref => {
|
|
19
19
|
let {
|
|
20
20
|
className,
|
|
21
|
-
selected,
|
|
21
|
+
selected = '',
|
|
22
22
|
tabIndex,
|
|
23
23
|
maxHeight,
|
|
24
24
|
inputMaxHeight,
|
|
@@ -43,7 +43,7 @@ const SingleSelect = _ref => {
|
|
|
43
43
|
noMatchText,
|
|
44
44
|
initialFocus,
|
|
45
45
|
dense,
|
|
46
|
-
dataTest
|
|
46
|
+
dataTest = 'dhis2-uicore-singleselect'
|
|
47
47
|
} = _ref;
|
|
48
48
|
// If the select is filterable, use a filterable menu
|
|
49
49
|
const menu = filterable ? /*#__PURE__*/_react.default.createElement(_filterableMenu.FilterableMenu, {
|
|
@@ -97,10 +97,6 @@ const SingleSelect = _ref => {
|
|
|
97
97
|
}, [`.root.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:${_uiConstants.spacers.dp8};}`, ".root-input.__jsx-style-dynamic-selector{-webkit-flex:1;-ms-flex:1;flex:1;}"]));
|
|
98
98
|
};
|
|
99
99
|
exports.SingleSelect = SingleSelect;
|
|
100
|
-
SingleSelect.defaultProps = {
|
|
101
|
-
selected: '',
|
|
102
|
-
dataTest: 'dhis2-uicore-singleselect'
|
|
103
|
-
};
|
|
104
100
|
SingleSelect.propTypes = {
|
|
105
101
|
children: _propTypes2.default.node,
|
|
106
102
|
className: _propTypes2.default.string,
|
|
@@ -294,7 +294,8 @@ WithOptionsASelectionAndDisabled.args = {
|
|
|
294
294
|
WithOptionsASelectionAndDisabled.storyName = 'With options, a selection and disabled';
|
|
295
295
|
const WithPrefix = exports.WithPrefix = WithOptionsTemplate.bind({});
|
|
296
296
|
WithPrefix.args = {
|
|
297
|
-
prefix: 'Prefix text'
|
|
297
|
+
prefix: 'Prefix text',
|
|
298
|
+
selected: '1'
|
|
298
299
|
};
|
|
299
300
|
const WithPrefixAndSelection = exports.WithPrefixAndSelection = WithOptionsTemplate.bind({});
|
|
300
301
|
WithPrefixAndSelection.args = {
|
|
@@ -12,6 +12,9 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
12
12
|
var _index = _interopRequireDefault(require("../locales/index.js"));
|
|
13
13
|
var _index2 = require("../single-select/index.js");
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
18
|
// TODO: translate
|
|
16
19
|
const translate = (prop, interpolationObject) => {
|
|
17
20
|
if (typeof prop === 'function') {
|
|
@@ -34,7 +37,7 @@ class SingleSelectField extends _react.default.Component {
|
|
|
34
37
|
warning,
|
|
35
38
|
disabled,
|
|
36
39
|
loading,
|
|
37
|
-
selected,
|
|
40
|
+
selected = SingleSelectField.defaultProps.selected,
|
|
38
41
|
tabIndex,
|
|
39
42
|
helpText,
|
|
40
43
|
validationText,
|
|
@@ -43,17 +46,17 @@ class SingleSelectField extends _react.default.Component {
|
|
|
43
46
|
inputWidth,
|
|
44
47
|
children,
|
|
45
48
|
clearable,
|
|
46
|
-
clearText,
|
|
49
|
+
clearText = SingleSelectField.defaultProps.clearText,
|
|
47
50
|
filterable,
|
|
48
|
-
filterPlaceholder,
|
|
51
|
+
filterPlaceholder = SingleSelectField.defaultProps.filterPlaceholder,
|
|
49
52
|
placeholder,
|
|
50
53
|
prefix,
|
|
51
|
-
empty,
|
|
52
|
-
loadingText,
|
|
53
|
-
noMatchText,
|
|
54
|
+
empty = SingleSelectField.defaultProps.empty,
|
|
55
|
+
loadingText = SingleSelectField.defaultProps.loadingText,
|
|
56
|
+
noMatchText = SingleSelectField.defaultProps.noMatchText,
|
|
54
57
|
initialFocus,
|
|
55
58
|
dense,
|
|
56
|
-
dataTest
|
|
59
|
+
dataTest = SingleSelectField.defaultProps.dataTest
|
|
57
60
|
} = this.props;
|
|
58
61
|
return /*#__PURE__*/_react.default.createElement(_field.Field, {
|
|
59
62
|
className: className,
|
|
@@ -98,7 +101,7 @@ class SingleSelectField extends _react.default.Component {
|
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
103
|
exports.SingleSelectField = SingleSelectField;
|
|
101
|
-
SingleSelectField
|
|
104
|
+
_defineProperty(SingleSelectField, "defaultProps", {
|
|
102
105
|
dataTest: 'dhis2-uiwidgets-singleselectfield',
|
|
103
106
|
selected: '',
|
|
104
107
|
clearText: () => _index.default.t('Clear'),
|
|
@@ -106,7 +109,7 @@ SingleSelectField.defaultProps = {
|
|
|
106
109
|
filterPlaceholder: () => _index.default.t('Type to filter options'),
|
|
107
110
|
loadingText: () => _index.default.t('Loading options'),
|
|
108
111
|
noMatchText: () => _index.default.t('No options found')
|
|
109
|
-
};
|
|
112
|
+
});
|
|
110
113
|
SingleSelectField.propTypes = {
|
|
111
114
|
/** Should be `SingleSelectOption` components */
|
|
112
115
|
children: _propTypes.default.node,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.WithHelpText = exports.StatusWarning = exports.StatusValid = exports.StatusError = exports.Required = exports.InputWidth = exports.DefaultLoadingText = exports.DefaultFilterPlaceholderAndNoMatchText = exports.DefaultEmpty = exports.DefaultClearText = exports.Default = void 0;
|
|
6
|
+
exports.default = exports.WithHelpText = exports.StatusWarning = exports.StatusValid = exports.StatusError = exports.StatusDisabled = exports.Required = exports.InputWidth = exports.DefaultLoadingText = exports.DefaultFilterPlaceholderAndNoMatchText = exports.DefaultEmpty = exports.DefaultClearText = exports.Default = void 0;
|
|
7
7
|
var _uiConstants = require("@dhis2/ui-constants");
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _index = require("../index.js");
|
|
@@ -78,7 +78,13 @@ var _default = exports.default = {
|
|
|
78
78
|
// default args for stories
|
|
79
79
|
args: {
|
|
80
80
|
// Fix default prop issues - causes 'i18n is not defined' error
|
|
81
|
-
|
|
81
|
+
dataTest: 'dhis2-uiwidgets-singleselectfield',
|
|
82
|
+
selected: '',
|
|
83
|
+
clearText: 'Clear',
|
|
84
|
+
empty: 'No data found',
|
|
85
|
+
filterPlaceholder: 'Type to filter options',
|
|
86
|
+
loadingText: 'Loading options',
|
|
87
|
+
noMatchText: 'No options found',
|
|
82
88
|
label: 'Default label',
|
|
83
89
|
children: options,
|
|
84
90
|
onChange: onChange
|
|
@@ -129,6 +135,12 @@ StatusError.args = {
|
|
|
129
135
|
...WithHelpText.args
|
|
130
136
|
};
|
|
131
137
|
StatusError.storyName = 'Status: Error';
|
|
138
|
+
const StatusDisabled = exports.StatusDisabled = Template.bind({});
|
|
139
|
+
StatusDisabled.args = {
|
|
140
|
+
disabled: true,
|
|
141
|
+
...WithHelpText.args
|
|
142
|
+
};
|
|
143
|
+
StatusDisabled.storyName = 'Status: Disabled';
|
|
132
144
|
const Required = exports.Required = Template.bind({});
|
|
133
145
|
Required.args = {
|
|
134
146
|
required: true
|
|
@@ -17,7 +17,7 @@ const SingleSelectOption = _ref => {
|
|
|
17
17
|
disabled,
|
|
18
18
|
onClick,
|
|
19
19
|
className,
|
|
20
|
-
dataTest,
|
|
20
|
+
dataTest = 'dhis2-uicore-singleselectoption',
|
|
21
21
|
value
|
|
22
22
|
} = _ref;
|
|
23
23
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -35,9 +35,6 @@ const SingleSelectOption = _ref => {
|
|
|
35
35
|
}, [`div.__jsx-style-dynamic-selector{cursor:pointer;font-size:14px;-webkit-text-decoration:none;text-decoration:none;color:${_uiConstants.colors.grey900};padding-block:${_uiConstants.spacers.dp8};padding-inline:${_uiConstants.spacers.dp12};}`, `div.__jsx-style-dynamic-selector:hover{background-color:${_uiConstants.colors.grey200};}`, `div.__jsx-style-dynamic-selector:active,div.active.__jsx-style-dynamic-selector{background-color:${_uiConstants.colors.teal700};color:${_uiConstants.colors.white};cursor:auto;}`, `div.disabled.__jsx-style-dynamic-selector{color:${_uiConstants.colors.grey500};cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, "div.disabled.__jsx-style-dynamic-selector:hover{background-color:initial;}"]));
|
|
36
36
|
};
|
|
37
37
|
exports.SingleSelectOption = SingleSelectOption;
|
|
38
|
-
SingleSelectOption.defaultProps = {
|
|
39
|
-
dataTest: 'dhis2-uicore-singleselectoption'
|
|
40
|
-
};
|
|
41
38
|
SingleSelectOption.propTypes = {
|
|
42
39
|
label: _propTypes.default.string.isRequired,
|
|
43
40
|
value: _propTypes.default.string.isRequired,
|
|
@@ -18,7 +18,7 @@ const Input = _ref => {
|
|
|
18
18
|
options,
|
|
19
19
|
className,
|
|
20
20
|
disabled,
|
|
21
|
-
inputMaxHeight
|
|
21
|
+
inputMaxHeight = '100px'
|
|
22
22
|
} = _ref;
|
|
23
23
|
const hasSelection = selected.length > 0;
|
|
24
24
|
const onClear = e => {
|
|
@@ -57,9 +57,6 @@ const Input = _ref => {
|
|
|
57
57
|
dynamic: [inputMaxHeight]
|
|
58
58
|
}, [`.root-input.__jsx-style-dynamic-selector{max-height:${inputMaxHeight};}`]));
|
|
59
59
|
};
|
|
60
|
-
Input.defaultProps = {
|
|
61
|
-
inputMaxHeight: '100px'
|
|
62
|
-
};
|
|
63
60
|
Input.propTypes = {
|
|
64
61
|
dataTest: PropTypes.string.isRequired,
|
|
65
62
|
className: PropTypes.string,
|
|
@@ -36,7 +36,7 @@ const Menu = _ref2 => {
|
|
|
36
36
|
options,
|
|
37
37
|
onChange,
|
|
38
38
|
selected,
|
|
39
|
-
empty,
|
|
39
|
+
empty = '',
|
|
40
40
|
dataTest
|
|
41
41
|
} = _ref2;
|
|
42
42
|
const renderedOptions = filterIgnored(options);
|
|
@@ -84,9 +84,6 @@ const Menu = _ref2 => {
|
|
|
84
84
|
});
|
|
85
85
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
86
86
|
};
|
|
87
|
-
Menu.defaultProps = {
|
|
88
|
-
empty: ''
|
|
89
|
-
};
|
|
90
87
|
Menu.propTypes = {
|
|
91
88
|
dataTest: PropTypes.string.isRequired,
|
|
92
89
|
empty: PropTypes.node,
|
|
@@ -8,10 +8,13 @@ import { Loading as CommonLoading, Select } from '../select/index.js';
|
|
|
8
8
|
import { FilterableMenu } from './filterable-menu.js';
|
|
9
9
|
import { Input } from './input.js';
|
|
10
10
|
import { Menu } from './menu.js';
|
|
11
|
+
|
|
12
|
+
// stable object reference
|
|
13
|
+
const staticArr = [];
|
|
11
14
|
const MultiSelect = _ref => {
|
|
12
15
|
let {
|
|
13
16
|
className,
|
|
14
|
-
selected,
|
|
17
|
+
selected = staticArr,
|
|
15
18
|
tabIndex,
|
|
16
19
|
maxHeight,
|
|
17
20
|
inputMaxHeight,
|
|
@@ -36,7 +39,7 @@ const MultiSelect = _ref => {
|
|
|
36
39
|
noMatchText,
|
|
37
40
|
initialFocus,
|
|
38
41
|
dense,
|
|
39
|
-
dataTest
|
|
42
|
+
dataTest = 'dhis2-uicore-multiselect'
|
|
40
43
|
} = _ref;
|
|
41
44
|
// If the select is filterable, use a filterable menu
|
|
42
45
|
const menu = filterable ? /*#__PURE__*/React.createElement(FilterableMenu, {
|
|
@@ -89,10 +92,6 @@ const MultiSelect = _ref => {
|
|
|
89
92
|
dynamic: [spacers.dp8]
|
|
90
93
|
}, [`.root.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:${spacers.dp8};}`, ".root-input.__jsx-style-dynamic-selector{-webkit-flex:1;-ms-flex:1;flex:1;}"]));
|
|
91
94
|
};
|
|
92
|
-
MultiSelect.defaultProps = {
|
|
93
|
-
selected: [],
|
|
94
|
-
dataTest: 'dhis2-uicore-multiselect'
|
|
95
|
-
};
|
|
96
95
|
MultiSelect.propTypes = {
|
|
97
96
|
children: PropTypes.node,
|
|
98
97
|
className: PropTypes.string,
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
1
4
|
import { sharedPropTypes } from '@dhis2/ui-constants';
|
|
2
5
|
import { Box } from '@dhis2-ui/box';
|
|
3
6
|
import { Field } from '@dhis2-ui/field';
|
|
@@ -28,7 +31,7 @@ class MultiSelectField extends React.Component {
|
|
|
28
31
|
disabled,
|
|
29
32
|
warning,
|
|
30
33
|
loading,
|
|
31
|
-
selected,
|
|
34
|
+
selected = MultiSelectField.defaultProps.selected,
|
|
32
35
|
tabIndex,
|
|
33
36
|
helpText,
|
|
34
37
|
validationText,
|
|
@@ -37,17 +40,17 @@ class MultiSelectField extends React.Component {
|
|
|
37
40
|
inputWidth,
|
|
38
41
|
children,
|
|
39
42
|
clearable,
|
|
40
|
-
clearText,
|
|
43
|
+
clearText = MultiSelectField.defaultProps.clearText,
|
|
41
44
|
filterable,
|
|
42
|
-
filterPlaceholder,
|
|
45
|
+
filterPlaceholder = MultiSelectField.defaultProps.filterPlaceholder,
|
|
43
46
|
placeholder,
|
|
44
47
|
prefix,
|
|
45
|
-
empty,
|
|
46
|
-
loadingText,
|
|
47
|
-
noMatchText,
|
|
48
|
+
empty = MultiSelectField.defaultProps.empty,
|
|
49
|
+
loadingText = MultiSelectField.defaultProps.loadingText,
|
|
50
|
+
noMatchText = MultiSelectField.defaultProps.noMatchText,
|
|
48
51
|
initialFocus,
|
|
49
52
|
dense,
|
|
50
|
-
dataTest
|
|
53
|
+
dataTest = MultiSelectField.defaultProps.dataTest
|
|
51
54
|
} = this.props;
|
|
52
55
|
return /*#__PURE__*/React.createElement(Field, {
|
|
53
56
|
className: className,
|
|
@@ -91,7 +94,7 @@ class MultiSelectField extends React.Component {
|
|
|
91
94
|
}, children)));
|
|
92
95
|
}
|
|
93
96
|
}
|
|
94
|
-
MultiSelectField
|
|
97
|
+
_defineProperty(MultiSelectField, "defaultProps", {
|
|
95
98
|
selected: [],
|
|
96
99
|
dataTest: 'dhis2-uiwidgets-multiselectfield',
|
|
97
100
|
clearText: () => i18n.t('Clear'),
|
|
@@ -99,7 +102,7 @@ MultiSelectField.defaultProps = {
|
|
|
99
102
|
filterPlaceholder: () => i18n.t('Type to filter options'),
|
|
100
103
|
loadingText: () => i18n.t('Loading options'),
|
|
101
104
|
noMatchText: () => i18n.t('No options found')
|
|
102
|
-
};
|
|
105
|
+
});
|
|
103
106
|
MultiSelectField.propTypes = {
|
|
104
107
|
/** Should be `MultiSelectOption` components */
|
|
105
108
|
children: PropTypes.node,
|
|
@@ -71,7 +71,12 @@ export default {
|
|
|
71
71
|
// default args for stories
|
|
72
72
|
args: {
|
|
73
73
|
// Fix default prop issues - causes 'i18n is not defined' error
|
|
74
|
-
|
|
74
|
+
dataTest: 'dhis2-uiwidgets-multiselectfield',
|
|
75
|
+
clearText: 'Clear',
|
|
76
|
+
empty: 'No data found',
|
|
77
|
+
filterPlaceholder: 'Type to filter options',
|
|
78
|
+
loadingText: 'Loading options',
|
|
79
|
+
noMatchText: 'No options found',
|
|
75
80
|
label: 'Default label',
|
|
76
81
|
selected: ['1'],
|
|
77
82
|
children: options,
|
|
@@ -21,7 +21,7 @@ const MultiSelectOption = _ref => {
|
|
|
21
21
|
disabled,
|
|
22
22
|
onClick,
|
|
23
23
|
className,
|
|
24
|
-
dataTest,
|
|
24
|
+
dataTest = 'dhis2-uicore-multiselectoption',
|
|
25
25
|
value
|
|
26
26
|
} = _ref;
|
|
27
27
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -44,9 +44,6 @@ const MultiSelectOption = _ref => {
|
|
|
44
44
|
dynamic: [colors.grey200]
|
|
45
45
|
}, [`div.__jsx-style-dynamic-selector:hover{background-color:${colors.grey200};}`, "div.disabled.__jsx-style-dynamic-selector:hover{background-color:initial;}"]));
|
|
46
46
|
};
|
|
47
|
-
MultiSelectOption.defaultProps = {
|
|
48
|
-
dataTest: 'dhis2-uicore-multiselectoption'
|
|
49
|
-
};
|
|
50
47
|
MultiSelectOption.propTypes = {
|
|
51
48
|
label: PropTypes.string.isRequired,
|
|
52
49
|
value: PropTypes.string.isRequired,
|
|
@@ -9,7 +9,7 @@ const InputWrapper = _ref => {
|
|
|
9
9
|
dataTest,
|
|
10
10
|
onToggle,
|
|
11
11
|
children,
|
|
12
|
-
tabIndex,
|
|
12
|
+
tabIndex = '0',
|
|
13
13
|
error,
|
|
14
14
|
warning,
|
|
15
15
|
valid,
|
|
@@ -40,9 +40,6 @@ const InputWrapper = _ref => {
|
|
|
40
40
|
dynamic: [colors.grey500, theme.focus, theme.focus, theme.valid, theme.warning, theme.error, colors.grey100, colors.grey500, theme.disabled]
|
|
41
41
|
}, [`.root.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:white;border-radius:3px;border:1px solid ${colors.grey500};box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-height:40px;padding-block:6px;padding-inline:12px;box-shadow:inset 0 0 1px 0 rgba(48,54,60,0.1);}`, `.root.__jsx-style-dynamic-selector:not(.disabled):focus,.root.__jsx-style-dynamic-selector:not(.disabled):active{outline:none;box-shadow:inset 0 0 0 2px ${theme.focus};border-color:${theme.focus};}`, `.root.valid.__jsx-style-dynamic-selector{border-color:${theme.valid};}`, `.root.warning.__jsx-style-dynamic-selector{border-color:${theme.warning};}`, `.root.error.__jsx-style-dynamic-selector{border-color:${theme.error};}`, `.root.disabled.__jsx-style-dynamic-selector{background-color:${colors.grey100};border-color:${colors.grey500};color:${theme.disabled};cursor:not-allowed;}`, ".root.dense.__jsx-style-dynamic-selector{padding-block:2px;padding-inline:8px;min-height:32px;}", ".root-children.__jsx-style-dynamic-selector{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}", ".root-right.__jsx-style-dynamic-selector{margin-block-start:4px;margin-inline-start:8px;}"]));
|
|
42
42
|
};
|
|
43
|
-
InputWrapper.defaultProps = {
|
|
44
|
-
tabIndex: '0'
|
|
45
|
-
};
|
|
46
43
|
InputWrapper.propTypes = {
|
|
47
44
|
dataTest: PropTypes.string.isRequired,
|
|
48
45
|
inputRef: PropTypes.object.isRequired,
|
|
@@ -8,7 +8,7 @@ const MenuWrapper = _ref => {
|
|
|
8
8
|
let {
|
|
9
9
|
children,
|
|
10
10
|
dataTest,
|
|
11
|
-
maxHeight,
|
|
11
|
+
maxHeight = '280px',
|
|
12
12
|
menuWidth,
|
|
13
13
|
onClick,
|
|
14
14
|
selectRef
|
|
@@ -29,9 +29,6 @@ const MenuWrapper = _ref => {
|
|
|
29
29
|
dynamic: [menuWidth, maxHeight, colors.white, colors.grey200, elevations.e300]
|
|
30
30
|
}, [`div.__jsx-style-dynamic-selector{width:${menuWidth};height:auto;max-height:${maxHeight};overflow:auto;background:${colors.white};border:1px solid ${colors.grey200};border-radius:3px;box-shadow:${elevations.e300};}`]))));
|
|
31
31
|
};
|
|
32
|
-
MenuWrapper.defaultProps = {
|
|
33
|
-
maxHeight: '280px'
|
|
34
|
-
};
|
|
35
32
|
MenuWrapper.propTypes = {
|
|
36
33
|
dataTest: PropTypes.string.isRequired,
|
|
37
34
|
menuWidth: PropTypes.string.isRequired,
|
|
@@ -210,9 +210,9 @@ export class Select extends Component {
|
|
|
210
210
|
}, menu));
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
|
-
Select
|
|
213
|
+
_defineProperty(Select, "defaultProps", {
|
|
214
214
|
dataTest: 'dhis2-uicore-select'
|
|
215
|
-
};
|
|
215
|
+
});
|
|
216
216
|
Select.propTypes = {
|
|
217
217
|
input: PropTypes.element.isRequired,
|
|
218
218
|
menu: PropTypes.element.isRequired,
|
|
@@ -18,7 +18,7 @@ const Input = _ref => {
|
|
|
18
18
|
options,
|
|
19
19
|
className,
|
|
20
20
|
disabled,
|
|
21
|
-
inputMaxHeight
|
|
21
|
+
inputMaxHeight = '100px'
|
|
22
22
|
} = _ref;
|
|
23
23
|
const hasSelection = selected && typeof selected === 'string';
|
|
24
24
|
const onClear = e => {
|
|
@@ -55,9 +55,6 @@ const Input = _ref => {
|
|
|
55
55
|
dynamic: [inputMaxHeight]
|
|
56
56
|
}, [`.root-input.__jsx-style-dynamic-selector{max-height:${inputMaxHeight};}`]));
|
|
57
57
|
};
|
|
58
|
-
Input.defaultProps = {
|
|
59
|
-
inputMaxHeight: '100px'
|
|
60
|
-
};
|
|
61
58
|
Input.propTypes = {
|
|
62
59
|
dataTest: PropTypes.string.isRequired,
|
|
63
60
|
className: PropTypes.string,
|
|
@@ -10,7 +10,7 @@ const Menu = _ref => {
|
|
|
10
10
|
options,
|
|
11
11
|
onChange,
|
|
12
12
|
selected,
|
|
13
|
-
empty,
|
|
13
|
+
empty = '',
|
|
14
14
|
handleFocusInput,
|
|
15
15
|
handleClose,
|
|
16
16
|
dataTest
|
|
@@ -62,9 +62,6 @@ const Menu = _ref => {
|
|
|
62
62
|
});
|
|
63
63
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
64
64
|
};
|
|
65
|
-
Menu.defaultProps = {
|
|
66
|
-
empty: ''
|
|
67
|
-
};
|
|
68
65
|
Menu.propTypes = {
|
|
69
66
|
dataTest: PropTypes.string.isRequired,
|
|
70
67
|
empty: PropTypes.node,
|
|
@@ -11,7 +11,7 @@ import { Menu } from './menu.js';
|
|
|
11
11
|
const SingleSelect = _ref => {
|
|
12
12
|
let {
|
|
13
13
|
className,
|
|
14
|
-
selected,
|
|
14
|
+
selected = '',
|
|
15
15
|
tabIndex,
|
|
16
16
|
maxHeight,
|
|
17
17
|
inputMaxHeight,
|
|
@@ -36,7 +36,7 @@ const SingleSelect = _ref => {
|
|
|
36
36
|
noMatchText,
|
|
37
37
|
initialFocus,
|
|
38
38
|
dense,
|
|
39
|
-
dataTest
|
|
39
|
+
dataTest = 'dhis2-uicore-singleselect'
|
|
40
40
|
} = _ref;
|
|
41
41
|
// If the select is filterable, use a filterable menu
|
|
42
42
|
const menu = filterable ? /*#__PURE__*/React.createElement(FilterableMenu, {
|
|
@@ -89,10 +89,6 @@ const SingleSelect = _ref => {
|
|
|
89
89
|
dynamic: [spacers.dp8]
|
|
90
90
|
}, [`.root.__jsx-style-dynamic-selector{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:${spacers.dp8};}`, ".root-input.__jsx-style-dynamic-selector{-webkit-flex:1;-ms-flex:1;flex:1;}"]));
|
|
91
91
|
};
|
|
92
|
-
SingleSelect.defaultProps = {
|
|
93
|
-
selected: '',
|
|
94
|
-
dataTest: 'dhis2-uicore-singleselect'
|
|
95
|
-
};
|
|
96
92
|
SingleSelect.propTypes = {
|
|
97
93
|
children: PropTypes.node,
|
|
98
94
|
className: PropTypes.string,
|
|
@@ -280,7 +280,8 @@ WithOptionsASelectionAndDisabled.args = {
|
|
|
280
280
|
WithOptionsASelectionAndDisabled.storyName = 'With options, a selection and disabled';
|
|
281
281
|
export const WithPrefix = WithOptionsTemplate.bind({});
|
|
282
282
|
WithPrefix.args = {
|
|
283
|
-
prefix: 'Prefix text'
|
|
283
|
+
prefix: 'Prefix text',
|
|
284
|
+
selected: '1'
|
|
284
285
|
};
|
|
285
286
|
export const WithPrefixAndSelection = WithOptionsTemplate.bind({});
|
|
286
287
|
WithPrefixAndSelection.args = {
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
1
4
|
import { sharedPropTypes } from '@dhis2/ui-constants';
|
|
2
5
|
import { Box } from '@dhis2-ui/box';
|
|
3
6
|
import { Field } from '@dhis2-ui/field';
|
|
@@ -28,7 +31,7 @@ class SingleSelectField extends React.Component {
|
|
|
28
31
|
warning,
|
|
29
32
|
disabled,
|
|
30
33
|
loading,
|
|
31
|
-
selected,
|
|
34
|
+
selected = SingleSelectField.defaultProps.selected,
|
|
32
35
|
tabIndex,
|
|
33
36
|
helpText,
|
|
34
37
|
validationText,
|
|
@@ -37,17 +40,17 @@ class SingleSelectField extends React.Component {
|
|
|
37
40
|
inputWidth,
|
|
38
41
|
children,
|
|
39
42
|
clearable,
|
|
40
|
-
clearText,
|
|
43
|
+
clearText = SingleSelectField.defaultProps.clearText,
|
|
41
44
|
filterable,
|
|
42
|
-
filterPlaceholder,
|
|
45
|
+
filterPlaceholder = SingleSelectField.defaultProps.filterPlaceholder,
|
|
43
46
|
placeholder,
|
|
44
47
|
prefix,
|
|
45
|
-
empty,
|
|
46
|
-
loadingText,
|
|
47
|
-
noMatchText,
|
|
48
|
+
empty = SingleSelectField.defaultProps.empty,
|
|
49
|
+
loadingText = SingleSelectField.defaultProps.loadingText,
|
|
50
|
+
noMatchText = SingleSelectField.defaultProps.noMatchText,
|
|
48
51
|
initialFocus,
|
|
49
52
|
dense,
|
|
50
|
-
dataTest
|
|
53
|
+
dataTest = SingleSelectField.defaultProps.dataTest
|
|
51
54
|
} = this.props;
|
|
52
55
|
return /*#__PURE__*/React.createElement(Field, {
|
|
53
56
|
className: className,
|
|
@@ -91,7 +94,7 @@ class SingleSelectField extends React.Component {
|
|
|
91
94
|
}, children)));
|
|
92
95
|
}
|
|
93
96
|
}
|
|
94
|
-
SingleSelectField
|
|
97
|
+
_defineProperty(SingleSelectField, "defaultProps", {
|
|
95
98
|
dataTest: 'dhis2-uiwidgets-singleselectfield',
|
|
96
99
|
selected: '',
|
|
97
100
|
clearText: () => i18n.t('Clear'),
|
|
@@ -99,7 +102,7 @@ SingleSelectField.defaultProps = {
|
|
|
99
102
|
filterPlaceholder: () => i18n.t('Type to filter options'),
|
|
100
103
|
loadingText: () => i18n.t('Loading options'),
|
|
101
104
|
noMatchText: () => i18n.t('No options found')
|
|
102
|
-
};
|
|
105
|
+
});
|
|
103
106
|
SingleSelectField.propTypes = {
|
|
104
107
|
/** Should be `SingleSelectOption` components */
|
|
105
108
|
children: PropTypes.node,
|
|
@@ -71,7 +71,13 @@ export default {
|
|
|
71
71
|
// default args for stories
|
|
72
72
|
args: {
|
|
73
73
|
// Fix default prop issues - causes 'i18n is not defined' error
|
|
74
|
-
|
|
74
|
+
dataTest: 'dhis2-uiwidgets-singleselectfield',
|
|
75
|
+
selected: '',
|
|
76
|
+
clearText: 'Clear',
|
|
77
|
+
empty: 'No data found',
|
|
78
|
+
filterPlaceholder: 'Type to filter options',
|
|
79
|
+
loadingText: 'Loading options',
|
|
80
|
+
noMatchText: 'No options found',
|
|
75
81
|
label: 'Default label',
|
|
76
82
|
children: options,
|
|
77
83
|
onChange: onChange
|
|
@@ -122,6 +128,12 @@ StatusError.args = {
|
|
|
122
128
|
...WithHelpText.args
|
|
123
129
|
};
|
|
124
130
|
StatusError.storyName = 'Status: Error';
|
|
131
|
+
export const StatusDisabled = Template.bind({});
|
|
132
|
+
StatusDisabled.args = {
|
|
133
|
+
disabled: true,
|
|
134
|
+
...WithHelpText.args
|
|
135
|
+
};
|
|
136
|
+
StatusDisabled.storyName = 'Status: Disabled';
|
|
125
137
|
export const Required = Template.bind({});
|
|
126
138
|
Required.args = {
|
|
127
139
|
required: true
|
|
@@ -10,7 +10,7 @@ const SingleSelectOption = _ref => {
|
|
|
10
10
|
disabled,
|
|
11
11
|
onClick,
|
|
12
12
|
className,
|
|
13
|
-
dataTest,
|
|
13
|
+
dataTest = 'dhis2-uicore-singleselectoption',
|
|
14
14
|
value
|
|
15
15
|
} = _ref;
|
|
16
16
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -27,9 +27,6 @@ const SingleSelectOption = _ref => {
|
|
|
27
27
|
dynamic: [colors.grey900, spacers.dp8, spacers.dp12, colors.grey200, colors.teal700, colors.white, colors.grey500]
|
|
28
28
|
}, [`div.__jsx-style-dynamic-selector{cursor:pointer;font-size:14px;-webkit-text-decoration:none;text-decoration:none;color:${colors.grey900};padding-block:${spacers.dp8};padding-inline:${spacers.dp12};}`, `div.__jsx-style-dynamic-selector:hover{background-color:${colors.grey200};}`, `div.__jsx-style-dynamic-selector:active,div.active.__jsx-style-dynamic-selector{background-color:${colors.teal700};color:${colors.white};cursor:auto;}`, `div.disabled.__jsx-style-dynamic-selector{color:${colors.grey500};cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, "div.disabled.__jsx-style-dynamic-selector:hover{background-color:initial;}"]));
|
|
29
29
|
};
|
|
30
|
-
SingleSelectOption.defaultProps = {
|
|
31
|
-
dataTest: 'dhis2-uicore-singleselectoption'
|
|
32
|
-
};
|
|
33
30
|
SingleSelectOption.propTypes = {
|
|
34
31
|
label: PropTypes.string.isRequired,
|
|
35
32
|
value: PropTypes.string.isRequired,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhis2-ui/select",
|
|
3
|
-
"version": "9.11.
|
|
3
|
+
"version": "9.11.5",
|
|
4
4
|
"description": "UI Select",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
"styled-jsx": "^4"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@dhis2-ui/box": "9.11.
|
|
37
|
-
"@dhis2-ui/button": "9.11.
|
|
38
|
-
"@dhis2-ui/card": "9.11.
|
|
39
|
-
"@dhis2-ui/checkbox": "9.11.
|
|
40
|
-
"@dhis2-ui/chip": "9.11.
|
|
41
|
-
"@dhis2-ui/field": "9.11.
|
|
42
|
-
"@dhis2-ui/input": "9.11.
|
|
43
|
-
"@dhis2-ui/layer": "9.11.
|
|
44
|
-
"@dhis2-ui/loader": "9.11.
|
|
45
|
-
"@dhis2-ui/popper": "9.11.
|
|
46
|
-
"@dhis2-ui/status-icon": "9.11.
|
|
47
|
-
"@dhis2-ui/tooltip": "9.11.
|
|
36
|
+
"@dhis2-ui/box": "9.11.5",
|
|
37
|
+
"@dhis2-ui/button": "9.11.5",
|
|
38
|
+
"@dhis2-ui/card": "9.11.5",
|
|
39
|
+
"@dhis2-ui/checkbox": "9.11.5",
|
|
40
|
+
"@dhis2-ui/chip": "9.11.5",
|
|
41
|
+
"@dhis2-ui/field": "9.11.5",
|
|
42
|
+
"@dhis2-ui/input": "9.11.5",
|
|
43
|
+
"@dhis2-ui/layer": "9.11.5",
|
|
44
|
+
"@dhis2-ui/loader": "9.11.5",
|
|
45
|
+
"@dhis2-ui/popper": "9.11.5",
|
|
46
|
+
"@dhis2-ui/status-icon": "9.11.5",
|
|
47
|
+
"@dhis2-ui/tooltip": "9.11.5",
|
|
48
48
|
"@dhis2/prop-types": "^3.1.2",
|
|
49
|
-
"@dhis2/ui-constants": "9.11.
|
|
50
|
-
"@dhis2/ui-icons": "9.11.
|
|
49
|
+
"@dhis2/ui-constants": "9.11.5",
|
|
50
|
+
"@dhis2/ui-icons": "9.11.5",
|
|
51
51
|
"classnames": "^2.3.1",
|
|
52
52
|
"prop-types": "^15.7.2"
|
|
53
53
|
},
|