sag_components 1.0.448 → 1.0.450

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.
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.SingleCard = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Card = _interopRequireDefault(require("../components/CampaignTool/Card"));
10
+ const data = [{
11
+ key: '1',
12
+ icon: 'cart',
13
+ label: 'Products',
14
+ value: 335
15
+ }, {
16
+ key: '2',
17
+ icon: 'gift',
18
+ label: 'Brands',
19
+ value: 161
20
+ }, {
21
+ key: '3',
22
+ icon: 'label',
23
+ label: 'Offers',
24
+ value: 223
25
+ }, {
26
+ key: '4',
27
+ icon: 'truck',
28
+ label: 'Suppliers',
29
+ value: 246
30
+ }, {
31
+ key: '5',
32
+ icon: '',
33
+ label: 'Total budget',
34
+ value: 45
35
+ }, {
36
+ key: '6',
37
+ icon: '',
38
+ label: 'Self-funded budget',
39
+ value: 146
40
+ }];
41
+ var _default = exports.default = {
42
+ title: 'Campaign Tool/Card',
43
+ component: _Card.default,
44
+ tags: ['autodocs'],
45
+ argTypes: {
46
+ cardTitle: {
47
+ name: 'cardTitle',
48
+ control: {
49
+ type: 'text'
50
+ },
51
+ description: 'Card title'
52
+ },
53
+ buttonText: {
54
+ name: 'buttonText',
55
+ control: {
56
+ type: 'text'
57
+ },
58
+ description: 'Button text'
59
+ },
60
+ width: {
61
+ name: 'Width',
62
+ control: {
63
+ type: 'text'
64
+ },
65
+ description: 'Table width'
66
+ },
67
+ height: {
68
+ name: 'Height',
69
+ control: {
70
+ type: 'text'
71
+ },
72
+ description: 'Table height'
73
+ },
74
+ onCardButtonClick: {
75
+ name: 'Button event',
76
+ action: 'onClick',
77
+ description: 'Click on a side big button'
78
+ }
79
+
80
+ // showPagination: {
81
+ // name: 'Show Pagination',
82
+ // control: { type: 'boolean' },
83
+ // description: 'hide/show pagination',
84
+ // defaultValue: true,
85
+ // },
86
+ }
87
+ };
88
+
89
+ const Template = args => /*#__PURE__*/_react.default.createElement(_Card.default, args);
90
+ const SingleCard = exports.SingleCard = Template.bind({});
91
+ _Card.default.args = {
92
+ data
93
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.CardsList = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _MultipleCard = _interopRequireDefault(require("../components/CampaignTool/MultipleCard"));
10
+ var _default = exports.default = {
11
+ title: 'Campaign Tool/MultipleCard',
12
+ component: _MultipleCard.default,
13
+ tags: ['autodocs'],
14
+ argTypes: {
15
+ width: {
16
+ name: 'Width',
17
+ control: {
18
+ type: 'text'
19
+ },
20
+ description: 'Table width'
21
+ },
22
+ height: {
23
+ name: 'Height',
24
+ control: {
25
+ type: 'text'
26
+ },
27
+ description: 'Table height'
28
+ }
29
+ }
30
+ };
31
+ const Template = args => /*#__PURE__*/_react.default.createElement(_MultipleCard.default, args);
32
+ const CardsList = exports.CardsList = Template.bind({});
33
+ CardsList.args = {};
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.MainTable = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Table = require("../components/CampaignTool/Table");
10
+ const theData = [{
11
+ key: '1',
12
+ name: 'oren',
13
+ age: 35
14
+ }, {
15
+ key: '2',
16
+ name: 'dror',
17
+ age: 16
18
+ }, {
19
+ key: '3',
20
+ name: 'andrey',
21
+ age: 22
22
+ }, {
23
+ key: '4',
24
+ name: 'hai',
25
+ age: 46
26
+ }];
27
+ var _default = exports.default = {
28
+ title: 'Campaign Tool/Table',
29
+ component: _Table.Table,
30
+ tags: ['autodocs'],
31
+ argTypes: {
32
+ width: {
33
+ name: 'Width',
34
+ control: {
35
+ type: 'text'
36
+ },
37
+ description: 'Table width'
38
+ },
39
+ height: {
40
+ name: 'Height',
41
+ control: {
42
+ type: 'text'
43
+ },
44
+ description: 'Table height'
45
+ },
46
+ onCheckAllInput: {
47
+ name: 'Check all input event',
48
+ action: 'onClick',
49
+ description: 'Click on check all'
50
+ },
51
+ onSortClick: {
52
+ name: 'Table head sorting event',
53
+ action: 'onClick',
54
+ description: 'Click on table head sorting'
55
+ },
56
+ onRowClick: {
57
+ name: 'Click on row event',
58
+ action: 'onClick',
59
+ description: 'Click on a certain row in table'
60
+ },
61
+ onRowInputClick: {
62
+ name: 'Checkbox row event',
63
+ action: 'onClick',
64
+ description: 'Click on a certain row checkbox '
65
+ },
66
+ actionsColumn: {
67
+ name: 'Show action column',
68
+ control: {
69
+ type: 'boolean'
70
+ },
71
+ description: 'show/hide action column',
72
+ defaultValue: true
73
+ },
74
+ sizingTable: {
75
+ name: 'Sizing table columns',
76
+ control: {
77
+ type: 'boolean'
78
+ },
79
+ description: 'Sizing table columns ability',
80
+ defaultValue: true
81
+ },
82
+ showPagination: {
83
+ name: 'Show Pagination',
84
+ control: {
85
+ type: 'boolean'
86
+ },
87
+ description: 'hide/show pagination',
88
+ defaultValue: true
89
+ },
90
+ rangePagination: {
91
+ name: 'Range Pagination',
92
+ control: {
93
+ type: 'number'
94
+ },
95
+ description: 'How many button representing pages will shown in the range'
96
+ }
97
+ }
98
+ };
99
+ const Template = args => /*#__PURE__*/_react.default.createElement(_Table.Table, args);
100
+ const MainTable = exports.MainTable = Template.bind({});
101
+ MainTable.args = {
102
+ data: theData,
103
+ rangePagination: 5
104
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _AutocompleteField = require("./AutocompleteField.style");
10
+ const AutocompleteField = props => {
11
+ const {
12
+ choices,
13
+ onSelect
14
+ } = props;
15
+ const [inputValue, setInputValue] = (0, _react.useState)('');
16
+ const [isFocused, setFocused] = (0, _react.useState)(false);
17
+ const handleInputChange = e => {
18
+ setInputValue(e.target.value);
19
+ };
20
+ const handleOptionClick = option => {
21
+ onSelect(option);
22
+ setInputValue('');
23
+ };
24
+ return /*#__PURE__*/_react.default.createElement(_AutocompleteField.AutocompleteContainer, null, /*#__PURE__*/_react.default.createElement(_AutocompleteField.AutocompleteInput, {
25
+ type: "text",
26
+ value: inputValue,
27
+ onChange: handleInputChange,
28
+ onFocus: () => setFocused(true),
29
+ onBlur: () => setFocused(false),
30
+ placeholder: " "
31
+ }), /*#__PURE__*/_react.default.createElement(_AutocompleteField.AutocompleteLabel, null, "Choose an option"), (isFocused || inputValue) && /*#__PURE__*/_react.default.createElement(_AutocompleteField.AutocompleteOptions, null, choices.filter(option => option.toLowerCase().includes(inputValue.toLowerCase())).map((option, index) => /*#__PURE__*/_react.default.createElement(_AutocompleteField.AutocompleteOption, {
32
+ key: index,
33
+ onClick: () => handleOptionClick(option)
34
+ }, option))));
35
+ };
36
+ var _default = exports.default = AutocompleteField;
37
+ AutocompleteField.defaultProps = {
38
+ choices: ['Apple', 'Banana', 'Orange'],
39
+ onSelect: () => {}
40
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AutocompleteOptions = exports.AutocompleteOption = exports.AutocompleteLabel = exports.AutocompleteInput = exports.AutocompleteContainer = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
11
+ const AutocompleteContainer = exports.AutocompleteContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-family: \"Poppins\", sans-serif;\n position: relative;\n margin: 20px;\n"])));
12
+ const AutocompleteInput = exports.AutocompleteInput = _styledComponents.default.input(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n padding: 10px;\n font-size: 16px;\n border: 1px solid #ccc;\n border-radius: 4px;\n\n &:focus + label {\n top: -10px;\n font-size: 12px;\n color: #007bff;\n }\n"])));
13
+ const AutocompleteLabel = exports.AutocompleteLabel = _styledComponents.default.label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 12px;\n left: 10px;\n transition: .2s ease;\n pointer-events: none;\n font-size: 16px;\n color: #555;\n background-color: white;\n"])));
14
+ const AutocompleteOptions = exports.AutocompleteOptions = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n width: 100%;\n max-height: 150px;\n overflow-y: auto;\n border: 1px solid #ccc;\n border-top: none;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n background-color: #fff;\n z-index: 1;\n"])));
15
+ const AutocompleteOption = exports.AutocompleteOption = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n padding: 10px;\n cursor: pointer;\n &:hover {\n background-color: #f0f0f0;\n }\n"])));
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Card = require("./Card.style");
10
+ const Card = props => {
11
+ const {
12
+ data,
13
+ cardTitle,
14
+ buttonText,
15
+ onCardButtonClick,
16
+ width,
17
+ height
18
+ } = props;
19
+ const onCardButtonClickHandle = e => {
20
+ onCardButtonClick(e);
21
+ };
22
+ return /*#__PURE__*/_react.default.createElement(_Card.CardFrame, {
23
+ width: width,
24
+ height: height
25
+ }, /*#__PURE__*/_react.default.createElement(_Card.CardDetails, null, /*#__PURE__*/_react.default.createElement(_Card.CardTitle, null, cardTitle), /*#__PURE__*/_react.default.createElement(_Card.CardDetailText, null, "Lorem ipsum"), /*#__PURE__*/_react.default.createElement(_Card.CardDetailText, null, "Lorem ipsum minima "), /*#__PURE__*/_react.default.createElement(_Card.CardDetailText, null, "commodi optio molesti"), /*#__PURE__*/_react.default.createElement(_Card.CardDetailText, null, "optio molesti")), /*#__PURE__*/_react.default.createElement(_Card.SegmentsContainer, {
26
+ rows: data.lenght
27
+ }, data.map(segment =>
28
+ /*#__PURE__*/
29
+ // TODO: make icons
30
+ _react.default.createElement(_Card.Segment, null, segment.value, /*#__PURE__*/_react.default.createElement("br", null), segment.label))), /*#__PURE__*/_react.default.createElement(_Card.ButtonWrap, null, /*#__PURE__*/_react.default.createElement(_Card.Button, {
31
+ onClick: e => onCardButtonClickHandle(e)
32
+ }, buttonText)));
33
+ };
34
+ var _default = exports.default = Card;
35
+ Card.defaultProps = {
36
+ data: [{
37
+ key: '1',
38
+ icon: 'cart',
39
+ label: 'Products',
40
+ value: 335
41
+ }, {
42
+ key: '2',
43
+ icon: 'gift',
44
+ label: 'Brands',
45
+ value: 161
46
+ }, {
47
+ key: '3',
48
+ icon: 'label',
49
+ label: 'Offers',
50
+ value: 223
51
+ }, {
52
+ key: '4',
53
+ icon: 'truck',
54
+ label: 'Suppliers',
55
+ value: 246
56
+ }, {
57
+ key: '5',
58
+ icon: '',
59
+ label: 'Total budget',
60
+ value: 45
61
+ }, {
62
+ key: '6',
63
+ icon: '',
64
+ label: 'Self-funded budget',
65
+ value: 146
66
+ }],
67
+ cardTitle: 'March 2024',
68
+ buttonText: 'Campaign Details',
69
+ onCardButtonClick: () => {},
70
+ width: '100%',
71
+ height: 'auto'
72
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.SegmentsContainer = exports.Segment = exports.CardTitle = exports.CardFrame = exports.CardDetails = exports.CardDetailText = exports.ButtonWrap = exports.Button = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
11
+ /* eslint-disable import/prefer-default-export */
12
+ const CardFrame = exports.CardFrame = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-family: \"Poppins\", sans-serif;\n background-color: white;\n border: 1px solid gray;\n border-left: 5px solid #6e9eed;\n margin-bottom: 10px;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n width: ", ";\n height: ", ";\n"])), props => props.width, props => props.height);
13
+ const CardDetails = exports.CardDetails = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding: 16px 20px;\n"])));
14
+ const CardTitle = exports.CardTitle = _styledComponents.default.h3(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n font-size: 22px;\n margin: 0;\n"])));
15
+ const CardDetailText = exports.CardDetailText = _styledComponents.default.span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: block;\n font-size: 12px;\n"])));
16
+ const SegmentsContainer = exports.SegmentsContainer = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n display: grid;\n flex-grow: 1;\n gap: 20px;\n flex-wrap: wrap;\n padding: 16px;\n grid-template-rows: repeat(2, 1fr);\n grid-template-columns: repeat(3, 1fr);\n"])));
17
+ const Segment = exports.Segment = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 0px;\n display: flex;\n gap: 8px;\n font-size: 12px;\n border: 1px solid gray;\n padding: 8px;\n"])));
18
+ const ButtonWrap = exports.ButtonWrap = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n padding: 30px;\n background-color: bisque;\n"])));
19
+ const Button = exports.Button = _styledComponents.default.button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n font-size: 20px;\n color: white;\n background-color: gray;\n border: none;\n padding: 8px 16px;\n cursor: pointer;\n &:hover, &:focus {\n background-color: rebeccapurple;\n }\n"])));
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Card = _interopRequireDefault(require("./Card"));
10
+ var _MultipleCard = require("./MultipleCard.style");
11
+ const MultipleCard = props => {
12
+ const {
13
+ data,
14
+ width,
15
+ height
16
+ } = props;
17
+ return /*#__PURE__*/_react.default.createElement(_MultipleCard.CardsWrapper, {
18
+ width: width,
19
+ height: height
20
+ }, /*#__PURE__*/_react.default.createElement(_Card.default, null), /*#__PURE__*/_react.default.createElement(_Card.default, null), /*#__PURE__*/_react.default.createElement(_Card.default, null), /*#__PURE__*/_react.default.createElement(_Card.default, null));
21
+ };
22
+ var _default = exports.default = MultipleCard;
23
+ MultipleCard.defaultProps = {
24
+ width: '100%',
25
+ height: 'auto'
26
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.CardsWrapper = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _templateObject;
11
+ /* eslint-disable import/prefer-default-export */
12
+ const CardsWrapper = exports.CardsWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-family: \"Poppins\", sans-serif;\n width: ", ";\n height: ", ";\n"])), props => props.width, props => props.height);
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Table = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _Table = require("./Table.style");
10
+ const Table = props => {
11
+ const {
12
+ data,
13
+ width,
14
+ height,
15
+ onCheckAllInput,
16
+ onSortClick,
17
+ onRowClick,
18
+ onRowInputClick,
19
+ onPaginationClick,
20
+ actionsColumn,
21
+ sizingTable,
22
+ showPagination,
23
+ rangePagination
24
+ } = props;
25
+ const [sortBy, setSortBy] = (0, _react.useState)(null);
26
+ const [sortOrder, setSortOrder] = (0, _react.useState)('asc');
27
+ const [resizing, setResizing] = (0, _react.useState)(false);
28
+ const [resizeColumn, setResizeColumn] = (0, _react.useState)(null);
29
+ const checkedRef = (0, _react.useRef)([]);
30
+ const [checkEvent, setCheckEvent] = (0, _react.useState)({
31
+ isSelectAll: false,
32
+ selected: [],
33
+ unselected: []
34
+ });
35
+ const [activePage, setActivePage] = (0, _react.useState)(1);
36
+ const [arrow, setArrow] = (0, _react.useState)(null);
37
+ const handleSort = (event, columnName) => {
38
+ if (!event.target.classList.contains('dragger')) {
39
+ setSortBy(columnName);
40
+ setSortOrder(prevSortOrder => prevSortOrder === 'asc' ? 'desc' : 'asc');
41
+ setArrow(prevArrow => prevArrow === '⭣' ? '⭡' : '⭣');
42
+ onSortClick({
43
+ sortType: sortOrder,
44
+ column: columnName,
45
+ data: sortedData
46
+ });
47
+ }
48
+ };
49
+
50
+ // the Server do the sorting so this function used for displaying Action data
51
+ const sortedData = [...data].sort((a, b) => {
52
+ if (sortOrder === 'asc') {
53
+ return a[sortBy] > b[sortBy] ? 1 : -1;
54
+ }
55
+ return a[sortBy] < b[sortBy] ? 1 : -1;
56
+ });
57
+ const handleSelectAllChange = event => {
58
+ setCheckEvent({
59
+ isSelectAll: event.target.checked,
60
+ selected: [],
61
+ unselected: []
62
+ });
63
+ checkedRef.current.map(item => {
64
+ item.checked = event.target.checked;
65
+ });
66
+ };
67
+ const handleMouseDown = (e, columnName) => {
68
+ m_pos = e.clientX;
69
+ setResizing(true);
70
+ setResizeColumn(columnName);
71
+ };
72
+ const handleMouseMove = e => {
73
+ if (resizing) {
74
+ const th = document.querySelector("th[data-column=\"".concat(resizeColumn, "\"]"));
75
+ const dx = e.clientX - m_pos;
76
+ m_pos = e.clientX;
77
+ th.style.width = "".concat(parseInt(getComputedStyle(th, '').width) + dx, "px");
78
+ }
79
+ };
80
+ const handleMouseUp = () => {
81
+ setResizing(false);
82
+ setResizeColumn(null);
83
+ };
84
+ const onRowClickHandler = (event, row) => {
85
+ if (event.target.type !== 'checkbox') {
86
+ onRowClick(row);
87
+ }
88
+ };
89
+ const handleCheckboxChange = (event, row) => {
90
+ if (event.target.checked) {
91
+ const updatedUnSelected = checkEvent.unselected.filter(item => item.key !== row.key);
92
+ setCheckEvent({
93
+ ...checkEvent,
94
+ unselected: updatedUnSelected,
95
+ selected: [...checkEvent.selected, row]
96
+ });
97
+ } else {
98
+ const updatedSelected = checkEvent.selected.filter(item => item.key !== row.key);
99
+ setCheckEvent({
100
+ ...checkEvent,
101
+ unselected: [...checkEvent.unselected, row],
102
+ selected: updatedSelected
103
+ });
104
+ }
105
+ };
106
+ const onPaginationClickHandler = (event, page) => {
107
+ setActivePage(page);
108
+ onPaginationClick(event, page);
109
+ };
110
+ (0, _react.useEffect)(() => {
111
+ onCheckAllInput(checkEvent);
112
+ }, [checkEvent]);
113
+ (0, _react.useEffect)(() => {
114
+ document.addEventListener('mousemove', handleMouseMove, false);
115
+ document.addEventListener('mouseup', handleMouseUp, false);
116
+ return () => {
117
+ document.removeEventListener('mousemove', handleMouseMove, false);
118
+ document.removeEventListener('mouseup', handleMouseUp, false);
119
+ };
120
+ }, [resizing]);
121
+ let m_pos; // Declare m_pos here so it's accessible in handleMouseMove
122
+
123
+ const pages = Array.from({
124
+ length: rangePagination
125
+ }, (_, index) => index + 1);
126
+ return /*#__PURE__*/_react.default.createElement(_Table.TableWrapper, null, /*#__PURE__*/_react.default.createElement(_Table.TableTag, {
127
+ width: width,
128
+ height: height
129
+ }, /*#__PURE__*/_react.default.createElement(_Table.Thead, null, /*#__PURE__*/_react.default.createElement("tr", null, actionsColumn && /*#__PURE__*/_react.default.createElement("th", {
130
+ className: "actions-th"
131
+ }, /*#__PURE__*/_react.default.createElement("input", {
132
+ type: "checkbox",
133
+ onChange: handleSelectAllChange
134
+ })), Object.keys(data[0]).map(column => /*#__PURE__*/_react.default.createElement("th", {
135
+ key: column,
136
+ "data-column": column,
137
+ onClick: event => handleSort(event, column)
138
+ }, /*#__PURE__*/_react.default.createElement("span", null, column), sortBy === column && /*#__PURE__*/_react.default.createElement("span", {
139
+ dangerouslySetInnerHTML: {
140
+ __html: arrow
141
+ }
142
+ }), sizingTable && /*#__PURE__*/_react.default.createElement(_Table.Dragger, {
143
+ className: "dragger",
144
+ onMouseDown: e => handleMouseDown(e, column)
145
+ }))))), /*#__PURE__*/_react.default.createElement(_Table.Tbody, null, data.map(row => /*#__PURE__*/_react.default.createElement("tr", {
146
+ key: row.key,
147
+ onClick: event => onRowClickHandler(event, row)
148
+ }, actionsColumn && /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement("input", {
149
+ ref: el => checkedRef.current[row.key] = el,
150
+ type: "checkbox",
151
+ onChange: event => handleCheckboxChange(event, row)
152
+ })), Object.keys(row).map(column => /*#__PURE__*/_react.default.createElement("td", {
153
+ key: column
154
+ }, row[column])))))), showPagination && /*#__PURE__*/_react.default.createElement(_Table.Pagination, null, /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_Table.PaginationButton, {
155
+ className: "double-arrow",
156
+ onClick: event => onPaginationClickHandler(event, 1)
157
+ }, "\xAB")), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_Table.PaginationButton, {
158
+ className: "single-arrow",
159
+ onClick: event => onPaginationClickHandler(event, activePage - 1)
160
+ }, "\u2039")), pages.map(page => /*#__PURE__*/_react.default.createElement("li", {
161
+ key: page
162
+ }, /*#__PURE__*/_react.default.createElement(_Table.PaginationButton, {
163
+ className: page === activePage ? 'active' : '',
164
+ onClick: event => onPaginationClickHandler(event, page)
165
+ }, page))), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_Table.PaginationButton, {
166
+ className: "single-arrow",
167
+ onClick: event => onPaginationClickHandler(event, activePage + 1)
168
+ }, "\u203A")), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_Table.PaginationButton, {
169
+ className: "double-arrow",
170
+ onClick: event => onPaginationClickHandler(event, pages.length)
171
+ }, "\xBB"))));
172
+ };
173
+ exports.Table = Table;
174
+ var _default = exports.default = Table;
175
+ Table.defaultProps = {
176
+ data: [{
177
+ key: '',
178
+ name: '',
179
+ age: 2
180
+ }],
181
+ width: '100%',
182
+ height: 'auto',
183
+ onCheckAllInput: () => {},
184
+ onSortClick: () => {},
185
+ onRowClick: () => {},
186
+ onRowInputClick: () => {},
187
+ onPaginationClick: () => {},
188
+ showPagination: true,
189
+ sizingTable: true,
190
+ actionsColumn: true,
191
+ rangePagination: 5
192
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Thead = exports.Tbody = exports.TableWrapper = exports.TableTag = exports.PaginationButton = exports.Pagination = exports.Dragger = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
11
+ /* eslint-disable import/prefer-default-export */
12
+ const TableWrapper = exports.TableWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-family: \"Poppins\", sans-serif;\n background-color: white;\n"])));
13
+ const TableTag = exports.TableTag = _styledComponents.default.table(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border-collapse: collapse;\n table-layout: fixed;\n width: ", ";\n height: ", ";\n margin-bottom: 15px;\n th,\n td {\n position: relative;\n font-weight: 400;\n border: 1px solid #ddd;\n padding: 8px;\n }\n"])), props => props.width, props => props.height);
14
+ const Thead = exports.Thead = _styledComponents.default.thead(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n color: white;\n background-color: #000000;\n tr {\n > th {\n position: relative;\n &.actions-th,\n &:last-of-type {\n > div {\n display: none;\n }\n }\n \n &.actions-th {\n width: 22px;\n }\n }\n }\n"])));
15
+ const Tbody = exports.Tbody = _styledComponents.default.tbody(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n tr {\n &:nth-child(even) {\n background-color: #f2f2f2;\n }\n &:hover {\n background-color: #ddd;\n }\n }\n"])));
16
+ const Dragger = exports.Dragger = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n width: 5px;\n height: 100%;\n position: absolute;\n top: 0;\n right: 0;\n cursor: col-resize;\n"])));
17
+ const Pagination = exports.Pagination = _styledComponents.default.ul(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n list-style: none;\n padding: 0;\n margin: 0;\n gap: 5px;\n"])));
18
+ const PaginationButton = exports.PaginationButton = _styledComponents.default.button(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n padding: 8px 12px;\n background-color: #ffffff;\n border: 1px solid #ccc;\n text-decoration: none;\n color: #333;\n border-radius: 4px;\n cursor: pointer;\n &:hover, &:focus {\n background-color: #e0e0e0;\n }\n &.active {\n background-color: #aaa;\n }\n"])));
@@ -8,6 +8,6 @@ exports.DropdownContainer = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
9
9
  var _styledComponents = _interopRequireDefault(require("styled-components"));
10
10
  var _templateObject;
11
- //import './font.css';
11
+ // import './font.css';
12
12
 
13
- const DropdownContainer = exports.DropdownContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: ", "; \n text-align: left; \n position: relative; \n align-items: center;\n justify-content: center;\n font-family: Poppins; \n font-size: \"14px\";\n"])), props => props.width);
13
+ const DropdownContainer = exports.DropdownContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: ", ";\n text-align: left; \n position: relative; \n align-items: center;\n justify-content: center;\n font-family: Poppins; \n font-size: \"14px\";\n"])), props => props.width);
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _NewInput = require("./NewInput.style");
10
+ const NewInput = props => {
11
+ const {
12
+ labelText,
13
+ onTyping
14
+ } = props;
15
+ const [inputValue, setInputValue] = (0, _react.useState)('');
16
+ const handleInputChange = e => {
17
+ setInputValue(e.target.value);
18
+ };
19
+ return /*#__PURE__*/_react.default.createElement(_NewInput.TextFieldContainer, null, /*#__PURE__*/_react.default.createElement(_NewInput.TextFieldInput, {
20
+ type: "text",
21
+ value: inputValue,
22
+ onChange: handleInputChange,
23
+ placeholder: labelText
24
+ }), /*#__PURE__*/_react.default.createElement(_NewInput.Label, null, {
25
+ labelText
26
+ }));
27
+ };
28
+ var _default = exports.default = NewInput;
29
+ NewInput.defaultProps = {
30
+ labelText: '',
31
+ onTyping: () => {}
32
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TextFieldInput = exports.TextFieldContainer = exports.Label = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _templateObject, _templateObject2, _templateObject3;
11
+ const TextFieldContainer = exports.TextFieldContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n margin: 20px;\n"])));
12
+ const TextFieldInput = exports.TextFieldInput = _styledComponents.default.input(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n padding: 10px;\n font-size: 16px;\n border: 1px solid #ccc;\n border-radius: 4px;\n\n &:focus + label,\n &:not(:placeholder-shown) + label {\n top: -10px;\n font-size: 12px;\n color: #007bff;\n }\n"])));
13
+ const Label = exports.Label = _styledComponents.default.label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 12px;\n left: 10px;\n transition: all 0.3s ease;\n pointer-events: none;\n font-size: 16px;\n color: #555;\n"])));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sag_components",
3
- "version": "1.0.448",
3
+ "version": "1.0.450",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -14,9 +14,9 @@
14
14
  "author": "SAG",
15
15
  "license": "ISC",
16
16
  "devDependencies": {
17
- "@babel/cli": "^7.23.4",
17
+ "@babel/cli": "^7.23.9",
18
18
  "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
19
- "@babel/preset-env": "^7.23.8",
19
+ "@babel/preset-env": "^7.23.9",
20
20
  "@babel/preset-react": "^7.23.3",
21
21
  "@babel/preset-typescript": "^7.23.3",
22
22
  "@storybook/addon-designs": "^7.0.9",
@@ -50,8 +50,8 @@
50
50
  "dependencies": {
51
51
  "@emotion/react": "^11.11.3",
52
52
  "@emotion/styled": "^11.11.0",
53
- "@mui/icons-material": "^5.15.5",
54
- "@mui/material": "^5.15.5",
53
+ "@mui/icons-material": "^5.15.7",
54
+ "@mui/material": "^5.15.7",
55
55
  "@mui/x-date-pickers": "^6.18.6",
56
56
  "classnames": "^2.3.2",
57
57
  "dayjs": "^1.11.10",