@woosmap/ui 3.137.0 → 3.139.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@woosmap/ui",
3
- "version": "3.137.0",
3
+ "version": "3.139.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/WebGeoServices/ui.git"
@@ -16,10 +16,12 @@ export default class CopyClipboardButton extends Component {
16
16
  }
17
17
  }
18
18
 
19
- copy = () => {
20
- const { text, getText, copyCallback } = this.props;
19
+ copy = (e) => {
20
+ const { text, getText, copyCallback, stopPropagation } = this.props;
21
21
  const { copied } = this.state;
22
22
 
23
+ if (stopPropagation) e.stopPropagation();
24
+
23
25
  const textToCopy = text || (getText ? getText() : null);
24
26
 
25
27
  if (textToCopy !== null && copy(textToCopy) && !copied) {
@@ -29,13 +31,27 @@ export default class CopyClipboardButton extends Component {
29
31
  };
30
32
 
31
33
  render() {
32
- const { type, noLabel, label, copiedLabel, copiedIcon, icon, getText, testId, copyCallback, ...rest } =
33
- this.props;
34
+ const {
35
+ type,
36
+ noLabel,
37
+ label: propsLabel,
38
+ copiedLabel,
39
+ copiedIcon,
40
+ icon,
41
+ getText,
42
+ testId,
43
+ copyCallback,
44
+ stopPropagation,
45
+ ...rest
46
+ } = this.props;
34
47
  const { copied } = this.state;
48
+ let label;
49
+ if (noLabel) label = '';
50
+ else label = copied && copiedLabel ? copiedLabel : propsLabel;
35
51
  return (
36
52
  <Button
37
53
  type={type}
38
- label={copied && copiedLabel ? copiedLabel : label}
54
+ label={label}
39
55
  icon={copied && copiedIcon ? copiedIcon : icon}
40
56
  onClick={this.copy}
41
57
  {...rest}
@@ -56,6 +72,7 @@ CopyClipboardButton.defaultProps = {
56
72
  getText: null,
57
73
  testId: 'copy-clipboard-button',
58
74
  copyCallback: () => {},
75
+ stopPropagation: false,
59
76
  };
60
77
 
61
78
  CopyClipboardButton.propTypes = {
@@ -69,4 +86,5 @@ CopyClipboardButton.propTypes = {
69
86
  copiedIcon: PropTypes.string,
70
87
  icon: PropTypes.string,
71
88
  copyCallback: PropTypes.func,
89
+ stopPropagation: PropTypes.bool,
72
90
  };
@@ -10,6 +10,7 @@ export default Story;
10
10
  const Template = () => (
11
11
  <div className="flex-column mbib">
12
12
  <CopyClipboardButton type="primary" text="Text to be copied" />
13
+ <CopyClipboardButton type="primary" text="Text to be copied" noLabel />
13
14
  <CopyClipboardButton
14
15
  label="withCallback"
15
16
  copiedLabel={null}
@@ -10,6 +10,11 @@ it('renders a CopyClipboardButton component ', () => {
10
10
  expect(getByTestId('copy-clipboard-button')).toHaveClass('btn');
11
11
  });
12
12
 
13
+ it('renders a CopyClipboardButton component without label', () => {
14
+ const { getByTestId } = render(<CopyClipboardButton text="Text" noLabel />);
15
+ expect(getByTestId('copy-clipboard-button')).toHaveClass('btn--no-label');
16
+ });
17
+
13
18
  it('copies the content', () => {
14
19
  const { container } = render(<CopyClipboardButton text="Text to be copied" />);
15
20
  document.execCommand = jest.fn();
@@ -19,6 +19,7 @@ import { ReactComponent as CubeBig } from '../../icons/cube-big.svg';
19
19
  import { ReactComponent as CustomersServices } from '../../icons/customers-services.svg';
20
20
  import { ReactComponent as Customize } from '../../icons/customize.svg';
21
21
  import { ReactComponent as DeliveryTime } from '../../icons/delivery-time.svg';
22
+ import { ReactComponent as DeliveryVan } from '../../icons/delivery-van.svg';
22
23
  import { ReactComponent as Demo } from '../../icons/demo.svg';
23
24
  import { ReactComponent as Ecommerce } from '../../icons/e-commerce.svg';
24
25
  import { ReactComponent as ElectricCharge } from '../../icons/electric-charge.svg';
@@ -65,6 +66,8 @@ import { ReactComponent as MobileRocket } from '../../icons/mobile-rocket.svg';
65
66
  import { ReactComponent as Notification } from '../../icons/notification.svg';
66
67
  import { ReactComponent as NotificationPosition } from '../../icons/notification-position.svg';
67
68
  import { ReactComponent as OpenSource } from '../../icons/open-source.svg';
69
+ import { ReactComponent as Package } from '../../icons/package.svg';
70
+ import { ReactComponent as PackageReturn } from '../../icons/package-return.svg';
68
71
  import { ReactComponent as Parking } from '../../icons/parking.svg';
69
72
  import { ReactComponent as PieChart } from '../../icons/pie-chart.svg';
70
73
  import { ReactComponent as PlaceReview } from '../../icons/place-review.svg';
@@ -73,6 +76,7 @@ import { ReactComponent as Position } from '../../icons/position.svg';
73
76
  import { ReactComponent as PuzzleStar } from '../../icons/puzzle-star.svg';
74
77
  import { ReactComponent as Quote } from '../../icons/quote.svg';
75
78
  import { ReactComponent as Refresh } from '../../icons/refresh.svg';
79
+ import { ReactComponent as Repair } from '../../icons/repair.svg';
76
80
  import { ReactComponent as Responsive } from '../../icons/responsive.svg';
77
81
  import { ReactComponent as Restaurant } from '../../icons/restaurant.svg';
78
82
  import { ReactComponent as Rocket } from '../../icons/rocket.svg';
@@ -85,6 +89,7 @@ import { ReactComponent as ScooterDelivery } from '../../icons/scooter-delivery.
85
89
  import { ReactComponent as SecuritPositionZone } from '../../icons/security-position-zone.svg';
86
90
  import { ReactComponent as Security } from '../../icons/security.svg';
87
91
  import { ReactComponent as SecurityTools } from '../../icons/security-tools.svg';
92
+ import { ReactComponent as SecurityStaff } from '../../icons/security-staff.svg';
88
93
  import { ReactComponent as SecurityZone } from '../../icons/security-zone.svg';
89
94
  import { ReactComponent as ServiceMarker } from '../../icons/service-marker.svg';
90
95
  import { ReactComponent as ShakeHand } from '../../icons/shake-hand.svg';
@@ -95,6 +100,7 @@ import { ReactComponent as StarBig } from '../../icons/star-big.svg';
95
100
  import { ReactComponent as StarFilledBig } from '../../icons/star-filled-big.svg';
96
101
  import { ReactComponent as SupportTime } from '../../icons/support-time.svg';
97
102
  import { ReactComponent as Synchronization } from '../../icons/synchronization.svg';
103
+ import { ReactComponent as Taxi } from '../../icons/taxi.svg';
98
104
  import { ReactComponent as Tools } from '../../icons/tools.svg';
99
105
  import { ReactComponent as Travel } from '../../icons/travel.svg';
100
106
  import { ReactComponent as TshirtMarker } from '../../icons/tshirt-marker.svg';
@@ -257,6 +263,7 @@ const WebsiteIcons = {
257
263
  'customers-services': CustomersServices,
258
264
  customize: Customize,
259
265
  'delivery-time': DeliveryTime,
266
+ 'delivery-van': DeliveryVan,
260
267
  demo: Demo,
261
268
  'e-commerce': Ecommerce,
262
269
  'electric-charge': ElectricCharge,
@@ -303,6 +310,8 @@ const WebsiteIcons = {
303
310
  notification: Notification,
304
311
  'notification-position': NotificationPosition,
305
312
  'open-source': OpenSource,
313
+ package: Package,
314
+ 'package-return': PackageReturn,
306
315
  parking: Parking,
307
316
  'pie-chart': PieChart,
308
317
  'place-review': PlaceReview,
@@ -311,6 +320,7 @@ const WebsiteIcons = {
311
320
  'puzzle-star': PuzzleStar,
312
321
  quote: Quote,
313
322
  refresh: Refresh,
323
+ repair: Repair,
314
324
  responsive: Responsive,
315
325
  restaurant: Restaurant,
316
326
  rocket: Rocket,
@@ -323,6 +333,7 @@ const WebsiteIcons = {
323
333
  security: Security,
324
334
  'security-position-zone': SecuritPositionZone,
325
335
  'security-tools': SecurityTools,
336
+ 'security-staff': SecurityStaff,
326
337
  'security-zone': SecurityZone,
327
338
  'service-marker': ServiceMarker,
328
339
  'shake-hand': ShakeHand,
@@ -333,6 +344,7 @@ const WebsiteIcons = {
333
344
  'star-filled-big': StarFilledBig,
334
345
  'support-time': SupportTime,
335
346
  synchronization: Synchronization,
347
+ taxi: Taxi,
336
348
  tools: Tools,
337
349
  travel: Travel,
338
350
  'tshirt-marker': TshirtMarker,
@@ -342,7 +354,7 @@ const WebsiteIcons = {
342
354
  world: World,
343
355
  'world-location': WorldLocation,
344
356
  'world-time': WorldTime,
345
- 'win-proze': WinPrize,
357
+ 'win-prize': WinPrize,
346
358
  zoom: Zoom,
347
359
  };
348
360
 
@@ -21,9 +21,12 @@ class Modal extends Component {
21
21
  this.handleEscFunction('add');
22
22
  }
23
23
 
24
- componentDidUpdate() {
24
+ componentDidUpdate(prevProps) {
25
25
  const { isLoading } = this.state;
26
- const { hasErrors } = this.props;
26
+ const { closesWithEscape: prevClosesWithEscape } = prevProps;
27
+ const { hasErrors, closesWithEscape } = this.props;
28
+ if (closesWithEscape && !prevClosesWithEscape) this.handleEscFunction('add');
29
+ else if (!closesWithEscape && prevClosesWithEscape) this.handleEscFunction();
27
30
  if (hasErrors && isLoading) {
28
31
  this.setLoading(false);
29
32
  }
@@ -43,10 +46,8 @@ class Modal extends Component {
43
46
 
44
47
  handleEscFunction = (key) => {
45
48
  const { closesWithEscape } = this.props;
46
- if (closesWithEscape) {
47
- if (key === 'add') document.addEventListener('keydown', this.escFunction, false);
48
- else document.removeEventListener('keydown', this.escFunction, false);
49
- }
49
+ if (closesWithEscape && key === 'add') document.addEventListener('keydown', this.escFunction);
50
+ else document.removeEventListener('keydown', this.escFunction);
50
51
  };
51
52
 
52
53
  escFunction = (event) => {
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useRef, useState } from 'react';
2
2
  import Modal from './Modal';
3
3
  import ConfirmationModal from './ConfirmationModal';
4
4
  import Button from '../Button/Button';
@@ -83,11 +83,13 @@ export const ModalConfirmation = TemplateConfirmationModal.bind({});
83
83
  Default.args = {};
84
84
 
85
85
  const TemplateEscapeModal = () => {
86
- const modalRef = React.createRef();
86
+ const [escEnabled, setEscEnabled] = useState(true);
87
+ const modalRef = useRef(null);
87
88
  return (
88
89
  <div style={{ paddingLeft: '50px' }}>
89
- <Button onClick={() => modalRef.current.open()} label="Open modal" />
90
- <Modal ref={modalRef} closesWithEscape title="My modal">
90
+ <Button onClick={() => setEscEnabled(!escEnabled)} label="Toggle escape" />
91
+ <Button onClick={() => modalRef.current?.open()} label="Open modal" />
92
+ <Modal ref={modalRef} closesWithEscape={escEnabled} title="My modal">
91
93
  content
92
94
  </Modal>
93
95
  </div>
@@ -57,7 +57,7 @@ it('is hidden after clicking validate', () => {
57
57
  it('is closing after escaping if it is set to be closed with it', () => {
58
58
  const modalRef = React.createRef();
59
59
  const closeCb = jest.fn();
60
- render(
60
+ const { rerender } = render(
61
61
  <Modal ref={modalRef} closesWithEscape closeCb={closeCb}>
62
62
  content
63
63
  </Modal>
@@ -68,6 +68,30 @@ it('is closing after escaping if it is set to be closed with it', () => {
68
68
  expect(closeCb).not.toHaveBeenCalled();
69
69
  fireEvent.keyDown(document, { keyCode: 27 });
70
70
  expect(closeCb).toHaveBeenCalled();
71
+ closeCb.mockReset();
72
+
73
+ rerender(
74
+ <Modal ref={modalRef} closesWithEscape={false} closeCb={closeCb}>
75
+ content
76
+ </Modal>
77
+ );
78
+ act(() => {
79
+ modalRef.current.open();
80
+ });
81
+ fireEvent.keyDown(document, { keyCode: 27 });
82
+ expect(closeCb).not.toHaveBeenCalled();
83
+ closeCb.mockReset();
84
+
85
+ rerender(
86
+ <Modal ref={modalRef} closesWithEscape closeCb={closeCb}>
87
+ content
88
+ </Modal>
89
+ );
90
+ act(() => {
91
+ modalRef.current.open();
92
+ });
93
+ fireEvent.keyDown(document, { keyCode: 27 });
94
+ expect(closeCb).toHaveBeenCalled();
71
95
  });
72
96
 
73
97
  it('is closing after click outside if it is set to bet closed with it', () => {
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="m92.198 52.591-15.13-15.418a1.501 1.501 0 0 0-1.07-.449H65.873V26.015a1.5 1.5 0 0 0-1.5-1.5H38.979a1.5 1.5 0 0 0 0 3h23.894v38.181H42.744c-.741-3.767-4.066-6.619-8.047-6.619s-7.306 2.852-8.046 6.619h-6.722V55.344a1.5 1.5 0 0 0-3 0v11.852a1.5 1.5 0 0 0 1.5 1.5h8.196c.673 3.85 4.032 6.788 8.072 6.788s7.4-2.938 8.073-6.788h25.708c.673 3.85 4.032 6.788 8.072 6.788s7.4-2.938 8.073-6.788h6.504a1.5 1.5 0 0 0 1.5-1.5V53.642c0-.393-.154-.771-.43-1.051ZM34.697 72.484c-2.869 0-5.203-2.334-5.203-5.203s2.334-5.204 5.203-5.204 5.204 2.335 5.204 5.204-2.335 5.203-5.204 5.203Zm41.854 0c-2.869 0-5.203-2.334-5.203-5.203s2.334-5.204 5.203-5.204 5.204 2.335 5.204 5.204-2.335 5.203-5.204 5.203Zm13.077-6.788h-5.03c-.741-3.767-4.066-6.619-8.047-6.619s-7.306 2.852-8.046 6.619h-2.631V39.724h9.495l14.26 14.531v11.44Z"/><path d="M26.217 34.126h15.575a1.5 1.5 0 0 0 0-3H26.217a1.5 1.5 0 0 0 0 3ZM16.622 42.473h25.17a1.5 1.5 0 0 0 0-3h-25.17a1.5 1.5 0 0 0 0 3ZM43.292 49.631a1.5 1.5 0 0 0-1.5-1.5H8.872a1.5 1.5 0 0 0 0 3h32.92a1.5 1.5 0 0 0 1.5-1.5Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M86.052 32.596c-.008-.005-.017-.006-.025-.01l.002-.003-26.791-14.832a1.501 1.501 0 0 0-1.477.014L30.969 33.234a1.5 1.5 0 0 0-.75 1.299v11.431h3v-9.469l23.792 13.736V78.34L33.219 64.604v-6.762h-3v7.628a1.5 1.5 0 0 0 .75 1.299l26.792 15.468a1.499 1.499 0 0 0 1.5 0l26.791-15.468a1.5 1.5 0 0 0 .75-1.299V33.897a1.5 1.5 0 0 0-.75-1.299ZM58.527 20.785l23.728 13.137-6.136 3.542L52.578 24.22l5.949-3.435Zm-.016 26.845L35.27 34.213l9.305-5.373 23.541 13.244-9.606 5.546Zm25.291 16.972L60.011 78.338V50.229l9.047-5.223V59.27l7.999-4.622V40.387l6.745-3.894v28.109Z"/><path d="M43.051 60.864v5.892l4.272 2.357v-5.892l-4.272-2.357zM49.522 64.399v5.893l4.272 2.357v-5.893l-4.272-2.357zM11.869 53.189h22.312a1.5 1.5 0 1 0 0-3H11.869l7.311-7.538a1.5 1.5 0 0 0-2.153-2.088L7.248 50.645a1.5 1.5 0 0 0 0 2.088l9.779 10.082a1.497 1.497 0 0 0 2.121.033 1.5 1.5 0 0 0 .032-2.121l-7.311-7.538Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="m85.736 27.671-.025-.015L50.727 8.289a1.501 1.501 0 0 0-1.477.014L14.264 28.502a1.5 1.5 0 0 0-.75 1.299v40.398a1.5 1.5 0 0 0 .75 1.299l34.986 20.2a1.499 1.499 0 0 0 1.5 0l34.986-20.2a1.5 1.5 0 0 0 .75-1.299v-41.23a1.5 1.5 0 0 0-.75-1.299Zm-35.72-16.347 31.923 17.673-8.48 4.896-31.671-17.818 8.228-4.75ZM31.339 22.108l31.67 17.818L50 47.436 18.733 29.385l12.605-7.278Zm-14.825 9.459L48.5 50.034V87.8L16.514 69.332V31.567Zm66.973 37.766L51.501 87.801V50.034l12.273-7.086v19.156l10.446-6.035V36.917l9.268-5.351v37.766Z"/><path d="m20.76 66.29 5.579 3.078v-7.695l-5.579-3.078v7.695zM29.21 63.212v7.694l5.579 3.078V66.29l-5.579-3.078z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M32.214 33.986a9.218 9.218 0 0 0-2.092 9.771 1.501 1.501 0 0 0 2.463.53l4.225-4.225h1.406l1.05 1.051-.075 1.257-4.262 4.262a1.5 1.5 0 0 0 .53 2.463 9.214 9.214 0 0 0 9.772-2.092 9.172 9.172 0 0 0 2.331-9.074l3.594-3.594.615.615-.24.24a1.5 1.5 0 0 0-.031 2.089l9.646 10.245a5.026 5.026 0 0 0 3.617 1.604h.086a5.023 5.023 0 0 0 3.58-1.484 5.024 5.024 0 0 0 1.483-3.666 5.02 5.02 0 0 0-1.601-3.613l-10.249-9.65a1.5 1.5 0 0 0-2.089.031l-.24.24-.615-.615 3.594-3.594a9.179 9.179 0 0 0 9.074-2.33 9.223 9.223 0 0 0 2.093-9.772 1.501 1.501 0 0 0-2.463-.53l-3.803 3.802h-1.407l-1.049-1.049.075-1.258 3.839-3.839a1.5 1.5 0 0 0-.53-2.463 9.215 9.215 0 0 0-9.771 2.092 9.172 9.172 0 0 0-2.331 9.074l-3.594 3.594-12.37-12.37a1.488 1.488 0 0 0-.216-.179l-3.003-2.048a1.5 1.5 0 0 0-1.905.179l-.887.887a1.5 1.5 0 0 0-.179 1.905l2.048 3.003c.053.078.112.149.179.216l12.37 12.37-3.594 3.594a9.178 9.178 0 0 0-9.074 2.331Zm34.04 8.562.003.003c.413.387.646.911.654 1.477a2.048 2.048 0 0 1-.604 1.495c-.399.4-.934.637-1.496.605a2.057 2.057 0 0 1-1.479-.658l-8.651-9.188 2.385-2.386 9.189 8.652Zm-23.511-8.104L55.227 21.96c.43-.43.558-1.075.324-1.637a6.194 6.194 0 0 1 5.325-8.569l-2.168 2.168c-.26.259-.415.604-.437.971l-.15 2.499c-.026.428.133.847.437 1.15l1.966 1.966a1.5 1.5 0 0 0 1.061.439h2.649c.397 0 .779-.158 1.061-.439l2.168-2.168a6.205 6.205 0 0 1-1.798 3.986 6.19 6.19 0 0 1-6.771 1.339 1.497 1.497 0 0 0-1.637.324L44.773 36.473a1.498 1.498 0 0 0-.324 1.637 6.186 6.186 0 0 1-1.34 6.771 6.203 6.203 0 0 1-3.985 1.799l2.591-2.591c.26-.259.415-.604.437-.971l.15-2.499a1.496 1.496 0 0 0-.437-1.15l-1.967-1.967a1.5 1.5 0 0 0-1.061-.439h-2.648c-.397 0-.779.158-1.061.439l-2.591 2.591a6.192 6.192 0 0 1 1.798-3.985 6.186 6.186 0 0 1 6.771-1.34 1.5 1.5 0 0 0 1.637-.324ZM84.921 52.44c-2.697-2.699-7.09-2.699-9.787 0l-8.932 8.932c-.479-3.351-3.361-5.938-6.842-5.938H41.908a13.653 13.653 0 0 0-8.929 3.327l-6.877 5.951-1.169-1.879a1.503 1.503 0 0 0-.933-.669 1.486 1.486 0 0 0-1.133.188l-9.106 5.664a1.498 1.498 0 0 0-.481 2.065l12.732 20.473a1.497 1.497 0 0 0 2.065.481l9.107-5.664c.338-.21.578-.546.669-.933.09-.388.022-.795-.188-1.133l-.669-1.075H56.09a21.172 21.172 0 0 0 15.068-6.242L84.92 62.226c2.697-2.697 2.697-7.088 0-9.786ZM27.767 87.695 16.619 69.77l6.56-4.079 9.447 15.189c.048.475.312.883.698 1.122l1.004 1.614-6.56 4.079ZM82.8 60.105 69.038 73.867a18.19 18.19 0 0 1-12.947 5.363H35.132l-7.425-11.938 7.235-6.262a10.648 10.648 0 0 1 6.966-2.596H59.36c2.161 0 3.92 1.759 3.92 3.92s-1.759 3.921-3.92 3.921H48.485a1.5 1.5 0 0 0 0 3H59.36c.204 0 .404-.013.603-.031.098.02.199.031.302.031a5.532 5.532 0 0 0 3.887-1.61l13.104-13.104c1.529-1.529 4.016-1.529 5.545 0s1.528 4.016 0 5.544Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="m77.23 64.91-19.342-8.222a1.5 1.5 0 0 0-1.689.364L50 63.778l-6.199-6.726a1.5 1.5 0 0 0-1.689-.364L22.77 64.91a11.505 11.505 0 0 0-7.016 10.604v12.862a1.5 1.5 0 0 0 3 0V75.514a8.508 8.508 0 0 1 5.189-7.843l14.122-6.003 2.464 9.135a1.5 1.5 0 0 0 2.158.93l5.879-3.161v11.475a1.5 1.5 0 0 0 3 0V68.644l5.746 3.09a1.5 1.5 0 0 0 2.158-.93l2.464-9.135 14.122 6.003a8.508 8.508 0 0 1 5.189 7.843v12.862a1.5 1.5 0 0 0 3 0V75.515c0-4.631-2.754-8.793-7.016-10.604Zm-34.297 3.286-2.081-7.713 1.459-.62 5.342 5.795-4.72 2.538Zm14.133 0-4.72-2.538 5.342-5.795 1.459.62-2.081 7.713Z"/><path d="M29.821 81.209a1.5 1.5 0 0 0-1.5 1.5v5.592a1.5 1.5 0 0 0 3 0v-5.592a1.5 1.5 0 0 0-1.5-1.5ZM70.125 81.209a1.5 1.5 0 0 0-1.5 1.5v5.592a1.5 1.5 0 0 0 3 0v-5.592a1.5 1.5 0 0 0-1.5-1.5ZM31.706 25.737c-.359.122-.668.37-.85.715a1.501 1.501 0 0 0 .094 1.55l.062.09c.63.899 1.385 1.731 2.239 2.496v3.832c0 11.155 7.7 20.58 16.814 20.58S66.88 45.575 66.88 34.42v-3.937a14.462 14.462 0 0 0 2.174-2.49 1.5 1.5 0 0 0 .086-1.545 1.496 1.496 0 0 0-.878-.724l2.211-4.392a3.48 3.48 0 0 0-.146-3.412 3.48 3.48 0 0 0-2.981-1.666h-3.073c-2.759 0-5.488-.917-7.686-2.583l-3.212-2.435a5.5 5.5 0 0 0-6.619 0l-3.212 2.435a12.794 12.794 0 0 1-7.686 2.583h-3.139c-1.212 0-2.32.612-2.965 1.638a3.48 3.48 0 0 0-.193 3.382l2.144 4.463Zm28.228 5.533c-6.176 2.409-13.554 2.415-19.737.015l-.138-.054c-1.712-.664-3.214-1.532-4.467-2.581h28.85c-1.249 1.056-2.77 1.942-4.508 2.62Zm3.947 3.15c0 9.365-6.456 17.58-13.815 17.58s-13.814-8.215-13.814-17.58v-1.691c.852.485 1.756.923 2.72 1.297l.138.054h.002c3.425 1.329 7.18 1.993 10.936 1.993s7.542-.67 10.978-2.01a20.366 20.366 0 0 0 2.857-1.384v1.739ZM32.294 19.489a.488.488 0 0 1 .426-.235h3.139c3.408 0 6.781-1.134 9.498-3.192l3.212-2.435a2.487 2.487 0 0 1 2.994 0l3.212 2.435a15.817 15.817 0 0 0 9.498 3.192h3.073c.244 0 .372.149.428.239a.488.488 0 0 1 .021.49l-2.638 5.241a1.474 1.474 0 0 0-.132.425H34.921a1.506 1.506 0 0 0-.12-.4l-2.533-5.274a.488.488 0 0 1 .027-.485Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="m84.66 40.847-7.611-15.248a9.342 9.342 0 0 0-8.406-5.2h-7.37v-2.865a4.579 4.579 0 0 0-4.573-4.573H43.302a4.579 4.579 0 0 0-4.573 4.573v2.865h-7.37a9.34 9.34 0 0 0-8.406 5.2l-7.611 15.248a19.166 19.166 0 0 0-2.008 8.517v29.679c0 4.409 3.588 7.997 7.997 7.997s7.997-3.588 7.997-7.997v-.333h41.348v.333c0 4.409 3.588 7.997 7.997 7.997s7.997-3.588 7.997-7.997V49.364c0-2.941-.694-5.887-2.008-8.517ZM41.728 17.534c0-.867.706-1.573 1.573-1.573h13.398c.867 0 1.573.706 1.573 1.573v2.528H41.727v-2.528Zm0 57.839v-2.528c0-.867.706-1.573 1.573-1.573h13.398c.867 0 1.573.706 1.573 1.573v2.528H41.727Zm41.94 3.67c0 2.756-2.241 4.997-4.997 4.997s-4.997-2.241-4.997-4.997V77.21a1.5 1.5 0 0 0-1.5-1.5H61.273v-2.865a4.579 4.579 0 0 0-4.573-4.573H43.302a4.579 4.579 0 0 0-4.573 4.573v2.865H27.828a1.5 1.5 0 0 0-1.5 1.5v1.833c0 2.756-2.241 4.997-4.997 4.997s-4.997-2.241-4.997-4.997V49.364c0-2.479.585-4.961 1.691-7.177l7.611-15.248a6.36 6.36 0 0 1 5.723-3.54h37.285a6.36 6.36 0 0 1 5.723 3.54l7.611 15.248a16.155 16.155 0 0 1 1.691 7.177v29.679Z"/><path d="M72.233 30.571a5.302 5.302 0 0 0-4.829-3.123H32.596a5.301 5.301 0 0 0-4.829 3.123l-6.315 14.048a3.307 3.307 0 0 0 .24 3.164 3.307 3.307 0 0 0 2.788 1.518h51.041a3.305 3.305 0 0 0 2.788-1.518 3.307 3.307 0 0 0 .24-3.164l-6.315-14.048Zm3.557 15.583a.31.31 0 0 1-.27.146H24.479a.31.31 0 0 1-.27-.146.305.305 0 0 1-.022-.305l6.315-14.048a2.298 2.298 0 0 1 2.093-1.354h34.809c.901 0 1.724.531 2.093 1.354l6.315 14.048a.306.306 0 0 1-.022.305ZM32.92 55.051h-5.69c-2.741 0-4.972 2.229-4.972 4.971s2.23 4.972 4.972 4.972h5.69c2.741 0 4.971-2.23 4.971-4.972s-2.229-4.971-4.971-4.971Zm0 6.942h-5.69c-1.087 0-1.972-.885-1.972-1.972s.885-1.971 1.972-1.971h5.69c1.087 0 1.971.884 1.971 1.971s-.884 1.972-1.971 1.972ZM72.771 55.051h-5.69c-2.741 0-4.972 2.229-4.972 4.971s2.23 4.972 4.972 4.972h5.69c2.741 0 4.972-2.23 4.972-4.972s-2.23-4.971-4.972-4.971Zm0 6.942h-5.69c-1.087 0-1.972-.885-1.972-1.972s.885-1.971 1.972-1.971h5.69c1.087 0 1.972.884 1.972 1.971s-.885 1.972-1.972 1.972Z"/></svg>