imbric-theme 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ export { default, CardProductTypesBooking } from './CardProductTypesBooking'
2
+ export { options } from './constants'
3
+ export { default as styles } from './CardProductTypesBooking.module.css'
@@ -0,0 +1,287 @@
1
+ import React from 'react'
2
+ import PropTypes from 'prop-types'
3
+ import { Horizontal, Vertical } from '../../layout/Spacer/components'
4
+ import Label from '../../atoms/Label'
5
+ import Icon from '../../atoms/Icon'
6
+
7
+ import styles from './CardServices.module.css'
8
+ import { options } from './constants'
9
+ import withStyles from '../../hocs/withStyles'
10
+
11
+
12
+ export const handleClick = ({ onClick }) => (event) => {
13
+ onClick(event)
14
+ }
15
+
16
+ export const CardServices = ({
17
+ getStyles,
18
+ onClick,
19
+ isClickable,
20
+ txtDateService,
21
+ txtOriginService,
22
+ txtDestinationService,
23
+ txtServiceService,
24
+ txtUserService,
25
+ txtRefService,
26
+ txtUserNumberService,
27
+
28
+ }) => {
29
+ return (
30
+ <div
31
+ onClick={onClick && handleClick({ onClick })}
32
+ className={getStyles('card-services', {
33
+ 'is-clickable': isClickable,
34
+ })}
35
+ >
36
+
37
+ <div>
38
+
39
+ <p className={getStyles('card-content-p')}>
40
+ <Icon
41
+ name="clock"
42
+ size="xs"
43
+ />
44
+ &nbsp;
45
+ {txtDateService}
46
+ </p>
47
+ <Vertical size="xs" />
48
+
49
+ <div className={getStyles('card-content')}>
50
+
51
+ <div className={getStyles('card-subcontent')}>
52
+
53
+ <Vertical size="xs" />
54
+
55
+ <Label >
56
+ <Icon
57
+ name="originOrder"
58
+ size="xs"
59
+ color="highlight"
60
+ />
61
+ &nbsp;
62
+ Origen
63
+ </Label>
64
+
65
+ <p className={getStyles('card-content-p')}>{txtOriginService}</p>
66
+
67
+ </div>
68
+
69
+ <Horizontal size="sm" />
70
+
71
+ <div className={getStyles('card-subcontent')}>
72
+
73
+ <Vertical size="xs" />
74
+
75
+ <Label >
76
+ <Icon
77
+ name="destinationOrder"
78
+ size="xs"
79
+ color="highlight"
80
+ />
81
+ &nbsp;
82
+ Destino
83
+ </Label>
84
+
85
+ <p className={getStyles('card-content-p')}>{txtDestinationService}</p>
86
+
87
+ </div>
88
+
89
+ </div>
90
+
91
+ <Vertical size="xs" />
92
+
93
+ <div className={getStyles('card-content')}>
94
+
95
+ <div className={getStyles('card-subcontent')}>
96
+
97
+ <Vertical size="xs" />
98
+
99
+ <Label >
100
+ <Icon
101
+ name="travelPrograms"
102
+ size="xs"
103
+ color="highlight"
104
+ />
105
+ &nbsp;
106
+ Servicio
107
+ </Label>
108
+
109
+ <p className={getStyles('card-content-p')}>{txtServiceService}</p>
110
+
111
+ </div>
112
+
113
+ <Horizontal size="sm" />
114
+
115
+ <div className={getStyles('card-subcontent')}>
116
+
117
+ <Vertical size="xs" />
118
+
119
+ <Label >
120
+ <Icon
121
+ name="user"
122
+ size="xs"
123
+ color="highlight"
124
+ />
125
+ &nbsp;
126
+ Pasajero
127
+ </Label>
128
+
129
+ <p className={getStyles('card-content-p')}>{txtUserService}</p>
130
+
131
+ </div>
132
+
133
+ </div>
134
+
135
+ <Vertical size="xs" />
136
+
137
+ <div className={getStyles('card-content')}>
138
+
139
+ <div className={getStyles('card-subcontent')}>
140
+
141
+ <Vertical size="xs" />
142
+
143
+ <Label >
144
+ <Icon
145
+ name="reference"
146
+ size="xs"
147
+ color="highlight"
148
+ />
149
+ &nbsp;
150
+ REF
151
+ </Label>
152
+
153
+ <p className={getStyles('card-content-p')}>{txtRefService}</p>
154
+
155
+ </div>
156
+
157
+ <Horizontal size="sm" />
158
+
159
+ <div className={getStyles('card-subcontent')}>
160
+
161
+ <Vertical size="xs" />
162
+
163
+ <Label >
164
+ <Icon
165
+ name="userNumber"
166
+ size="xs"
167
+ color="highlight"
168
+ />
169
+ &nbsp;
170
+ Usuario
171
+ </Label>
172
+
173
+ <p className={getStyles('card-content-p')}>{txtUserNumberService}</p>
174
+
175
+ </div>
176
+
177
+ </div>
178
+
179
+ </div>
180
+ {/* <Vertical size="xs" /> */}
181
+
182
+ <div className={getStyles('card-content-action')}>
183
+
184
+ <div className={getStyles('card-subcontent-action')}>
185
+
186
+ <Icon
187
+ name="userView"
188
+ onClick={function noRefCheck() { }}
189
+ size="sm"
190
+ />
191
+
192
+ </div>
193
+
194
+
195
+
196
+ <div className={getStyles('card-subcontent-action')}>
197
+
198
+ <Icon
199
+ name="returnOrder"
200
+ onClick={function noRefCheck() { }}
201
+ size="sm"
202
+ />
203
+
204
+ </div>
205
+
206
+
207
+
208
+ <div className={getStyles('card-subcontent-action')}>
209
+
210
+ <Icon
211
+ name="repeatOrder"
212
+ onClick={function noRefCheck() { }}
213
+ size="sm"
214
+ />
215
+
216
+ </div>
217
+
218
+
219
+
220
+ <div className={getStyles('card-subcontent-action')}>
221
+
222
+ <Icon
223
+ name="edit"
224
+ onClick={function noRefCheck() { }}
225
+ size="sm"
226
+ />
227
+
228
+ </div>
229
+
230
+
231
+
232
+ <div className={getStyles('card-subcontent-action')}>
233
+
234
+ <Icon
235
+ name="trash"
236
+ onClick={function noRefCheck() { }}
237
+ size="sm"
238
+ />
239
+
240
+ </div>
241
+
242
+
243
+
244
+ <div className={getStyles('card-subcontent-action')}>
245
+
246
+ <Icon
247
+ name="circleStatus"
248
+ onClick={function noRefCheck() { }}
249
+ size="sm"
250
+ />
251
+
252
+ </div>
253
+
254
+
255
+
256
+ </div>
257
+
258
+ {/* {children} */}
259
+ </div>
260
+ )
261
+ }
262
+
263
+ CardServices.propTypes = {
264
+ getStyles: PropTypes.func.isRequired,
265
+ onClick: PropTypes.func,
266
+ isClickable: PropTypes.bool,
267
+ txtDateService: PropTypes.any,
268
+ txtOriginService: PropTypes.string,
269
+ txtDestinationService: PropTypes.string,
270
+ txtServiceService: PropTypes.string,
271
+ txtUserService: PropTypes.string,
272
+ txtRefService: PropTypes.string,
273
+ txtUserNumberService: PropTypes.string,
274
+ }
275
+
276
+ CardServices.defaultProps = {
277
+ getStyles: () => { },
278
+ txtDateService: '31/08/2022 13:21',
279
+ txtOriginService: 'Aeropuerto Barajas T4, Madrid, España',
280
+ txtDestinationService: 'Estación de Chamartín, Madrid, España',
281
+ txtServiceService: 'ECO (Tarifa máxima)',
282
+ txtUserService: 'Alberto Alvarez',
283
+ txtRefService: '1946980768',
284
+ txtUserNumberService: 'WF3941',
285
+ }
286
+
287
+ export default withStyles(styles)(CardServices)
@@ -0,0 +1,93 @@
1
+ .card-services {
2
+ /* display: flex; */
3
+ width: 100%;
4
+ align-items: center;
5
+ padding: 10px;
6
+ border: var(--border-width-thin) solid var(--color-base-transparent);
7
+ border-radius: var(--card-border-radius);
8
+ box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);
9
+ color: var(--color-font-base);
10
+ transition: box-shadow .28s cubic-bezier(.4, 0, .2, 1);
11
+ background-color: #fff;
12
+ margin: 0;
13
+ cursor: auto;
14
+ max-width: 450px;
15
+ min-width: 450px;
16
+
17
+ align-items: center;
18
+ align-content: center;
19
+ justify-content: space-around;
20
+ margin-right: 10px;
21
+ display: flex;
22
+
23
+ }
24
+
25
+ .card-content {
26
+ display: flex;
27
+ align-items: flex-start;
28
+ align-content: space-between;
29
+ border-top: 1px solid #dfe8f2;
30
+ }
31
+
32
+ .card-content-action {
33
+ padding-left: 10px;
34
+ border-left: 1px solid #dfe8f2;
35
+ }
36
+
37
+ .card-content-p {
38
+ margin: 0;
39
+ padding: 0;
40
+ font-size: var(--font-size-mini);
41
+ font-weight: var(--font-weight-normal);
42
+ line-height: var(--line-height-tight);
43
+ }
44
+
45
+ .card-subcontent {
46
+ width: 100%;
47
+ }
48
+
49
+ .card-subcontent-action {
50
+ display: flex;
51
+ align-items: center;
52
+ }
53
+
54
+ .size-sm {
55
+ min-height: 45px;
56
+ }
57
+
58
+ .size-md {
59
+ min-height: 80px;
60
+ }
61
+
62
+ .size-lg {
63
+ min-height: 115px;
64
+ }
65
+
66
+ .color-primary {
67
+ background: var(--color-primary);
68
+ color: var(--color-primary-inverted);
69
+ }
70
+
71
+ .color-secondary {
72
+ background: var(--color-secondary);
73
+ color: var(--color-secondary-inverted);
74
+ }
75
+
76
+ .color-base {
77
+ border: var(--border-width-thin) solid var(--color-gray-400);
78
+ background: var(--background-color-primary-highlight);
79
+ }
80
+
81
+ .is-clickable {
82
+ cursor: pointer;
83
+ }
84
+
85
+ .is-draggable {
86
+ cursor: grab;
87
+ user-select: none;
88
+ }
89
+
90
+ .card-services.is-clickable:active,
91
+ .card-services.is-draggable:active {
92
+ box-shadow: var(--box-shadow-xs);
93
+ }
@@ -0,0 +1,41 @@
1
+ import { CardServices, options, styles } from '.'
2
+ import {
3
+ getTemplate,
4
+ getListTemplate,
5
+ getOptionsArgTypes,
6
+ } from '../../helpers/storybook'
7
+
8
+ const Template = getTemplate(CardServices, styles)
9
+ const ListTemplate = getListTemplate(CardServices, styles)
10
+
11
+ export default {
12
+ title: 'Molecules/CardServices',
13
+ component: CardServices,
14
+ args: {
15
+ // children:
16
+ // 'Lacerations coaster sort comings windlance happily EIf-witch handful unbefitting? Decide rising startled Aragorn invitations midnight deserves fortunes innards. You cannot hide. I see you. There is no life in the void. Only death. Mirror Emyn dreamed!',
17
+ },
18
+ argTypes: {
19
+ // color: getOptionsArgTypes(options.colors),
20
+ // size: getOptionsArgTypes(options.sizes),
21
+ // children: { control: 'text' },
22
+ },
23
+ }
24
+
25
+ export const Default = Template.bind({})
26
+
27
+ // export const Clickable = Template.bind({})
28
+ // Clickable.args = {
29
+ // isClickable: true,
30
+ // }
31
+
32
+ // export const Dragabble = Template.bind({})
33
+ // Dragabble.args = {
34
+ // isDraggable: true,
35
+ // }
36
+
37
+ // export const Colors = ListTemplate.bind({})
38
+ // Colors.args = { items: options.colors.map((color) => ({ color })) }
39
+
40
+ // export const Sizes = ListTemplate.bind({})
41
+ // Sizes.args = { items: options.sizes.map((size) => ({ size })) }
@@ -0,0 +1,5 @@
1
+ export const options = {
2
+ colors: ['base', 'primary', 'secondary'],
3
+ sizes: ['sm', 'md', 'lg'],
4
+ }
5
+
@@ -0,0 +1,3 @@
1
+ export { default, CardServices } from './CardServices'
2
+ export { options } from './constants'
3
+ export { default as styles } from './CardServices.module.css'
@@ -87,12 +87,14 @@ export const ItemMenu = ({ children, getStyles, size, icon, color, background, s
87
87
  <ul>
88
88
 
89
89
  {itemSubmenu.map((item, index) => (
90
+ item.view ?
90
91
  <Link key={index} href={item.href} passHref>
91
92
  <li className={getStyles('pro-menu-item', { 'activesub': item.active })}>
92
93
  <div className={getStyles('pro-inner-item')} role="button">
93
94
  <span className={getStyles('pro-item-content')}>{item.text}</span></div>
94
95
  </li>
95
96
  </Link>
97
+ : null
96
98
  ))}
97
99
  </ul>
98
100
  </div>
@@ -7,6 +7,7 @@ import withStyles from '../../hocs/withStyles'
7
7
 
8
8
  import Moment from 'react-moment'
9
9
  import Icon from '../../atoms/Icon'
10
+ import Picture from '../../atoms/Picture'
10
11
  import { Horizontal, Vertical } from '../../layout/Spacer/components'
11
12
 
12
13
  export const RowTable = ({ getStyles, slice, columnsData, onClickActionEdit, onClickActionSendEmail, onClickActionDelete }) => {
@@ -31,100 +32,110 @@ export const RowTable = ({ getStyles, slice, columnsData, onClickActionEdit, onC
31
32
  itemTd.activeView ?
32
33
  (
33
34
 
34
-
35
- itemTd.subAccessor === 'action'
35
+ itemTd.isPicture
36
36
 
37
37
  ?
38
-
39
38
  <td className={getStyles('td')} key={[itemTd.accessor]}>
40
-
41
- <Icon
42
- background="base"
43
- name="settings"
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) }}
52
- />
53
- <Horizontal size="xs" />
54
- <Icon
55
- background="base"
56
- name="trash"
57
- // onClick={(e) => onClickEdit(e, item)}
58
- onClick={e => { onClickActionDelete(e, item) }}
39
+ <Picture
40
+ src={item[itemTd.accessor]}
41
+ width={50}
59
42
  />
60
43
  </td>
61
-
62
44
  :
63
45
 
64
- itemTd.subAccessor !== ''
46
+ itemTd.subAccessor === 'action'
65
47
 
66
48
  ?
67
49
 
68
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td>
50
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
51
+
52
+ <Icon
53
+ background="base"
54
+ name="settings"
55
+ onClick={(e) => { onClickActionEdit(e, item) }}
56
+ />
57
+ <Horizontal size="xs" />
58
+ <Icon
59
+ background="base"
60
+ name="arrowUp"
61
+ // onClick={(e) => onClickEdit(e, item)}
62
+ onClick={e => { onClickActionSendEmail(e, item) }}
63
+ />
64
+ <Horizontal size="xs" />
65
+ <Icon
66
+ background="base"
67
+ name="trash"
68
+ // onClick={(e) => onClickEdit(e, item)}
69
+ onClick={e => { onClickActionDelete(e, item) }}
70
+ />
71
+ </td>
69
72
 
70
73
  :
71
74
 
72
- itemTd.typeFilter === 'date'
75
+ itemTd.subAccessor !== ''
73
76
 
74
77
  ?
75
78
 
76
- <td className={getStyles('td')} key={[itemTd.accessor]}>
77
- <Moment format="DD/MM/YYYY hh:mm:ss">
78
- {item[itemTd.accessor]}
79
- </Moment>
80
- </td>
79
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td>
81
80
 
82
81
  :
83
82
 
84
- itemTd.typeFilter === 'select'
83
+ itemTd.typeFilter === 'date'
85
84
 
86
85
  ?
87
86
 
88
- itemTd.optionsSelect.map((itemSelect) => (
89
-
87
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
88
+ <Moment format="DD/MM/YYYY hh:mm:ss">
89
+ {item[itemTd.accessor]}
90
+ </Moment>
91
+ </td>
90
92
 
91
- item[itemTd.accessor] === itemSelect.value ?
93
+ :
92
94
 
93
- <td className={getStyles('td')} key={[itemTd.accessor]}>
94
- {itemSelect.label}
95
- </td>
95
+ itemTd.typeFilter === 'select'
96
96
 
97
- :
97
+ ?
98
98
 
99
- null
100
- ))
99
+ itemTd.optionsSelect.map((itemSelect) => (
101
100
 
102
- :
103
101
 
104
- itemTd.typeFilter === 'number'
102
+ item[itemTd.accessor] === itemSelect.value ?
105
103
 
106
- ?
104
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
105
+ {itemSelect.label}
106
+ </td>
107
107
 
108
- itemTd.subTypeFilter
108
+ :
109
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>
110
+ null
111
+ ))
119
112
 
120
113
  :
121
114
 
122
- itemTd.subTypeFilter
115
+ itemTd.typeFilter === 'number'
123
116
 
124
117
  ?
125
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} {itemTd.characterExtra}</td>
118
+
119
+ itemTd.subTypeFilter
120
+
121
+ ?
122
+
123
+ itemTd.characterExtra === 'km'
124
+ ?
125
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{(item[itemTd.accessor] / 1000).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
126
+ :
127
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
128
+ :
129
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
130
+
126
131
  :
127
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
132
+
133
+ itemTd.subTypeFilter
134
+
135
+ ?
136
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{Number(item[itemTd.accessor]).toFixed(2).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
137
+ :
138
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
128
139
 
129
140
  ) : null
130
141
  ))}