imbric-theme 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. package/atoms/Icon/constants.js +228 -142
  2. package/hook/useTable.js +54 -45
  3. package/index.js +2 -0
  4. package/layout/DynamicTable/DynamicTable.js +48 -42
  5. package/molecules/CardProductTypesBooking/CardProductTypesBooking.js +57 -0
  6. package/molecules/CardProductTypesBooking/CardProductTypesBooking.module.css +71 -0
  7. package/molecules/CardProductTypesBooking/CardProductTypesBooking.stories.js +25 -0
  8. package/molecules/CardProductTypesBooking/constants.js +1 -0
  9. package/molecules/CardProductTypesBooking/index.js +3 -0
  10. package/molecules/CardServices/CardServices.js +287 -0
  11. package/molecules/CardServices/CardServices.module.css +93 -0
  12. package/molecules/CardServices/CardServices.stories.js +41 -0
  13. package/molecules/CardServices/constants.js +5 -0
  14. package/molecules/CardServices/index.js +3 -0
  15. package/molecules/ColumnTable/ColumnTable.js +44 -27
  16. package/molecules/ColumnTable/ColumnTable.module.css +2 -0
  17. package/molecules/ColumnTable/constants.js +6 -0
  18. package/molecules/FooterTable/FooterTable.js +36 -9
  19. package/molecules/FooterTable/FooterTable.module.css +5 -5
  20. package/molecules/FooterTable/constants.js +9 -1
  21. package/molecules/ItemMenu/ItemMenu.js +2 -0
  22. package/molecules/RowTable/RowTable.js +92 -38
  23. package/molecules/RowTable/constants.js +72 -17
  24. package/package.json +1 -1
  25. package/public/static/images/user-svgrepo-com (1).svg +27 -0
  26. package/public/static/images/user-svgrepo-com (2).svg +24 -0
  27. package/public/static/images/user-svgrepo-com (3).svg +24 -0
  28. package/public/static/images/user-svgrepo-com.svg +31 -0
@@ -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
+ }
@@ -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,57 +32,110 @@ export const RowTable = ({ getStyles, slice, columnsData, onClickActionEdit, onC
31
32
  itemTd.activeView ?
32
33
  (
33
34
 
35
+ itemTd.isPicture
34
36
 
35
- itemTd.subAccessor === 'action' ?
36
-
37
+ ?
37
38
  <td className={getStyles('td')} key={[itemTd.accessor]}>
38
-
39
- <Icon
40
- background="base"
41
- name="settings"
42
- onClick={(e) => { onClickActionEdit(e, item) }}
43
- />
44
- <Horizontal size="xs" />
45
- <Icon
46
- background="base"
47
- name="arrowUp"
48
- // onClick={(e) => onClickEdit(e, item)}
49
- onClick={e => { onClickActionSendEmail(e, item) }}
50
- />
51
- <Horizontal size="xs" />
52
- <Icon
53
- background="base"
54
- name="trash"
55
- // onClick={(e) => onClickEdit(e, item)}
56
- onClick={e => { onClickActionDelete(e, item) }}
39
+ <Picture
40
+ src={item[itemTd.accessor]}
41
+ width={50}
57
42
  />
58
- </td> :
43
+ </td>
44
+ :
59
45
 
60
- itemTd.subAccessor !== '' ?
46
+ itemTd.subAccessor === 'action'
61
47
 
62
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td> :
48
+ ?
63
49
 
64
- itemTd.typeFilter === 'date' ?
50
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
65
51
 
66
- <td className={getStyles('td')} key={[itemTd.accessor]}>
67
- <Moment format="DD/MM/YYYY hh:mm:ss">
68
- {item[itemTd.accessor]}
69
- </Moment>
70
- </td>
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>
71
72
 
72
- : itemTd.typeFilter === 'number' ?
73
+ :
73
74
 
74
- itemTd.subTypeFilter ?
75
+ itemTd.subAccessor !== ''
75
76
 
76
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} €</td>
77
- :
78
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
77
+ ?
78
+
79
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td>
80
+
81
+ :
82
+
83
+ itemTd.typeFilter === 'date'
84
+
85
+ ?
86
+
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>
92
+
93
+ :
94
+
95
+ itemTd.typeFilter === 'select'
96
+
97
+ ?
79
98
 
80
- : itemTd.subTypeFilter ?
99
+ itemTd.optionsSelect.map((itemSelect) => (
100
+
101
+
102
+ item[itemTd.accessor] === itemSelect.value ?
103
+
104
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
105
+ {itemSelect.label}
106
+ </td>
107
+
108
+ :
109
+
110
+ null
111
+ ))
81
112
 
82
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} €</td>
83
113
  :
84
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
114
+
115
+ itemTd.typeFilter === 'number'
116
+
117
+ ?
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
+
131
+ :
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>
85
139
 
86
140
  ) : null
