intelicoreact 0.0.96 → 0.0.99

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 (160) hide show
  1. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +5 -3
  2. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +2 -1
  3. package/dist/Atomic/FormElements/Input/Input.js +3 -1
  4. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  5. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +4 -4
  6. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +179 -70
  7. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +23 -23
  8. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +87 -12
  9. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  10. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  11. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  12. package/dist/Functions/inputExecutor.js +7 -1
  13. package/package.json +3 -2
  14. package/.babelrc +0 -12
  15. package/.eslintignore +0 -10
  16. package/.eslintrc.json +0 -93
  17. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  18. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  19. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  20. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  21. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  22. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  23. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  24. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  25. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  26. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  27. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  28. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  29. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  30. package/src/Atomic/FormElements/Header/Header.js +0 -67
  31. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  32. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  33. package/src/Atomic/FormElements/Input/Input.js +0 -186
  34. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  35. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  36. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -104
  37. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  38. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  39. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -254
  40. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  41. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -65
  42. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -432
  43. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -126
  44. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  45. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  46. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  47. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  48. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  49. package/src/Atomic/FormElements/Label/Label.js +0 -13
  50. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  51. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  52. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -315
  53. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +0 -120
  54. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -30
  55. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  56. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  57. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  58. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  59. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  60. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  61. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  62. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  63. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  64. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  65. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  66. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  67. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  68. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  69. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  70. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -152
  71. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  72. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  73. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  74. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  75. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  76. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  77. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  78. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  79. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  80. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  81. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  82. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  83. package/src/Atomic/FormElements/Table/Table.js +0 -50
  84. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  85. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  86. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  87. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  88. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  89. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  90. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  91. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  92. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  93. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  94. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  95. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  96. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  97. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  98. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  99. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  100. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  101. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  102. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  103. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  104. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  105. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  106. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  107. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  108. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  109. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  110. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  111. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  112. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  113. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  114. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  115. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  116. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  117. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  118. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  119. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  120. package/src/Atomic/UI/Alert/Alert.js +0 -23
  121. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  122. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  123. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  124. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  125. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  126. package/src/Atomic/UI/Button/Button.js +0 -17
  127. package/src/Atomic/UI/Button/Button.scss +0 -108
  128. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  129. package/src/Atomic/UI/Calendar/Calendar.js +0 -190
  130. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  131. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  132. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  133. package/src/Atomic/UI/Hint/Hint.js +0 -34
  134. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  135. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  136. package/src/Atomic/UI/Price/Price.js +0 -20
  137. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  138. package/src/Atomic/UI/Status/Status.js +0 -38
  139. package/src/Atomic/UI/Status/Status.scss +0 -69
  140. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  141. package/src/Constants/index.constants.js +0 -41
  142. package/src/Functions/customEventListener.js +0 -58
  143. package/src/Functions/inputExecutor.js +0 -53
  144. package/src/Functions/schemas.js +0 -31
  145. package/src/Functions/useClickOutside.js +0 -15
  146. package/src/Functions/useMouseUpOutside.js +0 -16
  147. package/src/Functions/useToggle.js +0 -17
  148. package/src/Functions/utils.js +0 -51
  149. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  150. package/src/Molecular/Datepicker/Datepicker.scss +0 -8
  151. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  152. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  153. package/src/Molecular/FormElements/FormElement.js +0 -18
  154. package/src/Molecular/FormElements/FormElement.scss +0 -8
  155. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  156. package/src/index.js +0 -3
  157. package/src/scss/_fonts.scss +0 -109
  158. package/src/scss/_vars.scss +0 -48
  159. package/src/scss/main.scss +0 -40
  160. 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;