imbric-theme 0.3.8 → 0.4.1

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.
@@ -10,7 +10,7 @@ import Paragraph from '../Paragraph'
10
10
  export const LinkItem = ({ children, size, color, getStyles, isHref }) => {
11
11
  return (
12
12
  <Link href={isHref} passHref>
13
- <a className={getStyles('link', ['color'])}>
13
+ <a target="_blank" className={getStyles('link', ['color'])}>
14
14
  <Paragraph size={size} color={color} weight="semibold" isInline>
15
15
  {children}
16
16
  </Paragraph>
@@ -78,7 +78,7 @@ export const Modal = ({
78
78
  {titleModal}
79
79
  </Heading>
80
80
  </div>
81
- <Container>{children}</Container>
81
+ <Container><div className={getStyles('container')}>{children}</div></Container>
82
82
  </div>
83
83
  </div>
84
84
  )
@@ -57,11 +57,19 @@
57
57
  max-width: 465px;
58
58
  height: auto;
59
59
  border-radius: var(--border-radius-sm);
60
+ /* max-height: 100%;
61
+ overflow: auto; */
60
62
  }
61
63
 
62
64
  .heading {
63
65
  flex-direction: row-reverse;
64
66
  }
67
+
68
+ .container {
69
+ max-height: 600px;
70
+ overflow: auto;
71
+ min-width: 100%;
72
+ }
65
73
  }
66
74
 
67
75
  @keyframes fadeInModal {
package/hook/useTable.js CHANGED
@@ -1,45 +1,54 @@
1
- import { useState, useEffect } from "react";
2
-
3
- const calculateRange = (data, rowsPerPage) => {
4
- const range = []
5
- if (!data) {
6
- var num = Math.ceil(1);
7
- } else {
8
- num = Math.ceil(data.length / rowsPerPage);
9
-
10
- }
11
-
12
- // const num = Math.ceil(data.length / rowsPerPage);
13
-
14
- // let i = 1;
15
- for (let i = 1; i <= num; i++) {
16
- range.push(i);
17
- }
18
- return range;
19
- };
20
-
21
- const sliceData = (data, page, rowsPerPage) => {
22
-
23
- if (!data) {
24
- return data = [];
25
- } else {
26
- return data.slice((page - 1) * rowsPerPage, page * rowsPerPage);
27
- }
28
- };
29
-
30
- const useTable = (data, page, rowsPerPage) => {
31
- const [tableRange, setTableRange] = useState([]);
32
- const [slice, setSlice] = useState([]);
33
-
34
- useEffect(() => {
35
- const range = calculateRange(data, rowsPerPage);
36
- setTableRange([...range]);
37
-
38
- const slice = sliceData(data, page, rowsPerPage);
39
- setSlice([...slice]);
40
- }, [data, setTableRange, page, setSlice, rowsPerPage]);
41
-
42
- return { slice, range: tableRange };
43
- };
44
-
45
- export default useTable;
1
+ import { useState, useEffect } from 'react'
2
+
3
+ const calculateRange = (dataTotalQueryCount, data, rowsPerPage) => {
4
+ const range = []
5
+ if (!data) {
6
+ var num = Math.ceil(1)
7
+ } else {
8
+ // num = Math.ceil(data.length / rowsPerPage)
9
+ num = Math.ceil(dataTotalQueryCount / rowsPerPage)
10
+ }
11
+
12
+ // const num = Math.ceil(data.length / rowsPerPage);
13
+
14
+ // let i = 1;
15
+ for (let i = 1; i <= num; i++) {
16
+ range.push(i)
17
+ }
18
+ return range
19
+ }
20
+
21
+ // const sliceData = (data, page, rowsPerPage) => {
22
+ // if (!data) {
23
+ // return (data = [])
24
+ // } else {
25
+ // // return data.slice((page - 1) * rowsPerPage, page * rowsPerPage)
26
+ // return data
27
+ // }
28
+ // }
29
+
30
+ const sliceData = (data) => {
31
+ if (!data) {
32
+ return (data = [])
33
+ } else {
34
+ // return data.slice((page - 1) * rowsPerPage, page * rowsPerPage)
35
+ return data
36
+ }
37
+ }
38
+
39
+ const useTable = (dataTotalQueryCount, data, page, rowsPerPage) => {
40
+ const [tableRange, setTableRange] = useState([])
41
+ const [slice, setSlice] = useState([])
42
+
43
+ useEffect(() => {
44
+ const range = calculateRange(dataTotalQueryCount, data, rowsPerPage)
45
+ setTableRange([...range])
46
+
47
+ const slice = sliceData(data, page, rowsPerPage)
48
+ setSlice([...slice])
49
+ }, [dataTotalQueryCount, data, setTableRange, page, setSlice, rowsPerPage])
50
+
51
+ return { slice, range: tableRange }
52
+ }
53
+
54
+ export default useTable
@@ -16,7 +16,7 @@ import LoadingError from '../../molecules/LoadingError'
16
16
  // import useStateDate from '../../hook/useStateDate';
17
17
 
18
18
 
19
- export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns, isLayoutDate, isViewRange, isViewAddColumn, isViewDownloadDoc, handleAddColumn, handleSelectRange, handleDownloadExcel }) => {
19
+ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns, isLayoutDate, isViewRange, isViewAddColumn, isViewDownloadDoc, handleAddColumn, handleSelectRange, handleDownloadExcel, labelDinamicSelect, placeholderDinamicSelect, labelSinceDateRange, labelTillDateRange }) => {
20
20
 
21
21
  const [tableData, setTableData] = useState(optionsData);
22
22
  const [columnsData, setColumnsData] = useState(opColumns);
@@ -94,6 +94,8 @@ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns,
94
94
  <DatePicker
95
95
  isLayoutDate={isLayoutDate}
96
96
  onChangeRange={handleSelectRange}
97
+ sinceDateRange={labelSinceDateRange}
98
+ tillDateRange={labelTillDateRange}
97
99
  />
98
100
  </div>
99
101
  ) : null}
