intelicoreact 0.0.96 → 0.0.97

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.
Files changed (155) hide show
  1. package/dist/Atomic/FormElements/Input/Input.js +3 -1
  2. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  3. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +4 -4
  4. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  5. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  6. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  7. package/dist/Functions/inputExecutor.js +7 -1
  8. package/package.json +3 -2
  9. package/.babelrc +0 -12
  10. package/.eslintignore +0 -10
  11. package/.eslintrc.json +0 -93
  12. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  13. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  14. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  15. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  16. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  17. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  18. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  19. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  20. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  21. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  22. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  23. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  24. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  25. package/src/Atomic/FormElements/Header/Header.js +0 -67
  26. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  27. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  28. package/src/Atomic/FormElements/Input/Input.js +0 -186
  29. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  30. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  31. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -104
  32. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  33. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  34. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -254
  35. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  36. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -65
  37. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -432
  38. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -126
  39. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  40. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  41. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  42. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  43. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  44. package/src/Atomic/FormElements/Label/Label.js +0 -13
  45. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  46. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  47. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -315
  48. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +0 -120
  49. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -30
  50. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  51. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  52. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  53. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  54. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  55. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  56. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  57. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  58. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  59. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  60. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  61. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  62. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  63. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  64. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  65. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -152
  66. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  67. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  68. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  69. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  70. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  71. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  72. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  73. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  74. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  75. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  76. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  77. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  78. package/src/Atomic/FormElements/Table/Table.js +0 -50
  79. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  80. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  81. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  82. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  83. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  84. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  85. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  86. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  87. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  88. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  89. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  90. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  91. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  92. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  93. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  94. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  95. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  96. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  97. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  98. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  99. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  100. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  101. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  102. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  103. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  104. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  105. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  106. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  107. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  108. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  109. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  110. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  111. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  112. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  113. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  114. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  115. package/src/Atomic/UI/Alert/Alert.js +0 -23
  116. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  117. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  118. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  119. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  120. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  121. package/src/Atomic/UI/Button/Button.js +0 -17
  122. package/src/Atomic/UI/Button/Button.scss +0 -108
  123. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  124. package/src/Atomic/UI/Calendar/Calendar.js +0 -190
  125. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  126. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  127. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  128. package/src/Atomic/UI/Hint/Hint.js +0 -34
  129. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  130. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  131. package/src/Atomic/UI/Price/Price.js +0 -20
  132. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  133. package/src/Atomic/UI/Status/Status.js +0 -38
  134. package/src/Atomic/UI/Status/Status.scss +0 -69
  135. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  136. package/src/Constants/index.constants.js +0 -41
  137. package/src/Functions/customEventListener.js +0 -58
  138. package/src/Functions/inputExecutor.js +0 -53
  139. package/src/Functions/schemas.js +0 -31
  140. package/src/Functions/useClickOutside.js +0 -15
  141. package/src/Functions/useMouseUpOutside.js +0 -16
  142. package/src/Functions/useToggle.js +0 -17
  143. package/src/Functions/utils.js +0 -51
  144. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  145. package/src/Molecular/Datepicker/Datepicker.scss +0 -8
  146. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  147. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  148. package/src/Molecular/FormElements/FormElement.js +0 -18
  149. package/src/Molecular/FormElements/FormElement.scss +0 -8
  150. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  151. package/src/index.js +0 -3
  152. package/src/scss/_fonts.scss +0 -109
  153. package/src/scss/_vars.scss +0 -48
  154. package/src/scss/main.scss +0 -40
  155. package/webpack.config.js +0 -61
