@pingux/astro 1.26.1-alpha.7 → 1.27.0-alpha.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/lib/cjs/components/MultivaluesField/MultivaluesField.js +50 -11
- package/lib/cjs/components/MultivaluesField/MultivaluesField.stories.js +32 -2
- package/lib/cjs/components/MultivaluesField/MultivaluesField.test.js +34 -0
- package/lib/cjs/styles/forms/input.js +2 -0
- package/lib/cjs/styles/variants/boxes.js +1 -1
- package/lib/components/MultivaluesField/MultivaluesField.js +52 -12
- package/lib/components/MultivaluesField/MultivaluesField.stories.js +27 -0
- package/lib/components/MultivaluesField/MultivaluesField.test.js +26 -0
- package/lib/styles/forms/input.js +2 -0
- package/lib/styles/variants/boxes.js +1 -1
- package/package.json +1 -1
@@ -84,7 +84,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
84
84
|
|
85
85
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
86
86
|
|
87
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var
|
87
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
88
88
|
|
89
89
|
/**
|
90
90
|
* Complex control that lets you choose several tags from the dropdown list.
|
@@ -96,7 +96,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
96
96
|
* Stately.
|
97
97
|
*/
|
98
98
|
var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
99
|
-
var
|
99
|
+
var _context6;
|
100
100
|
|
101
101
|
var defaultSelectedKeys = props.defaultSelectedKeys,
|
102
102
|
direction = props.direction,
|
@@ -231,7 +231,7 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
231
231
|
var onResize = (0, _react.useCallback)(function () {
|
232
232
|
/* istanbul ignore next */
|
233
233
|
if (inputRef.current) {
|
234
|
-
setMenuWidth(inputRef.current.offsetWidth);
|
234
|
+
setMenuWidth("".concat(inputRef.current.offsetWidth + 2, "px"));
|
235
235
|
}
|
236
236
|
}, [inputRef, isOpen, setMenuWidth]);
|
237
237
|
(0, _utils.useResizeObserver)({
|
@@ -323,7 +323,39 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
323
323
|
selectionManager.toggleSelection(key);
|
324
324
|
};
|
325
325
|
|
326
|
-
var
|
326
|
+
var readOnlyTextItem = function readOnlyTextItem(key, name) {
|
327
|
+
return (0, _react2.jsx)(_.Text, {
|
328
|
+
key: key,
|
329
|
+
role: "presentation",
|
330
|
+
label: name,
|
331
|
+
variant: "bodyStrong",
|
332
|
+
sx: {
|
333
|
+
bg: 'accent.95',
|
334
|
+
fontSize: 'sm',
|
335
|
+
alignSelf: 'center',
|
336
|
+
':not(:last-of-type):after': {
|
337
|
+
content: "\",\xA0\""
|
338
|
+
}
|
339
|
+
}
|
340
|
+
}, name);
|
341
|
+
};
|
342
|
+
|
343
|
+
var readOnlyInputEntry = (0, _react2.jsx)(_react["default"].Fragment, null, isReadOnly && (readOnlyKeys.length ? (0, _map["default"])(readOnlyKeys).call(readOnlyKeys, function (key) {
|
344
|
+
var _context4, _context5;
|
345
|
+
|
346
|
+
var item = (0, _find["default"])(_context4 = (0, _concat["default"])(_context5 = []).call(_context5, initialItems, customItems)).call(_context4, function (el) {
|
347
|
+
return el.key === key;
|
348
|
+
});
|
349
|
+
|
350
|
+
if (item) {
|
351
|
+
return readOnlyTextItem(item.key, item.name);
|
352
|
+
}
|
353
|
+
|
354
|
+
return null;
|
355
|
+
}) : (0, _map["default"])(initialItems).call(initialItems, function (item) {
|
356
|
+
return readOnlyTextItem(item.key, item.name);
|
357
|
+
})));
|
358
|
+
var readOnlyItems = (0, _react2.jsx)(_react["default"].Fragment, null, !isReadOnly && (0, _map["default"])(readOnlyKeys).call(readOnlyKeys, function (key) {
|
327
359
|
var item = (0, _find["default"])(initialItems).call(initialItems, function (el) {
|
328
360
|
return el.key === key;
|
329
361
|
});
|
@@ -345,10 +377,10 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
345
377
|
|
346
378
|
return null;
|
347
379
|
}));
|
348
|
-
var selectedItems = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(
|
349
|
-
var
|
380
|
+
var selectedItems = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(_context6 = (0, _from["default"])(selectionManager.selectedKeys)).call(_context6, function (key) {
|
381
|
+
var _context7, _context8;
|
350
382
|
|
351
|
-
var item = (0, _find["default"])(
|
383
|
+
var item = (0, _find["default"])(_context7 = (0, _concat["default"])(_context8 = []).call(_context8, initialItems, customItems)).call(_context7, function (el) {
|
352
384
|
return el.key === key;
|
353
385
|
});
|
354
386
|
|
@@ -403,7 +435,11 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
403
435
|
placeholder: placeholder,
|
404
436
|
wrapperProps: {
|
405
437
|
ref: inputRef,
|
406
|
-
variant: 'forms.input.multivaluesWrapper'
|
438
|
+
variant: 'forms.input.multivaluesWrapper',
|
439
|
+
sx: isReadOnly && {
|
440
|
+
boxShadow: 'inset 0 0 0 100px #e5e9f8',
|
441
|
+
border: 'none'
|
442
|
+
}
|
407
443
|
},
|
408
444
|
status: status
|
409
445
|
});
|
@@ -414,12 +450,14 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
414
450
|
if (_onBlur) _onBlur(e.nativeEvent);
|
415
451
|
},
|
416
452
|
onChange: function onChange(e) {
|
417
|
-
setIsOpen(true);
|
418
453
|
setFilterString(e.target.value);
|
419
454
|
if (onInputChange) onInputChange(e.target.value);
|
420
455
|
},
|
421
456
|
onFocus: function onFocus(e) {
|
422
|
-
|
457
|
+
if (!isReadOnly) {
|
458
|
+
setIsOpen(true);
|
459
|
+
}
|
460
|
+
|
423
461
|
if (_onFocus) _onFocus(e.nativeEvent);
|
424
462
|
},
|
425
463
|
onKeyDown: keyDown,
|
@@ -427,7 +465,7 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
427
465
|
return _onKeyUp && _onKeyUp(e.nativeEvent);
|
428
466
|
},
|
429
467
|
slots: {
|
430
|
-
beforeInput: (0, _react2.jsx)(_react["default"].Fragment, null, readOnlyItems, " ", selectedItems)
|
468
|
+
beforeInput: (0, _react2.jsx)(_react["default"].Fragment, null, readOnlyItems, " ", selectedItems, readOnlyInputEntry)
|
431
469
|
},
|
432
470
|
value: filterString
|
433
471
|
}, inputProps)), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
|
@@ -570,6 +608,7 @@ MultivaluesField.propTypes = {
|
|
570
608
|
};
|
571
609
|
MultivaluesField.defaultProps = {
|
572
610
|
direction: 'bottom',
|
611
|
+
isReadOnly: false,
|
573
612
|
mode: 'restrictive',
|
574
613
|
scrollBoxProps: {
|
575
614
|
maxHeight: 300
|
@@ -14,7 +14,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
14
14
|
value: true
|
15
15
|
});
|
16
16
|
|
17
|
-
exports["default"] = exports.WithReadOnlyValues = exports.WithDisabledKeys = exports.WithCustomValues = exports.WithCustomSize = exports.Uncontrolled = exports.Error = exports.Default = exports.Controlled = void 0;
|
17
|
+
exports["default"] = exports.WithReadOnlyValues = exports.WithDisabledKeys = exports.WithCustomValues = exports.WithCustomSize = exports.Uncontrolled = exports.ReadOnlyField = exports.Error = exports.Default = exports.Controlled = void 0;
|
18
18
|
|
19
19
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
20
20
|
|
@@ -398,4 +398,34 @@ var Error = function Error(args) {
|
|
398
398
|
}));
|
399
399
|
};
|
400
400
|
|
401
|
-
exports.Error = Error;
|
401
|
+
exports.Error = Error;
|
402
|
+
|
403
|
+
var ReadOnlyField = function ReadOnlyField(args) {
|
404
|
+
var _useState19 = (0, _react.useState)(false),
|
405
|
+
_useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
|
406
|
+
isOpen = _useState20[0],
|
407
|
+
setIsOpen = _useState20[1];
|
408
|
+
|
409
|
+
var direction = args.direction;
|
410
|
+
|
411
|
+
var onOpenChange = function onOpenChange() {
|
412
|
+
setIsOpen(true);
|
413
|
+
};
|
414
|
+
|
415
|
+
return (0, _react2.jsx)(_.OverlayProvider // note: spacing for demo purpose only so that the select list renders in the correct place
|
416
|
+
, {
|
417
|
+
style: setOverlayStyle(direction, isOpen, '50%', '50%', '20%')
|
418
|
+
}, (0, _react2.jsx)(_.MultivaluesField, (0, _extends2["default"])({
|
419
|
+
items: items
|
420
|
+
}, args, {
|
421
|
+
isReadOnly: true,
|
422
|
+
onOpenChange: onOpenChange
|
423
|
+
}), function (item) {
|
424
|
+
return (0, _react2.jsx)(_.Item, {
|
425
|
+
key: item.key,
|
426
|
+
"data-id": item.name
|
427
|
+
}, item.name);
|
428
|
+
}));
|
429
|
+
};
|
430
|
+
|
431
|
+
exports.ReadOnlyField = ReadOnlyField;
|
@@ -493,4 +493,38 @@ test(' multivalue field with helper text', function () {
|
|
493
493
|
|
494
494
|
expect(helper).toBeInTheDocument();
|
495
495
|
expect(helper).toHaveClass("is-".concat(_statuses["default"].ERROR));
|
496
|
+
});
|
497
|
+
test('read only field', function () {
|
498
|
+
var isReadOnly = true;
|
499
|
+
getComponent({
|
500
|
+
isReadOnly: isReadOnly
|
501
|
+
});
|
502
|
+
|
503
|
+
var chip = _testWrapper.screen.queryAllByRole('presentation');
|
504
|
+
|
505
|
+
expect(chip[0]).toHaveAttribute('label', items[0].name);
|
506
|
+
expect(chip[1]).toHaveAttribute('label', items[1].name);
|
507
|
+
expect(chip[2]).toHaveAttribute('label', items[2].name);
|
508
|
+
|
509
|
+
var textArea = _testWrapper.screen.getByLabelText(defaultProps.label);
|
510
|
+
|
511
|
+
expect(textArea).toHaveClass('is-read-only');
|
512
|
+
expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
|
513
|
+
});
|
514
|
+
test('read only keys with read only field', function () {
|
515
|
+
var isReadOnly = true;
|
516
|
+
getComponent({
|
517
|
+
isReadOnly: isReadOnly,
|
518
|
+
readOnlyKeys: [items[1].key, items[2].key]
|
519
|
+
});
|
520
|
+
|
521
|
+
var chip = _testWrapper.screen.queryAllByRole('presentation');
|
522
|
+
|
523
|
+
expect(chip[0]).toHaveAttribute('label', items[1].name);
|
524
|
+
expect(chip[1]).toHaveAttribute('label', items[2].name);
|
525
|
+
|
526
|
+
var textArea = _testWrapper.screen.getByLabelText(defaultProps.label);
|
527
|
+
|
528
|
+
expect(textArea).toHaveClass('is-read-only');
|
529
|
+
expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
|
496
530
|
});
|
@@ -173,7 +173,7 @@ var selectedItemChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
|
173
173
|
});
|
174
174
|
|
175
175
|
var readOnlyChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
176
|
-
p:
|
176
|
+
p: 2.54,
|
177
177
|
border: '1px solid',
|
178
178
|
borderColor: 'neutral.80'
|
179
179
|
});
|
@@ -18,7 +18,7 @@ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
|
18
18
|
|
19
19
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
20
20
|
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var
|
21
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
22
22
|
|
23
23
|
import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
24
24
|
import PropTypes from 'prop-types';
|
@@ -28,7 +28,7 @@ import { FocusScope } from '@react-aria/focus';
|
|
28
28
|
import { useListState } from '@react-stately/list';
|
29
29
|
import { DismissButton, useOverlayPosition } from '@react-aria/overlays';
|
30
30
|
import { useLayoutEffect, useResizeObserver } from '@react-aria/utils';
|
31
|
-
import { Box, Chip, Icon, IconButton, PopoverContainer, ScrollBox, TextField } from '../..';
|
31
|
+
import { Box, Chip, Icon, IconButton, PopoverContainer, ScrollBox, Text, TextField } from '../..';
|
32
32
|
import ListBox from '../ListBox';
|
33
33
|
import { isIterableProp } from '../../utils/devUtils/props/isIterable';
|
34
34
|
import { usePropWarning } from '../../hooks';
|
@@ -46,7 +46,7 @@ import FieldHelperText from '../FieldHelperText';
|
|
46
46
|
|
47
47
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
48
48
|
var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
49
|
-
var
|
49
|
+
var _context6;
|
50
50
|
|
51
51
|
var defaultSelectedKeys = props.defaultSelectedKeys,
|
52
52
|
direction = props.direction,
|
@@ -181,7 +181,7 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
181
181
|
var onResize = useCallback(function () {
|
182
182
|
/* istanbul ignore next */
|
183
183
|
if (inputRef.current) {
|
184
|
-
setMenuWidth(inputRef.current.offsetWidth);
|
184
|
+
setMenuWidth("".concat(inputRef.current.offsetWidth + 2, "px"));
|
185
185
|
}
|
186
186
|
}, [inputRef, isOpen, setMenuWidth]);
|
187
187
|
useResizeObserver({
|
@@ -273,7 +273,40 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
273
273
|
selectionManager.toggleSelection(key);
|
274
274
|
};
|
275
275
|
|
276
|
-
var
|
276
|
+
var readOnlyTextItem = function readOnlyTextItem(key, name) {
|
277
|
+
return ___EmotionJSX(Text, {
|
278
|
+
key: key,
|
279
|
+
role: "presentation",
|
280
|
+
label: name,
|
281
|
+
variant: "bodyStrong",
|
282
|
+
sx: {
|
283
|
+
bg: 'accent.95',
|
284
|
+
fontSize: 'sm',
|
285
|
+
alignSelf: 'center',
|
286
|
+
':not(:last-of-type):after': {
|
287
|
+
content: "\",\xA0\""
|
288
|
+
}
|
289
|
+
}
|
290
|
+
}, name);
|
291
|
+
};
|
292
|
+
|
293
|
+
var readOnlyInputEntry = ___EmotionJSX(React.Fragment, null, isReadOnly && (readOnlyKeys.length ? _mapInstanceProperty(readOnlyKeys).call(readOnlyKeys, function (key) {
|
294
|
+
var _context4, _context5;
|
295
|
+
|
296
|
+
var item = _findInstanceProperty(_context4 = _concatInstanceProperty(_context5 = []).call(_context5, initialItems, customItems)).call(_context4, function (el) {
|
297
|
+
return el.key === key;
|
298
|
+
});
|
299
|
+
|
300
|
+
if (item) {
|
301
|
+
return readOnlyTextItem(item.key, item.name);
|
302
|
+
}
|
303
|
+
|
304
|
+
return null;
|
305
|
+
}) : _mapInstanceProperty(initialItems).call(initialItems, function (item) {
|
306
|
+
return readOnlyTextItem(item.key, item.name);
|
307
|
+
})));
|
308
|
+
|
309
|
+
var readOnlyItems = ___EmotionJSX(React.Fragment, null, !isReadOnly && _mapInstanceProperty(readOnlyKeys).call(readOnlyKeys, function (key) {
|
277
310
|
var item = _findInstanceProperty(initialItems).call(initialItems, function (el) {
|
278
311
|
return el.key === key;
|
279
312
|
});
|
@@ -296,10 +329,10 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
296
329
|
return null;
|
297
330
|
}));
|
298
331
|
|
299
|
-
var selectedItems = ___EmotionJSX(React.Fragment, null, _mapInstanceProperty(
|
300
|
-
var
|
332
|
+
var selectedItems = ___EmotionJSX(React.Fragment, null, _mapInstanceProperty(_context6 = _Array$from(selectionManager.selectedKeys)).call(_context6, function (key) {
|
333
|
+
var _context7, _context8;
|
301
334
|
|
302
|
-
var item = _findInstanceProperty(
|
335
|
+
var item = _findInstanceProperty(_context7 = _concatInstanceProperty(_context8 = []).call(_context8, initialItems, customItems)).call(_context7, function (el) {
|
303
336
|
return el.key === key;
|
304
337
|
});
|
305
338
|
|
@@ -355,7 +388,11 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
355
388
|
placeholder: placeholder,
|
356
389
|
wrapperProps: {
|
357
390
|
ref: inputRef,
|
358
|
-
variant: 'forms.input.multivaluesWrapper'
|
391
|
+
variant: 'forms.input.multivaluesWrapper',
|
392
|
+
sx: isReadOnly && {
|
393
|
+
boxShadow: 'inset 0 0 0 100px #e5e9f8',
|
394
|
+
border: 'none'
|
395
|
+
}
|
359
396
|
},
|
360
397
|
status: status
|
361
398
|
});
|
@@ -366,12 +403,14 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
366
403
|
if (_onBlur) _onBlur(e.nativeEvent);
|
367
404
|
},
|
368
405
|
onChange: function onChange(e) {
|
369
|
-
setIsOpen(true);
|
370
406
|
setFilterString(e.target.value);
|
371
407
|
if (onInputChange) onInputChange(e.target.value);
|
372
408
|
},
|
373
409
|
onFocus: function onFocus(e) {
|
374
|
-
|
410
|
+
if (!isReadOnly) {
|
411
|
+
setIsOpen(true);
|
412
|
+
}
|
413
|
+
|
375
414
|
if (_onFocus) _onFocus(e.nativeEvent);
|
376
415
|
},
|
377
416
|
onKeyDown: keyDown,
|
@@ -379,7 +418,7 @@ var MultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
379
418
|
return _onKeyUp && _onKeyUp(e.nativeEvent);
|
380
419
|
},
|
381
420
|
slots: {
|
382
|
-
beforeInput: ___EmotionJSX(React.Fragment, null, readOnlyItems, " ", selectedItems)
|
421
|
+
beforeInput: ___EmotionJSX(React.Fragment, null, readOnlyItems, " ", selectedItems, readOnlyInputEntry)
|
383
422
|
},
|
384
423
|
value: filterString
|
385
424
|
}, inputProps)), helperText && ___EmotionJSX(FieldHelperText, {
|
@@ -522,6 +561,7 @@ MultivaluesField.propTypes = {
|
|
522
561
|
};
|
523
562
|
MultivaluesField.defaultProps = {
|
524
563
|
direction: 'bottom',
|
564
|
+
isReadOnly: false,
|
525
565
|
mode: 'restrictive',
|
526
566
|
scrollBoxProps: {
|
527
567
|
maxHeight: 300
|
@@ -346,4 +346,31 @@ export var Error = function Error(args) {
|
|
346
346
|
"data-id": item.name
|
347
347
|
}, item.name);
|
348
348
|
}));
|
349
|
+
};
|
350
|
+
export var ReadOnlyField = function ReadOnlyField(args) {
|
351
|
+
var _useState19 = useState(false),
|
352
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
353
|
+
isOpen = _useState20[0],
|
354
|
+
setIsOpen = _useState20[1];
|
355
|
+
|
356
|
+
var direction = args.direction;
|
357
|
+
|
358
|
+
var onOpenChange = function onOpenChange() {
|
359
|
+
setIsOpen(true);
|
360
|
+
};
|
361
|
+
|
362
|
+
return ___EmotionJSX(OverlayProvider // note: spacing for demo purpose only so that the select list renders in the correct place
|
363
|
+
, {
|
364
|
+
style: setOverlayStyle(direction, isOpen, '50%', '50%', '20%')
|
365
|
+
}, ___EmotionJSX(MultivaluesField, _extends({
|
366
|
+
items: items
|
367
|
+
}, args, {
|
368
|
+
isReadOnly: true,
|
369
|
+
onOpenChange: onOpenChange
|
370
|
+
}), function (item) {
|
371
|
+
return ___EmotionJSX(Item, {
|
372
|
+
key: item.key,
|
373
|
+
"data-id": item.name
|
374
|
+
}, item.name);
|
375
|
+
}));
|
349
376
|
};
|
@@ -368,4 +368,30 @@ test(' multivalue field with helper text', function () {
|
|
368
368
|
var helper = screen.getByText(helperText);
|
369
369
|
expect(helper).toBeInTheDocument();
|
370
370
|
expect(helper).toHaveClass("is-".concat(statuses.ERROR));
|
371
|
+
});
|
372
|
+
test('read only field', function () {
|
373
|
+
var isReadOnly = true;
|
374
|
+
getComponent({
|
375
|
+
isReadOnly: isReadOnly
|
376
|
+
});
|
377
|
+
var chip = screen.queryAllByRole('presentation');
|
378
|
+
expect(chip[0]).toHaveAttribute('label', items[0].name);
|
379
|
+
expect(chip[1]).toHaveAttribute('label', items[1].name);
|
380
|
+
expect(chip[2]).toHaveAttribute('label', items[2].name);
|
381
|
+
var textArea = screen.getByLabelText(defaultProps.label);
|
382
|
+
expect(textArea).toHaveClass('is-read-only');
|
383
|
+
expect(screen.queryByRole('option')).not.toBeInTheDocument();
|
384
|
+
});
|
385
|
+
test('read only keys with read only field', function () {
|
386
|
+
var isReadOnly = true;
|
387
|
+
getComponent({
|
388
|
+
isReadOnly: isReadOnly,
|
389
|
+
readOnlyKeys: [items[1].key, items[2].key]
|
390
|
+
});
|
391
|
+
var chip = screen.queryAllByRole('presentation');
|
392
|
+
expect(chip[0]).toHaveAttribute('label', items[1].name);
|
393
|
+
expect(chip[1]).toHaveAttribute('label', items[2].name);
|
394
|
+
var textArea = screen.getByLabelText(defaultProps.label);
|
395
|
+
expect(textArea).toHaveClass('is-read-only');
|
396
|
+
expect(screen.queryByRole('option')).not.toBeInTheDocument();
|
371
397
|
});
|
@@ -153,7 +153,7 @@ var selectedItemChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
|
153
153
|
});
|
154
154
|
|
155
155
|
var readOnlyChip = _objectSpread(_objectSpread({}, multivaluesChip), {}, {
|
156
|
-
p:
|
156
|
+
p: 2.54,
|
157
157
|
border: '1px solid',
|
158
158
|
borderColor: 'neutral.80'
|
159
159
|
});
|