intelicoreact 0.0.94 → 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 (162) 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/InputCalendar/InputCalendar.js +23 -4
  4. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +3 -3
  5. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +16 -5
  6. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +7 -5
  7. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +29 -24
  8. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +13 -7
  9. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +427 -0
  10. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +120 -0
  11. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +56 -0
  12. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +11 -8
  13. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  14. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  15. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  16. package/dist/Atomic/UI/Calendar/Calendar.js +13 -12
  17. package/dist/Functions/customEventListener.js +66 -0
  18. package/dist/Functions/inputExecutor.js +7 -1
  19. package/dist/Functions/useMouseUpOutside.js +23 -0
  20. package/package.json +3 -2
  21. package/.babelrc +0 -12
  22. package/.eslintignore +0 -10
  23. package/.eslintrc.json +0 -93
  24. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  25. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  26. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  27. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  28. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  29. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  30. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  31. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  32. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  33. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  34. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  35. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  36. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  37. package/src/Atomic/FormElements/Header/Header.js +0 -67
  38. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  39. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  40. package/src/Atomic/FormElements/Input/Input.js +0 -186
  41. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  42. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  43. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -73
  44. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  45. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  46. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -219
  47. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  48. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -63
  49. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -433
  50. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -118
  51. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  52. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  53. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  54. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  55. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  56. package/src/Atomic/FormElements/Label/Label.js +0 -13
  57. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  58. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  59. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  60. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  61. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  62. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  63. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  64. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  65. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  66. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  67. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  68. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  69. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  70. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  71. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  72. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  73. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  74. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -146
  75. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  76. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  77. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  78. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  79. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  80. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  81. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  82. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  83. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  84. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  85. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  86. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  87. package/src/Atomic/FormElements/Table/Table.js +0 -50
  88. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  89. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  90. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  91. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  92. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  93. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  94. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  95. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  96. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  97. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  98. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  99. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  100. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  101. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  102. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  103. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  104. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  105. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  106. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  107. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  108. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  109. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  110. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  111. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  112. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  113. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  114. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  115. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  116. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  117. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  118. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  119. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  120. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  121. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  122. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  123. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  124. package/src/Atomic/UI/Alert/Alert.js +0 -23
  125. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  126. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  127. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  128. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  129. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  130. package/src/Atomic/UI/Button/Button.js +0 -17
  131. package/src/Atomic/UI/Button/Button.scss +0 -108
  132. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  133. package/src/Atomic/UI/Calendar/Calendar.js +0 -180
  134. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  135. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  136. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  137. package/src/Atomic/UI/Hint/Hint.js +0 -34
  138. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  139. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  140. package/src/Atomic/UI/Price/Price.js +0 -20
  141. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  142. package/src/Atomic/UI/Status/Status.js +0 -38
  143. package/src/Atomic/UI/Status/Status.scss +0 -69
  144. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  145. package/src/Constants/index.constants.js +0 -41
  146. package/src/Functions/inputExecutor.js +0 -53
  147. package/src/Functions/schemas.js +0 -31
  148. package/src/Functions/useClickOutside.js +0 -15
  149. package/src/Functions/useToggle.js +0 -17
  150. package/src/Functions/utils.js +0 -51
  151. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  152. package/src/Molecular/Datepicker/Datepicker.scss +0 -8
  153. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  154. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  155. package/src/Molecular/FormElements/FormElement.js +0 -18
  156. package/src/Molecular/FormElements/FormElement.scss +0 -8
  157. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  158. package/src/index.js +0 -3
  159. package/src/scss/_fonts.scss +0 -109
  160. package/src/scss/_vars.scss +0 -48
  161. package/src/scss/main.scss +0 -40
  162. package/webpack.config.js +0 -61