@@ -1,131 +0,0 @@
1
- @import "../../../scss/vars";
2
-
3
- .tags-dropdown {
4
- display: inline-flex;
5
- flex-direction: column;
6
- position: relative;
7
- width: 100%;
8
-
9
- &__trigger {
10
- background: #ffffff;
11
- border: 1px solid #e2e5ec;
12
- box-sizing: border-box;
13
- border-radius: 3px;
14
- padding-left: 5px;
15
- height: 28px;
16
- display: flex;
17
- align-items: center;
18
- cursor: pointer;
19
- }
20
-
21
- &__btn {
22
- display: flex;
23
- align-items: center;
24
- width: 100%;
25
- }
26
-
27
- &__input {
28
- width: 100%;
29
- background: none;
30
- border: none;
31
- padding-right: 2px;
32
- height: 16px;
33
- text-overflow: ellipsis;
34
- overflow: hidden;
35
- }
36
-
37
- &__list {
38
- position: absolute;
39
- min-width: 100%;
40
- top: 100%;
41
- background: #ffffff;
42
- border: 1px solid #e2e5ec;
43
- box-shadow: 0px 4px 25px rgba(0, 0, 0, 0.25);
44
- width: 148px;
45
- margin-top: 4px;
46
- padding: 8px 0;
47
- max-height: 320px;
48
- overflow-y: auto;
49
- z-index: 2;
50
- text-align: left;
51
- &::-webkit-scrollbar {
52
- width: 4px;
53
- }
54
-
55
- &::-webkit-scrollbar-track {
56
- background: transparent;
57
- }
58
-
59
- &::-webkit-scrollbar-thumb {
60
- background: $color--gray--dark;
61
- border-radius: 4px;
62
- }
63
-
64
- &-item {
65
- display: flex;
66
- align-items: center;
67
- justify-content: flex-start;
68
- padding-left: 35px;
69
- position: relative;
70
- cursor: pointer;
71
- color: $color--dark;
72
- font-size: 13px;
73
- font-weight: 400;
74
- line-height: 24px;
75
- width: 100%;
76
- height: 24px;
77
-
78
- &:hover,
79
- &_active {
80
- background: $color--gray--gentle;
81
- }
82
-
83
- &_disabled {
84
- opacity: 0.3;
85
- pointer-events: none;
86
- }
87
- }
88
- }
89
-
90
- &__arrow {
91
- display: flex;
92
- align-items: center;
93
- margin-right: 5px;
94
-
95
- &_active {
96
- transform: rotate(180deg);
97
- }
98
-
99
- svg {
100
- width: 17px;
101
- height: 17px;
102
- }
103
- }
104
-
105
- &__active-icon {
106
- align-items: center;
107
- position: absolute;
108
- left: 12px;
109
- top: 0;
110
- bottom: 0;
111
- margin: auto;
112
- display: none;
113
- &_active {
114
- display: flex;
115
- }
116
- }
117
-
118
- &-group {
119
- margin-top: 6px;
120
- &__name {
121
- font-size: 10px;
122
- color: $color--gray--dark;
123
- text-transform: uppercase;
124
- margin-left: 17px;
125
- }
126
- }
127
-
128
- &-label {
129
- margin-bottom: 5px;
130
- }
131
- }
@@ -1,44 +0,0 @@
1
- import React, { useState } from 'react';
2
- import TagsDropdown from './TagsDropdown';
3
-
4
- global.lng = 'en';
5
- export default {
6
- title: 'TagsDropdown',
7
- component: TagsDropdown
8
- };
9
-
10
- const Template = args => {
11
- const { options } = args;
12
-
13
- const [value, setValue] = useState([]);
14
- return <TagsDropdown options={options} chosenOptions={value} onChange={setValue} />;
15
- };
16
-
17
- export const TagsDropdownTemplate = Template.bind({});
18
-
19
- TagsDropdownTemplate.args = {
20
- options: [
21
- { id: 1, title: 'Tags Dropdown1', value: 'drop1', disabled: false },
22
- { id: 2, title: 'Tags Dropdown2', value: 'drop2', disabled: false },
23
- { id: 3, title: 'Tags Dropdown3', value: 'drop3', disabled: true },
24
- { id: 4, title: 'Tags Dropdown4', value: 'drop4', disabled: false },
25
- { id: 5, title: 'Tags Dropdown5', value: 'drop5', disabled: false },
26
- { id: 6, title: 'Tags Dropdown6', value: 'drop6', disabled: false },
27
- {
28
- groupName: 'Some Group',
29
- list: [
30
- { id: 7, title: 'Group 11', value: 'group11', disabled: false },
31
- { id: 8, title: 'Group 12', value: 'group12', disabled: true },
32
- { id: 9, title: 'Group 13', value: 'group13', disabled: false }
33
- ]
34
- },
35
- {
36
- groupName: 'Some Group 2',
37
- list: [
38
- { id: 10, title: 'Group 21', value: 'group21', disabled: false },
39
- { id: 11, title: 'Group 22', value: 'group22', disabled: false },
40
- { id: 12, title: 'Group 23', value: 'group23', disabled: false }
41
- ]
42
- }
43
- ]
44
- };
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
-
4
- import './TextSwitcher.scss';
5
-
6
- const RC = 'text-switcher';
7
-
8
- const TextSwitcher = ({ isIncluded = true, activeText = 'is', inactiveText = 'is not', onChange, className }) => {
9
- return (
10
- <button className={cn(RC, { [`${RC}_active`]: isIncluded }, className)} onClick={() => onChange(!isIncluded)}>
11
- <span className={`${RC}__btn`}>{activeText}</span>
12
- {inactiveText && <span className={cn(`${RC}__btn`, `${RC}__btn_off`)}>{inactiveText}</span>}
13
- <div className={cn(`${RC}__slider`, { [`${RC}__slider_inactive`]: !isIncluded })} />
14
- </button>
15
- );
16
- };
17
-
18
- export default TextSwitcher;
@@ -1,50 +0,0 @@
1
- @import '../../../scss/vars';
2
-
3
- .text-switcher {
4
- display: grid;
5
- grid-template-columns: repeat(2, 1fr);
6
- justify-content: center;
7
- align-items: center;
8
- border: 2px solid $color--error-bg;
9
- border-radius: 26px;
10
- padding: 2px;
11
- position: relative;
12
- background: #fff;
13
-
14
- &__btn {
15
- cursor: pointer;
16
- min-width: 58px;
17
- white-space: nowrap;
18
- padding: 0 14px;
19
- height: 100%;
20
- text-transform: uppercase;
21
- font-size: 10px;
22
- color: $green;
23
- position: relative;
24
- z-index: 2;
25
- &_off {
26
- color: $color--error;
27
- }
28
- }
29
-
30
- &__slider {
31
- position: absolute;
32
- left: 0px;
33
- border-radius: 28px;
34
- top: 0px;
35
- bottom: 0px;
36
- width: 50%;
37
- z-index: 0;
38
- background-color: $color--green-light;
39
- transition: left .3s ease,
40
- background-color .3s ease;
41
- &_inactive {
42
- background-color: $color--error-bg;
43
- left: 50%;
44
- }
45
- }
46
-
47
- &_active {
48
- border-color: $color--green-light;
49
- }
50
- }
@@ -1,21 +0,0 @@
1
- import React, { useState } from 'react';
2
- import TextSwitcher from './TextSwitcher';
3
-
4
- global.lng = 'en';
5
- export default {
6
- title: 'TextSwitcher',
7
- component: TextSwitcher
8
- };
9
-
10
- const Template = args => {
11
- const [isActive, setIsActive] = useState(true);
12
-
13
- return <TextSwitcher {...args} isActive={isActive} onChange={setIsActive} />;
14
- };
15
-
16
- export const TextSwitcherTemplate = Template.bind({});
17
-
18
- TextSwitcherTemplate.args = {
19
- activeText: 'is',
20
- inactiveText: 'some long text'
21
- };
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
-
4
- import Label from '../Label/Label';
5
-
6
- import './Textarea.scss';
7
-
8
- const RC = 'textarea';
9
-
10
- const Textarea = ({ value, onChange, placeholder, label, hint, hintSide, isBold, disabled, className }) => {
11
- return (
12
- <div className={cn(`${RC}__wrap`, className)}>
13
- {label && <Label className={`${RC}-label`} label={label} hint={hint} hintSide={hintSide} isBold={isBold} />}
14
- <textarea className={RC} value={value} onChange={e => onChange(e.target.value)} placeholder={placeholder} disabled={disabled} />
15
- </div>
16
- );
17
- };
18
-
19
- export default Textarea;
@@ -1,35 +0,0 @@
1
- @import "../../../scss/vars";
2
- @import "~anme/scss/anme-mixins";
3
-
4
- .textarea {
5
- border: 1px solid #e2e5ec;
6
- background-color: #fff;
7
- min-height: 99px;
8
- min-width: 223px;
9
- width: 100%;
10
- outline: none;
11
- resize: none;
12
- padding: 5px 9px;
13
- box-sizing: border-box;
14
- font-size: 12px;
15
- font-weight: 400;
16
- font-family: Roboto, sans-serif;
17
-
18
- &:focus {
19
- border-color: $color--primary;
20
- filter: drop-shadow(0px 0px 4px rgba(93, 120, 255, 0.5));
21
- }
22
-
23
- &:disabled {
24
- background: #f7f8fa;
25
- opacity: 0.5;
26
- border-color: #a6acb1;
27
- pointer-events: none;
28
- }
29
-
30
- &-label {
31
- margin-bottom: 5px;
32
- }
33
-
34
- @include custom-scroll;
35
- }
@@ -1,24 +0,0 @@
1
- import React, { useState } from 'react';
2
- import Textarea from './Textarea';
3
-
4
- global.lng = 'en';
5
- export default {
6
- title: 'Textarea',
7
- component: Textarea
8
- };
9
-
10
- const Template = args => {
11
- const [value, setValue] = useState('');
12
- return <Textarea {...args} value={value} onChange={setValue} />;
13
- };
14
-
15
- export const TextareaTemplate = Template.bind({});
16
-
17
- TextareaTemplate.args = {
18
- disabled: false,
19
- isBold: true,
20
- placeholder: 'Placeholder',
21
- label: 'label',
22
- hint: 'hint',
23
- hintSide: 'bottom'
24
- };
@@ -1,66 +0,0 @@
1
- import React, { useState } from 'react';
2
- import cn from 'classnames';
3
-
4
- import CheckboxInput from '../CheckboxInput/CheckboxInput';
5
- import { handleObjectChange } from '../../../Functions/utils';
6
-
7
- import './TieredCheckboxes.scss';
8
-
9
- const TieredCheckboxes = ({ items, className }) => {
10
- const [data, setData] = useState(items);
11
- const [checkAll, setCheckAll] = useState(false);
12
- const [checkedItems, setCheckedItems] = useState([]);
13
- const [isThirdStatement, setIsThirdStatement] = useState(false);
14
-
15
- const onChange = handleObjectChange(setData, () => setData([...data]));
16
-
17
- const handleArrayChange = (e, index, childIndex) => {
18
- // change children checkboxes
19
- if (childIndex || childIndex === 0) {
20
- data[index].children[childIndex].value = e;
21
- if (data[index].children.filter(item => item.value === true).length === data[index].children.length) {
22
- data[index].value = true;
23
- setIsThirdStatement(false);
24
- } else if (data[index].children.filter(item => item.value === true).length === 0) {
25
- setIsThirdStatement(false);
26
- } else {
27
- setIsThirdStatement(true);
28
- data[index].value = false;
29
- }
30
-
31
- // change parent checkboxes
32
- } else {
33
- data[index].children.forEach(elem => {
34
- elem.value = e;
35
- });
36
- data[index].value = e;
37
- setCheckAll(true);
38
- setCheckedItems(data[index]);
39
- setIsThirdStatement(false);
40
- }
41
- onChange(data);
42
- };
43
-
44
- return (
45
- <div className={cn('tiered-checkboxes', className)}>
46
- {data.map((parent, index) => (
47
- <div key={parent.id} className="tiered-checkboxes--parents">
48
- <CheckboxInput
49
- isThirdStatement={isThirdStatement}
50
- label={parent.label}
51
- value={data[index].children.length === checkedItems.length ? checkAll : parent.value}
52
- onChange={e => handleArrayChange(e, index)}
53
- />
54
- {parent.children &&
55
- parent.children.map((child, childIndex) => (
56
- <div key={child.id} className="tiered-checkboxes--children">
57
- <CheckboxInput label={child.label} value={child.value} onChange={e => handleArrayChange(e, index, childIndex)} />
58
- </div>
59
- ))}
60
- </div>
61
- ))}
62
- </div>
63
- );
64
- };
65
-
66
- export default TieredCheckboxes;
@@ -1,10 +0,0 @@
1
- .tiered-checkboxes {
2
- &--parents {
3
- margin-bottom: 25px;
4
- }
5
-
6
- &--children {
7
- margin-top: 10px;
8
- margin-left: 10px;
9
- }
10
- }
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
- import TieredCheckboxes from './TieredCheckboxes';
3
-
4
- global.lng = 'en';
5
-
6
- export default {
7
- title: 'TieredCheckboxes',
8
- component: TieredCheckboxes
9
- };
10
-
11
- const Template = args => <TieredCheckboxes {...args} />;
12
-
13
- export const TieredCheckboxesTemplate = Template.bind({});
14
-
15
- TieredCheckboxesTemplate.args = {
16
- items: [
17
- {
18
- id: 1,
19
- label: 'Level 1',
20
- value: false,
21
- children: [
22
- {
23
- id: 1,
24
- label: 'Level 2',
25
- value: true
26
- },
27
- {
28
- id: 2,
29
- label: 'Level 2',
30
- value: false
31
- },
32
- {
33
- id: 3,
34
- label: 'Level 2',
35
- value: false
36
- }
37
- ]
38
- },
39
- {
40
- id: 2,
41
- label: 'Level 1',
42
- value: false,
43
- children: [
44
- {
45
- id: 1,
46
- label: 'Level 2',
47
- value: false
48
- },
49
- {
50
- id: 2,
51
- label: 'Level 2',
52
- value: true
53
- }
54
- ]
55
- }
56
- ]
57
- };
@@ -1,55 +0,0 @@
1
- import React, { useState, useMemo } from 'react';
2
- import cn from 'classnames';
3
- import moment from 'moment';
4
-
5
- import useToggle from '../../../Functions/useToggle';
6
- import Label from '../Label/Label';
7
- import Input from '../Input/Input';
8
-
9
- import './TimeRange.scss';
10
-
11
- const TimeRange = ({ className, from, to, labelFrom, labelTo }) => {
12
- const [startTime, setStartTime] = useState(from);
13
- const [endTime, setEndTime] = useState(to);
14
-
15
- // eslint-disable-next-line no-unused-vars
16
- const { isToggled: isStartTimeValidate, toggleOn: setIsStartTimeValidate } = useToggle();
17
- // eslint-disable-next-line no-unused-vars
18
- const { isToggled: isEndTimeValidate, toggleOn: setIsEndTimeValidate } = useToggle();
19
-
20
- const isStartTimeValid = useMemo(() => moment(startTime, 'HH:mm', true).isValid(), [startTime]);
21
- const isEndTimeValid = useMemo(() => moment(endTime, 'HH:mm', true).isValid(), [endTime]);
22
-
23
- const blurTimeHandler = (time, setFunc) => {
24
- const formattedTime = time ? moment(time, 'HH:mm').format('HH:mm') : '';
25
- setFunc(formattedTime);
26
- };
27
-
28
- return (
29
- <div className={cn(className, 'time-range')}>
30
- <div className="time-range__range">
31
- <Label label={labelFrom || 'Between'} />
32
- <Input
33
- className="time-range__input"
34
- value={startTime}
35
- onChange={value => setStartTime(value)}
36
- placeholder="00:00"
37
- onBlur={() => blurTimeHandler(startTime, setStartTime)}
38
- error={isStartTimeValidate || !isStartTimeValid ? 'HH:MM format' : ''}
39
- />
40
-
41
- <Label label={labelTo || 'and'} />
42
- <Input
43
- className="time-range__input"
44
- value={endTime}
45
- onChange={value => setEndTime(value)}
46
- placeholder="00:00"
47
- onBlur={() => blurTimeHandler(endTime, setEndTime)}
48
- error={isEndTimeValidate || !isEndTimeValid ? 'HH:MM format' : ''}
49
- />
50
- </div>
51
- </div>
52
- );
53
- };
54
-
55
- export default TimeRange;
@@ -1,17 +0,0 @@
1
- .time-range {
2
-
3
- &__input .form-input {
4
- width: 60px;
5
- }
6
-
7
- &__range {
8
- margin: 8px 0 13px 0;
9
- display: flex;
10
- justify-content: flex-start;
11
- align-items: center;
12
-
13
- & > *:not(:last-child) {
14
- margin-right: 16px;
15
- }
16
- }
17
- }
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
-
3
- import TimeRange from './TimeRange';
4
-
5
- global.lng = 'en';
6
-
7
- export default {
8
- title: 'TimeRange',
9
- component: TimeRange
10
- };
11
-
12
- const Template = args => <TimeRange {...args} />;
13
-
14
- export const TimeRangeTemplate = Template.bind({});
15
-
16
- TimeRangeTemplate.args = {
17
- from: '12:00',
18
- to: '13:00',
19
- labelFrom: '',
20
- labelTo: ''
21
- };
@@ -1,112 +0,0 @@
1
- import React, { useState } from 'react';
2
- import cn from 'classnames';
3
- import * as Icons from 'react-feather';
4
- import { NavLink } from 'react-router-dom';
5
-
6
- import Langs from '../../../../Langs';
7
- import Accordion from '../UI/Accordion/Accordion';
8
-
9
- import './MainMenu.scss';
10
-
11
- const classNames = require('classnames');
12
-
13
- const MainMenu = props => {
14
- const { items, className } = props;
15
- const txt = Langs[global.lng];
16
- const [isOpen, setIsOpen] = useState(true);
17
- const [isMenuHovered, setIsMenuHovered] = useState(false);
18
- const [isMenuIconHovered, setIsMenuIconHovered] = useState(false);
19
-
20
- const chapterClass = classNames('main-menu--items-box-chapter', { 'main-menu--items-box-chapter-hidden': !isOpen && !isMenuHovered });
21
- const accordionClass = classNames('main-menu--accordion', { 'main-menu--accordion-hidden': !isOpen && !isMenuHovered });
22
- const itemsBoxClass = classNames('main-menu--items-box', { 'main-menu--items-box-closed': !isOpen && !isMenuHovered });
23
- const mainMenuClass = classNames('main-menu', className, { 'main-menu--closed': !isOpen && !isMenuHovered });
24
-
25
- const onMenuHover = () => {
26
- if (!isOpen) {
27
- setIsMenuHovered(!isMenuHovered);
28
- items.mainMenu.forEach(item => {
29
- item.isOpen = false;
30
- });
31
- items.partners.forEach(item => {
32
- item.isOpen = false;
33
- });
34
- items.other.forEach(item => {
35
- item.isOpen = false;
36
- });
37
- }
38
- };
39
-
40
- const onCloseMenu = () => {
41
- setIsOpen(!isOpen);
42
- items.mainMenu.forEach(item => {
43
- item.isOpen = false;
44
- });
45
- items.partners.forEach(item => {
46
- item.isOpen = false;
47
- });
48
- items.other.forEach(item => {
49
- item.isOpen = false;
50
- });
51
- };
52
-
53
- const changeMenuIcon = () => {
54
- if (isOpen && !isMenuIconHovered) return <Icons.Menu />;
55
- if (isOpen && isMenuIconHovered) return <Icons.ChevronLeft />;
56
- if (!isOpen && isMenuHovered) return <Icons.ChevronRight />;
57
- if (!isOpen) return <div className="main-menu--logo-close" />;
58
- return null;
59
- };
60
-
61
- return (
62
- <div className={mainMenuClass} onMouseEnter={() => onMenuHover()} onMouseLeave={() => setIsMenuHovered(false)}>
63
- <div className={cn('main-menu--header', { 'main-menu--header-closed': !isOpen && !isMenuHovered })}>
64
- <div className={cn('main-menu--logo', { 'main-menu--logo-none': !isOpen && !isMenuHovered })} />
65
- <div className="main-menu--header-btn" onClick={() => onCloseMenu()}>
66
- <div className="j5" onMouseEnter={() => setIsMenuIconHovered(true)} onMouseLeave={() => setIsMenuIconHovered(false)}>
67
- {changeMenuIcon()}
68
- </div>
69
- </div>
70
- </div>
71
-
72
- <div className={itemsBoxClass}>
73
- <div className={cn('main-menu--items-box-main')}>
74
- {items.main.map((item, index) => {
75
- const Icon = Icons[item.icon];
76
- return item.link ? (
77
- <NavLink to={item.link} key={index} className={cn('main-menu--items-box-title')}>
78
- <div className="main-menu--item">
79
- <div className="df">
80
- <Icon className={cn('mr5', item.className)} />
81
- </div>
82
- <span className={cn({ hidden: !isOpen && !isMenuHovered })}>{item?.title || 'Link'}</span>
83
- </div>
84
- </NavLink>
85
- ) : (
86
- <span key={index} className={cn('main-menu--items-box-title', { hidden: !isOpen && !isMenuHovered })}>
87
- {txt?.titles[item?.title]}
88
- </span>
89
- );
90
- })}
91
- </div>
92
-
93
- <div className={chapterClass}>
94
- <span>Main menu</span>
95
- </div>
96
- <Accordion className={accordionClass} items={items.mainMenu} onClick={() => {}} />
97
-
98
- <div className={chapterClass}>
99
- <span>Partners</span>
100
- </div>
101
- <Accordion isOpen={isOpen} isMenuHovered={isMenuHovered} className={accordionClass} items={items.partners} onClick={() => {}} />
102
-
103
- <div className={chapterClass}>
104
- <span>Other</span>
105
- </div>
106
- <Accordion className={accordionClass} isOpen={isOpen} isMenuHovered={isMenuHovered} items={items.other} onClick={() => {}} />
107
- </div>
108
- </div>
109
- );
110
- };
111
-
112
- export default MainMenu;