imbric-theme 0.3.4 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. package/atoms/Checkbox/Checkbox.js +26 -9
  2. package/atoms/Checkbox/Checkbox.module.css +51 -0
  3. package/atoms/Checkbox/Checkbox.stories.js +4 -2
  4. package/atoms/Icon/constants.js +1 -1
  5. package/atoms/Input/Input.js +1 -0
  6. package/atoms/LinkItem/LinkItem.js +36 -0
  7. package/atoms/{Link/Link.module.css → LinkItem/LinkItem.module.css} +6 -1
  8. package/atoms/{Link/Link.stories.js → LinkItem/LinkItem.stories.js} +5 -5
  9. package/atoms/{Link → LinkItem}/__snapshots__/Link.stories.js.snap +0 -0
  10. package/atoms/{Link → LinkItem}/constants.js +0 -0
  11. package/atoms/LinkItem/index.js +3 -0
  12. package/atoms/Modal/Modal.js +9 -1
  13. package/atoms/Modal/Modal.module.css +6 -6
  14. package/hook/useAddColumn.js +40 -0
  15. package/hook/useStateDate.js +25 -0
  16. package/hook/useTable.js +45 -0
  17. package/index.js +4 -2
  18. package/layout/DynamicTable/DynamicTable.js +87 -122
  19. package/layout/DynamicTable/DynamicTable.module.css +2 -1
  20. package/layout/DynamicTable/DynamicTable.stories.js +49 -2
  21. package/layout/DynamicTable/constants.js +50 -567
  22. package/layout/Navbar/Navbar.js +1 -1
  23. package/molecules/ColumnTable/ColumnTable.js +78 -73
  24. package/molecules/ColumnTable/ColumnTable.module.css +13 -0
  25. package/molecules/ColumnTable/ColumnTable.stories.js +4 -7
  26. package/molecules/ColumnTable/constants.js +111 -1
  27. package/molecules/DatePicker/DatePicker.js +27 -14
  28. package/molecules/DatePicker/DatePicker.module.css +1 -1
  29. package/molecules/DynamicSelect/DynamicSelect.js +9 -0
  30. package/molecules/FooterTable/FooterTable.js +47 -0
  31. package/molecules/FooterTable/FooterTable.module.css +37 -0
  32. package/molecules/FooterTable/FooterTable.stories.js +23 -0
  33. package/molecules/FooterTable/constants.js +1 -0
  34. package/molecules/FooterTable/index.js +3 -0
  35. package/molecules/RowTable/RowTable.js +70 -4
  36. package/molecules/RowTable/RowTable.module.css +21 -2
  37. package/molecules/RowTable/RowTable.stories.js +7 -4
  38. package/molecules/RowTable/constants.js +318 -1
  39. package/package.json +1 -1
  40. package/atoms/Icon/file-download-svgrepo-com.svg +0 -13
  41. package/atoms/Link/Link.js +0 -33
  42. package/atoms/Link/index.js +0 -3
@@ -3,21 +3,29 @@ import { useEffect, useState } from 'react'
3
3
  import PropTypes from 'prop-types'
4
4
  import styles from './DynamicTable.module.css'
5
5
  import withStyles from '../../hocs/withStyles'
6
- import ColumnTable from '../../molecules/ColumnTable'
7
6
  import DynamicSelect from '../../molecules/DynamicSelect'
8
7
  import DatePicker from '../../molecules/DatePicker'
9
8
  import Label from '../../atoms/Label'
10
9
  import Icon from '../../atoms/Icon'
11
10
  import { Horizontal, Vertical } from '../../layout/Spacer/components'
12
- import Moment from 'react-moment'
11
+ import LoadingError from '../../molecules/LoadingError'
12
+ // import ColumnTable from '../../molecules/ColumnTable'
13
+ // import RowTable from '../../molecules/RowTable'
14
+ // import FooterTable from '../../molecules/FooterTable'
15
+ // import useTable from '../../hook/useTable'
16
+ // import useStateDate from '../../hook/useStateDate';
13
17
 
