imbric-theme 0.4.0 → 0.4.2

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