intelicoreact 1.5.40 → 1.5.41
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/package.json +1 -1
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.interface.js +0 -4
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.stories.js +0 -89
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.test.js +0 -130
- package/dist/Atomic/FormElements/ActionAlert/index.js +0 -17
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.interface.js +0 -4
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.stories.js +0 -81
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.test.js +0 -104
- package/dist/Atomic/FormElements/AdvancedStatus/index.js +0 -17
- package/dist/Atomic/FormElements/Calendar/Calendar.props.js +0 -4
- package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +0 -108
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.interface.js +0 -4
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -100
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.test.js +0 -143
- package/dist/Atomic/FormElements/CheckboxInput/index.js +0 -17
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.interface.js +0 -4
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.stories.js +0 -94
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.test.js +0 -177
- package/dist/Atomic/FormElements/CheckboxesLine/index.js +0 -17
- package/dist/Atomic/FormElements/Datepicker/Datepicker.stories.js +0 -51
- package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -596
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.stories.js +0 -272
- package/dist/Atomic/FormElements/FileLoader/FileLoader.stories.js +0 -182
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.stories.js +0 -327
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.stories.js +0 -186
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.stories.js +0 -84
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.stories.js +0 -107
- package/dist/Atomic/FormElements/Input/Input.stories.js +0 -251
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -115
- package/dist/Atomic/FormElements/InputColor/InputColor.stories.js +0 -119
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.interface.js +0 -4
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.stories.js +0 -178
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.test.js +0 -129
- package/dist/Atomic/FormElements/InputCurrency/index.js +0 -16
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -123
- package/dist/Atomic/FormElements/InputLink/InputLink.stories.js +0 -140
- package/dist/Atomic/FormElements/InputMask/InputMask.stories.js +0 -303
- package/dist/Atomic/FormElements/InputMask2/InputMask2.stories.js +0 -314
- package/dist/Atomic/FormElements/InputMask3/InputMask3.stories.js +0 -335
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.stories.js +0 -276
- package/dist/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -56
- package/dist/Atomic/FormElements/Label/Label.interface.js +0 -4
- package/dist/Atomic/FormElements/Label/Label.stories.js +0 -47
- package/dist/Atomic/FormElements/Label/Label.test.js +0 -167
- package/dist/Atomic/FormElements/Label/index.js +0 -17
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -172
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -121
- package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -184
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.stories.js +0 -79
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.stories.js +0 -151
- package/dist/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -67
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.stories.js +0 -116
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -107
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -92
- package/dist/Atomic/FormElements/RangeList/RangeList.stories.js +0 -169
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.stories.js +0 -401
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.stories.js +0 -314
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.stories.js +0 -137
- package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +0 -91
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.stories.js +0 -104
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.stories.js +0 -96
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.stories.js +0 -140
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.stories.js +0 -112
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.stories.js +0 -145
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.stories.js +0 -158
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.stories.js +0 -101
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.stories.js +0 -131
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -357
- package/dist/Atomic/FormElements/Text/Text.stories.js +0 -80
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -106
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.test.js +0 -93
- package/dist/Atomic/FormElements/Textarea/Textarea.stories.js +0 -103
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -174
- package/dist/Atomic/FormElements/TimeRange/TimeRange.interface.js +0 -4
- package/dist/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -40
- package/dist/Atomic/FormElements/TimeRange/TimeRange.test.js +0 -163
- package/dist/Atomic/FormElements/TimeRange/index.js +0 -17
- package/dist/Atomic/FormElements/UserContacts/UserContact.test.js +0 -381
- package/dist/Atomic/FormElements/UserContacts/UserContacts.interface.js +0 -4
- package/dist/Atomic/FormElements/UserContacts/UserContacts.stories.js +0 -74
- package/dist/Atomic/FormElements/UserContacts/index.js +0 -17
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.stories.js +0 -193
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.stories.js +0 -147
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.stories.js +0 -151
- package/dist/Atomic/Layout/Header/Header.stories.js +0 -71
- package/dist/Atomic/Layout/MainMenu/MainMenu.stories.js +0 -115
- package/dist/Atomic/Layout/Spinner/Spinner.interface.js +0 -4
- package/dist/Atomic/Layout/Spinner/Spinner.stories.js +0 -46
- package/dist/Atomic/Layout/Spinner/Spinner.test.js +0 -54
- package/dist/Atomic/Layout/Spinner/index.js +0 -17
- package/dist/Atomic/UI/Accordion/Accordion.interface.js +0 -4
- package/dist/Atomic/UI/Accordion/Accordion.stories.js +0 -168
- package/dist/Atomic/UI/Accordion/Accordion.test.js +0 -54
- package/dist/Atomic/UI/Accordion/AccordionItem.test.js +0 -50
- package/dist/Atomic/UI/Accordion/index.js +0 -17
- package/dist/Atomic/UI/AccordionTable/AccordionTable.stories.js +0 -268
- package/dist/Atomic/UI/AccordionText/AccordionText.stories.js +0 -125
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -115
- package/dist/Atomic/UI/Alert/Alert.stories.js +0 -81
- package/dist/Atomic/UI/Arrow/Arrow.stories.js +0 -62
- package/dist/Atomic/UI/Box/Box.stories.js +0 -114
- package/dist/Atomic/UI/Button/Button.stories.js +0 -105
- package/dist/Atomic/UI/Button/Button.test.js +0 -147
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.stories.js +0 -129
- package/dist/Atomic/UI/Chart/Chart.stories.js +0 -93
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.stories.js +0 -85
- package/dist/Atomic/UI/DateTime/DateTime.stories.js +0 -50
- package/dist/Atomic/UI/DoubleString/DoubleString.stories.js +0 -79
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.interface.js +0 -4
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.stories.js +0 -98
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.test.js +0 -51
- package/dist/Atomic/UI/DynamicIcon/index.js +0 -17
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.stories.js +0 -98
- package/dist/Atomic/UI/Hint/Hint.stories.js +0 -101
- package/dist/Atomic/UI/Hint/index.js +0 -16
- package/dist/Atomic/UI/Modal/Modal.interface.js +0 -4
- package/dist/Atomic/UI/Modal/Modal.stories.js +0 -370
- package/dist/Atomic/UI/Modal/ModalHOC.stories.js +0 -191
- package/dist/Atomic/UI/Modal/ModalHOC.test.js +0 -187
- package/dist/Atomic/UI/Modal/index.js +0 -26
- package/dist/Atomic/UI/Modal/partials/ModalFooter.test.js +0 -118
- package/dist/Atomic/UI/Modal/partials/ModalTitle.test.js +0 -126
- package/dist/Atomic/UI/Modal/partials/useMobileModal.test.js +0 -133
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.interface.js +0 -4
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.stories.js +0 -513
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.test.js +0 -84
- package/dist/Atomic/UI/MonoAccordion/index.js +0 -17
- package/dist/Atomic/UI/NavLine/NavLine.interface.js +0 -4
- package/dist/Atomic/UI/NavLine/NavLine.stories.js +0 -434
- package/dist/Atomic/UI/NavLine/NavLine.test.js +0 -311
- package/dist/Atomic/UI/NavLine/index.js +0 -17
- package/dist/Atomic/UI/PageTitle/PageTitle.interface.js +0 -4
- package/dist/Atomic/UI/PageTitle/PageTitle.stories.js +0 -62
- package/dist/Atomic/UI/PageTitle/PageTitle.test.js +0 -181
- package/dist/Atomic/UI/PageTitle/index.js +0 -17
- package/dist/Atomic/UI/PieChart/PieChar.interface.js +0 -4
- package/dist/Atomic/UI/PieChart/PieChart.stories.js +0 -82
- package/dist/Atomic/UI/PieChart/PieChart.test.js +0 -142
- package/dist/Atomic/UI/PieChart/index.js +0 -26
- package/dist/Atomic/UI/Price/Price.interface.js +0 -4
- package/dist/Atomic/UI/Price/Price.stories.js +0 -52
- package/dist/Atomic/UI/Price/Price.test.js +0 -83
- package/dist/Atomic/UI/Price/index.js +0 -17
- package/dist/Atomic/UI/PriceRange/PriceRange.interface.js +0 -4
- package/dist/Atomic/UI/PriceRange/PriceRange.stories.js +0 -51
- package/dist/Atomic/UI/PriceRange/PriceRange.test.js +0 -72
- package/dist/Atomic/UI/PriceRange/index.js +0 -17
- package/dist/Atomic/UI/ProgressLine/ProgressLine.interface.js +0 -4
- package/dist/Atomic/UI/ProgressLine/ProgressLine.stories.js +0 -163
- package/dist/Atomic/UI/ProgressLine/ProgressLine.test.js +0 -60
- package/dist/Atomic/UI/ProgressLine/index.js +0 -17
- package/dist/Atomic/UI/Status/Status.interface.js +0 -4
- package/dist/Atomic/UI/Status/Status.stories.js +0 -79
- package/dist/Atomic/UI/Status/Status.test.js +0 -103
- package/dist/Atomic/UI/Status/index.js +0 -17
- package/dist/Atomic/UI/Table/Table.stories.js +0 -250
- package/dist/Atomic/UI/Tag/Tag.interface.js +0 -4
- package/dist/Atomic/UI/Tag/Tag.stories.js +0 -108
- package/dist/Atomic/UI/Tag/Tag.test.js +0 -75
- package/dist/Atomic/UI/Tag/index.js +0 -17
- package/dist/Atomic/UI/TagList/TagList.stories.js +0 -169
- package/dist/Atomic/UI/UserBox/UserBox.interface.js +0 -4
- package/dist/Atomic/UI/UserBox/UserBox.stories.js +0 -57
- package/dist/Atomic/UI/UserBox/UserBox.test.js +0 -136
- package/dist/Atomic/UI/UserBox/index.js +0 -17
- package/dist/Atomic/UI/WizardStepper/WizardStepper.stories.js +0 -70
- package/dist/Functions/useIsMobile/index.js +0 -17
- package/dist/Functions/useIsMobile/useIsMobile.js +0 -33
- package/dist/Functions/useIsMobile/useIsMobile.test.js +0 -104
- package/dist/Functions/useKeyPress/useHandleKeyPress.test.js +0 -96
- package/dist/Functions/useKeyPress/useKeyPress.test.js +0 -87
- package/dist/Molecular/FormElement/FormElement.stories.js +0 -92
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.stories.js +0 -301
- package/dist/Molecular/InputAddress/InputAddress.stories.js +0 -541
- package/dist/Molecular/InputPassword/InputPassword.stories.js +0 -86
- package/dist/types/base.interface.js +0 -4
- package/dist/types/base.types.js +0 -4
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _jsxruntime = require("react/jsx-runtime");
|
|
6
|
-
const _reactrouterdom = require("react-router-dom");
|
|
7
|
-
const _react = require("@testing-library/react");
|
|
8
|
-
const _indexconstants = require("../../../Constants/index.constants");
|
|
9
|
-
const _NavLine = /*#__PURE__*/ _interop_require_default(require("./NavLine"));
|
|
10
|
-
function _interop_require_default(obj) {
|
|
11
|
-
return obj && obj.__esModule ? obj : {
|
|
12
|
-
default: obj
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
jest.mock('react-feather', ()=>({
|
|
16
|
-
User: ()=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
17
|
-
"data-testid": "user-icon",
|
|
18
|
-
children: "User Icon"
|
|
19
|
-
}),
|
|
20
|
-
ChevronLeft: ()=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
21
|
-
children: "ChevronLeft Icon"
|
|
22
|
-
}),
|
|
23
|
-
ChevronRight: ()=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
24
|
-
children: "ChevronRight Icon"
|
|
25
|
-
})
|
|
26
|
-
}));
|
|
27
|
-
const mockItems = [
|
|
28
|
-
{
|
|
29
|
-
tabId: 'tab1',
|
|
30
|
-
label: 'Tab 1'
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
tabId: 'tab2',
|
|
34
|
-
label: 'Tab 2',
|
|
35
|
-
icon: 'User'
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
tabId: 'tab3',
|
|
39
|
-
label: 'Tab 3',
|
|
40
|
-
count: 5
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
tabId: 'tab4',
|
|
44
|
-
label: 'Tab 4',
|
|
45
|
-
disabled: true
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
tabId: 'tab5',
|
|
49
|
-
label: 'Tab 5',
|
|
50
|
-
isHidden: true
|
|
51
|
-
}
|
|
52
|
-
];
|
|
53
|
-
const defaultProps = {
|
|
54
|
-
items: mockItems,
|
|
55
|
-
activeTab: 'tab1',
|
|
56
|
-
onChange: jest.fn()
|
|
57
|
-
};
|
|
58
|
-
function renderNavLine(props = {}) {
|
|
59
|
-
const allProps = {
|
|
60
|
-
...defaultProps,
|
|
61
|
-
...props
|
|
62
|
-
};
|
|
63
|
-
return (0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_reactrouterdom.BrowserRouter, {
|
|
64
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_NavLine.default, {
|
|
65
|
-
...allProps
|
|
66
|
-
})
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
describe('navLine Component', ()=>{
|
|
70
|
-
beforeEach(()=>{
|
|
71
|
-
jest.clearAllMocks();
|
|
72
|
-
});
|
|
73
|
-
describe('rendering', ()=>{
|
|
74
|
-
it('renders all visible tabs', ()=>{
|
|
75
|
-
renderNavLine();
|
|
76
|
-
expect(_react.screen.getByText('Tab 1')).toBeInTheDocument();
|
|
77
|
-
expect(_react.screen.getByText('Tab 2')).toBeInTheDocument();
|
|
78
|
-
expect(_react.screen.getByText('Tab 3')).toBeInTheDocument();
|
|
79
|
-
expect(_react.screen.getByText('Tab 4')).toBeInTheDocument();
|
|
80
|
-
// Тест на скрытый таб удален, так как компонент все равно рендерит его с классом hidden
|
|
81
|
-
});
|
|
82
|
-
it('hides tab with isHidden prop', ()=>{
|
|
83
|
-
renderNavLine();
|
|
84
|
-
const hiddenTab = _react.screen.getByText('Tab 5').closest('.nav-line__item');
|
|
85
|
-
expect(hiddenTab).toHaveClass('nav-line__item--hidden');
|
|
86
|
-
});
|
|
87
|
-
it('renders tab with icon', ()=>{
|
|
88
|
-
renderNavLine();
|
|
89
|
-
expect(_react.screen.getByTestId('user-icon')).toBeInTheDocument();
|
|
90
|
-
});
|
|
91
|
-
it('renders tab with count', ()=>{
|
|
92
|
-
renderNavLine();
|
|
93
|
-
expect(_react.screen.getByText('(5)')).toBeInTheDocument();
|
|
94
|
-
});
|
|
95
|
-
it('applies active class to active tab', ()=>{
|
|
96
|
-
renderNavLine();
|
|
97
|
-
const activeTab = _react.screen.getByText('Tab 1').closest('.nav-line__item');
|
|
98
|
-
expect(activeTab).toHaveClass('active');
|
|
99
|
-
});
|
|
100
|
-
it('applies disabled class to disabled tab', ()=>{
|
|
101
|
-
renderNavLine();
|
|
102
|
-
const disabledTab = _react.screen.getByText('Tab 4').closest('.nav-line__item');
|
|
103
|
-
expect(disabledTab).toHaveClass('disabled');
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
describe('variants', ()=>{
|
|
107
|
-
it('renders with simple variant', ()=>{
|
|
108
|
-
renderNavLine({
|
|
109
|
-
variant: 'simple'
|
|
110
|
-
});
|
|
111
|
-
const navLine = _react.screen.getByTestId('nav-line');
|
|
112
|
-
expect(navLine).toHaveClass('nav-line--simple');
|
|
113
|
-
});
|
|
114
|
-
it('renders with scroll mode', ()=>{
|
|
115
|
-
renderNavLine({
|
|
116
|
-
scrollMode: true
|
|
117
|
-
});
|
|
118
|
-
const navLine = _react.screen.getByTestId('nav-line');
|
|
119
|
-
expect(navLine).toHaveClass('nav-line--scroll-mode');
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
describe('interactions', ()=>{
|
|
123
|
-
it('calls onChange when clicking on non-disabled tab', ()=>{
|
|
124
|
-
renderNavLine({
|
|
125
|
-
isLocal: true
|
|
126
|
-
}); // Добавляем isLocal: true
|
|
127
|
-
const tab = _react.screen.getByText('Tab 2').closest('.nav-line__item');
|
|
128
|
-
if (!tab) throw new Error('Tab not found');
|
|
129
|
-
_react.fireEvent.click(tab);
|
|
130
|
-
expect(defaultProps.onChange).toHaveBeenCalledWith('tab2');
|
|
131
|
-
});
|
|
132
|
-
it('does not call onChange when clicking on disabled tab', ()=>{
|
|
133
|
-
renderNavLine({
|
|
134
|
-
isLocal: true
|
|
135
|
-
}); // Добавляем isLocal: true
|
|
136
|
-
const disabledTab = _react.screen.getByText('Tab 4').closest('.nav-line__item');
|
|
137
|
-
if (!disabledTab) throw new Error('Disabled tab not found');
|
|
138
|
-
_react.fireEvent.click(disabledTab);
|
|
139
|
-
expect(defaultProps.onChange).not.toHaveBeenCalled();
|
|
140
|
-
});
|
|
141
|
-
it('handles keyboard navigation when enabled', ()=>{
|
|
142
|
-
renderNavLine({
|
|
143
|
-
isNavigateByKeys: true
|
|
144
|
-
});
|
|
145
|
-
_react.fireEvent.keyDown(document, {
|
|
146
|
-
keyCode: _indexconstants.KEYBOARD_KEY_CODES.ARROW_RIGHT
|
|
147
|
-
});
|
|
148
|
-
expect(defaultProps.onChange).toHaveBeenCalledWith('tab2');
|
|
149
|
-
defaultProps.onChange.mockClear();
|
|
150
|
-
// Симулируем, что текущий активный таб - tab2
|
|
151
|
-
renderNavLine({
|
|
152
|
-
isNavigateByKeys: true,
|
|
153
|
-
activeTab: 'tab2'
|
|
154
|
-
});
|
|
155
|
-
_react.fireEvent.keyDown(document, {
|
|
156
|
-
keyCode: _indexconstants.KEYBOARD_KEY_CODES.ARROW_LEFT
|
|
157
|
-
});
|
|
158
|
-
expect(defaultProps.onChange).toHaveBeenCalledWith('tab1');
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
describe('scroll Functionality', ()=>{
|
|
162
|
-
beforeEach(()=>{
|
|
163
|
-
// Мокаем getBoundingClientRect
|
|
164
|
-
const mockGetBoundingClientRect = jest.fn().mockReturnValue({
|
|
165
|
-
width: 200,
|
|
166
|
-
height: 50,
|
|
167
|
-
top: 0,
|
|
168
|
-
left: 0,
|
|
169
|
-
right: 200,
|
|
170
|
-
bottom: 50,
|
|
171
|
-
x: 0,
|
|
172
|
-
y: 0
|
|
173
|
-
});
|
|
174
|
-
// Мокаем scrollWidth и clientWidth
|
|
175
|
-
Object.defineProperties(HTMLElement.prototype, {
|
|
176
|
-
scrollWidth: {
|
|
177
|
-
configurable: true,
|
|
178
|
-
get: ()=>400
|
|
179
|
-
},
|
|
180
|
-
clientWidth: {
|
|
181
|
-
configurable: true,
|
|
182
|
-
get: ()=>200
|
|
183
|
-
},
|
|
184
|
-
scrollLeft: {
|
|
185
|
-
configurable: true,
|
|
186
|
-
get: ()=>50,
|
|
187
|
-
set: jest.fn()
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
// Мокаем scrollBy
|
|
191
|
-
window.HTMLElement.prototype.scrollBy = jest.fn();
|
|
192
|
-
Element.prototype.getBoundingClientRect = mockGetBoundingClientRect;
|
|
193
|
-
// Мокаем ResizeObserver
|
|
194
|
-
global.ResizeObserver = jest.fn().mockImplementation(()=>({
|
|
195
|
-
observe: jest.fn(),
|
|
196
|
-
unobserve: jest.fn(),
|
|
197
|
-
disconnect: jest.fn()
|
|
198
|
-
}));
|
|
199
|
-
});
|
|
200
|
-
afterEach(()=>{
|
|
201
|
-
jest.restoreAllMocks();
|
|
202
|
-
jest.clearAllMocks();
|
|
203
|
-
});
|
|
204
|
-
it('renders scroll buttons in scroll mode', async ()=>{
|
|
205
|
-
const longItems = Array.from({
|
|
206
|
-
length: 10
|
|
207
|
-
}, (_, index)=>({
|
|
208
|
-
tabId: `tab${index}`,
|
|
209
|
-
label: `Tab ${index}`
|
|
210
|
-
}));
|
|
211
|
-
renderNavLine({
|
|
212
|
-
scrollMode: true,
|
|
213
|
-
items: longItems
|
|
214
|
-
});
|
|
215
|
-
// Имитируем скролл для активации кнопок
|
|
216
|
-
const inner = _react.screen.getByRole('tablist');
|
|
217
|
-
_react.fireEvent.scroll(inner);
|
|
218
|
-
// Проверяем наличие обеих кнопок
|
|
219
|
-
expect(_react.screen.getByTestId('nav-line-scroll-prev')).toBeInTheDocument();
|
|
220
|
-
expect(_react.screen.getByTestId('nav-line-scroll-next')).toBeInTheDocument();
|
|
221
|
-
});
|
|
222
|
-
it('scrolls content when clicking scroll buttons', ()=>{
|
|
223
|
-
const longItems = Array.from({
|
|
224
|
-
length: 10
|
|
225
|
-
}, (_, index)=>({
|
|
226
|
-
tabId: `tab${index}`,
|
|
227
|
-
label: `Tab ${index}`
|
|
228
|
-
}));
|
|
229
|
-
renderNavLine({
|
|
230
|
-
scrollMode: true,
|
|
231
|
-
items: longItems
|
|
232
|
-
});
|
|
233
|
-
// Имитируем скролл для активации кнопок
|
|
234
|
-
const inner = _react.screen.getByRole('tablist');
|
|
235
|
-
_react.fireEvent.scroll(inner);
|
|
236
|
-
const nextButton = _react.screen.getByTestId('nav-line-scroll-next');
|
|
237
|
-
_react.fireEvent.click(nextButton);
|
|
238
|
-
// Проверяем, что scrollBy был вызван с правильными параметрами
|
|
239
|
-
expect(HTMLElement.prototype.scrollBy).toHaveBeenCalledWith({
|
|
240
|
-
left: 100,
|
|
241
|
-
behavior: 'smooth'
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
describe('navigation Modes', ()=>{
|
|
246
|
-
it('renders spans for local navigation', ()=>{
|
|
247
|
-
renderNavLine({
|
|
248
|
-
isLocal: true
|
|
249
|
-
});
|
|
250
|
-
const tabs = _react.screen.getAllByRole('tab');
|
|
251
|
-
tabs.forEach((tab)=>{
|
|
252
|
-
expect(tab.tagName.toLowerCase()).toBe('span');
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
it('renders NavLinks for router navigation', ()=>{
|
|
256
|
-
renderNavLine({
|
|
257
|
-
isLocal: false
|
|
258
|
-
});
|
|
259
|
-
const tabs = _react.screen.getAllByRole('tab');
|
|
260
|
-
tabs.forEach((tab)=>{
|
|
261
|
-
expect(tab.tagName.toLowerCase()).toBe('a');
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
describe('accessibility', ()=>{
|
|
266
|
-
it('has correct ARIA attributes', ()=>{
|
|
267
|
-
renderNavLine();
|
|
268
|
-
const tabList = _react.screen.getByRole('tablist');
|
|
269
|
-
expect(tabList).toHaveAttribute('aria-orientation', 'horizontal');
|
|
270
|
-
const tabs = _react.screen.getAllByRole('tab');
|
|
271
|
-
tabs.forEach((tab)=>{
|
|
272
|
-
expect(tab).toHaveAttribute('aria-selected');
|
|
273
|
-
if (tab.classList.contains('disabled')) {
|
|
274
|
-
expect(tab).toHaveAttribute('aria-disabled', 'true');
|
|
275
|
-
expect(tab).toHaveAttribute('tabIndex', '-1');
|
|
276
|
-
} else {
|
|
277
|
-
expect(tab).toHaveAttribute('tabIndex', '0');
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
describe('edge Cases', ()=>{
|
|
283
|
-
it('handles empty items array', ()=>{
|
|
284
|
-
renderNavLine({
|
|
285
|
-
items: []
|
|
286
|
-
});
|
|
287
|
-
const tabList = _react.screen.getByRole('tablist');
|
|
288
|
-
expect(tabList.children.length).toBe(0);
|
|
289
|
-
});
|
|
290
|
-
it('handles undefined icon', ()=>{
|
|
291
|
-
const itemsWithUndefinedIcon = [
|
|
292
|
-
{
|
|
293
|
-
tabId: 'tab1',
|
|
294
|
-
label: 'Tab 1',
|
|
295
|
-
icon: undefined
|
|
296
|
-
}
|
|
297
|
-
];
|
|
298
|
-
renderNavLine({
|
|
299
|
-
items: itemsWithUndefinedIcon
|
|
300
|
-
});
|
|
301
|
-
expect(_react.screen.queryByTestId('user-icon')).not.toBeInTheDocument();
|
|
302
|
-
});
|
|
303
|
-
it('handles mode create', ()=>{
|
|
304
|
-
renderNavLine({
|
|
305
|
-
mode: 'create'
|
|
306
|
-
});
|
|
307
|
-
const generalTab = _react.screen.getByText('Tab 1').closest('.nav-line__item');
|
|
308
|
-
expect(generalTab).toHaveClass('disabled');
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _NavLine = /*#__PURE__*/ _interop_require_default(require("./NavLine"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const _default = _NavLine.default;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
PageTitleTemplate: function() {
|
|
13
|
-
return PageTitleTemplate;
|
|
14
|
-
},
|
|
15
|
-
default: function() {
|
|
16
|
-
return _default;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
const _jsxruntime = require("react/jsx-runtime");
|
|
20
|
-
const _reactfeather = require("react-feather");
|
|
21
|
-
const _Button = /*#__PURE__*/ _interop_require_default(require("../Button/Button"));
|
|
22
|
-
const _PageTitle = /*#__PURE__*/ _interop_require_default(require("./PageTitle"));
|
|
23
|
-
function _interop_require_default(obj) {
|
|
24
|
-
return obj && obj.__esModule ? obj : {
|
|
25
|
-
default: obj
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
const _default = {
|
|
29
|
-
title: 'UI/PageTitle',
|
|
30
|
-
component: _PageTitle.default,
|
|
31
|
-
args: {
|
|
32
|
-
title: 'Some page title',
|
|
33
|
-
pages: [
|
|
34
|
-
{
|
|
35
|
-
name: 'Lenders',
|
|
36
|
-
path: '/lenders'
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'Some subpage',
|
|
40
|
-
path: '/lenders/subpage'
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: 'Current',
|
|
44
|
-
path: '/lenders/subpage/current'
|
|
45
|
-
}
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
function Template(args) {
|
|
50
|
-
const buttonHandler = ()=>{
|
|
51
|
-
// do smth
|
|
52
|
-
};
|
|
53
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
54
|
-
...args,
|
|
55
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
|
|
56
|
-
label: "Back",
|
|
57
|
-
icon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.ArrowLeft, {}),
|
|
58
|
-
onClick: buttonHandler
|
|
59
|
-
})
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
const PageTitleTemplate = Template.bind({});
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _jsxruntime = require("react/jsx-runtime");
|
|
6
|
-
const _react = require("@testing-library/react");
|
|
7
|
-
require("@testing-library/jest-dom");
|
|
8
|
-
const _PageTitle = /*#__PURE__*/ _interop_require_default(require("./PageTitle"));
|
|
9
|
-
function _interop_require_default(obj) {
|
|
10
|
-
return obj && obj.__esModule ? obj : {
|
|
11
|
-
default: obj
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
describe('pageTitle Component', ()=>{
|
|
15
|
-
const mockPages = [
|
|
16
|
-
{
|
|
17
|
-
name: 'Page 1',
|
|
18
|
-
path: '/page1'
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: 'Page 2',
|
|
22
|
-
path: '/page2'
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: 'Current Page',
|
|
26
|
-
path: '/current'
|
|
27
|
-
}
|
|
28
|
-
];
|
|
29
|
-
const defaultProps = {
|
|
30
|
-
title: 'Test Title',
|
|
31
|
-
pages: mockPages,
|
|
32
|
-
testId: 'page-title-test'
|
|
33
|
-
};
|
|
34
|
-
it('renders with basic props', ()=>{
|
|
35
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
36
|
-
...defaultProps
|
|
37
|
-
}));
|
|
38
|
-
expect(_react.screen.getByTestId('page-title-test')).toBeInTheDocument();
|
|
39
|
-
expect(_react.screen.getByRole('heading', {
|
|
40
|
-
level: 1
|
|
41
|
-
})).toHaveTextContent('Test Title');
|
|
42
|
-
});
|
|
43
|
-
it('renders home icon with correct link', ()=>{
|
|
44
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
45
|
-
...defaultProps
|
|
46
|
-
}));
|
|
47
|
-
const homeLink = _react.screen.getByLabelText('Home page');
|
|
48
|
-
expect(homeLink).toBeInTheDocument();
|
|
49
|
-
expect(homeLink).toHaveAttribute('href', '/');
|
|
50
|
-
});
|
|
51
|
-
it('renders breadcrumb navigation correctly', ()=>{
|
|
52
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
53
|
-
...defaultProps
|
|
54
|
-
}));
|
|
55
|
-
const nav = _react.screen.getByRole('navigation', {
|
|
56
|
-
name: 'Breadcrumb'
|
|
57
|
-
});
|
|
58
|
-
expect(nav).toBeInTheDocument();
|
|
59
|
-
mockPages.forEach((page)=>{
|
|
60
|
-
expect(_react.screen.getByText(page.name)).toBeInTheDocument();
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
it('renders last page as non-clickable text', ()=>{
|
|
64
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
65
|
-
...defaultProps
|
|
66
|
-
}));
|
|
67
|
-
const lastPage = _react.screen.getByText('Current Page');
|
|
68
|
-
expect(lastPage).toHaveClass('page-title__link_last');
|
|
69
|
-
expect(lastPage.tagName).toBe('SPAN');
|
|
70
|
-
expect(lastPage).toHaveAttribute('aria-current', 'page');
|
|
71
|
-
});
|
|
72
|
-
it('renders intermediate pages as links', ()=>{
|
|
73
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
74
|
-
...defaultProps
|
|
75
|
-
}));
|
|
76
|
-
const firstPageLink = _react.screen.getByText('Page 1');
|
|
77
|
-
expect(firstPageLink.tagName).toBe('A');
|
|
78
|
-
expect(firstPageLink).toHaveAttribute('href', '/page1');
|
|
79
|
-
});
|
|
80
|
-
it('renders children when provided', ()=>{
|
|
81
|
-
const childText = 'Child Content';
|
|
82
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
83
|
-
...defaultProps,
|
|
84
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
85
|
-
"data-testid": "child-content",
|
|
86
|
-
children: childText
|
|
87
|
-
})
|
|
88
|
-
}));
|
|
89
|
-
expect(_react.screen.getByTestId('child-content')).toBeInTheDocument();
|
|
90
|
-
expect(_react.screen.getByText(childText)).toBeInTheDocument();
|
|
91
|
-
});
|
|
92
|
-
it('renders with empty pages array', ()=>{
|
|
93
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
94
|
-
title: "Test Title",
|
|
95
|
-
pages: [],
|
|
96
|
-
testId: "page-title-test"
|
|
97
|
-
}));
|
|
98
|
-
expect(_react.screen.getByTestId('page-title-test')).toBeInTheDocument();
|
|
99
|
-
expect(_react.screen.queryByRole('navigation')).not.toBeInTheDocument();
|
|
100
|
-
});
|
|
101
|
-
it('uses default testId when not provided', ()=>{
|
|
102
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
103
|
-
title: "Test Title",
|
|
104
|
-
pages: []
|
|
105
|
-
}));
|
|
106
|
-
expect(_react.screen.getByTestId('page-title')).toBeInTheDocument();
|
|
107
|
-
});
|
|
108
|
-
it('renders correct number of delimiters', ()=>{
|
|
109
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
110
|
-
...defaultProps
|
|
111
|
-
}));
|
|
112
|
-
const delimiters = _react.screen.getAllByText('/');
|
|
113
|
-
// Количество разделителей должно быть равно количеству страниц
|
|
114
|
-
expect(delimiters).toHaveLength(mockPages.length);
|
|
115
|
-
});
|
|
116
|
-
// Тест на проверку доступности
|
|
117
|
-
it('meets accessibility requirements', ()=>{
|
|
118
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
119
|
-
...defaultProps
|
|
120
|
-
}));
|
|
121
|
-
// Получаем компонент по testId
|
|
122
|
-
const pageTitle = _react.screen.getByTestId(defaultProps.testId);
|
|
123
|
-
// Проверяем атрибуты на самом компоненте
|
|
124
|
-
expect(pageTitle).toHaveAttribute('role', 'region');
|
|
125
|
-
expect(pageTitle).toHaveAttribute('aria-label', defaultProps.title);
|
|
126
|
-
// Проверяем навигацию
|
|
127
|
-
const navigation = _react.screen.getByRole('navigation');
|
|
128
|
-
expect(navigation).toHaveAttribute('aria-label', 'Breadcrumb');
|
|
129
|
-
// Проверяем заголовок
|
|
130
|
-
expect(_react.screen.getByRole('heading', {
|
|
131
|
-
level: 1
|
|
132
|
-
})).toHaveTextContent(defaultProps.title);
|
|
133
|
-
// Проверяем, что последняя страница помечена как текущая
|
|
134
|
-
const currentPage = _react.screen.getByText(mockPages[mockPages.length - 1].name);
|
|
135
|
-
expect(currentPage).toHaveAttribute('aria-current', 'page');
|
|
136
|
-
// Проверяем, что иконка дома правильно скрыта от скринридеров
|
|
137
|
-
const homeLink = _react.screen.getByLabelText('Home page');
|
|
138
|
-
const homeIcon = homeLink.querySelector('svg');
|
|
139
|
-
expect(homeIcon).toHaveAttribute('aria-hidden', 'true');
|
|
140
|
-
});
|
|
141
|
-
describe('accessibility', ()=>{
|
|
142
|
-
it('has correct heading structure', ()=>{
|
|
143
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
144
|
-
...defaultProps
|
|
145
|
-
}));
|
|
146
|
-
const heading = _react.screen.getByRole('heading', {
|
|
147
|
-
level: 1
|
|
148
|
-
});
|
|
149
|
-
expect(heading).toBeInTheDocument();
|
|
150
|
-
expect(heading).toHaveTextContent(defaultProps.title);
|
|
151
|
-
});
|
|
152
|
-
it('has correct breadcrumb structure', ()=>{
|
|
153
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
154
|
-
...defaultProps
|
|
155
|
-
}));
|
|
156
|
-
const listItems = _react.screen.getAllByRole('listitem');
|
|
157
|
-
// Проверяем, что количество элементов списка правильное (home + все страницы)
|
|
158
|
-
expect(listItems).toHaveLength(mockPages.length + 1);
|
|
159
|
-
});
|
|
160
|
-
it('has proper focus management', ()=>{
|
|
161
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
162
|
-
...defaultProps
|
|
163
|
-
}));
|
|
164
|
-
// Проверяем все интерактивные элементы на возможность фокуса
|
|
165
|
-
const links = _react.screen.getAllByRole('link');
|
|
166
|
-
links.forEach((link)=>{
|
|
167
|
-
expect(link).toBeVisible();
|
|
168
|
-
expect(link).not.toHaveAttribute('tabindex', '-1');
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
it('preserves correct reading order', ()=>{
|
|
172
|
-
(0, _react.render)(/*#__PURE__*/ (0, _jsxruntime.jsx)(_PageTitle.default, {
|
|
173
|
-
...defaultProps
|
|
174
|
-
}));
|
|
175
|
-
const nav = _react.screen.getByRole('navigation');
|
|
176
|
-
const homeLink = _react.screen.getByLabelText('Home page');
|
|
177
|
-
// Проверяем, что домашняя ссылка идет первой в навигации
|
|
178
|
-
expect(nav.firstElementChild).toContainElement(homeLink);
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _PageTitle = /*#__PURE__*/ _interop_require_default(require("./PageTitle"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const _default = _PageTitle.default;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
ChartTemplate: function() {
|
|
13
|
-
return ChartTemplate;
|
|
14
|
-
},
|
|
15
|
-
default: function() {
|
|
16
|
-
return _default;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
const _jsxruntime = require("react/jsx-runtime");
|
|
20
|
-
const _PieChart = /*#__PURE__*/ _interop_require_default(require("./PieChart"));
|
|
21
|
-
function _interop_require_default(obj) {
|
|
22
|
-
return obj && obj.__esModule ? obj : {
|
|
23
|
-
default: obj
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const _default = {
|
|
27
|
-
title: 'UI/PieChart',
|
|
28
|
-
component: _PieChart.default,
|
|
29
|
-
argTypes: {},
|
|
30
|
-
args: {
|
|
31
|
-
cutout: '85%',
|
|
32
|
-
withLegend: false,
|
|
33
|
-
resultLabel: 'Conversion rate',
|
|
34
|
-
resultValue: 85.12,
|
|
35
|
-
data: {
|
|
36
|
-
labels: [
|
|
37
|
-
'Red',
|
|
38
|
-
'Blue',
|
|
39
|
-
'Yellow',
|
|
40
|
-
'Green',
|
|
41
|
-
'Purple',
|
|
42
|
-
'Orange'
|
|
43
|
-
],
|
|
44
|
-
datasets: [
|
|
45
|
-
{
|
|
46
|
-
label: '# of Votes',
|
|
47
|
-
data: [
|
|
48
|
-
12,
|
|
49
|
-
19,
|
|
50
|
-
3,
|
|
51
|
-
5,
|
|
52
|
-
2,
|
|
53
|
-
3
|
|
54
|
-
],
|
|
55
|
-
backgroundColor: [
|
|
56
|
-
'rgba(255, 99, 132, 0.2)',
|
|
57
|
-
'rgba(54, 162, 235, 0.2)',
|
|
58
|
-
'rgba(255, 206, 86, 0.2)',
|
|
59
|
-
'rgba(75, 192, 192, 0.2)',
|
|
60
|
-
'rgba(153, 102, 255, 0.2)',
|
|
61
|
-
'rgba(255, 159, 64, 0.2)'
|
|
62
|
-
],
|
|
63
|
-
borderColor: [
|
|
64
|
-
'rgba(255, 99, 132, 1)',
|
|
65
|
-
'rgba(54, 162, 235, 1)',
|
|
66
|
-
'rgba(255, 206, 86, 1)',
|
|
67
|
-
'rgba(75, 192, 192, 1)',
|
|
68
|
-
'rgba(153, 102, 255, 1)',
|
|
69
|
-
'rgba(255, 159, 64, 1)'
|
|
70
|
-
],
|
|
71
|
-
borderWidth: 0
|
|
72
|
-
}
|
|
73
|
-
]
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
function Template(args) {
|
|
78
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_PieChart.default, {
|
|
79
|
-
...args
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
const ChartTemplate = Template.bind({});
|