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,38 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import Langs from '../../../../../Langs';
4
- import Tag from '../../Tag/Tag';
5
- import Modal from '../../Modal/Modal';
6
- import '../Table.scss';
7
-
8
- const TdTitle = ({ locations, title }) => {
9
- const txt = Langs[global.lng];
10
- const [isOpen, setIsOpen] = useState(false);
11
-
12
- return (
13
- <div className="cards-table__title-box">
14
- <div className="cards-table__title-box--left">
15
- <div className="cards-table__title-box--title">{txt.titles[title] || title}</div>
16
- <div className="cards-table__title-box--tags">
17
- <span className="mr5">{txt.labels.locations.toUpperCase()}:</span>
18
- {locations?.map((tag, index) => (
19
- <Tag key={index} label={tag.label} />
20
- ))}
21
- </div>
22
- </div>
23
-
24
- <div className="cards-table__title-box--right">
25
- <span onClick={() => setIsOpen(true)} className="cards-table__title-edit-btn mr5">
26
- {txt.buttons.edit}
27
- </span>
28
-
29
- <Modal mode="edit" closeModal={() => setIsOpen(false)} isOpen={isOpen} title={txt.titles.pingTree} size="420">
30
- test
31
- </Modal>
32
- <span className="cards-table__title-delete-btn">{txt.buttons.deletePingTree}</span>
33
- </div>
34
- </div>
35
- );
36
- };
37
-
38
- export default TdTitle;
@@ -1,50 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
-
4
- import TdHeader from './Partials/TdHeader';
5
- import TdRow from './Partials/TdRow';
6
-
7
- import './Table.scss';
8
-
9
- const Table = ({ rows, onChange, className, header, onActionClick }) => {
10
- const handleArrayChange = (value, index) => {
11
- rows[index] = value;
12
- onChange({ header: [...header], rows: [...rows] });
13
- };
14
-
15
- return (
16
- <div className={cn('simple-table', { [`simple-table--${className}`]: className })}>
17
- <table>
18
- <thead>
19
- <tr>
20
- {header?.map(item => (
21
- <TdHeader item={item} key={item.key} />
22
- ))}
23
- </tr>
24
- </thead>
25
- <tbody>
26
- {rows && rows?.length ? (
27
- rows?.map((row, index) => (
28
- <TdRow
29
- onActionClick={onActionClick}
30
- rowIndex={index}
31
- key={typeof row.id === 'object' ? row.id.value : row.id}
32
- item={row}
33
- header={header}
34
- onChange={value => handleArrayChange(value, index)}
35
- />
36
- ))
37
- ) : (
38
- <tr>
39
- <td className="row--not-found" colSpan={header?.length}>
40
- Not set
41
- </td>
42
- </tr>
43
- )}
44
- </tbody>
45
- </table>
46
- </div>
47
- );
48
- };
49
-
50
- export default Table;
@@ -1,78 +0,0 @@
1
- @import '~anme/scss/anme-vars';
2
-
3
- .table-header {
4
- &--weight-actions {
5
- width: 3%;
6
- }
7
- }
8
-
9
- .table--icon {
10
- min-width: 16px;
11
- min-height: 16px;
12
- color: #9aa0b9;
13
- cursor: pointer;
14
- padding: 5px;
15
- border-radius: 5px;
16
-
17
- &:hover {
18
- background-color: #f3f3f3;
19
- }
20
- }
21
-
22
- .simple-table {
23
- width: 100%;
24
- overflow-x: auto;
25
- color: #1e1e2d;
26
-
27
- table {
28
- border-spacing: 0px;
29
- border-collapse: collapse;
30
- //table-layout: fixed;
31
- width: 100%;
32
-
33
- thead {
34
- font-size: 10px;
35
- text-transform: uppercase;
36
- color: #9aa0b9;
37
- background-color: #ebeff2;
38
- white-space: nowrap;
39
-
40
- th {
41
- padding: 10px 15px;
42
- font-weight: 400;
43
-
44
- &:last-child {
45
- text-align: right;
46
- }
47
- }
48
- }
49
-
50
- tbody {
51
- font-size: 13px;
52
-
53
- tr {
54
- border-bottom: 1px solid #f1f1f1;
55
- }
56
- td {
57
- padding: 7.5px 15px;
58
- background-color: #ffff;
59
- }
60
- }
61
- }
62
- }
63
-
64
- .accordion--table {
65
- overflow: visible;
66
-
67
- tr {
68
- border: none !important;
69
- }
70
-
71
- td {
72
- border: none !important;
73
- background-color: #f7fafc !important;
74
- font-size: 10px;
75
- padding: 3px 15px !important;
76
- }
77
- }
78
-
@@ -1,102 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import Table from './Table';
4
-
5
- global.lng = 'en';
6
-
7
- export default {
8
- title: 'Table',
9
- component: Table
10
- };
11
-
12
- const Template = ({ data }) => {
13
- const [state, setState] = useState(data);
14
-
15
- const rowsWithActions = state?.rows?.map(row => ({
16
- ...row,
17
- actions: row.isDeleted ? [{ type: 'undo' }] : [{ type: 'download' }, { type: 'edit' }, { type: 'delete' }]
18
- }));
19
-
20
- return <Table header={state.header} rows={rowsWithActions} onChange={setState} />;
21
- };
22
-
23
- export const TableTemplate = Template.bind({});
24
-
25
- TableTemplate.args = {
26
- data: {
27
- header: [
28
- { id: 1, label: 'state' },
29
- { id: 2, label: 'Tags' },
30
- { id: 3, label: 'status' },
31
- { id: 4, label: 'loanAmountApproved' },
32
- { id: 5, label: 'loanAmountRejected' },
33
- { id: 6, label: 'approveRate' },
34
- { id: 7, label: 'actions', type: 'actions' }
35
- ],
36
- rows: [
37
- {
38
- id: 1,
39
- link: { label: 'CA', link: '#s' },
40
- tags: [{ label: 'Label 1' }],
41
- status: { value: '90', status: 'active' },
42
- loanAmountApproved: { value: '$70,000' },
43
- loanAmountRejected: { value: '$30,000' },
44
- approveRate: { value: '70%' }
45
- },
46
- {
47
- id: 2,
48
- link: { label: 'NY', link: '#s' },
49
- advancedTags: [
50
- {
51
- labelLeft: 'home',
52
- labelRight: 'hoods',
53
- active: 3,
54
- pause: 1,
55
- merchants: 5
56
- },
57
- {
58
- labelRight: 'jewelry',
59
- active: 3,
60
- pause: 1,
61
- merchants: 5
62
- },
63
- {
64
- labelLeft: 'home',
65
- labelRight: 'improvement',
66
- active: 0,
67
- pause: 0,
68
- warnLeft: true,
69
- warnLeftMsg: 'landerNotIncluded',
70
- warnRightMsg: 'noMerchants'
71
- },
72
- {
73
- labelLeft: 'home',
74
- labelRight: 'hoods',
75
- active: 3,
76
- pause: 1,
77
- merchants: 5
78
- },
79
- {
80
- labelRight: 'jewelry',
81
- active: 3,
82
- pause: 1,
83
- merchants: 5
84
- }
85
- ],
86
- status: { label: 'Active', className: 'color--green-haze' },
87
- loanAmountApproved: { value: '$3,000' },
88
- loanAmountRejected: { value: '$7,000' },
89
- approveRate: { value: '30%' }
90
- },
91
- {
92
- id: 3,
93
- link: { label: 'NH', link: '#s' },
94
- tags: [{ label: 'Label 1' }, { label: 'Label 2' }, { label: 'Label 3' }],
95
- status: { status: 'error' },
96
- loanAmountApproved: { value: '$70,000' },
97
- loanAmountRejected: { value: '$30,000' },
98
- approveRate: { value: '70%' }
99
- }
100
- ]
101
- }
102
- };
@@ -1,59 +0,0 @@
1
- import React, { useState } from 'react';
2
- import * as Icons from 'react-feather';
3
-
4
- import Switcher from '../../Switcher/Switcher';
5
-
6
- import './TdTypes.scss';
7
-
8
- export const TdActions = ({ actions, onChange, onActionClick, rowItem }) => {
9
- if (!actions) return false;
10
-
11
- const [state, setState] = useState(actions);
12
-
13
- const handleArrayChange = (value, index, prop) => {
14
- state[index][prop] = value;
15
- setState([...state]);
16
- onChange(state);
17
- };
18
-
19
- return (
20
- <div className="j6">
21
- {actions?.map((action, index) => {
22
- switch (action.type) {
23
- case 'download':
24
- return (
25
- <div key={index} className="td-actions--item td-actions--download" onClick={() => {}}>
26
- <Icons.Download />
27
- </div>
28
- );
29
- case 'edit':
30
- return (
31
- <div key={index} className="td-actions--item td-actions--edit" onClick={() => {}}>
32
- <Icons.Edit3 />
33
- </div>
34
- );
35
- case 'delete':
36
- return (
37
- <div key={index} className="td-actions--item td-actions--delete" onClick={() => onActionClick('delete', rowItem)}>
38
- <Icons.Trash2 />
39
- </div>
40
- );
41
- case 'undo':
42
- return (
43
- <div key={index} className="td-actions--item td-actions--undo" onClick={() => onActionClick('undo', rowItem)}>
44
- <Icons.RotateCcw />
45
- </div>
46
- );
47
- case 'switcher':
48
- return (
49
- <div key={index} className="df">
50
- <Switcher label={action.label || null} isActive={action?.value} onChange={e => handleArrayChange(e, index, 'value')} />
51
- </div>
52
- );
53
- default:
54
- return null;
55
- }
56
- })}
57
- </div>
58
- );
59
- };
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
-
4
- import { ArrowDown, ArrowUp } from 'react-feather';
5
-
6
- import '../Table.scss';
7
-
8
- const TdPriority = ({ onClick, rowIndex, cardLength }) => {
9
- return (
10
- <div className="cards-table__priority">
11
- <span className="mr5">{rowIndex + 1}</span>
12
- <div className="df">
13
- <ArrowDown onClick={() => onClick(rowIndex)} className={cn('table--icon', { disabled: rowIndex + 1 === cardLength })} />
14
- <ArrowUp onClick={() => onClick(rowIndex, true)} className={cn('table--icon', { disabled: rowIndex === 0 })} />
15
- </div>
16
- </div>
17
- );
18
- };
19
-
20
- export default TdPriority;
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
-
3
- const TdRange = ({ item }) => {
4
- if (!item) return false;
5
-
6
- return (
7
- <div>
8
- <span>{item.from}</span>
9
- <span> - </span>
10
- <span>{item.to}</span>
11
- </div>
12
- );
13
- };
14
-
15
- export default TdRange;
@@ -1,35 +0,0 @@
1
- .td-actions {
2
- &--item {
3
- display: flex;
4
- align-items: center;
5
- justify-content: center;
6
- margin-left: 5px;
7
- font-size: 16px;
8
- cursor: pointer;
9
- user-select: none;
10
- border-radius: 5px;
11
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.05), 0px 0px 2px rgba(0, 0, 0, 0.15);
12
- min-width: 28px;
13
- min-height: 28px;
14
- }
15
-
16
- &--delete {
17
- color: #F06D8DFF !important;
18
- }
19
-
20
- &--undo {
21
- color: #F06D8DFF !important;
22
- }
23
-
24
- &--edit {
25
- color: #6B81DDFF !important;
26
- }
27
-
28
- &--download {
29
- color: #6B81DDFF;
30
- }
31
- }
32
-
33
- .td-weight {
34
- cursor: pointer;
35
- }
@@ -1,43 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import cn from 'classnames';
3
-
4
- import { KEY_CODE } from '../../../../../../JS/Constants/index.constants';
5
- import useToggle from '../../../../../../JS/Functions/useToggle';
6
- import Input from '../../Input/Input';
7
-
8
- import '../Table.scss';
9
-
10
- const TdWeight = ({ value, percent, onChange, className }) => {
11
- const [state, setState] = useState(value);
12
- const { isToggled: isEdited, toggleOff: unsetIsEdited, toggleOn: setIsEdited } = useToggle(false);
13
-
14
- useEffect(() => {
15
- setState(value);
16
- }, [value, isEdited]);
17
-
18
- const handleKeyUp = ({ keyCode, target }) => {
19
- if (keyCode === KEY_CODE.ENTER) {
20
- const newValue = +target.value || 1;
21
- onChange(newValue);
22
- unsetIsEdited();
23
- }
24
- };
25
-
26
- return (
27
- <>
28
- {isEdited ? (
29
- <Input value={state} onChange={e => setState(e)} onBlur={unsetIsEdited} onKeyUp={handleKeyUp} autoFocus />
30
- ) : (
31
- <div className={cn('td-weight', className)} onClick={setIsEdited}>
32
- <span>{value}</span>
33
- <span className="ml2 color--grey-gull">
34
- ({percent}
35
- %)
36
- </span>
37
- </div>
38
- )}
39
- </>
40
- );
41
- };
42
-
43
- export default TdWeight;
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
- import { IoWarningOutline } from 'react-icons/io5';
4
- import { X } from 'react-feather';
5
-
6
- import './Tag.scss';
7
-
8
- const Tag = ({ className, label, warning, removeItem, name }) => {
9
- return (
10
- <div className={cn('tag', className, { 'tag-warn': warning })}>
11
- {warning && <IoWarningOutline className="advanced-tags--warning-icon mr5" />}
12
-
13
- <span className="tag__label">{label || name}</span>
14
-
15
- {removeItem && (
16
- <button onClick={() => removeItem()} className="tag__button">
17
- <X className="color--text" />
18
- </button>
19
- )}
20
- </div>
21
- );
22
- };
23
-
24
- export default Tag;
@@ -1,38 +0,0 @@
1
- @import "../../../scss/vars";
2
-
3
- .tag {
4
- display: inline-flex;
5
- background-color: $color--gray--light;
6
- height: 22px;
7
- align-items: center;
8
- border-radius: 3px;
9
- padding: 0 6px;
10
- margin-right: 4px;
11
- white-space: nowrap;
12
- vertical-align: middle;
13
-
14
- &__label {
15
- color: $color--dark;
16
- font-size: 11px;
17
- }
18
-
19
- &__button {
20
- display: flex;
21
- align-items: center;
22
- justify-content: center;
23
- cursor: pointer;
24
- margin-left: 8px;
25
- width: 16px;
26
- height: 16px;
27
- color: #1e1e2d;
28
- opacity: 0.3;
29
- }
30
-
31
- &-warn {
32
- background-color: $color--error;
33
-
34
- .tag__label {
35
- color: #b9002c;
36
- }
37
- }
38
- }
@@ -1,30 +0,0 @@
1
- import React, { useState } from 'react';
2
- import Tag from './Tag';
3
-
4
- global.lng = 'en';
5
- export default {
6
- title: 'Tag',
7
- component: Tag
8
- };
9
-
10
- const Template = args => {
11
- const { options } = args;
12
- const [tags, setTags] = useState(options);
13
-
14
- const removeTagHandler = value => {
15
- const newArray = tags.filter(item => item.value !== value);
16
- setTags(newArray);
17
- };
18
-
19
- return tags.map(({ value, label }) => <Tag label={label} removeItem={() => removeTagHandler(value)} />);
20
- };
21
-
22
- export const TagTemplate = Template.bind({});
23
-
24
- TagTemplate.args = {
25
- options: [
26
- { id: 1, label: 'Label test 1', value: 'check1' },
27
- { id: 2, label: 'Label test 2', value: 'check2' },
28
- { id: 3, label: 'Label test 3', value: 'check3' }
29
- ]
30
- };
@@ -1,108 +0,0 @@
1
- import React, { useState, useEffect, useRef } from 'react';
2
- import cn from 'classnames';
3
- import { ChevronDown, Check } from 'react-feather';
4
-
5
- import Tag from '../Tag/Tag';
6
- import Label from '../Label/Label';
7
-
8
- import './TagsDropdown.scss';
9
-
10
- const RC = 'tags-dropdown';
11
-
12
- const TagsDropdown = ({ options, chosenOptions, onChange, className, tagClassname, onKeyPress, label, isLabelBold, hint, hintSide }) => {
13
- const [isOpen, setIsOpen] = useState(false);
14
- const [searchValue, setSearchValue] = useState('');
15
- const dropdownRef = useRef(null);
16
-
17
- const handleClickOutside = event => {
18
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
19
- setIsOpen(false);
20
- setSearchValue('');
21
- }
22
- };
23
-
24
- const deleteChosen = value => {
25
- onChange(
26
- chosenOptions.filter(item => item.value !== value),
27
- 'chosenOptions'
28
- );
29
- };
30
-
31
- const onChangeHandler = item => {
32
- setIsOpen(false);
33
- setSearchValue('');
34
-
35
- if (chosenOptions.some(el => el.value === item.value)) {
36
- deleteChosen(item.value);
37
- return;
38
- }
39
-
40
- onChange([...chosenOptions, item], 'chosenOptions');
41
- };
42
-
43
- const onSearchHandler = name => {
44
- setSearchValue(name);
45
- };
46
-
47
- const getMarkupForElement = item =>
48
- item.title.toLowerCase().includes(searchValue?.toLowerCase() || '') ? (
49
- <button
50
- key={item.id}
51
- onClick={() => onChangeHandler(item)}
52
- className={cn(
53
- `${RC}__list-item`,
54
- { [`${RC}__list-item_active`]: chosenOptions.some(el => el.value === item.value) },
55
- { [`${RC}__list-item_disabled`]: item.disabled }
56
- )}
57
- >
58
- <span className={cn(`${RC}__active-icon`, { [`${RC}__active-icon_active`]: chosenOptions.some(el => el.value === item.value) })}>
59
- <Check className="color--text" />
60
- </span>
61
- {item.title}
62
- </button>
63
- ) : null;
64
-
65
- useEffect(() => {
66
- document.addEventListener('click', handleClickOutside, true);
67
- return () => document.removeEventListener('click', handleClickOutside, true);
68
- });
69
-
70
- return (
71
- <div className={cn(RC, className)} ref={dropdownRef}>
72
- {label && <Label className={`${RC}-label`} isBold={isLabelBold} label={label} hint={hint} hintSide={hintSide} />}
73
- <div className={`${RC}__trigger`}>
74
- {chosenOptions?.map(({ title, value, id }) => (
75
- <Tag key={id} className={tagClassname} label={title} removeItem={() => deleteChosen(value)} />
76
- ))}
77
- <button className={`${RC}__btn`} onClick={() => setIsOpen(true)}>
78
- <input
79
- className={`${RC}__input`}
80
- value={searchValue}
81
- onChange={e => onSearchHandler(e.target.value)}
82
- placeholder="Type or select tags from list"
83
- onKeyDown={e => onKeyPress(e, searchValue)}
84
- />
85
- <span className={cn(`${RC}__arrow`, { [`${RC}__arrow_active`]: isOpen })}>
86
- <ChevronDown className="color--text" />
87
- </span>
88
- </button>
89
- </div>
90
- {isOpen && (
91
- <div className={`${RC}__list`}>
92
- {options.map(option =>
93
- option.groupName ? (
94
- <div key={option.id} className={`${RC}-group`}>
95
- <span className={`${RC}-group__name`}>{option.groupName}</span>
96
- {option.list?.map(item => getMarkupForElement(item))}
97
- </div>
98
- ) : (
99
- getMarkupForElement(option)
100
- )
101
- )}
102
- </div>
103
- )}
104
- </div>
105
- );
106
- };
107
-
108
- export default TagsDropdown;