14
18
 
15
- export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns, isViewRange, isViewAddColumn, isViewDownloadDoc }) => {
19
+ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns, isLayoutDate, isViewRange, isViewAddColumn, isViewDownloadDoc, handleAddColumn, handleSelectRange, handleDownloadExcel }) => {
16
20
 
17
21
  const [tableData, setTableData] = useState(optionsData);
18
22
  const [columnsData, setColumnsData] = useState(opColumns);
19
23
  const [addColumsData, setAddColumsData] = useState(opAddColumns);
20
24
 
25
+ // const handleSelectRange = (item) => {
26
+ // setState([item.selection])
27
+ // }
28
+
21
29
  useEffect(() => {
22
30
  setColumnsData(opColumns);
23
31
  })
@@ -38,153 +46,100 @@ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns,
38
46
  }
39
47
  };
40
48
 
41
- const handleAddColumn = (event) => {
42
-
43
- let listKeyColumnOrder = []
49
+ // const handleAddColumn = (event) => {
44
50
 
45
- event.forEach(element => {
46
- listKeyColumnOrder[element.value] = true
47
- });
51
+ // let listKeyColumnOrder = []
48
52
 
49
- for (const itemAddColumns of addColumsData) {
50
- if (listKeyColumnOrder[itemAddColumns.value]) {
51
- itemAddColumns.activeView = true
52
- } else {
53
- itemAddColumns.activeView = false
54
- }
55
- }
53
+ // event.forEach(element => {
54
+ // listKeyColumnOrder[element.value] = true
55
+ // });
56
56
 
57
+ // for (const itemAddColumns of addColumsData) {
58
+ // if (listKeyColumnOrder[itemAddColumns.value]) {
59
+ // itemAddColumns.activeView = true
60
+ // } else {
61
+ // itemAddColumns.activeView = false
62
+ // }
63
+ // }
57
64
 
58
- for (const itemEvent of addColumsData) {
65
+ // for (const itemEvent of addColumsData) {
59
66
 
60
- for (const itemColumns of columnsData) {
67
+ // for (const itemColumns of columnsData) {
61
68
 
62
- if (itemColumns.accessor === itemEvent.value) {
69
+ // if (itemColumns.accessor === itemEvent.value) {
63
70
 
64
- if (itemEvent.activeView) {
65
- itemColumns.activeView = true
66
- } else {
67
- itemColumns.activeView = false
68
- }
71
+ // if (itemEvent.activeView) {
72
+ // itemColumns.activeView = true
73
+ // } else {
74
+ // itemColumns.activeView = false
75
+ // }
69
76
 
70
77
 
71
- }
72
- }
78
+ // }
79
+ // }
73
80
 
74
- }
81
+ // }
75
82
 
76
- setColumnsData([])
83
+ // setColumnsData([])
77
84
 
78
- }
85
+ // }
79
86
 
