@dxc-technology/halstack-react 0.0.0-a7043e2 → 0.0.0-a799608
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/accordion/Accordion.js +122 -103
- package/accordion/Accordion.stories.tsx +1 -2
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +4 -4
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +9 -3
- package/bulleted-list/types.d.ts +1 -1
- package/button/types.d.ts +1 -1
- package/chip/types.d.ts +1 -1
- package/common/variables.js +18 -7
- package/date-input/DateInput.js +3 -3
- package/dialog/Dialog.js +52 -28
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +242 -246
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +510 -108
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +25 -5
- package/flex/Flex.js +1 -1
- package/flex/types.d.ts +1 -1
- package/footer/Footer.stories.tsx +8 -1
- package/footer/types.d.ts +1 -1
- package/header/Header.js +74 -72
- package/header/Header.stories.tsx +4 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +2 -2
- package/layout/ApplicationLayout.js +3 -3
- package/layout/ApplicationLayout.stories.tsx +1 -0
- package/link/types.d.ts +1 -1
- package/package.json +9 -9
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +56 -50
- package/progress-bar/ProgressBar.stories.jsx +3 -1
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/radio-group/RadioGroup.js +11 -13
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +25 -1
- package/select/Select.js +14 -31
- package/select/Select.stories.tsx +6 -5
- package/select/Select.test.js +63 -50
- package/select/types.d.ts +2 -4
- package/sidenav/types.d.ts +1 -1
- package/slider/Slider.js +112 -97
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +2 -2
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +110 -54
- package/switch/Switch.stories.tsx +8 -30
- package/switch/Switch.test.js +122 -8
- package/switch/types.d.ts +3 -4
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +74 -0
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +15 -5
- package/tabs-nav/NavTabs.js +5 -5
- package/tabs-nav/Tab.js +3 -5
- package/tabs-nav/types.d.ts +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/TextInput.js +12 -21
- package/text-input/TextInput.stories.tsx +1 -2
- package/text-input/types.d.ts +1 -1
- package/toggle-group/types.d.ts +1 -1
- package/wizard/types.d.ts +1 -1
package/select/Select.test.js
CHANGED
|
@@ -306,7 +306,7 @@ var grouped_icon_options = [{
|
|
|
306
306
|
}]
|
|
307
307
|
}];
|
|
308
308
|
describe("Select component tests", function () {
|
|
309
|
-
test("
|
|
309
|
+
test("When clicking the label, the focus goes to the select", function () {
|
|
310
310
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
311
311
|
label: "test-select-label",
|
|
312
312
|
helperText: "test-select-helper-text",
|
|
@@ -317,40 +317,18 @@ describe("Select component tests", function () {
|
|
|
317
317
|
|
|
318
318
|
var select = getByRole("combobox");
|
|
319
319
|
var label = getByText("test-select-label");
|
|
320
|
-
expect(label).toBeTruthy();
|
|
321
320
|
|
|
322
321
|
_userEvent["default"].click(label);
|
|
323
322
|
|
|
324
323
|
expect(document.activeElement).toEqual(select);
|
|
325
324
|
});
|
|
326
|
-
test("Renders with correct
|
|
325
|
+
test("Renders with correct aria attributes when is in error state", function () {
|
|
327
326
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
328
|
-
label: "test-select-label",
|
|
329
|
-
helperText: "test-select-helper-text",
|
|
330
|
-
placeholder: "Example text"
|
|
331
|
-
})),
|
|
332
|
-
getByText = _render2.getByText;
|
|
333
|
-
|
|
334
|
-
expect(getByText("test-select-helper-text")).toBeTruthy();
|
|
335
|
-
expect(getByText("Example text")).toBeTruthy();
|
|
336
|
-
});
|
|
337
|
-
test("Renders with correct optional label", function () {
|
|
338
|
-
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
339
|
-
label: "test-select-label",
|
|
340
|
-
optional: true
|
|
341
|
-
})),
|
|
342
|
-
getByText = _render3.getByText;
|
|
343
|
-
|
|
344
|
-
expect(getByText("test-select-label")).toBeTruthy();
|
|
345
|
-
expect(getByText("(Optional)")).toBeTruthy();
|
|
346
|
-
});
|
|
347
|
-
test("Renders with error message and correct aria attributes", function () {
|
|
348
|
-
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
349
327
|
label: "Error label",
|
|
350
328
|
error: "Error message."
|
|
351
329
|
})),
|
|
352
|
-
getByText =
|
|
353
|
-
getByRole =
|
|
330
|
+
getByText = _render2.getByText,
|
|
331
|
+
getByRole = _render2.getByRole;
|
|
354
332
|
|
|
355
333
|
var select = getByRole("combobox");
|
|
356
334
|
var errorMessage = getByText("Error message.");
|
|
@@ -360,13 +338,13 @@ describe("Select component tests", function () {
|
|
|
360
338
|
expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
|
|
361
339
|
});
|
|
362
340
|
test("Renders with correct aria attributes", function () {
|
|
363
|
-
var
|
|
341
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
364
342
|
label: "test-select-label",
|
|
365
343
|
placeholder: "Example",
|
|
366
344
|
options: single_options
|
|
367
345
|
})),
|
|
368
|
-
getByText =
|
|
369
|
-
getByRole =
|
|
346
|
+
getByText = _render3.getByText,
|
|
347
|
+
getByRole = _render3.getByRole;
|
|
370
348
|
|
|
371
349
|
var select = getByRole("combobox");
|
|
372
350
|
var label = getByText("test-select-label");
|
|
@@ -385,17 +363,17 @@ describe("Select component tests", function () {
|
|
|
385
363
|
expect(list.getAttribute("aria-multiselectable")).toBe("false");
|
|
386
364
|
});
|
|
387
365
|
test("Single selection: Renders with correct default value", function () {
|
|
388
|
-
var
|
|
366
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
389
367
|
label: "test-select-label",
|
|
390
368
|
name: "test",
|
|
391
369
|
defaultValue: "4",
|
|
392
370
|
options: single_options
|
|
393
371
|
})),
|
|
394
|
-
getByText =
|
|
395
|
-
getByRole =
|
|
396
|
-
getAllByRole =
|
|
397
|
-
queryByRole =
|
|
398
|
-
container =
|
|
372
|
+
getByText = _render4.getByText,
|
|
373
|
+
getByRole = _render4.getByRole,
|
|
374
|
+
getAllByRole = _render4.getAllByRole,
|
|
375
|
+
queryByRole = _render4.queryByRole,
|
|
376
|
+
container = _render4.container;
|
|
399
377
|
|
|
400
378
|
var select = getByRole("combobox");
|
|
401
379
|
var submitInput = container.querySelector("input[name=\"test\"]");
|
|
@@ -413,18 +391,18 @@ describe("Select component tests", function () {
|
|
|
413
391
|
expect(submitInput.value).toBe("8");
|
|
414
392
|
});
|
|
415
393
|
test("Multiple selection: Renders with correct default value", function () {
|
|
416
|
-
var
|
|
394
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
417
395
|
label: "test-select-label",
|
|
418
396
|
name: "test",
|
|
419
397
|
defaultValue: ["4", "2", "6"],
|
|
420
398
|
options: single_options,
|
|
421
399
|
multiple: true
|
|
422
400
|
})),
|
|
423
|
-
getByText =
|
|
424
|
-
getByRole =
|
|
425
|
-
getAllByRole =
|
|
426
|
-
queryByRole =
|
|
427
|
-
container =
|
|
401
|
+
getByText = _render5.getByText,
|
|
402
|
+
getByRole = _render5.getByRole,
|
|
403
|
+
getAllByRole = _render5.getAllByRole,
|
|
404
|
+
queryByRole = _render5.queryByRole,
|
|
405
|
+
container = _render5.container;
|
|
428
406
|
|
|
429
407
|
var select = getByRole("combobox");
|
|
430
408
|
var submitInput = container.querySelector("input[name=\"test\"]");
|
|
@@ -443,18 +421,15 @@ describe("Select component tests", function () {
|
|
|
443
421
|
expect(getByText("Option 02, Option 03, Option 04, Option 06")).toBeTruthy();
|
|
444
422
|
expect(submitInput.value).toBe("4,2,6,3");
|
|
445
423
|
});
|
|
446
|
-
test("Disabled select -
|
|
447
|
-
var
|
|
424
|
+
test("Disabled select - Cannot gain focus or open the listbox via click", function () {
|
|
425
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
448
426
|
label: "test-select-label",
|
|
449
427
|
value: ["1", "2"],
|
|
450
428
|
options: single_options,
|
|
451
|
-
disabled: true
|
|
452
|
-
searchable: true,
|
|
453
|
-
multiple: true
|
|
429
|
+
disabled: true
|
|
454
430
|
})),
|
|
455
|
-
getByRole =
|
|
456
|
-
|
|
457
|
-
queryByRole = _render8.queryByRole;
|
|
431
|
+
getByRole = _render6.getByRole,
|
|
432
|
+
queryByRole = _render6.queryByRole;
|
|
458
433
|
|
|
459
434
|
var select = getByRole("combobox");
|
|
460
435
|
expect(select.getAttribute("aria-disabled")).toBe("true");
|
|
@@ -462,12 +437,49 @@ describe("Select component tests", function () {
|
|
|
462
437
|
_userEvent["default"].click(select);
|
|
463
438
|
|
|
464
439
|
expect(queryByRole("listbox")).toBeFalsy();
|
|
440
|
+
expect(document.activeElement === select).toBeFalsy();
|
|
441
|
+
});
|
|
442
|
+
test("Disabled select - Clear all options action must be shown but not clickable", function () {
|
|
443
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
444
|
+
label: "test-select-label",
|
|
445
|
+
value: ["1", "2"],
|
|
446
|
+
options: single_options,
|
|
447
|
+
disabled: true,
|
|
448
|
+
searchable: true,
|
|
449
|
+
multiple: true
|
|
450
|
+
})),
|
|
451
|
+
getByRole = _render7.getByRole,
|
|
452
|
+
getByText = _render7.getByText;
|
|
465
453
|
|
|
466
454
|
_userEvent["default"].click(getByRole("button"));
|
|
467
455
|
|
|
468
456
|
expect(getByText("Option 01, Option 02")).toBeTruthy();
|
|
469
457
|
});
|
|
470
|
-
test("
|
|
458
|
+
test("Disabled select - Does not call onBlur event", function () {
|
|
459
|
+
var onBlur = jest.fn();
|
|
460
|
+
|
|
461
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
462
|
+
label: "test-select-label",
|
|
463
|
+
options: single_options,
|
|
464
|
+
disabled: true,
|
|
465
|
+
onBlur: onBlur
|
|
466
|
+
})),
|
|
467
|
+
getByRole = _render8.getByRole;
|
|
468
|
+
|
|
469
|
+
var select = getByRole("combobox");
|
|
470
|
+
|
|
471
|
+
_userEvent["default"].click(select);
|
|
472
|
+
|
|
473
|
+
_react2.fireEvent.keyDown(getByRole("combobox"), {
|
|
474
|
+
key: "Tab",
|
|
475
|
+
code: "Tab",
|
|
476
|
+
keyCode: 9,
|
|
477
|
+
charCode: 9
|
|
478
|
+
});
|
|
479
|
+
|
|
480
|
+
expect(onBlur).not.toHaveBeenCalled();
|
|
481
|
+
});
|
|
482
|
+
test("Disabled select - When the component gains the focus, the listbox does not open", function () {
|
|
471
483
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
472
484
|
label: "test-select-label",
|
|
473
485
|
value: ["1", "2"],
|
|
@@ -484,6 +496,7 @@ describe("Select component tests", function () {
|
|
|
484
496
|
_react2.fireEvent.focus(select);
|
|
485
497
|
|
|
486
498
|
expect(queryByRole("listbox")).toBeFalsy();
|
|
499
|
+
expect(document.activeElement === select).toBeFalsy();
|
|
487
500
|
});
|
|
488
501
|
test("Controlled - Single selection - Not optional constraint", function () {
|
|
489
502
|
var onChange = jest.fn();
|
package/select/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ declare type Margin = {
|
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
9
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
10
|
declare type OptionGroup = {
|
|
11
11
|
/**
|
|
12
12
|
* Label of the group to be shown in the select's listbox.
|
|
@@ -201,9 +201,7 @@ export declare type ListboxProps = {
|
|
|
201
201
|
optionalItem: Option;
|
|
202
202
|
searchable: boolean;
|
|
203
203
|
handleOptionOnClick: (option: Option) => void;
|
|
204
|
-
|
|
205
|
-
width: number;
|
|
206
|
-
};
|
|
204
|
+
getSelectWidth: () => number;
|
|
207
205
|
};
|
|
208
206
|
/**
|
|
209
207
|
* Reference to the select component.
|
package/sidenav/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
2
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
3
3
|
declare type SidenavPropsType = {
|
|
4
4
|
/**
|
|
5
5
|
* The area inside the sidenav. This area can be used to render the content inside the sidenav.
|
package/slider/Slider.js
CHANGED
|
@@ -17,8 +17,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
17
17
|
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
|
|
20
|
-
var _Slider = _interopRequireDefault(require("@material-ui/lab/Slider"));
|
|
21
|
-
|
|
22
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
23
21
|
|
|
24
22
|
var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
@@ -31,9 +29,7 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
|
31
29
|
|
|
32
30
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
33
31
|
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
32
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
37
33
|
|
|
38
34
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
35
|
|
|
@@ -74,28 +70,57 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
74
70
|
innerValue = _useState2[0],
|
|
75
71
|
setInnerValue = _useState2[1];
|
|
76
72
|
|
|
73
|
+
var _useState3 = (0, _react.useState)(false),
|
|
74
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
75
|
+
dragging = _useState4[0],
|
|
76
|
+
setDragging = _useState4[1];
|
|
77
|
+
|
|
77
78
|
var colorsTheme = (0, _useTheme["default"])();
|
|
78
79
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
79
|
-
|
|
80
|
-
var _useState3 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
|
|
81
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
82
|
-
labelId = _useState4[0];
|
|
83
|
-
|
|
80
|
+
var labelId = "slider" + (0, _react.useId)();
|
|
84
81
|
var minLabel = (0, _react.useMemo)(function () {
|
|
85
82
|
return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
|
|
86
83
|
}, [labelFormatCallback, minValue]);
|
|
87
84
|
var maxLabel = (0, _react.useMemo)(function () {
|
|
88
85
|
return labelFormatCallback ? labelFormatCallback(maxValue) : maxValue;
|
|
89
86
|
}, [labelFormatCallback, maxValue]);
|
|
87
|
+
var tickMarks = (0, _react.useMemo)(function () {
|
|
88
|
+
var ticks = [];
|
|
89
|
+
var numberOfMarks = Math.floor(maxValue / step - minValue / step);
|
|
90
|
+
var index = 0;
|
|
91
|
+
var range = maxValue - minValue;
|
|
92
|
+
|
|
93
|
+
if (marks) {
|
|
94
|
+
while (index <= numberOfMarks) {
|
|
95
|
+
ticks.push( /*#__PURE__*/_react["default"].createElement(TickMark, {
|
|
96
|
+
disabled: disabled,
|
|
97
|
+
stepPosition: step * index / range * 100,
|
|
98
|
+
backgroundType: backgroundType
|
|
99
|
+
}));
|
|
100
|
+
index++;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return ticks;
|
|
104
|
+
} else {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}, [minValue, maxValue, step]);
|
|
108
|
+
|
|
109
|
+
var handleSliderChange = function handleSliderChange(event) {
|
|
110
|
+
var valueToCheck = event.target.value;
|
|
111
|
+
(valueToCheck !== value || valueToCheck !== innerValue) && setInnerValue(valueToCheck);
|
|
112
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(valueToCheck);
|
|
113
|
+
};
|
|
90
114
|
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
valueToCheck !== newValue && setInnerValue(newValue);
|
|
94
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
115
|
+
var handleSliderDragging = function handleSliderDragging() {
|
|
116
|
+
setDragging(true);
|
|
95
117
|
};
|
|
96
118
|
|
|
97
|
-
var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event
|
|
98
|
-
|
|
119
|
+
var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event) {
|
|
120
|
+
if (dragging) {
|
|
121
|
+
setDragging(false);
|
|
122
|
+
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event.target.value);
|
|
123
|
+
}
|
|
99
124
|
};
|
|
100
125
|
|
|
101
126
|
var handlerInputChange = function handlerInputChange(event) {
|
|
@@ -110,6 +135,7 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
110
135
|
}
|
|
111
136
|
};
|
|
112
137
|
|
|
138
|
+
var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
|
|
113
139
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
114
140
|
theme: colorsTheme.slider
|
|
115
141
|
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
@@ -122,28 +148,36 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
122
148
|
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
123
149
|
disabled: disabled,
|
|
124
150
|
backgroundType: backgroundType
|
|
125
|
-
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
|
|
126
|
-
backgroundType: backgroundType
|
|
127
|
-
}, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
151
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, null, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
128
152
|
backgroundType: backgroundType,
|
|
129
153
|
disabled: disabled
|
|
130
|
-
}, minLabel), /*#__PURE__*/_react["default"].createElement(
|
|
131
|
-
|
|
154
|
+
}, minLabel), /*#__PURE__*/_react["default"].createElement(SliderInputContainer, null, /*#__PURE__*/_react["default"].createElement(SliderInput, {
|
|
155
|
+
role: "slider",
|
|
156
|
+
type: "range",
|
|
157
|
+
value: value != null && value >= 0 ? value : innerValue,
|
|
132
158
|
min: minValue,
|
|
133
159
|
max: maxValue,
|
|
134
|
-
onChange: handlerSliderChange,
|
|
135
|
-
onChangeCommitted: handleSliderOnChangeCommited,
|
|
136
160
|
step: step,
|
|
137
|
-
marks: marks
|
|
161
|
+
marks: marks,
|
|
138
162
|
disabled: disabled,
|
|
139
|
-
"aria-labelledby": labelId
|
|
140
|
-
|
|
163
|
+
"aria-labelledby": labelId,
|
|
164
|
+
"aria-orientation": "horizontal",
|
|
165
|
+
"aria-valuemax": maxValue,
|
|
166
|
+
"aria-valuemin": minValue,
|
|
167
|
+
"aria-valuenow": value != null && value >= 0 ? value : innerValue,
|
|
168
|
+
onChange: handleSliderChange,
|
|
169
|
+
onMouseUp: handleSliderOnChangeCommited,
|
|
170
|
+
onMouseDown: handleSliderDragging,
|
|
171
|
+
backgroundType: backgroundType
|
|
172
|
+
}), marks && /*#__PURE__*/_react["default"].createElement(MarksContainer, {
|
|
173
|
+
isFirefox: isFirefox
|
|
174
|
+
}, tickMarks)), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
|
|
141
175
|
backgroundType: backgroundType,
|
|
142
176
|
disabled: disabled,
|
|
143
177
|
step: step
|
|
144
178
|
}, maxLabel), showInput && /*#__PURE__*/_react["default"].createElement(StyledTextInput, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
145
179
|
name: name,
|
|
146
|
-
value: value != null && value >= 0
|
|
180
|
+
value: value != null && value >= 0 ? value.toString() : innerValue.toString(),
|
|
147
181
|
disabled: disabled,
|
|
148
182
|
onChange: handlerInputChange,
|
|
149
183
|
size: "fillParent"
|
|
@@ -160,6 +194,14 @@ var calculateWidth = function calculateWidth(margin, size) {
|
|
|
160
194
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
161
195
|
};
|
|
162
196
|
|
|
197
|
+
var getChromeStyles = function getChromeStyles() {
|
|
198
|
+
return "\n width: 100%;\n margin-right: 4px;";
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
var getFireFoxStyles = function getFireFoxStyles() {
|
|
202
|
+
return "\n width: calc(100% - 16px);\n margin-right: 3px;";
|
|
203
|
+
};
|
|
204
|
+
|
|
163
205
|
var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n"])), function (props) {
|
|
164
206
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
165
207
|
}, function (props) {
|
|
@@ -188,7 +230,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
|
|
|
188
230
|
return props.theme.labelLineHeight;
|
|
189
231
|
});
|
|
190
232
|
|
|
191
|
-
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
233
|
+
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
192
234
|
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
|
|
193
235
|
}, function (props) {
|
|
194
236
|
return props.theme.fontFamily;
|
|
@@ -202,83 +244,51 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
|
|
|
202
244
|
return props.theme.helperTextLineHeight;
|
|
203
245
|
});
|
|
204
246
|
|
|
205
|
-
var
|
|
206
|
-
return props.
|
|
207
|
-
}, function (props) {
|
|
208
|
-
return props.theme.thumbHeight;
|
|
209
|
-
}, function (props) {
|
|
210
|
-
return props.theme.thumbWidth;
|
|
211
|
-
}, function (props) {
|
|
212
|
-
return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
|
|
213
|
-
}, function (props) {
|
|
214
|
-
return props.theme.disabledThumbVerticalPosition;
|
|
215
|
-
}, function (props) {
|
|
216
|
-
return props.backgroundType === "dark" ? props.theme.disabledTrackLineColorOnDark : props.theme.disabledTrackLineColor;
|
|
217
|
-
}, function (props) {
|
|
218
|
-
return props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark : props.theme.disabledTotalLineColor;
|
|
219
|
-
}, function (props) {
|
|
220
|
-
return props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor;
|
|
247
|
+
var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n z-index: 1;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n &::-moz-range-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n }\n"])), function (props) {
|
|
248
|
+
return props.theme.trackLineThickness;
|
|
221
249
|
}, function (props) {
|
|
222
|
-
return props.backgroundType === "dark" ? props.theme.
|
|
250
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark + "61" : props.theme.disabledTotalLineColor + "61" : props.backgroundType === "dark" ? props.theme.totalLineColorOnDark + "61" : props.theme.totalLineColor + "61";
|
|
223
251
|
}, function (props) {
|
|
224
|
-
return props.theme.
|
|
252
|
+
return props.disabled ? props.backgroundType === "dark" ? "linear-gradient(".concat(props.theme.disabledTrackLineColorOnDark, ", ").concat(props.theme.disabledTrackLineColorOnDark, ")") : "linear-gradient(".concat(props.theme.disabledTrackLineColor, ", ").concat(props.theme.disabledTrackLineColor, ")") : props.backgroundType === "dark" ? "linear-gradient(".concat(props.theme.trackLineColorOnDark, ", ").concat(props.theme.trackLineColorOnDark, ")") : "linear-gradient(".concat(props.theme.trackLineColor, ", ").concat(props.theme.trackLineColor, ")");
|
|
225
253
|
}, function (props) {
|
|
226
|
-
return props.
|
|
254
|
+
return (props.value - props.min) * 100 / (props.max - props.min) + "% 100%";
|
|
227
255
|
}, function (props) {
|
|
228
|
-
return props.
|
|
256
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
229
257
|
}, function (props) {
|
|
230
258
|
return props.theme.thumbHeight;
|
|
231
259
|
}, function (props) {
|
|
232
260
|
return props.theme.thumbWidth;
|
|
233
261
|
}, function (props) {
|
|
234
|
-
return props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
|
|
235
|
-
}, function (props) {
|
|
236
|
-
return props.theme.thumbVerticalPosition;
|
|
237
|
-
}, function (props) {
|
|
238
|
-
return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
262
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
|
|
239
263
|
}, function (props) {
|
|
240
|
-
|
|
264
|
+
if (!props.disabled) {
|
|
265
|
+
return "\n background: ".concat(props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor, ";\n transform: scale(1.16667);");
|
|
266
|
+
}
|
|
241
267
|
}, function (props) {
|
|
242
|
-
|
|
268
|
+
if (!props.disabled) {
|
|
269
|
+
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor, ";");
|
|
270
|
+
}
|
|
243
271
|
}, function (props) {
|
|
244
|
-
return props.theme.
|
|
245
|
-
}, function (props) {
|
|
246
|
-
return props.theme.hoverThumbHeight;
|
|
272
|
+
return props.theme.thumbHeight;
|
|
247
273
|
}, function (props) {
|
|
248
|
-
return props.theme.
|
|
274
|
+
return props.theme.thumbWidth;
|
|
249
275
|
}, function (props) {
|
|
250
|
-
return props.theme.
|
|
276
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
|
|
251
277
|
}, function (props) {
|
|
252
278
|
return props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor;
|
|
253
279
|
}, function (props) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
280
|
+
if (!props.disabled) {
|
|
281
|
+
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor, ";");
|
|
282
|
+
}
|
|
257
283
|
}, function (props) {
|
|
258
|
-
return props.theme.
|
|
259
|
-
}, function (props) {
|
|
260
|
-
return props.theme.trackLineVerticalPosition;
|
|
261
|
-
}, function (props) {
|
|
262
|
-
return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
|
|
263
|
-
}, function (props) {
|
|
264
|
-
return props.backgroundType === "dark" ? props.theme.totalLineColorOnDark : props.theme.totalLineColor;
|
|
265
|
-
}, function (props) {
|
|
266
|
-
return props.theme.totalLineThickness;
|
|
284
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
267
285
|
}, function (props) {
|
|
268
|
-
return props.theme.
|
|
269
|
-
}, function (props) {
|
|
270
|
-
return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
|
|
271
|
-
}, function (props) {
|
|
272
|
-
return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
|
|
273
|
-
}, function (props) {
|
|
274
|
-
return props.theme.tickHeight;
|
|
275
|
-
}, function (props) {
|
|
276
|
-
return props.theme.tickWidth;
|
|
277
|
-
}, function (props) {
|
|
278
|
-
return props.theme.tickVerticalPosition;
|
|
286
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
279
287
|
});
|
|
280
288
|
|
|
281
|
-
var
|
|
289
|
+
var SliderContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n"])));
|
|
290
|
+
|
|
291
|
+
var LimitLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n"])), function (props) {
|
|
282
292
|
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
|
|
283
293
|
}, function (props) {
|
|
284
294
|
return props.theme.fontFamily;
|
|
@@ -290,27 +300,32 @@ var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_
|
|
|
290
300
|
return props.theme.limitValuesFontWeight;
|
|
291
301
|
}, function (props) {
|
|
292
302
|
return props.theme.limitValuesFontLetterSpacing;
|
|
293
|
-
}
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
var MinLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n"])), function (props) {
|
|
294
306
|
return props.theme.floorLabelMarginRight;
|
|
295
307
|
});
|
|
308
|
+
var MaxLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n"])), function (props) {
|
|
309
|
+
return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
|
|
310
|
+
});
|
|
296
311
|
|
|
297
|
-
var
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
return props.
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
return props.theme.
|
|
312
|
+
var SliderInputContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: -2px;\n padding-top: 1px;\n"])));
|
|
313
|
+
|
|
314
|
+
var MarksContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n position: absolute;\n pointer-events: none;\n height: 100%;\n display: flex;\n align-items: center;\n"])), function (props) {
|
|
315
|
+
return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
var TickMark = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n background: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n left: ", ";\n"])), function (props) {
|
|
319
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor : props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
|
|
305
320
|
}, function (props) {
|
|
306
|
-
return props.theme.
|
|
321
|
+
return props.theme.tickHeight;
|
|
307
322
|
}, function (props) {
|
|
308
|
-
return props.theme.
|
|
323
|
+
return props.theme.tickWidth;
|
|
309
324
|
}, function (props) {
|
|
310
|
-
return
|
|
325
|
+
return "".concat(props.stepPosition, "%");
|
|
311
326
|
});
|
|
312
327
|
|
|
313
|
-
var StyledTextInput = _styledComponents["default"].div(
|
|
328
|
+
var StyledTextInput = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n max-width: 70px;\n"])), function (props) {
|
|
314
329
|
return props.theme.inputMarginLeft;
|
|
315
330
|
});
|
|
316
331
|
|
|
@@ -171,7 +171,13 @@ export const Chromatic = () => (
|
|
|
171
171
|
</ExampleContainer>
|
|
172
172
|
<ExampleContainer>
|
|
173
173
|
<Title title="Large limit values labels" theme="light" level={4} />
|
|
174
|
-
<DxcSlider
|
|
174
|
+
<DxcSlider
|
|
175
|
+
label="Slider"
|
|
176
|
+
helperText="Help message"
|
|
177
|
+
showLimitsValues
|
|
178
|
+
labelFormatCallback={labelFormat}
|
|
179
|
+
size="large"
|
|
180
|
+
/>
|
|
175
181
|
</ExampleContainer>
|
|
176
182
|
</>
|
|
177
183
|
);
|