@decisiv/ui-components 2.0.1-alpha.71 → 2.0.1-alpha.75
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/lib/atoms/BooleanInput/index.d.ts.map +1 -1
- package/lib/atoms/BooleanInput/index.js +19 -2
- package/lib/atoms/BooleanInput/index.test.js +17 -6
- package/lib/atoms/BooleanInput/types.d.ts +2 -0
- package/lib/atoms/BooleanInput/types.d.ts.map +1 -1
- package/lib/atoms/InputField/index.js +1 -1
- package/lib/atoms/OptionsList/Option.js +2 -2
- package/lib/atoms/OptionsList/index.test.js +77 -14
- package/lib/atoms/RequiredIcon.d.ts +9 -0
- package/lib/atoms/RequiredIcon.d.ts.map +1 -0
- package/lib/atoms/{InputField/RequiredIcon.js → RequiredIcon.js} +7 -3
- package/lib/components/Checkbox/index.d.ts.map +1 -1
- package/lib/components/Checkbox/index.js +3 -1
- package/lib/components/Checkbox/schema.d.ts.map +1 -1
- package/lib/components/Checkbox/schema.js +2 -0
- package/lib/components/Combobox/index.d.ts.map +1 -1
- package/lib/components/Combobox/index.js +27 -18
- package/lib/components/Combobox/index.test.js +172 -52
- package/lib/components/Filter/IconWrapper/index.d.ts +197 -0
- package/lib/components/Filter/IconWrapper/index.d.ts.map +1 -0
- package/lib/components/Filter/IconWrapper/index.js +35 -0
- package/lib/components/Filter/SimplePrimary/index.d.ts +31 -0
- package/lib/components/Filter/SimplePrimary/index.d.ts.map +1 -0
- package/lib/components/Filter/SimplePrimary/index.js +58 -0
- package/lib/components/Filter/SimplePrimary/index.test.js +34 -0
- package/lib/components/Filter/StyledFilter.d.ts +4 -0
- package/lib/components/Filter/StyledFilter.d.ts.map +1 -0
- package/lib/components/Filter/StyledFilter.js +39 -0
- package/lib/components/Filter/StyledLabel/index.d.ts +8 -0
- package/lib/components/Filter/StyledLabel/index.d.ts.map +1 -0
- package/lib/components/Filter/StyledLabel/index.js +30 -0
- package/lib/components/Filter/index.d.ts +27 -0
- package/lib/components/Filter/index.d.ts.map +1 -0
- package/lib/components/Filter/index.js +95 -0
- package/lib/components/Filter/index.test.js +41 -0
- package/lib/components/Filter/kind.d.ts +6 -0
- package/lib/components/Filter/kind.d.ts.map +1 -0
- package/lib/components/Filter/kind.js +45 -0
- package/lib/components/Filter/schema.d.ts +9 -0
- package/lib/components/Filter/schema.d.ts.map +1 -0
- package/lib/components/Filter/schema.js +32 -0
- package/lib/components/Filter/types.d.ts +17 -0
- package/lib/components/Filter/types.d.ts.map +1 -0
- package/lib/components/Filter/types.js +1 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/index.js +9 -0
- package/lib/providers/ConfigProvider/index.d.ts.map +1 -1
- package/lib/providers/ConfigProvider/index.js +5 -1
- package/package.json +2 -2
- package/lib/atoms/InputField/RequiredIcon.d.ts +0 -4
- package/lib/atoms/InputField/RequiredIcon.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/BooleanInput/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAKZ,sBAAsB,EACvB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/BooleanInput/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAKZ,sBAAsB,EACvB,MAAM,OAAO,CAAC;AAaf,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9C,cAAc,SAAS,CAAC;AAsGxB,QAAA,MAAM,mBAAmB,EAAE,sBAAsB,CAC/C,YAAY,EACZ,KAAK,CACqB,CAAC;AAE7B,eAAe,mBAAmB,CAAC"}
|
|
@@ -12,6 +12,12 @@ var _Check = _interopRequireDefault(require("@decisiv/iconix/lib/components/Chec
|
|
|
12
12
|
|
|
13
13
|
var _Message = _interopRequireDefault(require("../../components/Message"));
|
|
14
14
|
|
|
15
|
+
var _Tooltip = _interopRequireDefault(require("../../components/Tooltip"));
|
|
16
|
+
|
|
17
|
+
var _RequiredIcon = _interopRequireDefault(require("../RequiredIcon"));
|
|
18
|
+
|
|
19
|
+
var _useTranslations = _interopRequireDefault(require("../../utils/useTranslations"));
|
|
20
|
+
|
|
15
21
|
var _useUniqueId = _interopRequireDefault(require("../../utils/useUniqueId"));
|
|
16
22
|
|
|
17
23
|
var _elements = require("./elements");
|
|
@@ -50,6 +56,8 @@ var BooleanInput = function BooleanInput(props, ref) {
|
|
|
50
56
|
className = props.className,
|
|
51
57
|
disabled = props.disabled,
|
|
52
58
|
id = props.id,
|
|
59
|
+
required = props.required,
|
|
60
|
+
requiredMessageProp = props.requiredMessage,
|
|
53
61
|
label = props.label,
|
|
54
62
|
readOnly = props.readOnly,
|
|
55
63
|
size = props.size,
|
|
@@ -57,7 +65,7 @@ var BooleanInput = function BooleanInput(props, ref) {
|
|
|
57
65
|
inputRef = props.inputRef,
|
|
58
66
|
providedType = props.type,
|
|
59
67
|
warningMessage = props.warningMessage,
|
|
60
|
-
rest = _objectWithoutProperties(props, ["aria-describedby", "className", "disabled", "id", "label", "readOnly", "size", "status", "inputRef", "type", "warningMessage"]);
|
|
68
|
+
rest = _objectWithoutProperties(props, ["aria-describedby", "className", "disabled", "id", "required", "requiredMessage", "label", "readOnly", "size", "status", "inputRef", "type", "warningMessage"]);
|
|
61
69
|
|
|
62
70
|
var type = !validTypes.includes(providedType) ? 'checkbox' : providedType;
|
|
63
71
|
var uuid = (0, _useUniqueId.default)(id, 'input-');
|
|
@@ -67,6 +75,8 @@ var BooleanInput = function BooleanInput(props, ref) {
|
|
|
67
75
|
var Mark = (0, _react.useMemo)(function () {
|
|
68
76
|
return marks[type];
|
|
69
77
|
}, [type]);
|
|
78
|
+
var translate = (0, _useTranslations.default)();
|
|
79
|
+
var requiredMessage = translate(requiredMessageProp, 'textField.requiredMessage');
|
|
70
80
|
var warningMessageId = (0, _useUniqueId.default)(undefined, 'input-warning-', [warningMessage]);
|
|
71
81
|
return _react.default.createElement(_elements.Container, {
|
|
72
82
|
className: className,
|
|
@@ -78,6 +88,7 @@ var BooleanInput = function BooleanInput(props, ref) {
|
|
|
78
88
|
warningMessage: warningMessage
|
|
79
89
|
}, _react.default.createElement("input", _extends({}, rest, {
|
|
80
90
|
"aria-describedby": warningMessage ? "".concat(ariaDescribedBy || '', " ").concat(warningMessageId) : ariaDescribedBy,
|
|
91
|
+
required: required,
|
|
81
92
|
ref: inputRef,
|
|
82
93
|
id: uuid,
|
|
83
94
|
type: type // Checkbox/Radio inputs don't support read-only,
|
|
@@ -93,7 +104,13 @@ var BooleanInput = function BooleanInput(props, ref) {
|
|
|
93
104
|
}, _react.default.createElement(_elements.StyledInput, null, _react.default.createElement(Mark, {
|
|
94
105
|
size: size === 'small' ? 'small' : 'medium',
|
|
95
106
|
"aria-hidden": true
|
|
96
|
-
})), text && _react.default.createElement("span", null, text
|
|
107
|
+
})), text && _react.default.createElement("span", null, text, required && _react.default.createElement(_Tooltip.default, {
|
|
108
|
+
placement: "top",
|
|
109
|
+
target: _react.default.createElement(_RequiredIcon.default, {
|
|
110
|
+
marginTop: "-3px",
|
|
111
|
+
"aria-label": requiredMessage
|
|
112
|
+
})
|
|
113
|
+
}, requiredMessage))), warningMessage && _react.default.createElement(_Message.default, {
|
|
97
114
|
id: warningMessageId,
|
|
98
115
|
intent: "warning"
|
|
99
116
|
}, warningMessage));
|
|
@@ -95,35 +95,46 @@ describe('BooleanInput', function () {
|
|
|
95
95
|
var input = container.querySelector('input');
|
|
96
96
|
expect(input.checked).toBe(true);
|
|
97
97
|
});
|
|
98
|
-
it('renders correctly
|
|
98
|
+
it('renders correctly when required', function () {
|
|
99
99
|
var _render8 = (0, _react2.render)(_react.default.createElement(_.default, {
|
|
100
100
|
id: "input",
|
|
101
101
|
type: type,
|
|
102
|
-
|
|
102
|
+
required: true,
|
|
103
|
+
label: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
103
104
|
})),
|
|
104
105
|
container = _render8.container;
|
|
105
106
|
|
|
106
107
|
expect(container).toMatchSnapshot();
|
|
107
108
|
});
|
|
108
|
-
it('renders correctly with
|
|
109
|
+
it('renders correctly with status warning', function () {
|
|
109
110
|
var _render9 = (0, _react2.render)(_react.default.createElement(_.default, {
|
|
110
111
|
id: "input",
|
|
111
112
|
type: type,
|
|
112
|
-
|
|
113
|
+
status: "warning"
|
|
113
114
|
})),
|
|
114
115
|
container = _render9.container;
|
|
115
116
|
|
|
116
117
|
expect(container).toMatchSnapshot();
|
|
117
118
|
});
|
|
119
|
+
it('renders correctly with a warning message', function () {
|
|
120
|
+
var _render10 = (0, _react2.render)(_react.default.createElement(_.default, {
|
|
121
|
+
id: "input",
|
|
122
|
+
type: type,
|
|
123
|
+
warningMessage: "warning message"
|
|
124
|
+
})),
|
|
125
|
+
container = _render10.container;
|
|
126
|
+
|
|
127
|
+
expect(container).toMatchSnapshot();
|
|
128
|
+
});
|
|
118
129
|
});
|
|
119
130
|
});
|
|
120
131
|
it('falls back to type "checkbox" when provided an invalid type', function () {
|
|
121
|
-
var
|
|
132
|
+
var _render11 = (0, _react2.render)( // @ts-ignore invalid type
|
|
122
133
|
_react.default.createElement(_.default, {
|
|
123
134
|
type: "foo",
|
|
124
135
|
"data-testid": "input"
|
|
125
136
|
})),
|
|
126
|
-
getByTestId =
|
|
137
|
+
getByTestId = _render11.getByTestId;
|
|
127
138
|
|
|
128
139
|
expect(getByTestId('input').getAttribute('type')).toBe('checkbox');
|
|
129
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atoms/BooleanInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEtD,oBAAY,QAAQ,GAAG,gBAAgB,CAAC;AACxC,oBAAY,YAAY,GAAG,cAAc,CAAC;AAE1C,aAAK,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atoms/BooleanInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEtD,oBAAY,QAAQ,GAAG,gBAAgB,CAAC;AACxC,oBAAY,YAAY,GAAG,cAAc,CAAC;AAE1C,aAAK,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -29,7 +29,7 @@ var _Containers = require("./Containers");
|
|
|
29
29
|
|
|
30
30
|
var _InputLabel = _interopRequireDefault(require("./InputLabel"));
|
|
31
31
|
|
|
32
|
-
var _RequiredIcon = _interopRequireDefault(require("
|
|
32
|
+
var _RequiredIcon = _interopRequireDefault(require("../RequiredIcon"));
|
|
33
33
|
|
|
34
34
|
var _HelpMessage = _interopRequireDefault(require("./HelpMessage"));
|
|
35
35
|
|
|
@@ -138,8 +138,8 @@ function Option(props) {
|
|
|
138
138
|
updateActiveId(disabled ? '' : id);
|
|
139
139
|
}, [setInputMethod, updateActiveId, disabled, id]);
|
|
140
140
|
var handleClick = (0, _react.useCallback)(function () {
|
|
141
|
-
toggleItemSelection(id);
|
|
142
|
-
}, [toggleItemSelection, id]);
|
|
141
|
+
if (!disabled) toggleItemSelection(id);
|
|
142
|
+
}, [toggleItemSelection, id, disabled]);
|
|
143
143
|
var LabelWrapper = (0, _react.useMemo)(function () {
|
|
144
144
|
return function (_ref2) {
|
|
145
145
|
var children = _ref2.children;
|
|
@@ -41,6 +41,8 @@ var item0Id = '0';
|
|
|
41
41
|
var item0Label = 'Option 0';
|
|
42
42
|
var item2Id = '2';
|
|
43
43
|
var item2Label = 'Option 2';
|
|
44
|
+
var disabledItemLabel = 'Option 4';
|
|
45
|
+
var disabledItemId = '4';
|
|
44
46
|
var items = [{
|
|
45
47
|
id: item0Id,
|
|
46
48
|
label: item0Label,
|
|
@@ -75,8 +77,8 @@ var items = [{
|
|
|
75
77
|
}, {
|
|
76
78
|
label: 'Category 2',
|
|
77
79
|
items: [{
|
|
78
|
-
id:
|
|
79
|
-
label:
|
|
80
|
+
id: disabledItemId,
|
|
81
|
+
label: disabledItemLabel,
|
|
80
82
|
value: '4',
|
|
81
83
|
disabled: true
|
|
82
84
|
}, {
|
|
@@ -189,15 +191,58 @@ describe('OptionsList', function () {
|
|
|
189
191
|
expect(onChange).toHaveBeenCalledWith(selectedItem.id);
|
|
190
192
|
expect(getByLabelText(selectedItem.label)).toBeChecked();
|
|
191
193
|
});
|
|
194
|
+
describe('selecting disabled element with keyboard', function () {
|
|
195
|
+
it('selects an item with Enter or Space key', function () {
|
|
196
|
+
var onChange = jest.fn();
|
|
197
|
+
var onlyDisabledItems = [{
|
|
198
|
+
id: '2',
|
|
199
|
+
label: 'Option 2',
|
|
200
|
+
value: '2',
|
|
201
|
+
disabled: true
|
|
202
|
+
}, {
|
|
203
|
+
id: disabledItemId,
|
|
204
|
+
label: disabledItemLabel,
|
|
205
|
+
value: '4',
|
|
206
|
+
disabled: true
|
|
207
|
+
}];
|
|
208
|
+
|
|
209
|
+
var _render5 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
210
|
+
items: onlyDisabledItems,
|
|
211
|
+
onChange: onChange
|
|
212
|
+
}))),
|
|
213
|
+
getByLabelText = _render5.getByLabelText,
|
|
214
|
+
container = _render5.container;
|
|
215
|
+
|
|
216
|
+
var optionsList = container.querySelector('ul'); // simulate it is focused while tabbing
|
|
217
|
+
|
|
218
|
+
_react2.fireEvent.keyDown(container, {
|
|
219
|
+
key: 'Tab'
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
_react2.fireEvent.focus(optionsList);
|
|
223
|
+
|
|
224
|
+
_react2.fireEvent.keyDown(optionsList, {
|
|
225
|
+
key: 'ArrowDown'
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
_react2.fireEvent.keyDown(optionsList, {
|
|
229
|
+
key: 'Enter'
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
expect(onChange).not.toHaveBeenCalledWith(disabledItemId);
|
|
233
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
234
|
+
expect(getByLabelText(disabledItemLabel)).not.toBeChecked();
|
|
235
|
+
});
|
|
236
|
+
});
|
|
192
237
|
describe('single selection', function () {
|
|
193
238
|
it('calls onChange with id when item is clicked', function () {
|
|
194
239
|
var onChange = jest.fn();
|
|
195
240
|
|
|
196
|
-
var
|
|
241
|
+
var _render6 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
197
242
|
onChange: onChange
|
|
198
243
|
}))),
|
|
199
|
-
getByText =
|
|
200
|
-
getByLabelText =
|
|
244
|
+
getByText = _render6.getByText,
|
|
245
|
+
getByLabelText = _render6.getByLabelText;
|
|
201
246
|
|
|
202
247
|
var item = items[0];
|
|
203
248
|
|
|
@@ -212,15 +257,33 @@ describe('OptionsList', function () {
|
|
|
212
257
|
|
|
213
258
|
expect(getByLabelText(subItem.label)).toBeChecked();
|
|
214
259
|
});
|
|
260
|
+
describe('disabled element', function () {
|
|
261
|
+
it('does not calls onChange when item is clicked', function () {
|
|
262
|
+
var onChange = jest.fn();
|
|
263
|
+
|
|
264
|
+
var _render7 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
265
|
+
onChange: onChange
|
|
266
|
+
}))),
|
|
267
|
+
getByText = _render7.getByText,
|
|
268
|
+
getByLabelText = _render7.getByLabelText;
|
|
269
|
+
|
|
270
|
+
_react2.fireEvent.click(getByText(disabledItemLabel));
|
|
271
|
+
|
|
272
|
+
expect(onChange).not.toHaveBeenLastCalledWith(disabledItemId);
|
|
273
|
+
expect(onChange).not.toHaveBeenCalled(); // the item shouldn't be marked as selected
|
|
274
|
+
|
|
275
|
+
expect(getByLabelText(disabledItemLabel)).not.toBeChecked();
|
|
276
|
+
});
|
|
277
|
+
});
|
|
215
278
|
describe('controlled', function () {
|
|
216
279
|
it('prefers value over internal', function () {
|
|
217
280
|
var selected = items[1];
|
|
218
281
|
|
|
219
|
-
var
|
|
282
|
+
var _render8 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
220
283
|
selected: selected.id
|
|
221
284
|
}))),
|
|
222
|
-
getByText =
|
|
223
|
-
getByLabelText =
|
|
285
|
+
getByText = _render8.getByText,
|
|
286
|
+
getByLabelText = _render8.getByLabelText;
|
|
224
287
|
|
|
225
288
|
var item = items[0];
|
|
226
289
|
|
|
@@ -235,12 +298,12 @@ describe('OptionsList', function () {
|
|
|
235
298
|
it('calls onChange with array of selected ids when item is clicked', function () {
|
|
236
299
|
var onChange = jest.fn();
|
|
237
300
|
|
|
238
|
-
var
|
|
301
|
+
var _render9 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
239
302
|
onChange: onChange,
|
|
240
303
|
multiple: true
|
|
241
304
|
}))),
|
|
242
|
-
getByText =
|
|
243
|
-
getByLabelText =
|
|
305
|
+
getByText = _render9.getByText,
|
|
306
|
+
getByLabelText = _render9.getByLabelText;
|
|
244
307
|
|
|
245
308
|
var item = items[0];
|
|
246
309
|
|
|
@@ -279,12 +342,12 @@ describe('OptionsList', function () {
|
|
|
279
342
|
onClick: onClick
|
|
280
343
|
}];
|
|
281
344
|
|
|
282
|
-
var
|
|
345
|
+
var _render10 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
|
|
283
346
|
actions: actions,
|
|
284
347
|
multiple: true
|
|
285
348
|
}))),
|
|
286
|
-
baseElement =
|
|
287
|
-
getByText =
|
|
349
|
+
baseElement = _render10.baseElement,
|
|
350
|
+
getByText = _render10.getByText;
|
|
288
351
|
|
|
289
352
|
actions.forEach(function (_ref5) {
|
|
290
353
|
var label = _ref5.text;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RefForwardingComponent, RefAttributes } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
marginLeft?: string;
|
|
4
|
+
marginTop?: string;
|
|
5
|
+
}
|
|
6
|
+
declare type RequiredIconType = RefForwardingComponent<HTMLDivElement, RefAttributes<HTMLDivElement> & Props>;
|
|
7
|
+
declare const RequiredIcon: RequiredIconType;
|
|
8
|
+
export default RequiredIcon;
|
|
9
|
+
//# sourceMappingURL=RequiredIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequiredIcon.d.ts","sourceRoot":"","sources":["../../src/atoms/RequiredIcon.tsx"],"names":[],"mappings":"AACA,OAAc,EACZ,sBAAsB,EAGtB,aAAa,EACd,MAAM,OAAO,CAAC;AAOf,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,aAAK,gBAAgB,GAAG,sBAAsB,CAC5C,cAAc,EACd,aAAa,CAAC,cAAc,CAAC,GAAG,KAAK,CACtC,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,gBASnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -21,10 +21,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
21
21
|
|
|
22
22
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
23
23
|
|
|
24
|
-
var RequiredIconContainer = _styledComponents.default.
|
|
24
|
+
var RequiredIconContainer = _styledComponents.default.div.withConfig({
|
|
25
25
|
displayName: "RequiredIcon__RequiredIconContainer",
|
|
26
|
-
componentId: "
|
|
27
|
-
})(["margin-left:
|
|
26
|
+
componentId: "sc-18pnvm5-0"
|
|
27
|
+
})(["display:inline;margin-left:", ";margin-top:", ";"], function (props) {
|
|
28
|
+
return props.marginLeft || '3px';
|
|
29
|
+
}, function (props) {
|
|
30
|
+
return props.marginTop || '0px';
|
|
31
|
+
});
|
|
28
32
|
|
|
29
33
|
var RequiredIcon = (0, _react.forwardRef)(function (props, ref) {
|
|
30
34
|
return _react.default.createElement(RequiredIconContainer, _extends({}, props, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAO,sBAAsB,EAAc,MAAM,OAAO,CAAC;AAGvE,OAAqB,EACnB,KAAK,IAAI,UAAU,EACnB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,oBAAY,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAQ7C,QAAA,MAAM,eAAe,EAAE,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAEhE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAO,sBAAsB,EAAc,MAAM,OAAO,CAAC;AAGvE,OAAqB,EACnB,KAAK,IAAI,UAAU,EACnB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,oBAAY,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAQ7C,QAAA,MAAM,eAAe,EAAE,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAEhE,CAAC;AAmBF,eAAe,eAAe,CAAC"}
|
|
@@ -33,13 +33,15 @@ CheckboxWithRef.propTypes = {
|
|
|
33
33
|
label: _propTypes.default.string,
|
|
34
34
|
disabled: _propTypes.default.bool,
|
|
35
35
|
readOnly: _propTypes.default.bool,
|
|
36
|
+
required: _propTypes.default.bool,
|
|
36
37
|
size: _propTypes.default.oneOf(['normal', 'small']),
|
|
37
38
|
status: _propTypes.default.oneOf(['normal', 'warning']),
|
|
38
39
|
warningMessage: _propTypes.default.string
|
|
39
40
|
};
|
|
40
41
|
CheckboxWithRef.defaultProps = {
|
|
41
42
|
size: 'normal',
|
|
42
|
-
status: 'normal'
|
|
43
|
+
status: 'normal',
|
|
44
|
+
required: false
|
|
43
45
|
};
|
|
44
46
|
var _default = CheckboxWithRef;
|
|
45
47
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/schema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,KAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/schema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,KAAwC,CAAC;AA4DrD,eAAe,MAAM,CAAC"}
|
|
@@ -18,6 +18,8 @@ schema.propTypes = {
|
|
|
18
18
|
defaultChecked: _reactDesc.PropTypes.bool.description('Whether or not the checkbox is initially checked. Use if you do not want to manually control the state.').defaultValue('false'),
|
|
19
19
|
disabled: _reactDesc.PropTypes.bool.description('If the checkbox should be disabled and ignore user interactions.').defaultValue('false'),
|
|
20
20
|
readOnly: _reactDesc.PropTypes.bool.description('Ignore user interactions, but still display the label in a readable manner.').defaultValue('false'),
|
|
21
|
+
required: _reactDesc.PropTypes.bool.description('Whether or not the checkbox should be required. Renders an indicator if true.').defaultValue('false'),
|
|
22
|
+
requiredMessage: _reactDesc.PropTypes.string.description('The text to display in the tooltip when hovering over the required icon. It displays "Required" by default').defaultValue('Required'),
|
|
21
23
|
size: _reactDesc.PropTypes.oneOf(['normal', 'small']).description('Controls the size of the checkbox and label.').defaultValue('normal'),
|
|
22
24
|
status: _reactDesc.PropTypes.oneOf(['normal', 'warning']).description('Whether or not to render the warning state.').defaultValue('normal'),
|
|
23
25
|
warningMessage: _reactDesc.PropTypes.string.description('The warning message to display below the checkbox. If provided, the `status` prop is automatically set to `warning`.')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/index.tsx"],"names":[],"mappings":"AASA,OAAc,EAGZ,sBAAsB,EAQvB,MAAM,OAAO,CAAC;AA2Bf,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAQ,MAAM,SAAS,CAAC;AAqiBhE,QAAA,MAAM,eAAe,EAAE,sBAAsB,CAC3C,gBAAgB,EAChB,aAAa,CACS,CAAC;AAIzB,eAAe,eAAe,CAAC"}
|
|
@@ -13,6 +13,8 @@ var _get = _interopRequireDefault(require("lodash/get"));
|
|
|
13
13
|
|
|
14
14
|
var _union = _interopRequireDefault(require("lodash/union"));
|
|
15
15
|
|
|
16
|
+
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
17
|
+
|
|
16
18
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
17
19
|
|
|
18
20
|
var _last = _interopRequireDefault(require("lodash/last"));
|
|
@@ -175,17 +177,38 @@ function Combobox(props, ref) {
|
|
|
175
177
|
return !old;
|
|
176
178
|
});
|
|
177
179
|
}, [setIsPopoverVisibleState]);
|
|
180
|
+
/**
|
|
181
|
+
* This generates a flat list of the options (including those in categories)
|
|
182
|
+
* in the order they are presented in the dropdown list. Filtering disabled elements.
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
var flatOptions = (0, _react.useMemo)(function () {
|
|
186
|
+
return options.reduce(function (acc, curr) {
|
|
187
|
+
if ((0, _utils.isCategory)(curr)) {
|
|
188
|
+
var items = (0, _isArray.default)(curr.items) ? curr.items.filter(function (option) {
|
|
189
|
+
return !option.disabled;
|
|
190
|
+
}) : [];
|
|
191
|
+
return acc.concat(items);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (!curr.disabled) {
|
|
195
|
+
return acc.concat(curr);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return acc;
|
|
199
|
+
}, []);
|
|
200
|
+
}, [options]);
|
|
178
201
|
(0, _react.useEffect)(function () {
|
|
179
|
-
// Set the "default" active ID to the first, if it exists.
|
|
180
|
-
if (!(0, _isEmpty.default)(
|
|
181
|
-
setActiveId((0, _get.default)(
|
|
202
|
+
// Set the "default" active ID to the first in flatOptions, if it exists.
|
|
203
|
+
if (!(0, _isEmpty.default)(flatOptions) && !activeId) {
|
|
204
|
+
setActiveId((0, _get.default)(flatOptions, '0.id'));
|
|
182
205
|
} // For async comboboxes, if the input is focused, the dropdown should be open.
|
|
183
206
|
|
|
184
207
|
|
|
185
208
|
if (isFocused && variant === 'async' || multiple && internalInputValue !== '') {
|
|
186
209
|
updateIsPopoverVisible(true);
|
|
187
210
|
}
|
|
188
|
-
}, [activeId, isFocused,
|
|
211
|
+
}, [activeId, isFocused, flatOptions, variant, multiple, internalInputValue, updateIsPopoverVisible]); // The selectedValue is the id of the selectedOption, or an empty string if none selected.
|
|
189
212
|
|
|
190
213
|
var _useState7 = (0, _react.useState)(!Array.isArray(propValue) && propValue || !Array.isArray(defaultValue) && defaultValue || undefined),
|
|
191
214
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
@@ -344,20 +367,6 @@ function Combobox(props, ref) {
|
|
|
344
367
|
setIsFocused(true);
|
|
345
368
|
onFocus && onFocus(event);
|
|
346
369
|
}, [onFocus, updateIsPopoverVisible, variant]);
|
|
347
|
-
/**
|
|
348
|
-
* This generates a flat list of the options (including those in categories)
|
|
349
|
-
* in the order they are presented in the dropdown list.
|
|
350
|
-
*/
|
|
351
|
-
|
|
352
|
-
var flatOptions = (0, _react.useMemo)(function () {
|
|
353
|
-
return options.reduce(function (acc, curr) {
|
|
354
|
-
if ((0, _utils.isCategory)(curr)) {
|
|
355
|
-
return acc.concat(curr.items);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
return acc.concat(curr);
|
|
359
|
-
}, []);
|
|
360
|
-
}, [options]);
|
|
361
370
|
/**
|
|
362
371
|
* Pressing certain keys when focused on the Combobox component should trigger some actions.
|
|
363
372
|
*/
|