80
87
  return (
81
88
 
82
- <>
89
+
83
90
  <div className={getStyles('opFunction')}>
84
91
 
85
- <div className={getStyles('opFunctionBox1')}>
86
- <DatePicker
87
- isLayoutDate="DateRangePicker"
88
- />
89
- </div>
92
+ {isViewRange ? (
93
+ <div className={getStyles('opFunctionBox1')}>
94
+ <DatePicker
95
+ isLayoutDate={isLayoutDate}
96
+ onChangeRange={handleSelectRange}
97
+ />
98
+ </div>
99
+ ) : null}
90
100
 
91
101
  <div className={getStyles('opFunctionBox2')}>
92
102
 
93
- <div className={getStyles('opFunctionBox3')}>
94
- <Label>Mostrar u ocultar columnas</Label>
95
- <DynamicSelect
96
- isMulti
97
- isInline
98
- onChange={handleAddColumn}
99
- optionsSelect={addColumsData}
100
- placeholder='Seleccionar columnas'
101
- />
102
- </div>
103
+ {isViewAddColumn ? (
104
+ <div className={getStyles('opFunctionBox3')}>
105
+ <Label>Mostrar u ocultar columnas</Label>
106
+ <DynamicSelect
107
+ isMulti
108
+ isInline
109
+ onChange={handleAddColumn}
110
+ optionsSelect={addColumsData}
111
+ placeholder='Seleccionar columnas'
112
+ />
113
+ </div>
114
+ ) : null}
103
115
  <Horizontal size="md" />
104
- <div className={getStyles('opFunctionBox3')}>
105
- <Icon
106
- key="3"
107
- background="inverted"
108
- name="fileDownload"
109
- onClick={function noRefCheck() { }}
110
- />
111
- </div>
116
+ {isViewDownloadDoc ? (
117
+ <div className={getStyles('opFunctionBox3')}>
118
+ <Icon
119
+ key="fileDownload"
120
+ background="inverted"
121
+ name="fileDownload"
122
+ onClick={handleDownloadExcel}
123
+ />
124
+ </div>
125
+ ) : null}
112
126
 
113
127
  </div>
114
128
 
115
129
  </div>
116
- <Vertical size="md" />
117
- <div className={getStyles('dynamic-table')}>
118
- <div className={getStyles('tbl-header')}>
119
- <table className={getStyles('table')} cellPadding="0" cellSpacing="0" border="0">
120
- <thead>
121
- <tr>
122
- {columnsData.map((item) => (
123
- item.activeView ?
124
- (<ColumnTable
125
- key={item.accessor}
126
- handleSorting={handleSorting}
127
- sortable={item.sortable}
128
- accessor={item.accessor}
129
- isFilter={item.viewIsFilter}
130
- typeInput={item.typeFilter}
131
- idInput={item.idInput}
132
- nameInput={item.nameInput}
133
- placeholder={item.placeholder}
134
- >
135
- {item.title}
136
- </ColumnTable>
137
- ) : null
138
- ))}
139
- </tr>
140
- </thead>
141
- </table>
142
- </div>
143
- <div className={getStyles('tbl-content')}>
144
- <table className={getStyles('table')} cellPadding="0" cellSpacing="0" border="0">
145
- <tbody>
146
130
 
147
- {tableData.map((item, index) => (
131
+ // <ColumnTable
132
+ // handleSorting={handleSorting}
133
+ // onChangeInput={onChangeInput}
134
+ // columnsData={columnsData}
135
+ // >
136
+ // {item.title}
137
+ // </ColumnTable>
148
138
 
149
- <tr key={index}>
150
- {columnsData.map((itemTd) => (
151
- itemTd.activeView ?
139
+ // <RowTable slice={slice} columnsData={columnsData}></RowTable>
152
140
 
153
- (
154
- itemTd.typeFilter === 'date' ?
155
-
156
- <td className={getStyles('td')} key={item[itemTd.accessor]}>
157
- <Moment format="DD/MM/YYYY hh:mm:ss">
158
- {item[itemTd.accessor]}
159
- </Moment>
160
- </td>
161
-
162
- : itemTd.typeFilter === 'number' ?
163
-
164
- itemTd.subTypeFilter ?
165
-
166
- <td className={getStyles('td')} key={item[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} €</td>
167
- :
168
- <td className={getStyles('td')} key={item[itemTd.accessor]}>{item[itemTd.accessor]}</td>
169
- :
170
- itemTd.subTypeFilter ?
171
-
172
- <td className={getStyles('td')} key={item[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} €</td>
173
- :
174
- <td className={getStyles('td')} key={item[itemTd.accessor]}>{item[itemTd.accessor]}</td>
175
-
176
-
177
- ) : null
178
- ))}
179
- </tr>
180
-
181
- ))}
182
-
183
- </tbody>
184
- </table>
185
- </div>
186
- </div>
187
- </>
141
+ // <FooterTable range={range} slice={slice} setPage={setPage} page={page} />
142
+
188
143
 
189
144
  )
190
145
  }
@@ -195,13 +150,23 @@ DynamicTable.propTypes = {
195
150
  isViewRange: PropTypes.bool,
196
151
  isViewAddColumn: PropTypes.bool,
197
152
  isViewDownloadDoc: PropTypes.bool,
153
+ onChangeInput: PropTypes.func,
154
+ handleAddColumn: PropTypes.func,
155
+ isError: PropTypes.string,
156
+ isLayoutDate: PropTypes.string,
157
+ handleSelectRange: PropTypes.func,
158
+ handleDownloadExcel: PropTypes.func,
198
159
  }
199
160
 
200
161
  DynamicTable.defaultProps = {
201
162
  getStyles: () => { },
163
+ handleAddColumn: () => { },
202
164
  isViewRange: true,
203
165
  isViewAddColumn: true,
204
166
  isViewDownloadDoc: true,
167
+ isLayoutDate: 'Calendar',
168
+ handleSelectRange: () => { },
169
+ handleDownloadExcel: () => { },
205
170
  }
206
171
 
207
172
  export default withStyles(styles)(DynamicTable)
@@ -2,6 +2,7 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  justify-content: space-between;
5
+ width: 100%;
5
6
  }