87
141
  ))}
@@ -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,
@@ -31,8 +38,8 @@ export const options = {
31
38
  idSupplierTax: "11",
32
39
  idSupplierServic: "15828",
33
40
  cancelledWithCharg: false,
34
- priceCustomer: "25.00000",
35
- priceSupplier: "25.00000",
41
+ priceCustomer: "1.5",
42
+ priceSupplier: "1.5",
36
43
  phoneNumberSupplier: "676800672",
37
44
  idAuthorizationGroup: 335,
38
45
  supplierTaxiDescription: "Seat León | 4",
@@ -63,13 +70,14 @@ export const options = {
63
70
  authorizationBreakValue3: "95",
64
71
  authorizationBreakValue5: "SC",
65
72
  authorizationBreakValue6: "U0193271095",
66
- authorizationBreakValue7: "FACILITIES"
73
+ authorizationBreakValue7: "FACILITIES",
74
+ iconUrl: "https://resources.callcenter.cab/img/travelprograms/imbric_taxi_satin.png",
67
75
  },
68
76
  {
69
77
  id: 346248955,
70
78
  idUser: 146280,
71
79
  idAuthorization: 817457,
72
- status: 30,
80
+ status: 1,
73
81
  origin: {
74
82
  addressField: "Estación de Chamartín, Madrid, España",
75
83
  lat: 40.47237,
@@ -83,6 +91,7 @@ export const options = {
83
91
  timeBookingStartRealTimestamp: 1653559749000,
84
92
  asap: true,
85
93
  paymentMethod: 50,
94
+ distanceMeters: 22044,
86
95
  entryChannel: 15,
87
96
  idSupplierFleet: 57,
88
97
  idSupplier: 57,
@@ -127,13 +136,14 @@ export const options = {
127
136
  authorizationBreakValue3: "95",
128
137
  authorizationBreakValue5: "SC",
129
138
  authorizationBreakValue6: "U0193271095",
130
- authorizationBreakValue7: "FACILITIES"
139
+ authorizationBreakValue7: "FACILITIES",
140
+ iconUrl: "https://resources.callcenter.cab/img/travelprograms/imbric_taxi_satin.png",
131
141
  },
132
142
  {
133
143
  id: 346248954,
134
144
  idUser: 146280,
135
145
  idAuthorization: 817457,
136
- status: 30,
146
+ status: -1,
137
147
  origin: {
138
148
  addressField: "Cines Embajadores, Glorieta Sta. María de la Cabeza, 5, 28045 Madrid",
139
149
  lat: 40.40068,
@@ -159,8 +169,9 @@ export const options = {
159
169
  idSupplierTaxi: "11",
160
170
  idSupplierService: "15826",
161
171
  cancelledWithCharge: false,
162
- priceCustomer: "23.00000",
163
- priceSupplier: "23.00000",
172
+ distanceMeters: 22044,
173
+ priceCustomer: "1225.32000",
174
+ priceSupplier: "1225.32000",
164
175
  phoneNumberSupplier: "676800672",
165
176
  idAuthorizationGroup: 335,
166
177
  supplierTaxiDescription: "Seat León | 4",
@@ -191,11 +202,26 @@ export const options = {
191
202
  authorizationBreakValue3: "95",
192
203
  authorizationBreakValue5: "SC",
193
204
  authorizationBreakValue6: "U0193271095",
194
- authorizationBreakValue7: "FACILITIES"
205
+ authorizationBreakValue7: "FACILITIES",
206
+ iconUrl: "https://resources.callcenter.cab/img/travelprograms/imbric_taxi_satin.png",
195
207
  }
196
208
  ],
197
209
 
198
210
  columns: [
211
+ {
212
+ activeView: true,
213
+ sortable: false,
214
+ accessor: 'iconUrl',
215
+ subAccessor: '',
216
+ title: 'Icons',
217
+ viewIsFilter: false,
218
+ typeFilter: '',
219
+ subTypeFilter: false,
220
+ idInput: '',
221
+ nameInput: '',
222
+ placeholder: '',
223
+ isPicture: true,
224
+ },
199
225
  {
200
226
  activeView: true,
201
227
  sortable: true,
@@ -204,7 +230,7 @@ export const options = {
204
230
  title: 'Fecha',
205
231
  viewIsFilter: true,
206
232
  typeFilter: 'date',
207
- subTypeFilter: false,
233
+ subTypeFilter: true,
208
234
  idInput: 'fecha',
209
235
  nameInput: 'Fecha',
210
236
  placeholder: 'Fecha'
@@ -249,17 +275,46 @@ export const options = {
249
275
  placeholder: 'Destino'
250
276
  },
251
277
  {
252
- activeView: true,
253
- sortable: true,
254
278
  accessor: 'priceCustomer',
255
279
  subAccessor: '',
280
+ activeView: true,
281
+ idInput: 'priceCustomer',
282
+ nameInput: 'Precio',
283
+ placeholder: 'Precio',
284
+ sortable: true,
285
+ subTypeFilter: true,
256
286
  title: 'Precio',
257
- viewIsFilter: true,
258
287
  typeFilter: 'text',
288
+ viewIsFilter: true,
289
+ characterExtra: '€',
290
+ },
291
+ {
292
+ accessor: 'distanceMeters',
293
+ subAccessor: '',
294
+ activeView: true,
295
+ idInput: 'distanceMeters',
296
+ nameInput: 'distanceMeters',
297
+ placeholder: 'Distancia (km)',
298
+ sortable: true,
259
299
  subTypeFilter: true,
260
- idInput: 'precio',
261
- nameInput: 'Precio',
262
- placeholder: 'Precio'
300
+ title: 'Distancia (km)',
301
+ typeFilter: 'number',
302
+ viewIsFilter: true,
303
+ characterExtra: 'km',
304
+ },
305
+ {
306
+ accessor: 'status',
307
+ subAccessor: '',
308
+ activeView: true,
309
+ idInput: 'status',
310
+ nameInput: 'Estado',
311
+ placeholder: 'Estado',
312
+ sortable: true,
313
+ subTypeFilter: false,
314
+ title: 'Estado',
315
+ typeFilter: 'select',
316
+ optionsSelect: optionsSelect,
317
+ viewIsFilter: true,
263
318
  },
264
319
  {
265
320
  activeView: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imbric-theme",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Components library IMBRIC",
5
5
  "private": false,
6
6
  "main": "index.js",
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 25.4.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
5
+ <g>
6
+ <g>
7
+ <g>
8
+ <path d="M5.6,5.2c0,1.4,0.5,3,1.5,4.3c1,1.5,2.4,2.3,3.7,2.3s2.7-0.8,3.7-2.3C15.4,8.2,16,6.6,16,5.2C16,2.3,13.6,0,10.8,0
9
+ C7.9,0,5.6,2.3,5.6,5.2z M10.8,0.8c2.4,0,4.3,1.9,4.3,4.3c0,1.2-0.5,2.7-1.3,3.8c-0.9,1.2-2,1.9-3,1.9s-2.1-0.7-3-1.9
10
+ C7,7.9,6.5,6.4,6.5,5.2C6.5,2.8,8.4,0.8,10.8,0.8z"/>
11
+ <path d="M13,22C13,22,13,22,13,22c0-0.1-0.1-0.1-0.1-0.1c-0.2-0.2-0.4-0.2-0.6,0c-0.2,0.2-0.2,0.4,0,0.6c0.2,0.2,0.4,0.2,0.6,0
12
+ C13,22.3,13.1,22.2,13,22C13,22,13,22,13,22z"/>
13
+ <path d="M18,13.6c-0.9-1.2-2-2.2-3.4-2.8c-0.2-0.1-0.4,0-0.5,0.1c-1,1-2.2,1.5-3.4,1.5c-1.2,0-2.4-0.5-3.4-1.5
14
+ c-0.1-0.1-0.3-0.2-0.5-0.1c-1.5,0.7-2.8,1.8-3.7,3.3c-0.9,1.5-1.4,3.1-1.4,4.9v0c0,0.1,0.1,0.2,0.1,0.3c2.4,2.2,5.6,3.4,8.9,3.4
15
+ c0.2,0,0.4,0,0.6,0c0.2,0,0.4-0.2,0.4-0.4c0-0.2-0.2-0.4-0.4-0.4c-0.2,0-0.4,0-0.6,0c-3,0-5.9-1.1-8.2-3.1c0-1.5,0.5-3,1.3-4.2
16
+ c0.8-1.2,1.8-2.2,3.1-2.8c1.1,1,2.4,1.6,3.8,1.6c1.3,0,2.6-0.5,3.8-1.6c0.9,0.5,1.7,1.1,2.4,1.8c-2.6,0.2-4.7,2.3-4.7,5
17
+ c0,2.8,2.2,5,5,5s5-2.2,5-5C22.2,16.1,20.4,14,18,13.6z M17.2,22.7c-2.3,0-4.2-1.9-4.2-4.2c0-2.3,1.9-4.2,4.2-4.2
18
+ s4.2,1.9,4.2,4.2C21.4,20.9,19.5,22.7,17.2,22.7z"/>
19
+ <path d="M20.7,17.4c0-0.2-0.2-0.3-0.3-0.3l-1.9-0.3l-0.9-1.7c-0.1-0.1-0.2-0.2-0.4-0.2s-0.3,0.1-0.4,0.2L16,16.9l-1.9,0.3
20
+ c-0.2,0-0.3,0.1-0.3,0.3c0,0.2,0,0.3,0.1,0.4l1.4,1.3l-0.3,1.9c0,0.2,0,0.3,0.2,0.4c0.1,0.1,0.3,0.1,0.4,0l1.7-0.9l1.7,0.9
21
+ c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.2-0.1c0.1-0.1,0.2-0.3,0.2-0.4l-0.3-1.9l1.4-1.3C20.7,17.8,20.7,17.6,20.7,17.4z M18.5,18.8
22
+ c-0.1,0.1-0.1,0.2-0.1,0.4l0.2,1.3l-1.2-0.6c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0l-1.2,0.6l0.2-1.3c0-0.1,0-0.3-0.1-0.4
23
+ L15,17.9l1.3-0.2c0.1,0,0.3-0.1,0.3-0.2l0.6-1.2l0.6,1.2c0.1,0.1,0.2,0.2,0.3,0.2l1.3,0.2L18.5,18.8z"/>
24
+ </g>
25
+ </g>
26
+ </g>
27
+ </svg>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 25.4.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
5
+ <g>
6
+ <g>
7
+ <g>
8
+ <path d="M19.2,10c-1.4,0-2.5,0.8-3.1,2c-0.6-0.5-1.2-0.9-1.9-1.3c-0.2-0.1-0.3,0-0.5,0.1c-1,1-2.2,1.5-3.3,1.5
9
+ c-1.2,0-2.3-0.5-3.3-1.5c-0.1-0.1-0.3-0.2-0.5-0.1c-1.5,0.7-2.8,1.8-3.7,3.2c-0.9,1.4-1.4,3.1-1.4,4.8v0c0,0.1,0,0.2,0.1,0.3
10
+ c2.4,2.2,5.5,3.4,8.8,3.4c1.2,0,2.5-0.2,3.6-0.5c0.2-0.1,0.3-0.3,0.3-0.5s-0.3-0.3-0.5-0.3c-1.1,0.3-2.2,0.5-3.4,0.5
11
+ c-3,0-5.8-1.1-8.1-3c0-1.5,0.5-2.9,1.3-4.2c0.8-1.2,1.8-2.1,3.1-2.8c1.1,1,2.4,1.6,3.7,1.6c1.3,0,2.6-0.5,3.7-1.6
12
+ c0.6,0.3,1.2,0.8,1.8,1.3c0,0.2,0,0.3,0,0.5v7.9c0,1.5,1.2,2.7,2.7,2.7s2.7-1.2,2.7-2.7v-6.4c0-1.1-0.9-2-2-2c-1.1,0-2,0.9-2,2
13
+ v5.7c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4v-5.7c0-0.7,0.5-1.2,1.2-1.2c0.7,0,1.2,0.5,1.2,1.2v6.4c0,1-0.8,1.9-1.9,1.9
14
+ s-1.9-0.8-1.9-1.9v-7.9c0-1.4,1.1-2.5,2.5-2.5s2.5,1.1,2.5,2.5v7.2c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4v-7.2
15
+ C22.5,11.5,21,10,19.2,10z"/>
16
+ <path d="M10.4,11.7c1.3,0,2.6-0.8,3.7-2.3c0.9-1.3,1.4-2.9,1.4-4.3c0-2.8-2.3-5.1-5.1-5.1C7.5,0,5.3,2.3,5.3,5.1
17
+ c0,1.4,0.5,3,1.4,4.3C7.7,10.9,9,11.7,10.4,11.7z M10.4,0.8c2.4,0,4.3,1.9,4.3,4.3c0,1.2-0.5,2.7-1.3,3.8c-0.9,1.2-1.9,1.9-3,1.9
18
+ s-2.1-0.7-3-1.9C6.6,7.8,6.1,6.3,6.1,5.1C6.1,2.8,8,0.8,10.4,0.8z"/>
19
+ <path d="M15.4,21C15.4,21,15.4,21,15.4,21L15.4,21z"/>
20
+ <path d="M15,20.7c-0.2,0-0.3,0.1-0.4,0.3c-0.1,0.4,0.3,0.7,0.6,0.5c0.2-0.1,0.2-0.3,0.1-0.5C15.4,20.8,15.2,20.7,15,20.7z"/>
21
+ </g>
22
+ </g>
23
+ </g>
24
+ </svg>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 25.4.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
5
+ <g>
6
+ <g>
7
+ <g>
8
+ <path d="M10.2,11.7c1.3,0,2.6-0.8,3.7-2.3c0.9-1.3,1.4-2.9,1.4-4.3C15.3,2.3,13,0,10.2,0C7.4,0,5.1,2.3,5.1,5.1
9
+ c0,1.4,0.5,3,1.4,4.3C7.6,10.9,8.9,11.7,10.2,11.7z M10.2,0.8c2.4,0,4.3,1.9,4.3,4.3c0,1.2-0.5,2.7-1.3,3.8
10
+ c-0.9,1.2-1.9,1.9-3,1.9s-2.1-0.7-3-1.9C6.4,7.8,5.9,6.3,5.9,5.1C5.9,2.8,7.9,0.8,10.2,0.8z"/>
11
+ <path d="M12.2,21.6C12.2,21.6,12.2,21.6,12.2,21.6C12.2,21.6,12.2,21.6,12.2,21.6c-0.2-0.1-0.4-0.1-0.5,0
12
+ c-0.1,0.1-0.2,0.3-0.1,0.5c0.1,0.2,0.2,0.3,0.4,0.3c0.2,0,0.3-0.1,0.4-0.3C12.4,21.9,12.4,21.7,12.2,21.6z"/>
13
+ <path d="M17.3,13.2c0,0-0.1,0-0.1,0c-0.8-1-1.9-1.9-3.1-2.4c-0.2-0.1-0.3,0-0.5,0.1c-1,1-2.2,1.5-3.3,1.5c-1.2,0-2.3-0.5-3.3-1.5
14
+ c-0.1-0.1-0.3-0.2-0.5-0.1c-1.5,0.7-2.8,1.8-3.7,3.2c-0.9,1.4-1.4,3.1-1.4,4.8v0c0,0.1,0,0.2,0.1,0.3c2.4,2.2,5.5,3.4,8.8,3.4
15
+ c0.2,0,0.3,0,0.5,0c0.2,0,0.4-0.2,0.4-0.4s-0.2-0.4-0.4-0.4c-0.2,0-0.3,0-0.5,0c-3,0-5.8-1.1-8.1-3c0-1.5,0.5-2.9,1.3-4.2
16
+ c0.8-1.2,1.8-2.1,3.1-2.8c1.1,1,2.4,1.6,3.7,1.6c1.3,0,2.6-0.5,3.7-1.6c0.8,0.4,1.6,1,2.2,1.7c-2.4,0.5-4.3,2.7-4.3,5.3
17
+ c0,3,2.4,5.4,5.4,5.4s5.4-2.4,5.4-5.4C22.7,15.6,20.3,13.2,17.3,13.2z M17.3,23.2c-2.5,0-4.6-2.1-4.6-4.6s2.1-4.6,4.6-4.6
18
+ s4.6,2.1,4.6,4.6S19.8,23.2,17.3,23.2z"/>
19
+ <path d="M20.7,18.2h-3v-3c0-0.2-0.2-0.4-0.4-0.4c-0.2,0-0.4,0.2-0.4,0.4v3h-3c-0.2,0-0.4,0.2-0.4,0.4c0,0.2,0.2,0.4,0.4,0.4h3v3
20
+ c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4v-3h3c0.2,0,0.4-0.2,0.4-0.4C21.1,18.4,21,18.2,20.7,18.2z"/>
21
+ </g>
22
+ </g>
23
+ </g>
24
+ </svg>
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 25.4.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
5
+ <g>
6
+ <g>
7
+ <g>
8
+ <path d="M8.5,6.4c0,1.3,0.5,2.8,1.4,4c1,1.4,2.2,2.1,3.4,2.1s2.5-0.8,3.4-2.1c0.9-1.2,1.4-2.7,1.4-4c0-2.6-2.2-4.8-4.8-4.8
9
+ C10.6,1.6,8.5,3.8,8.5,6.4z M13.3,2.4c2.2,0,4,1.8,4,4c0,1.1-0.5,2.5-1.2,3.6c-0.8,1.1-1.8,1.8-2.8,1.8s-2-0.7-2.8-1.8
10
+ C9.7,8.9,9.2,7.6,9.2,6.4C9.2,4.2,11,2.4,13.3,2.4z"/>
11
+ <path d="M17.4,21.6C17.4,21.5,17.4,21.5,17.4,21.6c0,0,0-0.1-0.1-0.1c-0.1-0.1-0.4-0.2-0.5,0c-0.1,0.1-0.2,0.3-0.1,0.5
12
+ c0.1,0.2,0.3,0.2,0.5,0.2C17.4,22,17.5,21.7,17.4,21.6C17.4,21.6,17.4,21.6,17.4,21.6z"/>
13
+ <path d="M4.4,17.7c-1.3-0.4-2.5-1.1-3.6-2c0-1.2,0.4-2.3,1-3.3c0.6-0.9,1.4-1.7,2.4-2.2c0.9,0.8,1.9,1.3,3,1.3
14
+ c0.6,0,1.3-0.2,1.9-0.5c0.2-0.1,0.3-0.3,0.2-0.5c-0.1-0.2-0.3-0.3-0.5-0.2c-0.5,0.2-1,0.4-1.5,0.4c-0.9,0-1.9-0.4-2.7-1.2
15
+ C4.5,9.3,4.3,9.2,4.1,9.3c-1.2,0.6-2.3,1.5-3,2.6C0.4,13.1,0,14.5,0,15.9v0c0,0.1,0,0.2,0.1,0.3c1.1,1,2.5,1.8,4,2.3
16
+ c0,0,0.1,0,0.1,0c0.2,0,0.3-0.1,0.4-0.3C4.7,18,4.6,17.8,4.4,17.7z"/>
17
+ <path d="M7.3,10c0.4,0,0.9-0.1,1.3-0.3c0.2-0.1,0.3-0.3,0.2-0.5C8.6,9,8.4,8.9,8.2,9c-0.3,0.2-0.6,0.2-1,0.2
18
+ c-0.8,0-1.7-0.6-2.4-1.5c-0.6-0.9-1-2.1-1-3c0-1.9,1.5-3.4,3.4-3.4c0.9,0,1.7,0.3,2.4,1c0.2,0.1,0.4,0.1,0.6,0
19
+ c0.1-0.2,0.1-0.4,0-0.6C9.4,0.9,8.3,0.5,7.3,0.5c-2.3,0-4.2,1.9-4.2,4.2c0,1.1,0.4,2.4,1.2,3.5C5.1,9.4,6.2,10,7.3,10z"/>
20
+ <path d="M20.8,10.4c-1.3,0-2.4,0.8-2.9,1.9c-0.4-0.2-0.7-0.5-1.1-0.6c-0.1-0.1-0.3,0-0.4,0.1c-0.9,0.9-2,1.4-3.1,1.4
21
+ c-1.1,0-2.2-0.5-3.1-1.4c-0.1-0.1-0.3-0.1-0.4-0.1c-1.4,0.7-2.6,1.7-3.4,3c-0.9,1.3-1.3,2.9-1.3,4.5v0c0,0.1,0,0.2,0.1,0.3
22
+ c2.3,2,5.2,3.2,8.2,3.2c1,0,1.9-0.1,2.8-0.3c0.2,0,0.3-0.3,0.3-0.5c0-0.2-0.3-0.3-0.5-0.3c-0.9,0.2-1.8,0.3-2.7,0.3
23
+ c-2.8,0-5.5-1-7.6-2.9c0-1.4,0.4-2.8,1.2-3.9c0.7-1.1,1.7-2,2.9-2.6c1,1,2.2,1.5,3.5,1.5c1.2,0,2.4-0.5,3.5-1.5
24
+ c0.3,0.2,0.7,0.4,1,0.6c0,0.1,0,0.3,0,0.4V21c0,1.4,1.1,2.6,2.6,2.6s2.6-1.1,2.6-2.6v-6c0-1.1-0.9-1.9-1.9-1.9S19,13.9,19,15v5.4
25
+ c0,0.2,0.2,0.4,0.4,0.4s0.4-0.2,0.4-0.4V15c0-0.6,0.5-1.1,1.1-1.1c0.6,0,1.1,0.5,1.1,1.1v6c0,1-0.8,1.8-1.8,1.8s-1.8-0.8-1.8-1.8
26
+ v-7.4c0-1.3,1.1-2.4,2.4-2.4c1.3,0,2.4,1.1,2.4,2.4v6.8c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4v-6.8
27
+ C24,11.8,22.6,10.4,20.8,10.4z"/>
28
+ </g>
29
+ </g>
30
+ </g>
31
+ </svg>