@@ -102,13 +104,13 @@ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns,
102
104
 
103
105
  {isViewAddColumn ? (
104
106
  <div className={getStyles('opFunctionBox3')}>
105
- <Label>Mostrar u ocultar columnas</Label>
107
+ <Label>{labelDinamicSelect}</Label>
106
108
  <DynamicSelect
107
109
  isMulti
108
110
  isInline
109
111
  onChange={handleAddColumn}
110
112
  optionsSelect={addColumsData}
111
- placeholder='Seleccionar columnas'
113
+ placeholder={placeholderDinamicSelect}
112
114
  />
113
115
  </div>
114
116
  ) : null}
@@ -156,6 +158,10 @@ DynamicTable.propTypes = {
156
158
  isLayoutDate: PropTypes.string,
157
159
  handleSelectRange: PropTypes.func,
158
160
  handleDownloadExcel: PropTypes.func,
161
+ labelDinamicSelect: PropTypes.string,
162
+ placeholderDinamicSelect: PropTypes.string,
163
+ labelSinceDateRange: PropTypes.string,
164
+ labelTillDateRange: PropTypes.string,
159
165
  }
160
166
 
161
167
  DynamicTable.defaultProps = {
@@ -167,6 +173,10 @@ DynamicTable.defaultProps = {
167
173
  isLayoutDate: 'Calendar',
168
174
  handleSelectRange: () => { },
169
175
  handleDownloadExcel: () => { },
176
+ labelDinamicSelect: 'Mostrar u ocultar columnas',
177
+ placeholderDinamicSelect: 'Seleccionar columnas',
178
+ labelSinceDateRange: 'Desde',
179
+ labelTillDateRange: 'Hasta',
170
180
  }
171
181
 
172
182
  export default withStyles(styles)(DynamicTable)
@@ -27,6 +27,8 @@ export default {
27
27
  isViewRange: true,
28
28
  isViewAddColumn: true,
29
29
  isViewDownloadDoc: true,
30
+ labelDinamicSelect: 'Mostrar u ocultar columnas',
31
+ placeholderDinamicSelect: 'Seleccionar columnas',
30
32
  },
31
33
  argTypes: {
32
34
  // types: getOptionsArgTypes(options.types),
@@ -2,11 +2,32 @@ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import styles from './Navbar.module.css'
4
4
  import withStyles from '../../hocs/withStyles'
5
+ import { useRouter } from "next/router";
6
+ import Link from 'next/link'
7
+ import DynamicSelect from '../../molecules/DynamicSelect'
5
8
 
6
9
  import Heading from '../../atoms/Heading/Heading'
7
10
  import Tabs from '../../molecules/Tabs/Tabs'
11
+ import Icon from '../../atoms/Icon'
12
+ import { options } from './constants'
13
+
14
+ export const Navbar = ({ getStyles, viewTabsNav, viewOptionsNav, children, linkLogout, defaultValueLanguage, optionsSelectLanguage, handleChangeLanguage }) => {
15
+
16
+
17
+ const router = useRouter();
18
+
19
+ const handleClick = (e, path) => {
20
+
21
+ console.log("I clicked on the About Page" + path);
22
+
23
+ router.push({
24
+ pathname: path,
25
+ })
26
+
27
+
28
+ };
29
+
8
30
 
9
- export const Navbar = ({ getStyles, viewTabsNav, viewOptionsNav, children, linkLogout }) => {
10
31
  return (
11
32
  <>
12
33
  <header className={getStyles('navbar')}>
@@ -52,16 +73,61 @@ export const Navbar = ({ getStyles, viewTabsNav, viewOptionsNav, children, linkL
52
73
  />
53
74
 
54
75
 
55
- {/* <div className={getStyles('navbar__title', 'navbar__item')}>Taksee</div> */}
56
- {/* <div className={getStyles('navbar__item')}>Legal</div>
57
- <div className={getStyles('navbar__item')}>User Guide</div> */}
58
-
59
76
  {viewOptionsNav ? (
60
- <div onClick={linkLogout} className={getStyles('navbar__item', { 'is-playground': viewTabsNav })}>
61
- Logout
77
+ <div className={getStyles('navbar__actions')}>
78
+ {/* <div className={getStyles('navbar__item')}>Legal</div>
79
+ <div className={getStyles('navbar__item')}>User Guide</div> */}
80
+
81
+ {options.map((item, index) => (
82
+ <Icon
83
+ key={index}
84
+ size='lg'
85
+ name={item.icon}
86
+ color='highlight'
87
+ background='transparent'
88
+ onClick={(e) => handleClick(e, item.href)}
89
+ />
90
+ ))}
91
+
92
+ <DynamicSelect
93
+ isClearable={false}
94
+ // defaultValue={{
95
+ // label: 'ES',
96
+ // value: 'es'
97
+ // }}
98
+ defaultValue={defaultValueLanguage}
99
+ onChange={handleChangeLanguage}
100
+ optionsSelect={optionsSelectLanguage}
101
+ // optionsSelect={[
102
+ // {
103
+ // label: 'ES',
104
+ // value: 'es'
105
+ // },
106
+ // {
107
+ // label: 'EN',
108
+ // value: 'en'
109
+ // }
110
+ // ]}
111
+ />
112
+
113
+ <Icon
114
+ size='lg'
115
+ name='logout'
116
+ color='highlight'
117
+ background='transparent'
118
+ onClick={linkLogout}
119
+ />
120
+
62
121
  </div>
122
+
63
123
  ) : null}
64
124
 
125
+ {/* {viewOptionsNav ? (
126
+ <div onClick={linkLogout} className={getStyles('navbar__item')}>
127
+ Logout
128
+ </div>
129
+ ) : null} */}
130
+
65
131
 
66
132
  </header>
67
133
 
@@ -76,6 +142,7 @@ Navbar.propTypes = {
76
142
  viewTabsNav: PropTypes.bool,
77
143
  viewOptionsNav: PropTypes.bool,
78
144
  linkLogout: PropTypes.func,
145
+ handleChange: PropTypes.func,
79
146
  }
80
147
 
81
148
  Navbar.defaultProps = {
@@ -27,4 +27,9 @@
27
27
  padding: 0.67em 1.5em;
28
28
  cursor: pointer;
29
29
  vertical-align: middle;
30
+ }
31
+
32
+ .navbar__actions {
33
+ display: flex;
34
+ align-items: center;
30
35
  }
@@ -0,0 +1,35 @@
1
+ export const options = [
2
+ {
3
+ active: false,
4
+ href: '#',
5
+ icon: 'legal',
6
+ text: 'Legal',
7
+ view: true,
8
+ viewSubMenu: true,
9
+ },
10
+ {
11
+ active: false,
12
+ href: '/home',
13
+ icon: 'info',
14
+ text: 'User Guide',
15
+ view: true,
16
+ viewSubMenu: false,
17
+ },
18
+ {
19
+ active: false,
20
+ href: '/home',
21
+ icon: 'profile',
22
+ text: 'My profile',
23
+ view: true,
24
+ viewSubMenu: false,
25
+ },
26
+ // {
27
+ // active: false,
28
+ // href: '/home',
29
+ // icon: 'logout',
30
+ // text: 'Salir',
31
+ // view: true,
32
+ // viewSubMenu: false,
33
+ // },
34
+
35
+ ]
@@ -7,16 +7,20 @@ import withStyles from '../../hocs/withStyles'
7
7
  import Paragraph from '../../atoms/Paragraph'
8
8
  import Input from '../../atoms/Input'
9
9
  import Icon from '../../atoms/Icon'
10
+ import DynamicSelect from '../../molecules/DynamicSelect'
10
11
  import { Horizontal, Vertical } from '../../layout/Spacer/components'
11
12
 
12
13
 
13
- export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChangeInput, columnsData }) => {
14
+ export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChangeInput, onChangeSelect, columnsData, opSelect }) => {
14
15
 
15
16
  const [sortable, setSortable] = useState(true);
16
17
  const [accessor, setAccessor] = useState("");
17
18
  const [sortField, setSortField] = useState("");
18
19
  const [order, setOrder] = useState("asc");
19
20
 
21
+ // const [optionsSelect, setOptionsSelect] = useState(opSelect);
22
+
23
+
20
24
  const handleSortingChange = (accessor) => {
21
25
  const sortOrder =
22
26
  accessor === sortField && order === "asc" ? "desc" : "asc";
@@ -63,24 +67,24 @@ export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChang
63
67
 
64
68
  {item.sortable ?
65
69
 
66
- cl === "default" ?
67
- <Icon
68
- name="angleUpDown"
69
- size="xs"
70
- />
71
- : cl === "" ? null
72
-
73
- : cl === "angleDown"
74
- ? <Icon
75
- name="angleDown"
76
- size="xs"
77
- />
78
-
79
- : <Icon
80
- name="angleUp"
81
- size="xs"
82
- />
83
- : null
70
+ cl === "default" ?
71
+ <Icon
72
+ name="angleUpDown"
73
+ size="xs"
74
+ />
75
+ : cl === "" ? null
76
+
77
+ : cl === "angleDown"
78
+ ? <Icon
79
+ name="angleDown"
80
+ size="xs"
81
+ />
82
+
83
+ : <Icon
84
+ name="angleUp"
85
+ size="xs"
86
+ />
87
+ : null
84
88
  }
85
89
  </span>
86
90
 
@@ -89,14 +93,25 @@ export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChang
89
93
 
90
94
  {item.viewIsFilter ? (
91
95
 
92
- <Input
93
- isInputFilter
94
- id={item.idInput}
95
- type={item.typeFilter}
96
- name={item.nameInput}
97
- onChange={onChangeInput}
98
- placeholder={item.placeholder}
99
- />) : null
96
+ item.typeFilter === 'select' ?
97
+ <DynamicSelect
98
+ isInline
99
+ onChange={onChangeSelect}
100
+ optionsSelect={opSelect}
101
+ placeholder={item.placeholder}
102
+ />
103
+ :
104
+ <Input
105
+ isInputFilter
106
+ id={item.idInput}
107
+ type={item.typeFilter}
108
+ name={item.nameInput}
109
+ onChange={onChangeInput}
110
+ placeholder={item.placeholder}
111
+ />
112
+ )
113
+
114
+ : null
100
115
  }
101
116
 
102
117
  </th>
@@ -116,6 +131,7 @@ ColumnTable.propTypes = {
116
131
  getStyles: PropTypes.func.isRequired,
117
132
  columnUppercase: PropTypes.bool,
118
133
  onChangeInput: PropTypes.func,
134
+ onChangeSelect: PropTypes.func,
119
135
  }
120
136
 
121
137
  ColumnTable.defaultProps = {
@@ -123,6 +139,7 @@ ColumnTable.defaultProps = {
123
139
  handleSorting: () => { },
124
140
  columnUppercase: false,
125
141
  onChangeInput: () => { },
142
+ onChangeSelect: () => { },
126
143
  }
127
144
 
128
145
  export default withStyles(styles)(ColumnTable)
@@ -2,6 +2,8 @@
2
2
  padding: 12px 15px;
3
3
  text-align: left;
4
4
  color: var(--color-font-base);
5
+ display: table-cell;
6
+ vertical-align: top;
5
7
  }
6
8
 
7
9
  .column-uppercase {
@@ -108,4 +108,10 @@ export const options = {
108
108
  },
109
109
  ],
110
110
 
111
+ opSelect: [
112
+ { value: 'chocolate', label: 'Chocolate' },
113
+ { value: 'strawberry', label: 'Strawberry' },
114
+ { value: 'vanilla', label: 'Vanilla' }
115
+ ]
116
+
111
117
  }
@@ -33,7 +33,7 @@ import {
33
33
 
34
34
 
35
35
 
36
- export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
36
+ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange, sinceDateRange, tillDateRange }) => {
37
37
 
38
38
  const [isShowCalendar, setShowCalendar] = useState(false);
39
39
 
@@ -96,7 +96,7 @@ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
96
96
  !isShowCalendar ?
97
97
  <div className={getStyles('date-picker-input')}>
98
98
  <div>
99
- <Label>Desde</Label>
99
+ <Label>{sinceDateRange}</Label>
100
100
  <Input
101
101
  isInline
102
102
  id="startDate"
@@ -108,7 +108,7 @@ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
108
108
  </div>
109
109
 
110
110
  <div>
111
- <Label>Hasta</Label>
111
+ <Label>{tillDateRange}</Label>
112
112
  <Input
113
113
  isInline
114
114
  id="endDate"
@@ -224,13 +224,17 @@ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
224
224
  DatePicker.propTypes = {
225
225
  getStyles: PropTypes.func.isRequired,
226
226
  isLayoutDate: PropTypes.oneOf(options.typeLayoutDate),
227
- onChangeRange: PropTypes.func
227
+ onChangeRange: PropTypes.func,
228
+ sinceDateRange: PropTypes.string,
229
+ tillDateRange: PropTypes.string,
228
230
  }
229
231
 
230
232
  DatePicker.defaultProps = {
231
233
  getStyles: () => { },
232
234
  isLayoutDate: 'Calendar',
233
235
  onChangeRange: () => { },
236
+ sinceDateRange: 'Desde',
237
+ tillDateRange: 'Hasta',
234
238
  }
235
239
 
236
240
  export default withStyles(styles)(DatePicker)
@@ -89,7 +89,7 @@ export const DynamicSelect = ({ getStyles, optionsSelect, defaultValue, placehol
89
89
 
90
90
  DynamicSelect.propTypes = {
91
91
  getStyles: PropTypes.func.isRequired,
92
- defaultValue: PropTypes.string,
92
+ defaultValue: PropTypes.object,
93
93
  placeholder: PropTypes.string,
94
94
  isMulti: PropTypes.bool,
95
95
  isClearable: PropTypes.bool,
@@ -103,7 +103,6 @@ DynamicSelect.propTypes = {
103
103
 
104
104
  DynamicSelect.defaultProps = {
105
105
  getStyles: () => { },
106
- defaultValue: '',
107
106
  placeholder: 'seleccionar',
108
107
  isMulti: false,
109
108
  isClearable: true,
@@ -14,7 +14,7 @@ export default {
14
14
  component: DynamicSelect,
15
15
  args: {
16
16
  optionsSelect: options.optionsSelect,
17
- defaultValue: '',
17
+ defaultValue: options.optionsSelect[0],
18
18
  placeholder: 'seleccionar',
19
19
  isMulti: false,
20
20
  isClearable: true,
@@ -4,30 +4,51 @@ import PropTypes from 'prop-types'
4
4
  import styles from './FooterTable.module.css'
5
5
  import { options } from './constants'
6
6
  import withStyles from '../../hocs/withStyles'
7
+ import DynamicSelect from '../../molecules/DynamicSelect'
7
8
 
8
- export const FooterTable = ({ getStyles, range, setPage, page, slice }) => {
9
+
10
+ export const FooterTable = ({ getStyles, range, setPage, setDataPage, page, slice, placeholderDinamicSelect, handleResultsForPage }) => {
9
11
  useEffect(() => {
10
12
  if (slice.length < 1 && page !== 1) {
11
13
  setPage(page - 1);
12
14
  }
13
15
  }, [slice, page, setPage]);
14
16
 
17
+
15
18
  return (
16
19
  <div className={getStyles('footer-table')}>
17
20
 
18
21
  <div className={styles.tableFooter}>
19
22
  {range.map((el, index) => (
20
- <button
21
- key={index}
22
- className={`${styles.button} ${page === el ? styles.activeButton : styles.inactiveButton
23
- }`}
24
- onClick={() => setPage(el)}
25
- >
26
- {el}
27
- </button>
23
+
24
+ <>
25
+ <button
26
+ key={index}
27
+ className={`${styles.button} ${page === el ? styles.activeButton : styles.inactiveButton
28
+ }`}
29
+ onClick={() => { setPage(el); setDataPage(el) }}
30
+
31
+ onChange={item => { handleSelectRange(item); onChangeRange(item); }}
32
+
33
+ >
34
+ {el}
35
+ </button>
36
+
37
+
38
+ </>
39
+
28
40
  ))}
29
41
  </div>
30
42
 
43
+ <DynamicSelect
44
+ isInline
45
+ onChange={handleResultsForPage}
46
+ optionsSelect={options.opResultsForPage}
47
+ placeholder={placeholderDinamicSelect}
48
+ isClearable={false}
49
+ defaultValue= { {value: 10, label: '10'} }
50
+ />
51
+
31
52
  </div>
32
53
 
33
54
 
@@ -37,11 +58,17 @@ export const FooterTable = ({ getStyles, range, setPage, page, slice }) => {
37
58
  FooterTable.propTypes = {
38
59
  // children: PropTypes.node.isRequired,
39
60
  getStyles: PropTypes.func.isRequired,
61
+ setDataPage: PropTypes.func,
62
+ placeholderDinamicSelect: PropTypes.string,
63
+ handleResultsForPage: PropTypes.func
40
64
  // type: PropTypes.oneOf(options.types),
41
65
  }
42
66
 
43
67
  FooterTable.defaultProps = {
44
68
  getStyles: () => { },
69
+ setDataPage: () => { },
70
+ handleResultsForPage: () => { },
71
+ placeholderDinamicSelect: 'resultados por pagina'
45
72
  }
46
73
 
47
74
  export default withStyles(styles)(FooterTable)
@@ -4,14 +4,14 @@
4
4
 
5
5
  .tableFooter {
6
6
  background-color: #f1f1f1;
7
- padding: 8px 0px;
7
+ padding: 4px 0px;
8
8
  width: 100%;
9
9
  font-weight: 500;
10
10
  text-align: left;
11
11
  font-size: 16px;
12
12
  color: #2c3e50;
13
- border-bottom-left-radius: 15px;
14
- border-bottom-right-radius: 15px;
13
+ border-bottom-left-radius: 5px;
14
+ border-bottom-right-radius: 0px;
15
15
  display: flex;
16
16
  align-items: center;
17
17
  justify-content: center;
@@ -19,7 +19,7 @@
19
19
 
20
20
  .button {
21
21
  border: none;
22
- padding: 7px 14px;
22
+ padding: 6px 12px;
23
23
  border-radius: 10px;
24
24
  cursor: pointer;
25
25
  margin-right: 4px;
@@ -28,7 +28,7 @@
28
28
 
29
29
  .activeButton {
30
30
  color: white;
31
- background: #185adb;
31
+ background: #00A3FF;
32
32
  }
33
33
 
34
34
  .inactiveButton {
@@ -1 +1,9 @@
1
- export const options = { types: [] }
1
+ export const options =
2
+ {
3
+ opResultsForPage: [
4
+ { value: 5, label: '5' },
5
+ { value: 10, label: '10' },
6
+ { value: 20, label: '20' },
7
+ { value: 50, label: '50' },
8
+ ]
9
+ }
@@ -9,7 +9,17 @@ import Moment from 'react-moment'
9
9
  import Icon from '../../atoms/Icon'
10
10
  import { Horizontal, Vertical } from '../../layout/Spacer/components'
11
11
 
12
- export const RowTable = ({ getStyles, slice, columnsData }) => {
12
+ export const RowTable = ({ getStyles, slice, columnsData, onClickActionEdit, onClickActionSendEmail, onClickActionDelete }) => {
13
+
14
+
15
+
16
+
17
+ // const handleEditStaff = (e, item) => {
18
+ // console.log(item)
19
+ // console.log(e)
20
+ // }
21
+
22
+
13
23
  return (
14
24
  <div className={getStyles('tbl-content')}>
15
25
  <table className={getStyles('table')} cellPadding="0" cellSpacing="0" border="0">
@@ -22,28 +32,46 @@ export const RowTable = ({ getStyles, slice, columnsData }) => {
22
32
  (
23
33
 
24
34
 
25
- itemTd.subAccessor === 'action' ?
35
+ itemTd.subAccessor === 'action'
36
+
37
+ ?
26
38
 
27
39
  <td className={getStyles('td')} key={[itemTd.accessor]}>
28
40
 
29
41
  <Icon
30
42
  background="base"
31
43
  name="settings"
32
- onClick={function noRefCheck() { }}
44
+ onClick={(e) => { onClickActionEdit(e, item) }}
45
+ />
46
+ <Horizontal size="xs" />
47
+ <Icon
48
+ background="base"
49
+ name="arrowUp"
50
+ // onClick={(e) => onClickEdit(e, item)}
51
+ onClick={e => { onClickActionSendEmail(e, item) }}
33
52
  />
34
53
  <Horizontal size="xs" />
35
54
  <Icon
36
55
  background="base"
37
56
  name="trash"
38
- onClick={function noRefCheck() { }}
57
+ // onClick={(e) => onClickEdit(e, item)}
58
+ onClick={e => { onClickActionDelete(e, item) }}
39
59
  />
40
- </td> :
60
+ </td>
61
+
62
+ :
63
+
64
+ itemTd.subAccessor !== ''
65
+
66
+ ?
41
67
 
42
- itemTd.subAccessor !== '' ?
68
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td>
43
69
 
44
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td> :
70
+ :
45
71
 
46
- itemTd.typeFilter === 'date' ?
72
+ itemTd.typeFilter === 'date'
73
+
74
+ ?
47
75
 
48
76
  <td className={getStyles('td')} key={[itemTd.accessor]}>
49
77
  <Moment format="DD/MM/YYYY hh:mm:ss">
@@ -51,19 +79,52 @@ export const RowTable = ({ getStyles, slice, columnsData }) => {
51
79
  </Moment>
52
80
  </td>
53
81
 
54
- : itemTd.typeFilter === 'number' ?
82
+ :
55
83
 
56
- itemTd.subTypeFilter ?
84
+ itemTd.typeFilter === 'select'
57
85
 
58
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} €</td>
59
- :
60
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
86
+ ?
87
+
88
+ itemTd.optionsSelect.map((itemSelect) => (
89
+
90
+
91
+ item[itemTd.accessor] === itemSelect.value ?
92
+
93
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
94
+ {itemSelect.label}
95
+ </td>
96
+
97
+ :
98
+
99
+ null
100
+ ))
61
101
 
62
- : itemTd.subTypeFilter ?
102
+ :
103
+
104
+ itemTd.typeFilter === 'number'
105
+
106
+ ?
107
+
108
+ itemTd.subTypeFilter
109
+
110
+ ?
111
+
112
+ itemTd.characterExtra === 'km'
113
+ ?
114
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{(item[itemTd.accessor]/1000).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
115
+ :
116
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
117
+ :
118
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
63
119
 
64
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} €</td>
65
120
  :
66
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
121
+
122
+ itemTd.subTypeFilter
123
+
124
+ ?
125
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} {itemTd.characterExtra}</td>
126
+ :
127
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
67
128
 
68
129
  ) : null
69
130
  ))}
@@ -79,10 +140,14 @@ export const RowTable = ({ getStyles, slice, columnsData }) => {
79
140
  RowTable.propTypes = {
80
141
  getStyles: PropTypes.func.isRequired,
81
142
  type: PropTypes.oneOf(options.types),
143
+ onClickActionEdit: PropTypes.func,
144
+ onClickActionSendEmail: PropTypes.func,
145
+ onClickActionDelete: PropTypes.func
82
146
  }
83
147
 
84
148
  RowTable.defaultProps = {
85
149
  getStyles: () => { },
150
+ onClickActionEdit: () => { },
86
151
  }
87
152
 
88
153
  export default withStyles(styles)(RowTable)
@@ -1,3 +1,9 @@
1
+ export const optionsSelect = [
2
+ { value: '', label: 'Todos' },
3
+ { value: 1, label: 'Activo' },
4
+ { value: -1, label: 'Dado de baja' }
5
+ ]
6
+
1
7
  export const options = {
2
8
 
3
9
  bookings: [
@@ -5,7 +11,7 @@ export const options = {
5
11
  id: 346248956,
6
12
  idUser: 146280,
7
13
  idAuthorization: 817457,
8
- status: 30,
14
+ status: 1,
9
15
  origin: {
10
16
  addressField: "Cines Embajadores, Glorieta Sta. María de la Cabeza, 5, 28045 Madrid",
11
17
  lat: 40.40068,
@@ -21,6 +27,7 @@ export const options = {
21
27
  paymentMethod: 50,
22
28
  entryChannel: 15,
23
29
  idSupplierFleet: 57,
30
+ distanceMeters: 22044,
24
31
  idSupplier: 57,
25
32
  distanceMeters: 10501,
26
33
  durationMinutes: 0,
@@ -69,7 +76,7 @@ export const options = {
69
76
  id: 346248955,
70
77
  idUser: 146280,
71
78
  idAuthorization: 817457,
72
- status: 30,
79
+ status: 1,
73
80
  origin: {
74
81
  addressField: "Estación de Chamartín, Madrid, España",
75
82
  lat: 40.47237,
@@ -83,6 +90,7 @@ export const options = {
83
90
  timeBookingStartRealTimestamp: 1653559749000,
84
91
  asap: true,
85
92
  paymentMethod: 50,
93
+ distanceMeters: 22044,
86
94
  entryChannel: 15,
87
95
  idSupplierFleet: 57,
88
96
  idSupplier: 57,
@@ -133,7 +141,7 @@ export const options = {
133
141
  id: 346248954,
134
142
  idUser: 146280,
135
143
  idAuthorization: 817457,
136
- status: 30,
144
+ status: -1,
137
145
  origin: {
138
146
  addressField: "Cines Embajadores, Glorieta Sta. María de la Cabeza, 5, 28045 Madrid",
139
147
  lat: 40.40068,
@@ -159,6 +167,7 @@ export const options = {
159
167
  idSupplierTaxi: "11",
160
168
  idSupplierService: "15826",
161
169
  cancelledWithCharge: false,
170
+ distanceMeters: 22044,
162
171
  priceCustomer: "23.00000",
163
172
  priceSupplier: "23.00000",
164
173
  phoneNumberSupplier: "676800672",
@@ -204,7 +213,7 @@ export const options = {
204
213
  title: 'Fecha',
205
214
  viewIsFilter: true,
206
215
  typeFilter: 'date',
207
- subTypeFilter: false,
216
+ subTypeFilter: true,
208
217
  idInput: 'fecha',
209
218
  nameInput: 'Fecha',
210
219
  placeholder: 'Fecha'
@@ -259,7 +268,36 @@ export const options = {
259
268
  subTypeFilter: true,
260
269
  idInput: 'precio',
261
270
  nameInput: 'Precio',
262
- placeholder: 'Precio'
271
+ placeholder: 'Precio',
272
+ characterExtra: '€'
273
+ },
274
+ {
275
+ accessor: 'distanceMeters',
276
+ subAccessor: '',
277
+ activeView: true,
278
+ idInput: 'distanceMeters',
279
+ nameInput: 'distanceMeters',
280
+ placeholder: 'Distancia (km)',
281
+ sortable: true,
282
+ subTypeFilter: false,
283
+ title: 'Distancia (km)',
284
+ typeFilter: 'number',
285
+ viewIsFilter: true,
286
+ characterExtra: 'km',
287
+ },
288
+ {
289
+ accessor: 'status',
290
+ subAccessor: '',
291
+ activeView: true,
292
+ idInput: 'status',
293
+ nameInput: 'Estado',
294
+ placeholder: 'Estado',
295
+ sortable: true,
296
+ subTypeFilter: false,
297
+ title: 'Estado',
298
+ typeFilter: 'select',
299
+ optionsSelect: optionsSelect,
300
+ viewIsFilter: true,
263
301
  },
264
302
  {
265
303
  activeView: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imbric-theme",
3
- "version": "0.3.8",
3
+ "version": "0.4.1",
4
4
  "description": "Components library IMBRIC",
5
5
  "private": false,
6
6
  "main": "index.js",