6
7
 
7
8
  /* .opFunctionBox1 {
@@ -31,7 +32,7 @@
31
32
  }
32
33
 
33
34
  .tbl-content {
34
- height: 300px;
35
+ height: max-content;
35
36
  overflow-x: auto;
36
37
  margin-top: 0px;
37
38
  border: 1px solid rgba(0, 0, 0, 0.1);
@@ -5,10 +5,18 @@ import {
5
5
  getListTemplate,
6
6
  getOptionsArgTypes,
7
7
  } from '../../helpers/storybook'
8
+ import ColumnTable from '../../molecules/ColumnTable'
9
+ import Heading from '../../atoms/Heading';
10
+ import { Vertical } from '../Spacer/components';
11
+ import RowTable from '../../molecules/RowTable';
12
+ import FooterTable from '../../molecules/FooterTable';
13
+
8
14
 
9
15
  const Template = getTemplate(DynamicTable, styles)
10
16
  const ListTemplate = getListTemplate(DynamicTable, styles)
11
17
 
18
+
19
+
12
20
  export default {
13
21
  title: 'Layout/DynamicTable',
14
22
  component: DynamicTable,
@@ -26,5 +34,44 @@ export default {
26
34
  }
27
35
 
28
36
  export const Default = Template.bind({})
29
- // export const List = ListTemplate.bind({})
30
- // List.args = { items: options.types.map((type) => ({ type })) }
37
+
38
+
39
+ export const TableTotal = () =>
40
+ <div>
41
+
42
+ {/* Title - Optional */}
43
+ <Heading color='black' size='lg' weight='normal'>
44
+ Servicios de traslados
45
+ </Heading>
46
+
47
+ <Vertical size='sm' />
48
+
49
+ {/* Dynamic Table */}
50
+ <Default></Default>
51
+
52
+ <Vertical size='sm' />
53
+
54
+ {/* Column Table */}
55
+ <ColumnTable columnsData={options.columns}> </ColumnTable>
56
+
57
+ <Vertical size='sm' />
58
+
59
+ {/* Row Table */}
60
+ <RowTable slice={options.bookings} columnsData={options.columns}></RowTable>
61
+
62
+ {/* Footer Table */}
63
+ <FooterTable range={[]} slice={options.bookings} setPage={4} page={1} />
64
+
65
+ </div>
66
+
67
+
68
+ // TableTotal.args = { isInline: true }
69
+
70
+
71
+ {/* <Canvas>
72
+ <Story name="Basic">
73
+ </Story>
74
+ </Canvas> */}
75
+
76
+
77
+