@@ -1,72 +0,0 @@
1
- .advanced-tags {
2
- display: inline-flex;
3
- background-color: #e2e5ec;
4
- height: 24px;
5
- align-items: center;
6
- justify-content: center;
7
- border-radius: 2px;
8
- padding: 2px 8px;
9
- margin-right: 4px;
10
- font-size: 10px;
11
- position: relative;
12
- margin-top: 2.5px;
13
- margin-bottom: 2.5px;
14
-
15
- &--error {
16
- background-color: #fce2e8;
17
- }
18
-
19
- &--warning-icon {
20
- min-height: 16px;
21
- min-width: 16px;
22
- font-size: 17px;
23
- color: #f06d8d;
24
- }
25
-
26
- &__warn-text {
27
- position: absolute;
28
- background-color: #6b81dd;
29
- color: #fff;
30
- font-size: 10px;
31
- line-height: 16px;
32
- border-radius: 4px;
33
- max-width: 250px;
34
- min-width: 80px;
35
- padding: 8px;
36
- z-index: 2;
37
-
38
- &:before {
39
- content: '';
40
- position: absolute;
41
- width: 8.5px;
42
- height: 8.5px;
43
- background-color: #6b81dd;
44
- transform: rotate(45deg);
45
- }
46
-
47
- &--warnLeft {
48
- top: 30px;
49
- left: 4px;
50
-
51
- &:before {
52
- left: 8px;
53
- top: -4px;
54
- }
55
- }
56
-
57
- &--warnRight {
58
- top: 30px;
59
-
60
- &:before {
61
- right: 10px;
62
- top: -4px;
63
- }
64
- }
65
- }
66
-
67
- &--showMore {
68
- background-color: #ffedc8;
69
- cursor: pointer;
70
- user-select: none;
71
- }
72
- }
@@ -1,49 +0,0 @@
1
- import React from 'react';
2
- import AdvancedTags from './AdvancedTags';
3
-
4
- global.lng = 'en';
5
-
6
- export default {
7
- title: 'UI/AdvancedTags',
8
- component: AdvancedTags
9
- };
10
-
11
- const Template = ({ tags }) => <AdvancedTags items={tags} />;
12
-
13
- export const AdvancedTagTemplate = Template.bind({});
14
-
15
- AdvancedTagTemplate.args = {
16
- tags: [
17
- {
18
- tagId: 1,
19
- labelLeft: 'Left',
20
- labelRight: 'Right',
21
- active: 3,
22
- pause: 1,
23
- merchants: 5
24
- },
25
- {
26
- tagId: 2,
27
- labelLeft: 'Left',
28
- active: 2,
29
- pause: 0,
30
- merchants: 2
31
- },
32
- {
33
- tagId: 3,
34
- labelRight: 'Right',
35
- active: 3,
36
- merchants: 5
37
- },
38
- {
39
- tagId: 4,
40
- labelLeft: 'Left',
41
- labelRight: 'Right',
42
- active: 0,
43
- pause: 0,
44
- warnLeft: true,
45
- warnLeftMsg: 'Warn left message',
46
- warnRightMsg: 'Warn right message'
47
- }
48
- ]
49
- };
@@ -1,23 +0,0 @@
1
- import React, { useState } from 'react';
2
- import cn from 'classnames';
3
- import { X } from 'react-feather';
4
-
5
- import './Alert.scss';
6
-
7
- const Alert = ({ message, icon, variant, className, children, noDismiss }) => {
8
- const [onClose, setOnClose] = useState(false);
9
-
10
- return (
11
- <div className={cn(className, { hidden: onClose }, `alert alert--${variant || 'warning'}`)}>
12
- {icon}
13
- <div>{children || message}</div>
14
- {!noDismiss && (
15
- <div className="alert__close-btn">
16
- <X onClick={() => setOnClose(!onClose)} />
17
- </div>
18
- )}
19
- </div>
20
- );
21
- };
22
-
23
- export default Alert;
@@ -1,65 +0,0 @@
1
- .alert {
2
- display: flex;
3
- align-items: center;
4
- justify-content: space-between;
5
- padding: 15px;
6
- border-top-right-radius: 5px;
7
- border-bottom-right-radius: 5px;
8
- width: 100%;
9
- box-sizing: border-box;
10
- font-size: 13px;
11
-
12
- &--error {
13
- color: #f06d8d;
14
- background-color: #fce2e8;
15
- border-left: 2px solid #f06d8d;
16
- }
17
-
18
- &--warning {
19
- color: #f59a2f;
20
- background-color: #ffedc8;
21
- border-left: 2px solid #f59a2f;
22
- }
23
-
24
- &--success {
25
- color: #00b031;
26
- background-color: #e4f3e8;
27
- border-left: 2px solid #00b031;
28
- }
29
-
30
- &--info {
31
- color: #6b81dd;
32
- background-color: #e2e6f8;
33
- border-left: 2px solid #6b81dd;
34
- }
35
-
36
- &__close-btn {
37
- display: flex;
38
- align-items: center;
39
- justify-content: flex-end;
40
- min-width: 15px;
41
- cursor: pointer;
42
- user-select: none;
43
- margin-left: 10px;
44
- }
45
-
46
- &--title {
47
- background-color: #ebeff2;
48
- border-radius: 4px;
49
- height: 37px;
50
- font-weight: 400;
51
- color: #1E1E2D;
52
- font-size: 13px;
53
- text-transform: uppercase;
54
-
55
- .alert__close-btn {
56
- display: none;
57
- }
58
- }
59
-
60
- svg {
61
- width: 16px;
62
- height: 16px;
63
- min-width: 16px;
64
- }
65
- }
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import Alert from './Alert';
3
-
4
- global.lng = 'en';
5
-
6
- export default {
7
- title: 'UI/Alert',
8
- component: Alert,
9
- argTypes: {
10
- variant: {
11
- description: 'string: ["error", "warning", "success", "info"]',
12
- control: {
13
- type: 'select',
14
- options: ['error', 'warning', 'success', 'info']
15
- }
16
- },
17
- message: {
18
- description: 'string'
19
- }
20
- },
21
- message: {
22
- description: 'string'
23
- }
24
- };
25
-
26
- const Template = args => <Alert {...args} />;
27
-
28
- export const AlertTemplate = Template.bind({});
29
-
30
- AlertTemplate.args = {
31
- message:
32
- "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.",
33
- variant: ''
34
- };
@@ -1,41 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import cn from 'classnames';
3
-
4
- import { getStyles } from '../../../Functions/utils';
5
-
6
- import './Arrow.scss';
7
-
8
- const Arrow = ({type, className, onClick, disabled}) => {
9
- if (!type || (type !== 'left' && type !== 'right')) return null;
10
- const ref = useRef();
11
- const [color, setColor] = useState('black');
12
-
13
- useEffect(() => {
14
- if (ref.current) {
15
- setColor(getStyles(ref.current, 'color'));
16
- };
17
- }, [ref.current]);
18
-
19
- return (
20
- <div
21
- ref={ref}
22
- className={cn('arrow', `arrow_${type}`, className, {
23
- 'arrow_disabled': disabled
24
- })}
25
- onClick={onClick} >
26
- {type !== 'right'
27
- ? (
28
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
29
- <path d="M15 18L9 12L15 6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
30
- </svg>
31
- ) : (
32
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
33
- <path d="M9 18L15 12L9 6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
34
- </svg>
35
- )
36
- }
37
- </div>
38
- );
39
- };
40
-
41
- export default Arrow;
@@ -1,19 +0,0 @@
1
- .arrow {
2
- width: 24px;
3
- height: 24px;
4
-
5
- &_disabled {
6
- pointer-events: none;
7
- opacity: 0.5;
8
- }
9
- }
10
-
11
- .arrow>svg {
12
- width: 100%;
13
- height: 100%;
14
- pointer-events: none;
15
- }
16
-
17
-
18
-
19
-
@@ -1,32 +0,0 @@
1
- import React from 'react';
2
- import {Check} from 'react-feather';
3
- import Arrow from './Arrow';
4
-
5
- global.lng = 'en';
6
-
7
- export default {
8
- title: 'UI/Arrow',
9
- component: Arrow,
10
- argTypes: {
11
- type: {
12
- description: 'string: ["left", "right"]',
13
- control: {
14
- type: 'select',
15
- options: ['left', 'right']
16
- }
17
- }
18
- }
19
- };
20
-
21
- const Template = args => {
22
- const { className, onClick } = args;
23
- return <Arrow {...args} />;
24
- };
25
-
26
- export const ArrowTemplate = Template.bind({});
27
-
28
- ArrowTemplate.args = {
29
- type: 'left',
30
- className: 'externall-class-name',
31
- onClick: ev => console.log(ev.target.className)
32
- };
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
-
4
- import './Button.scss';
5
-
6
- const Button = ({ label, variant = 'primary', onClick, disabled, icon, className, children, style, noIcon }) => {
7
- const noRenderIcon = noIcon || variant === "ellipse-apply" || variant === "ellipse-cancel";
8
- return (
9
- <button style={style} className={cn(className, 'button', { [`button_${variant}`]: variant })} onClick={onClick} disabled={disabled}>
10
- {!noRenderIcon && icon}
11
- {label && <div className="button__text">{label}</div>}
12
- {!label && children ? children : null}
13
- </button>
14
- );
15
- };
16
-
17
- export default Button;
@@ -1,108 +0,0 @@
1
- .button {
2
- display: inline-flex;
3
- justify-content: center;
4
- align-items: center;
5
- font-size: 13px;
6
- line-height: 20px;
7
- border-radius: 3px;
8
- padding: 3px 10px;
9
- cursor: pointer;
10
- box-sizing: border-box;
11
- text-align: center;
12
- user-select: none;
13
- height: 28px;
14
- white-space: nowrap;
15
- box-shadow: 0 2px 5px rgb(0 0 0 / 10%);
16
-
17
- &:disabled {
18
- opacity: 0.5;
19
- pointer-events: none;
20
- }
21
-
22
- &_dark-outline {
23
- border: 1px solid #bac2c9;
24
- color: #1E1E2DFF;
25
-
26
- &:hover {
27
- background-color: #F2F2F8FF;
28
- }
29
- }
30
-
31
- &_primary {
32
- border: 1px solid #6B81DDFF;
33
- background-color: #6B81DDFF;
34
- color: #fff;
35
- &:hover {
36
- filter: brightness(1.1);
37
- }
38
- }
39
-
40
- &_secondary {
41
- border: 1px solid #BAC2C9FF;
42
- background-color: #BAC2C9FF;
43
- color: #fff;
44
- &:hover {
45
- filter: brightness(1.1);
46
- }
47
- }
48
-
49
- &_ellipse-apply{
50
- padding: 8px 16px;
51
- border-radius: 40px;
52
- background: #1F7499;
53
- font-family: 'Sarabun';
54
- font-style: normal;
55
- font-weight: 500;
56
- font-size: 16px;
57
- line-height: 24px;
58
- letter-spacing: 0.1px;
59
- color: #FFFFFF;
60
- }
61
-
62
- &_ellipse-cancel{
63
- padding: 8px 18px;
64
- border-radius: 32px;
65
- font-family: Sarabun;
66
- font-style: normal;
67
- font-weight: normal;
68
- font-size: 14px;
69
- line-height: 20px;
70
- letter-spacing: 0.2px;
71
- color: #1F7499;
72
- }
73
-
74
- &_link {
75
- color: #6b81dd;
76
- box-shadow: none;
77
-
78
- svg {
79
- display: none;
80
- }
81
- }
82
-
83
- &_success {
84
- background-color: #7ac48c;
85
- border: 1px solid #7ac48c;
86
- color: #fff;
87
-
88
- &:hover {
89
- filter: brightness(1.1);
90
- }
91
- }
92
-
93
- &__text {
94
- width: 100%;
95
- text-align: center;
96
- }
97
-
98
- &:active {
99
- filter: brightness(1.1);
100
- }
101
-
102
- &__icon {
103
- width: 20px;
104
- height: 25px;
105
- margin-right: 5px;
106
- min-width: 15px;
107
- }
108
- }
@@ -1,49 +0,0 @@
1
- import React from 'react';
2
- import {Check} from 'react-feather';
3
- import Button from './Button';
4
-
5
- global.lng = 'en';
6
-
7
- export default {
8
- title: 'UI/Button',
9
- component: Button,
10
- argTypes: {
11
- variant: {
12
- description: 'string: ["primary", "secondary", "dark-outline", "ellipse-apply", "ellipse-cancel"]',
13
- control: {
14
- type: 'select',
15
- options: ['primary', 'secondary', 'dark-outline', 'link', 'ellipse-apply', 'ellipse-cancel']
16
- }
17
- },
18
- label: {
19
- description: 'string'
20
- },
21
- disabled: {
22
- description: 'boolean'
23
- },
24
- onClick: {
25
- description: 'function'
26
- },
27
- icon: {
28
- description: 'svg icon code',
29
- control: {
30
- type: 'select',
31
- options: ['Check', 'Edit3', 'Plus', 'Tool', 'UploadCloud', 'X', 'ArrowLeft']
32
- }
33
- }
34
- }
35
- };
36
-
37
- const Template = args => {
38
- return <Button {...args} />;
39
- };
40
-
41
- export const ButtonTemplate = Template.bind({});
42
-
43
- ButtonTemplate.args = {
44
- disabled: false,
45
- onClick: () => null,
46
- label: 'Button',
47
- icon: <Check/>,
48
-
49
- };
@@ -1,180 +0,0 @@
1
- import React, { useEffect, useMemo, useState, useRef } from 'react';
2
- import cn from 'classnames';
3
- import moment from 'moment';
4
- import InputMask from 'react-input-mask';
5
- import { ChevronLeft, ChevronRight } from 'react-feather';
6
- import './Calendar.scss';
7
-
8
- export default function (props) {
9
- const { date, setDate, setIsOpened, allowPrev = true, allowNext = true, params, className, isDontLimitFuture, isListTop } = props;
10
- // const { minDate = '01/01/1900', maxDate = moment().format('MM/DD/YYYY') } = params;
11
- const { minDate, maxDate } = params;
12
- const [days, setDays] = useState({});
13
- const [showDate, setShowDate] = useState(date);
14
- const [isChangeYear, setIsChangeYear] = useState(false);
15
- const [inputYearValue, setInputYearValue] = useState(moment(showDate).format('YYYY'));
16
- const yearInputRef = useRef(null);
17
-
18
- const selectedDay = moment(showDate);
19
- const isError = 'Invalid date';
20
-
21
- // const title = useMemo(
22
- // () => (selectedDay.format('MMM') === isError ? isError : `${selectedDay.format('MMM')} ${moment(showDate).format('YYYY')}`),
23
- // [date, showDate]
24
- // );
25
-
26
- const showMonth = useMemo(() => moment(showDate).format('MMM'), [date, showDate]);
27
- const showYear = useMemo(() => moment(showDate).format('YYYY'), [date, showDate]);
28
-
29
- useEffect(() => {
30
- const result = {};
31
- const day = selectedDay.startOf('month');
32
- const daysInMonth = day.daysInMonth();
33
- for (let d = 0; d < daysInMonth; d += 1) {
34
- let week = day.week();
35
- if (day.month() === 11 && week === 1) week = 53;
36
- if (day.month() === 0 && week === 53) week = 0;
37
- if (!Object.prototype.hasOwnProperty.call(result, week)) {
38
- result[week] = {};
39
- }
40
- result[week][day.weekday()] = { date: day.toDate() };
41
- day.add(1, 'd');
42
- }
43
- setDays(result);
44
- }, [showDate]);
45
-
46
- const renderDay = (week, dayOfWeek) => {
47
- const day = days[week][dayOfWeek];
48
- if (!day) return <div className="calendar__day" />;
49
- const isFutureDay = day && maxDate ? moment(day.date).isAfter(moment(maxDate || ''), 'day') : moment(day.date).isAfter(moment(), 'day');
50
- const isBeforeDay = day && moment(day.date).isBefore(moment(minDate || ''), 'day');
51
-
52
- const classNames = cn(
53
- 'calendar__day',
54
- { 'calendar__day--clickable': day },
55
- { 'calendar__day--disabled': !isDontLimitFuture && isFutureDay },
56
- { 'calendar__day--disabled': isBeforeDay },
57
- { 'calendar__day--selected': moment(date).format() === moment(day.date).format() }
58
- );
59
-
60
- return (
61
- <div
62
- key={`${week}_${dayOfWeek}`}
63
- className={classNames}
64
- onClick={
65
- day && (isDontLimitFuture || !isFutureDay)
66
- ? () => {
67
- setDate(moment(day.date).format('L'));
68
- setIsOpened(false);
69
- }
70
- : null
71
- }
72
- // onMouseOver={day && !isFutureDay ? () => onHover(day.date) : null}
73
- // onMouseLeave={() => onHover(null)}
74
- >
75
- {day && day.date.getDate()}
76
- </div>
77
- );
78
- };
79
-
80
- const handlePrev = () => {
81
- setShowDate(moment(showDate).subtract(1, 'month').format('L'));
82
- };
83
-
84
- const handleNext = () => {
85
- setShowDate(moment(showDate).add(1, 'month').format('L'));
86
- };
87
-
88
- const closeYearInput = () => {
89
- const newDate = (() => {
90
- const dateArr = showDate.split('/');
91
- const oldYear = dateArr[2];
92
- dateArr[2] = inputYearValue;
93
- return moment(dateArr.join('/')).format('MM/DD/YYYY') === isError ? showDate : moment(dateArr.join('/')).format('MM/DD/YYYY');
94
- })();
95
- let resultDate = newDate;
96
- if (minDate && moment(minDate) > moment(newDate)) resultDate = moment(showDate).format('MM/DD/YYYY');
97
- else if (maxDate && moment(maxDate) < moment(newDate)) resultDate = moment(showDate).format('MM/DD/YYYY');
98
-
99
- setIsChangeYear(false);
100
- setShowDate(resultDate);
101
- setInputYearValue(resultDate);
102
- };
103
-
104
- useEffect(() => {
105
- if (isChangeYear && yearInputRef.current) {
106
- const input = yearInputRef.current.getElementsByTagName('input')[0];
107
- setInputYearValue(showYear);
108
- setTimeout(() => {
109
- input.focus();
110
- input.select();
111
- }, 0);
112
- }
113
- }, [isChangeYear]);
114
-
115
- return (
116
- <div
117
- className={cn('calendar', className, {
118
- 'calendar_list-top': isListTop,
119
- })}
120
- >
121
- <div className="calendar-header">
122
- <div className="calendar-header__prev">
123
- {allowPrev && (
124
- <div onClick={handlePrev}>
125
- <ChevronLeft />
126
- </div>
127
- )}
128
- </div>
129
- <div className={cn('calendar-header__title')} ref={yearInputRef}>
130
- <span className="calendar-header__title-month">{`${showMonth} `}</span>
131
- <span
132
- className={cn('calendar-header__title-year', {
133
- 'calendar-header__title-year_change-mode': isChangeYear,
134
- })}
135
- onClick={() => setIsChangeYear(true)}
136
- >
137
- {isChangeYear ? (
138
- <InputMask
139
- className="calendar-header__title-year-change-input"
140
- value={inputYearValue}
141
- mask="9999"
142
- onBlur={(e) => closeYearInput()}
143
- onKeyUp={(e) => {
144
- if (e.key === 'Escape') setIsChangeYear(false);
145
- if (e.key === 'Enter') closeYearInput();
146
- }}
147
- onChange={(e) => setInputYearValue(e.target.value)}
148
- />
149
- ) : (
150
- `${showYear}`
151
- )}
152
- </span>
153
- </div>
154
- <div className="calendar-header__next">
155
- {allowNext && (
156
- <div onClick={handleNext}>
157
- <ChevronRight />
158
- </div>
159
- )}
160
- </div>
161
- </div>
162
- <div className="calendar__week">
163
- {[...Array(7).keys()].map((dayOfWeek) => {
164
- return (
165
- <div key={`day-of-week_${dayOfWeek}`} className="calendar__day calendar__day--title">
166
- {moment().weekday(dayOfWeek).format('dd')}
167
- </div>
168
- );
169
- })}
170
- </div>
171
- {Object.keys(days).map((week, index) => (
172
- <div key={`week_${index}`} className="calendar__week">
173
- {[...Array(7).keys()].map((dayOfWeek) => (
174
- <React.Fragment key={`calendar-day--${dayOfWeek}`}>{renderDay(week, dayOfWeek)}</React.Fragment>
175
- ))}
176
- </div>
177
- ))}
178
- </div>
179
- );
180
- }