imbric-theme 0.3.4 → 0.3.8

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 (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
+